CN102243619A - 一种基于fpga实现多路i2c总线端口扩展的方法 - Google Patents

一种基于fpga实现多路i2c总线端口扩展的方法 Download PDF

Info

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
Application number
CN2011101712512A
Other languages
English (en)
Inventor
王东锋
杨林
朱力
陈伟峰
张睿
钱瑞杰
张天晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Optical Electrical Communication Technology Co Ltd
Original Assignee
Tianjin Optical Electrical Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Optical Electrical Communication Technology Co Ltd filed Critical Tianjin Optical Electrical Communication Technology Co Ltd
Priority to CN2011101712512A priority Critical patent/CN102243619A/zh
Publication of CN102243619A publication Critical patent/CN102243619A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明涉及一种基于FPGA实现多路I2C总线端口扩展的方法,用于通信系统的主设备和从设备之间通信,将主设备的主控MCU通过高速并口连接一个FPGA,经编程构成FPGA内部电路,FPGA内部电路包括MCU接口模块和多路I2C接口模块;由FPGA扩展出来的I2C端口完全符合I2C总线协议,在以I2C总线通信的系统中,通过在主设备中使用本发明的通信端口扩展的方法,可以极大的提高主设备和从设备或者从器件的通信速度。

Description

一种基于FPGA实现多路I2C总线端口扩展的方法
技术领域
    本发明涉及通信、测控的设备,特别涉及一种基于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信号;主状态机用于执行发送和接收操作。
CN2011101712512A 2011-06-23 2011-06-23 一种基于fpga实现多路i2c总线端口扩展的方法 Pending CN102243619A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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总线的装置、处理器、系统主板及工控计算机

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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