自動恢復熱插拔i2c總線鎖死的方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種自動恢復熱插拔I2C總線鎖死的方法、裝置和系統(tǒng),所述裝置包括復位檢測器,與I2C主器件連接,用于檢測I2C總線忙碌狀態(tài);復位I2C控制器,與所述I2C總線有效連接,用于對所述I2C總線進行復位。通過在硬件上采用硬件I2C總線接口將所述的I2C主器件和I2C從器件連接,保證總線競爭仲裁,解決總線競爭問題。軟件控制流程中添加復位I2C總線流程,一旦檢測到I2C總線鎖死,復位I2C控制器,重新激活I(lǐng)2C總線,,恢復SDA、SCL信號,即可退出鎖死狀態(tài)。有效解決了I2C局部總線在熱插拔機制下的鎖死問題。
【專利說明】自動恢復熱插拔I2C總線鎖死的方法、裝置和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及串行通信總線領(lǐng)域,尤其是涉及一種自動恢復總線鎖死的【技術(shù)領(lǐng)域】。【背景技術(shù)】
[0002]I2C總線是Philips公司開發(fā)的一種簡單的雙向二線制串行通信總線,包括一條串行數(shù)據(jù)線SDA和一條串行時鐘線SCL,這個總線被稱為Inter-1C或者I2C總線。目前I2C總線已經(jīng)成為業(yè)界嵌入式應用的標準解決方案,被廣泛地應用在各式各樣基于微控器的專業(yè)、消費與電信產(chǎn)品中,作為控制、診斷與通訊總線。多個符合I2C總線標準的器件都可以通過同一條I2C總線進行通信,而不需要額外的地址譯碼器。
[0003]但是I2C總線在設(shè)計上存在著一個先天缺陷,在某一指定的異常工作情況下,I2C總線會進入一種死鎖狀態(tài),其結(jié)果就是總線癱瘓,總線上的所有設(shè)備均無法正常工作。同時,這種總線死鎖的狀態(tài)很難清除,傳統(tǒng)的看門狗復位方法也不能有效地解決這個問題。因此,一旦I2C總線死鎖,就導致設(shè)備癱瘓。這時候只能通過人工手動干預,關(guān)閉啟動設(shè)備電源的方式來重新啟動設(shè)備。這對于自動控制、通信等強調(diào)高可靠性、高維護性的行業(yè)來說,是無法接受的。
[0004]在以I2C為局部總線的熱插拔系統(tǒng)中,I2C總線上有多個節(jié)點,他們都有自己的尋址地址,主控板作為主設(shè)備,負責數(shù)據(jù)、控制流程的集中處理,各個功能板卡負責具體功能的處理。在正常情況下,I2C總線協(xié)議能夠保證總線正常的讀寫操作。但是,當I2C主設(shè)備、I2C從設(shè)備因異常復位時,或者是板卡帶電熱插拔時,都有可能導致I2C總線死鎖產(chǎn)生。具體產(chǎn)生總線鎖死的原因為:在I2C主設(shè)備進行讀寫操作的過程中,主設(shè)備在開始信號后控制SCL產(chǎn)生8個時鐘脈沖,然后拉低SCL信號為低電平,在這個時候,從設(shè)備輸出應答信號,將SDA信號拉為低電平。如果這個時候主設(shè)備異常復位,SCL就會被釋放為高電平。此時,如果從設(shè)備沒有復位,就會繼續(xù)I2C的應答,將SDA —直拉為低電平,直到SCL變?yōu)榈碗娖剑艜Y(jié)束應答信號。而對于I2C主設(shè)備來說.復位后檢測SCL和SDA信號,如果發(fā)現(xiàn)SDA信號為低電平,則會認為I2C總線被占用,會一直等待SCL和SDA信號變?yōu)楦唠娖?。這樣,I2C主設(shè)備等待從設(shè)備釋放SDA信號,而同時I2C從設(shè)備又在等待主設(shè)備將SCL信號拉低以釋放應答信號,兩者相互等待,I2C總線進人一種死鎖狀態(tài)。同樣,當I2C進行讀操作,I2C從設(shè)備應答后輸出數(shù)據(jù),如果在這個時刻I2C主設(shè)備異常復位而此時I2C從設(shè)備輸出的數(shù)據(jù)位正好為0,也會導致I2C總線進入死鎖狀態(tài)。
[0005]同樣,當I2C進行讀操作,I2C從設(shè)備應答后輸出數(shù)據(jù),如果這個時刻I2C設(shè)備異常復位而此時I2C從設(shè)備的數(shù)據(jù)位正好為0,也會導致I2C總線進入死鎖狀態(tài)。
【發(fā)明內(nèi)容】
[0006]為了解決上述技術(shù)問題,本發(fā)明公開了一種自動恢復熱插拔I2C總線鎖死的方法、裝置和系統(tǒng)。
[0007]本發(fā)明所述的自動恢復熱插拔I2C總線鎖死的裝置,包括復位檢測器,與I2C主器件連接,用于檢測I2C總線忙碌狀態(tài);復位I2C控制器,與所述I2C總線有效連接,用于對所述I2C總線進行復位。
[0008]進一步的,所述的I2C總線包括串行時鐘線和雙向串行數(shù)據(jù)線。
[0009]進一步的,所述復位I2C控制器的工作間隔時間為10ms。
[0010]進一步的,本發(fā)明還公開了一種防止I2C總線鎖死的系統(tǒng),所述系統(tǒng)包括I2C主器件和至少一個通過I2C總線與所述I2C主器件連接的I2C從器件,還包括自動恢復熱插拔I2C總線鎖死的裝置;所述I2C主器件用于接收外界發(fā)送的復位信號,所述裝置包括:復位檢測器,與I2C主器件連接,用于檢測I2C總線忙碌狀態(tài);復位I2C控制器,與所述I2C總線有效連接,用于對所述I2C總線進行復位。
[0011]進一步的,所述系統(tǒng)包括一個I2C主器件,控制I2C總線的調(diào)度工作,至少一個I2C從器件,接收I2C主器件發(fā)出的控制信號。
[0012]進一步的,本發(fā)明還公開了一種自動恢復熱插拔I2C總線鎖死的方法,其特征在于:檢測所述I2C主器件是否忙碌,若檢測到忙碌,所述復位檢測器輸送恢復信號給復位I2C控制器對I2C總線進行復位。每IOms對I2C總線進行一次復位。
[0013]本發(fā)明的優(yōu)點在于:本發(fā)明公開了一種自動恢復熱插拔I2C總線鎖死的方法、裝置和系統(tǒng),裝置,所述裝置包括復位檢測器,與I2C主器件連接,用于檢測I2C總線忙碌狀態(tài);復位I2C控制器,與所述I2C總線有效連接,用于對所述I2C總線進行復位。通過在硬件上采用硬件I2C總線接口將所述的I2C主器件和I2C從器件連接,保證總線競爭仲裁,解決總線競爭問題。軟件控制流程中添加復位I2C總線流程,一旦檢測到I2C總線鎖死,復位I2C控制器,重新激活I(lǐng)2C總線,,恢復SDA、SCL信號,即可退出鎖死狀態(tài)。有效解決了 I2C局部總線在熱插拔機制下的鎖死問題。
【專利附圖】
【附圖說明】
[0014]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的有關(guān)本發(fā)明的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0015]圖1為本發(fā)明所述的自動恢復熱插拔I2C總線鎖死裝置的結(jié)構(gòu)框圖;
圖2為本發(fā)明所述的自動恢復熱插拔I2C總線鎖死系統(tǒng)的結(jié)構(gòu)框圖。
【具體實施方式】
[0016]圖1示出本發(fā)明所述的自動恢復熱插拔I2C總線鎖死裝置的結(jié)構(gòu)框圖,包括一復位檢測器10,用于檢測I2C總線忙碌狀態(tài);所述復位檢測器10與復位I2C控制器20相連,將檢測到的I2C總線狀態(tài)信號發(fā)送給復位I2C控制器20,I2C控制器20與所述I2C總線有效連接,根據(jù)復位檢測器10檢測到的I2C總線狀態(tài)信號對所述I2C總線進行復位。
[0017]圖2為本發(fā)明所述的自動恢復熱插拔I2C總線鎖死系統(tǒng)的結(jié)構(gòu)框圖,所述系統(tǒng)包括I2C主器件30和至少一個通過I2C總線與所述I2C主器件連接的I2C從器件40,還包括自動恢復熱插拔I2C總線鎖死的裝置;所述I2C主器件30用于接收外界發(fā)送的復位信號,所述裝置包括:復位檢測器10,與I2C主器件30連接,用于檢測I2C總線忙碌狀態(tài);復位I2C控制器20,與所述I2C總線有效連接,用于對所述I2C總線進行復位。圖2所述的系統(tǒng)包括一個I2C主器件,用于控制I2C總線的調(diào)度工作,至少一個I2C從器件40,用于接收I2C主器件30發(fā)出的控制信號。
[0018]進一步的,本發(fā)明還公開了一種自動恢復熱插拔I2C總線鎖死的方法,復位檢測器10檢測所述I2C主器件30是否忙碌,若檢測到忙碌,所述復位檢測器輸送恢復信號給復位I2C控制器對I2C總線進行復位。每IOms對I2C總線進行一次復位。
[0019]應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應當將說明書作為一個整體,各實施方式中的技術(shù)方案也可以經(jīng)適當組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。
[0020]上文所列出的一系列的詳細說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用以限制本發(fā)明的保護范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種自動恢復熱插拔I2C總線鎖死的裝置,其特征在于: 包括復位檢測器,與I2C主器件連接,用于檢測I2C總線忙碌狀態(tài); 復位I2C控制器,與所述I2C總線有效連接,用于對所述I2C總線進行復位。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于:所述的I2C總線包括串行時鐘線和雙向串行數(shù)據(jù)線。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于:所述復位I2C控制器的工作間隔時間為IOms0
4.一種防止I2C總線鎖死的系統(tǒng),其特征在于:包括I2C主器件和至少一個通過I2C總線與所述I2C主器件連接的I2C從器件,還包括自動恢復熱插拔I2C總線鎖死的裝置;所述I2C主器件用于接收外界發(fā)送的復位信號,所述裝置包括: 復位檢測器,與I2C主器件連接,用于檢測I2C總線忙碌狀態(tài); 復位I2C控制器,與所述I2C總線有效連接,用于對所述I2C總線進行復位。
5.根據(jù)權(quán)利要求4所述的一種防止I2C總線鎖死的系統(tǒng),其特征在于:所述系統(tǒng)包括一個I2C主器件,控制I2C總線的調(diào)度工作,至少一個I2C從器件,接收I2C主器件發(fā)出的控制信號。
6.一種自動恢復熱插拔I2C總線鎖死的方法,其特征在于:檢測所述I2C主器件是否忙碌,若檢測到忙碌,所述復位檢測器輸送恢復信號給復位I2C控制器對I2C總線進行復位。
7.根據(jù)權(quán)利要求7所述的一種自動恢復熱插拔I2C總線鎖死的方法,其特征在于:每IOms對I2C總線進行一次復位。
【文檔編號】H04L12/40GK103856381SQ201210494060
【公開日】2014年6月11日 申請日期:2012年11月28日 優(yōu)先權(quán)日:2012年11月28日
【發(fā)明者】阮海波 申請人:蘇州工業(yè)園區(qū)新宏博通訊科技有限公司