基于CPLD的I2C總線接口設(shè)計
3 應(yīng)用實例
該模塊工作于主模式,主要應(yīng)用于沒有I2C專用接口的CPU通過并口方便地與具有I2C接口的外設(shè)連接并交換信息。
圖4給出了CPU通過該模塊與X24C04E2PROM接口的例子。本文引用地址:http://www.ex-cimer.com/article/191294.htm
在圖中,PC104 CPU通過數(shù)據(jù)總線、地址總線、讀、寫信號線與I2C接口模塊相連,I2C接口模塊則通過SDL、SDA與X24C04相連,PC104CPU輸出的并行數(shù)據(jù),經(jīng)過I2C接口模塊轉(zhuǎn)換后變成符合I2C總線模式要求的串行數(shù)據(jù)輸出到X24C04,X24C04輸出的串行數(shù)據(jù)經(jīng)過I2C接口模塊轉(zhuǎn)換后,變成并行數(shù)據(jù)供PC104CPU讀取。使用該模塊后CPU操作I2C總線就像操作并口一樣方便。該電路的控制軟件流程如圖5所示。
通過上述應(yīng)用實例可以看出,本文設(shè)計的接口模塊只能工作于主機模式,并且在整個系統(tǒng)中只能有一個主機工作。在從機因處理其他工作而暫不能響應(yīng)主機時,模塊沒有設(shè)計等待功能,只能發(fā)送總線結(jié)束信號結(jié)束當前操作,待從機空閑時再重新開始通信。
4 結(jié)論
本設(shè)計的創(chuàng)新點在于:通過CPLD實現(xiàn)并口到I2C總線接口的轉(zhuǎn)換,可以使不具備I2C總線接口的CPU通過并口方便地控制I2C總線設(shè)備,使用該模塊可以簡化控制軟件的編程,加快系統(tǒng)設(shè)計的實現(xiàn),在I2C總線操作過程中,轉(zhuǎn)換模塊自動發(fā)出開始信號、結(jié)束信號,不需要CPU干預(yù)。
本文設(shè)計的I2C接口模塊只能工作于主模式,只能應(yīng)用于主機系統(tǒng);在模塊的設(shè)計中,沒有考慮多主機的情況,對多主機的總線競爭沒有設(shè)計仲裁功能;模塊的頁面讀寫數(shù)據(jù)數(shù)不能超過32個字節(jié),在32個字節(jié)之內(nèi),CPU可以通過主動設(shè)置工作模式為“110”而終止當前操作,達到連續(xù)讀寫小于32個字節(jié)數(shù)據(jù)的目的,超過32個字節(jié)的連續(xù)數(shù)據(jù)讀寫操作將使模塊工作錯誤。
評論