一种用户态控制I2C设备的方法与终端技术

技术编号:27589844 阅读:13 留言:0更新日期:2021-03-10 10:06
本发明专利技术公开了一种用户态控制I2C设备的方法;本发明专利技术加载内核驱动,进行设备树匹配和I2C总线初始化,并创建字符设备节点;由用户态程序根据用户操作信息,生成对应的操作数据,并将所述操作数据写入字符设备节点,所述操作数据包括目标I2C设备地址和具体操作内容;由内核驱动解析所述操作数据,得到所述目标I2C设备地址和所述具体操作内容,调用驱动的操作方法集中与所述具体操作内容对应的方法向与所述目标I2C设备地址对应的目标I2C设备发送操作请求,使得所述目标I2C设备接收并执行所述操作请求;本发明专利技术创建了字符设备节点并对所有I2C设备使用同一驱动,提高了驱动程序的复用性,且能够通过用户态程序对I2C总线上的所有I2C设备进行控制,使用更加方便。使用更加方便。使用更加方便。

【技术实现步骤摘要】
一种用户态控制I2C设备的方法与终端


[0001]本专利技术涉及计算机
,特别涉及一种用户态控制I2C设备的方法与终端。

技术介绍

[0002]I2C(Inter-Integrated Circuit)总线具有高效性和兼容性,接口用在组件上占用空间非常小,并且传输速率快,I2C总线上可以同时挂载多个设备。
[0003]现有技术中对I2C设备的控制通常有以下两种:
[0004]一种是通过设备驱动来控制I2C设备,它对设备的读写,初始化,复位等,比较简单。但是缺点就一个驱动只能对应一个芯片,对其他不同厂家和不同类型芯片的设备来说,是没有任何作用的,因此一个驱动不能访问所有的I2C设备,复用性低且效率不高。
[0005]还有一种通过用户态程序I2C-tools工具包直接访问/dev接口,这个访问是直接访问I2C总线,对于外部的I2C设备来说,进行复位,上电等操作还要分开来控制。I2C-tools命令使用起来比较繁琐,读写连续数据操作起来,不是很直接方便。

技术实现思路

[0006]本专利技术所要解决的技术问题是:提供一种用户态控制I2C设备的方法与终端,使用方便的同时提高程序的复用性和实用效率。
[0007]为了解决上述技术问题,本专利技术采用的技术方案为:
[0008]一种用户态控制I2C设备的方法,包括步骤:
[0009]S1、加载内核驱动,进行设备树匹配和I2C总线初始化,并创建字符设备节点;
[0010]S2、由用户态程序根据用户操作信息,生成对应的操作数据,并将所述操作数据写入字符设备节点,所述操作数据包括目标I2C设备地址和具体操作内容;
[0011]S3、由内核驱动解析所述操作数据,得到所述目标I2C设备地址和所述具体操作内容,调用驱动的操作方法集中与所述具体操作内容对应的方法向与所述目标I2C设备地址对应的目标I2C设备发送操作请求,使得所述目标I2C设备接收并执行所述操作请求。
[0012]为了解决上述技术问题,本专利技术采用的另一种技术方案为:
[0013]一种用户态控制I2C设备的终端,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0014]S1、加载内核驱动,进行设备树匹配和I2C总线初始化,并创建字符设备节点;
[0015]S2、由用户态程序根据用户操作信息,生成对应的操作数据,并将所述操作数据写入字符设备节点,所述操作数据包括目标I2C设备地址和具体操作内容;
[0016]S3、由内核驱动解析所述操作数据,得到所述目标I2C设备地址和所述具体操作内容,调用驱动的操作方法集中与所述具体操作内容对应的方法向与所述目标I2C设备地址对应的目标I2C设备发送操作请求,使得所述目标I2C设备接收并执行所述操作请求。
[0017]本专利技术的有益效果在于:本专利技术创建了用于控制I2C总线的字符设备节点,并对所有I2C设备使用同一I2C驱动进行驱动,提高了驱动程序的复用性,且提高了效率和节省资
源,本专利技术能够通过用户态程序向字符设备节点写入操作数据,从而对I2C总线上的所有I2C设备进行控制,使用更加方便。
附图说明
[0018]图1为本专利技术实施例的一种用户态控制I2C设备的方法的流程图;
[0019]图2为本专利技术实施例的一种用户态控制I2C设备的终端的结构图;
[0020]图3为本专利技术实施例的一种用户态控制I2C设备的方法的具体流程图;
[0021]图4为本专利技术实施例的一种用户态控制I2C设备的方法中预设通信协议示意图;
[0022]图5为本专利技术实施例的一种用户态控制I2C设备的方法的通信示意图;
[0023]图6为本专利技术实施例的一种用户态控制I2C设备的方法的通信层次示意图;
[0024]标号说明:
[0025]1、一种用户态控制I2C设备的终端;2、处理器;3、存储器。
具体实施方式
[0026]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0027]请参照图1以及图3至图6,一种用户态控制I2C设备的方法,包括步骤:
[0028]S1、加载内核驱动,进行设备树匹配和I2C总线初始化,并创建字符设备节点;
[0029]S2、由用户态程序根据用户操作信息,生成对应的操作数据,并将所述操作数据写入字符设备节点,所述操作数据包括目标I2C设备地址和具体操作内容;
[0030]S3、由内核驱动解析所述操作数据,得到所述目标I2C设备地址和所述具体操作内容,调用驱动的操作方法集中与所述具体操作内容对应的方法向与所述目标I2C设备地址对应的目标I2C设备发送操作请求,使得所述目标I2C设备接收并执行所述操作请求。
[0031]从上述描述可知,本专利技术的有益效果在于:本专利技术创建了用于控制I2C总线的字符设备节点,并对所有I2C设备使用同一I2C驱动进行驱动,提高了驱动程序的复用性,且提高了效率和节省资源,本专利技术能够通过用户态程序向字符设备节点写入操作数据,从而对I2C总线上的所有I2C设备进行控制,使用更加方便。
[0032]进一步的,所述步骤S2中所述操作数据的格式为预设通讯协议的通信数据格式;
[0033]步骤S3中所述由内核驱动解析所述操作数据具体为:
[0034]由内核驱动根据预设通讯协议对所述操作数据进行解析。
[0035]由上述描述可知,用户态程序与内核驱动间的通信通过预设的通信协议进行,使通信数据的要求能加严谨,方便内核进行分析和处理。
[0036]进一步的,所述通信数据格式具体为:
[0037]第一字节为读写位,第二字节为目标设备地址,第三和四字节为待读写的寄存器地址,第五字节为设置访问设备的速率,第六字节为预留位,第七字节为待读写数据的长度,余下字节为待读写数据的具体内容;
[0038]所述步骤S2中由用户态程序根据用户操作信息,生成对应的操作数据具体为:
[0039]根据所述用户操作信息是数据读取还是数据写入的判断结果向第一字节写入0或1;
[0040]读取所述用户操作信息中的目标设备地址,写入第二字节;
[0041]读取所述用户操作信息中的目标寄存器地址,将目标寄存器地址写入第三和第四字节;
[0042]将所述用户操作信息中访问所述目标I2C设备的速率写入第五字节;
[0043]预留第六字节;
[0044]将所所述用户操作信息中的待读写数据的长度写入第七字节;
[0045]将所述用户操作信息中的待读写数据的具体内容写入余下字节,得到操作数据;
[0046]所述由内核驱动根据预设通讯协议对所述操作数据进行解析为:
[0047]读取所述操作数据中第二字节,得到所述目标设备地址,读取所述操作数据中其他字节的相应数据,得到所述具体操作内容。
[0048]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用户态控制I2C设备的方法,其特征在于,包括步骤:S1、加载内核驱动,进行设备树匹配和I2C总线初始化,并创建字符设备节点;S2、由用户态程序根据用户操作信息,生成对应的操作数据,并将所述操作数据写入字符设备节点,所述操作数据包括目标I2C设备地址和具体操作内容;S3、由内核驱动解析所述操作数据,得到所述目标I2C设备地址和所述具体操作内容,调用驱动的操作方法集中与所述具体操作内容对应的方法向与所述目标I2C设备地址对应的目标I2C设备发送操作请求,使得所述目标I2C设备接收并执行所述操作请求。2.根据权利要求1所述的一种用户态控制I2C设备的方法,其特征在于,所述步骤S2中所述操作数据的格式为预设通讯协议的通信数据格式;步骤S3中所述由内核驱动解析所述操作数据具体为:由内核驱动根据预设通讯协议对所述操作数据进行解析。3.根据权利要求2所述的一种用户态控制I2C设备的方法,其特征在于,所述通信数据格式具体为:第一字节为读写位,第二字节为目标设备地址,第三和四字节为待读写的寄存器地址,第五字节为设置访问设备的速率,第六字节为预留位,第七字节为待读写数据的长度,余下字节为待读写数据的具体内容;所述步骤S2中由用户态程序根据用户操作信息,生成对应的操作数据具体为:根据所述用户操作信息是数据读取还是数据写入的判断结果向第一字节写入0或1;读取所述用户操作信息中的目标设备地址,写入第二字节;读取所述用户操作信息中的目标寄存器地址,将目标寄存器地址写入第三和第四字节;将所述用户操作信息中访问所述目标I2C设备的速率写入第五字节;预留第六字节;将所所述用户操作信息中的待读写数据的长度写入第七字节;将所述用户操作信息中的待读写数据的具体内容写入余下字节,得到操作数据;所述由内核驱动根据预设通讯协议对所述操作数据进行解析为:读取所述操作数据中第二字节,得到所述目标设备地址,读取所述操作数据中其他字节的相应数据,得到所述具体操作内容。4.根据权利要求1所述的一种用户态控制I2C设备的方法,其特征在于,所述步骤S3中所述操作方法集中的操作方法包括读取、写入、开启、关闭和ioctl方法。5.根据权利要求4所述的一种用户态控制I2C设备的方法,其特征在于,所述ioctl方法用于对I2C设备进行gpio操作,所述gpio操作包括上电和复位。6.一种用户态控制I2C设备的终端,包括处理器、存储器及存储在存...

【专利技术属性】
技术研发人员:张水生
申请(专利权)人:福州创实讯联信息技术有限公司
类型:发明
国别省市:

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

1