基于DSP與CPLD的I2C總線(xiàn)接口的設計與實(shí)現
如今,為了提高系統的數據處理精度和處理速度,在家用電器、通訊設備及各類(lèi)電子產(chǎn)品中已廣泛應用DSP芯片。但大多數的尚未提供I2C總線(xiàn)接口,本文將介紹一種基于CPLD的已實(shí)現的高速DSP的I2C總線(xiàn)接口方案。
1 I2C通信協(xié)議
I2C總線(xiàn)是一種用于IC器件之間的二線(xiàn)制總線(xiàn)。它通過(guò)SDA(串行數據線(xiàn))及SCL(串行同步時(shí)鐘線(xiàn))兩根線(xiàn)在連到總線(xiàn)上的器件之間傳送信息,通過(guò)軟件尋址實(shí)現片選,減少了器件片選線(xiàn)的連接。CPU不僅能通過(guò)指令將某個(gè)功能單元電路掛靠或摘離總線(xiàn),還可對該單元的工作狀況進(jìn)行檢測,從而實(shí)現對硬件系統的擴展與控制。I2C總線(xiàn)接口電路結構如圖1所示,I2C總線(xiàn)時(shí)序圖如圖2所示。
![]() |
![]() |
I2C總線(xiàn)根據器件的功能通過(guò)軟件程序使其可工作于發(fā)送主或接收從方式??偩€(xiàn)上主和從即發(fā)送和接收的關(guān)系不是一成不變的,而是取決于數據傳送的方向。SDA和SCL均為雙向I/O線(xiàn),通過(guò)上拉電阻接正電源。當總線(xiàn)空閑時(shí),兩根線(xiàn)都是高電平。連接總線(xiàn)的器件的輸出級必須是集電極或漏極開(kāi)路的,以具有?quot;與"功能。I2C總線(xiàn)的數據傳送速率在標準工作方式下為100kbit/s,在快速方式下,最高傳送速率可達400kbit/s。
在數據傳送過(guò)程中,必須確認數據傳送的開(kāi)始和結束信號(也稱(chēng)啟動(dòng)和停止信號)。當時(shí)鐘線(xiàn)SCL為高電平時(shí),數據線(xiàn)SDA由高電平跳變?yōu)榈碗娖絼t定義為"開(kāi)始"信號;當SCL為高電平時(shí),SDA由低電平跳變?yōu)楦唠娖絼t定義為"結束"信號。開(kāi)始和結束信號都由主器件產(chǎn)生。在開(kāi)始信號以后, 總線(xiàn)即被認為處于忙狀態(tài);在結束信號以后的一段時(shí)間內,總線(xiàn)被認為是空閑狀態(tài)。
在I2C總線(xiàn)開(kāi)始信號后,依次送出器件地址和數據,I2C總線(xiàn)上每次傳送的數據字節數不限,但每一個(gè)字節必須為8位,而且每個(gè)傳送的字節后面必須跟一個(gè)認可位(第9位),也叫應答位(ACK)。從器件的響應信號結束后,SDA線(xiàn)返回高電平,進(jìn)入下一個(gè)傳送周期。關(guān)于I2C總線(xiàn)協(xié)議的詳細說(shuō)明請參看參考文獻。
2 設計方案
本文以DSP芯片ADSP21992與時(shí)鐘芯片PCF8583的控制接口為例,說(shuō)明基于CPLD的I2C總線(xiàn)接口設計方案。
ADSP21992是2003年最新推出的160MIPS、帶CAN通信接口的適合于高精度工業(yè)控制和信號處理的高性能DSP芯片。它帶有48K片內RAM、SPORT通信接口、SPI通信接口、8通道14位A/D轉換器以及PWM等。關(guān)于ADSP21992的詳細說(shuō)明請參看參考文獻。
評論