一、介绍
DM3730通过各种连接方式连接了各种设备,输入输出设备根据不同的类型大体可
以分为电源管理、用户输人、显示输出、图像采集、存储以及无线设备等。我们可以将DM
3730与这些设备的数据接口分为总线和单一的数据接口总线。总线的显著特点是单个总线上可以连接多个设备;单一的数据接口只连接单一类型的设备,用户显示LCD输出的DSI接口)。各种不同类型的数据连接接口其设计思想以及功能是不同的,例如IIC通常用于设备的控制,McBSP用于音频数据的传输等。需要注意的是同一总线可以连接不同类型的设备,比如MMC可以连接SD卡也可以连接WIFI设备。这些接口都是长期发展的行业标准,是需要软件适应并满足的需求。驱动的开发人员必须了解对应的总线以及接口知识,相关知识理解越深刻,解决问题就越游刃有余。
二、linux为什么有众多的总线
这和数据传输的需求、数据的特性及复杂程度相关。比如数字信号通常依靠clock信号同步,那么相应的带宽就是Fclock×bits,bits为并行传输的位数,总线设计的时钟频率范围不同、位数不同相应的带宽就不同。而频率和位数不能随意提高,高速信号会产生电磁效应影响其他信号的完整性,另外从需求的角度来讲,不是所有类型的数据都需要高速传输,比如控制数据可以通过IIC传输,这种低时钟扩展性较好
的总线,能够方便的进行硬件设计并通过其连接各种各样的传感器,丰富我们的实际生活。
在高速数据总线设计方面,信号频率越来越高,并行信号在高主频时会有先天的劣势,很难
保证信号完整性,而差分信号则可以避免相应的问题。
现如今视频输人输出、高速硬盘、PCI
甚至连外部memory都逐渐转向差分信号的传输方式,伴随而来的问题就是对相关接口的调试
会复杂一些,需要理解协议。另外信号的分析需要专门的设备,这和调试并行信号只需要示波
器比起来就显得复杂得多了。总之对接口来讲,最需要了解数据是如何组织传输的。
三、从设备看内核应该满足的需求
对硬件有了基本的了解,就可以从硬件出发考虑内核应该满足的需求了。
硬件的类型是多种多样的,连接的接口也是变化多样的,作为内核的一个最基本的要求
就是能够访问并操作这些设备,这就需要大量的设备驱动支持。同时也要支持各种不同的数
据连接接口。内核也需要支持各种总线,并且要支持各种类型的设备,由于总线要符合一定
的协议并连接多个设备,所以通常分为总线控制的主设备以及连接进行总线响应的从设备:
内核会应用到各种设备,所以需要同时为各种总线的主设备以及从设备提供支持。当然电源
管理的需求会涉及以上各种设备、总线和接口。另外内核不能只是支持特定的处理器,需要
支持各种类型的处理器,学术一点的说法就是要支持各种体系结构。
还有一点比较重要的思路就是,大型的系统会涉及很多人共同开发,这就对代码的可维
护性和重用性提出了很高的要求,针对这个需要在设计过程中内核会将各种共同的资源抽象
出来统一管理,并考虑硬件无关性形成相应的模块或者函数接口以供开发者使用。
四、linux内核的需求
·能支持不同的体系结构和处理器。
·能支持不同的总线连接以及总线设备。
·能支持不同的数据连接接口以及相应的设备。
·能支持各个级别的电源管理功能。
·设计时要考虑硬件无关性提高各模块的重用性。
前四项都是比较直接的需求,第五项则是考验开发人员的设计能力,也是内核的各个模
块的设计重点以及我们研究的重点
参考:
DM3730双核开发详解:ARM与DSP通信-CSDN博客