基于CAN总线的数据采集与控制系统设计
3 软件设计
该系统软件设计主要分为两个部分:数据采集与控制模块程序设计和CAN总线通信程序设计。
3.1 数据采集与控制模块程序设计
数据采集与控制模块程序设计流程图如图6所示。本文引用地址:https://www.eepw.com.cn/article/194955.htm
3.2 CAN总线通信程序设计
CAN总线通信程序设计分为三个部分:CAN总线初始化、数据发送和数据接收。
(1)CAN总线初始化。CAN总线初始化主要是设置一些通信参数,保证通信的正常进行。初始化主要包括工作方式的设置、验收滤波方式的设置、验收屏蔽寄存器和验收代码寄存器的设置、波特率参数设置、中断允许寄存器的设置等。特别需要注意的是,初始化只有在复位模式下才可以进行,因为SJA1000配置信息的寄存器只有在复位模式下才可以进行写操作。
(2)数据发送。数据发送前,微处理器周期查询状态寄存器,查看发送缓冲器是否被锁定。若没有锁定,则把从现场取得的开关量数据发向CAN总线控制器的发送缓冲区,然后启动CAN总线控制器发送命令,此时CAN总线控制器自动向总线发送数据。数据发送的流程图如图7所示。
(3)数据接收。数据接收采用中断方式。系统中的CAN控制器检测到总线上有数据时会自动接收总线上的数据,存入其接收缓冲区,并向微控制器发送接收中断,启动中断接收服务程序,通过执行中断接收服务程序,从CAN控制器的接收缓冲区读取数据,并对其进行进一步处理工作。数据接收流程图如图8所示。
4 结语
通过对系统的软硬件的反复调试表明,该数据采集和控制系统的设计方案是成功的。该系统能高速有效地采集、传递和处理现场数据,并且能在恶劣环境下保证通信速率和极低的出错率,运行效果很好,体现了CAN总线高性能和高可靠性的优点。
评论