CN103713543A - 一种基于fpga的多串口并行处理架构 - Google Patents
一种基于fpga的多串口并行处理架构 Download PDFInfo
- Publication number
- CN103713543A CN103713543A CN201310693940.9A CN201310693940A CN103713543A CN 103713543 A CN103713543 A CN 103713543A CN 201310693940 A CN201310693940 A CN 201310693940A CN 103713543 A CN103713543 A CN 103713543A
- Authority
- CN
- China
- Prior art keywords
- fpga
- cpu
- uart
- serial
- parallel processing
- 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
Landscapes
- Advance Control (AREA)
Abstract
本发明属于分散式工业控制技术领域,涉及一种基于FPGA的多串口并行处理架构,包括收发器、FPGA可编程逻辑芯片和处理器CPU,CPU通过CPU接口总线与所述FPGA芯片连接,其特征在于:在所述FPGA芯片内部通过硬件描述语言设计多个UART核和与各UART核相对应的多个协处理器MCU;所述FPGA内嵌多个与各协处理器MCU相对应的嵌入式存储器,各嵌入式存储器配置为可以读写操作的双端口模式;所述多个UART核与多个相对应的所述收发器通过RS232/RS422/RS485接口连接。本发明硬件设计成本低,能有效降低CPU负荷,提升串行总线数据传输带宽,可以灵活扩展多路串行通道。
Description
技术领域
本发明属于分散式工业控制技术领域,具体涉及一种基于FPGA的多串口并行处理架构。
背景技术
UART (通用异步收发传输器) 是一种广泛应用于短距离、低速通信的串行传输接口,其操作简单、工作可靠、抗干扰强、成本低、传输距离远(组成485 网络可以传输1,200 米以上)。在数据通信、计算机网络以及分散式工业控制***中,处理器经常采用串行通信与外设模块交换数据和信息。
在现代的工业控制***中,多串口通信应用越来越广泛。尤其是数据采集领域,工程应用中对串口数量需求增加,处理器需要实时采集并处理来自于多个串行外设的数据。通用串口实现方式如图1所示。由于普通处理器或ASIC能提供的串口数量有限,当需要控制的串行终端设备超过四个以上时,传统的架构就难以满足实际应用要求了,如硬件成本昂贵、难以扩展、功耗较高、数据处理实时性不高、处理器负荷高、UART总线带宽低等问题。具体表现在:1)串行外设用到RS232或RS422/485异步串行接口,一般采用的集成电路即UART芯片实现。如8250、16550AFN等芯片都是常见的专用UART器件,硬件串行接口资源有限,但这类芯片内部结构设计相当复杂,芯片引脚较多,有的含有许多辅助模块(如FIFO),在实际使用时往往只用到UART基本功能,设计时使用这类芯片,造成了资源浪费;2)处理器或专用的多串口芯片所提供的可扩展串口数量有限,无法实现更多UART串口扩展;3)***接口电路复杂,板卡设计难度较大;4)使用UART芯片还会使硬件成本增加并且增加电路板的面积,无法大规模应用于多通道数据采集场合;5)处理器采用串行方式依次扫描各个通道,然而串口通讯速率过低导致CPU等待时间过长,难以满足实时性要求较高需要并行处理的实际需求。
发明内容
鉴于现有技术中存在的上述问题,本发明要解决的技术问题是提供一种硬件设计成本低、能有效降低CPU负荷、可以灵活扩展多路串行通道的多串口并行处理架构。
为了实现以上目的,本发明采用的技术方案是:一种基于FPGA的多串口并行处理架构,包括收发器、FPGA可编程逻辑芯片和处理器CPU,CPU通过CPU接口总线与所述FPGA芯片连接,其特征在于:在所述FPGA 芯片内部通过硬件描述语言设计多个UART核和与各UART核相对应的多个协处理器MCU;所述FPGA内嵌多个与各协处理器MCU相对应的嵌入式存储器,各嵌入式存储器配置为可以读写操作的双端口模式;所述多个UART核与多个相对应的所述收发器通过RS232/RS422/RS485接口连接。
所述FPGA芯片内由相对应的UART核、协处理器MCU和嵌入式存储器依次连接组成的多路串行通道,各通道互相独立,CPU可同时扫描并处理所有通道的外设信息。
所述协处理器MCU完成数据链路层工作,所述处理器CPU完成应用层工作。
本发明的积极效果是:1)利用富裕的FPGA逻辑资源可以轻松实现多路UART控制器,根据工程需要,只需修改FPGA逻辑即可灵活构建多协处理器MCU和多UART核,灵活增减串行通道数量,大大提高了***集成度;2)在高达16乃至32串行通道时,板卡***电路设计复杂度和难度大大降低,极大缩减昂贵硬件成本,可大规模应用于多通道数据采集场合;3)在实际处理器CPU和UART控制器之间设有多个独立并行的协处理器MCU,协处理器MCU完成数据链路层工作,处理器CPU主要负责应用层工作,这种架构可以让处理器并行扫描所有通道的串行外设,大大降低CPU的负荷,提升串行总线数据传输带宽;4)根据工程需要配合外部收发芯片,FPGA只需稍作逻辑修改即可灵活支持RS232/RS422/RS485不同的通讯协议和波特率。
附图说明
下面结合附图和具体实施方式对本发明作进一步说明。
图1是现有的通用串口实现方式示意图;
图2是本发明同时控制八通道并行扫描处理的架构示意图;
图3是CPU与MCU工作所处的网络模型位置示意图。
具体实施方式
为了实现并行多通道串行外设的支持,增加UART总线串行通信带宽,降低CPU的负荷,提高***集成度,缩减硬件成本,如图2所示,本发明基于FPGA的多串口并行处理架构,包括收发器、FPGA可编程逻辑芯片和处理器CPU,CPU通过CPU接口总线与所述FPGA芯片连接,其特征在于:在所述FPGA 芯片内部通过硬件描述语言设计多个UART核和与各UART核相对应的多个协处理器MCU;所述FPGA内嵌多个与各协处理器MCU相对应的嵌入式存储器,各嵌入式存储器配置为可以读写操作的双端口模式;所述多个UART核与多个相对应的所述收发器通过RS232/RS422/RS485接口连接。
所述FPGA芯片内由相对应的UART核、协处理器MCU和嵌入式存储器依次连接组成的多路串行通道,各通道互相独立,CPU可同时扫描并处理所有通道的外设信息。
所述协处理器MCU完成数据链路层工作,所述处理器CPU完成应用层工作(如图3所示)。
本发明中FPGA实现多UART接口、多协处理器处理方式,通过FPGA可以灵活构建多协处理器MCU和多UART核,FPGA构建的UART核与外部的收发器通过RS232/RS422/RS485连接,这样可以灵活扩展多路串行通道。
处理器CPU提供从FPGA芯片读取、发送数据的CPU总线接口。CPU主要负责应用层工作。
FPGA芯片内嵌嵌入式存储器,配置成可以读写操作的真正双端口模式(如图2中的Dual Port),用以缓存待发送或接受的数据。
协处理器MCU是通过FPGA构建的虚拟协处理器,主要完成数据链路层工作,处理来自于UART核的数据或将来自于Dual Port的并行数据处理后发送给UART接口。
UART核实现了UART功能,提供与外部串口收发器的UART接口,在协处理器MCU的控制下高效收发串行数据。
收发器是UART接口芯片,主要完成RS232/RS422/RS485电平和TTL/COMS电平间的转换。CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。
为了提高***的集成度,支持多路并行独立串口,提高UART总线带宽,降低CPU的负荷,缩减硬件成本,本发明使用FPGA可编程逻辑芯片构建多个UART核,根据工程应用需要只需更改编程逻辑即可灵活增减串行通道数量。现场可编程门阵列FPGA 由可配置的逻辑模块、输入输出模块和内部连线组成。FPGA 利用查找表(LUT)实现组合逻辑,进而驱动其它逻辑电路和I/O接口,而存储在内部静态存储单元的编程数据决定各逻辑单元的逻辑功能和各模块之间的连接关系。通过硬件描述语言在FPGA内部配置多个独立工作的组合逻辑单元,实现多通道并行UART 通信功能。如图2 所示,在FPGA 内部通过硬件描述语言分别设计多个UART核和多个协处理器MCU,将FPGA内嵌的嵌入式存储器可配置成多个真正双端口存储器。该方法有集成度高、体积小、功耗低和速度快等优点, 而且还可以根据用户的需求对***功能进行重构。
在多串口数据采集应用中,需要实时的进行数据采集、对串行终端设备进行实时控制。传统的多通道串行架构中,CPU是依次查询各个串行端口的状态,顺序扫描各端口,造成CPU耗费大量的时间和资源,并且串行总线带宽随着通道数量的增加而减小。本发明中采用的方法是:在FPGA 内部通过硬件描述语言构建多个协处理器MCU,并将FPGA内嵌的嵌入式存储器配置成多个真正双端口存储器。协处理器主要完成数据链路层工作(如图3),处理来自于UART核的数据或将来自于Dual Port的并行数据处理后发送给UART核。接受数据时,将来自于UART核的数据处理后以并行数据方式缓存在Dual Port,相应的Dual Port会向CPU发送接收中断请求,CPU可在完成当前任务后响应中断,然后一次读取来自于Dual Port中的数据,CPU无需再花大量时间等待低速的UART核将数据发送完成。CPU只需负责应用层工作,降低了CPU的负荷。
发送数据时,CPU并行扫描所有通道,查询到来自于某个通道的请求发送状态信息后,将待发送给某个通道的数据缓存在相应通道的Dual Port存储器中,相应通道的协处理器一旦查询到对应的Dual Port中有CPU发送的数据,立即启动工作进行相应处理后输出给UART核。CPU也可以将待发送给串行外设的数据一次发送到所有通道上的Dual Port中,然后供各通道上的协处理器处理,CPU将数据存放在各通道上的Dual Port中后可以立即去处理其他的任务,无需再花大量时间去等待低速的UART接受,这样大大降低了 CPU的负荷和等待时间。本发明中的协处理器MCU和Dual Port可以实时高效的将待发送的数据输出给UART核,或将CPU待接收的数据实时存放在相应通道的Dual Port中,各个串行通道完全独立,互不影响。
数据传输带宽是串行通信的瓶颈,串行通道数量越多带宽越低。本发明提出的多串口并行处理架构引入了协处理器MCU和Dual Port存储器,可以让高速的CPU高效发送数据到低速的UART核,或实时接收来自于UART外设的数据,每个通道均设数据缓存存储器Dual port、协处理器MCU,各通道互相独立,并行工作。串行总线上数据带宽是所有通道上最大带宽的总和,对于8路RS422,总线带宽可高达64Mbit/s。
串行通讯标准的灵活支持也是串行通讯所期望的功能。除了常用的RS232标准,还有RS422、RS485标准,专用的UART芯片很少有可以同时支持RS232/RS422/RS485的,即使有能同时支持三种通讯协议的专用UART芯片,其价格也较贵,灵活性和性价比低。
在本发明中,通过硬件描述语言在FPGA内部实现多个独立工作的UART 核和软核协处理器MCU,数据链路层的通信协议工作在MCU里实现,根据工程需要配合外部收发芯片,FPGA只需稍作逻辑修改即可支持不同的通讯协议、波特率。
Claims (3)
1.一种基于FPGA的多串口并行处理架构,包括收发器、FPGA可编程逻辑芯片和处理器CPU,CPU通过CPU接口总线与所述FPGA芯片连接,其特征在于:在所述FPGA 芯片内部通过硬件描述语言设计多个UART核和与各UART核相对应的多个协处理器MCU;所述FPGA内嵌多个与各协处理器MCU相对应的嵌入式存储器,各嵌入式存储器配置为可以读写操作的双端口模式;所述多个UART核与多个相对应的所述收发器通过RS232/RS422/RS485接口连接。
2.根据权利1要求所述的一种基于FPGA的多串口并行处理架构,其特征在于:所述FPGA芯片内由相对应的UART核、协处理器MCU和嵌入式存储器依次连接组成的多路串行通道,各通道互相独立,CPU可同时扫描并处理所有通道的外设信息。
3.根据权利1要求所述的一种基于FPGA的多串口并行处理架构,其特征在于:所述协处理器MCU完成数据链路层工作,所述处理器CPU完成应用层工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310693940.9A CN103713543A (zh) | 2013-12-18 | 2013-12-18 | 一种基于fpga的多串口并行处理架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310693940.9A CN103713543A (zh) | 2013-12-18 | 2013-12-18 | 一种基于fpga的多串口并行处理架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103713543A true CN103713543A (zh) | 2014-04-09 |
Family
ID=50406599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310693940.9A Pending CN103713543A (zh) | 2013-12-18 | 2013-12-18 | 一种基于fpga的多串口并行处理架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103713543A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045761A (zh) * | 2015-08-26 | 2015-11-11 | 福建恒天晨光节能服务有限公司 | 一种数据中心的高速并行处理架构 |
CN105137852A (zh) * | 2015-06-26 | 2015-12-09 | 上海沈德医疗器械科技有限公司 | 相控高强度聚焦超声***多通道超声驱动器并行控制装置 |
CN107992367A (zh) * | 2017-10-20 | 2018-05-04 | 河南平高电气股份有限公司 | 一种Modbus串口数据处理方法 |
CN108282186A (zh) * | 2018-03-07 | 2018-07-13 | 杭州先锋电子技术股份有限公司 | 一种uart通信***、方法、设备及计算机存储介质 |
CN109597788A (zh) * | 2018-12-11 | 2019-04-09 | 广东浪潮大数据研究有限公司 | 一种高速串口装置、相关方法及相关装置 |
CN109871353A (zh) * | 2019-03-26 | 2019-06-11 | 广东高云半导体科技股份有限公司 | 电子设备及其应用于人工智能的fpga |
CN110120922A (zh) * | 2019-05-14 | 2019-08-13 | 中国核动力研究设计院 | 一种基于fpga的数据交互网络管理***及方法 |
CN114281392A (zh) * | 2022-03-04 | 2022-04-05 | 季华实验室 | 一种多mcu从站的串口升级方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527735A (zh) * | 2009-04-07 | 2009-09-09 | 上海许继电气有限公司 | 基于cpci总线的多串口数据通信卡设备及其方法 |
CN201583945U (zh) * | 2009-12-02 | 2010-09-15 | 天津光电通信技术有限公司 | 基于fpga的单片机多机串行通信*** |
CN201673500U (zh) * | 2010-03-02 | 2010-12-15 | 山东超越数控电子有限公司 | Minipci接口转串口接口卡 |
US7865651B2 (en) * | 2004-04-20 | 2011-01-04 | Hynix Semiconductor Inc. | Multi-protocol serial interface system |
CN102760111A (zh) * | 2012-06-27 | 2012-10-31 | 浙江大学 | 一种基于fpga的扩展多串口装置及其数据收发方法 |
CN103248526A (zh) * | 2012-02-08 | 2013-08-14 | 迈普通信技术股份有限公司 | 实现带外监控管理的通信设备、方法及主从切换方法 |
CN203705861U (zh) * | 2013-12-18 | 2014-07-09 | 国核自仪***工程有限公司 | 一种基于fpga的多串口并行处理架构 |
-
2013
- 2013-12-18 CN CN201310693940.9A patent/CN103713543A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7865651B2 (en) * | 2004-04-20 | 2011-01-04 | Hynix Semiconductor Inc. | Multi-protocol serial interface system |
CN101527735A (zh) * | 2009-04-07 | 2009-09-09 | 上海许继电气有限公司 | 基于cpci总线的多串口数据通信卡设备及其方法 |
CN201583945U (zh) * | 2009-12-02 | 2010-09-15 | 天津光电通信技术有限公司 | 基于fpga的单片机多机串行通信*** |
CN201673500U (zh) * | 2010-03-02 | 2010-12-15 | 山东超越数控电子有限公司 | Minipci接口转串口接口卡 |
CN103248526A (zh) * | 2012-02-08 | 2013-08-14 | 迈普通信技术股份有限公司 | 实现带外监控管理的通信设备、方法及主从切换方法 |
CN102760111A (zh) * | 2012-06-27 | 2012-10-31 | 浙江大学 | 一种基于fpga的扩展多串口装置及其数据收发方法 |
CN203705861U (zh) * | 2013-12-18 | 2014-07-09 | 国核自仪***工程有限公司 | 一种基于fpga的多串口并行处理架构 |
Non-Patent Citations (4)
Title |
---|
刘凤新 等: "基于FPGA的多路并行独立串口的实现", 《仪表技术与传感器 》 * |
张羽 等: "基于FPGA的多串口扩展实现", 《电子器件 》 * |
苏航 等: "FPGA实现UART和MCU一体化设计", 《现代电子技术》 * |
鲍存会: "基于FPGA的多通道并行UART接口设计", 《陕西理工学院学报(自然科学版)》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105137852A (zh) * | 2015-06-26 | 2015-12-09 | 上海沈德医疗器械科技有限公司 | 相控高强度聚焦超声***多通道超声驱动器并行控制装置 |
CN105137852B (zh) * | 2015-06-26 | 2019-01-25 | 上海沈德医疗器械科技有限公司 | 相控高强度聚焦超声***多通道超声驱动器并行控制装置 |
CN105045761A (zh) * | 2015-08-26 | 2015-11-11 | 福建恒天晨光节能服务有限公司 | 一种数据中心的高速并行处理架构 |
CN105045761B (zh) * | 2015-08-26 | 2018-08-28 | 福建恒天晨光节能服务有限公司 | 一种数据中心的高速并行处理架构 |
CN107992367A (zh) * | 2017-10-20 | 2018-05-04 | 河南平高电气股份有限公司 | 一种Modbus串口数据处理方法 |
CN107992367B (zh) * | 2017-10-20 | 2020-09-25 | 河南平高电气股份有限公司 | 一种Modbus串口数据处理方法 |
CN108282186B (zh) * | 2018-03-07 | 2019-02-22 | 杭州先锋电子技术股份有限公司 | 一种uart通信***、方法、设备及计算机存储介质 |
CN108282186A (zh) * | 2018-03-07 | 2018-07-13 | 杭州先锋电子技术股份有限公司 | 一种uart通信***、方法、设备及计算机存储介质 |
CN109597788A (zh) * | 2018-12-11 | 2019-04-09 | 广东浪潮大数据研究有限公司 | 一种高速串口装置、相关方法及相关装置 |
CN109597788B (zh) * | 2018-12-11 | 2023-02-28 | 广东浪潮大数据研究有限公司 | 一种高速串口装置、相关方法及相关装置 |
CN109871353A (zh) * | 2019-03-26 | 2019-06-11 | 广东高云半导体科技股份有限公司 | 电子设备及其应用于人工智能的fpga |
CN110120922A (zh) * | 2019-05-14 | 2019-08-13 | 中国核动力研究设计院 | 一种基于fpga的数据交互网络管理***及方法 |
CN110120922B (zh) * | 2019-05-14 | 2022-09-20 | 中核控制***工程有限公司 | 一种基于fpga的数据交互网络管理***及方法 |
CN114281392A (zh) * | 2022-03-04 | 2022-04-05 | 季华实验室 | 一种多mcu从站的串口升级方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714024A (zh) | 一种基于SoC FPGA的多串口并行处理架构 | |
CN203705861U (zh) | 一种基于fpga的多串口并行处理架构 | |
CN103713543A (zh) | 一种基于fpga的多串口并行处理架构 | |
CN103049414B (zh) | Fc总线与can总线间数据的转换及传输方法 | |
CN103425106B (zh) | 一种基于Linux的EtherCAT主/从站控制***及方法 | |
CN102760111B (zh) | 一种基于fpga的扩展多串口装置及其数据收发方法 | |
CN100354842C (zh) | 一种直接存储器存取装置及单通道双向数据交互实现方法 | |
CN103440219A (zh) | 一种新型的通用总线转换桥ip核 | |
CN104242981B (zh) | 一种基于软件无线电的嵌入式通讯装置 | |
CN203812025U (zh) | 一种基于SoC FPGA的多串口并行处理架构 | |
CN201435738Y (zh) | Profibus-dp与can现场总线协议转换器 | |
CN103714026A (zh) | 一种支持原址数据交换的存储器访问方法及装置 | |
CN103901814B (zh) | 一种多轴运动数控*** | |
CN103092787A (zh) | 一种基于PowerPC架构的多功能低功耗总线通讯模块 | |
CN111736115A (zh) | 基于改进型sgdma+pcie的mimo毫米波雷达高速传输方法 | |
CN204178172U (zh) | 一种基于dsp和fpga的嵌入式通用总线控制设备 | |
CN205375458U (zh) | 一种四通道的多协议通信接口卡 | |
CN107346298A (zh) | 一种并行总线与uart总线间协议转换的方法及*** | |
CN114257245A (zh) | 一种基于dsp-fpga的多通道ad采集*** | |
CN102662887A (zh) | 一种多端口随机存储器 | |
CN203849590U (zh) | 多轴运动数控*** | |
CN103151978A (zh) | 以太网步进电机驱动控制器 | |
CN206258865U (zh) | 一种可重构的信号处理器asic架构 | |
CN108845537A (zh) | 基于soc fpga的plc***中cpu与数字逻辑模块的通信方法 | |
CN105550157A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140409 |
|
RJ01 | Rejection of invention patent application after publication |