中文引用格式: 徐波,杜曉實,朱力可,等. 基于組件復用的可重構I2C總線讀寫控制電路設計[J]. 電子技術應用,2025,51(7):89-94.
英文引用格式: Xu Bo,Du Xiaoshi,Zhu Like,et al. Design of reconfigurable I2C bus control circuit based on component reuse[J]. Application of Electronic Technique,2025,51(7):89-94.
引言
隨著現(xiàn)代軟件無線電架構不斷朝著綜合化、微型化和智能化的方向發(fā)展,如何平衡SWaP(Size,Weight and Power)三者之間的關系以及應對各類復雜戰(zhàn)場應用環(huán)境給系統(tǒng)設計者帶來極大的挑戰(zhàn)。為了滿足軟件實時性處理的要求,軟件無線電系統(tǒng)通常在高速采樣數(shù)據(jù)流與軟件處理之間利用FPGA先進行預處理,把高速數(shù)據(jù)流降低到軟件處理能夠適應的速度之內[1]。但是由于歷史等諸多原因,當前多數(shù)項目的FPGA設計中繼承代碼較多,暴露出邏輯代碼可移植性差、平臺依賴性強、代碼對開發(fā)人員的依賴度高、程序擴展性弱、靈活性低、系統(tǒng)集成與整合難度大等問題。因此,如何增強設計的可重用性和擴展性,成為當前系統(tǒng)設計中一個常見但卻很容易忽視的問題。
邏輯設計的特點介于軟件設計和硬件設計之間,即利用軟件方法設計硬件電路。軟件工程體系結構設計中通常采用模塊化的開發(fā)方式,遵循“高內聚、低耦合”的原則[2]?!皟染邸奔幢硎灸K內部之間的緊密度,“高內聚”是指一個模塊的功能明確、獨立,模塊內部各元素功能聯(lián)系緊密,“高內聚”設計的優(yōu)點是功能明確,一個模塊只負責一個功能,可維護性強,模塊內部功能相關性高,修改功能后不會影響其他功能?!榜詈稀奔幢硎竟δ苣K之間關聯(lián)度和依賴度,“低耦合”是指盡量減少各功能模塊之間依賴度,“低耦合”設計的優(yōu)點是,由于模塊間的依賴度降低,系統(tǒng)的可重用性和擴展性相應提高,同時模塊功能發(fā)生改變時不會影響其他模塊功能。“高內聚、低耦合”的設計原則大大降低了功能修改的影響,提高了系統(tǒng)重用性。
芯片和FPGA設計中也大量借用了軟件工程中“高內聚、低耦合”的設計思想,在專用芯片(ASIC)和片上系統(tǒng)(SoC)的設計中,將特定功能的模塊以IP核的方式進行定制設計,最后根據(jù)需求將各功能IP核整合集成在通用總線上;在FPGA設計中,器件廠商或IP供應商也提供了大量的IP軟/硬核用于系統(tǒng)的集成開發(fā)。
通用的低速通信IP核包括SPI、UART、CAN、GPIO和I2C等, I2C總線協(xié)議是一種用于芯片間相互通信的串行傳輸總線協(xié)議,它由串行時鐘SCL和串行數(shù)據(jù)線SDA完成全雙工數(shù)據(jù)傳送。由于I2C總線具有連線少、協(xié)議簡單、允許多機控制和同步、可擴展性強的優(yōu)點,因此被廣泛應用于電子裝備中。
隨著工藝的不斷進步,I2C總線協(xié)議版本也不斷演進,因而導致各家芯片支持的波特率等規(guī)格差異很大。對ADI、Linear、TI和3PEAK公司的幾款常用芯片進行了對比,如表1所示。如Linear公司的LTC2991只支持兩種模式:標準模式和快速模式[4];即使是相同廠商的不同系列芯片,支持的波特率模式也有差別,比如ADI公司的ADT75芯片支持兩種模式:標準模式和快速模式[5],但AD7994支持三種波特率模式:標準模式、快速模式和高速模式[6]。
表1 各廠商器件I2C接口速率
其次,由于各家芯片的應用場景和功能不同,導致芯片內部支持的寄存器讀寫屬性、數(shù)據(jù)位寬差異也較大。有的芯片內部寄存器支持單字節(jié)讀寫操作,有的支持多字節(jié)讀寫操作,有的支持單字節(jié)寫入,多字節(jié)讀出操作等,在單字節(jié)和多字節(jié)的讀寫操作方式上也有差異,在發(fā)生芯片廠商更換等場景時,則需要重新定制設計,導致代碼通用化程度低。同時,近年國內外對基于I2C協(xié)議的總線控制器均有大量研究應用,總體來說有采用嵌入式處理器的軟件應用方式、或者通過純硬件以及FPGA等方式等。文獻[3]給出了基于嵌入式處理器并利用普通I/O管腳模擬出I2C串口的方案;李雨桐等[10]給出了基于ADS1115的FPGA接口設計,由此證明了利用有限狀態(tài)機并結合ADS1115的I2C接口時序的方案可行性,但是該方案將狀態(tài)控制和接口時序控制共同設計,代碼耦合度高,不利于代碼的可重用。
為解決上述問題,本文討論并借鑒上述模塊化設計方法,提出一種總線控制的優(yōu)化策略,即基于組件復用方法設計了一種可重構的I2C總線讀寫控制電路。以此為基礎,討論并提供AD7994、TPAFEA008和LTC2991芯片的總線控制接口設計實例與FPGA上的驗證結果。
本文詳細內容請下載:
http://ihrv.cn/resource/share/2000006601
作者信息:
徐波,杜曉實,朱力可,王萍
(中國西南電子技術研究所,四川 成都 610036)