液压挖掘机在工业与民用建筑、交通运输、水利电力工程、矿山采掘以及军事工程等施工中起着极为重要的作刚。对于某些不适合人类进入的工作场所,如高温、含有辐射物或装卸危险物品的场所下的挖掘任务,以人手动操作为主的传统液压挖掘机已不能胜任,液压挖掘机的远程监控、自动化和智能化成为该类场所挖掘难题的最好解决方案。在液压挖掘机的无线远程监控系统设计中,各种传感器数据和控制数据的无线传输系统的设计对于远程监控功能的实现具有关键作用。
1 系统设计方案
液压挖掘机的无线监控数据传输系统采用上下位机双层控制结构,上下位机之间采用了点对点通讯模式。上位机采用PC机,主要完成远程监控、数据存储处理和运动轨迹规划运算等工作。下位机安装于挖掘机上,采用InterControl公司的机载电脑。MTC通过CAN总线传输各传感器数据和油缸电磁阀开口大小信号,进行挖掘机状态数据的采集和电磁阀等执行机构的驱动等。各传感器、油缸电磁阀和机载电脑之间通过CAN总线通信。编程工具是工控领域常用的CoDeSvs。采用通讯频段为433MHz、通讯最大距离为500m的无线数传输模块nRF905进行无线数据传输。nRF905有4种工作模式:掉电模式、待机模式、发射模式、接收模式。无线监控数据传输系统采用FPGA作为通信控制模块,使用SOPC技术搭建片上硬件系统。通信控制程序使用C语言编写。FPGA通过GPIO口控制nRF905的三组引脚:TX_EN、TRX_CE和PWR来设置nRF905不同的工作模式;载波俭测输出CD、地址匹配输出AM和数据就绪输出DR用于通知FPGAnRF905的收发状态;SPI接口用于配置、发送和接收数据。系统硬件结构框图如图1所示。
2 SOPC片上系统设计
该单元主要功能是通过建立通信协议和对无线数据传输模块的控制,准确实时地接收、存储来自各个节点的数据,并传送给上位机和MTC。
2.1 SOPC片上系统硬件构成
加入的SOPC组件和模块主要有:NiosⅡ处理器,Avalon三态总线桥;外部SDRAM存储器的控制器核;Flash类型的存储器,用于存放程序和数据;时间计数器核Interval timer;SPI核,用于实现SPI协议并提供Avalon接口;PIO接口用于连接nRF905的SPT接口和发出控制信号,其管脚连接至FPGA的GPIO口。将所组成的系统进行编译后,可以下载到FPGA芯片上构成片上控制系统。系统框图如图2所示。
2.2 SPI核配置
nRF905射频模块和FGPA通过SPI接口进行数据传输,该接口以主从方式工作,由以下四线组成:SCK (时钟信号,由主设备产生)、CSN(片选信号,由主设备控制)、MOSI(主设备数据输出,从设备数据输入)、MISO(主设备数据输入,从设备数据输出) 通过FPGA实现SPI接口与总线接口转换,需要考虑的因素有:
(1)接口时序 主要包括/SS与SCK的时序关系:/TREQ与/SS的时序关系;SCK与MOSI和MISO的时序关系,比如MOSI数据存SCK下降沿被从机采集接收,而MISO数据必须在SCK上升沿由从机输出,在相邻的下降沿被主机接收。
(2)接口速率 nRF905无线收发芯片的最高工作速率为50kb/s。上位机端的控制软件可以设置串口的工作速率,本设计中波特率设置为9600b/s。串口的波特率的每个字节加上起始位、停止位和奇偶校验位,经计算,串口工作速率小于无线芯片的工作速率,因此可以采用nRF905转发串口数据进行通信。
SOPC Builder内部集成的NIOS II的SPI核可以实现SPI协议并提供与Avalon总线相连的接口。SPI核作为连接微处理器和控制设备的通信接口,可以实现主协议,也可以实现从协议。本系统将SPI核配置为主模式。SPI发送数据的顺序根据nRF905的SPI数据传输要求,数据字的高位先发送。
2.3 片上系统通讯控制程序设计
(1) FPGA半双工双向通信程序设计
nRF905采用了Nordic公司的VLSI Shock Burst技术,射频数据包的高速信号处理都在芯片内部进行,并且自动产生前导码和CRC校验码。由于nRF905为半双工芯片,为了实现双向通信,在程序设计时需要考虑发送与接收的时间。为了提高运行效率,可以采用Shock Burst RX直接到ShockBurst TX模式转换或Shock Burst TX直接到ShockBurst RX的模式转换,由于不需要再重新配置寄存器,保持了相同的频道,因此转换所消耗的时间最少,转换时间为550μs。发送端数据采用单字节逐次移位的方式进行传输。在发送完毕即直接从Shock Burst TX模式转换为Shock Burst RX模式。为了确保收到信息,系统采用中断的方式,通过数据就绪输出DR置高米产生中断,如果没有收到则接收端仍然保持Shock Burst RX模式,发送端若一定时间收不到对方的信号则将上次发送的内容再次发送,从而保证了接收端信息的可靠接收,实现了双向通信。FPGA片上系统通信流程罔如图3所示。
(2) SOPC片上串口通信程序设计
NIOSII的UART核可以设置所需的通信模式,比如波特率、偶校验、停止位、数据位和其他控制信号。系统选用的串口波特率为9600bps。采用1位起始位,8位数据位和1位停止位。串口通信可以使用查询的方式也可以使用中断的方式。但是由于查询的方式较为占用资源,所以本系统采用中断的方式直接读取寄存器。UART核能够输出一个单独的中断请求(IRQ)信号给Avalon总线,从而连接到Nios II处理器,通知FPGA将数据转发至SPI接口。串口程序流程图如图4所示。
3 上下位机与FPGA间的串口程序设计
3.1 MTC方的串口通信设计
Codesyrs进行RS232通信编程,要用到以下四个函数:SysComOpen,SysComSetSettings,SysComRead,SvsComWrite。编写程序方法类似C语言。
SvsComOpen:打开RS232通讯端口,MTC仅可选COM2,其余皆不可用。
Buffm Address:当读取到数据后拷贝到变量BUFFER_DATA指向的地址内;
Bvtes To Read:读取多少个bytes。
Buffer Address:发送数据所在地址。
3.2 PC方的串口通信设计
PC的串口通信程序使用VC6.0编写,使用Microsoft公司ActiveX控件MSComm。采用事件驱动的办法,每当有数据由串口收到时,就会触发消息的响应函数OnComm。即可由PC收取串口的数据。发送时可直接调用该控件发送。
4 结束语
本系统能够低成本地设计出挖掘机无线传输系统,较好地完成半双工的挖掘机无线数据传输工作。采用SOPC设计挖掘机无线传输模块的控制器能够在软硬件设计上实现模块化,能够大量地减轻研发工作量、提高研发速度。