在编程时有一点要注意,PORTB口RB7-RB4端有电平变化时可以产生中断,但只有当I/O引脚设置为输入状态时才能发生中断。芯片通过把RB7-RB4端口的输入信号与上次读入的锁存值进行比较,如不等,则二者异或后输出,产生变化中断,使标志位RBIF为1。控制板程序运行时,控制板的程序接收各块电机板的状态,然后在控制板液晶上显示电机台数和水箱的水位状态。控制板收到键盘和遥控器的命令,向总线发送信息。电机板接受总线信息,执行控制板的命令动作。同时定期发送水位的状态值给控制板。其中冷冻功能就是同时执行冲洗功能和通风功能。冷冻功能程序是电机板程序的子程序。每次冷冻结束后必须执行清洗,保持过滤网清洁。
CAN控制器MCP2510与控制芯片PIC16F873采用SPI通讯方式。PIC微控制器工作于主模式下,可实现完全SPI功能。数据的收发采用软件缓冲区。发送数据时,软件缓冲区装入所发数据,同时发出SPI中断。CAN总线废除了站地址编码,对通讯数据进行编码。数据的编码通过帧ID号来识别。可以通过编码开关设定数据ID号。总线仲裁指如果2个或2个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用了识别符的逐位仲裁可以解决这个冲突。仲裁的机制确保了报文和时间均不损失。当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。
本文作者创新点
本文构建了基于工业设备控制系统的CAN总线节点,按照功能的不同,设计三种不同功能的节点。设计了不同节点的硬件结构。采用PIC的汇编程序,实现了基本CAN通讯的方式和不同节点的功能要求。本文设计的CAN总线节点解决了在传统的工业通讯控制方式485总线中的一些弊端,如无法构成多主结构,主节点任务繁忙,主节点故障可能引起系统瘫痪,数据传输效率降低;实时性差,错误处理能力不强等。