久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于CPLD的I2C總線接口設計

基于CPLD的I2C總線接口設計

作者: 時間:2011-03-21 來源:網絡 收藏

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

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

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


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

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


上一頁 1 2 3 4 下一頁

關鍵詞: CPLD I2C 總線 接口設計

評論


相關推薦

技術專區

關閉