CN102243619A - 一种基于fpga实现多路i2c总线端口扩展的方法 - Google Patents
一种基于fpga实现多路i2c总线端口扩展的方法 Download PDFInfo
- Publication number
- CN102243619A CN102243619A CN2011101712512A CN201110171251A CN102243619A CN 102243619 A CN102243619 A CN 102243619A CN 2011101712512 A CN2011101712512 A CN 2011101712512A CN 201110171251 A CN201110171251 A CN 201110171251A CN 102243619 A CN102243619 A CN 102243619A
- Authority
- CN
- China
- Prior art keywords
- fpga
- bus
- mcu
- port
- interface module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 10
- 238000004891 communication Methods 0.000 claims abstract description 26
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 239000002674 ointment Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明涉及一种基于FPGA实现多路I2C总线端口扩展的方法,用于通信系统的主设备和从设备之间通信,将主设备的主控MCU通过高速并口连接一个FPGA,经编程构成FPGA内部电路,FPGA内部电路包括MCU接口模块和多路I2C接口模块;由FPGA扩展出来的I2C端口完全符合I2C总线协议,在以I2C总线通信的系统中,通过在主设备中使用本发明的通信端口扩展的方法,可以极大的提高主设备和从设备或者从器件的通信速度。
Description
技术领域
本发明涉及通信、测控的设备,特别涉及一种基于FPGA实现多路I2C总线端口扩展的方法。
背景技术
目前,随着通信技术的发展,通信、测控设备电路的各电路板之间、器件之间的通信越来越多,因而对板级通信速度要求也越来越高 。但现有技术还存在不足之处:首先,因为一般通信设备的主控MCU仅有一个I2C总线端口,当该通信设备需要同时与系统间多个I2C总线的从设备进行通信时,主控制设备要通过单一的I2C总线端口与所有从设备或从器件连接,只有一个I2C总线端口的主设备只能依次和从设备或从器件进行通信,当主设备和一个从设备或从器件进行通信时,其他从设备则处于等待状态,不仅浪费了大量的时间,同时由于I2C的通信的标准频率只有100KHz和400KHz(快速),因此主设备和从设备或从器件之间通信速度就会降低。
其次,由于I2C总线协议规定的总线电容不能超过400pF,一个I2C总线上所能挂载的I2C器件是有限的,当系统中存在大量的I2C总线设备和器件时,一路I2C总线已不能满足设备间通信的要求。
发明内容
鉴于现在技术存在的问题,本发明提供一种基于FPGA的多路I2C总线端口扩展技术方案,由FPGA扩展出I2C端口,并使扩展的端口完全符合I2C总线通信协议。
本发明是通过这样的技术方案实现的:一种基于FPGA实现多路I2C总线端口扩展的方法,用于通信系统的主设备和从设备之间通信,其特征在于,将主设备的主控MCU通过高速并口连接一个FPGA,经编程构成FPGA内部电路, FPGA内部电路包括MCU接口模块和多路I2C接口模块;
所述MCU接口模块用于FPGA和主控MCU外围总线的通信,主控MCU和FPGA之间采用高速并口进行通信,每次通信传输一个Byte的数据;
主控MCU和FPGA之间的并口通信采用如下定义:
ADDR_BUS[15:0] :地址总线,表示FPGA中寄存器的地址;
DATA_BUS[7:0] :双向的数据总线;
WRB :写控制信号,低电平有效;
RDB :读控制信号,低电平有效;
RD_IRQ :读中断信号,低电平有效;
所述多路I2C接口模块包括多路I2C接口;每路I2C接口用于连接外部I2C控制器和外部I2C总线;I2C接口主要由Start/Stop及SCL发生器的状态机和主状态机组成;Start/Stop及SCL发生器的状态机用于产生开始,停止信号,以及SCL信号;主状态机用于执行发送和接收操作。
本发明的优点是,通信系统中的所有的从设备或者从器件的I2C通信端口和主设备电路中由FPGA扩展出来的I2C端口依次连接,既可以仅有一个设备连接到一个FPGA扩展出来的某个I2C端口,也可以有多个设备或器件分别连接到FPGA扩展的I2C端口,由FPGA扩展出来的I2C端口完全符合I2C总线协议。在以I2C总线通信的系统中,通过在主设备中使用本发明的通信端口扩展的方法,可以极大的提高主设备和从设备或者从器件的通信速度。
附图说明
图1. FPGA总体示意图;
图2. I2C接口设计示意图;
图3. Start/Stop及SCL发生器的状态机的状态转移图;
图4. I2C接口主状态机的状态转移图。
具体实施方式
为了更清楚的理解本发明,结合附图和实施例详细描述本发明:
FPGA扩展的I2C端口在FPGA端口配置时需要把相应的管脚的电平选择为I2C电平模式。MCU和FPGA之间采用高速并口进行通信,每次可以传输一个Byte的数据。传输速率取决于MCU的系统时钟。
MCU和FPGA的并口采用如下定义:
ADDR_BUS[15:0] :地址总线(表示FPGA中寄存器的地址)
DATA_BUS[7:0] :双向的数据总线
WRB :写控制信号,低电平有效
RDB :读控制信号,低电平有效
RD_IRQ :读中断信号,低电平有效
在FPGA中设置两大类寄存器来实现MCU和FPGA之间交互。
A)设置FPGA和MCU之间交互的寄存器:控制寄存器,状态寄存器和中断寄存器。
B)在FPGA中为每个I2C的扩展端口设置4类寄存器,即控制寄存器,数据寄存器,地址寄存器,状态寄存器。通过并口读 / 写这些寄存器来实现和挂接在该扩展端口上的I2C从设备和器件的通信。
RD_IRQ接在MCU的外部中断,当MCU发出一系列的读取I2C从设备或器件指令后,FPGA在完成了各扩展端口上挂接的从设备或器件数据读取后,在RD_IRQ管脚上产生一个低脉冲信号来在MCU中产生一个中断通知MCU已经完成读取数据的操作。这时MCU就可以从数据寄存器中读取需要的数据了。
如图1所示,FPGA单元是该技术的核心部分,分为 MCU接口模块和多路I2C接口模块两大部分:
MCU接口模块用于实现FPGA和MCU外围总线的通信。
如图2所示,多路I2C接口模块是FPGA的设计核心, I2C接口用于连接I2C控制器和I2C总线,由两个状态机构成:
1)一个是名为Start/Stop及SCL发生器的状态机,用于产生开始,停止信号,以及SCL信号,其状态转移图如图3所示。
2)一个是I2C接口的主状态机,用于执行发送和接收操作,其状态转移图如图4所示。
根据上述说明,结合本领域技术可实现本发明的方案。
Claims (1)
1.一种基于FPGA实现多路I2C总线端口扩展的方法,用于通信系统的主设备和从设备之间通信,其特征在于,将主设备的主控MCU通过高速并口连接一个FPGA,经编程构成FPGA内部电路, FPGA内部电路包括MCU接口模块和多路I2C接口模块;
所述MCU接口模块用于FPGA和主控MCU外围总线的通信,主控MCU和FPGA之间采用高速并口进行通信,每次通信传输一个Byte的数据;
主控MCU和FPGA之间的并口通信采用如下定义:
ADDR_BUS[15:0] :地址总线,表示FPGA中寄存器的地址;
DATA_BUS[7:0] :双向的数据总线;
WRB :写控制信号,低电平有效;
RDB :读控制信号,低电平有效;
RD_IRQ :读中断信号,低电平有效;
所述多路I2C接口模块包括多路I2C接口;每路I2C接口用于连接外部I2C控制器和外部I2C总线;I2C接口主要由Start/Stop及SCL发生器的状态机和主状态机组成;Start/Stop及SCL发生器的状态机用于产生开始,停止信号,以及SCL信号;主状态机用于执行发送和接收操作。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2011101712512A CN102243619A (zh) | 2011-06-23 | 2011-06-23 | 一种基于fpga实现多路i2c总线端口扩展的方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2011101712512A CN102243619A (zh) | 2011-06-23 | 2011-06-23 | 一种基于fpga实现多路i2c总线端口扩展的方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN102243619A true CN102243619A (zh) | 2011-11-16 |
Family
ID=44961683
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2011101712512A Pending CN102243619A (zh) | 2011-06-23 | 2011-06-23 | 一种基于fpga实现多路i2c总线端口扩展的方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN102243619A (zh) |
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102841869A (zh) * | 2012-07-03 | 2012-12-26 | 深圳市邦彦信息技术有限公司 | 一种基于fpga的多通道i2c控制器 |
| CN103530249A (zh) * | 2012-07-06 | 2014-01-22 | 鸿富锦精密工业(深圳)有限公司 | 内部整合电路总线传输系统及其传输方法 |
| CN104077258A (zh) * | 2014-07-03 | 2014-10-01 | 成都智科通信技术有限公司 | SPI与Localbus的互通方法及其应用 |
| CN104598418A (zh) * | 2015-01-27 | 2015-05-06 | 北京奥普维尔科技有限公司 | 一种基于fpga的控制i2c通信的系统及方法 |
| CN105511347A (zh) * | 2015-12-02 | 2016-04-20 | 武汉烽火网络有限责任公司 | 一种通过fpga模拟i2c总线进行信息获取的系统及方法 |
| CN105719390A (zh) * | 2014-12-22 | 2016-06-29 | 富士通先端科技株式会社 | 介质处理装置 |
| CN106066834A (zh) * | 2015-04-21 | 2016-11-02 | 黑莓有限公司 | 具有多设备消息传输的总线通信 |
| CN106250336A (zh) * | 2016-07-19 | 2016-12-21 | 青岛海信电器股份有限公司 | 一种fpga及进行总线切换的方法和系统 |
| CN106649158A (zh) * | 2016-12-27 | 2017-05-10 | 中国科学院微电子研究所 | 通过i2c接口读写内部寄存器堆的装置及方法 |
| CN106951377A (zh) * | 2017-05-24 | 2017-07-14 | 南京典格通信科技有限公司 | 一种基于SoC支持多个I2C接口标准组设备的装置 |
| CN108701109A (zh) * | 2016-04-01 | 2018-10-23 | 英特尔公司 | 用于计算机扩展总线的插件机制的方法、装置和系统 |
| CN109491946A (zh) * | 2018-11-12 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种用于i2c总线扩展的芯片和方法 |
| CN109725568A (zh) * | 2018-12-20 | 2019-05-07 | 武汉船用电力推进装置研究所(中国船舶重工集团公司第七一二研究所) | 一种控制器扩展总线装置 |
| CN109992552A (zh) * | 2019-04-10 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种iic的管理装置及管理方法 |
| CN110781119A (zh) * | 2019-10-22 | 2020-02-11 | 广东高云半导体科技股份有限公司 | 一种i2c总线扩展接口及其控制方法、片上系统 |
| CN111124972A (zh) * | 2019-12-02 | 2020-05-08 | 深圳震有科技股份有限公司 | 基于相同i2c地址的芯片扩展方法、系统及存储介质 |
| CN111651951A (zh) * | 2020-06-04 | 2020-09-11 | 思尔芯(上海)信息科技有限公司 | 一种fpga端口扩展的方法 |
| CN112039745A (zh) * | 2020-09-17 | 2020-12-04 | 广东高云半导体科技股份有限公司 | Can总线通讯控制系统及通信系统 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101256544A (zh) * | 2008-03-25 | 2008-09-03 | 华为技术有限公司 | 内部集成电路总线的扩展方法、装置及系统 |
| CN101324875A (zh) * | 2007-06-11 | 2008-12-17 | 大唐移动通信设备有限公司 | 一种扩展i2c总线的方法及i2c总线扩展装置 |
| CN102023953A (zh) * | 2009-09-17 | 2011-04-20 | 研祥智能科技股份有限公司 | 具有多路i2c总线的系统的控制方法 |
| CN102023954A (zh) * | 2009-09-17 | 2011-04-20 | 研祥智能科技股份有限公司 | 具有多路i2c总线的装置、处理器、系统主板及工控计算机 |
-
2011
- 2011-06-23 CN CN2011101712512A patent/CN102243619A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101324875A (zh) * | 2007-06-11 | 2008-12-17 | 大唐移动通信设备有限公司 | 一种扩展i2c总线的方法及i2c总线扩展装置 |
| CN101256544A (zh) * | 2008-03-25 | 2008-09-03 | 华为技术有限公司 | 内部集成电路总线的扩展方法、装置及系统 |
| CN102023953A (zh) * | 2009-09-17 | 2011-04-20 | 研祥智能科技股份有限公司 | 具有多路i2c总线的系统的控制方法 |
| CN102023954A (zh) * | 2009-09-17 | 2011-04-20 | 研祥智能科技股份有限公司 | 具有多路i2c总线的装置、处理器、系统主板及工控计算机 |
Cited By (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102841869B (zh) * | 2012-07-03 | 2015-06-03 | 深圳市邦彦信息技术有限公司 | 一种基于fpga的多通道i2c控制器 |
| CN102841869A (zh) * | 2012-07-03 | 2012-12-26 | 深圳市邦彦信息技术有限公司 | 一种基于fpga的多通道i2c控制器 |
| CN103530249A (zh) * | 2012-07-06 | 2014-01-22 | 鸿富锦精密工业(深圳)有限公司 | 内部整合电路总线传输系统及其传输方法 |
| CN103530249B (zh) * | 2012-07-06 | 2016-08-03 | 鸿富锦精密工业(深圳)有限公司 | 内部整合电路总线传输系统及其传输方法 |
| CN104077258B (zh) * | 2014-07-03 | 2017-06-16 | 成都智科通信技术股份有限公司 | SPI与Localbus的互通方法及其应用 |
| CN104077258A (zh) * | 2014-07-03 | 2014-10-01 | 成都智科通信技术有限公司 | SPI与Localbus的互通方法及其应用 |
| CN105719390A (zh) * | 2014-12-22 | 2016-06-29 | 富士通先端科技株式会社 | 介质处理装置 |
| CN104598418A (zh) * | 2015-01-27 | 2015-05-06 | 北京奥普维尔科技有限公司 | 一种基于fpga的控制i2c通信的系统及方法 |
| CN106066834B (zh) * | 2015-04-21 | 2020-04-28 | 黑莓有限公司 | 具有多设备消息传输的总线通信 |
| CN106066834A (zh) * | 2015-04-21 | 2016-11-02 | 黑莓有限公司 | 具有多设备消息传输的总线通信 |
| CN105511347A (zh) * | 2015-12-02 | 2016-04-20 | 武汉烽火网络有限责任公司 | 一种通过fpga模拟i2c总线进行信息获取的系统及方法 |
| CN108701109A (zh) * | 2016-04-01 | 2018-10-23 | 英特尔公司 | 用于计算机扩展总线的插件机制的方法、装置和系统 |
| CN106250336A (zh) * | 2016-07-19 | 2016-12-21 | 青岛海信电器股份有限公司 | 一种fpga及进行总线切换的方法和系统 |
| CN106649158B (zh) * | 2016-12-27 | 2020-10-16 | 中国科学院微电子研究所 | 通过i2c接口读写内部寄存器堆的装置及方法 |
| CN106649158A (zh) * | 2016-12-27 | 2017-05-10 | 中国科学院微电子研究所 | 通过i2c接口读写内部寄存器堆的装置及方法 |
| CN106951377A (zh) * | 2017-05-24 | 2017-07-14 | 南京典格通信科技有限公司 | 一种基于SoC支持多个I2C接口标准组设备的装置 |
| CN109491946A (zh) * | 2018-11-12 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种用于i2c总线扩展的芯片和方法 |
| CN109725568A (zh) * | 2018-12-20 | 2019-05-07 | 武汉船用电力推进装置研究所(中国船舶重工集团公司第七一二研究所) | 一种控制器扩展总线装置 |
| CN109992552A (zh) * | 2019-04-10 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种iic的管理装置及管理方法 |
| CN110781119A (zh) * | 2019-10-22 | 2020-02-11 | 广东高云半导体科技股份有限公司 | 一种i2c总线扩展接口及其控制方法、片上系统 |
| CN111124972A (zh) * | 2019-12-02 | 2020-05-08 | 深圳震有科技股份有限公司 | 基于相同i2c地址的芯片扩展方法、系统及存储介质 |
| CN111651951A (zh) * | 2020-06-04 | 2020-09-11 | 思尔芯(上海)信息科技有限公司 | 一种fpga端口扩展的方法 |
| CN111651951B (zh) * | 2020-06-04 | 2024-08-13 | 上海思尔芯技术股份有限公司 | 一种fpga端口扩展的方法 |
| CN112039745A (zh) * | 2020-09-17 | 2020-12-04 | 广东高云半导体科技股份有限公司 | Can总线通讯控制系统及通信系统 |
| CN112039745B (zh) * | 2020-09-17 | 2021-06-22 | 广东高云半导体科技股份有限公司 | Can总线通讯控制系统及通信系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102243619A (zh) | 一种基于fpga实现多路i2c总线端口扩展的方法 | |
| CN102023956B (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
| CN102253913B (zh) | 一种对多板卡端口进行状态获取和输出控制的装置 | |
| CN101329663B (zh) | 一种实现片上系统管脚分时复用的装置及方法 | |
| CN105159860B (zh) | Iic扩展系统及方法 | |
| CN104865457A (zh) | 一种通用检测板卡 | |
| CN109411007B (zh) | 一种基于fpga的通用闪存测试系统 | |
| CN102621974B (zh) | 基于通信总线的工业自动化实时控制装置及控制方法 | |
| CN102012885A (zh) | 采用动态i2c总线实现通讯的系统及方法 | |
| CN102023953A (zh) | 具有多路i2c总线的系统的控制方法 | |
| CN101571842A (zh) | 一种用于arinc429通讯的pci板卡装置 | |
| CN103092175B (zh) | I2c主设备与从设备之间串行时钟线scl控制的方法及装置 | |
| CN110837486A (zh) | 一种基于FPGA的FlexRay-CPCIe通信模块 | |
| CN104834620A (zh) | 串行外设接口spi总线电路、实现方法以及电子设备 | |
| CN102253910A (zh) | 一种i2c传输方法及其装置 | |
| CN103838700A (zh) | 电平复用控制串行通信装置及其通信方法 | |
| CN202421950U (zh) | 一种适用于pci总线板卡的外部扩展装置 | |
| CN110635985A (zh) | 一种FlexRay-CPCIe通信模块 | |
| CN201514768U (zh) | Fpga控制设备的在线flash烧写器 | |
| CN204925719U (zh) | 信号转换装置和系统 | |
| CN204178172U (zh) | 一种基于dsp和fpga的嵌入式通用总线控制设备 | |
| CN205091734U (zh) | 一种基于CPCI接口的SpaceWire总线节点通讯模块 | |
| CN203858630U (zh) | Pcie接口切换装置 | |
| CN205992868U (zh) | 一种基于cpld的电机驱动器 | |
| CN203366045U (zh) | 一种基于can总线的数字量输入输出装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111116 |