测试仪经过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串口协议仅仅接口电平上有差异,其软件编程彻底依照串口通讯协议进行,此处不再胪陈。