多串口并行通信数据传输系统设计

时间:2022-07-25 07:07:46

多串口并行通信数据传输系统设计

摘 要: 传统多串口并行通信数据传输系统无法自主获取串口号,需手动选择再打开串口,需要使用者事先了解接口编码,这无形增加了系统的工作时间。为此,设计一种基于FPGA的多串口并行通信数据传输系统,该系统中的串口数据接收模块采集多串口数据,并通过控制寄存器达到控制通信数据波特率的目的。系统利用Nios Ⅱ处理器使8种信道共同进行传输工作,其将数据传输到并串转换模块。并串转换模块对输出的8位并行数据添加通道标识、并串转换处理,再将处理后的并行数据传递到串口输出选择模块中。依据数据脉冲上升沿设计串口输出选择模块,该模块通过多路分配器将有数据通道的数据串行逐位送出。系统在软件中进行了传输设计、Nios Ⅱ处理器流程设计以及通信设备类的设计与封装。实验结果表明,所设计系统在 FPGA上正确实现了8个串口数据的传输,并且具有较高的数据接收成功率。

关键词: 多串口; 并行通信; 数据传输系统; 数据采集

中图分类号: TN911?34; TP393 文献标识码: A 文章编号: 1004?373X(2017)04?0086?05

Design of a data transmission system for multi?serial port parallel communication

WANG Chunmei

(Tianjin Light Industry Vocational Technical College, Tianjin 300350, China)

Abstract: The traditional multi?serial port parallel communication data transmission system is unable to obtain the serial port number autonomously, which means that its users must know the interface code in advance. This increases the working time of the system intangibly. Therefore, a multi?serial port parallel communication data transmission system based on FPGA was designed. In this system, the serial port data receiving module is used to collect the multi?serial port data and control the communication data baud rate through the control register, and the Nios Ⅱ processor is adopted to make eight kinds of channels work together for data transmission to the parallel?serial conversion module. The parallel?serial conversion module adds channel identification to the output 8?bit parallel data, executes the conversion processing. and sends the processed parallel data to the serial port output choosing module. The serial port output choosing module is designed according to the data pulse rising edge. The module sends out the data in each channel bit by bit in serial mode through demux. The transmission system design, the workflow design of Nios Ⅱ processor and communication equipment design and packaging are performed in the software. The experimental results show that the system has realized the data transmission in eight serial ports on the FPGA, and has high success rate of data reception.

Keywords: multi?serial port; parallel communication; data transmission system; data acquisition

0 引 言

随着计算机技术的迅猛发展,测试系统的总线技术也得到了一定的提高,人们对计算机与设备的通信能力要求越来越高。串口传输技术的出现,是实现以上要求的重要发明[1?4]。传统多串口并行通信数据传输系统无法自主获取串口号,需手动选择再打开串口,需要使用者事先了解串口号,大大降低了系统的运行效率。因此,研究出可自主辨识串口号的多串口并行通信数据传输系统,成为相关人员分析的热点[5?6]。

文献[7]通过串行处理方式完成串口数据的并行通信,但是该方式处理长数据帧时,容易出现部分串行口通信数据帧被截断的问题。文献[8]通过RTS/CTS硬件流控制串口数据,将串口通信两端的RTS和CTS线对应相连,数据终端通过RTS调控数据流,数据通信设备用CTS控制计算机的数据流。该方法的缺点是控制过程复杂,效率低。文献[1]采用XON/OFF完成基于软件流的多串口并行通信数据传输控制,当串口接收端的软件输入范围的数据量高于阈值,则向串口数据发送端传递XOFF字符,发送端采集到XOFF自l地后,终止发送数据;否则,当接收端的数据量低于阈值时,向串口数据发送端发送XOF字符,并开始发送数据。但是该方法用于文本的数据通信,具有较高的局限性。文献[3]提出一种采用多线程并行的方式,完成多串口并行数据通信的有效控制,但是该方法的控制精度较差,会出现数据帧缺失的问题。针对上述问题,设计基于FPGA的多串口并行通信数据传输系统。实验结果表明,在 FPGA上正确实现了8个串口数据的传输,并且具有较高的数据接收成功率。

1 多串口并行通信数据传输系统设计与实现

1.1 系统总体设计

基于FPGA的多串口数据传输系统包括串口数据接收模块、并串转换模块以及串口输出选择模块,串口数据接收模块的主要工作内容是电平转换和数据收发,如图1所示。系统对串口数据接收模块的设计,主要进行了电平转换、UART IP特性参数分析,以及寄存器控制数据波特率的设计;系统对数据并串转换模块的设计,主要进行了解析外接信道信号、并串互转方式和时序模拟设计;系统对串口输出选择模块的设计,主要进行了解析目标信道串口数据以及ModelSim时序仿真,从中可以看出设计的系统实现了多串口数据传输的功能,并且串口波特率可调。

通过FPGA UART IP将多串口数据传递到DSP处理器中,通过8个UART IP实现了8种串口数据的接收工作,以及通信数据波特率的实时调整,其将8种串口信道中的数据融合成1路数据,串行传输到DSP处理器中。通过FPGA完成DSP多串口的拓展工作,简化系统通信的数据传输流程,缩减系统运行成本。

1.2 串口数据接收模块设计

1.2.1 电平转换电路设计

串口并行通信数据先通过电平转换电路实现数据信号转换,再将数据传至FPGA 引脚。设计的串口数据接收模块采用4片 MAX232芯片,完成8路UART的电平转换,其中的2路电平转换电路图,如图2所示。其他6路与此相似。

1.2.2 NiosⅡ处理器设计

基于FPGA的多串口并行通信数据传输系统中的FPGA中NiosⅡ处理器,用于采集数据并将其发送到计算机,显控软件接收数据并存储。NiosⅡ处理器的组件设计以及如何搭建实现。设计的NiosⅡ处理器架构如图3所示。

从图3中可以看出,NiosⅡ处理器包括四种组件,分别为:

(1) NiosⅡ运行μC/OS?Ⅱ所需组件:PLL,CPU,UART,其中的PLL和UART用于系统的调试和信息反馈;

(2) 存储组件:SRAM Controler,EPCS Controler分别用于控制,系统的易失性存储器件和非易失性存储器件。

(3) 以太网组件:TSE是以太网的通信层,SG?DMA用于完成串口数据的传输。

(4) 管控组件:停止输入、输出PIO串口数据,进而实现对串口数据的管控。

基于上述设计的NiosⅡ处理器,系统利用Altera NiosⅡ UART IP内核实现多串口通信数据的收取。其利用UART IP RXD进行经电平转换后的串口通信数据的获取,最后通过移位寄存器将获取到的数据反馈给rxdata,经由Avalon总线读取rxdata数据,并将数据传递到数据并串转换模块中。UART IP核在系统中的应用如图4所示。

UART IP核寄存器中的rxdata和txdata能够进行串口通信数据的收发工作;status主要对数据输入和读取进行标识;control管理寄存器,对接收发送数据时的中断使能进行管理;divisor寄存器,对串口波特率进行调整。系统 NiosⅡ处理器经由多个UART IP进行8种串口信道的传递工作,主要将PIO 输出的通信数据传输到并串转换模块。

1.3 并串转换模块设计

系y利用UART IP中的PIO传递出8位串口并行数据(取pio_0_data[7:0]通道为分析对象),这些数据传递给并串转换模块,该模块对数据进行通道标识和并串转换处理,再将处理后的数据传递到串口输出选择模块中。并串转换模块对串口数据进行通道标识的过程,也就是扩展串口数据pio_0_data到16位,高8位是通道标志,标识第一通道为1,第二通道为2,……,第八通道为8。通过移位寄存器完成16位数据的并串转换。p2s_u0串口的数据并串转换RTL视图如图5所示,可以看出8′h01被当成首路串口标识赋值在pio_data[15:0]的高8位。

1.4 串口输出选择模块设计

NiosⅡ UART IP 每次接收到串口数据后,会形成对应的脉冲信号,脉冲信号将指引着串口输出选择模块进行工作。每个脉冲信号均会令data_vld产生周期性的电平信号,通常为高电平信号。这是由于Nios Ⅱ为该通道设置了特定的优先处理参数,使其在相同情况下仅产生惟一中断。因此设计多路分配器DSP,逐次输出存在数据通道的数据串行。DSP 处理器利用其收取到的16位通信数据,进行数据串口的选择。

2 软件实现

2.1 μC/OS?Ⅱ多任务执行流程设计同通信数据的管控

μC/OS?Ⅱ操作平台的多方处理能力,使其能够进行多任务的同时处理,使得CPU在多个程序间进行高速变换,确保各程序在一段时间中获取多次的CPU占用。在NiosⅡ处理器中嵌入μC/OS?Ⅱ操作系统,再在该操作系统中塑造两个任务:任务Concisee AssociatArchitec Work用于塑造断开网络关联和数据传输管理;任务Concisee AssociatArchitec_trans Work用于发送串口数据。具体实现过程为:驱动μC/OS?Ⅱ中 UEBegain()函数运行,逐次进行Concisee AssociatArchitec Work任务和Concisee AssociatArchitec_ trans Work 任务的初始化,确保两个任务并行工作,Concisee AssociatArchitec Work 接收到客户端的网络关联申请时,连接网络。

(1) Concisee AssociatArchitec Work获取客户端端口网络指令时,网络中断;

(2) Concisee AssociatArchitec Work 获取客户端终止发送指令时,RAM无法进行写操作,停止串口数据发送;

上一篇:BB网络教学平台在植物生物学教学中的实践与应... 下一篇:基于ZigBee的大型楼宇安全监控系统