基于ARM和FPGA的高速高空数据采集系统的实现

2009-05-25 09:59郝建新
现代电子技术 2009年1期
关键词:嵌入式系统

吴 伟 郝建新 卢 力

摘 要:论述一种基于ARM与FPGA的高速高空实验数据采集系统的实现。其ARM芯片采用Samsumg公司的S3C2410,FPGA采用Altera公司Stratix Ⅱ系列的EP2S15器件。ARM通过接受地面指令控制实验运行,触发后通过 FPGA采集实验目标数据并传回地面。介绍了系统的硬件结构和接口设计,并着重讨论了软件系统的设计与实现,在高速高空数据采集系统的设计与实现上,体现出了新颖的构建方法。

关键词:嵌入式系统;ARM;FPGA;高空数据采集

中图分类号:TP273 文献标识码:B

文章编号:1004-373X(2009)01-126-03

Implement of High Speed and High Altitude Data Acquisition System Based on ARM and FPGA

WU Wei,HAO Jianxin,LU Li

(College of Electrical Science and Engineering,National University of Defence Technology,Changsha,410073,China)

Abstract:A high speed high altitude experimental data acquisition system based on ARM and FPGA is introduced.The ARM processor is S3C2410 produced by Samsung,while the FPGA is EP2S15 which belongs to Stratix II serial and produced by Altera.ARM controls the experiment process by receiving the command send by PC on ground,and itsends back the collected target experimental data after the system triggered.The system hardware architecture and connectionswere are discussed,with the emphasis on design and implement of the software system.It′s a new system designing and building experience introduced in this paper on high speed and high altitude data collection.

Keywords:embedded system;ARM;FPGA;high altitude data collection

随着人们对高空的兴趣发展和研究需要,越来越多的科学实验被科研人员搬到了空中进行,气球探空和无人机实验是比较典型的方法。这些科学实验往往需要在一定的实验条件到达时触发某特定实验现象,从而对发生时间非常短促且不具备可重复再现性的实验目标数据进行高速采集。日前,笔者参与的项目中需要完成的任务是:通过无线通信实现对高空实验设备进行控制,对整个实验过程进行实时观察分析(其中的实验条件数据通过GPS接收机,红外虚拟逻辑分析仪等设备实时采集),待实验到达触发条件时,通过手动(或自动可选)的方法实施触发,再对触发后的实验目标数据进行采集并传回地面PC进行后续的分析处理。该项目采用ARM和FPGA分别作为主从处理器设计嵌入式采集系统,采用多通道A/D并行采样实验目标数据,

系统通过基于串口的无线数传模块与地面实时通信。

1 系统硬件设计

系统的硬件结构原理图如图1所示。

在该系统设计方案中,ARM采用Samsung公司基于ARM920T的S3C2410,其主要技术指标如:支持 32 b ARM指令集和16 b Thumb指令集;支持32 b的高速AMBA总线接口;带有MMU(内存管理单元),可以进行Linux操作系统的移植;MPU支持实时操作系统;采用五级流水线和哈佛结构,独立的16 KB指令Cache和16 KB数据Cache,具有更高的指令和数据处理能力;支持TFT的LCD控制器、NAND闪存控制器、3路UART、4路带PWM的Timer、8路10位ADC、触摸屏接口、I2C总线接口,以及2个USB主设备接口和1个USB从设备接口等丰富的外围设备和接口。FPGA采用Altera公司Stratix Ⅱ系列的EP2S15器件,EP2S15现场可编程门阵列系列速度快容量高,它采用1.2 V,90 nm全铜层SRAM工艺和创新的适应逻辑模块(ALM)结构,有最大化的性能,器件密度可达到15 600等效逻辑元(LE),能提供419 Kb片内TriMatrix存储器,多达12个DSP区块有48(18 b× 18 b)乘法器,用来实现高性能滤波器和其他DSP功能,支持各种高速外接存储器接口,支持各种标准的 I/O,高速差分I/O,具有丰富的外部资源以及支持多种高性能标准。

在该系统中,ARM主要负责核心处理和控制,总线实现ARM与FPGA之间的通信,存储器负责程序和数据的存储,其中FLASH存储程序和文件,SDRAM存储系统运行时的程序和数据,ARM通过GPIO连接实验中的相关继电器、触发设备、输出电压控制设备、以及特定设备采样A/D并进行驱动,通过FPGA扩展RS 232串口分时控制和读取GPS接收机、红外虚拟逻辑分析仪等设备数据,通过总线连接FPGA并控制FPGA动作来启动和完成数据采集,通过RS 232通信接口负责与地面PC的交互。本系统充分发挥了ARM芯片的强大处理能力和FPGA的高速并行能力,成功实现实验目的。

ARM和FPGA的总线接口如图2所示。

S3C2410通过读写总线上的地址来进行指令和数据的传输以控制EP2S15的所有动作。FPGA主要实现通过控制A/D实现数据采集,并保存至SDRAM,对ARM的读写信号进行译码以将实验目标数据读回ARM并传回地面。将EP2S15直接连在S3C2410的存储器总线上,S3C2410可以通过存储器指令访问EP2S15,ARM与FPGA之间的连接除了数据、地址和读写控制外,还有中断信号和DMA控制信号,使ARM可接受FPGA产生的中断和实现DMA数据传输。另外为了扩展S3C2410的串口,将串口连接到FPGA实现对多个设备的分时控制。

2 系统软件设计

系统的软件结构图如图3所示。

2.1 PC机控制程序

(1) 通过自定义协议和无线数传模块,对下位机发出各种命令控制实验的进行。

(2) 对实时的实验条件数据进行相关处理和显示,以实现对实验运行情况实时监控。

(3) 根据实验者要求,定义实验触发条件和方式,并在条件到达时发出警报。

(4)对实验目标数据进行采集和保存,待下一步实验分析使用。

2.2 下位机系统程序

下位机程序包括FPGA模块子程序和ARM主体控制程序。

FPGA模块程序又包括对ARM读写指令的译码,对A/D的驱动来采集实验目标数据,对SDRAM驱动以保存实验数据,对中断信号和DMA信号的支持,对串口的设备切换支持。

ARM主体程序包括操作系统和应用程序:为了最大程度利用系统硬件资源,并且保证实时性,在ARM上移植了Linux多任务实时操作系统,内核版本为2.6,完美支持多线程以并行完成实验中的多个控制任务,并且通过修改启动参数以实现控制程序的自动运行;为了方便系统开发调试,该系统移植了基于Linux USB Gadget的USB从设备驱动,实现了把ARM连接的FLASH当成海量存储设备进行读写,大大提高了开发过程中烧写FLASH的速度,提高了开发效率,并对于地面进行试验性实验的大数据量高速读写提供了支持;设计并实现了用来支持FPGA,A/D设备、相关继电器、触发设备、输出电压控制设备的驱动;并实现了主体应用程序以完成各主要任务。

驱动模块实现中,均采用字符设备方法,对于FPGA的驱动通过IOCTL方法以实现对多端口变长字节数的读写;对A/D设备则通过对连接的GPIO端口(时钟信号和数据引脚)完全按照设备时序进行操作,考虑到实验中特定电压变化并不会骤变,为了数据准确采取多次读取求均值的方法进行;对输出电压控制设备则对内核实现的s3c2410_gpio_set函数进行参考,实现一次调用对多个GPIO端口进行设置,以保证输出电压的精确跳变和控制。

主体应用程序主要包括初始化模块、通信模块、充电控制模块、实验参数设备数据读取模块(GPS等)、实验目标数据采集模块。下面是几个主要模块的实现过程。

(1) 通信模块

由于采用基于串口的无线数传与PC机进行通信,项目中采用自定义协议方式,定义了相关的命令字、数据字、参数字的数据格式以及纠错算法和握手协议,对PC机发送的命令进行解析和响应,并启动调用其他实验控制模块,最后将实验所需的数据实时传回地面。

(2) 实验参数设备数据读取模块

在初始化模块中把各实验参数设备配置为PUSH模式,以项目中采用的GPS接收机为例,可以配置成以5 Hz的速率定时发送符合NMEA协议的GPGGA等数据的模式,每隔一定时间切换串口至GPS接收机读取数据,按照NMEA协议对试验中所需的数据进行解析处理,并保存至指定缓冲区以让通信模块实时发送回地面,其他设备类似操作。

(3) 实验目标数据采集模块

在接收到触发命令后,启动FPGA进行采样,通过轮询或中断方式判断FPGA已经采集完毕后,将实验目标数据读至指定缓冲区,进行相关处理后传回地面,为了保证数据准确,可采用重复发方法或较好的纠错方法。

初始化模块主要完成上电后对各实验设备进行初始化,读取PC发送的参数进行设置,其他实验控制模块按照实验规程完成。

3 结 语

介绍一种采用ARM与FPGA相结合的设计,实现了适用于高空高速实验数据采集的系统,采用S3C2410作为主控芯片,实时地将实验数据传输到地面PC控制平台,地面PC实时控制高空实验过程并进行实验目标数据采集。现场可编程门阵列(FPGA)采用Altera公司Stratix Ⅱ系列的EP2S15器件,在控制 4块A/D转换芯片的同时,将数据存贮在SDRAM中,并与S3C2410通过总线传输数据。由于主从处理器都采用功能强大且资源丰富的芯片,为以后的系统升级预留了大量空间。开发过程中可得的丰富资料,减轻了研发任务,提高研发速度,在较短的时间内得到性能优秀的目标系统,目前该系统已投入实际应用,取得了理想的效果。该论文的创新之处在于以新颖的设计结构同时实现了复杂实验过程的控制和高速的数据采集,对S3C2410这款处理器强大的处理能力和丰富的I/O资源充分利用,同时以EP2S15的高速并行处理能力弥补了ARM的不足之处。该系统中的整体设计结构和流程都可以为嵌入式数控行业提供很好的借鉴作用。

参考文献

[1]Sumsung S3C2410 Data Sheet[Z].

[2]Altera Stratix II Device Handbook[Z].

[3]Corbet J.Linux设备驱动程序[M].魏永明,耿岳,钟书毅,译.北京:中国电力出版社,2005.

[4]郭文秀,董永贵,孙照焱,等.高速连续数据流记录系统中并行处理接口的研究[J].计算机工程与应用,2002,38(6): 67-69.

[5]吴小明,叶朝晖,杨士元.基于ARM的快速原型化平台的实现[J].微计算机信息,2006,22(23):156-158.

[6]肖金球,刘传洋,仲嘉霖.基于FPGA的高速实时数据采集系统[J].电路与系统学报,2005,10(6):128-134.

[7]杨志方,王泽成,涂坦,等.基于FPGA的多路高速数据采集系统的实现[J].武汉化工学院学报,2006,28(3):58-61.

[8]崔俊杰,郭宏.基于FPGA的实时数据采集与远程传输系统设计[J].数据采集与处理,2005,20(3):366-370.

[9]成洁,路欣.嵌入式Linux平台的GPS数据采集研究[J].江西理工大学学报,2006,27(3):24-26.

[10]周维,陈默.基于S3C2410的ARM开发平台[J].电子技术,2004,31(7):4-6

作者简介吴 伟 男,1983年出生,湖南涟源人,工学硕士。主要从事嵌入式系统、ARM应用与电子控制技术等的研究。

郝建新 男,1960年出生,湖南长沙人,教授。主要从事图形、图像与计算机可视化的研究。

猜你喜欢
嵌入式系统
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究