基于CAN总线的潜水电机智能监控系统设计
时间:06-20
来源:互联网
点击:
监控系统的软件设计
从整个监控系统的角度来看,该系统的软件设计主要分为两大部分:即监控计算机应用软件设计和现场智能节点软件设计。
监控计算机的软件设计
计算机监控软件主要分为用户应用层、数据分析处理层及硬件设备驱动层3个部分,其软件设计流程如图3所示。
硬件设备驱动层通过PC-CAN接口卡建立监控计算与CAN总线的连接,并与智能节点进行数据交换;数据分析处理层完成CAN总线数据的接收、分类、判断、处理、发送、存取操作等任务;用户应用层和用户需求紧密相关,它主要完成的任务是为用户提供显示各类信息的监控界面,进行人机交互,也就是通常所说的人机界面(HMI)设计。
监控节点的软件设计
潜水电机的现场控制与数据采集都是通过智能节点完成的,与节点的硬件设计相一致,智能监控节点的软件设计也遵循模块化的设计原则,使控制软件具有易读、易扩展和易维护的优点。通过C51语言编写相应的软件模块实现智能节点的各种功能。软件的各功能模块之间通过入口和出口参数相互联系,组合灵活方便,减少了调试时间,缩短了开发周期。
监控节点通信程序设计
智能监控节点的通信采用CAN总线2.0A协议,通信模块的软件设计主要由初始化子程序、报文接收子程序、报文发送子程序3部分组成。其中初始化子程序是实现通信的关键,它主要用来完成CAN控制器工作方式的选择,即对系统中的CAN控制器控制段中的寄存器进行设置。初始化过程是在CAN控制器复位模式下完成的。
智能节点与监控计算机之间的数据交换是通过发送程序和接收程序实现的。报文发送时只需将电机的状态数据送入SJA1000的发送缓冲区中,然后启动发送请求。监控节点采用定时中断的方式主动向监控计算机发送数据。这是利用了CAN总线可以采用多主机方式通信的特点。由于实时监控功能由各个控制节点完成,而监控计算机主要起到管理作用,所以采用了定时上传数据的方法,而没有实时上传所有传感器采集到的数据,从而减轻了总线负担。一个正在等待的报文会从存储器复制到发送缓冲器后,置位命令寄存器TR标志产生发送请求,发送过程由SJA1000独立完成。基于SJA1000的报文接收有两种方式:中断方式和查询方式。为了保证接收报文的准确性,选择实时性较高的中断方式。在中断方式下,如果SJA1000已接收一个报文,并且报文已通过验收滤波器并放入接收FIFO,那么会产生一个接收中断,通知微处理器有报文已经接收。接收缓冲区用来存放CAN总线上发来的数据,MCU读取数据后,接收缓冲区将被清空,等待接收新的数据。
结语
本文采用CAN现场总线设计的潜水电机分布式智能监控系统具有抗干扰能力强、网络化管理程度高、人机界面友好等特点。开发过程中所提出的技术方案和实现方法可以在类似的工业底层监控网络系统及分布式监控系统的设计中推广应用。
从整个监控系统的角度来看,该系统的软件设计主要分为两大部分:即监控计算机应用软件设计和现场智能节点软件设计。
监控计算机的软件设计
计算机监控软件主要分为用户应用层、数据分析处理层及硬件设备驱动层3个部分,其软件设计流程如图3所示。
|
硬件设备驱动层通过PC-CAN接口卡建立监控计算与CAN总线的连接,并与智能节点进行数据交换;数据分析处理层完成CAN总线数据的接收、分类、判断、处理、发送、存取操作等任务;用户应用层和用户需求紧密相关,它主要完成的任务是为用户提供显示各类信息的监控界面,进行人机交互,也就是通常所说的人机界面(HMI)设计。
监控节点的软件设计
潜水电机的现场控制与数据采集都是通过智能节点完成的,与节点的硬件设计相一致,智能监控节点的软件设计也遵循模块化的设计原则,使控制软件具有易读、易扩展和易维护的优点。通过C51语言编写相应的软件模块实现智能节点的各种功能。软件的各功能模块之间通过入口和出口参数相互联系,组合灵活方便,减少了调试时间,缩短了开发周期。
监控节点通信程序设计
智能监控节点的通信采用CAN总线2.0A协议,通信模块的软件设计主要由初始化子程序、报文接收子程序、报文发送子程序3部分组成。其中初始化子程序是实现通信的关键,它主要用来完成CAN控制器工作方式的选择,即对系统中的CAN控制器控制段中的寄存器进行设置。初始化过程是在CAN控制器复位模式下完成的。
智能节点与监控计算机之间的数据交换是通过发送程序和接收程序实现的。报文发送时只需将电机的状态数据送入SJA1000的发送缓冲区中,然后启动发送请求。监控节点采用定时中断的方式主动向监控计算机发送数据。这是利用了CAN总线可以采用多主机方式通信的特点。由于实时监控功能由各个控制节点完成,而监控计算机主要起到管理作用,所以采用了定时上传数据的方法,而没有实时上传所有传感器采集到的数据,从而减轻了总线负担。一个正在等待的报文会从存储器复制到发送缓冲器后,置位命令寄存器TR标志产生发送请求,发送过程由SJA1000独立完成。基于SJA1000的报文接收有两种方式:中断方式和查询方式。为了保证接收报文的准确性,选择实时性较高的中断方式。在中断方式下,如果SJA1000已接收一个报文,并且报文已通过验收滤波器并放入接收FIFO,那么会产生一个接收中断,通知微处理器有报文已经接收。接收缓冲区用来存放CAN总线上发来的数据,MCU读取数据后,接收缓冲区将被清空,等待接收新的数据。
结语
本文采用CAN现场总线设计的潜水电机分布式智能监控系统具有抗干扰能力强、网络化管理程度高、人机界面友好等特点。开发过程中所提出的技术方案和实现方法可以在类似的工业底层监控网络系统及分布式监控系统的设计中推广应用。
总线 CAN总线 电阻 电路 MCU 收发器 射频 传感器 电流 ADC 继电器 LED 二极管 看门狗 滤波器 相关文章:
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
- 基于FPGA安全封装的身份认证模型研究(05-27)
- 高精度压力测控系统的试验研究(04-08)

