System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于Linux系统的I2C设备通信方法、装置及设备制造方法及图纸_技高网

基于Linux系统的I2C设备通信方法、装置及设备制造方法及图纸

技术编号:41006202 阅读:3 留言:0更新日期:2024-04-18 21:42
本申请公开了一种基于Linux系统的I2C设备通信方法、装置及设备,该基于Linux系统的I2C设备通信方法包括:获取目标I2C设备对应的目标接口文件;利用所述目标接口文件与所述目标I2C设备通信。通过本申请提供的技术方案,应用程序对I2C设备进行读写操作时,只要操作I2C设备对应的接口文件即可,而不需要通过一个接口文件对所有的I2C设备进行读写操作,有效避免了I2C设备之间出现通信干扰现象。

【技术实现步骤摘要】

本申请属于通信控制,尤其涉及一种基于linux系统的i2c设备通信方法、装置及设备。


技术介绍

1、i2c(inter-integrated circuit,集成电路总线)是一种简单、双向二线制同步串行总线,i2c总线仅仅使用时钟线scl和数据线sda这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和pcb板布线空间的占用,因此在嵌入式设备中使用非常广泛。

2、i2c总线上通常挂载有多个i2c设备,在同时与多个i2c设备进行数据通信时,多个i2c设备会同时进行读写操作,进而导致i2c设备之间出现通信干扰现象。


技术实现思路

1、本申请的实施例提供了一种基于linux系统的i2c设备通信方法、装置及设备,进而至少在一定程度上可以避免i2c设备之间出现通信干扰现象。

2、本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

3、根据本申请实施例的第一方面,提供了一种基于linux系统的i2c设备的通信方法,包括:

4、获取目标i2c设备对应的目标接口文件;

5、利用所述目标接口文件与所述目标i2c设备通信。

6、在本申请的一些实施例中,基于前述方案,所述获取目标i2c设备对应的目标接口文件,包括:

7、为i2c总线上的每个i2c设备创建接口文件,得到接口文件集合;

8、从所述接口文件集合中选取所述目标i2c设备对应的接口文件作为目标接口文件。p>

9、在本申请的一些实施例中,基于前述方案,所述为i2c总线上的每个i2c设备创建接口文件,包括:

10、在/proc/i2c_drv/目录下,为所述i2c总线上的每个i2c设备创建所述接口文件;

11、根据所述每个i2c设备的i2c地址对应为所述每个i2c设备的接口文件命名。

12、在本申请的一些实施例中,基于前述方案,所述从所述接口文件集合中选取所述目标i2c设备对应的接口文件作为目标接口文件,包括:

13、根据所述目标i2c设备的i2c地址从所述接口文件集合中选取所述目标i2c设备对应的接口文件作为目标接口文件。

14、在本申请的一些实施例中,基于前述方案,所述利用所述目标接口文件与所述目标i2c设备通信,包括:

15、设置所述目标接口文件的打开指令;

16、根据所述打开指令打开所述目标接口文件,以得到文件描述符;

17、基于所述文件描述符调用读写函数,以触发驱动程序对所述目标i2c设备进行读写操作。

18、在本申请的一些实施例中,基于前述方案,所述根据所述打开指令打开所述目标接口文件,以得到文件描述符之后,所述方法还包括:

19、若所述目标i2c设备在一个读取周期内执行的操作包括写操作和读操作,则将所述一个读取周期内的所有操作作为原子操作;

20、基于所述文件描述符调用ioctl函数,以触发驱动程序对所述目标i2c设备进行所述原子操作。

21、根据本申请实施例的第二方面,提供了一种基于linux系统的i2c设备通信装置,包括:

22、数据获取模块,用于获取目标i2c设备对应的目标接口文件;

23、通信控制模块,用于利用所述目标接口文件与所述目标i2c设备通信。

24、在本申请的一些实施例中,基于前述方案,所述通信控制模块还用于为i2c总线上的每个i2c设备创建接口文件,得到接口文件集合;从所述接口文件集合中选取所述目标i2c设备对应的接口文件作为目标接口文件。

25、根据本申请实施例的第三方面,提供了一种基于linux系统的i2c设备通信设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序指令,所述处理器执行所述计算机程序指令时,实现如上述第一方面任一项所述的方法的步骤。

26、根据本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,促使所述处理器实现如上述第一方面任一项所述的方法的步骤。

27、在本申请中,通过获取目标i2c设备对应的目标接口文件;利用所述目标接口文件与所述目标i2c设备通信。通过本申请提供的技术方案,应用程序对i2c设备进行读写操作时,只要去操作i2c设备对应的接口文件即可,而不需要通过一个接口文件对所有的i2c设备进行读写操作,有效避免了i2c设备之间出现通信干扰现象。

28、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

本文档来自技高网...

【技术保护点】

1.一种基于Linux系统的I2C设备的通信方法,其特征在于,包括:

2.根据权利要求1所述的基于Linux系统的I2C设备通信方法,其特征在于,所述获取目标I2C设备对应的目标接口文件,包括:

3.根据权利要求2所述的基于Linux系统的I2C设备通信方法,其特征在于,所述为I2C总线上的每个I2C设备创建接口文件,包括:

4.根据权利要求3所述的基于Linux系统的I2C设备通信方法,其特征在于,所述从所述接口文件集合中选取所述目标I2C设备对应的接口文件作为目标接口文件,包括:

5.根据权利要求1至4中任一项所述的基于Linux系统的I2C设备通信方法,其特征在于,所述利用所述目标接口文件与所述目标I2C设备通信,包括:

6.根据权利要求5所述的基于Linux系统的I2C设备通信方法,其特征在于,所述根据所述打开指令打开所述目标接口文件,以得到文件描述符之后,所述方法还包括:

7.一种基于Linux系统的I2C设备通信装置,其特征在于,包括:

8.根据权利要求7所述的基于Linux系统的I2C设备通信装置,其特征在于,所述通信控制模块还用于为I2C总线上的每个I2C设备创建接口文件,得到接口文件集合;从所述接口文件集合中选取所述目标I2C设备对应的接口文件作为目标接口文件。

9.一种基于Linux系统的I2C设备通信设备,包括处理器和存储器,其特征在于,所述存储器存储有能够被所述处理器执行的计算机程序指令,所述处理器执行所述计算机程序指令时,实现如权利要求1至6中任一所述的方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,促使所述处理器实现如权利要求1至6任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种基于linux系统的i2c设备的通信方法,其特征在于,包括:

2.根据权利要求1所述的基于linux系统的i2c设备通信方法,其特征在于,所述获取目标i2c设备对应的目标接口文件,包括:

3.根据权利要求2所述的基于linux系统的i2c设备通信方法,其特征在于,所述为i2c总线上的每个i2c设备创建接口文件,包括:

4.根据权利要求3所述的基于linux系统的i2c设备通信方法,其特征在于,所述从所述接口文件集合中选取所述目标i2c设备对应的接口文件作为目标接口文件,包括:

5.根据权利要求1至4中任一项所述的基于linux系统的i2c设备通信方法,其特征在于,所述利用所述目标接口文件与所述目标i2c设备通信,包括:

6.根据权利要求5所述的基于linux系统的i2c设备通信方法,其特征在于,所述根据所述打开指令打开所述目...

【专利技术属性】
技术研发人员:欧阳宁杨辉谭亚科
申请(专利权)人:博为科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1