新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP與CPLD的I2C總線接口的設(shè)計與實現(xiàn)

基于DSP與CPLD的I2C總線接口的設(shè)計與實現(xiàn)

作者: 時間:2012-04-14 來源:網(wǎng)絡(luò) 收藏
帶有I2C總線接口的器件可以十分方便地將一個或多個單片機及外圍器件組成單片機系統(tǒng)。盡管這種總線結(jié)構(gòu)沒有并行總線那樣大的吞吐能力,但由于連接線和連接引腳少,因此其構(gòu)成的系統(tǒng)價格低、器件間總線連接簡單、結(jié)構(gòu)緊湊,而且在總線上增加器件不影響系統(tǒng)的正常工作,系統(tǒng)修改和可擴展性好。即使有不同時鐘速度的器件連接到總線上,也能很方便地確定總線的時鐘。

如今,為了提高系統(tǒng)的數(shù)據(jù)處理精度和處理速度,在家用電器、通訊設(shè)備及各類電子產(chǎn)品中已廣泛應(yīng)用DSP芯片。但大多數(shù)的尚未提供I2C總線接口,本文將介紹一種基于CPLD的已實現(xiàn)的高速DSP的I2C總線接口方案。

1 I2C通信協(xié)議

I2C總線是一種用于IC器件之間的二線制總線。它通過SDA(串行數(shù)據(jù)線)及SCL(串行同步時鐘線)兩根線在連到總線上的器件之間傳送信息,通過軟件尋址實現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個功能單元電路掛靠或摘離總線,還可對該單元的工作狀況進行檢測,從而實現(xiàn)對硬件系統(tǒng)的擴展與控制。I2C總線接口電路結(jié)構(gòu)如圖1所示,I2C總線時序圖如圖2所示。


I2C總線根據(jù)器件的功能通過軟件程序使其可工作于發(fā)送主或接收從方式??偩€上主和從即發(fā)送和接收的關(guān)系不是一成不變的,而是取決于數(shù)據(jù)傳送的方向。SDA和SCL均為雙向I/O線,通過上拉電阻接正電源。當總線空閑時,兩根線都是高電平。連接總線的器件的輸出級必須是集電極或漏極開路的,以具有?quot;與"功能。I2C總線的數(shù)據(jù)傳送速率在標準工作方式下為100kbit/s,在快速方式下,最高傳送速率可達400kbit/s。

在數(shù)據(jù)傳送過程中,必須確認數(shù)據(jù)傳送的開始和結(jié)束信號(也稱啟動和停止信號)。當時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖絼t定義為"開始"信號;當SCL為高電平時,SDA由低電平跳變?yōu)楦唠娖絼t定義為"結(jié)束"信號。開始和結(jié)束信號都由主器件產(chǎn)生。在開始信號以后, 總線即被認為處于忙狀態(tài);在結(jié)束信號以后的一段時間內(nèi),總線被認為是空閑狀態(tài)。

在I2C總線開始信號后,依次送出器件地址和數(shù)據(jù),I2C總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為8位,而且每個傳送的字節(jié)后面必須跟一個認可位(第9位),也叫應(yīng)答位(ACK)。從器件的響應(yīng)信號結(jié)束后,SDA線返回高電平,進入下一個傳送周期。關(guān)于I2C總線協(xié)議的詳細說明請參看參考文獻。

2 設(shè)計方案

本文以DSP芯片ADSP21992與時鐘芯片PCF8583的控制接口為例,說明基于CPLD的I2C總線接口設(shè)計方案。

ADSP21992是2003年最新推出的160MIPS、帶CAN通信接口的適合于高精度工業(yè)控制和信號處理的高性能DSP芯片。它帶有48K片內(nèi)RAM、SPORT通信接口、SPI通信接口、8通道14位A/D轉(zhuǎn)換器以及PWM等。關(guān)于ADSP21992的詳細說明請參看參考文獻。


上一頁 1 2 3 下一頁

關(guān)鍵詞: DSP CPLD I2C總線

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉