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