a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于VHDL/CPLD的I2C串行總線控制器設計及實現

基于VHDL/CPLD的I2C串行總線控制器設計及實現

作者: 時間:2010-05-25 來源:網絡 收藏
和并行相比具有結構簡單、占用引腳少、成本低的優點。常見的有USB、IEEE1394、等,其中總線具有使用簡單的特點,在單片機、E2PROM、LCD等器件中具有廣泛的應用。

  (Inter IC BUS)是Philips公司開發的用于芯片之間連接的總線。 I2C總線用兩根信號線進行數據傳輸,一根為串行數據線(SDA),另一根為串行時鐘線(SCL)。I2C總線允許若干兼容器件(如存儲器、A/D轉換器、D/A轉換器、LCD驅動器等)共享總線。I2C總線理論上可以允許的最大設備數,是以總線上所有器件的總電容(其中包括連線本身的電容和連接端的引出電容)不超過400pF為限,總線上所有器件依靠SDA線發送的地址信號尋址,不需要片選線。任何時刻總線只能由一個主器件控制,各從器件在總線空閑時啟動數據傳輸。I2C總線數據傳輸的標準模式速率為100kbps,快速模式速率為400kbps,高速模式速率為3.4Mbps。

本文引用地址:http://www.j9360.com/article/163062.htm

  用VHDL和CPLD數字系統具有傳統方法無可比擬的優越性,它已經成為大規模集成電路最為有效的一種手段。為簡單起見,本文采用VHDL標準模式的I2C總線控制電路。

  1 I2C總線上的數據傳輸

  I2C總線包含時鐘線SCL和數據線SDA兩條連線,SCL由主機產生。I2C總線的數據傳輸流程如圖1所示。其傳輸過程為:首先主機產生起始位,然后傳送第一個字節。8位數據中首先傳送的是數據的最高位MSB,最低位LSB為讀寫指示位,1表示主機讀,0表示主機寫,高7位地址可使主機尋址128個從器件。

基于VHDL/CPLD的I2C串行總線控制器設計及實現

  從機收到第一字節數據后發響應位,主機收到響應位后接著發送第二個字節的數據。數據發送完畢后產生結束位,數據傳送結束。數據傳送時,只有時鐘SCL為低電平時SDA才允許切換,SCL為高電平時SDA必須穩定,此時SDA的電平就是總線轉送的數值。

在SCL為高電平時,SDA線由高到低切換表示起始位,SDA線由低到高切換表示停止位。起始位和停止位由主機產生,在起始位產生后總線處于忙狀態,停止位出現并經過一定時間后總線進入空閑狀態。發送器每發送一個字節后,接收器必須產生一個響應位。響應位的驅動時鐘由主機產生則接收器將SDA線拉低產生響應位。如果主機是接收器,則接收最后一個字節時,響應位為1,通知從機結束發送,否則響應位為0。當從機不能響應從機地址(例如它正在執行一些實時函數,不能接收或發送)時,或響應了從機地址但在傳輸一段時間后不能接收更多的數據字節,此時從機可以通過響應位為1通知主機終止當前的傳輸,于是主機產生一個停止位終止傳輸,或者產生重復開始位開始新的傳輸。

  SDA線上傳送的數據必須為8位,每次傳送可以發送的字節數量不受限制。如果從機要完成一些其他功能(例如執行一個內部中斷服務程序)才能接收或發送下一個數據字節,則從機可以使SCL維持低電位,迫使主機進入等待狀態。從機準備好接收或發送下一個數據字節時,釋放SCL,數據傳輸繼續。

  SDA和SCL都是雙向線路,使用時通過上拉電阻連接到電源。總線空閑時這兩條線路都是高電平,連接到總線的器件的輸出級必須是漏極開路或集電極開路,這樣總線才能執行“線與”的功能。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉