首页 理论教育Linux内核与设备驱动详细介绍

Linux内核与设备驱动详细介绍

【摘要】:图1-3引自TI的《DM 3730芯片手册》中第136页框图,为了方便读者在芯片手册中查找相关的内容,会在引用芯片手册框图时说明其所在的页码。各种不同类型的数据连接接口其设计思想以及功能是不同的,例如I2C通常用于设备的控制,McBSP用于音频数据的传输等。图1-3基于DM 3730的设备框图为什么要有这么多连接方式呢?

只是SOM的话没有太多使用价值,真正的设备是要连接很多复杂外设的,以DM 3730为基础的设备框图如图1-3所示。

图1-3引自TI的《DM 3730芯片手册》中第136页框图,为了方便读者在芯片手册中查找相关的内容,会在引用芯片手册框图时说明其所在的页码。笔者从对硬件毫无了解的计算机软件专业毕业生到目前个人感觉对嵌入式真正了解的开发者的成长过程中,TI的芯片手册给了我很大的帮助,其中详细讲解了诸多的原理和实现细节。当然很多人会觉得几千页的芯片手册无从下手,但是对钻研技术的人来说这些可是宝贝。如果大家可以静下心来仔细品味,绝对会受益匪浅。

图中,DM 3730通过各种连接方式连接了各种设备,输入输出设备根据不同的类型大体可以分为电源管理、用户输入、显示输出、图像采集、存储以及无线设备等。我们可以将DM3730与这些设备的数据接口分为总线和单一的数据接口总线。总线(如I2C、SPI和USB)的显著特点是单个总线上可以连接多个设备(如User Interface部分Finger Print和Touch Screen都是通过SPI总线和DM 3730进行连接);单一的数据接口只连接单一类型的设备(如用于用户显示LCD输出的DSI接口)。各种不同类型的数据连接接口其设计思想以及功能是不同的,例如I2C通常用于设备的控制,McBSP用于音频数据的传输等。需要注意的是同一总线可以连接不同类型的设备,比如MMC可以连接SD卡也可以连接WIFI设备。这些接口都是长期发展的行业标准,是需要软件适应并满足的需求。DM 3730作为SoC,其中包含图中所有接口控制器,相应的控制器用于按照相关的总线和接口标准进行数据传输。驱动的开发人员必须了解对应的总线以及接口知识,相关知识理解越深刻,解决问题就越游刃有余。

978-7-111-49426-3-Chapter01-4.jpg(www.chuimin.cn)

图1-3 基于DM 3730的设备框图

为什么要有这么多连接方式呢?这和数据传输的需求、数据的特性及复杂程度相关,比如数字信号通常依靠clock信号同步,那么相应的带宽就是Fclock×bits,bits为并行传输的位数,总线设计的时钟频率范围不同、位数不同相应的带宽就不同,而频率和位数不能随意提高,高速信号会产生电磁效应影响其他信号的完整性,另外从需求的角度来讲,不是所有类型的数据都需要高速传输,比如控制数据可以通过I2C传输,这种2线低时钟扩展性较好的总线,能够方便的进行硬件设计并通过其连接各种各样的传感器,丰富我们的实际生活。在高速数据总线设计方面,信号频率越来越高,并行信号在高主频时会有先天的劣势,很难保证信号完整性,而差分信号则可以避免相应的问题,现如今视频输入输出、高速硬盘、PCI甚至连外部memory都逐渐转向差分信号的传输方式,伴随而来的问题就是对相关接口的调试会复杂一些,需要理解协议。另外信号的分析需要专门的设备,这和调试并行信号只需要示波器比起来就显得复杂得多了。总之对接口来讲,最需要了解数据是如何组织传输的。