<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è) > EDA/PCB > 設計應用 > 基于CPLD的I2C總線(xiàn)接口設計

基于CPLD的I2C總線(xiàn)接口設計

作者: 時(shí)間:2011-03-21 來(lái)源:網(wǎng)絡(luò ) 收藏

是兩線(xiàn)式串行,用于連接微控制器及其外圍設備。該具有如下特點(diǎn):1)只要求兩條總線(xiàn)線(xiàn)路,一條串行數據線(xiàn)(SDA),一條串行時(shí)鐘線(xiàn)(SDL);2)每個(gè)連接到總線(xiàn)的器件都可以通過(guò)唯一的地址尋址,總線(xiàn)中主機可以作為主機發(fā)送器或主機接收器;3)它是一個(gè)真正的多主機總線(xiàn),如果兩個(gè)或更多主機同時(shí)初始化數據傳輸可以通過(guò)沖突檢測和仲裁防止數據被破壞;4)雙向數據傳輸位速率在標準模式下可達100 kbit/s快速模式下可達400kbit/s高速模式下可達3.4 Mbit/s;5)片上的濾波器可以濾去總線(xiàn)數據線(xiàn)上的毛刺以保證數據完整;6)連接到相同總線(xiàn)的IC數量只受到總線(xiàn)的最大電容400 pF限制。總線(xiàn)最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于總線(xiàn)為兩線(xiàn)式總線(xiàn),它占用的空間非常小,減少了電路板的空間和芯片管腳的數量,降低了互聯(lián)成本。它支持多主控制(multimastering),總線(xiàn)中任何能夠進(jìn)行發(fā)送和接收的設備都可以成為主機。任何主機都能夠控制總線(xiàn)信號的傳輸和時(shí)鐘頻率。在任何時(shí)間點(diǎn)上只能有一個(gè)器件作為主機,其他器件作為從機。正是由于I2C總線(xiàn)具有上述諸多優(yōu)點(diǎn),具備I2C接口的器件在儀器設計中已被廣泛采用,比較常見(jiàn)的如:日歷芯片、存儲芯片、模數轉換器以及數模轉換器等。
不幸的是大多數CPU都擅長(cháng)操作并口,而并不具備直接操作I2C總線(xiàn)接口的能力。在系統設計時(shí),為了與具有I2C總線(xiàn)接口的芯片連接,經(jīng)常采用的方法是:利用CPU的2條通用輸入輸出(GPIO)線(xiàn)作為I2C總線(xiàn)使用,用軟件模擬的方法,產(chǎn)生I2C總線(xiàn)需要的控制時(shí)序。該方法雖然可以達到同I2C器件連接的目的,卻不可避免地帶來(lái)軟件編制復雜、占用CPU處理時(shí)間多的弊端。為了在不增加編程難度、不大量占用CPU處理時(shí)間的前提下使不具備I2C總線(xiàn)的CPU也能夠充分享受I2C總線(xiàn)的優(yōu)點(diǎn),本文設計了一種基于的8位并行接口轉I2C總線(xiàn)接口的控制模塊,通過(guò)該模塊,具有并口的CPU可以通過(guò)對并口的讀寫(xiě)完成對I2C總線(xiàn)的控制。

1 I2C總線(xiàn)的基本時(shí)序
I2C總線(xiàn)是由數據線(xiàn)SDA和時(shí)鐘線(xiàn)SCL構成,靠它們在連接于I2C總線(xiàn)的各個(gè)設備之間傳送信息。I2C總線(xiàn)在傳送數據過(guò)程中共有4種類(lèi)型的信號,分別是:開(kāi)始信號、結束信號、應答信號和數據傳輸信號。
開(kāi)始信號:主機控制SDA信號線(xiàn)在SCL線(xiàn)的高電平期間發(fā)生由高電平到低電平的跳變,通知從機開(kāi)始數據傳輸。
結束信號:主機控制SDA信號線(xiàn)在SCL線(xiàn)的高電平期間發(fā)生由低電平到高電平的跳變,通知從機本次數據傳輸結束。
應答信號:接收數據的芯片(主機或者從機)在完整接收到8位數據后,向發(fā)送數據的芯片發(fā)出低電平信號,通知發(fā)送的數據已被接收。發(fā)送數據的芯片應根據應答信號的電平高低判斷數據是否被接收芯片接收。
數據傳輸信號:發(fā)送數據的芯片在SCL脈沖控制下在SDA上串行輸出數據信號,SDA只能在SCL為低電平期間改變狀態(tài),在SCL為高電平期間應保持穩定。
I2C總線(xiàn)上的數據傳輸主要有4種模式,分別是:字節寫(xiě)、頁(yè)面寫(xiě)、當前地址讀、隨機地址讀和順序讀。
字節寫(xiě):對給定的芯片的確定地址單元寫(xiě)入一個(gè)字節的數據。
頁(yè)面寫(xiě):對給定的芯片的確定地址單元所在頁(yè)面連續寫(xiě)入全部的數據。
當前地址讀:讀出當前地址單元中的一個(gè)字節數據。
隨機地址讀:從給定的芯片的確定地址單元中讀出一個(gè)字節數據。
順序讀:從給定的地址后連續讀出n個(gè)字節的數據。
I2C總線(xiàn)各種信號及數據傳輸模式示意圖如圖1所示。

本文引用地址:http://dyxdggzs.com/article/191294.htm


利用設計一種模塊,如果能夠將CPU發(fā)出的并行數據按上述I2C總線(xiàn)數據傳輸模式自動(dòng)轉換成串行數據輸出,同時(shí)將接收到的I2C總線(xiàn)串行數據自動(dòng)轉換成并行數據供CPU讀取,則不具備I2C總線(xiàn)接口的CPU也能通過(guò)對并口的操作輕松實(shí)現與I2C總線(xiàn)連接并同其他具備I2C總線(xiàn)接口的芯片交換數據。為此本文設計了一種基于的工作于I2C總線(xiàn)主機模式的并口轉I2C總線(xiàn)模塊。利用該模塊CPU可以很容易地實(shí)現與I2C總線(xiàn)的接口。

2 I2C總線(xiàn)接口模塊的CPLD實(shí)現
上面簡(jiǎn)要介紹了I2C總線(xiàn)的信號以及I2C總線(xiàn)的數據傳輸模式,如果要使接口模塊正常工作,CPU必須首先要通知模塊執行什么操作,而后再把需要的數據依次送入模塊中,考慮到I2C總線(xiàn)的速率可以在0~3.4 Mbit/s之間,為了適應不同外設的需要,模塊還應在CPU的控制下自由調整數據傳送速率。因此,CPU應能夠向模塊發(fā)送數據傳送速率控制數據、I2C總線(xiàn)工作模式控制數據、信息交換數據,同時(shí)還能從模塊
中讀取工作狀態(tài)數據、模塊接收數據。據此設計出基于CPLD的I2C總線(xiàn)接口模塊如圖2所示。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: CPLD I2C 總線(xiàn) 接口設計

評論


相關(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>