中文字幕高清免费日韩视频在线,乡下女人做爰A片,猫咪av成人永久网站在线观看,亚洲高清有码中文字,国产精久久一区二区三区

您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于组件复用的可重构I²C总线读写控制电路设计
基于组件复用的可重构I²C总线读写控制电路设计
电子技术应用
徐波,杜晓实,朱力可,王萍
中国西南电子技术研究所
摘要: 现代软件无线电架构中通常为了满足软件实时性而采用FPGA作预处理功能,但随着软件无线电系统不断朝综合化和智能化方向发展,如何应对各类复杂使用场景给系统设计者带来越来越多的挑战。面对不断激增的需求,FPGA设计中经常暴露出可移植性差、平台依赖性强、程序对开发人员的依赖度高、系统集成与整合度难度大等问题。选取电子装备中常用的I²C总线控制部分,借鉴软件工程中“高内聚、低耦合”的模块化设计思想,提出一种总线控制电路的优化策略,即基于组件复用的方法设计了一种可重构I²C总线读写控制电路。该电路具备按需配置波特率功能,同时具有可选的APB接口以及中断功能,提供读/写数据位宽分别为1 B/2 B/4 B系列控制组件,并通过配置系列组件的方式重构读/写数据位宽。该电路具有实际的工程价值且已成功应用于不同项目以及TPAFEA008、ADT75和LTC2991等常用器件上。
中图分类号:TN47 文献标志码:A DOI: 10.16157/j.issn.0258-7998.256281
中文引用格式: 徐波,杜晓实,朱力可,等. 基于组件复用的可重构I²C总线读写控制电路设计[J]. 电子技术应用,2025,51(7):89-94.
英文引用格式: Xu Bo,Du Xiaoshi,Zhu Like,et al. Design of reconfigurable I²C 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

引言

随着现代软件无线电架构不断朝着综合化、微型化和智能化的方向发展,如何平衡SWaP(Size,Weight and Power)三者之间的关系以及应对各类复杂战场应用环境给系统设计者带来极大的挑战。为了满足软件实时性处理的要求,软件无线电系统通常在高速采样数据流与软件处理之间利用FPGA先进行预处理,把高速数据流降低到软件处理能够适应的速度之内[1]。但是由于历史等诸多原因,当前多数项目的FPGA设计中继承代码较多,暴露出逻辑代码可移植性差、平台依赖性强、代码对开发人员的依赖度高、程序扩展性弱、灵活性低、系统集成与整合难度大等问题。因此,如何增强设计的可重用性和扩展性,成为当前系统设计中一个常见但却很容易忽视的问题。

逻辑设计的特点介于软件设计和硬件设计之间,即利用软件方法设计硬件电路。软件工程体系结构设计中通常采用模块化的开发方式,遵循“高内聚、低耦合”的原则[2]。“内聚”即表示模块内部之间的紧密度,“高内聚”是指一个模块的功能明确、独立,模块内部各元素功能联系紧密,“高内聚”设计的优点是功能明确,一个模块只负责一个功能,可维护性强,模块内部功能相关性高,修改功能后不会影响其他功能。“耦合”即表示功能模块之间关联度和依赖度,“低耦合”是指尽量减少各功能模块之间依赖度,“低耦合”设计的优点是,由于模块间的依赖度降低,系统的可重用性和扩展性相应提高,同时模块功能发生改变时不会影响其他模块功能。“高内聚、低耦合”的设计原则大大降低了功能修改的影响,提高了系统重用性。

芯片和FPGA设计中也大量借用了软件工程中“高内聚、低耦合”的设计思想,在专用芯片(ASIC)和片上系统(SoC)的设计中,将特定功能的模块以IP核的方式进行定制设计,最后根据需求将各功能IP核整合集成在通用总线上;在FPGA设计中,器件厂商或IP供应商也提供了大量的IP软/硬核用于系统的集成开发。

通用的低速通信IP核包括SPI、UART、CAN、GPIO和I²C等, I²C总线协议是一种用于芯片间相互通信的串行传输总线协议,它由串行时钟SCL和串行数据线SDA完成全双工数据传送。由于I²C总线具有连线少、协议简单、允许多机控制和同步、可扩展性强的优点,因此被广泛应用于电子装备中。

随着工艺的不断进步,I²C总线协议版本也不断演进,因而导致各家芯片支持的波特率等规格差异很大。对ADI、Linear、TI和3PEAK公司的几款常用芯片进行了对比,如表1所示。如Linear公司的LTC2991只支持两种模式:标准模式和快速模式[4];即使是相同厂商的不同系列芯片,支持的波特率模式也有差别,比如ADI公司的ADT75芯片支持两种模式:标准模式和快速模式[5],但AD7994支持三种波特率模式:标准模式、快速模式和高速模式[6]。

表1 各厂商器件I²C接口速率

无标题.png

其次,由于各家芯片的应用场景和功能不同,导致芯片内部支持的寄存器读写属性、数据位宽差异也较大。有的芯片内部寄存器支持单字节读写操作,有的支持多字节读写操作,有的支持单字节写入,多字节读出操作等,在单字节和多字节的读写操作方式上也有差异,在发生芯片厂商更换等场景时,则需要重新定制设计,导致代码通用化程度低。同时,近年国内外对基于I²C协议的总线控制器均有大量研究应用,总体来说有采用嵌入式处理器的软件应用方式、或者通过纯硬件以及FPGA等方式等。文献[3]给出了基于嵌入式处理器并利用普通I/O管脚模拟出I²C串口的方案;李雨桐等[10]给出了基于ADS1115的FPGA接口设计,由此证明了利用有限状态机并结合ADS1115的I²C接口时序的方案可行性,但是该方案将状态控制和接口时序控制共同设计,代码耦合度高,不利于代码的可重用。

为解决上述问题,本文讨论并借鉴上述模块化设计方法,提出一种总线控制的优化策略,即基于组件复用方法设计了一种可重构的I²C总线读写控制电路。以此为基础,讨论并提供AD7994、TPAFEA008和LTC2991芯片的总线控制接口设计实例与FPGA上的验证结果。


本文详细内容请下载:

//www.51qz.net/resource/share/2000006601


作者信息:

徐波,杜晓实,朱力可,王萍

(中国西南电子技术研究所,四川 成都 610036)


Magazine.Subscription.jpg

此内容为AET网站原创,未经授权禁止转载。