5.2 can总线通信程序
can总线通信程序包括can初始化、数据发送和数据接收等。
初始化can控制器的操作包括: 硬件使能、软件复位、设置报警界限、设置总线波特率、设置中断工作方式、设置验收滤波器工作方式、设置工作模式并启动can等。在初始化过程中要注意数据发送设备和数据接收设备的波特率应相同,否则设备之间无法进行通信。
can初始化完成后,进入数据的接收和发送阶段。为保证发送数据的完整性,采用查询方式发送数据;同时为保证接收数据的实时性,采用中断方式接收数据。数据发送和接收流程图如图6所示。
发送数据时,将待发送的数据打包成符合can协议的帧格式后写入发送缓冲区,并自动发送。在写发送缓冲区前必须查询其状态,只有在有空闲的发送缓冲区时才将数据写入。启动发送成功后,通过查询can状态寄存器或配置发送成功中断来判断数据是否发送成功。
采用中断方式接收数据,在初始化程序中必须使能接收中断。在中断服务子程序中,读取can中断允许寄存器,判断是否有接收中断标志,有则读取接收缓冲区数据。为防止接收缓冲区中数据溢出,可开辟一个循环接收数据队列来暂时存储数据,主程序则通过查询该队列来获得总线数据。
6 测试结果
系统安装调试后,经过一段时间的运行,系统稳定可靠,无异常现象。图7是系统主服务器接收到的数据,其中ady表示a相电压,adl表示a相电流,plv表示频率,wg表示无功功率,yg表示有功功率,cjsj表示采集时间。
7 结束语
本文采用can总线传输技术解决鞍钢集团大孤山选矿厂数据采集与控制系统各部件之间的信号传输问题。基于can总线的采矿厂数据采集与控制系统简化了系统的传输线束,同时大大的提高了系统的可靠性和传输响应的实时性,也为企业实现节能降耗、成本核算、过程优化以及建立mes信息管理系统奠定了物理基础。
参考文献(略)