CN109656841A - 基于软件模拟i2c和硬件i2c的混合控制方法及装置 - Google Patents
基于软件模拟i2c和硬件i2c的混合控制方法及装置 Download PDFInfo
- Publication number
- CN109656841A CN109656841A CN201811367099.3A CN201811367099A CN109656841A CN 109656841 A CN109656841 A CN 109656841A CN 201811367099 A CN201811367099 A CN 201811367099A CN 109656841 A CN109656841 A CN 109656841A
- Authority
- CN
- China
- Prior art keywords
- signal
- software
- hardware
- simulation
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于软件模拟I2C和硬件I2C的混合控制方法,所述方法包括步骤:1)设置于ARM CPU芯片上的I2C master控制器通过上位机取得显示模组的属性信息和寄存器地址信息;2)I2C master控制器加载软件I2C信号驱动软件,向I2C slave从设备输出模拟I2C信号,所述模拟I2C信号读时序信号;3)I2C master控制器卸载软件I2C信号驱动软件,加载硬件I2C信号驱动软件,向I2C slave从设备输出标准I2C信号,标准I2C信号为标准I2C写时序信号。本发明解决使用硬件I2C信号进行读操作时,只能输出标准repstart波形,无法满足非标准时序波形的输出要求,同时本发明较软件模拟I2C信号,不会因为模拟i2c信号而受CPU抢占干扰导致时钟信号不稳定等异常情况的发生。
Description
技术领域
本发明涉及显示模组驱动技术领域,具体地指一种基于软件模拟I2C和硬件I2C的混合控制方法及装置。
背景技术
液晶模组等新型显示模组上都有TCON IC芯片,TCON主要负责输出液晶模组上的驱动IC所需要的信号,需要I2C master控制器对其进行Gamma寄存器配置。
目前主流ARM CPU芯片都有I2C控制器,在master模式下通过I2C总线控制slave从设备,也支持标准I2C总线协议。I2C总线协议的标准模式为100Kbit/s,快速模式400Kbit/s,能支持I2C读、写、repstart读,7字节器件地址,10字节器件地址等功能。
针对标准I2C协议的芯片,通常采用硬件I2C信号对slave从设备进行读、写时序信号的传输。硬件I2C的优点信号输出稳定,时钟速率标准,不受内核抢占信号干扰等,缺点是时序要求规范,不能自行定制,不够灵活。
目前,市面上也出现了非标准I2C协议的芯片,由于硬件I2C信号不能调制出非标准时序信号,因此只能通过软件模拟I2C信号。软件模拟I2C的优点信号可定制化,在时序中增加特殊的要求可满足,但缺点是信号输出不稳定,容易受干扰,时钟速率有限制,不能满足实际应用需求。
发明内容
基于背景技术存在的技术问题,本发明提出了一种基于软件模拟I2C和硬件I2C的混合控制方法及装置,既能满足时序定制化的需求又能保证信号输出稳定、快速。
为达到上述目的,本发明提及的一种基于软件模拟I2C和硬件I2C的混合控制方法,其特殊之处在于,所述方法包括如下步骤:
1)设置于ARM CPU芯片上的I2C master控制器通过上位机取得显示模组的属性信息和寄存器地址信息;
2)所述I2C master控制器加载软件I2C信号驱动软件,向I2C slave从设备输出模拟I2C信号,所述模拟I2C信号读时序信号;
3)所述I2C master控制器卸载软件I2C信号驱动软件,加载硬件I2C信号驱动软件,向I2C slave从设备输出标准I2C信号,所述标准I2C信号为标准I2C写时序信号。
优选地,所述硬件I2C信号驱动软件和硬件I2C信号驱动软件均针对ARM CPU芯片上的时钟,数据两个引脚绑定一致。
优选地,所述步骤2)中I2C master控制器加载软件I2C信号驱动软件之前执行卸载硬件I2C信号驱动软件的步骤,防止数据引脚重用。
优选地,所述软件I2C信号驱动软件与I2C slave从设备的型号相匹配,针对每一个I2C slave从设备的时序要求,设置repstart波形的时序延时,I2C slave从设备的型号设置于显示模组的属性信息中。
本发明还提出一种应用于上述基于软件模拟I2C和硬件I2C的混合控制方法的装置,其特殊之处在于,所述装置包括设置于ARM CPU芯片上的I2C master控制器内的硬件I2C驱动模块、模拟I2C延时模块、接口复用控制模块、GPIO接口模块;所述硬件I2C驱动模块用于存储硬件I2C信号驱动软件输出标准I2C信号,所述模拟I2C延时模块用于存储软件I2C信号驱动软件输出模拟I2C信号,软件,所述接口复用控制模块用于管理调度硬件I2C驱动模块和模拟I2C延时模块管理输出标准I2C信号或者模拟I2C信号,所述GPIO接口模块用于向I2C slave从设备发送标准I2C信号或者模拟I2C信号,并从I2C slave从设备接收显示模组的属性信息和寄存器地址信息。
本发明解决使用硬件I2C信号进行读操作时,只能输出标准repstart波形,无法满足非标准时序波形的输出要求,同时本发明较软件模拟I2C信号,不会因为模拟i2c信号而受CPU抢占干扰导致时钟信号不稳定等异常情况的发生。
附图说明
图1为本发明一种基于软件模拟I2C和硬件I2C的混合控制方法的装置的结构示意图。
图中:I2C master控制器A,硬件I2C驱动模块1、模拟I2C延时模块2,接口复用控制模块3,GPIO接口模块4,I2C slave从设备B。
图2为非标准I2C repstart读方法时序图。
图3为标准repstart读方法时序图。
图4为软件模拟repstart读方法时序图。
图5为软件模拟单次写、多重写时序图。
图6为软件模拟I2C和硬件I2C的混合控制时序图。
具体实施方式
下面结合附图及实施例对本发明作进一步的详细描述,但该实施例不应理解为对本发明的限制。
如图1所示,本发明提出的一种基于软件模拟I2C和硬件I2C的混合控制方法基于控制装置实现,该控制装置包括设置于ARM CPU芯片上的I2C master控制器A内的硬件I2C驱动模块1、模拟I2C延时模块2、接口复用控制模块3、GPIO接口模块4。I2C master控制器A通过上位机取得显示模组的属性信息和寄存器地址信息。
硬件I2C驱动模块1用于存储硬件I2C信号驱动软件输出标准I2C信号,模拟I2C延时模块2用于存储软件I2C信号驱动软件输出模拟I2C信号,接口复用控制模块3用于管理输出标准I2C信号或者模拟I2C信号,GPIO接口模块4用于向I2C slave从设备B发送标准I2C信号或者模拟I2C信号。
以液晶模组TCON IC芯片CS602为例,该芯片要求写采用标准I2C写时序信号,读采用repstart读方法时序信号。采用repstart读方法时有特殊要求,需要在repstart时序前加1ms或2ms,如图2所示。
如果全部使用硬件I2C信号,多重写操作、单次写操作可以满足写标准时序。但读操作因为只能输出标准repstart波形,无法满足要求。图3为标准repstart波形,中间无延时。
如果方案全部使用软件模拟I2C信号,读可以满足延时1ms或2ms repstart读。软件模拟repstart波形,如图4所示,中间有延时。
但单次写操作,多重写操作因为模拟I2C信号容易受CPU抢占干扰导致时钟信号不稳定等异常,如图5所示。
本发明提出一种模拟i2c和硬件i2c混合控制的方法来应对,采用ARM atmel 9g45平台方案,9g45 Two-wire Interface控制器,该控制器支持输出两通道硬件i2c信号,能支持如下特性。
I<sup>2</sup>C Standard | Atmel TWI |
Standard Mode Speed(100kHz) | Supported |
Fast Mode Speed(400kHz) | Supported |
7or10bits Slave Addressing | Supported |
START BYTE<sup>(1)</sup> | Not Supported |
Repeated Start(Sr)Condition | Supported |
ACK and NACK Management | Supported |
Slope control and input filtering(Fast mode) | Not Supported |
Clock stretching | Supported |
Multi Master Capability | Supported |
在Linux内核编写硬件I2C信号驱动软件i2c-at91存于硬件I2C驱动模块1,I2C时钟、数据两路数据的引脚绑定如下
Instance | Signal | I/O Line | Peripheral |
TWI0 | TWCK0 | PA21 | A |
TWI0 | TWD0 | PA20 | A |
TWI1 | TWCK1 | PB11 | A |
TWI1 | TWD1 | PB10 | A |
在Linux内核编写软件I2C信号驱动软件i2c-gpio存于模拟I2C延时模块2,I2C时钟、数据两路数据的引脚绑定要与软件I2C信号驱动软件一致。
因为内核中模拟I2C和硬件I2C在设备加载及使用中是互斥的,两对IO不能同时既做普通输出gpio又做硬件控制器引脚。
在硬件I2C信号驱动软件中根据传入的显示模组属性信息和寄存器地址信息添加I2C slave从设备B的器件地址,在产生标准i2c写信号。
在软件I2C信号驱动软件中根据传入的显示模组属性信息和寄存器地址信息添加I2C slave从设备B的器件地址,在产生模拟repstart信号前添加软延时udelay(2000)。
接口复用控制模块3将两套驱动作为模块方式编译,实现动态切换来满足软件驱动、硬件驱动的混合控制。
具体步骤包括:
1)接口复用控制模块3在内核板卡启动文件中添加调用硬件I2C驱动模块1和模拟I2C延时模块2;
at91_add_device_i2c(0,NULL,0);添加硬件控制器i2c-0
at91_add_device_i2c(1,NULL,0);添加硬件控制器i2c-1
at91_add_device_i2c(2,NULL,0);添加软件模拟i2c-0
2)内核配置中增加硬件I2C驱动模块1和模拟I2C延时模块2,编译后生成:
软件I2C信号驱动软件(i2c-algo-bit.ko,i2c-gpio.ko)
硬件I2C信号驱动软件(i2c-at91.ko)
3)I2C master控制器A通过上位机取得显示模组的属性信息和寄存器地址信息。
3)接口复用控制模块3卸载硬件I2C信号驱动软件,加载软件I2C信号驱动软件,向I2C slave从设备B输出模拟I2C信号:
rmmod i2c-at91
insmod i2c-algo-bit.ko
insmod i2c-gpio.ko
应用程序访问i2c-0设备节点即可完成软件I2C信号驱动软件输出。模拟I2C信号读时序信号,执行读操作。
I2C发送或者接收一次数据都以数据包struct i2c_msg封装:
其中addr为从机设备地址;flags则是这次通信的标志,发送数据为0,接收数据则为I2C_M_RD;len为此次通信的数据字节数;buf为发送或接收数据的指针。在设备驱动中通常调用i2c-core定义的接口i2c_master_send和i2c_master_recv来发送或接收一次数据。
5)接口复用控制模块3卸载软件I2C信号驱动软件,加载硬件I2C信号驱动软件,向I2C slave从设备B)输出标准I2C信号:
rmmod i2c-gpio
rmmod i2c-algo-bit
insmod i2c-at91.ko
应用程序访问i2c-0设备节点即可完成硬件I2C信号驱动软件输出。标准I2C信号为标准I2C写时序信号,执行写操作。
使用软件模拟I2C控制方法进行repstart读操作、使用硬件I2C控制方法进行写操作的时序图如图6所示。
尽管上面结合附图对本发明的优选实施例进行了描述,但是本发明并不局限于上述的具体实方式,上述的具体实施方式仅仅是示意性的,并不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以作出很多形式的具体变换,这些均属于本发明的保护范围内。
Claims (5)
1.一种基于软件模拟I2C和硬件I2C的混合控制方法,其特征在于:所述方法包括如下步骤:
1)设置于ARM CPU芯片上的I2C master控制器(A)通过上位机取得显示模组的属性信息和寄存器地址信息;
2)所述I2C master控制器(A)加载软件I2C信号驱动软件,向I2C slave从设备(B)输出模拟I2C信号,所述模拟I2C信号读时序信号;
3)所述I2C master控制器(A)卸载软件I2C信号驱动软件,加载硬件I2C信号驱动软件,向I2C slave从设备(B)输出标准I2C信号,所述标准I2C信号为标准I2C写时序信号。
2.根据权利要求1所述的基于软件模拟I2C和硬件I2C的混合控制方法,其特征在于:所述硬件I2C信号驱动软件和硬件I2C信号驱动软件均针对ARM CPU芯片上的时钟,数据两个引脚绑定一致。
3.根据权利要求2所述的基于软件模拟I2C和硬件I2C的混合控制方法,其特征在于:所述步骤2)中I2C master控制器(A)加载软件I2C信号驱动软件之前执行卸载硬件I2C信号驱动软件的步骤,防止数据引脚重用。
4.根据权利要求1所述的基于软件模拟I2C和硬件I2C的混合控制方法,其特征在于:所述软件I2C信号驱动软件与I2C slave从设备(B)的型号相匹配,针对每一个I2C slave从设备(B)的时序要求,设置repstart波形的时序延时,I2C slave从设备(B)的型号设置于显示模组的属性信息中。
5.一种基于权利要求1~4中任一项所述的基于软件模拟I2C和硬件I2C的混合控制方法的装置,其特征在于:所述装置包括设置于ARM CPU芯片上的I2C master控制器(A)内的硬件I2C驱动模块(1)、模拟I2C延时模块(2)、接口复用控制模块(3)、GPIO接口模块(4);
所述硬件I2C驱动模块(1)用于存储硬件I2C信号驱动软件输出标准I2C信号,所述模拟I2C延时模块(2)用于存储软件I2C信号驱动软件输出模拟I2C信号,所述接口复用控制模块(3)用于管理调度硬件I2C驱动模块(1)和模拟I2C延时模块(2),所述GPIO接口模块(4)用于向I2C slave从设备(B)发送标准I2C信号或者模拟I2C信号,并从I2C slave从设备(B)接收显示模组的属性信息和寄存器地址信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811367099.3A CN109656841B (zh) | 2018-11-16 | 2018-11-16 | 基于软件模拟i2c和硬件i2c的混合控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811367099.3A CN109656841B (zh) | 2018-11-16 | 2018-11-16 | 基于软件模拟i2c和硬件i2c的混合控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109656841A true CN109656841A (zh) | 2019-04-19 |
CN109656841B CN109656841B (zh) | 2020-08-04 |
Family
ID=66110995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811367099.3A Active CN109656841B (zh) | 2018-11-16 | 2018-11-16 | 基于软件模拟i2c和硬件i2c的混合控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656841B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445731A (zh) * | 2019-07-04 | 2019-11-12 | 苏州浪潮智能科技有限公司 | 一种交换机光模块i2c信号复用的方法、设备及可读介质 |
CN111045476A (zh) * | 2019-12-18 | 2020-04-21 | 湖南国科微电子股份有限公司 | 多核cpu系统下时序波形控制方法、系统、设备及介质 |
CN111752884A (zh) * | 2020-06-30 | 2020-10-09 | 无锡物联网创新中心有限公司 | 一种m2芯片与i2c设备之间的通讯方法 |
CN112165419A (zh) * | 2020-09-29 | 2021-01-01 | 深圳市新龙鹏科技有限公司 | 家庭网关的i2c模拟通信方法、装置、设备及存储介质 |
CN112269749A (zh) * | 2020-10-30 | 2021-01-26 | 厦门紫光展锐科技有限公司 | I2c通信系统 |
CN112463662A (zh) * | 2020-12-16 | 2021-03-09 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN116909474A (zh) * | 2022-04-12 | 2023-10-20 | 荣耀终端有限公司 | 器件识别方法和相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060003395A (ko) * | 2004-07-06 | 2006-01-11 | 주식회사 현대오토넷 | Mgt5200의 psc포트를 이용한 외부소자 인터페이스장치 |
CN101046734A (zh) * | 2006-03-30 | 2007-10-03 | 联想(北京)有限公司 | 一种无线数据传输装置和方法以及一种显示模块 |
CN101371492A (zh) * | 2006-01-17 | 2009-02-18 | 美国博通公司 | 以太网供电控制器集成电路架构 |
CN102446132A (zh) * | 2011-09-06 | 2012-05-09 | 迈普通信技术股份有限公司 | 一种模拟本地总线进行板级管理的方法和装置 |
CN106569974A (zh) * | 2016-11-02 | 2017-04-19 | 深圳市博巨兴实业发展有限公司 | 一种软硬件接口协议 |
CN107562183A (zh) * | 2016-07-01 | 2018-01-09 | 意美森公司 | 云连接的触觉平台 |
-
2018
- 2018-11-16 CN CN201811367099.3A patent/CN109656841B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060003395A (ko) * | 2004-07-06 | 2006-01-11 | 주식회사 현대오토넷 | Mgt5200의 psc포트를 이용한 외부소자 인터페이스장치 |
CN101371492A (zh) * | 2006-01-17 | 2009-02-18 | 美国博通公司 | 以太网供电控制器集成电路架构 |
CN101046734A (zh) * | 2006-03-30 | 2007-10-03 | 联想(北京)有限公司 | 一种无线数据传输装置和方法以及一种显示模块 |
CN102446132A (zh) * | 2011-09-06 | 2012-05-09 | 迈普通信技术股份有限公司 | 一种模拟本地总线进行板级管理的方法和装置 |
CN107562183A (zh) * | 2016-07-01 | 2018-01-09 | 意美森公司 | 云连接的触觉平台 |
CN106569974A (zh) * | 2016-11-02 | 2017-04-19 | 深圳市博巨兴实业发展有限公司 | 一种软硬件接口协议 |
Non-Patent Citations (1)
Title |
---|
何轶彬: ""I2C 软件 硬件 混合 控制"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445731A (zh) * | 2019-07-04 | 2019-11-12 | 苏州浪潮智能科技有限公司 | 一种交换机光模块i2c信号复用的方法、设备及可读介质 |
CN111045476A (zh) * | 2019-12-18 | 2020-04-21 | 湖南国科微电子股份有限公司 | 多核cpu系统下时序波形控制方法、系统、设备及介质 |
CN111045476B (zh) * | 2019-12-18 | 2021-07-27 | 湖南国科微电子股份有限公司 | 多核cpu系统下时序波形控制方法、系统、设备及介质 |
CN111752884A (zh) * | 2020-06-30 | 2020-10-09 | 无锡物联网创新中心有限公司 | 一种m2芯片与i2c设备之间的通讯方法 |
CN112165419A (zh) * | 2020-09-29 | 2021-01-01 | 深圳市新龙鹏科技有限公司 | 家庭网关的i2c模拟通信方法、装置、设备及存储介质 |
CN112269749A (zh) * | 2020-10-30 | 2021-01-26 | 厦门紫光展锐科技有限公司 | I2c通信系统 |
CN112463662A (zh) * | 2020-12-16 | 2021-03-09 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN112463662B (zh) * | 2020-12-16 | 2024-04-05 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN116909474A (zh) * | 2022-04-12 | 2023-10-20 | 荣耀终端有限公司 | 器件识别方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109656841B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656841A (zh) | 基于软件模拟i2c和硬件i2c的混合控制方法及装置 | |
CN104956347B (zh) | 将一种互连协议的枚举和/或配置机制用于不同的互连协议 | |
US7835897B2 (en) | Apparatus and method for connecting hardware to a circuit simulation | |
CN207115097U (zh) | 一种fpga异构加速卡 | |
CN202956753U (zh) | 一种嵌入式系统中闪存芯片的编程装置及系统 | |
KR102320407B1 (ko) | I2c 통신 모듈을 포함하는 컴퓨팅 장치 및 그것의 통신 에러 복구 방법 | |
CN109656844B (zh) | 一种AT24xx EEPROM驱动方法和装置 | |
CN105302612A (zh) | 快速升级电子系统机箱内单片机软件程序的方法 | |
CN104380274B (zh) | 用于优化的链路训练及管理的装置和方法 | |
CN106126465B (zh) | 一种数据传输方法及装置 | |
CN108304334A (zh) | 应用处理器和包括中断控制器的集成电路 | |
CN109388345A (zh) | 存储器的数据读取方法、显示装置及计算机可读存储介质 | |
CN114461478A (zh) | 模拟器,驱动测试方法,电子设备及计算机可读存储介质 | |
US8150670B2 (en) | Simulator and simulation method | |
CN105528314B (zh) | 一种数据处理方法及控制设备 | |
CN102104508A (zh) | 基于m模块的lxi设备中的m模块ll驱动层实现方法 | |
CN111897582B (zh) | 一体机以太网刷新方法、装置、存储介质及一体机设备 | |
KR20170041615A (ko) | 딜레이 가변 소자를 포함하는 메모리 모듈 및 그것의 딜레이 설정 방법 | |
WO2014000299A1 (zh) | 串口重定向处理方法、设备和系统 | |
CN103678244B (zh) | 一种不使用应用处理器的智能设备 | |
CN111562946A (zh) | 一种数据处理方法及芯片 | |
CN114218138B (zh) | 一种usb设备模拟装置及测试系统 | |
CN107329863B (zh) | 一种基于COMe的测量仪器通用硬件平台 | |
CN110362526B (zh) | Spi从机设备、存储和适配方法及计算机存储介质 | |
CN116340220A (zh) | Usb通信接口适配器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |