在一些恶劣的环境或者人难以到达环境下工作的钢丝绳,需要对它进行无损探伤检测和监测时,通过采集数据无线发送的方式是一种较好的选择,但是这种情况下也造成了更换电池的困难,于是对系统的功耗问题提出了更高的要求。介绍一种解决方案,利用Zigbee兼容的无线发射芯片和一款低功耗的MCU为核心组成数据采集以及无线传输的模块,详细介绍了所使用的一种简单的通信协议SMAC 以厦应用程序实现一个点对点的数据受拉采集无线收发与数据波形显示的方案,包括上位机的监控程序。
在现有的钢丝绳无损探伤设备里,大部分都是采用的数据有线传输的方式,但是在一些大型的厂矿中,钢丝绳应用场所分布广泛,在设备众多的场合造成传输线布线困难的局面,另外,钢丝绳使用的环境千差万别,有时检测设备很难到达钢丝绳工作的现场。因此,采用无线传输的方式,便于受空间制约的钢丝绳检测。在固定的检测点安装数据采集以及无线传输的模块进行长期的监测,并在远端采用相应的接收模块以及相应的控制和数据处理设备是一个较好的解决方案。但是,这样又带来了新的问题,数据采集端如果功耗较大,需要频繁地更换电池也会造成很大的不便,而且功耗往往很大部分消耗在数据无线传输这个环节上。因此,本文提出了一种基于Zigbee无线收发芯片的低功耗点对点无线传输的解决方案,可以在使用两节AA电池供电的情况下,使数据采集端工作至少半年以上。除此以外,该无线接入模块成本低、可靠性高、所占空间小、安装灵活、所使用的通信协议栈可升级,便于今后众多数据采集端采用无线传感器网络的方式进行数据传输。
1 系统架构
本系统数据采集端主要由磁阻传感器及相应的信号调理电路、HCS08系列的MCU和IEEE802.15.4兼容的无线收发芯片组成。AD转换使用MCU集成的AD控制器,其采样频率和精度都能满足要求。MCU与无线收发芯片通过SPI总线连接。二者构成无线传输的模块。相应的通信协议与应用程序都在MCU上实现。
数据接收端使用相同的无线传输模块,并且利用RS232异步串口与PC机通信,其功能相当于一个接入点,一方面将主机向数据采集端发送的控制信号以无线的方式发射出去,另一方面接收采集数据并上传给主机。
主机端通过相应监控程序,向数据采集端发出数据采集请求,接收数据并实时显示数据波形同时将数据以文件的形式保存,并且该监控程序支持将保存了的数据重新读出并回放数据波形。其系统架构整体图,如图1所示。
2 系统实现
2.1无线传输模块的芯片选择
MC9S08GT60是飞思卡尔半导体公司HCS08系列8位单片机中的一款,其工作电压为1.8V,性能和一些16bit单片机相当,但是功耗很低。它片内集成4KB RAM和60KB的FLASHROM,另外还集成了8个通道1O位AD转换器,2个SCI接口,1个SPI接口等,还有相应的内部时钟模块和后台调试接口(BDM)。该单片机得最突出特点是具有多电源管理模式,在超低功率的STOP1模式下,内部电流为20nA;在局部低功率的STOP2模式下,内部电流为400nA;在正常功率的STOP3模式下,内部电路为500nA;内部时钟模块提供2KHz的振荡器,可以供STOP2和STOP3模式下运行,以定期的唤醒CPU。
本系统由于需要移植专用的通信协议栈,所以对MCU提出了较高的要求。另外,本系统用于定期对钢丝绳进行检测,为了降低系统的功耗,大部分时间需要MCU处在睡眠状态,所以,只要数据采集端没有接收到采集数据的请求时,就将数据采集端置于STOP模式下,大大降低了系统的功耗。
无线收发芯片采用得是MC13192,该射频芯片是飞思卡尔提供的一款zigbee兼容的无线收发芯片,其物理层是按照IEEE802.15.4的标准来设计的,它选择的工作频段是2.405-2.480GHz。数据传输速率为250kbps,采用0-QPSK调试方式.该频带划分为16个信道,每个信道占5MHz的带宽。采用直接序列扩频(DSSS)的方式,由于传输输率低而且所占带宽大,所以其信道的信噪比很大。
为了适应低功耗的要求,芯片除了接收、发送和空闲三种工作状态外还有三种低功耗运行模式:一是停止模式,这种模式下芯片电流小于1uA;二是深度睡眠状态,这种模式下电流在2.3uA左右;三是浅度睡眠状态,该状态下电流约为351~A。在本系统中,当采集端请求数据采集的任务完成后,就将芯片置于深度睡眠状态,等待下次请求的唤醒。另外芯片采用的是可编程功率输出模式,发送功率为0—4dBm。传输距离30~70m。
芯片由片内的48个16位的专用寄存器进行控制和操作,包括数据寄存器,工作状态寄存器,中断控制寄存器等等。这些寄存器是通过SPI接1:3来访问的,标准的四线SPI接1:3使得MCU对芯片的访问与控制很容易实现。芯片提供可编程输出时钟供MCU使用,进一步减少了外围器件和简化了系统的结构。
2.2无线模块的硬件设计
该模块架构如图2所示,其主要的设计在于MCU对RF的控制,其电路连接图如图3所示。MC13192外接16MHz的晶振提供芯片工作所需的时钟,芯片本身具有可编程输出时钟,提供MCU所需的时钟源,在这里设置同样设置为16MHz。标准的4线SPI实现对MC13192的访问与具体的读写操作,SPSCLK来源与MCU的总线,提供了4MHz的波特率实现读写操作.另外还设置了两个通用的I/O 口PTC2和PTC3分别用于RF收
发使能和唤醒操作。MCU对RF的大部分操作都是以中断服务程序的形式来实现的,采用电平触发的方式,在中断触发后,中断服务程序通过读取中断状态寄存器的相应位,来确定进行何种的操作。
2.3系统软件设计
2.3.1底层驱动设计
驱动层包括主要是两部分的设计。一部分是对专用寄存器和收发数据缓冲区的访问操作,另外一部分是MC13192的中断服务程序的设计。其它的一些操作直接封装成函数供上层调用。对寄存器的操作实际上是对SPI的驱动,每一次完整的SPI操作至少要完成3个字节的数据传输。对于读操作,首先将所要访问的寄存器地址(OxOO~Ox3f)写入SPI的数据寄存器,该字节的bitO~bit5为地址,bit6置0,bit7为读写判别位(R/W-),读操作置1,当CE变低电平后,在SPSCLK的作用下地址值经过MOSI口发送到MC13192,紧接着先读取该地址对应寄存器的的高八位,再读取低八位,最后将CE置高,完成一次读操作。一次写寄存器操作同样是第一个字节发送6位的寄存器地址。此时R/W-位置为0,再接下来的两个字节的发送过程中分别通过SPI寄存器将高字节和低字节数据发送到MC13192对应的寄存器中。
MC13192有两个128Byte的数据缓冲区,分别用来缓存待发送数据和已接收数据,通过SPI对这两个缓冲区的访问与访问寄存器的方式相同,不同的是对于数据的读写,首先要读写数据长度寄存器。确定当前数据读写的数量,接着只需要在开始时写入一次数据缓冲区的地址值,随后的128个字节全部是有效数据的传输,而不需要像访问寄存器那样每完成一个字的传输然后重新寻址,从而减小了SPI传输在地址上的开销,提高了数据传输的效率。
2.3.2 SMAC协议栈的移植
该通信协议栈,结构比较简单。除了应用层以外分为两层,一层是物理层,一层是MAC层,所需要的系统资源少,但是能够较好的完成整个系统所需要的功能。
物理层的功能实际上就是向上层提供了一系列的对MC13192芯片功能实现的函数,上层通过这些函数接口就可以直接实现所需要的功能,而不关心这些功能具体是怎么实现的。这些功能包括:数据请求,状态切换,信道能量探测与选择,计数器的设置,芯片复位等操作。
MAC层提供了13个完整的通信源语,通过这些源语就可以灵活的编写应用程序。
2.3.3应用层软件设计
应用层软件包括数据采集端应用软件和数据接入点的应用软件设计。通过对整个系统的需求分析,可知数据采集端长时间处于非工作状态,只是当需要数据的时候,主机发送数据请求信号来通知数据采集端进行工作,数据采集端先解析请求命令中所要传输的数据量,然后采集并发送相应的数据,完成后自动进入低功耗状态,等待下个命令的激活。图4所示为采集发送端点固件程序的流程图,系统复位后相继对MCU和MC13192进行初始化,然后选择通信信道、开中断并进入低功耗接收状态。如果此时收到底层上传来的请求信号,则对请求信号进行判别并解析请求信号中所要求的数据量,然后初始化AD模块,进行采集并发送出去。发送完毕后,系统进入低功耗准备好接收模式。
针对定期检测的要求,数据采集端实际上长时间处于低功耗的状态,电池供电能够满足要求。
接收端应用程序要实现的功能是将主机端监控程序发送的数据请求信号发送出去,另外还要接收数据采集端的数据并上传给主机。首先,进行系统初始化并开中断,完成后系统进入睡眠模式。当主机端需要数据时,通过应用程序发出数据请求命令,并通过串口将命令发出,此时将会触发系统的串口中断激活系统。然后,中断服务程序将系统置为发送命令状态,先解析命令信号,接着将命令信号打包发送出去,发送成功后将进入等待接收数据模式。此后,如果有数据发送过来,底层将数据上交到应用层后,就直接将数据通过串口上传给主机。这样就完成了一次数据传输。
2.4 主机端监控软件设计
上位机的程序是基于串口通信来设计的。Visual C++的环境提供了串口通信控件,该控件控件采用的是事件驱动方式,很方便的对串口进行操作。软件通过串口发送任意数据量请求命令,接收数据时通过进度条反映数据接收过程,并通过波形显示界面实时显示数据波形,同时将数据保存到数据库中,可以重新载人程序中进行数据波形回放或者对数据进行进一步的分析。
3 结束语
采用无线传输方式来解决处于恶劣或者难以到达的环境中的钢丝绳监测问题最重要的问题为功耗问题和数据传输的可靠性问题。本文所提供的解决方案极大的降低了数据采集端的功耗,能够在很长时间内稳定的工作,另一方面,由于无线信号在2.4GHz频带上传输,采用直接序列扩频,传输带宽为5MHz,而且传输速率不高,所以该信号抗干扰能力很强,通过大量的实验分析得出数据波形失真小,能够准确的反应出钢丝绳断丝信号,满足我们的技术要求。
另外,本文提出的解决方案有这很大的系统升级空间,该系统实际上是一套Zigbee技术的解决方案,可以通过在该系统上移植Zigbee协议栈,然后将系统扩充成众多采集点受控于一个主接人点进行分布式采集的无线传感器网络。