CN111007763A - 一种iic总线解锁的控制方法 - Google Patents
一种iic总线解锁的控制方法 Download PDFInfo
- Publication number
- CN111007763A CN111007763A CN201911222824.2A CN201911222824A CN111007763A CN 111007763 A CN111007763 A CN 111007763A CN 201911222824 A CN201911222824 A CN 201911222824A CN 111007763 A CN111007763 A CN 111007763A
- Authority
- CN
- China
- Prior art keywords
- sda
- unlocking
- iic bus
- mcu
- time sequence
- 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
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/21—Pc I-O input output
- G05B2219/21119—Circuit for signal adaption, voltage level shift, filter noise
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种IIC总线解锁的控制方法。该方法用于对控制单元读取存储单元过程中造成IIC锁定的解锁。所述方法包括如下步骤:配置控制单元上的SCL、SDA引脚为GPIO模式;在IIC总线上设置解锁时序,通过运行并循环N次解锁时序,使得存储单元释放SDA;配置控制单元上的SCL、SDA引脚为IIC模式;初始化控制单元和存储单元。因此,通过设置解锁时序,能够对IIC总线进行有效解锁,避免由于IIC总线锁死情况下,MCU无法读取EEPROM数据的情况。
Description
技术领域
本发明涉及空调技术领域,具体而言,涉及一种IIC总线解锁的控制方法。
背景技术
空调运行中所处理的参数值一般都保存在存储芯片中,目前比较常用的存储芯片一般为各种容量的EEPROM。EEPROM数据通常是在空调主板上电时由MCU读出,之后MCU根据读取的EEPROM数据对应的参数控制机组运行。
实际运用中,在MCU读取EEPROM数据的过程中,存在以下情况会概率性造成IIC总线被锁死:
(1)由于MCU芯片与EEPROM的工作电压范围往往不一致,当EEPROM的可工作电压比MCU芯片的可工作电压更低时,电源电压波动不稳定的情况下,MCU复位了,EEPROM仍在正常工作。
(2)MCU由于看门狗溢出复位了,EEPROM仍在正常工作。
(3)MCU由于其他原因复位了,EEPROM仍在正常工作。
IIC总线锁死的原因:MCU采用硬件IIC读取EEPROM时,若在MCU读取 EEPROM数据过程中,发生MCU复位,则会有概率出现IIC总线锁死,IIC总线锁死后表现为SCL一直为高电平,SDA一直为低电平,MCU无法再与EEPROM通信。
上述情况造成IIC总线锁死后,MCU将无法再与EEPROM通信,不能正常读取EEPROM存储的数据,机组报故障无法正常运行,往往带来售后投诉。
发明内容
本发明的目的在于解决IIC总线锁死后控制单元无法与存储单元通信使得空调无法正常运行的问题。
为实现上述目的,根据本发明的第一方面,提供一种IIC总线解锁的控制方法,用于对控制单元读取存储单元过程中造成IIC锁定的解锁,所述方法包括如下步骤:
(1)配置控制单元上的SCL、SDA引脚为GPIO模式;
(2)在IIC总线上设置解锁时序,通过运行并循环N次解锁时序,使得存储单元释放SDA;
(3)配置控制单元上的SCL、SDA引脚为IIC模式;
(4)初始化控制单元和存储单元。
进一步的,所述控制单元为MCU,所述存储单元为EEPROM。
进一步的,所述步骤(1)中,配置MCU的SCL引脚为输出,配置MCU的 SDA引脚为输入;循环次数初始化为零,即N=0;所述IIC总线的脉冲时序中一个周期的脉冲总数为M。
进一步的,所述步骤(2)中,所述解锁时序最多循环M次能够使存储单元解锁。
进一步的,所述步骤(2)的解锁时序包括:
(2-1)在IIC总线上模拟产生一个下降沿脉冲;
(2-2)在所述模拟下降沿脉冲产生之后,判断EEPROM是否释放SDA;若未释放SDA则继续模拟产生下一个下降沿脉冲,若释放SDA,则结束步骤 (2)。
进一步的,所述步骤(2-1)中,下降脉冲的模拟产生方式为,MCU控制SCL依次输出高电平和低电平;所述步骤(2-2)中,EEPROM释放SDA的标志为,SDA输出的电平为高电平。
进一步的,在进行步骤(2)的解锁时序之前,检测SDA是否为低电平;若SDA为低电平,则进入解锁时序并循环N次,当N大于M时,进入步骤(3);若SDA为高电平,则直接进入步骤(3)。
进一步的,所述MCU直接进入步骤(2)的解锁时序,进行步骤(2-1) 后,检测检测SDA是否为低电平;若SDA为低电平,则进入解锁时序并循环N 次,当N大于M时,进入步骤(3);若SDA为高电平,则直接进入步骤(3)。
进一步的,当所述解锁时序的循环次数N大于或等于1时,进入所述步骤(2-1),所述MCU控制SCL输出高电平后,检测循环次数,当N大于M时,进入步骤(3);当N小于或等于M时,MCU控制SCL输出低电平,继续进行解锁时序。
进一步的,所述步骤(2)和步骤(3)之间,还包括设置时序结束位步骤,所述时序结束位表示步骤(2)的解锁时序结束。
进一步的,所述设置时序结束位步骤,具体包括:配置MCU的SDA引脚为输出;MCU控制SDA输出低电平;MCU控制SCL输出高电平;MCU控制SDA输出高电平。
本发明的第二方面,提供一种空调器,包括IIC总线,当控制单元读取存储单元过程中造成IIC锁定时,使用如上所述的IIC总线解锁的控制方法能够对IIC总线进行解锁。
本发明的有益之处至少包括:
(1)本发明的IIC总线解锁的控制方法,通过设置解锁时序,能够对IIC总线进行有效解锁,避免由于IIC总线锁死情况下,MCU无法读取EEPROM数据的情况。
(2)本发明只需在MCU中增加IIC总线解锁程序,即可解决IIC总线锁死问题,不额外增加成本。
(3)本发明能够提高EEPROM数据读取准确率,降低机组故障率
(4)本发明能够提高空调的性能,降低售后投诉率。
附图说明
图1为本发明的解锁流程图;
图2为本发明的实施例中IIC总线的时序图;
图3为本发明的实施例解锁流程图;
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
参见附图1-3,本发明的一种IIC总线解锁的控制方法,用于对控制单元读取存储单元过程中造成IIC锁定的解锁,所述方法包括如下步骤:
(1)配置控制单元上的SCL、SDA引脚为GPIO模式;
(2)在IIC总线上设置解锁时序,通过运行并循环N次解锁时序,使得 SDA解锁;
(3)配置控制单元上的SCL、SDA引脚为IIC模式。
(4)初始化控制单元的IIC外设模块,结束。
所述控制单元为MCU,所述存储单元为EEPROM。
所述步骤(1)中,配置MCU的SCL引脚为输出,配置MCU的SDA引脚为输入;循环次数初始化为零,即N=0;所述IIC总线的脉冲时序中的最后一个脉冲的个数为M。
所述步骤(2)中,所述解锁时序最多循环M次能够使存储单元解锁。
所述步骤(2)的解锁时序包括:
(2-1)在IIC总线上模拟产生一个下降沿脉冲;
(2-2)在所述模拟下降沿脉冲产生之后,判断EEPROM是否释放SDA;若未释放SDA则继续模拟产生下一个下降沿脉冲,若释放SDA,则结束步骤 (2)。
所述步骤(2-1)中,下降脉冲的模拟产生方式为,MCU控制SCL依次输出高电平和低电平。
所述步骤(2-2)中,EEPROM释放SDA的标志为,SDA输出的电平为高电平。
在进行步骤(2)的解锁时序之前,检测SDA是否为低电平;若SDA为低电平,则进入解锁时序并循环N次,当N大于M时,进入步骤(3);若SDA为高电平,则直接进入步骤(3)。
所述MCU直接进入步骤(2)的解锁时序,进行步骤(2-1)后,检测检测SDA是否为低电平;若SDA为低电平,则进入解锁时序并循环N次,当N大于M时,进入步骤(3);若SDA为高电平,则直接进入步骤(3)。
当所述解锁时序N大于1时,进入所述步骤(2-1),所述MCU控制SCL输出高电平后,检测循环次数,当N大于M时,进入步骤(3);当N小于或等于M时,MCU控制SCL输出低电平,继续进行解锁时序。
所述步骤(2)和步骤(3)之间,还包括设置时序结束位步骤,所述时序结束位表示步骤(2)的解锁时序结束。
所述设置时序结束位步骤,具体包括:配置MCU的SDA引脚为输出;MCU 控制SDA输出低电平;MCU控制SCL输出高电平;MCU控制SDA输出高电平。
一种空调器,包括IIC总线,当控制单元读取存储单元过程中造成IIC 锁定时,使用上述IIC总线解锁的控制方法能够对IIC总线进行解锁;使得空调器能够及时解锁,提高性能。
实施例
本实施例中的IIC总线包括9个始终脉冲,附图2为IIC总线的时序图。
设备运行时,如果控制单元MCU正好发第9个时钟脉冲,此时SCL为高电平,而存储单元EEPROM拉低SDA做ACK应答准备,正常情况下,MCU发完第9 个时钟脉冲后SCL变低,EEPROM即可释放SDA为高电平。
但是,如果MCU在发第9个时钟脉冲的期间复位,而EEPROM仍在正常工作,MCU复位后释放SCL将一直是高电平。此时,EEPROM就会一直等不到SCL 变低电平,EEPROM将继续应答无法释放SDA,SDA则一直为低电平;而MCU复位后,发现SDA一直为低认为被占用,也会一直等待EEPROM释放SDA为高电平。此时,MCU和EEPROM相互等待,IIC总线进入死锁状态。
此时,计算机程序检测到MCU对EEPROM数据读取不成,则调用IIC总线解锁程序,开始进行解锁:
(1)配置控制单元上的SCL、SDA引脚为GPIO模式;配置MCU的SCL为GPIO 输出模式、SDA引脚为GPIO输入模式。
配置MCU的SCL引脚为输出,配置MCU的SDA引脚为输入;循环次数初始化为零,即N=0;
(2)在IIC总线上设置解锁时序,通过运行并循环N次解锁时序,使得 SDA解锁;设置解锁时序前,检测SDA是否为低电平,若是,则开始模拟产生下降沿脉冲;若不是,则进入步骤(3)。
(2-1)在IIC总线上模拟产生一个下降沿脉冲;即MCU控制SCL依次输出高电平和低电平;
(2-2)在所述模拟下降沿脉冲产生之后,判断EEPROM是否释放SDA;即,检测检测SDA是否为低电平;若SDA为低电平,则继续模拟产生下一个下降沿脉冲,若SDA为高电平,则结束步骤(2)。当循环次数大于9次时,仍然结束步骤(2)。
进入设置时序结束位步骤,具体包括:配置MCU的SDA引脚为输出;MCU 控制SDA输出低电平;MCU控制SCL输出高电平;MCU控制SDA输出高电平。
(3)配置控制单元上的SCL、SDA引脚为IIC模式。
(4)初始化控制单元的IIC外设模块,结束。
经过上述解锁的控制过程,IIC总线解锁成功,设备恢复正常运行。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (12)
1.一种IIC总线解锁的控制方法,用于对控制单元读取存储单元过程中造成IIC锁定的解锁,其特征在于:所述方法包括如下步骤:
(1)配置控制单元上的SCL、SDA引脚为GPIO模式;
(2)在IIC总线上设置解锁时序,通过运行并循环N次解锁时序,使得存储单元释放SDA;
(3)配置控制单元上的SCL、SDA引脚为IIC模式;
(4)初始化控制单元和存储单元。
2.根据权利要求1所述的一种IIC总线解锁的控制方法,其特征在于:所述控制单元为MCU,所述存储单元为EEPROM。
3.根据权利要求2所述的一种IIC总线解锁的控制方法,其特征在于:所述步骤(1)中,配置MCU的SCL引脚为输出,配置MCU的SDA引脚为输入;循环次数初始化为零,即N=0;所述IIC总线的脉冲时序中一个周期的脉冲总数为M。
4.根据权利要求3所述的一种IIC总线解锁的控制方法,其特征在于:所述步骤(2)中,所述解锁时序最多循环M次能够使存储单元解锁。
5.根据权利要求4所述的一种IIC总线解锁的控制方法,其特征在于:所述步骤(2)的解锁时序包括:
(2-1)在IIC总线上模拟产生一个下降沿脉冲;
(2-2)在所述模拟下降沿脉冲产生之后,判断EEPROM是否释放SDA;若未释放SDA则继续模拟产生下一个下降沿脉冲,若释放SDA,则结束步骤(2)。
6.根据权利要求5所述的一种IIC总线解锁的控制方法,其特征在于:所述步骤(2-1)中,下降脉冲的模拟产生方式为,MCU控制SCL依次输出高电平和低电平;所述步骤(2-2)中,EEPROM释放SDA的标志为,SDA输出的电平为高电平。
7.根据权利要求6所述的一种IIC总线解锁的控制方法,其特征在于:在进行步骤(2)的解锁时序之前,检测SDA是否为低电平;若SDA为低电平,则进入解锁时序并循环N次,当N大于M时,进入步骤(3);若SDA为高电平,则直接进入步骤(3)。
8.根据权利要求6所述的一种IIC总线解锁的控制方法,其特征在于:所述MCU直接进入步骤(2)的解锁时序,进行步骤(2-1)后,检测检测SDA是否为低电平;若SDA为低电平,则进入解锁时序并循环N次,当N大于M时,进入步骤(3);若SDA为高电平,则直接进入步骤(3)。
9.根据权利要求6所述的一种IIC总线解锁的控制方法,其特征在于:当所述解锁时序的循环次数N大于或等于1时,进入所述步骤(2-1),所述MCU控制SCL输出高电平后,检测循环次数,当N大于M时,进入步骤(3);当N小于或等于M时,MCU控制SCL输出低电平,继续进行解锁时序。
10.根据权利要求1所述的一种IIC总线解锁的控制方法,其特征在于:所述步骤(2)和步骤(3)之间,还包括设置时序结束位步骤,所述时序结束位表示步骤(2)的解锁时序结束。
11.根据权利要求10所述的一种IIC总线解锁的控制方法,其特征在于:所述设置时序结束位步骤,具体包括:配置MCU的SDA引脚为输出;MCU控制SDA输出低电平;MCU控制SCL输出高电平;MCU控制SDA输出高电平。
12.一种空调器,包括IIC总线,其特征在于:当控制单元读取存储单元过程中造成IIC锁定时,使用如权利要求1-11之一的IIC总线解锁的控制方法能够对IIC总线进行解锁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911222824.2A CN111007763B (zh) | 2019-12-03 | 2019-12-03 | 一种iic总线解锁的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911222824.2A CN111007763B (zh) | 2019-12-03 | 2019-12-03 | 一种iic总线解锁的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111007763A true CN111007763A (zh) | 2020-04-14 |
CN111007763B CN111007763B (zh) | 2022-02-01 |
Family
ID=70115362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911222824.2A Active CN111007763B (zh) | 2019-12-03 | 2019-12-03 | 一种iic总线解锁的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111007763B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111578489A (zh) * | 2020-05-12 | 2020-08-25 | 珠海拓芯科技有限公司 | 一种eeprom芯片数据读取方法、控制系统、空调器及存储介质 |
CN111737183A (zh) * | 2020-08-05 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种服务器及一种i2c总线的通信故障处理方法和系统 |
CN111881076A (zh) * | 2020-06-29 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 一种国产cpu和bbu通信的i2c总线挂死修复方法及装置 |
CN114688679A (zh) * | 2022-03-11 | 2022-07-01 | Tcl空调器(中山)有限公司 | 一种空调器参数读取方法和空调器 |
CN116048849A (zh) * | 2022-07-20 | 2023-05-02 | 荣耀终端有限公司 | 一种i2c总线的通信控制方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050027913A1 (en) * | 2003-07-31 | 2005-02-03 | International Business Machines Corporation | Device address locking to facilitate optimum usage of the industry standard IIC bus |
CN102521187A (zh) * | 2011-11-29 | 2012-06-27 | 广东东研网络科技有限公司 | 一种i2c总线通信死锁解决方法 |
CN103645975A (zh) * | 2013-11-28 | 2014-03-19 | 华为技术有限公司 | 一种异常恢复的方法及串行总线传输装置 |
CN109388605A (zh) * | 2017-08-10 | 2019-02-26 | 深圳市中兴微电子技术有限公司 | 一种解除i2c总线死锁的方法和装置 |
-
2019
- 2019-12-03 CN CN201911222824.2A patent/CN111007763B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050027913A1 (en) * | 2003-07-31 | 2005-02-03 | International Business Machines Corporation | Device address locking to facilitate optimum usage of the industry standard IIC bus |
CN102521187A (zh) * | 2011-11-29 | 2012-06-27 | 广东东研网络科技有限公司 | 一种i2c总线通信死锁解决方法 |
CN103645975A (zh) * | 2013-11-28 | 2014-03-19 | 华为技术有限公司 | 一种异常恢复的方法及串行总线传输装置 |
CN109388605A (zh) * | 2017-08-10 | 2019-02-26 | 深圳市中兴微电子技术有限公司 | 一种解除i2c总线死锁的方法和装置 |
Non-Patent Citations (1)
Title |
---|
李荫珑 等: "I2C总线设计技术及其死锁的探讨", 《家电科技》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111578489A (zh) * | 2020-05-12 | 2020-08-25 | 珠海拓芯科技有限公司 | 一种eeprom芯片数据读取方法、控制系统、空调器及存储介质 |
CN111881076A (zh) * | 2020-06-29 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 一种国产cpu和bbu通信的i2c总线挂死修复方法及装置 |
CN111737183A (zh) * | 2020-08-05 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种服务器及一种i2c总线的通信故障处理方法和系统 |
CN114688679A (zh) * | 2022-03-11 | 2022-07-01 | Tcl空调器(中山)有限公司 | 一种空调器参数读取方法和空调器 |
CN116048849A (zh) * | 2022-07-20 | 2023-05-02 | 荣耀终端有限公司 | 一种i2c总线的通信控制方法、装置、设备及存储介质 |
CN116048849B (zh) * | 2022-07-20 | 2023-11-07 | 荣耀终端有限公司 | 一种i2c总线的通信控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111007763B (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111007763B (zh) | 一种iic总线解锁的控制方法 | |
CN107193713B (zh) | 一种实现主板管理控制的fpga及方法 | |
US7260749B2 (en) | Hot plug interfaces and failure handling | |
WO2019136595A1 (zh) | 处理i2c总线死锁的方法、电子设备和通信系统 | |
CN111488233A (zh) | 一种处理PCIe设备掉带宽问题的方法及系统 | |
CN103257922B (zh) | 一种快速测试bios与os接口代码可靠性的方法 | |
CN113176493B (zh) | 芯片测试主板、测试系统以及测试方法 | |
CN111966551A (zh) | 远程命令执行结果的校验方法、系统、终端及存储介质 | |
CN103890713B (zh) | 用于管理处理系统内的寄存器信息的装置及方法 | |
US20140143601A1 (en) | Debug device and debug method | |
CN100394392C (zh) | 计算机程序还原模式自动启动控制方法及系统 | |
CN107885626A (zh) | 片上系统可编程器件的系统启动自检测的装置及方法 | |
CN101630277B (zh) | 超频模块及电脑系统及其超频方法 | |
CN111578489A (zh) | 一种eeprom芯片数据读取方法、控制系统、空调器及存储介质 | |
CN113312246B (zh) | 验证环境的控制方法、装置、平台、设备和存储介质 | |
CN101923503A (zh) | 调整内存内部参数的方法及使用其的电脑系统 | |
TW201416855A (zh) | 系統啟動監控方法以及電子裝置 | |
CN111338658B (zh) | 一种基于stm32CPU下载PIC单片机程序的方法及系统 | |
CN115312115B (zh) | 闪存芯片挂起功能的验证方法、装置、设备及介质 | |
CN116882334B (zh) | 判断仿真结束的方法及计算设备 | |
US11520653B2 (en) | System and method for controlling faults in system-on-chip | |
CN114688679B (zh) | 一种空调器参数读取方法和空调器 | |
TWI759208B (zh) | 晶片軟失效之防止能力提升電路和方法、控制晶片及資訊處理裝置 | |
CN101303653A (zh) | 判断计算机系统是否执行重开机的方法及其计算机系统 | |
WO2015147829A1 (en) | System and method of run-time continuous memory check for embedded systems |
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 |