当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于FPGA的扩展多串口装置及其数据收发方法制造方法及图纸

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

【技术实现步骤摘要】

本专利技术涉及现场可编程门阵列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之间传递中断信号,采用单一的中断源实现多串ロ扩展。本专利技术还提供了一种如权利要求I所述的基于FPGA的扩展多串口装置数据收发方法,用于采用FPGA通过数据总线连接DSP实现多串口数据的收发,其特征在于,所述包括步骤串ロ模块接收外部串行数据的输入,将串行数据转换为并行数据写入缓存模块;当缓存模块半满时,通知控制器产生半满标志位标识所述缓存模块为半满状态;DSP查询缓存模块的半满标志位,通过数据总线从具有半满标志位的缓存模块读取数据,直到该缓存模块为空;DSP通过数据总线将数据写入缓存模块,缓存模块立即将并行数据读出到串ロ模块,串ロ模块将并行数据转换为串行数据发送。 进ー步地,所述数据收发方法还包括步骤所述串ロ模块中设置的波特率发生器将输入时钟分频成所述串ロ模块需要的时钟。进ー步地,所述数据收发方法还包括步骤,当缓存模块半满时,通知控制器产生中断信号,并将所述中断信号上传到DSP以触发DSP从具有半满标志位的缓存模块读取数据。本专利技术的有益效果是,扩展的各个串ロ全双エ收发互不影响,每个串ロ完全独立,波特率可単独设置且速度不会降低,需要的串ロ个数可以自行定制,串ロ接收数据向DSP请求中断后可由DSP选择数据读取方式,FPGA上串ロ接收不存在优先级问题,DSP上只需ー个中断源进行多串ロ扩展。附图说明图I为本专利技术扩展多串口装置结构示意图;图2为本专利技术实施例示意图。具体实施例方式下面结合附图和实施例对本专利技术技术方案做进ー步详细说明,以下实施例不构成对本专利技术的限定。本专利技术的实施例使用的是Xilinx的Spartan3系列的XC3S400FPGA与ー块TMS320C6713DSP相连,实现单一中断源的多串ロ扩展。如图I所示,本专利技术基于FPGA的扩展多串口装置采用Xilinx的Spartan3系列的现场可编程门阵列I (XC3S400FPGA,以下简称FPGA),通过数据总线连接数字信号处理器33(TMS320C6713DSP,以下简称DSP)实现串ロ的扩展。DSP作为上层主控制器,FPGA作为协处理器作串ロ扩展,DSP与FPGA采用同步方式进行数据通信。其中FPGA的输入是串ロ接收总线rxd2、时钟CLK4、复位reset5、地址总线EA8、片选CE9、A0E10、读使能11、写使能12、DSP同步时钟32 ;输出是串ロ发送总线txd3、中断 INT6、数据总线 ED7。需要说明的是,DSP可同时外接多块FPGA,通过片选信号CE9来选择对应的FPGA。串ロ接收总线rxd 2和串ロ发送总线txd 3对应的一组串ロ接收和串ロ发送组成一个完整的扩展串ロ,在FPGA硬件允许,特别是FPGA中Block RAM容量允许的条件下,N的取值根据设计需要的串口数自行定制,当需要扩展三个串ロ时,设置N为2,rxd 和串ロ发送txd表示有三个扩展串ロ,分别对应串ロ 0,串ロ I和串ロ 2。FPGA设计主要包括FPGA芯片电路、存储器、输入/输出接ロ电路等几个部分,其中芯片电路是最核心的部分,存储器的设计可以參考芯片手册的标准设计,输入输出管脚可以自行定义并配置电平标准,从FPGA管脚出来的串口数据信号可以通过电平转换接至所需要的接ロ。核心部分芯片电路设计主要分为三部分单个串ロ收发模块、对应的存储模块和控制模块。单个的串ロ收发模块由三个子模块组成波特率发生器子模块、串ロ接收子模块、串ロ发送子模块。其中波特率发生器实质上是ー个分频器,将FPGA的输入时钟分频成串ロ需要的时钟,单个串ロ均设计有波特率发生器就从硬件上保证了扩展的每个串ロ波特率可调可设。串ロ接收子模块和串ロ发送子模块均根据串口数据定义,采用有限状态机设计,每个串ロ收发子模块与均有与之对应的存储单元,存储单元的结构选择FIFO,FIFO深度可设,本例中为512字节。串ロ与FIFO连接采用异步方式,该设计从硬件上保证了扩展的串ロ均为全双エ串ロ,各个串ロ互不干扰,单个串ロ收发也互不影响。 本例中对于串ロ接收,即对接收FIFO读操作采取的策略是当FIFO半满时产生半满标志位和中断信号,标明该FIFO半满并告知TMS320C6713DSP读取该FIFO中缓存的数据;这样使得串ロ接收不存在优先级问题;对于串ロ发送则是当发送FIFO中写入有数据时,即将其读出到串ロ发送子模块发送出去。该控制设计使得多个串ロ不存在优先级的区另IJ,读取FIFO时只要中断信号产生,即由DSP询查半满标志位读出对应FIFO数据,有多个标志位则读取多个标志位对应FIFO的数据;写FIFO时只要FIFO有数据则硬件完成数据发送。本专利技术的ー个具体实施例以三串ロ扩展为例,如图2所示,本文档来自技高网...

【技术保护点】
一种基于FPGA的扩展多串口装置,采用现场可编程门阵列FPGA通过数据总线连接数字处理器DSP实现串口的扩展,其特征在于,所述扩展多串口装置包括控制器,至少一个串口模块,以及连接所述控制器与所述串口模块的缓存模块。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭首宇李平
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1