<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 基于GAL的I2C總線(xiàn)時(shí)序模擬

基于GAL的I2C總線(xiàn)時(shí)序模擬

作者: 時(shí)間:2012-05-15 來(lái)源:網(wǎng)絡(luò ) 收藏
-stroke-width: 0px">基于GAL的I2C總線(xiàn)時(shí)序模擬

  圖2中,撥碼開(kāi)關(guān)K用以設定作為計算機外設的FI1256 MK2的地址,U1用于計算機訪(fǎng)問(wèn)外設時(shí)地址的譯碼,U2則用于實(shí)現用ISA總線(xiàn)的兩條數據線(xiàn)模擬時(shí)序。下面給出兩片的邏輯方程(以FAST-MAP格式書(shū)寫(xiě)),并對照方程簡(jiǎn)要說(shuō)明電路所實(shí)現的功能。

  

基于GAL的I2C總線(xiàn)時(shí)序模擬

  通過(guò)以上方程可使U1完成地址的譯碼功能。當ISA總線(xiàn)上出現的外設地址與撥碼開(kāi)關(guān)設定的地址相匹配時(shí),在其地址有效輸出端ADDR上將得到高電平。由于最多只能有8個(gè)或項,所以方程中使用了ADD1和ADD2兩個(gè)中間運算結果,他們被當作反饋信號在內部重新引到輸入端。使用AEN信號是為了在DMA周期內屏蔽總線(xiàn)上出現的地址。

  U2的時(shí)鐘信號是由地址ADDR和外設寫(xiě)信號IOW的引入是為了消除總線(xiàn)上出現訪(fǎng)問(wèn)內存的信號,同時(shí)利用其上升沿鎖存數據。SCL和SDA可分別用數據線(xiàn)D0和D1模擬。當一個(gè)外設寫(xiě)周期過(guò)后,D0和D1的數據將鎖存在SDA和SCL上,而在下一個(gè)對相同外設地址的外設寫(xiě)周期到來(lái)之前是不變的。這就使得的時(shí)序可以在D0和D1兩根數據線(xiàn)上通過(guò)間隔輸出數據的方式獲得。

  通過(guò)分析圖1給出的數據傳輸格式,可以把傳送的數據流劃分為三種傳送狀態(tài),即傳送起始信號、傳送終止信號和傳送一個(gè)字節(后面帶一個(gè)應答位)。不同的數據過(guò)程只是寫(xiě)入的數據字節數目不同。只要模擬軟件能實(shí)現上述三種傳送狀態(tài),就可以模擬出任何的主控器寫(xiě)操作過(guò)程。因此可以用下列子程序分別實(shí)現上述三種傳送狀態(tài)。

(1)字節傳送子程序

  由于SCL和SDA是用D1和D0模擬的,所以,只要往設定的I/O地址傳送相應的數據就可以模擬傳送不同的數據字節。為了保證數據的可靠傳輸,規范對總線(xiàn)上的時(shí)序作了嚴格的規定。實(shí)驗證明,ISA總線(xiàn)上信號的上升沿和下降沿都在10ns以?xún)?,完全可以滿(mǎn)足I2C總線(xiàn)對上升沿與下降沿的要求,所以不需考慮信號的上升與下降時(shí)間,而只需考慮信號的建立和保持所需的時(shí)間即可。

  根據對I2C的定時(shí)要求,可以在SCL低電平的中點(diǎn)將信號進(jìn)行分割,并把一個(gè)字節數據分為8個(gè)比特來(lái)分別進(jìn)行傳送(傳送0和1分別用兩個(gè)子程序實(shí)現),從而使SDA線(xiàn)上的數據變化總是處在SCL低電平的中點(diǎn)。圖3所示是傳送一比特數據的定時(shí)時(shí)序圖。

  由于在對FI1256 MK2的操作過(guò)程對實(shí)時(shí)性要求不是太高,所以可以使傳送一比特數據的三個(gè)狀態(tài)都持續5.0μs,這樣,就可以滿(mǎn)足所有的定時(shí)要求。把圖3中的兩個(gè)定時(shí)圖進(jìn)行組合即可傳送任意的數據字節。在每個(gè)數據字節的8比特數據后,都會(huì )在SCL上送出一個(gè)時(shí)鐘周期而讓SDA保持高電平,以使FI1256 MK2送出應答信號。應答信號定時(shí)圖與圖3(a)相同。

  

基于GAL的I2C總線(xiàn)時(shí)序模擬



關(guān)鍵詞: GAL I2C總線(xiàn) 時(shí)序模擬

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>