[發明專利]一種從I2C設備解掛死的方法有效
| 申請號: | 202010381034.5 | 申請日: | 2020-05-08 |
| 公開(公告)號: | CN111538626B | 公開(公告)日: | 2023-03-24 |
| 發明(設計)人: | 周健 | 申請(專利權)人: | 成都蓉博通信技術有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F13/42 |
| 代理公司: | 成都天嘉專利事務所(普通合伙) 51211 | 代理人: | 鄧小兵 |
| 地址: | 610000 四川省成都*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 i2c 設備 解掛死 方法 | ||
本發明公開了一種從I2C設備解掛死的方法,通過現有的從I2C設備的微處理器MCU上新增SDA_in管腳和SCL_in管腳,以及在微處理器MCU內部利用邏輯單元虛擬出計數器和比較器,再采用特定的連接關系就能夠實現從I2C設備的解掛死,整個方案中不需要另外增加外圍電子物料,具有成本低的優點。
技術領域
本發明涉及通信技術領域,尤其涉及一種從I2C設備解掛死的方法。
背景技術
I2C總線廣泛應用于光模塊中,大多數光模塊都需要實現一個從I2C設備,以便于和主板上的主I2C設備進行通訊。如圖2所示,I2C總線包括SDA信號線和SCL信號線,從I2C設備通過SDA信號線和SCL信號線與主I2C設備進行通訊。
但在某些時候,從I2C設備發生異常不能正確響應主I2C設備的訪問時,會將SDA信號一直拖死到低電平,這一異常現象被稱之為從I2C設備“掛死”,注意從I2C設備在正常工作狀態下SDA信號是處于被從I2C設備”釋放”的狀態,即被外部的上拉電阻至VCC而呈現出高電平。于是一些光模塊的多源協議規定,當光模塊的從I2C設備不能正確響應主I2C設備的訪問時,主I2C設備在探知到SDA被異常“掛死”后,可以發出連續9個SCL的脈沖信號到從I2C設備,則從I2C設備應必須重置其從I2C接口并恢復到正常工作狀態,這一過程被稱之為從I2C設備“解掛死”。
雖然在光模塊的多源協議中規定了從I2C設備掛死時可通過主I2C設備發出連續9個SCL的脈沖信號進行解掛死,但在實際應用過程中,光模塊因為自身硬件條件有限,通常忽略從I2C設備的“解掛死”功能。而當光模塊的從I2C設備發生“掛死”時,就需要施工人員到現場插拔光模塊重新上電復位,否則光模塊的從I2C設備將無法工作進而導致和主板的I2C通訊異常,這不僅影響了正常的通訊,還會產生較大的人工成本。因此,需要對現有技術進行改進。
發明內容
本發明的目的在于克服現有技術中存在的上述問題,提供了一種從I2C設備解掛死的方法,本發明所要解決的技術問題是以低成本實現從I2C設備的解掛死。
為實現上述目的,本發明采用的技術方案如下:
一種從I2C設備解掛死的方法,其特征在于:包括以下步驟:
步驟一:在從I2C設備的微處理器MCU上新增SDA_in管腳和SCL_in管腳,并在微處理器MCU內部利用邏輯單元虛擬出計數器和比較器,然后將SDA_in管腳的一端與并聯在SDA信號線上,將SDA_in管腳的另一端分別與計數器的低電平使能端和高電平清零端相連;將SCL_in管腳的一端并聯在SCL信號線上,將SCL_in管腳的另一端與計數器的時鐘端相連,將比較器的輸入端與計數器的輸出端相連,將比較器的輸出端與從I2C設備的高電平復位端相連;
步驟二:從I2C設備掛死時,由主I2C設備通過SCL信號線向從I2C設備連續發送9個SCL脈沖信號,此時SCL_in將接收到9個SCL脈沖信號;當SDA_in=1時,計數器的輸出值被異步清零;當SDA_in=0時,計數器被同步使能,來一個SCL_in的上升沿計數器的輸出值就累加1;
步驟三:將計數器的輸出值送入比較器中進行比較,若累加的計數大于8,則比較器向從I2C設備發出復位信號,使從I2C設備復位重啟,從I2C設備重啟后釋放SDA信號線,完成從I2C設備的解掛死。
所述步驟三中,當從I2C設備重啟完成解掛死后,SDA_in=1,計數器被清零,從I2C設備不再被復位。
所述計數器為4-bit計數器。
采用本發明的優點在于:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都蓉博通信技術有限公司,未經成都蓉博通信技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010381034.5/2.html,轉載請聲明來源鉆瓜專利網。





