CoolRunner-Ⅱ器件的微處理器接口邏輯
如圖 uC與I2C之間的交互流程
uC總線協議在Coo1Runner-Ⅱ中是由一個狀態(tài)機實現的,如圖2所示。
在空閑狀態(tài),微控制器將地址送上地址總經,并設置R_W、AS和DS狀態(tài)。如果在定周期,微控制器也會將待寫數據送上數據總線。AS有效表示地址總線上的地址有效,DS有效表示數據總線上數據有效;如果是在讀周期,微控制器驅動數據總線為三態(tài)。同樣,AS有效表示地址總線上的地址有效,但是DS有效表示I2C控制器可以將數據送到數據總線。
圖2 uC總線接口狀態(tài)機
在AS有效的情況下,I2C控制器狀態(tài)進入ADDR狀態(tài)。在此狀態(tài),一方面進行地址譯碼;另一方面將判斷此設備是不是被尋址的設備,并使能內部寄存器。如果被尋址的是CoolRunner-Ⅱ I2C設備,并且DS有效,則I2C控制器將進入DATA_TRS狀態(tài)。如果是讀操作,被請求的數據會被送到數據總線;如果是寫操作,則數據總線上的數據被鎖存在內部被尋址的寄存器中,CoolRunner-II I2C設備自動進入ASSERT_DTACK狀態(tài),DTACK有效。讀操作時表示總線上數據準各好,寫操作時表示數據已經被接收到。
在DTACK有效的情況下,寫操作時,uC將撤銷數據;讀操作時,uC鎖存總線上的數據。R_W信號線被置為讀,并且釋放AS和DS,表明數據傳輸完畢。AS和DS的釋放會促使CoolRunner-II I2C控制器釋放DTACK,狀態(tài)機進入IDLE狀態(tài)。
評論