邱浩淼
摘 要 在当前,利用ARM与FPGA高速数据通信接口的相关设计,满足了数据采集器相关设备工作中对信号的高速要求。如果要实现ARM与FPGA之间的信号交互工作,主要是通过SPI总线来进行完成,然后数据的上传工作,主要需采用双口RAM来完成。这种设计其主要目的为了解决在ARM于FPGA运行中,其对数据的处理速度匹配不良或不匹配的情况,并且该设计满足高速、实时的需求。与此同时,根据相关的测试可以看出,此系统的设计不仅促使操作更为简单,功能也稳定正常。在仪器控制、电子测量的相关工作中应用广泛。本文结合自己相关经验,对基于ARM与FPGA高速数据通信接口设计进行相关探讨。
关键词 ARM与FPGA;数据通信;接口设计
前言
这些年来我国的科技日新月异,各类仪器的性能也变得越来越高,从而对仪器的性能也有了更高的要求和标准,其中对于仪器控制方面有诸多的要求,无论从仪器的实时性能,还是其精准度、采样速度等方面,都有着非常高的要求和标准。为了满足仪器的控制需求,则需要不断应用先进的技术,不断提升通信质量,建立高速数据通信接口设计,满足人们的使用需求。
1LINUX程序设计
在过去的信号采集工作中,通常需要通过单片机或者通过DSP来完成。但是,单片机存在时钟频率不高的情况,导致信号采集没有足够的速度,也无法提升效率。如果想要进行高速的信息采集,就无法应用单片机[1]。DSP虽然拥有较快的运算速度,但其对于外部复杂的硬件没有良好的控制。而如果应用FPGA就可以避免上述的问题,非常适合于高速信号的采集工作和控制工作,对提高信息通讯的效率有着极大的作用,进而满足数据采集和控制工作需求。相对来说,ARM技术具有成本低、体积小、速度很快等优势,诸多优点集于一身,其比较适合处理大容量的数据和控制。如果想要linux系统与FPGA可以配合并使用,就需要设计出相应的驱动。通过Linux的分配,设备被分为三个类别。再者,设备的驱动程序主要面对是使得相应硬件可以顺利完成其对应的工作,主要通过对系统软件的应用编程接口进行调用而产生,与此同时,还要在linux系统下的应用程序进行设计,从而实现对设备进行相关的操作。
1.1 驱动程序设计
首先是SPI驱动,其中包括主机控制器驱动和SPI外设驱动。前者由系统自带,而后者的驱动目标是需要注册一个平台设备,包括片选数量等内容。SPI外设驱动需要外挂在总线上,并且在数据传输的过程中,用SPI-transfer为主要的借口。该系统主要是与FPGA之间形成发送工作和相应流程,之后由FPGA进行对硬件控制,依照相应的参数和配置完成采集。
1.2 应用程序设计
本文主要阐述关于SCPI解释器的应用程序设计,其基于LXI总线的软件,而其应用程序则基于SCPI进行开发,如果要判断PC机的相关指令,就要通过SCPI,之后再判断应该应用的执行函数。为了使得Linux与FPGA之间通信提升,本文也主要介绍其回传命令在执行中的设计。当FPGA采集数据完毕后,就会给ARM一个信号,ARM收到信号后,就可以进行读取数据[2]。与此同时,DPRAM也开始存储相应的数据,而每次读取完毕1kb的数据后,就会通知ARM进行读取和计数。然后当已经有了存储数据后,ARM就开始回读存储的数据,并存储到buf之中,当读完毕后,就会给FPGA信号,促使其可以继续写,达成如上循环工作后,直到计数data,将DDR2完成全部读取数据。如此算是一次成功的数据传输,在实际测试中发现,有效提升了数据传输的效率,符合当今高速、真实的数据传输。
另外是控制台程序的设计,这个程序主要是源于IVI驱动,源于其采集的相关数据和现实的程序,我们在控制台中输入相关的参数,继而执行设置电压、采样点等命令,再通过Socket來进行传输,传输必要的参数和占领,继而进行比较后发送指令,最后,再由FPGA来对硬件实现控制,进而获得相应的数据,最终通过套接字之后在控制台最终得以显示。
2FPGA程序设计
在将FPGA的数据无误的传送给ARM的过程中,对FPGA进行设计是一项较难的工作,因为FPGA与ARM分别采用不同的时钟。
2.1 双口RAM模块
FPGA拥有较高的处理速度,其等级为ns级,而ARM为ms级,两者在数据通信过程中,都存在于难点,就是其处理速度无法达成一致,因此需要采用异步进行通信[3]。在设计中,可以采取由双端口和FIFO进行存储工作,其中利用FIFO存储是先进先出的方式。其仅需要按照始终写入和读取相关的数据即可,脱离了地址线[4]。而如果采用RAM进行存储,地址线、控制线等不会相互之间产生影响,进行独立的数据读写工作。在本设计之中,设计读取处于固定位置的数据,因此,要采用RAM的方式。
2.2 NIOSⅡ软核作为控制核心
该软件是FPGA的控制核心,对FPGA中所有模块之间的工作进行控制,以及进行协调各个模块之间的工作。其主要采用NIOS Ⅱ/e 的软核,其主要包括SPI丛及模块等多个模块。
3结束语
综上所述,利用FPGA和ARM相结合,利用了前者的高速处理信号的能力,利用了后者较好控制能力,从而设计出由ARM和FPGA组合而成的一种高速通信接口。双口RAM特点在于可以传输大量的数据,提升了数据的传输吞吐总量,而SPI实现了对FPGA 底层的有效控制,提升了一起的通用性能,进而应用终端传输来进行相关数据的输送工作,较大幅度地提升了系统的效率。
参考文献
[1] 肖燕娟,杨俊峰.基于USB2.0的高速数据通信接口设计[J].微计算机信息,2008,(05):310-312.
[2] 李刚. 小型PLC的数据配置与ARM-FPGA总线接口的研制[D].桂林:广西科技大学,2015.
[3] 陈佳欣. 基于FPGA与ARM的多功能综合测试平台研发[D].上海:上海交通大学,2014.
[4] 廖启文,Patrick Yin CHIANG,祁楠.面向5G通信的高速PAM4信号时钟与数据恢复技术[J].中兴通讯技术,2018,24(04):21-26.