CN102760111B - 一种基于fpga的扩展多串口装置及其数据收发方法 - Google Patents

一种基于fpga的扩展多串口装置及其数据收发方法 Download PDF

Info

Publication number
CN102760111B
CN102760111B CN201210223598.1A CN201210223598A CN102760111B CN 102760111 B CN102760111 B CN 102760111B CN 201210223598 A CN201210223598 A CN 201210223598A CN 102760111 B CN102760111 B CN 102760111B
Authority
CN
China
Prior art keywords
data
serial port
serial
module
serial ports
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.)
Expired - Fee Related
Application number
CN201210223598.1A
Other languages
English (en)
Other versions
CN102760111A (zh
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201210223598.1A priority Critical patent/CN102760111B/zh
Publication of CN102760111A publication Critical patent/CN102760111A/zh
Application granted granted Critical
Publication of CN102760111B publication Critical patent/CN102760111B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种基于FPGA的扩展多串口装置,采用现场可编程门阵列FPGA通过数据总线连接DSP实现串口的扩展,包括控制器,至少一个串口模块,以及连接控制器与串口模块的缓存模块,其中串口模块包括波特率发生器子模块,串口接收子模块和串口发送子模块。本发明还公开了基于FPGA的扩展多串口装置的数据收发方法,当串口模块接收收据后,将串行数据转换为并行数据输入到缓存模块,当缓存模块半满时,产生半满标志位和中断信号,触发DSP读取数据,当有数据发送时,DSP直接将数据写入缓存模块,串口模块从缓存模块读取数据,转换为串行数据发送。本发明扩展的各个串口全双工收发互不影响,串口个数可以自行定制,DSP上只需一个中断源进行多串口扩展。

Description

一种基于FPGA的扩展多串口装置及其数据收发方法
技术领域
本发明涉及现场可编程门阵列FPGA技术领域,尤其涉及一种基于FPGA的多串口控制器设计,可用于DSP单一中断源的多串口扩展。
背景技术
随着电子技术的飞跃发展,通用数字信号处理器(DSP)的性能价格比不断提高,数据处理能力不断加强,其应用领域日益增多,在数据实时采集及高速数字信号处理中应用尤其广泛。当DSP独立构成一个处理单元时,往往需要和外设进行数据交换,其通信能力至关重要,常用的通信方法就有串口通信。
目前比较通用的实现方案是采用通用异步通信芯片实现串口扩展,采用FPGA实现DSP与异步串口扩展芯片之间的逻辑控制,完全基于DSP接收和发送数据。该方案的缺点是:当数据量较大、多串口同时工作时占用DSP的时间较长,影响DSP的工作效率,且会造成数据丢失。
目前多串口扩展常用的技术是使用专用的串口扩展芯片,采用FPGA实现DSP与异步串口扩展芯片之间的逻辑控制,完全基于DSP接收和发送数据,例如GM8123、GM8125等,其功能是将一个全双工串口扩展成多个串口,通过外部引脚控制串口扩展模式,并且波特率统一调节,最高波特率有一定限制,其特点是外部控制少,编程使用简单。其存在的缺点也比较显著,扩展出的串口个数有限且固定,扩展后的串口数据传输速度会降低,各个串口波特率无法单独设置,使用扩展的接口为单一的串口,无法对特定接口进行扩展。
发明内容
本发明一种基于FPGA的多串口控制器设计解决了DSP的单一中断源的多串口扩展的问题,扩展的各个串口全双工收发互不影响,每个串口完全独立,波特率可单独设置且速度不会降低,所需的串口个数可以自由定制串口接收不存在中断优先级的问题。
本发明提供了一种基于FPGA的扩展多串口装置,采用现场可编程门阵列FPGA通过数据总线连接数字处理器DSP实现串口的扩展,所述扩展多串口装置包括控制器,至少一个串口模块,以及连接所述控制器与串口模块的缓存模块。
进一步地,所述串口模块包括波特率发生器子模块,串口接收子模块和串口发送子模块。所述波特率发生器子模块是分配器,用于将输入时钟分频成所述串口模块需要的时钟。单个串口均设计有波特率发生器就从硬件上保证了扩展的每个串口波特率可调可设。
每一个所述串口模块与控制器之间都具有单独的缓存模块,所述缓存模块为FIFO缓存,所述串口模块与FIFO缓存之间通过异步方式连接。FIFO深度可自由设置,串口与FIFO连接采用异步方式,该设计从硬件上保证了扩展的串口均为全双工串口,各个串口互不干扰,单个串口收发也互不影响。
所述扩展多串口装置多个串口模块共用一个控制器,提供一个中断接口,用于与DSP之间传递中断信号,采用单一的中断源实现多串口扩展。
本发明还提供了一种如权利要求1所述的基于FPGA的扩展多串口装置数据收发方法,用于采用FPGA通过数据总线连接DSP实现多串口数据的收发,其特征在于,所述包括步骤:
串口模块接收外部串行数据的输入,将串行数据转换为并行数据写入缓存模块;
当缓存模块半满时,通知控制器产生半满标志位标识所述缓存模块为半满状态;
DSP查询缓存模块的半满标志位,通过数据总线从具有半满标志位的缓存模块读取数据,直到该缓存模块为空;
DSP通过数据总线将数据写入缓存模块,缓存模块立即将并行数据读出到串口模块,串口模块将并行数据转换为串行数据发送。
进一步地,所述数据收发方法还包括步骤:所述串口模块中设置的波特率发生器将输入时钟分频成所述串口模块需要的时钟。
进一步地,所述数据收发方法还包括步骤,当缓存模块半满时,通知控制器产生中断信号,并将所述中断信号上传到DSP以触发DSP从具有半满标志位的缓存模块读取数据。
本发明的有益效果是,扩展的各个串口全双工收发互不影响,每个串口完全独立,波特率可单独设置且速度不会降低,需要的串口个数可以自行定制,串口接收数据向DSP请求中断后可由DSP选择数据读取方式,FPGA上串口接收不存在优先级问题,DSP上只需一个中断源进行多串口扩展。
附图说明
图1为本发明扩展多串口装置结构示意图;
图2为本发明实施例示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
本发明的实施例使用的是Xilinx的Spartan3系列的XC3S400FPGA与一块TMS320C6713DSP相连,实现单一中断源的多串口扩展。如图1所示,本发明基于FPGA的扩展多串口装置采用Xilinx的Spartan3系列的现场可编程门阵列1(XC3S400FPGA,以下简称FPGA),通过数据总线连接数字信号处理器33(TMS320C6713DSP,以下简称DSP)实现串口的扩展。DSP作为上层主控制器,FPGA作为协处理器作串口扩展,DSP与FPGA采用同步方式进行数据通信。
其中FPGA的输入是串口接收总线rxd[N:0]2、时钟CLK4、复位reset5、地址总线EA8、片选CE9、AOE10、读使能11、写使能12、DSP同步时钟32;输出是串口发送总线txd[N:0]3、中断INT6、数据总线ED7。
需要说明的是,DSP可同时外接多块FPGA,通过片选信号CE9来选择对应的FPGA。
串口接收总线rxd[N:0]2和串口发送总线txd[N:0]3对应的一组串口接收和串口发送组成一个完整的扩展串口,在FPGA硬件允许,特别是FPGA中Block RAM容量允许的条件下,N的取值根据设计需要的串口数自行定制,当需要扩展三个串口时,设置N为2,rxd[2:0]和串口发送txd[2:0]表示有三个扩展串口,分别对应串口0,串口1和串口2。
FPGA设计主要包括FPGA芯片电路、存储器、输入/输出接口电路等几个部分,其中芯片电路是最核心的部分,存储器的设计可以参考芯片手册的标准设计,输入输出管脚可以自行定义并配置电平标准,从FPGA管脚出来的串口数据信号可以通过电平转换接至所需要的接口。
核心部分芯片电路设计主要分为三部分:单个串口收发模块、对应的存储模块和控制模块。单个的串口收发模块由三个子模块组成:波特率发生器子模块、串口接收子模块、串口发送子模块。其中波特率发生器实质上是一个分频器,将FPGA的输入时钟分频成串口需要的时钟,单个串口均设计有波特率发生器就从硬件上保证了扩展的每个串口波特率可调可设。串口接收子模块和串口发送子模块均根据串口数据定义,采用有限状态机设计,每个串口收发子模块与均有与之对应的存储单元,存储单元的结构选择FIFO,FIFO深度可设,本例中为512字节。串口与FIFO连接采用异步方式,该设计从硬件上保证了扩展的串口均为全双工串口,各个串口互不干扰,单个串口收发也互不影响。
本例中对于串口接收,即对接收FIFO读操作采取的策略是当FIFO半满时产生半满标志位和中断信号,标明该FIFO半满并告知TMS320C6713DSP读取该FIFO中缓存的数据;这样使得串口接收不存在优先级问题;对于串口发送则是当发送FIFO中写入有数据时,即将其读出到串口发送子模块发送出去。该控制设计使得多个串口不存在优先级的区别,读取FIFO时只要中断信号产生,即由DSP询查半满标志位读出对应FIFO数据,有多个标志位则读取多个标志位对应FIFO的数据;写FIFO时只要FIFO有数据则硬件完成数据发送。
本发明的一个具体实施例以三串口扩展为例,如图2所示,每个串口由三个部分相互连接构成:串口模块、FIFO、控制器,组成三串口的基于FPGA的扩展多串口装置。其中每个串口模块均包括串口波特率发生器、串口接收子模块、串口发送子模块,并通过FIFO与控制器相连,通过串口接收和串口发送接口接收和发送数据。
具体地,串口模块13包括波特率发生器14、串口接收子模块15、串口发送子模块16,通过接收FIFO17和发送FIFO18与控制器19相连,通过串口接收34接收数据,通过串口发送35发送数据,串口接收34对应于串口接收总线2的rxd[0],串口发送35对应串口发送总线3的txd[0];串口模块20包括波特率发生器21、串口接收子模块22、串口发送子模块23,通过接收FIFO24和发送FIFO25与控制器19相连,通过串口接收36接收数据,通过串口发送36发送数据,串口接收36对应于串口接收总线2的rxd[1],串口发送37对应串口发送总线3的txd[1];串口模块26包括波特率发生器27、串口接收子模块28、串口发送子模块29,通过接收FIFO30和发送FIFO31与控制器19相连,通过串口接收38接收数据,通过串口发送39发送数据,串口接收38对应于串口接收总线2的rxd[2],串口发送39对应串口发送总线3的txd[2]。图中三个串口模块共用一个控制器19,每个串口模块具有各自的FIFO和串口收发接口,构成三个独立的串口。
下面以一个串口为例说明连接原理,串口模块13,由三个子模块组成:串口波特率发生器14、串口接收子模块15、串口发送子模块16。由于每个串口都有各自的三个子模块,因此每个串口均是全双工的,收发互不影响,各自的波特率可调可设,各个串口相互独立。串口模块13的串口接收子模块15与串口接收FIFO17相连,串口发送FIFO18与串口发送子模块16相连。
串口数据接收过程为:从串口接收总线rxd[N:0](对应串口接收34)接收的对应串行数据经过串口模块13转换为并行数据后写入串口接收FIFO17;当串口接收FIFO半满后告知控制器19,由控制器19向上层DSP控制器产生中断INT6,控制器19同时标识串口接收FIFO17为半满状态;等DSP给出DSP同步时钟32、读使能ARE11,并且片选CE9和AOE10信号有效时,控制器19根据地址总线EA8从指向的串口对应的接收FIFO(此处应为串口接收FIFO17)中读取数据到数据总线ED7上至串口接收FIFO17为空。对DSP而言,当中断INT6产生后,通过数据总线ED7和地址总线EA8向控制器19查询半满串口接收FIFO,然后告知控制器19读取该串口接收FIFO;若中断产生时同时有多个串口产生半满,则由DSP选择读取某一串口接收FIFO中的数据或者读取所有串口接收FIFO,对FPGA来说,串口接收不存在优先级问题。
串口数据发送过程为:控制器19与串口发送FIFO 18相连,当上层DSP通过地址总线EA8、数据总线ED7写入数据时,控制器19将数据写入串口发送FIFO18;串口发送FIFO18与串口发送子模块16相连,当串口发送FIFO18中有数据时,立即将该并行数据读出到串口发送子模块16转换为串行串口发送数据,并写入到串口发送总线txd[N:0](对应为串口发送35)。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (3)

1.一种基于FPGA的扩展多串口装置的数据收发方法,所述的扩展多串口装置采用现场可编程门阵列FPGA通过数据总线连接数字处理器DSP实现串口的扩展,包括控制器,至少一个串口模块,每个串口模块对应一个缓存模块,并通过对应的缓存模块与所述控制器连接;
所述的数据收发方法用于采用FPGA通过数据总线连接DSP实现多串口数据的收发,其特征在于,包括步骤:
(1)进行数据接收时,串口模块接收外部串行数据的输入,将串行数据转换为并行数据写入缓存模块;
当缓存模块半满时,通知控制器产生半满标志位标识所述缓存模块为半满状态;
DSP查询缓存模块的半满标志位,通过数据总线从具有半满标志位的缓存模块读取数据,直到该缓存模块为空;
(2)当进行数据发送时,DSP通过数据总线将数据写入缓存模块,缓存模块立即将并行数据读出到串口模块,串口模块将并行数据转换为串行数据发送。
2.如权利要求1所述的数据收发方法,其特征在于,还包括步骤:所述串口模块中设置的波特率发生器将输入时钟分频成所述串口模块需要的时钟。
3.如权利要求2所述的数据收发方法,其特征在于,还包括步骤,当所述缓存模块半满时,通知控制器产生中断信号,并将所述中断信号上传到DSP以触发DSP从具有半满标志位的缓存模块读取数据。
CN201210223598.1A 2012-06-27 2012-06-27 一种基于fpga的扩展多串口装置及其数据收发方法 Expired - Fee Related CN102760111B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210223598.1A CN102760111B (zh) 2012-06-27 2012-06-27 一种基于fpga的扩展多串口装置及其数据收发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210223598.1A CN102760111B (zh) 2012-06-27 2012-06-27 一种基于fpga的扩展多串口装置及其数据收发方法

Publications (2)

Publication Number Publication Date
CN102760111A CN102760111A (zh) 2012-10-31
CN102760111B true CN102760111B (zh) 2015-05-20

Family

ID=47054571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210223598.1A Expired - Fee Related CN102760111B (zh) 2012-06-27 2012-06-27 一种基于fpga的扩展多串口装置及其数据收发方法

Country Status (1)

Country Link
CN (1) CN102760111B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857685A (zh) * 2018-12-06 2019-06-07 积成电子股份有限公司 一种mpu与fpga扩展多串口的实现方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103713543A (zh) * 2013-12-18 2014-04-09 国核自仪系统工程有限公司 一种基于fpga的多串口并行处理架构
CN104021106B (zh) * 2014-06-19 2017-03-22 哈尔滨工业大学 基于fpga的dsp中断扩展逻辑系统及中断扩展方法
CN104636300A (zh) * 2015-02-09 2015-05-20 南京国电南自美卓控制系统有限公司 基于soc fpga的串行收发器及数据接收发送方法
CN104866452B (zh) * 2015-05-19 2017-09-26 哈尔滨工业大学(鞍山)工业技术研究院 基于fpga和tl16c554a的多串口扩展方法
CN105515926B (zh) * 2015-11-25 2018-09-21 中国电子科技集团公司第二十八研究所 一种基于fpga的二进制同步通信协议控制器
CN106911599A (zh) * 2015-12-23 2017-06-30 大唐半导体设计有限公司 一种处理基带信号的方法和装置
CN106201946B (zh) * 2016-06-29 2018-11-23 北京航天自动控制研究所 一种基于fpga和dsp的星载电子系统数据接口系统
CN106767921B (zh) * 2016-12-19 2019-08-09 北京航天时代光电科技有限公司 一种用于光纤陀螺仪测试电路fpga的实现方法
CN106933772A (zh) * 2017-02-17 2017-07-07 西安航空制动科技有限公司 基于uart ip核的sci通讯方法
CN107291647B (zh) * 2017-05-19 2020-08-14 中国科学院长春光学精密机械与物理研究所 Dsp读取扩展串口中接收通道数据的方法
CN111044783A (zh) * 2018-10-15 2020-04-21 常州星宇车灯股份有限公司 一种简易信号频谱检测系统
CN109656850B (zh) * 2018-11-13 2022-07-26 河北汉光重工有限责任公司 采用单片cpld扩展的dsp串口通信电路
CN109542040B (zh) * 2018-12-29 2020-07-28 中电智能科技有限公司 Io信号处理方法和可编程逻辑控制器
CN110362521B (zh) * 2019-06-30 2022-11-18 中国船舶重工集团公司第七一六研究所 Mcu+fpga架构的双路串行数据通信系统及方法
CN111078605A (zh) * 2019-12-10 2020-04-28 上海航天控制技术研究所 一种多通信接口中断的综合处理系统
CN111641708A (zh) * 2020-05-29 2020-09-08 山东超越数控电子股份有限公司 Dsp芯片传输数据的方法和装置
CN111666248A (zh) * 2020-06-16 2020-09-15 中国北方车辆研究所 基于fpga的rs422串口通讯控制系统及方法
CN112650701B (zh) * 2020-12-16 2021-10-26 中国电子科技集团公司第五十八研究所 一种精简串行传输电路
CN113609067B (zh) * 2021-06-25 2024-03-19 天津津航计算技术研究所 一种32路rs485接口卡的实现系统
CN113778684A (zh) * 2021-09-15 2021-12-10 中国电子科技集团公司第三十四研究所 一种面向多信息源的fpga与cpu数据同步装置及方法
CN114328334B (zh) * 2021-12-10 2023-06-02 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种基于emif总线扩展多路串口的装置及方法
CN116279208B (zh) * 2023-03-08 2024-04-19 亿咖通(湖北)技术有限公司 数据处理子系统、域控制器和车辆

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201503585U (zh) * 2009-04-07 2010-06-09 上海许继电气有限公司 基于cpci总线的多串口数据通信卡设备
CN101882125A (zh) * 2010-06-28 2010-11-10 中国航空工业集团公司北京长城航空测控技术研究所 一种基于可编程逻辑控制器的串行通信接口分时复用装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100647370B1 (ko) * 2004-04-20 2006-11-23 주식회사 하이닉스반도체 멀티 프로토콜 시리얼 인터페이스 시스템
CN101510184A (zh) * 2009-03-13 2009-08-19 上海微电子装备有限公司 多通道串口通讯系统及其控制方法
CN101908031B (zh) * 2010-07-23 2012-11-14 四川九洲电器集团有限责任公司 一种基于fpga搭建的增强型串口

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201503585U (zh) * 2009-04-07 2010-06-09 上海许继电气有限公司 基于cpci总线的多串口数据通信卡设备
CN101882125A (zh) * 2010-06-28 2010-11-10 中国航空工业集团公司北京长城航空测控技术研究所 一种基于可编程逻辑控制器的串行通信接口分时复用装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857685A (zh) * 2018-12-06 2019-06-07 积成电子股份有限公司 一种mpu与fpga扩展多串口的实现方法

Also Published As

Publication number Publication date
CN102760111A (zh) 2012-10-31

Similar Documents

Publication Publication Date Title
CN102760111B (zh) 一种基于fpga的扩展多串口装置及其数据收发方法
CN102023945B (zh) 基于串行外围设备接口总线的设备及其数据传输方法
CN102023942B (zh) Spi外设访问装置及方法
CN103116175B (zh) 基于dsp和fpga的嵌入式导航信息处理器
CN102420877B (zh) 一种多模式高速智能异步串口通信模块及实现方法
CN105281783B (zh) 基于fpga和dsp平台的信号解码单元及其实现方法
CN102253913B (zh) 一种对多板卡端口进行状态获取和输出控制的装置
CN205229465U (zh) 多模gnss接收机的基带芯片及多模gnss接收机
CN108683536B (zh) 异步片上网络的可配置双模式融合通信方法及其接口
CN203705861U (zh) 一种基于fpga的多串口并行处理架构
CN110837486A (zh) 一种基于FPGA的FlexRay-CPCIe通信模块
CN104991880B (zh) 一种基于pci‑e接口的fc‑ae‑asm通讯板卡
CN102521190A (zh) 一种应用于实时数据处理的多级总线系统
CN110795382A (zh) 一种基于fpga的通用异步收发传输器以及片上系统
CN107436851B (zh) 串行外设接口四线隔离系统及其控制方法
CN101631148A (zh) 串行通信协议中地址动态分配的通信方法
CN101901199B (zh) 一种数据透明传输的方法及系统
CN201378851Y (zh) 一种ccd图像数据采集装置
CN104461971A (zh) 一种数据采集控制系统和方法
CN102654852A (zh) 一种异步数据读写控制方法、装置及系统
CN114185830A (zh) 基于mailbox的多处理器通信方法、设备、系统和存储介质
CN104898775A (zh) 计算装置、存储装置、网络交换设备及计算机体系架构
CN102497514B (zh) 一种三通道视频转发设备和转发方法
CN103347023A (zh) 一种工业现场环境下hdlc通信控制器
TW202147141A (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150520

Termination date: 20160627