1.5 通信模块
测试仪通过RS485工业总线与PC机进行通信,其硬件接口电路如图5所示。
2 软件设计
2.1 总体设计
测试仪的软件开发环境采用的是Keil C,所有代码采用C语言编写。为了方便程序调试和提高可靠性,软件采用模块化结构设计,主要由初始化程序、主程序、子程序、中断服务程序等组成。单片机上电后即开始循环执行温湿度、照度测量程序,并以设定的时间间隔在数码管上轮流动态显示;按键切换和通信功能部分由于使用频率相对较低,为降低设备功耗,其程序以中断响应的方式执行。在此要注意中断优先级的设置:按键中断优先级应高于串口中断,否则将无法进行显示切换。主程序流程如图6所示。
2.2 传感器驱动程序
本系统采用的传感器均为集成数字芯片且都具有I2C总线接口,故其驱动程序的编写要严格遵循I2C总线的时序。主程序为每一个参数开辟了一个8位的存储空间,传感器将采集到的数据经SDA引脚串行输出,驱动程序将SDA线上输出的数据进行串并转换,并存储到相应空间中,以方便其他功能程序调用。以下是照度传感器数据采集程序的部分代码。
(1)TSL2561初始化
2.3 RS485通信程序
测试仪与上位机的通信采用RS485协议。串口参数为:波特率9600,数据位8位,1个校验位,1个停止位。其数据格式如图7所示。
由于RS485总线协议与RS232串口协议只是接口电平上有区别,其软件编程完全按照串口通信协议进行,此处不再详述。
结 语
经实验测试,该环境参数测试仪温度测量显示精度可以达到0.1℃,湿度精确到O.1%,照度可以精确到11x。由于主要器件均为I2C数字接口,故本测试仪还有结构简单、易维护、可扩展性强等特点,具有很高的实用价值;另外,独特的双电源供电方式更扩展了它的适用范围。