PDF下载
FPGA片间高速并行数据传输方法

文方哲 郝少飞

陕西宝成航空仪表有限责任公司,陕西省宝鸡市,721006

摘要: 针对目前国内常用的通讯信号采集系统存在的问题,采用 FPGA技术实现多通道数据采集。通过对多路并行通讯信号采集的仿真电路进行了优化,以减少在采集时的干扰。在此基础上,提出了一种基于交叉路口的数据采集方法,并对其进行了优化,以达到多路数据采集的目的。通过对 FPGA数据的分析,证明了该方法的正确性。
关键词: FPGA技术;并行传送;并行资料
DOI:10.12721/ccn.2025.157011
基金资助:
文章地址:

引言:

FPGA芯片广泛应用于智能控制设备的二次装置,帮助 CPU完成数据处理、传输、控制等工作。为了提高可扩展性和减少硬件开销,通常将两块 FPGA放在同一板上,因此 FPGA之间的数据传送就成为了必须考虑的问题。本文件描述了一个高速数据传输系统,其核心是FPGA,能够以高传输速度和低误差频率进行并行通信。

一、 FPGA的原理分析

数字信号处理技术的基本理论就是运用各种技术,如网络信息技术、计算机技术等,把信号数字化,从而达到对信号的高效采集、滤波、分析、应用,最后找到具有良好性能的信号。与传统的信号处理方法相比,数字信号处理技术在信号实时性、预见性、稳定性、适用性等方面都有很大的优越性。目前,各种信息技术的发展使数据和操作的数量复杂化,高速运算、实时处理等是当今世界上最主要的研究方向,对其处理技术的需求也越来越大。FPGA芯片的问世,可以很好地解决这些问题,并被广泛地应用于数字信号处理。FPGA是近几年比较受欢迎的一种信号处理芯片,它可以为使用者提供一种科学的程序设计,它可以把电路中的逻辑功能用布尔表达式表达出来,从而使集成电路具有一定的逻辑能力并得以实际地使用。

二、FPGA之间的并行数据传送

(一)硬体的结构

FPGA之间的并行数据传送采用6条印刷线,即时钟控制线,4条平行数据线。时钟线路是用来对接收端进行同步取样的,在发射端, PLL利用相位移动的方式生成输出时钟,以确保输出时钟的低延迟和低振动。接收机将时钟线路与 FPGA的时钟输入针连接,所以同步信号可以通过整个FPGA同步网络产生,高水平,低延迟和低震动。控制线数据的定义为,高电平有效,低电平无效。

数据线主要是为了进行数据的并行传送,通过 FPGA的常规 I/O引脚,可以将数据线按传送带宽的要求设置为2~4条。印制线蚀刻在FR4材料的 PCB板上,其传送延迟大约为0.167纳秒(3),所以六条印刷线路的长度差异被确保在±100微米以内。

(二)逻辑设计

(1)传输函数组件

CPU将板间总线上需要传送的各种信息数据,都使用平行总线传送到缓冲器中。

传输缓冲器可以从 CPU接收要传输的数据,或者存储在 FPGA中的数据。

传输控制模块按照数据缓冲传输的优先顺序,循环地检测传输缓冲中有没有新的数据要传输,如果有新的数据,就开始传输,传输一帧数据后,再进行循环检测。传输控制模块主要包括传输时钟,用于对传输数据的传输和传输的数据进行驱动;在总线上,还设置了一条信号,用以将相位偏移后的时钟进行传送,这个时钟的频率与发射时钟相同,但是相位延迟180度,以便在接收端进行数据的同步。在传输数据时,首先以1字节的高4位为基础,然后以4位为基础,由发射控制模块将信息以固定的形式传输。信头:16进制数字,固定为4个字节,分别是0XEB,x90,0x55,0xAA,用于帧的同步。报文类:1个字节,因为有多个包之间的数据包可以传送,所以每个包都会增加一个包类型,这样接收方就可以准确地识别出所收到的包的类型,这样就可以把它们分开存放在不同的接收缓冲中。包长度:2个字节,前面是低字节,后面是高字节,这些信息的数量是数据传输的数量,可以根据实际情况限制,以提供高优先数据的实时传输。数据传输区域:多个字节长度,代表两个CPU或FPGA之间传输所需的内部容量。检查:4字节长度,这是所有数据的CRC32验证码,从消息类型到数据区域,使收件人更容易检查。

(2)接收函数

接收控制模块采用接收的时钟和数据的有效信号,同步地取样所接收的数据,并将4位将所收到的资料转化成八位资料,并依资料的类别将所收到的资料写进不同的资料缓冲中。在接收包时,将所接收的字节数据与 CRC一起存储。报文完成后,根据 CRC的结果来判定数据包的发送是否正确,如果数据是正确的,然后缓冲区记录指示器将被更新,缓冲中的相应记录指示器不会更新。接收缓冲区可以是一个或多个存储不同类型和优先级的数据,然后在接收端顺序读取CPU。

接收方 CPU,根据每个缓冲的优先顺序,对各个缓冲进行读出,并进行相应的处理。

三、整体规划

该系统包括发送端、接收端、RS232接口、数据总线和对应的输入和显示装置。系统的后端使用数字灯和led灯来显示相关的数据和通信状态,接收端通过液晶显示器和led指示器。

连接线 hsend、hrecv、 dfinishi、error、clk_tx组成了一个握手总线, Hsend被FPGA1传输, Hsend被FPGA1传输,并向FPGA2通知FPGA1传输的数据;从FPGA2向FPGA1传送 hrecv,用来回答FPGA1能传送数据,通过FPGA2传送 dfinishi,当告知解码成功(已接收到)时,FPGA2传送 error,用于通知译码错误(接收失败),并要求重新传输。

TG12864是一种汉字点阵液晶显示模块,它能显示汉字和图形,中文汉字8192个,字符128个,64*256个阵列 RAM,可以满足用户的要求。采用8比特并行通讯接口与 FPGA通讯。

如果大量数据出现10个解码错误,就会启动检测电路故障的逻辑、12位数据分析、两条线路短路分析、一条线路断线分析和高或低的电线维护。测试结果显示在显示器和警报中。

四、硬件电路详细设计与理论分析

主控模块主要包括电源转换模块、FPGA芯片、4位共阳极数码管LED、按键开关、TG12864液晶显示屏、MAX232芯片以及外围的电阻电容等元件。

LE为5980个,芯片 RAM为92 Kbit,具有185个输入/输出端口,适用于并行数据传送,其晶振频率为48 Mhz。在进行数据通讯时,FPGA1可以向FPGA2传送内建 ROM文件,也可以设置一个随机值,用来探测通讯的效果。FPGA2在收到该数据之后,将该数据存储到 RAM中,并且可以在 LCD 12864中获知,该FPGA2经由232总线传送到计算机。

TG12864是一种汉字点阵液晶显示模块,它能显示汉字和图形,中文汉字8192个,字符128个,64*256个阵列 RAM,可以满足用户的要求。采用8比特并行通讯接口与 FPGA通讯。

该电源模块使用LM317变压器模块,输入+5 V,输出+3.3 V,+1.5 V输出。其中1.5伏的电压中,主要是 FPGA内部 PLL电路所需的电源。

五、结语

该系统旨在设计软件,以最大限度地加速操作,优化硬件,并使软件配置合理化。该系统使用FPGA作为核心,编写软件来传输数据,提供系统的稳定性和高可靠性,并执行快速并行数据传输的功能。传输效率高,误差系数低,传输距离,线路故障自动警报。数据传输的结果很清楚,分析方便。在接收机自动告警后,接收方可以在错误率和传输效率方面进行数据校正。它具有很好的实用价值。

参考文献

[1] 姚利华,孙运锋,邹兆君等, FPGA片间高速并行数据传输方法[J]. 电工技术, 2021(16):3.