CN102915010A - 基于fpga的串行通信分配装置及通信方法 - Google Patents
基于fpga的串行通信分配装置及通信方法 Download PDFInfo
- Publication number
- CN102915010A CN102915010A CN2012103472611A CN201210347261A CN102915010A CN 102915010 A CN102915010 A CN 102915010A CN 2012103472611 A CN2012103472611 A CN 2012103472611A CN 201210347261 A CN201210347261 A CN 201210347261A CN 102915010 A CN102915010 A CN 102915010A
- Authority
- CN
- China
- Prior art keywords
- data
- port com
- coma
- comb
- receive
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明的基于FPGA的串行通信分配装置,串行通信分配装置由FPGA芯片构成,特征在于:FPGA芯片的引脚被设置为可与上位机、控制设备相连接的多个通讯端口,FPGA芯片内设置有均与通讯端口数目相等的波特率发生器、接收数据缓冲区、状态寄存器、发送数据缓冲区、控制寄存器、接收控制器和发送控制器,波特率发生器实现不同速率下数据的收发;状态寄存器中包含接收中断标志位RI、发送中断标志位TI;FPGA芯片内还设置有将不同的通讯端口连通的多路模拟开关。本发明的通信分配装置,实现了上位机与多个控制设备之间的相互通讯,可进行不同速率下数据的收发。整个装置简单、实用、可靠、稳定,成本低廉,易于实现,适合多种场合、多个节点的串行通信使用。
Description
技术领域
本发明涉及一种基于FPGA的串行通信分配装置及通信方法,更具体的说,尤其涉及一种对多个节点同时进行控制的基于FPGA的串行通信分配装置及通信方法。
背景技术
随着通信技术的发展,串口通信在工业控制及实时通信方面的应用已经非常广泛;尤其是对于一个主控点对多个节点的控制来说,应用十分普及。目前采用的串行分配装置大部分都是有集成电路构成,一般由微控制器和外围的处理模块构成,这种构成形式,采用的元器件数量多,存在造价高、体积大、能耗高的缺点。
FPGA芯片作为一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,有利于提高系统集成度、可靠性。
发明内容
本发明为了克服上述技术问题的缺点,提供了一种对多个节点同时进行控制的基于FPGA的串行通信分配装置及通信方法。
本发明的基于FPGA的串行通信分配装置,串行通信分配装置由FPGA芯片构成,其特别之处在于:所述FPGA芯片的引脚被设置为可与上位机、控制设备相连接的多个通讯端口,FPGA芯片内设置有均与通讯端口数目相等的波特率发生器、接收数据缓冲区、状态寄存器、发送数据缓冲区、控制寄存器、接收控制器和发送控制器,波特率发生器实现不同速率下数据的收发;接收控制器用于取出接收数据缓冲区内的数据,发送控制器用于将发送数据缓冲区内的数据发出,状态寄存器中包含接收中断标志位RI、发送中断标志位TI;FPGA芯片内还设置有将不同的通讯端口连通的多路模拟开关。
采用现场可编程门阵列FPGA可实现串行通信分配装置的硬件设置,使FPGA芯片的引脚形成多个通讯端口,以便与上位机和多个控制设备连接通讯。为了实现数据的接收和转发功能,一组波特率发生器、接收数据缓冲区、状态寄存器、发送数据缓冲区、控制寄存器、接收控制器和发送控制器用于管理一个通讯端口的数据接收和发送。多路模拟开关实现不同通讯端口之间的连通。
本发明的基于FPGA的串行通信分配装置,所述通讯端口采用RS232串行通讯。RS232为较为常用的串行通讯形式。
本发明的基于FPGA的串行通信分配装置,所述通讯接口通过电平转换器连接有RS485或RS422通讯模块。如果需要采用RS485或RS422通讯,需要增加电平转换器,以便转化为RS485或RS422电平。
本发明的基于FPGA的串行通信分配装置的通讯方法,所述通讯端口包括COM1~COMn共n个端口,设要进行数据收发的上位机、控制设备分别接COMa、COMb通讯端口,a<b≤n;数据收发方法包括以下步骤:a.接收状态判断,判断COMa通讯端口的接收中断标志位RI是否被置“1”,如没有被置1,则继续检测;如被置1,则表示上位机的数据接收完成,执行步骤b;b.接收数据和RI清零,将COMa通讯端口的数据接收缓冲区内的数据取出,将COMa通讯端口的接收中断标志位RI清零,释放接收缓冲区,以便接收新的数据;c.转移发送数据,将从COMa的数据接收缓冲区内取出的数据存入到COMb的数据发送缓冲区;d.发送至控制设备,判断与控制设备相连接的COMb通讯端口是否有发送请求,如果没有,则继续等待;如果有请求,则将COMb的数据发送缓冲区内的数据发送至与COMb端口相连的控制设备上,执行步骤e;e.判断TI是否置1,判断COMb端口的发送中断标志位TI是否被置“1”,如果没有被置1,继续等待;如果被置1,则将COMb通讯端口的发送中断标志位TI清零,以便发送新的数据,COMb通讯端口发送数据完成;f.接收状态判断,判断COMb通讯端口的接收中断标志位RI是否被置“1”,如没有被置1,则继续检测;如被置1,则表示上位机的数据接收完成,执行步骤g;g.接收数据和RI清零,将COMb通讯端口的数据接收缓冲区内的数据取出,将COMb通讯端口的接收中断标志位RI清零,释放接收缓冲区,以便接收新的数据;h.转移发送数据,将从COMb的数据接收缓冲区内取出的数据存入到COMa的数据发送缓冲区;i.发送至控制设备,判断与控制设备相连接的COMa通讯端口是否有发送请求,如果没有,则继续等待;如果有请求,则将COMa的数据发送缓冲区内的数据发送至与COMa端口相连的控制设备上,执行步骤j;j.判断TI是否置1,判断COMa端口的发送中断标志位TI是否被置“1”,如果没有被置1,继续等待;如果被置1,则将COMa通讯端口的发送中断标志位TI清零,以便发送新的数据,COMa通讯端口发送数据完成。
本发明的有益效果是:(1)本发明的基于FPGA的串行通信分配装置,通过采用FPGA芯片来制作形成串行通信分配装置,且每个通讯端口均配置有各自的数据收发缓冲区、收发控制器、状态和控制寄存器、波特率发生器以及接通不同通讯端口的多路模拟开关,有效地实现了上位机与多个控制设备之间的相互通讯,使得整个通讯分配装置具有电路结构简洁、布局合理、通讯端口数据收发稳定的优点。(2)由于每个通讯端口有自己独立的波特率发生器,可有效地实现不同速率下数据的收发。(3)本发明的基于FPGA的串行通信分配装置的通信方法,通过检测中断标志位TI和RI的状态、数据接收和发送缓冲区对数据的暂存、收发控制器对接收和发送的控制,有效地实现了上位机与控制设备之间的通讯。
同时,本发明的串行通信分配装置和方法还具有简单、实用、可靠、稳定、通信速率高的优点;可以对多达几十个节点的数据同时发送。通信速率最高可达115200 bit/s。
附图说明
图1、图2为本发明的串行通信分配装置的内部结构原理图;
图3为上位机利用本发明的串行通信分配装置、电平转换器与控制设备相连接的原理示意图;
图4为上位机利用本发明的串行通信分配装置直接与控制设备相连接的原理示意图。
图5为COMa端口上的上位机与COMb端口上的控制设备相通信的程序流程图。
图中:1波特率发生器,2接收数据缓冲区,3状态寄存器,4发送数据缓冲区,5控制寄存器,6接收控制器,7发送控制器,8多路模拟开关,9电平转换器,10 RS485或RS422通讯模块,11上位机,12控制设备,13通讯端口。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1、图2所示,给出了本发明的串行通信分配装置的内部结构原理图,FPGA芯片的引脚被设置为多个与上位机11、控制设备12相连接的通讯端口13,以便实现数据的收发。FPGA芯片的内部电路被设置为波特率发生器1、接收数据缓冲区2、状态寄存器3、发送数据缓冲区4、控制寄存器5、接收控制器6、发送控制器7以及多路模拟开关8,且每个通讯端口13都有各自的波特率发生器1、接收和发送数据缓冲区、状态和控制寄存器、接收和发送控制器,以便实现数据的接收和转发功能。多路模拟开关8用于将不同的通讯端口13接通,实现数据由一个端口转发到另一个端口。
由于每一个通讯端口13有各自的波特率发生器1,故不同的通讯端口13可采用不同的速率进行数据的收发。接收控制器6用于将接收到的数据从接收数据缓冲区2中取出,发送数据缓冲区4内的数据在发送控制器7的作用下进行发送。状态寄存器3中设置有接收中断标志位RI、发送中断标志位TI,以便对数据接收和发送的状态进行检测。如通讯端口采用RS232进行通讯,则上位机11、控制设备12与通讯端口相连接即可;如果采用RS485或RS422通讯,则需要增加电平转换器9。
如图3和图4所示,均给出了上位机利用本发明的串行通信分配装置与控制设备相连接的原理示意图;图3中增设有电平转换器9,以便实现RS485或RS232总线形式的通讯。图4中,本发明的串行通信分配装置的COM1~COMn通讯端口13分别与n个控制设备12相连接,上位机11也通过1个通讯端口13与串行通信分配装置相连接。
如图5所示,给出了 COMa端口上的上位机与COMb端口上的控制设备相通信的程序流程图;设要进行数据收发的上位机(11)、控制设备(12)分别接COMa、COMb通讯端口,a<b≤n;数据收发方法包括以下步骤:
a.接收状态判断,判断COMa通讯端口的接收中断标志位RI是否被置“1”,如没有被置1,则继续检测;如被置1,则表示上位机的数据接收完成,执行步骤b;
b.接收数据和RI清零,将COMa通讯端口的数据接收缓冲区内的数据取出,将COMa通讯端口的接收中断标志位RI清零,释放接收缓冲区,以便接收新的数据;
c.转移发送数据,将从COMa的数据接收缓冲区内取出的数据存入到COMb的数据发送缓冲区;
d.发送至控制设备,判断与控制设备相连接的COMb通讯端口是否有发送请求,如果没有,则继续等待;如果有请求,则将COMb的数据发送缓冲区内的数据发送至与COMb端口相连的控制设备上,执行步骤e;
e.判断TI是否置1,判断COMb端口的发送中断标志位TI是否被置“1”,如果没有被置1,继续等待;如果被置1,则将COMb通讯端口的发送中断标志位TI清零,以便发送新的数据,COMb通讯端口发送数据完成;
f.接收状态判断,判断COMb通讯端口的接收中断标志位RI是否被置“1”,如没有被置1,则继续检测;如被置1,则表示上位机的数据接收完成,执行步骤g;
g. 接收数据和RI清零,将COMb通讯端口的数据接收缓冲区内的数据取出,将COMb通讯端口的接收中断标志位RI清零,释放接收缓冲区,以便接收新的数据;
h.转移发送数据,将从COMb的数据接收缓冲区内取出的数据存入到COMa的数据发送缓冲区;
i.发送至控制设备,判断与控制设备相连接的COMa通讯端口是否有发送请求,如果没有,则继续等待;如果有请求,则将COMa的数据发送缓冲区内的数据发送至与COMa端口相连的控制设备上,执行步骤j;
j.判断TI是否置1,判断COMa端口的发送中断标志位TI是否被置“1”,如果没有被置1,继续等待;如果被置1,则将COMa通讯端口的发送中断标志位TI清零,以便发送新的数据,COMa通讯端口发送数据完成。
本发明能够将接收到的上位机数据通过处理后,进行线路分配,实现向多个节点发送串行数据;同时,可以根据中断优先级,接收多个节点返回的数据信息,将数据存入接收缓冲区,并将数据反馈到上位机,方便工作人员对节点的监控操作。整个装置简单、实用、可靠、稳定,成本低廉,易于实现,适合多种场合、多个节点的串行通信使用。
Claims (4)
1.一种基于FPGA的串行通信分配装置,串行通信分配装置由FPGA芯片构成,其特征在于:所述FPGA芯片的引脚被设置为可与上位机(11)、控制设备(12)相连接的多个通讯端口(13),FPGA芯片内设置有均与通讯端口数目相等的波特率发生器(1)、接收数据缓冲区(2)、状态寄存器(3)、发送数据缓冲区(4)、控制寄存器(5)、接收控制器(6)和发送控制器(7),波特率发生器实现不同速率下数据的收发;接收控制器用于取出接收数据缓冲区内的数据,发送控制器用于将发送数据缓冲区内的数据发出,状态寄存器中包含接收中断标志位RI、发送中断标志位TI;FPGA芯片内还设置有将不同的通讯端口连通的多路模拟开关(8)。
2.根据权利要求1所述的基于FPGA的串行通信分配装置,其特征在于:所述通讯端口(13)采用RS232串行通讯。
3.根据权利要求1所述的基于FPGA的串行通信分配装置,其特征在于:所述通讯接口(13)通过电平转换器(9)连接有RS485或RS422通讯模块。
4.一种基于权利要求1所述的串行通信分配装置的通信方法,其特征在于,所述通讯端口(13)包括COM1~COMn共n个端口,设要进行数据收发的上位机(11)、控制设备(12)分别接COMa、COMb通讯端口,a<b≤n;数据收发方法包括以下步骤:
a.接收状态判断,判断COMa通讯端口的接收中断标志位RI是否被置“1”,如没有被置1,则继续检测;如被置1,则表示上位机的数据接收完成,执行步骤b;
b.接收数据和RI清零,将COMa通讯端口的数据接收缓冲区内的数据取出,将COMa通讯端口的接收中断标志位RI清零,释放接收缓冲区,以便接收新的数据;
c.转移发送数据,将从COMa的数据接收缓冲区内取出的数据存入到COMb的数据发送缓冲区;
d.发送至控制设备,判断与控制设备相连接的COMb通讯端口是否有发送请求,如果没有,则继续等待;如果有请求,则将COMb的数据发送缓冲区内的数据发送至与COMb端口相连的控制设备上,执行步骤e;
e.判断TI是否置1,判断COMb端口的发送中断标志位TI是否被置“1”,如果没有被置1,继续等待;如果被置1,则将COMb通讯端口的发送中断标志位TI清零,以便发送新的数据,COMb通讯端口发送数据完成;
f.接收状态判断,判断COMb通讯端口的接收中断标志位RI是否被置“1”,如没有被置1,则继续检测;如被置1,则表示上位机的数据接收完成,执行步骤g;
g. 接收数据和RI清零,将COMb通讯端口的数据接收缓冲区内的数据取出,将COMb通讯端口的接收中断标志位RI清零,释放接收缓冲区,以便接收新的数据;
h.转移发送数据,将从COMb的数据接收缓冲区内取出的数据存入到COMa的数据发送缓冲区;
i.发送至控制设备,判断与控制设备相连接的COMa通讯端口是否有发送请求,如果没有,则继续等待;如果有请求,则将COMa的数据发送缓冲区内的数据发送至与COMa端口相连的控制设备上,执行步骤j;
j.判断TI是否置1,判断COMa端口的发送中断标志位TI是否被置“1”,如果没有被置1,继续等待;如果被置1,则将COMa通讯端口的发送中断标志位TI清零,以便发送新的数据,COMa通讯端口发送数据完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103472611A CN102915010A (zh) | 2012-09-19 | 2012-09-19 | 基于fpga的串行通信分配装置及通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103472611A CN102915010A (zh) | 2012-09-19 | 2012-09-19 | 基于fpga的串行通信分配装置及通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102915010A true CN102915010A (zh) | 2013-02-06 |
Family
ID=47613416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103472611A Pending CN102915010A (zh) | 2012-09-19 | 2012-09-19 | 基于fpga的串行通信分配装置及通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102915010A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487992A (zh) * | 2014-09-17 | 2016-04-13 | 上海新跃仪表厂 | 多通道软硬件并行串口通讯处理方法 |
CN106292369A (zh) * | 2016-09-09 | 2017-01-04 | 南京玛锶腾智能科技有限公司 | 舵机的分布式控制系统及方法 |
CN111555810A (zh) * | 2020-04-22 | 2020-08-18 | 青岛海信宽带多媒体技术有限公司 | 一种光模块以及数据传输方法 |
CN114615104A (zh) * | 2022-03-14 | 2022-06-10 | 鹍骐科技(北京)股份有限公司 | 一种基于国产化fpga实现的智能串口通讯方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2845021Y (zh) * | 2005-10-18 | 2006-12-06 | 郑州玖和电子科技有限公司 | 用于低速通信的多串行接口复用电路 |
CN201114167Y (zh) * | 2007-08-20 | 2008-09-10 | 浙江纺织服装职业技术学院 | 动态可重组多路串行接口连接器 |
CN101808027A (zh) * | 2010-03-31 | 2010-08-18 | 哈尔滨工业大学 | 适用于多种端口的数据接收存储转发装置 |
CN201918981U (zh) * | 2010-11-19 | 2011-08-03 | 陕西千山航空电子有限责任公司 | 双相哈佛码总线信号编解码电路 |
CN202795017U (zh) * | 2012-09-19 | 2013-03-13 | 山东神戎电子股份有限公司 | 基于fpga的串行通信分配装置 |
-
2012
- 2012-09-19 CN CN2012103472611A patent/CN102915010A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2845021Y (zh) * | 2005-10-18 | 2006-12-06 | 郑州玖和电子科技有限公司 | 用于低速通信的多串行接口复用电路 |
CN201114167Y (zh) * | 2007-08-20 | 2008-09-10 | 浙江纺织服装职业技术学院 | 动态可重组多路串行接口连接器 |
CN101808027A (zh) * | 2010-03-31 | 2010-08-18 | 哈尔滨工业大学 | 适用于多种端口的数据接收存储转发装置 |
CN201918981U (zh) * | 2010-11-19 | 2011-08-03 | 陕西千山航空电子有限责任公司 | 双相哈佛码总线信号编解码电路 |
CN202795017U (zh) * | 2012-09-19 | 2013-03-13 | 山东神戎电子股份有限公司 | 基于fpga的串行通信分配装置 |
Non-Patent Citations (1)
Title |
---|
胡志雄: "道岔转辙机电动机在线监测通信方案的设计与实现", 《中国学位论文全文数据库(CDDB)》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487992A (zh) * | 2014-09-17 | 2016-04-13 | 上海新跃仪表厂 | 多通道软硬件并行串口通讯处理方法 |
CN105487992B (zh) * | 2014-09-17 | 2018-11-06 | 上海新跃仪表厂 | 多通道软硬件并行串口通讯处理方法 |
CN106292369A (zh) * | 2016-09-09 | 2017-01-04 | 南京玛锶腾智能科技有限公司 | 舵机的分布式控制系统及方法 |
CN106292369B (zh) * | 2016-09-09 | 2019-02-15 | 江苏新辰海智能科技有限公司 | 舵机的分布式控制系统及方法 |
CN111555810A (zh) * | 2020-04-22 | 2020-08-18 | 青岛海信宽带多媒体技术有限公司 | 一种光模块以及数据传输方法 |
CN111555810B (zh) * | 2020-04-22 | 2023-08-08 | 青岛海信宽带多媒体技术有限公司 | 一种光模块以及数据传输方法 |
CN114615104A (zh) * | 2022-03-14 | 2022-06-10 | 鹍骐科技(北京)股份有限公司 | 一种基于国产化fpga实现的智能串口通讯方法及系统 |
CN114615104B (zh) * | 2022-03-14 | 2023-11-28 | 鹍骐科技(北京)股份有限公司 | 一种基于国产化fpga实现的智能串口通讯方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106603358B (zh) | 一种基于mlvds接口的快速总线系统和实现方法 | |
CN101819556B (zh) | 一种信号处理板 | |
CN105051706A (zh) | 用于具有pcie协议栈的低功率phy的操作的设备、方法和系统 | |
CN204808315U (zh) | 一种基于spi串行外设接口协议实现板间通信的系统 | |
CN202084028U (zh) | 一种模块化多串口扩展装置 | |
CN201583945U (zh) | 基于fpga的单片机多机串行通信系统 | |
CN103440219A (zh) | 一种新型的通用总线转换桥ip核 | |
CN101571842A (zh) | 一种用于arinc429通讯的pci板卡装置 | |
CN102915010A (zh) | 基于fpga的串行通信分配装置及通信方法 | |
CN104142900A (zh) | 一种通信接口转换装置 | |
CN207718364U (zh) | 一种基于fpga的多路rs-422串口扩展接口 | |
CN106021152A (zh) | 主从式串口设备集线器及异步双工一对多串行通讯方法 | |
CN106789496A (zh) | 一种用于运载火箭的光纤惯组1553b通讯接口电路 | |
CN107204992B (zh) | 一种多功能串口服务器及数据传输方法 | |
CN105354160A (zh) | 一种速率可配式fpga片间通信的连接方法及系统 | |
CN202795017U (zh) | 基于fpga的串行通信分配装置 | |
CN106781429A (zh) | 智能电表、集中器及抄表方法 | |
CN203397201U (zh) | 一种基于cpld或fpga的高速同步串行通信电路 | |
CN102110070B (zh) | 一种提高串行外围设备接口传输效率的实现方法 | |
CN105530157A (zh) | Afdx网络交换机多个虚拟链路共享信用的方法 | |
CN202257468U (zh) | 基于加速度传感器和ZigBee的数据手套 | |
CN103823775A (zh) | 一种串口与网口智能转换器 | |
CN205788168U (zh) | 主从式串口设备集线器 | |
CN203982366U (zh) | 基于arm和fpga高速灵活的串口装置 | |
CN103152275A (zh) | 一种适用于片上网络的可配置交换机制的路由器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130206 |