中頻解調(diào)電路中的I2C總線接口電路
(2)地址檢測(cè)。根據(jù)設(shè)計(jì)要求,I2C總線每次通信輸入8位地址數(shù)據(jù)和控制數(shù)據(jù),電路進(jìn)行地址比較以后,如果地址正確,則接收控制數(shù)據(jù)。為了防止地址沖突,增加了地址選擇位,具體實(shí)現(xiàn)如圖4所示。D7~D1為發(fā)送的數(shù)據(jù)地址,由于S1,S2是可設(shè)置端口,有4種組合,即總線接口有4個(gè)地址,分別為1000010,100001l,1001010,100101l,只有當(dāng)D7~D1為100S101S2時(shí),選址成功,即可以有效解決地址沖突。
(3)數(shù)據(jù)串并與并串的轉(zhuǎn)換。電路中,串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)、并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)主要由移位寄存器完成。它以并行方式與輸出模式寄存器和讀狀態(tài)寄存器相連;以串行方式與數(shù)據(jù)線SDA相連。發(fā)送的數(shù)據(jù)由讀狀態(tài)寄存器裝載到數(shù)據(jù)寄存器中。發(fā)送后數(shù)據(jù)又從串行通道返回?cái)?shù)據(jù)寄存器中,接收數(shù)據(jù)時(shí),數(shù)據(jù)寄存器裝入SDA線上的數(shù)據(jù)。
(4)內(nèi)部總線狀態(tài)的檢測(cè)。讀狀態(tài)寄存器連接著內(nèi)部總線的8位狀態(tài)位S0~S7,在讀狀態(tài)時(shí),該寄存器將內(nèi)部總線的狀態(tài)讀進(jìn)去,再以并行方式傳給移位寄存器,移位寄存器以串行的方式傳給數(shù)據(jù)線,即內(nèi)部總線狀態(tài)被主控器讀取,如圖5所示。
(5)并行端口的擴(kuò)展。根據(jù)芯片功能的需要,設(shè)置了4組輸出模式寄存器,分別為調(diào)整模式寄存器、備用寄存器、開關(guān)模式寄存器、數(shù)據(jù)模式寄存器。寄存器個(gè)數(shù)可根據(jù)芯片功能的需要進(jìn)行并行擴(kuò)展,由于每一組寄存器都對(duì)應(yīng)著相應(yīng)的子地址,所以每一組寄存器對(duì)應(yīng)相應(yīng)的時(shí)鐘CPl,CP2,CP3,CP4和控制端C1,C2,C3,C4。這些時(shí)鐘和控制端由1個(gè)帶控制端的2/4譯碼器輸出,所以每次只有1組寄存器工作,如圖5
所示。
(6)狀態(tài)機(jī)與控制邏輯的設(shè)置與優(yōu)化。狀態(tài)機(jī)與控制邏輯作為I2C接口的控制中心,主要用于控制I2C接口電路的使能、啟動(dòng)、終止。圖5給出寄存器組圖的應(yīng)答、復(fù)位、選址及中斷請(qǐng)求等。通過對(duì)狀態(tài)機(jī)與控制邏輯的優(yōu)化設(shè)置,僅使用3位狀態(tài)作為狀態(tài)機(jī)的狀態(tài)端,在滿足更多功能的基礎(chǔ)上,電路更易于實(shí)現(xiàn)。如圖6所示,3個(gè)觸發(fā)器的輸出Q18,Q15,Q16為狀態(tài)機(jī)的狀態(tài),Qd0~Qd8為移位寄存器的輸出,HL91為移位寄存器的可控復(fù)位端,G111為地址檢測(cè)位,HL22為應(yīng)答位,C5,C6為移位寄存器與讀狀態(tài)寄存器的控制端。
上電后,狀態(tài)機(jī)的初始值被置位為全0。HL91作為移位寄存器輸入端的置位端將移位寄存器的輸入端置0。當(dāng)初始信號(hào)到來(lái)時(shí),start信號(hào)變?yōu)?,此時(shí)狀態(tài)機(jī)的狀態(tài)變?yōu)?00,開始傳送尋址字節(jié);當(dāng)8位地址傳送完畢后,假設(shè)為寫狀態(tài),此時(shí)Qd8變?yōu)楦唠娖?,?yīng)答位HL22由高電平變?yōu)榈忘c(diǎn)平,狀態(tài)機(jī)的狀態(tài)變?yōu)?10。HL91變高將移位寄存器的輸入置0,響應(yīng)結(jié)束后,應(yīng)答位由低電平變?yōu)楦唠娖?,狀態(tài)機(jī)的狀態(tài)變?yōu)?10,此時(shí)開始傳輸數(shù)據(jù)。
I2C總線開始工作后,主控器便發(fā)送尋址字節(jié)給移位寄存器,在移位寄存器將7位串行地址并行移出,且與地址寄存器的從地址進(jìn)行比較,當(dāng)?shù)刂废嗤瑫r(shí),Glll變?yōu)?,尋址成功,此時(shí)應(yīng)答信號(hào)HL22變?yōu)?,并告知主控制器。在尋址成功后,如果為讀狀態(tài),則在傳完該字節(jié)之后,產(chǎn)生應(yīng)答信號(hào),狀態(tài)機(jī)變?yōu)?00,移位寄存器控制端C5變?yōu)榈碗娖?,讀狀態(tài)寄存器的控制端C6變?yōu)楦唠娖?,讀狀態(tài)寄存器讀入內(nèi)部總線狀態(tài)。其中,QI20是與讀/寫有關(guān)的控制端,響應(yīng)結(jié)束后,狀態(tài)機(jī)狀態(tài)變?yōu)?10,此時(shí),C5變?yōu)楦唠娖剑珻6變?yōu)榈碗娖?,讀狀態(tài)寄存器將存儲(chǔ)的8位狀態(tài)位并行傳給移位寄存器;移位寄存器將狀態(tài)串行移出,發(fā)送給主控制器;主控制器接收到8位狀態(tài)位后,發(fā)送非應(yīng)答信號(hào)給接收器,使它釋放數(shù)據(jù)線;響應(yīng)結(jié)束后,主控制器產(chǎn)生結(jié)束信號(hào),結(jié)束數(shù)據(jù)傳送。
如果為寫狀態(tài),在接收器產(chǎn)生應(yīng)答信號(hào)后,主控器將發(fā)送子地址給移位寄存器。根據(jù)輸出模式寄存器功能的不同,分別對(duì)應(yīng)3組不同的子地址。在狀態(tài)機(jī)與控制邏輯的作用下,子地址具有自動(dòng)加1功能,所以在讀寫多字節(jié)時(shí),可以實(shí)現(xiàn)自動(dòng)操作,加上后面的2/4譯碼器,每次只選通1路輸出模式寄存器,如圖7所示。
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
隔離器相關(guān)文章:隔離器原理
評(píng)論