3 软件系统设计
3.1 软件系统设计
系统以主测试设备为核心,采集、收集多个测试传感器采集的信息,并将测试数据收集保存,可以通过网络实时地传递到系统的监测中心进行分析和处理。本设计采用的Linux内核是在ARM-Linux的基础上,编写了OLED显示模块、USB设备的设备驱动程序。软件设计主要包括ARM-Linux在微处理器S3C2410上的移植,相关驱动程序设计、系统任务级设计等。开发系统采用PC工作站和主测试设备的嵌入式主板构成的交叉编译环境,本系统使用Linux2.6的内核,内核的编译通过Makefile文件的指示进行,通过修改Makefile来组织内核各模块,并记录模块间的相互联系和依赖关系,修改config、setup等相关配置文件完成内核的编译,生成zlmage、vmLinux、System.map、config等文件。双口通信的程序如图3所示。
3.2 网络通信程序设计
嵌入式无线局域网设备可以用于有线网络无法延伸或难以安装、又可灵活移动和临时性使用等要求的场合。在本系统中主要采用Linux下的Socket通信方式,使用TCP/IP网络协议栈,采用面向有连接Stream套接字。
主测试设备运行过程中,接收来自网络的远程指令,并且为了方便远程测量和控制,每个主测试设备被分配固定的IP地址和端口,远程测试站可进行有选择性的查询式测量,每个主测试设备在通信开始前使用socket( )建立一个通信端点,再使用bind( )函数把一个地址绑定到这个端点上,然后使用listen( )函数侦听是否有来自远程的连接请求,如果有,则使用accept( )处理,并按照指令执行测量任务或传送测量数据。如图4所示。
虽然现场显示和无线传输2种方式已经提供了大量的数据和信息。但是都受到了地域和空间的限制。因此,为了满足相对恶劣的地理环境和移动设备的采集需求,系统后期可通过加入GSM短消息传送数据的无线方式。GSM网络经过多年的发展完善,现在已经非常成熟,盲区少、信号稳定、自动漫游,并且通信距离不受周围环境影响。
本文的创新点在于开发了一种基于嵌入式系统的机车状态实时检测系统,该系统实现了机车上信号量的采集和信号的存储、大容量的数据存储、稳定可靠的CAN总线通讯和远程无线通信,各个模块在Linux实时操作系统的调度下协调工作,车载显示和语音报警效果良好,并能够在机车出现故障时提醒司机故障出现的位置和解决故障的方法。该系统通过在嵌入式Linux环境下的网络通信测试实验,证实具有较好的响应能力和数据吞吐能力,本系统设计在非接触式测量领域有一定的应用价值和指导意义,经在机车检测方面的多次联机调试,系统工作稳定、可靠,在工业控制领域具有广泛的应用前景。