[發明專利]基于I2C接口通過CPLD來實現PCA9555功能的方法有效
| 申請號: | 201710267050.X | 申請日: | 2017-04-21 |
| 公開(公告)號: | CN107066746B | 公開(公告)日: | 2020-09-25 |
| 發明(設計)人: | 蔡享榮 | 申請(專利權)人: | 深圳市同泰怡信息技術有限公司 |
| 主分類號: | G06F13/42 | 分類號: | G06F13/42;G06F30/33 |
| 代理公司: | 深圳市科吉華烽知識產權事務所(普通合伙) 44248 | 代理人: | 王雨時 |
| 地址: | 518000 廣東省深圳市南山區粵*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 i2c 接口 通過 cpld 實現 pca9555 功能 方法 | ||
1.一種基于I2C接口通過CPLD來實現PCA9555功能的方法,其特征在于,包括以下步驟:
步驟A:初始化步驟,所述初始化步驟系將CPLD配制成I2C Slave設備;
步驟B:運行步驟,所述運行步驟系將主板的I2C通訊接口連接到CPLD的GPIO接口;
其中,
所述步驟A中通過狀態機機制實現CPLD配制成I2C Slave;
所述狀態機機制通過VHDL語言來實現;
所述步驟A包括以下分步驟:
步驟A1:將I2C分解成若干狀態;
步驟A2:主板BMC確定CPLD設備地址;
步驟A3:主板BMC向所述CPLD設備發送操作信號;
步驟A4:CPLD解析并執行操作信號;
所述步驟A1中將I2C分解成Idle狀態、Read Address狀態、Send_ACK2狀態、Write_CMD_IO0狀態、Write_CMD_IO1狀態、Read_CMD_IO0狀態、Read_CMD_IO1狀態、Read_CMD_IO9狀態、Send_ACK_1狀態、BMC_COMMAND狀態、Wait_ACK_1狀態、Wait_ACK_2狀態,利用這些狀態有效的把I2C的通信協議分解成一個一個的模塊,這些模塊內部處理完后會跳轉到下一個模塊進行處理,如果處理完成了就會跳轉到Idel狀態,這些模塊之間的跳轉遵循以下原則,首先Master設備發送CPLD設備的地址,當CPLD讀取到的地址值跟自身設置的地址一樣時就會發送ACK信號給Master設備,如果地址不一樣CPLD不進行后續處理,然后根據地址值的最后一位是高電平還是低電平來判斷此命令是讀操作還是寫操作,讀為高電平,寫為低電平,此操作的下一步是Master發送Command數據,Command數據用來判定是對IO0/IO1/IO9的讀操作,還是IO0/IO1的寫操作,CPLD會對此數據解析出來執行對應的操作,當數據操作完成后CPLD會等待Maseter設備發送Wait_ACk的信號或者CPLD發送Send_ACK信號來指示數據的接收或者發送是否已經完成。
2.根據權利要求1所述的基于I2C接口通過CPLD來實現PCA9555功能的方法,其特征在于,所述步驟A2包括以下分步驟:
步驟A21:主板BMC發送尋址信號;
步驟A22:CPLD讀取所述尋址信號,若尋址信號地址與自身相同則發送相應信號,若尋址信號地址與自身不同則不做處理。
3.根據權利要求2所述的基于I2C接口通過CPLD來實現PCA9555功能的方法,其特征在于,所述CPLD通過尋址信號最后一位判讀進行讀操作或寫操作。
4.根據權利要求3所述的基于I2C接口通過CPLD來實現PCA9555功能的方法,其特征在于,所述步驟A3中所述主板BMC發送所述CPLD可解析的具體操作信號。
5.根據權利要求4所述的基于I2C接口通過CPLD來實現PCA9555功能的方法,其特征在于,所述步驟A還包括步驟A5:發送結束信號停止操作;所述步驟A5在步驟A4后執行。
6.根據權利要求5所述的基于I2C接口通過CPLD來實現PCA9555功能的方法,其特征在于:若所述操作為CPLD讀操作,則步驟A5為所述CPLD向所述BMC發送結束信號;若所述操作為CPLD寫操作,則步驟A5為所述BMC向所述CPLD發送結束信號。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市同泰怡信息技術有限公司,未經深圳市同泰怡信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710267050.X/1.html,轉載請聲明來源鉆瓜專利網。





