3 系统软件设计
系统软件部分的设计主要是按功能块划分为若干个模块进行编写设计,主体循环就是对各个功能函数进行调用,完成系统的数据采集、处理以及无线通信与发送。整个软件的编写使用的是灵活性强、可读性和可移植性强的C语言,在IAR for MSP430集成开发环境下完成开发和最终调试。
主要的函数包括主函数、温度测量、水分测量、温度测量线性化校正、数据发送格式处理、无线数据传输等功能块,以及RS232/RS485底层驱动。温度测量功能块实现的是对PT100电桥测温电路的模数转换并存储转换结果功能;水分测量功能块负责将对应的电压信号转化成实际水分值,并进行存储;温度测量线性化校正功能块通过查询铂热电阻的线性校正表来提高温度测量的精度;数据发送格式处理功能块完成对土壤温度、水分数据的打包处理;无线数据传输功能块主要是通过对CC2480协处理器的控制函数和协议栈的调用完成数据的无线发送。各个子函数之间保持各自独立完整性,能在主函数中实现无缝调用。
为了适应于无人值守的野外使用,应适当的设置好看门狗定时时间。同时为了节约能耗、延长电池寿命,需要充分利用MSP430F149的低功耗控制模式,在进行A/D转换时可选用低频率时钟以及关闭CPU,或者在CPU数据处理时关闭ADC。在不需要测量时,系统可进入极低功耗模式节省能耗。测量节点程序流程如图7所示。
结语
本土壤温度、水分梯度测量系统,通过特殊土壤梯度方式铺设土壤温度、水分传感器,实现对于立体式土壤温度、水分的测量。选用了廉价可靠、性能出色的传感器,可满足大规模布设的要求。通过相应的软件校正消除非线性误差,在一定范围内提升到比较高的测量精度,满足了设计要求。前端多路土壤传感器信号通过低功耗多路模拟开关依次选通,送入低功耗高性能的MSP430F149的12位A/D转换通道进行A/D转换。各个传感器节点自动与数据采集节点组网最终完成测量所得数据的无线传输。通过对MSP430F149的低功耗模式配合,各个低功耗器件实现了对整体系统的能耗控制,也为野外无人值守情况下的长时间电池供电提供了保障。本系统可适用于大规模野外无人值守情况下的土壤温度、水分连续自动监测以及农业土壤环境检测等多种场合。