APP下载

基于CAN总线的远程数据分布式测控系统设计

2012-08-14周文超闫冠宇甄利鹏

电子设计工程 2012年17期
关键词:线程测控嵌入式

陈 辉,周文超,闫冠宇,甄利鹏

(河南中美铝业有限公司 河南 郑州 452477)

工业现场需要监测的生产状况参数包括矿浆温度、熔盐温度、电机、变频器、变压器等多种设备的温度、湿度以及电压、电流、压力、流量等其他数据。监测点多且分散、通信距离远,因此研制一种实时性高且性能可靠的分布式测控系统[1]非常重要。

CAN总线是一种用于智能化现场设备和自动化系统的开放式、数字化、双向串行、多节点的通信总线,广泛应用于分布式测控系统。在本系统中,测控节点和嵌入式测控中心通过CAN总线进行通信,节点数多达110个且通信方式灵活。

1 系统总体设计及工作原理

本文研究的主要内容是设计一种可远程测控工业现场多种设备的温度、湿度、电压、电流、压力、流量等数据的分布式测控系统,由测控主机、嵌入式测控中心、触摸屏和测控节点组成[2-3]。图1为本系统总体结构图。测控节点由多种精密传感器组成,用来采集温度、湿度、压力、流量等数据,由带CAN控制器的微处理器P87C591将采集到的数据经过数字处理后通过CAN总线传送至嵌入式测控中心,测控中心对传送过来的数据进行存储、触摸屏显示、波形图绘制、报警后通过以太网上传至监控主机,完成对多种数据的实时监测和远程测控。

图1 系统总体结构图Fig.1 System general structure diagram

2 测控系统硬件设计

硬件结构图如图2所示。测控中心采用带CAN控制器的嵌入式工控板EM9161通过外接CAN收发器和测控节点进行CAN通讯,简化了硬件电路设计;测控中心和监控主机之间采用以太网通讯,网络结构简单且通讯速率高。该系统硬件设计简单,传感器采用非接触式,安装布置灵活,简单、可靠。

图2 硬件结构图Fig.2 Hardware structure diagram

2.1 EM9161工控板及LCD触摸屏

EM9161是一款面向工业自动化领域的高性价比嵌入式主板,其内核CPU为工业级品质的32位ARM9系列AT91SAM9261S,带有1路以太网接口,4路标准UART串口,64 MB系统内存,64 MB FLASH,支持 I2C总线、CAN总线和精简ISA总线。由于AT91SAM9261S是一款专为具备液晶显示屏的应用而优化的主机处理器,可直接驱动触摸屏,支持最大800×600的分辨率。本设计采用5.6英寸四线制电阻式触摸屏,型号为 AT056TN52,它是 256色真彩色 LCD显示屏,TTL接口,分辨率为 648×480,3.3 V电源供电。

2.2 CAN总线驱动模块

一个CAN总线接口由微控制器、CAN控制器和CAN收发器3个部分组成,分别对应于CAN总线的物理层、数据链路层和应用层。其中微控制器主要负责上层应用及系统控制,包括CAN协议的应用层协议的实现,协调个系统设备的工作;CAN控制器负责处理数据帧,完成数据的打包、解包,错误界定,并提供报文缓冲和传输滤波;CAN收发器主要负责接口电平的转换,接口电气特性的处理[1]。由于EM9161内部自带有CAN控制器,因此,只需外接CAN收发器即可通信。图3为CAN总线收发电路图。

图3 CAN总线收发电路图Fig.3 CAN bus transceiver circuit diagram

CAN总线收、发两路信号分别经两个反相器74HCT14滤除掉输入信号的突变干扰再经高速光电耦合器6N137隔离后,送入CAN收发接口芯片PCA82C250即可进行CAN通讯。

3 测控系统软件设计

EM9161已预装正版 Window CE5.0(WINCE)实时多任务操作系统,可以将一个进程划分为多个线程,每个线程轮流占用CPU的运行时间和资源[4]。本设计使用Microsoft提供的著名免费软件开发工具 Embedded Visual C++(EVC)(+SP4)进行人机界面和应用程序的开发,包括CAN通讯和测控界面设计。

3.1 CAN通讯

CAN通讯包括CAN口初始化、CAN数据发送、CAN数据接收[5-6]。基于WINCE系统采用标准的WINCE流式驱动程序,CAN通讯的数据收发均采用中断方式:硬件在接收数据报文时,底层的驱动接收程序会自动读取该报文,同时发送一个接收中断事件,作为应用程序的接收线程在等待到该中断事件后,调用相应读取帧函数即可进行CAN数据报文的读取。CAN口初始化、CAN数据发送、CAN数据接收程序流程图如图4所示。

图4 CAN通讯初始化、发送、接收流程图Fig.4 CAN communication initialization,sending and receiving flow chart

CAN数据报文的发送时,直接调用发送帧函数将需要发送的数据填入驱动的发送数据缓冲区中,真正的数据发送是由驱动程序中的发送线程自动完成的;数据接收线程里通过WaitForSingleObject()来等待CAN接口的接收事件发生,当CAN接口收到数据后,将数据放入指定的接收数据缓存中,然后通过调用读数据函数,将数据从缓存中读出。

3.2 测控系统界面设计

如图5为本测控系统主界面。系统功能设有系统初始化、采样参数设置、报警参数设置、连续采样、间断采样、停止采样和故障记录查询[7]。其中采样参数设置对采集周期进行设置,单位是毫秒;报警参数设置根据各状态情况需要上、限报警值;连续采样即每隔一定时间采集一次数据,在连续采集按钮的消息响应函数里设置时钟,并添加时钟消息响应函数;间断采样即手动采样;通过故障记录查询按钮可以方便的查看故障。

图5 测控主界面Fig.5 Main interface of monitoring and control

4 运行结果

将远程数据分布式测控系统在现场调试运行,通过波形图查看按钮即可看到实时波形图,图6为正在运行的变压器1温度测控界面,结果表明系统性价比高、检测可靠、操作简单、人机界面友好。

5 结束语

图6 变压器1温度测控界面Fig.6 Transformer temperature monitoring and control interface

CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,网络上各节点可以与测控系统中其他节点传送各种数据,并接受来自测控主机的命令与数据,不仅运行可靠而且电缆投入成本较低。本系统硬件设计简单、可靠,采用光电隔离并对信号采取滤波措施,极大地降低了工业现场干扰对系统正常运行的影响;软件采用具有强大功能和友好界面的EVC4.0,程序代码尺寸小,移植能力强且运行速度高。

[1]田敏,郑瑶,李江全,等.Visual C++数据采集与串口通信测控应用实战[M].北京:人民邮电出版社,2010.

[2]刘宇婕,张保平.基于P87C591构成CAN总线节点的设计[J].微处理机,2008(3):156-158.LIU Yu-jie,ZHANG Bao-ping.Based on P87C591 constitute the design of the CAN bus node[J].Microprocessor,2008(3):156-158.

[3]连卫东.基于CAN总线的智能温压数据采集及实时监测系统设计[J].化工自动化及仪表,2012(39):68-70.LIAN Wei-dong.Based on CAN bus intelligent temperature and pressure data acquisition and real-time monitoring system design[J].Process Automation Instrumentation,2012(39):68-70.

[4]华清远见嵌入式培训中心.Windows CE嵌入式开发标准教程[M].北京:人民邮电业出版社,2010.

[5]汪兵,李存斌,陈鹏,等.EVC高级编程及其应用开发[M].北京:中国水利水电出版社,2005.

[6]张雨光,黄启俊,常胜.基于FPGA的CAN总线控制器设计[J].电子科技,2011(5):35-36,34.ZHANG Yu-guang,HUANG Qi-jun,CHANG Sheng.Design of CAN bus controller based on FPGA[J].Electronic Science and Technology,2011(5):35-36,34.

[7]原奕.Visual C++实践与提高—数据库开发与工程应用篇[M].北京:中国铁道出版社,2006.

猜你喜欢

线程测控嵌入式
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
基于LabWindows/CVI与TekVISA的Tek示波器远程测控软件设计
搭建基于Qt的嵌入式开发平台
浅谈linux多线程协作
嵌入式软PLC在电镀生产流程控制系统中的应用
基于现代测控技术及其应用分析
向着新航程进发——远望7号测控船首航记录
基于USB2.0协议的通用测控通信接口设计
Altera加入嵌入式视觉联盟