999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談I2C總線的死鎖恢復

2018-12-06 14:55:05
新商務周刊 2018年23期
關鍵詞:信號設備

1 引言

I2C總線是Philips公司推出的一種二線制同步串行總線,它由時鐘線(SCL)和數據線(SDA)兩根傳輸線組成。I2C總線具有接口線少、控制簡單、器件封裝形式小、兼容性好、通信速率較高等優點,使它成為很多器件的標準接口和標準功能模塊。它成為近年來微電子通信控制領域廣泛采用的一種總線標準。I2C總線雖然簡單,但在實際使用過程中出現的問題還不少,其中最為常見的問題就是I2C總線死鎖。當出現I2C總線死鎖時,總線上的設備無法正常工作,整個總線陷入癱瘓狀態,這對于一些要求高可靠性和高安全性的自動控制系統而言,是無法接受的。

2 I2C總線的工作原理及特性

I2C總線的標準數據幀由主設備發出的開始信號(START)作為起始標志,再是包含讀/寫操作標志位的從地址信號,緊跟其后的是與從地址匹配的從設備的應答信號(ACK),接著是由從設備(讀操作)或主設備(寫操作)發出的數據信號,緊跟每一個字節數據信號(以8位數據為例)之后是接收設備的應答信號(ACK)。當數據信號傳輸完畢后,最后是主設備發出的結束信號(STOP)作為數據幀的結束標志。

I2C總線的特性可概括為:

(1)接入I2C總線的器件,SCL和SDA都必須是雙向開漏結構的,通過總線上的上拉電阻拉到邏輯高電平,這樣的結構可以實現線與(&)功能;

(2)一般情況下,I2C總線的SDA只有在SCL為低電平的時候才能改變,SCL為高電平的時候SDA需要保持;

(3)例外的,由主機發出的起始信號START(SCL為高時,SDA由高變低)和停止信號STOP(SCL為高時,SDA由低變高);

(4)由于I2C總線的線與結構特性,只要總線上任何一個器件拉低了SDA或SCL,其他器件都無法拉高它們。如果有器件不釋放總線,則整個總線上的通訊都會被暫停。

3 I2C總線死鎖產生的原因

3.1 總線電平被拉低的原因分析

根據I2C總線的特性,SDA或SCL被拉低后,I2C總線將出現死鎖的情況。對于SCL,一般標準I2C從設備不會影響到SCL,只有是MCU作為I2C從設備時出現程序錯誤,或在多主的情況下出現控制沖突,而導致SCL被拉低,但一般可以通過程序優化或添加防沖突機制加以避免。因此在此重點討論單主控制下SDA被拉低的情況。

主設備主動拉低SDA不會導致I2C總線死鎖,因為可以通過復位I2C來重新進行I2C總線的控制。而I2C從設備一般不具備復位引腳,如果其將SDA拉低,將導致死鎖的發生,即使主設備復位都無法解除。

根據I2C總線的工作原理,以下兩種情況會出現從設備拉低SD A:

(1)主設備向從設備寫數據或地址時,從設備如果發出ACK應答,則會在第9個CLK的期間拉低SDA;

(2)主設備讀數據的時候,從設備會在數據位為0時對應的CL K期間拉低SDA。

根據I2C的特性,SCL為高的時候,SDA的電平應保持,而等到SCL變低后,SDA電平才能發生改變。如果在SCL的前半個周期變為高電平后,主設備因某些原因不再拉低SCL,則從設備將持續拉低S DA,I2C總線將一直處于被占用狀態。

3.2 主設備突然復位導致I2C總線死鎖

在主設備進行寫數據或地址操作,當從設備發出ACK應答信號拉低SDA時,如果主設備突然復位,將導致時鐘信號不完整,進而引起從設備持續拉低SDA。復位后的主設備也就無法給出啟動信號或停止信號來使從設備釋放對總線的占用,這樣就出現了I2C總線死鎖。

在主設備進行讀數據操作,當從設備發出的數據位為0而拉低S DA時,如果主設備突然復位,類似的,因從設備收不到完整的時鐘信號,導致持續拉低SDA,進而出現I2C總線死鎖的情況。

3.3 主設備給出錯誤的ACK信號導致I2C總線死鎖

在主設備進行讀數據操作過程中,當接收完最后一個數據時,正常情況應該給出NACK信號告知從設備不再讀取新的數據。但如果主設備錯誤地設置了的讀取數據長度寄存器值,或因外部干擾等因素導致錯誤地發出了ACK信號。于是從設備將繼續發送新數據,若數據的第一位恰巧為0,從設備將對應地拉低SDA。而對于主設備而言,其已完成所有數據的接收,準備給出停止信號STOP,但由于從設備拉低了SDA,導致主設備無法發出停止信號,這樣主從設備相互等待,陷入死鎖的境地。

4 I2C總線死鎖恢復的方法

解決I2C總線死鎖問題的方法較多,大致有以下幾種:

(1)選用自帶防止I2C總線死鎖的從設備;

(2)選用帶復位輸入的I2C從設備;

(3)從設備的電源由主設備控制;

(4)I2C總線上增加一個額外的總線恢復設備;

(5)在I2C總線上串入一個具有死鎖恢復功能的I2C緩沖器;

(6)在I2C主設備中增加死鎖自恢復程序。

在這些解決方法中,“增加死鎖自恢復程序”相對比較方便和實用,獲得了較廣泛的現場應用。但使用這個方法的前提條件是,主設備的SDA和SCL可以配置為普通的GPIO功能。

死鎖自恢復程序的工作原理為:用GPIO在SCL上模擬時鐘信號,同時檢測SDA的狀態有沒有被釋放(變為高電平),一旦檢測到SDA被釋放,重新將SDA和SCL配置為I2C功能,發送停止信號ST OP,告知從設備前次被中斷的通信結束了,至此I2C總線死鎖被解除恢復。

5 結語

分析了I2C總線產生死鎖的原因和出現死鎖的不同情況,著重描述了“死鎖自恢復程序”的實現原理。設計者可根據上述分析的原因,采取對應的措施加以避免,同時可采用“死鎖自恢復方法”有效解決I2C總線死鎖帶來的影響,使系統的可靠性和安全性得到提高。

猜你喜歡
信號設備
諧響應分析在設備減振中的應用
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
孩子停止長個的信號
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
如何在設備采購中節省成本
主站蜘蛛池模板: 国产人成网线在线播放va| 成人自拍视频在线观看| 国产欧美亚洲精品第3页在线| 在线观看无码av免费不卡网站| 99热这里只有精品5| 亚洲大尺码专区影院| 国产亚洲精品自在久久不卡| 久久久精品国产亚洲AV日韩 | 欧美笫一页| 99视频国产精品| 亚洲欧洲综合| 99ri国产在线| 九九热在线视频| 精品国产Av电影无码久久久| 久久久国产精品无码专区| 亚洲欧洲综合| www亚洲精品| 欧美午夜视频在线| 国产69精品久久| 国产91丝袜在线播放动漫 | 亚洲精品波多野结衣| av色爱 天堂网| 2021最新国产精品网站| 亚洲午夜福利精品无码不卡| 国产精品一区二区在线播放| 国产精品入口麻豆| 91麻豆国产视频| a级毛片视频免费观看| 中文字幕久久精品波多野结| 人妻一本久道久久综合久久鬼色| 国产精品视频系列专区| 91免费观看视频| 亚洲天堂日韩在线| 亚洲国产精品无码久久一线| 亚洲青涩在线| 国产美女一级毛片| 亚洲色图欧美激情| 九九热这里只有国产精品| 在线观看热码亚洲av每日更新| 亚洲91在线精品| 国产欧美成人不卡视频| 久久人搡人人玩人妻精品一| 久久精品丝袜高跟鞋| 日韩毛片在线视频| 一区二区影院| 激情综合婷婷丁香五月尤物| 国产又爽又黄无遮挡免费观看 | 极品私人尤物在线精品首页| 亚洲天堂日韩av电影| 欧美一级高清免费a| 日韩毛片基地| 日本精品影院| 国产在线一区视频| 精品久久久久久中文字幕女| 久久久久国产一区二区| 亚洲一区精品视频在线| 五月婷婷综合在线视频| 久久婷婷五月综合97色| 国产极品粉嫩小泬免费看| 成人一级黄色毛片| 在线色综合| 亚洲人精品亚洲人成在线| av午夜福利一片免费看| 成AV人片一区二区三区久久| 亚洲色图在线观看| 热久久这里是精品6免费观看| 极品尤物av美乳在线观看| 欧美成人免费午夜全| 秋霞午夜国产精品成人片| 成人中文字幕在线| 日日碰狠狠添天天爽| 国产三级视频网站| 红杏AV在线无码| AV色爱天堂网| 一本大道视频精品人妻 | 一级在线毛片| 欧美中文字幕无线码视频| 999国产精品永久免费视频精品久久 | 日韩欧美网址| 日本精品视频| 中文字幕日韩丝袜一区| 亚洲成在人线av品善网好看|