整个系统启动和初始化的过程,Linux内核是在主处理器启动之后才会执行。不同的处理器启动流程并不相同,这就要求Linux内核能支持各种处理器的初始化操作。Linux内核各个模块,大部分设计时做到了体系结构无关。Linux内核是一个庞大的系统,最终生成的操作系统代码的执行文件非常大。......
2025-09-30
I2C(Inter-Integrated Circuit)总线是一种由Philips公司开发的两线式串行总线(分别是时钟信号SCL和数据信号SDA)。如果带有高速扩展,则最高可到3.4MHz。其具有简单高效,总线占用空间小,使用芯片引脚少,互连成本低,可以进行多设备互连等优点,被广泛应用于处理器与外围设备的连接。
由于传感器技术的大力发展,且不需要大量的数据交换,所以I2C总线已被广泛用于处理器连接各种传感器。可以说I2C已经成为嵌入式设备不可或缺的总线形式。
从形式上看I2C是主/从形式总线,在任何时间点上只能有一个主控。嵌入式处理器通常作为I2C总线的主设备,而传感器等外围设备是总线上的从设备。从设备通常有固化的地址,主设备通过地址与从设备通信。
I2C总线连接的基本形式如图7-1所示。图7-1引自《DM 3730芯片手册》中第2777页框图。
图7-1 I2C总线连接基本形式框图
从图7-1可见,处理器中可以有多个I2C总线控制器,每个总线控制器形成一个单独的I2C总线,一条I2C总线允许连接多个设备,而且设备允许使用不同的接口电压,这些不同接口电压的设备分布要合理。如芯片的IO接口电压是1.8V,所以1.8V的设备要接近芯片,而高电压3.0V接口的设备则通过level shift实现升压后进行连接。(https://www.chuimin.cn)
总线可以连接各种设备,在物理设备上包含总线控制器以及总线设备。另外系统的硬件连接需要具有灵活性,不同的总线控制器可以连接不同的总线设备,也就是说总线控制器与总线设备要独立,不能够彼此相关。在软件方面也需要具有高度的灵活性,设备信息要与驱动无关,总线控制器的操作方法要与属性无关,还要在软件层面满足总线控制器与总线设备无关。
另外从设备的角度来看,I2C总线设备有具体的功能,而总线是实现功能的媒介,通过总线传输命令、状态信息等。这就需要总线系统提供信息交互的接口及规范,即总线数据传输的信号规范。I2C总线数据传输信号规范如图7-2所示。图7-2引自《DM 3730芯片手册》中第2778页框图。
图7-2 I2C总线数据传输信号规范
从图7-2可见,具体传输是由Start和Stop标记的,并且每传送一个字长都需要有ACK标记。通常传输信号的正确性是由物理的控制器来保证的,也可以通过GPIO进行模拟,但是需要软件进行配合。
总体上来说,系统对I2C总线驱动的需求就是要能实现总线的各种功能,并且满足以上的各种无关性需求。
相关文章
整个系统启动和初始化的过程,Linux内核是在主处理器启动之后才会执行。不同的处理器启动流程并不相同,这就要求Linux内核能支持各种处理器的初始化操作。Linux内核各个模块,大部分设计时做到了体系结构无关。Linux内核是一个庞大的系统,最终生成的操作系统代码的执行文件非常大。......
2025-09-30
具体分析设备模型中的设备管理,首先要分析device结构。从device可见,重点是管理的资源,当然也包含针对sys文件系统关联的属性。而设备的层次关系在实际的情况下通常是从逻辑层的功能设备逐渐到物理层的总线设备,最终到platform bus中对应的device,这样系统就建立了完整的设备层次关系。设备模型通知udev的方式如图5-19所示。通过uevent通知到应用层,就完成设备管理创建设备文件到应用层的操作。......
2025-09-30
内存管理是Linux内核非常重要的功能,可以说是最基础的功能之一。图4-31存储系统层次结构整个内存管理的首要需求自然是内存物理空间的管理。特别是视频应用需求的不断增长使得内存管理的需求也发生了变化,由于图像分辨率以及显示分辨率的不断提高,而协处理器通常又需要连续的物理内存,这样就有对于几兆甚至十几兆连续内存管理的需求。而原有的Linux内核内存管理并不能满足这种需求,这样就需要开发新的内存管理方法。......
2025-09-30
图4-25中断在系统中的连接示意图从图4-25中可见,中断相关的硬件包括设备、中断控制器和处理器。这需要对中断控制器进行不同的操作逻辑来避免该类问题的发生,中断处理逻辑需要和中断控制器的操作相结合以使中断处理能正确的执行。以上主要还是功能需求,对于性能方面,中断处理都是有时间要求的,所以会有中断响应时间这一性能指标的要求。好的系统需要在大量上报中断时仍能有较小的中断响应时间。......
2025-09-30
可以看到非常的小,比硬币大不了多少,这个系统只要接上电池就可以运行了。图1-1LogicPD DM 3730 SOM示意图再来看看LogicPD的SOM都有些什么,系统框图如图1-2所示。PoP在一起的芯片分别是主处理器DM 3730和NAND Flash/mDDR SDRAM chip。主处理器和内存是所有系统必需的,关系自然紧密了,这是能PoP的资本。PoP的优势很明显就是使电路板的面积减小了,这个对于手机等对电路板大小要求高的设备来说是非常重要的。图1-2LogicPD DM 3730 SOM系统框图......
2025-09-30
VFS的实现是以“一切皆是文件”为需求出发点的。要理解VFS的框架首先看一下VFS和系统的静态关系框图,如图5-1所示。从图5-1可见,VFS是用户层的直接接口,是面向用户的服务。图5-1VFS和系统静态关系图在图5-2中每个节点被使用时都会在VFS层中创建dentry,这样可以快速通过文件名进行查找和定位,Linux内核中对dentry的管理组织形式如图5-3所示。以上是系统运行时VFS对文件名的组织管理,这是VFS管理的一个方面。......
2025-09-30
图6-4分辨率指标从图6-4可见,目前各种显示分辨率,不仅大小不同,长宽比也是各种各样的,这些分辨率主要有两种不同的标准,一种是4∶3的PC相关的显示器标准,另外一种是16∶9的TV相关的标准。对显示驱动基本的需求就是能够支持这些各种不同分辨率和长宽比的显示设备,并对这些设备进行相应的控制,使得系统能有较好的输出效果。......
2025-09-30
考虑到电源管理的需求涉及处理器和各种设备,一方面是处理器尽可能减少功耗,另一方面是设备尽可能减少功耗。图5-30Linux电源管理各个功能从图5-30可见Linux内核的电源管理功能有与处理器相关的CPUIdle和CPUFreq,也有与设备相关的runtime pm,另外还有与整个系统待机时SLM相关的低功耗电源管理功能。下面分别对这些功能框架进行介绍。具体的驱动同样会在SoC电源管理部分进行讲解。对具体设备的电源管理实现,将在设备驱动中进行详细分析。......
2025-09-30
相关推荐