《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于組件復用的可重構I²C總線讀寫控制電路設計
基于組件復用的可重構I²C總線讀寫控制電路設計
電子技術應用
徐波,杜曉實,朱力可,王萍
中國西南電子技術研究所
摘要: 現(xiàn)代軟件無線電架構中通常為了滿足軟件實時性而采用FPGA作預處理功能,但隨著軟件無線電系統(tǒng)不斷朝綜合化和智能化方向發(fā)展,如何應對各類復雜使用場景給系統(tǒng)設計者帶來越來越多的挑戰(zhàn)。面對不斷激增的需求,F(xiàn)PGA設計中經常暴露出可移植性差、平臺依賴性強、程序對開發(fā)人員的依賴度高、系統(tǒng)集成與整合度難度大等問題。選取電子裝備中常用的I²C總線控制部分,借鑒軟件工程中“高內聚、低耦合”的模塊化設計思想,提出一種總線控制電路的優(yōu)化策略,即基于組件復用的方法設計了一種可重構I²C總線讀寫控制電路。該電路具備按需配置波特率功能,同時具有可選的APB接口以及中斷功能,提供讀/寫數(shù)據(jù)位寬分別為1 B/2 B/4 B系列控制組件,并通過配置系列組件的方式重構讀/寫數(shù)據(jù)位寬。該電路具有實際的工程價值且已成功應用于不同項目以及TPAFEA008、ADT75和LTC2991等常用器件上。
中圖分類號:TN47 文獻標志碼:A DOI: 10.16157/j.issn.0258-7998.256281
中文引用格式: 徐波,杜曉實,朱力可,等. 基于組件復用的可重構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.
Design of reconfigurable I²C bus control circuit based on component reuse
Xu Bo,Du Xiaoshi,Zhu Like,Wang Ping
Southwest China Institute of Electronic Technology
Abstract: In modern software defined radio architectures, FPGA is usually used for preprocessing functions to meet real-time software requirements. However, as software defined radio systems continue to develop towards integration and intelligence, how to cope with various complex usage scenarios brings more and more challenges to system designers. Faced with the constantly increasing demand, FPGA design often exposes problems such as poor portability, strong platform dependence, high program dependence on developers, and difficulty in system integration and combination. This article selects the commonly used I²C bus control part in electronic equipment, draws on the modular design concept of "high cohesion, low coupling" in software engineering, and proposes an optimization strategy for bus control circuits. Based on component reuse, a reconfigurable I²C bus read-write control circuit is designed. This circuit has the function of configuring baud rate as needed, as well as optional APB interface and interrupt function. It provides a series of control components with read/write data bit widths of 1 B/2 B/4 B, and reconstructs the read/write data bit width by configuring the series components. This circuit has parctical engineering application value and has been successfully applied to domestically produced devices such as TPAFEA008, as well as commonly used devices such as ADT75 and LTC2991.
Key words : reconfigurable component reuse;I²C bus read-write control;FPGA design;software defined radio;domestic components

引言

隨著現(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接口速率

無標題.png

其次,由于各家芯片的應用場景和功能不同,導致芯片內部支持的寄存器讀寫屬性、數(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)


Magazine.Subscription.jpg

此內容為AET網站原創(chuàng),未經授權禁止轉載。