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