亚博APP安全有保障 - 亚博APP英超买球的首选 0952-47685248

Linux下I2C设备驱动开发和实现

作者:亚博APP英超买球的首选 时间:2021-03-19 00:11
本文摘要:I2C总线具有构造比较简单方便使用的特性。文中描述了Linux下I2C驱动的构造,并在这个基础上得到了I2C设备驱动和运用于的构建。 1章节目录 I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS企业产品研发的两条线式串行通信总线,作为相接微处理器以及外场设备。 I2C总线最关键的优势是其比较简单性和实效性。因为控制模块必需在部件以上,因而I2C总线闲置不用的室内空间十分小,提升了线路板的室内空间和处理芯片引脚的总数,降低了互联网成本费。

亚博APP英超买球的首选

I2C总线具有构造比较简单方便使用的特性。文中描述了Linux下I2C驱动的构造,并在这个基础上得到了I2C设备驱动和运用于的构建。  1章节目录  I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS企业产品研发的两条线式串行通信总线,作为相接微处理器以及外场设备。

I2C总线最关键的优势是其比较简单性和实效性。因为控制模块必需在部件以上,因而I2C总线闲置不用的室内空间十分小,提升了线路板的室内空间和处理芯片引脚的总数,降低了互联网成本费。I2C总线最开始为声频视频设备产品研发,现运用于各种各样服务项目与管理方法场所,来构建配置或操控部件的作用情况,如开关电源、系统软件散热风扇、系统软件溫度等主要参数,降低了系统软件的安全系数,便捷了管理方法。  2I2C总线论述  I2C总线是由手机充电线SDA和数字时钟SCL包括的串行通信总线,可发送至和读取数据,每一个器件都是有一个惟一的详细地址识别。

I2C技术规范应用主/从双重通信。器件传送数据到总线上,则界定为发送器,器件读取数据则界定为信号接收器。主器件和从器件都能够工作中于对接和发送至情况。

总线必不可少由主器件(一般来说为微处理器)操控,主器件造成串行通信数字时钟(SCL)操控总线的传送方位,并造成延续和中止标准。SDA网上的数据信息情况仅有在SCL为低电频的期内才可以变化,SCL为上拉电阻的期内,SDA情况的变化被用于答复延续和中止标准。  I2C总线在传输数据全过程中国共产党有三种种类信号,他们分别是:刚开始信号、完成信号和接受者信号。  刚开始信号:SCL为上拉电阻时,SDA由上拉电阻向低电频振荡,刚开始传输数据。

  完成信号:SCL为低电频时,SDA由低电频向上拉电阻振荡,完成传输数据。  接受者信号:读取数据的IC在对接到9ait数据信息后,向传送数据的IC接到特殊的低电频单脉冲,答复已收到数据信息。CPU向可控性模块接到一个信号后,等待可控性模块接到一个接受者信号,CPU对接到接受者信号后,依据具体情况作出否以后传输信号的鉴别。若仍未收到接受者信号,由鉴别为可控性模块经常会出现常见故障。

  3Linux的I2C驱动架  Linux中I2C总线的驱动分为2个一部分,总线驱动(BUS)和设备驱动(DEVICE)。在其中总线驱动的岗位职责,是为系统软件中每一个I2C总线降低适度的载入方式。可是总线驱动自身并会进行一切的通信,它仅仅不会有那边,等待设备驱动启用其涵数,查看图1。

  设备驱动则是与悬架在I2C总线上的确立的设备通信的驱动。根据I2C总线驱动获得的涵数,设备驱动能够忽略各有不同总线控制板的差别,不充分考虑其构建关键点地与硬件配置设备通信。    图1Linux核心I2C总线驱动程序流程架构  在大家的Linux驱动的i2c文件夹名称上面有algos,busses,chips三个文件夹名称,此外也有i2c-core.c和i2c-dev.c2个文档。

在其中i2c-core.c文档构建了I2Ccore架构,是Linux核心用于保证 和管理方法的I2C的关键一部分,在其中保证 了2个静态数据的List,各自纪录系统软件中的I2Cdriver构造和I2Cadapter构造。I2Ccore获得接口函数,允许一个I2Cadatper,I2Cdriver和I2Cclient复位时在I2Ccore中进行备案,及其散伙时进行注销。

另外还获得了I2C总线读写访问的一般控制模块,关键运用于在I2C设备驱动中。  Busses文件夹下的i2c-mpc.c文档构建了PowerPC下I2C总线电源适配器驱动,界定描述了确立的I2C总线电源适配器的i2c_adapter算法设计,构建比较最底层的对I2C总线访谈的具体做法。

I2Cadapter构造一个对I2Ccore层控制模块的算法设计,并根据接口函数向I2Ccore备案一个控制板。I2Cadapter关键构建对I2C总线访谈的优化算法,iic_xfer()涵数便是I2Cadapter最底层对I2C总线载入方式的构建。

另外I2Cadpter中还构建了对I2C控制板终断的处理函数。  i2c-dev.c文档中构建了I2Cdriver,获得了一个规范化的I2C设备的驱动程序流程,构建了标识符种类设备的访谈控制模块,构建了对客户网络层的控制模块,获得可执行程序访谈I2C设备的控制模块,还包含构建open,release,read,write及其最重要的ioctl等标准文件作业者的接口函数。我们可以根据open涵数合上I2C的设备文档,根据ioctl涵数原著要访谈从设备的详细地址,随后就可以根据read和write涵数顺利完成对I2C设备的存取数据。

  根据I2Cdriver获得的规范化方式能够访谈一切一个I2C的设备,可是在其中构建的read,write及ioctl等作用基本上是根据一般设备的构建,全部的作业者数据信息全是根据字节流,没实际的文件格式和实际意义。为了更好地更为便捷和合理地用以I2C设备,我们可以为一个确立的I2C设备产品研发特殊的I2C设备驱动程序流程,在驱动中顺利完成对特殊的数据类型的表明及其构建一些专用型的作用。


本文关键词:Linux,下,I2C,设备驱动,开发,和,亚博APP安全有保障,实现,I2C,总线

本文来源:亚博APP安全有保障-www.series-vf.com