基于DSP與CPLD的I2C總線(xiàn)接口的設計與實(shí)現
2.3 DSP與CPLD的接口模塊
根據DSP的時(shí)序,DSP與CPLD之間必須根據雙方(ADSP21992和PCF8583)的時(shí)序制定一個(gè)握手協(xié)議。當讀程序時(shí),由于I2C總線(xiàn)協(xié)議只能支持最高400kbit/s的傳輸速率,而DSP的同步時(shí)鐘可達幾十兆赫。因此,DSP必須等到I2C核把PCF8583的數據讀到CPLD后才能獲得正確的數據(這里可以通過(guò)設立一個(gè)忙標志來(lái)實(shí)現)。而當寫(xiě)程序時(shí),為了節約CPLD的資源(數據緩存特別占用資源),可以設置DSP定時(shí)輸出數據給I2C核,讓?zhuān)?C核的一次只送一個(gè)數據。
2.4 硬件設計
此I2C核可外掛多個(gè)帶有I2C總線(xiàn)接口的芯片,可以通過(guò)發(fā)送不同的器件地址來(lái)選擇。SDA和SCL線(xiàn)必須接上拉電阻。此外,同步時(shí)鐘不能太高,否則會(huì )影響數據傳輸的穩定性。
2.5 時(shí)序
(1)I2C核時(shí)序
以寫(xiě)為例,I2C核時(shí)序如圖5所示。
![]() |
(2)PCF8583時(shí)序
PCF8583的數據是8bit一個(gè)存儲單元,共256個(gè)字節,所以只需要8位地址,而且器件本身有兩種尋址方式:一種是從指定地址開(kāi)始遞增尋址,另一種是從首地址開(kāi)始遞增尋址。兩種尋址方式的時(shí)序是不一樣的,如圖6所示。
![]() |
3 實(shí)現方法
本系統是選用ALTERA公司CPLD7000S系列EPM7128S芯片,并基于MAXPLUSII開(kāi)發(fā)的。I2C核采用VHDL語(yǔ)言編寫(xiě),使用SYNPLIFY 編譯、綜合,用AHDL繪成圖表,用MAXPLUSII仿真和布局。DSP采用VISUAL DSP++2.0編寫(xiě)。最后分別通過(guò)JTAG口下載到芯片并聯(lián)機調試成功。
隨著(zhù)DSP芯片和2C通信方式的廣泛應用,它們之間的接口問(wèn)題必須得到解決。本文提出的解決方案具有非常好的可移植性和產(chǎn)品開(kāi)發(fā)能力。本系統既可以作為一個(gè)單獨的系統運行,又可以作為一個(gè)通信模塊植入一個(gè)大系統中,而其中的I2C核又是一個(gè)可移植IP核。利用CPLD的邏輯可編程性,還可以在其剩下的資源中再開(kāi)發(fā)所需的邏輯器件,既能降低硬件成本又能大大減小系統主板的面積,使電路的設計更具靈活性。
評論