微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 用S3C2410实现铁路数据实时采集系统

用S3C2410实现铁路数据实时采集系统

时间:04-22 来源:超前科技开发网 点击:

集的数据来选择。本系统主要运用于火车机车车体震动测量,所以采用3个使用ADXL105高精度单轴加速度传感器芯片制作的加速度测量模块。测量模块分别安置于车体底部的垂直方向和水平方向,用于测量车体在X、Y、Z方向上的加速度。测量数据以差分信号的形式输入到精密放大器中,经比较放大后直接送到A/D模块中。
2.5 外部通信模块
外部通信模块由两部分组成: 485通信模块和CDMA模块。
485通信接口采用的是MAXIM公司的MAX1490芯片。这是一款完全隔离的485数据接口芯片,单工工作方式,传输波特率最大可达2.5 Mbps。其输出引脚直接与ARM处理器的串口2(UART2)相连;ARM处理器通过串口2读取时间和坐标等相关数据的广播信息。ARM处理器串口0(UART0)与AnyData DTGS800 CDMA模块相连;监测数据经预处理后通过CDMA模块发送到地面服务器。

3 软件设计

软件设计主要使用Embedded Visual C++语言和VHDL语言。VHDL语言用于编写FPGA程序;ARM处理器的调试则使用C语言。
系统开始工作后ARM处理器和FPGA协处理器中的FIFO开始初始化。经A/D转换后的数据存入3个数据输出通道对应的FIFO中。FIFO中的数据容量达到一定限度即产生中断,ARM处理器中的主程序产生中断等待线程;一旦中断产生则进入中断服务程序,读取数据。数据经检测程序进行预处理后通过CDMA模块发送出去。图3为系统工作流程图。


图3 系统工作流程图

3.1 系统的同步处理
因为A/D模块与FPGA协处理器上电即开始工作而ARM处理器完成系统加载,端口初始化大概需要10 s左右的时间。在这个过程中FIFO中存储的数据已经被写满。如果ARM处理器在程序加载完成后直接使用这部分数据则会产生检测结果与广播信息不匹配的问题。为防止系统因各模块工作时序混乱而出现的数据检测错误的情况。在ARM完成Windows CE系统加载并进入检测主程序后产生一个清零信号用于清除3个FIFO中的数据。实现系统的同步工作。
3.2 中断的产生及处理
在本系统中如果对A/D转换数据采用实时读取的方式,则必然导致ARM处理器工作效率较低,所以在电路设计时采用了中断方式。A/D模块输出数据以循环方式分别写入3个FIFO中。一旦FIFO中可使用数据容量减小到一定限度则产生中断,ARM处理器进入中断服务程序并读取FIFO中的数据。
3.3 列车广播信息读取
火车机车广播信息通过监控设备不断地发送广播信息。信息传输以标准的RS485传输协议进行,通信波特率为9600 bps,采用10位异步通信方式:1位起始位+8位数据位+1位停止位。每组数据包由17字节数据组成,包括月日时分秒、时速、公里标、交路号和车次。数据格式为:起始位+数据位+停止位+BCC校验。其中:起始位为1字节,固定为0x02;数据位为14字节;停止位为1字节,固定为0x03;BBC校验为1字节,是前面15字节的"异或"校验。
软件实现:接收广播信息程序的实现主要是利用了Windows的消息机制。首先初始化S3C2410芯片的UART2口,包括设置波特率为9600 bps,配置端口,并将端口与事件绑定。然后启动线程不断侦听端口。如果有数据输入则会产生读取事件,此时线程读取一个字节的数据,并由串口将数据发送至主线程。最后,主线程通过相应函数接收数据,数据接收完毕则对数据进行长度检测和异或校验。如果检验通过则将数据转存入二级缓存(一级缓存继续存放数据),并通知上级模块读出数据;然后清空二级缓存,等待下次数据进入。广播信息读取程序界面见图4。
3.4 加速度数据获取
数据采集是通过应用程序与驱动程序的交互来完成的。实现交互的方式有很多,例如可以利用callback函数(回调函数)或将函数应用程序中的数据处理函数指针传给驱动,以及使用SETEVENT等来实现。考虑到软件的升级,本系统采用的是SETEVENT方法。Windows CE系统与PC上的系统存在很大差异。一旦系统的某些模块有所改动,必须重新编译Windows CE系统和烧写FLASH,工作量较大。使用SETEVENT的方法可在不改动驱动的情况下对应用程序进行调试,从而避免了反复烧写FLASH。
软件设计思路:数据采集软件启动后必须对FIFO中数据进行复位。因为从Windows CE系统启动到数据采集软件开始工作需要15 s,但 A/D模块及FIFO模块在系统上电后即开始工作,因此如果使用这部分数据就会造成数据与列车广播信息的不匹配。驱动程序在响应中断后通过SETEVENT机制通知应用程序,此时数据读取控制权就完全交给了顶层用户。用户可以根据自己的需要来控制数据的读取及处理。数据采集程序界面见图5。

4 结束语

本文所研制的系统综合利用了移动通信和嵌入

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top