基于嵌入式Linux的机车故障诊断系统研究设计

分享到:

作者:姜虎强 王丽红 董良新

      状态监测与故障诊断技术是现代工业技术发展的产物,已发展到了以专家系统、神经网络和模糊分析等理论为基础,以网络技术为依托,以知识处理为核心的先进智能化技术。Linux和RFID已成为现代工业技术热点,随着嵌入式技术的蓬勃发展,嵌入式系统凭借其性价比高、稳定性好、体积小、功耗低等众多优点已经深入到国防、网络通信、工业控制、数字多媒体相关的消费类领域。本文所介绍的面向铁路的手持式智能化故障诊断仪,涉及了Linux、RFID、嵌入式数据采集和无线传输功能及嵌入式系统的新技术。该套系统正是以知识处理为核心的嵌入式在线监测故障诊断仪器,具有功能强大、简单易用、便于携带等优点。原始数据可通过USB接口取出,进一步进行事后处理。本系统还可通过CDMA模块连接无线网络,将处理完毕的数据实时地发送到客户端,以实现特定信息查询和告警功能。

1 系统的组成和结构

  该面向铁路的手持式智能化故障诊断仪,是一套基于电池供电的智能化仪器。测试系统主要由测试头、主测试设备和远程监控站3级测试层组成。前端测试头主要由AVR采集MCU、传感器和智能RF芯片构成;下位机是基于ATmega128单片机的数据采集系统,承担多路现场快变及缓变信号的采集,主要完成任务采集、接收来自主采集设备的指令并执行主设备的任务调度。主测试设备主要由内嵌Linux操作系统的ARM9处理器、智能RF芯片、网络和串行通信接口、存储设备和显示设备构成。主测试设备主要完成各无线采集点的任务分配、数据收集分析,可同时监测和管理若干个连接的无线网络范围内的传感器测试头,并可通过无线数据传输模块或通过Internet传向远程监控站并接受远程控制站的任务调度。

  远程监控站主要由服务器、监测数据库和外围设备构成,分为数据采集(上位机)和数据处理(下位机)两大部分,承担实时数据的处理,也可以通过USB口或者以太网下载到PC上,进行进一步深入的故障趋势分析。本系统对整个现场监测的任务进行合理地分解:将模拟信号的采集、A/D转换以及简单的数据处理部分放在下位机实现,以控制系统的硬件规模及耗电量。将数据的进一步处理、实现现场实时分析的构件、历史数据重现及精简的专家系统放在上位机上实现,本文主要介绍无线数据传输的研究设计。系统框架如图1所示。

2 硬件系统设计

2.1 智能nRF905无线收发芯片

  增加安全可靠、稳定的无线模块功能,是传统PDA设备的技术趋势。该设备采用Nordic公司的单片无线收发芯片nRF905。该芯片工作在433/869/915 MHz的ISM频段,由1个完全集成的频率调制器,1个带解调器的接收器、1个功率放大器、1个晶体振荡器和1个调节器组成,可以很容易地通过SPI接口进行编程配置。电流消耗很低,可以很容易地进入Powerdown模式实现节电。nRF905采用VLSI ShockBurst技术,使得nRF905能够提供高速的数据传输,将与RF协议有关的高速信号处理放到芯片内部。在ShockBurst TX模式中,nRF905自动产生前导码和CRC校验码,数据准备就绪DR信号通知主控制其数据传输已经完成。该芯片可与测试设备ARM和AVR的MCU通过简单的串行接口连接,使用方便。

2.2 ARM处理器模块

  构建可移植嵌入式Linux的ARM9系统,嵌入式Linux是目前广泛应用的一种嵌入式操作系统,ARM处理器模块由Flash、SDRAM和S3C2410共同构建。本系统选用Samsung公司的K9F1208U0A构建8位Flash存储器系统。

  K9F1208U0A单片容量为64 MB:选用2片单片容量为32 MB、数据宽度为16位的HY57V561620CT并联构建32位SDRAM存储器系统,共64 MB的SDRAM空间可以满足嵌入式操作系统和各种复杂算法的运行要求。ARM处理器对各模块的控制则通过底层驱动控制协处理器产生各种控制信号实现。

2.3 传感器模块

  传感器模块可以根据所需采集的数据来选择。本系统是在CAN总线有线数据传输的基础上开发的,CAN总线通信电路由微处理器S3C2410、控制器MCP2515、驱动器TJA1050、光耦6N137和电源隔离模块组成,CAN通信主要用于机车恶劣环境下的数据采集。该系统的无线传输功能主要运用于火车机车车体振动测量,也可运用于机车的运行监测。所以采用3个使用ADXL105高精度单轴加速度传感器芯片制作的加速度测量模块。测量模块分别安置于车体底部的垂直方向和水平方向,用于测量车体在X、Y、Z方向上的加速度。测量数据以差分信号的形式输入到精密放大器中,经比较放大后直接送到A/D模块中。

2.4 外部通信模块

  设备外部通信模块由2部分组成:485通信模块和CDMA模块。485通信接口采用MAX1490芯片。这是一款完全隔离的485数据接口芯片,单工工作方式,传输波特率最大可达2.5 Mb/s。其输出引脚直接与ARM处理器的串口2(UART2)相连,ARM处理器通过串口2读取时间和坐标等相关数据的广播信息,串口0(UART0)与AnyData DTGS800 CDMA模块相连,监测数据经预处理后通过CDMA模块发送到地面服务器。

2.5 系统关键硬件接口设计

  系统硬件主要接口包括AVR与nRF905的接口、AVR与ARM9的接口以及ARM9的外围接口等。本文主要介绍AVR与nRF905和ARM9的接口。AVR MCU通过nRF905接口收发数据,然后将收到的数据写入双口RAM等待读取数据,另外ARM9将要发送的数据写入双口RAM后给AVR MCU发送中断信号,AVR MCU再从双口RAM中读取数据,根据指令将其发送至相应的采样传感器测试头。但由于ARM与AVR之间的通信速率不匹配,2个CPU的数据交换通过一片双口RAM完成。因此应用了异步高速双口RAM IDT7130,很好地解决了异步串口通信的瓶颈问题,双口RAM对于存储区的分配,分成命令区、状态区、接收数据区、发送数据区和中断区5大区。接收数据区和发送数据区的细分,可以根据串口数量、报文长度的实际需要进行再分配,主CPU和从CPU的握手协议可以通过命令区和状态区的设计来完成。主要接口如图2所示。

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环境下的网络通信测试实验,证实具有较好的响应能力和数据吞吐能力,本系统设计在非接触式测量领域有一定的应用价值和指导意义,经在机车检测方面的多次联机调试,系统工作稳定、可靠,在工业控制领域具有广泛的应用前景。

继续阅读
一篇文章带你盘点11种基于ARM的嵌入式操作系统

TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。程序采用的是模块化设计,所以它的程序核心往往都很小,一般来说核心代码和数据大概在400 Bytes左右,能够突破传感器存储资源少的限制。TinyOS提供一系列可重用的组件,一个应用程序可以通过连接配置文件(A Wiring Specification)将各种组件连接起来,以完成它所需要的功能。

51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss