基于单片机和CAN总线的数据采集系统设计

2014-10-21 12:55马明
电子世界 2014年23期
关键词:总线数据采集单片机

【摘要】系统介绍了以CAN总线为核心所构成的数据采集系统的设计方法,包括总体方案,硬件和软件设计。在硬件设计方面,使用热电阻传感器、Σ-Δ型AD7705转换器、单片机、LED数码管显示器、以及目前应用比较广泛的CAN总线构建传输总线,实现了系统的智能化、实时化和总线化. 在软件设计方面,使用Keil C51语言,在Keil uVision2环境下对系统进行编程。

【关键词】CAN 总线;单片机;数据采集

1.引言

基于CAN总线的分布式数据采集系统是利用现场总线集散采集系统的特点,把信息采集在现场进行,而通过操作站集中管理。運用CAN总线技术,极大地提高了系统的可靠性、实时性,系统开发较价廉,性能价格比高,安装维护简洁方便,具有广阔的应用前景,也是工业控制领域的一个重要发展方向。CAN是控制器局域网络(Controller Area Net)的简称,它是一种有效支持分布式控制或实时控制的串行通信网络。其主要优点如下:采用全双工的通信方式,无主从机之分,可实现分布式系统;最大传输速率1Mbps/40m,最远传输距离10km/5kbps;采用非破坏性总线优先级仲裁技术,仲裁的依据是数据块的标识符;采用面向控制的短帧结构,数据段的长度为0-8字节,实时性较高;采用载波侦听和CRC校验技术,具有较强的错误控制功能。

分布式数据采集系统(Distributed Acqui-sition System)是相对于集中式数据采集系统而言的。它一般是由地面采集站、遥测数据传输电缆以及中央控制站三部分组成,其中地面采集站按测线的方向布置,负责采集一个或几个测点的地球物理数据,而中央控智站的主要任务是完成数据的记录和质量监控。分布式数据库的优点:具有灵活的体系结构;适应分布式的管理和控制机构;经济性能优越;系统的可靠性高、可用性好;局部应用的响应速度快;可扩展性好,易于集成现有系统。

2.基于CAN总线的分布式数据采集系统的总体设计

由于CAN总线为多主方式工作,最多可挂接110个节点,并根据现代控制系统既需集中管理,又需分散实时控制的特殊工艺要求,分布式数据采集系统采用现场总线式集散采集系统。系统主要包括操作站(上位机)和现场数据采集采集系统两大部分;其系统总体结构如图1所示。

图1 系统总体框图

整个系统工作原理为:从控制现场传感器传送来的信息可能是模拟量或数字量,模拟量通过16位模数转换器转换成数字信息后,发送到CAN总线上,总线上的其它节点单元和操作站根据自己的需要和事先设计好的验收码和验收屏蔽码,来判断是否接收该信息。如果该信息需要进一步较为复杂的处理,则可通过操作站(上位机)来处理并对整个网络进行管理,经过处理后的信息进行保存,如有重要信息则可通过与操作站相连的打印机记录打印。

3.基于CAN总线的分布式数据采集系统的硬件设计

硬件的核心器件就是CAN控制器SJA1000,通过单片机初始化后,SJAl000就可独立工作,通过检测总线上的电压信号,及内部特殊的寄存器内容,控制器就完成数据的打包、解包、错误的鉴定等一系列功能,下面简要介绍CAN控制器SJA1000:SJA1000是由PHLIPS公司研制的,主要用于自动控制和通信工业用的8位高性能微控制器,它是PHILIPS上一代控制器PCA82C200的替代品。图2所示为SJA1000的内部结构图:

图2 SJA1000的内部结构图

4.基于CAN总线的分布式数据采集系统的软件设计

系统软件设计中,中央监控机程序采用C语言编写,实现对各节点的状态监测、参数设置和修改以及数据的收发等功能,从而进行动态的管理与控制。对子系统的各节点程序设计可分为两部分。一个是对CAN 总线控制器SJA100。完成的通信功能进行程序设计;另一个是对各节点控制器89C52完成的测控功能进行程序设计。

4.1 主程序设计

温度测量节点主程序流程图如图3所示。在系统初始化以后,调用事件检查和处理的子程序,根据对情况的判别来作出对应的动作,此外如果有按键输入按调用功能键子程序来设定温度或电压、电流值等,并通过LED来显示相应的值。采集到的数据可通过CAN总线利用数据传送了程序送到监控中心。

4.2 CAN总线的数据接收过程

接收函数与发送函数有些不同,接收函数的事件则是当“报文接收”时触发。不过前提就是RIE(接收中断使能)必须为逻辑1,因为报文接受与引起接收中断而该效果关系性的直接影响SJA1000 的使INT 引脚产生电平变化会而触发单片机的外部中断。

接收函数触发开始直接必须完成几个条件;一RIE必须使能,二硬件的链接。SJA1000的INT引脚与单片机的INT1引脚是直接相连,而我们编程的方法是由SJA1000 RXFIFO饱和中断,引起SJA1000引脚的电平产生变化而触发单片机的外部中断服务,就是这个外部中断源通知单片机进行“从RXFIFO读取报文”的函数。

图3 温度测量节点主程序图

接收函数大体上比较简单,就是先判断RI,RXFIFO 空间是否“不空”,而“不空”表示接收的报文已经存在,那么接下来的动作就是读取报文,然后给命令寄存器设置释放RXFIFO,过后释放仲裁丢失捕捉寄存器和错误代码捕捉寄存器(等于读取仲裁丢失捕捉寄存器和错误代码捕捉寄存器)就结束了。接收数据流程图如图4所示:

图4 接收数据流程图

5.结束语

本系统主要分为上位机监视和分布式采集节点,本系统主要对温度采集节点进行了详细的设计。温度采集节点主要由热电阻传感器电路单元、AD转换电路单元、最小系统单元、数码管显示单元和CAN总线电路单元组成。上位机是有工业计算机和CAN通信适配卡组成,采用了VC++进行软件编程。

参考文献

[1]周正干,基于CAN总线的阀门智能控制网络系统[J].自动化仪表,2004.

[2]陆前锋.基于SJA1000的CAN智能控制系统设计[J].自动化技术与应用,2003.

[3]韩党群.CAN控制器SJA1000及其应用[J].电子技术应用,2003.

[4]胡峪,刘静编.VC++高级编程技巧与示例[M].西安电子科技大学出版社,2001.

[5]朱齐丹.基于CAN总线的智能照明控制系统的设计和实现[J].应用科技,2008.

[6]王利强.计算机测控系统与数据采集卡应用[M].北京:机械工业出版社,2007.

作者简介:马明(1983—),男,江苏宿迁人,硕士,南通广播电视大学讲师,主要研究方向:自动控制与计算机技术。

猜你喜欢
总线数据采集单片机
关于CAN总线的地铁屏蔽门控制思路论述
基于广播模式的数据实时采集与处理系统
通用Web表单数据采集系统的设计与实现
基于开源系统的综合业务数据采集系统的开发研究
C8051F020与80C51单片机的异同点
Q&A热线
PCI9030及其PCI总线接口电路设计
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器