基于CAN总线的分布式车间温湿度检测系统
连接到该通信通道的检测模块数目而决定,当检测模块数目为n时,如图3所示,格式为:第1 Byte为“读数据”命令字段,监视计算机通过第1 Byte可辨识此数据串为下位机返回数据,第2个到第3n+1 Byte为与该通信通道连接的所有检测模块返回的温湿度数据,连续3 Byte为一组,记录了单个检测模块的返回数据,第3n+2个和第3n+3 Byte为CRC校验码。
3 通信模块的设计
3.1 通信模块的硬件设计
通信模块具有4路通信通道,可分别连接4个计算机COM口,各通信通道相互独立,大体分为主控器(4个)、RS232/TTL电平转换电路(2个)、CAN驱动器(4个)3部分组成,统一供+5 V电压:
(1)主控器选择Microchip公司生产的PIC18F25K80单片机,该单片机资源丰富,具有32 kB的程序存储器、3 648 Byte的数据存储器、1 024 Byte的数据EEPROM,并集成一个CAN控制器。将二路拨码开关连接至单片机I/O口,用于设置通信模块在CAN总线上的站号,设定站号范围为00~11。
(2)通信模块通过电平转换电路AX232芯片与计算机COM口进行数据交换,由于1个MAX232支持两组串口数据独立收发,因此可供2路通信通道同时使用。
(3)主控器PIC18F25K80自身集成一个CAN控制器,因此无需额外增加CAN控制器,仅需连接一个CAN驱动器PCA82C250即可与CAN总线进行通信。
PIC18F25K80自身集成的CAN控制器广泛支持CAN1.2、CAN 2.0A、CAN 2.0B Passive和CAN 2.0B Active多个版本的协议,支持DeviceNet数据字节过滤,支持标准帧数据和扩展帧数据,通信速率最高可达1 Mbit·s-1。
PCA82C250作为目前应用最广泛的CAN驱动器,其最大通信速率可达1 Mbit·s-1,最多可支持110个节点,具有多重保护功能,安全可靠。PIC18F25K80的CAN收发引脚CANRX、CANTX与PCA82C250通过2只光耦6N137连接,PCA82C250直接接入CAN总线。
3.2 通信模块的软件设计
通信模块在收到来自上位机的命令后,开始轮询与之相连接的检测模块。通信模块向与之相连的第一个检测模块发出读数据命令,待被询检测模块返回数据后再向下一个检测模块发出读数据命令,依此类推。如果被询检测模块在1 000ms内没有返回数据,则重新发送读数据命令,重复3次后如果被询检测模块依然没有返回数据,则检测模块便茸动将读数据缓冲数组内相应单元全部置FF,并将相应标志位置1,在下次轮询时,自动跳过此检测模块,待检修人员排除故障后,再通过监视计算机手动发出清除标志位命令或者将通信模块断电复位,即可恢复通信模块与所有检测模块的通信。最后所有检测模块读取完毕,通信模块自动将数据上传至上位监视计算机。程序流程图如图5所示。
通信模块向检测模块发出的读数据命令由2 Byte组成:第1 Byte是模块通道的CAN站号,第2 Byte是被询检测模块的CAN站号。由于检测模块向被询模块发出的命令仅有读数据命令一条,因此无需添加命令代码字节。
在CAN 2.0B规范中,数据帧有两种帧格式:标准帧数据格式和扩展帧数据格式,两者的区别在于前者具有11位标识符而后者具有29位标识符,如图6所示,标准帧格式仲裁段标识符仅有11位,而扩展帧格式仲裁段标识符比标准帧格式仲裁段标识符多出18个标识符,即29个标识符。CAN控箭器会根据用户对寄存器的设定值按帧格式自动生成输出脉冲序列。对于开发人员而言,前者仅需要配置2 Byte的TX识别码,而后者需要配置4 Byte的TX识别码,用于描述该帧数据在总线上的“数据身份”。鉴于通信与检测模块之间的通信关系比较简单,这里选用标准帧数据格式,2 Byte的TX识别码分别为数据源和数据目标地址,即对于通信模块而言,第1 Byte定义为通信模块某通道的站号,第2 Byte定义为某时刻该通信通道所访问的检测模块站号。
4 温湿度检测模块的设计
4.1 温湿度检测模块的硬件设计
检测模块大体可分为主控器、温度传感器、湿度传感器、CAN驱动器4个部分:
(1)主控器同样采用了PIC18F25K80单片机。6路拨码开关连接至单片机的I/O口,用于设定检测模块在CAN总线上的站号,设定站号范围为1100 0000~111l 1111。
(2)温度传感器采用Dallas公司生产的一线式数字温度传感器DS18B20,该传感器它具有微型化、低功耗、高性能、抗干扰能力强等优点,DS18B20可直接将温度转化成串行数字信号给单片机处理,温度测量的范围为-55~+125℃,测温分辨率可达0.062 5℃,测温范围与精度完全符合项目要求。
(3)湿度传感器采用Honeywell公司生产的HIB4000相对湿度传感器,该传感器内部集成了信号处理功能电路,可将相对湿度值变换成电容值,再将电容值转换成线性电压输出。PIC18F25K80单片机片内集成一个8路输入的A/D模块,可将HIH4000输出的线性电压模拟量直接转换为一个12位的数字量并存储在PIC18F25K80单片机中。
(4)与通信模块相同,PIC18F25K80的CAN收发引脚CANRX、CANTX通过2只光耦6N137与CAN驱动器PCA82C250相连,PCA82C250直接接入CAN总线。
- Labview基本常见问题解答(连载四)(05-10)
- CAN总线系统测试技术(05-11)
- 基于CAN总线的GaAs光电阴极制备测控系统(07-27)
- 基于LabVIEW的智能开关综合保护装置的数据获取与处理(03-09)
- 基于双层CAN总线的声纳数据通信系统设计(01-23)
- CAN总线网络测试研究(02-10)