图7-8引自《MMC规范》。需要根据这些控制器的属性值正确地操作MMC设备。图7-9MMC信号传输特点图7-9以单一的读操作为例,可见MMC的信号主要通过CMD传送命令,并且需要响应,通过DAT信号传送数据。另外由于MMC连接的设备可能会以卡的形式存在,这就需要能够支持对设备插入的检测,在系统级别也需要能够对设备插拔进行支持。总体上来说,MMC总线驱动的需求就是要能实现总线的各种功能,并且满足总线的各种无关性需求。......
2023-11-22
对计算机以及嵌入式设备来说,音频设备同样是一种重要的输出设备,由于人们对声音是十分敏感的,所以在有人机交互功能的设备中音频设备的重要性就不言而喻了。
声音是连续的模拟信号,而音频设备是要将这些模拟信号与数字信号进行转换,从而满足音频的输入输出的需求。而这种模拟信号和数字信号转换的原理如图6-12所示。
图6-12 音频信号模数转换的原理
从图6-11可见这种转换的基本原理就是通过离散时间对信号进行量化来实现对连续模拟信号尽量准确地模拟。根据这个原理可知对音频信号数字效果的影响因素如下:
●采样频率。采样频率是指单位时间内的采样次数。采样频率越大,采样点之间的间隔就越小,数字化后得到的声音就越逼真,但相应的数据量就越大。声音采样频率以kHz(千赫兹)衡量。
●量化位数(采样位数)。量化位数是模拟量转换成数字量之后的数据位数。量化位数表示的是声音的振幅,位数越多,音质越细腻,相应的数据量就越大。量化位数主要有8位和16位两种。(www.chuimin.cn)
●声道数。声道数是指处理的声音是单声道还是立体声。单声道在声音处理过程中只有单数据流,而立体声则需要左、右声道的两个数据流。显然,立体声的效果要好,但相应的数据量要比单声道的数据量加倍。
不同的音频效果就是以上因素的各种组合,而音频设备与主处理器之间的实际音频流就是通过以上因素获得的数字音频信息。所以驱动要能够支持各种组合的音频信号,其中必然包含数据流的传输支持以及控制支持。另外音频通常包括输入和输出,输入和输出是允许同时进行的,所以还要能够支持音频流输入输出的同时传送。
另外还有很多产生和制作数字音频的技术(如Sequencer、MIDI),也是需要与音频设备进行相应的支持,这属于可选功能。
除了以上数字音频的部分(与主处理器关联的都是数字信号),音频设备还有模拟部分,这部分对于驱动的需求通常是在控制上,数据流都是转换成数字信号进行存储。这样在需求上就需要分为控制部分和数据部分,驱动也要对这些进行支持。
音频设备还有可能有多路数据源,而在设备内部作混音,所以在考虑控制需求的时候,同样要考虑相关的应用以及混音通路的设置。这样更进一步要求控制流能够和数据流分离。然而控制流和数据流不仅要考虑分离又要考虑关联,毕竟控制部分同样需要能够获取数据流格式等相关的信息。
总体来说,音频设备可理解为有单一控制通路,有一个或多个数据通路的设备。
有关深入剖析Linux内核与设备驱动的文章
图7-8引自《MMC规范》。需要根据这些控制器的属性值正确地操作MMC设备。图7-9MMC信号传输特点图7-9以单一的读操作为例,可见MMC的信号主要通过CMD传送命令,并且需要响应,通过DAT信号传送数据。另外由于MMC连接的设备可能会以卡的形式存在,这就需要能够支持对设备插入的检测,在系统级别也需要能够对设备插拔进行支持。总体上来说,MMC总线驱动的需求就是要能实现总线的各种功能,并且满足总线的各种无关性需求。......
2023-11-22
通常的分类方式是将设备分为字符设备、块设备和网络设备。这样的分类方式只是在高级抽象层中对主设备相关的分类,对具体的设备究竟如何划分并没有涉及。谈到设备分类,还会想到Linux内核中的drivers目录,drivers目录下的子目录本身就是对设备驱动的分类。图3-12驱动层次看过Webcam的例子后,再重新考虑设备分类的问题,硬件通过各种总线实现层次扩展。那么按照这种层次的需要进行设备分类,一定会有全新的视角。......
2023-11-22
USB的设计为非对称式的,它是主从式总线,任何USB事务都是由主机引发的。USB总线拓扑如图7-12所示。图7-12引自《USB2.0规范》。USB总线已经成为使用最广泛的设备连接标准。每个USB设备至少有两个端点/管道,分别是进和出两个方向,编号为0,用于控制总线上的设备。总体上来说,系统对USB总线驱动的需求就是要能按规范实现总线的各种功能,并且满足总线的各种无关性的需求。......
2023-11-22
图6-4分辨率指标从图6-4可见,目前各种显示分辨率,不仅大小不同,长宽比也是各种各样的,这些分辨率主要有两种不同的标准,一种是4∶3的PC相关的显示器标准,另外一种是16∶9的TV相关的标准。对显示驱动基本的需求就是能够支持这些各种不同分辨率和长宽比的显示设备,并对这些设备进行相应的控制,使得系统能有较好的输出效果。......
2023-11-22
Linux内核有一类特殊的用户,就是系统管理员,这些用户需要对内核有一定的了解,并对内核进行相应的设置。Linux内核也要满足性能需求,需要更快、更高、更强。内核和驱动开发人员需要Linux内核提供基本功能和框架的支持。......
2023-11-22
SPI是一种高速、全双工、同步总线。这样就允许单个SPI总线上连接多个SPI从设备。对于SPI总线从设备并没有固化的地址,而是通过CS信号区分不同的设备。另外因为SPI总线频率最高可以达到70MHz,所以需要较大吞吐量的操作方案进行数据传输,通常使用DMA进行操作。总体上来说,系统对于SPI总线驱动的需求就是要能实现总线的各种功能,并且满足类似于I2C总线的各种无关性需求。图7-5SPI总线数据传输信号规范......
2023-11-22
整个系统启动和初始化的过程,Linux内核是在主处理器启动之后才会执行。不同的处理器启动流程并不相同,这就要求Linux内核能支持各种处理器的初始化操作。Linux内核各个模块,大部分设计时做到了体系结构无关。Linux内核是一个庞大的系统,最终生成的操作系统代码的执行文件非常大。......
2023-11-22
应用层需要统一的接口对设备进行操作,内核中还需要良好的框架和机制对这些设备进行管理,而很多情况下还需要设备能够被发现并绑定正确的驱动,这些都是需要内核框架的支持。无论是应用层的设备还是横切功能,在设备管理中都是高层的抽象概念。一个良好的设备实现框架,如字符设备框架,也是设备开发的重要需求。这些都是对设备及设备开发的需求。......
2023-11-22
相关推荐