物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  汽车  >  正文

一种基于CAN总线技术的数据采集系统设计

作者:嵇斗 王向军
来源:微计算机信息
日期:2010-01-20 09:35:36
摘要:本文的创新点是提出一种基于CAN总线结构的远程数据采集系统方法,将CAN总线技术应用于工业现场控制中,设计了硬 件电路和软件,并得到实际应用。该系统可在复杂的海洋中实现对8路传感器信号的实时采集与传送,实验证明该系统具有结构简单、性能可靠、传输距离远、价格低廉等优点。该系统设计方法也可应用到其他需要数据采集的多节点系统中去。
1 引言

  海洋环境中,由于测量现场离岸较远,环境恶劣,必须将测量装置与计算机系统分开,构成远程数据采集系统。远程数据采集系统的数据传输方式一般有两种:频率量传输和串行通信。频率量抗干扰能力强,便于远距离传送,但这种远程的频率测量一般仅适用于几十赫兹以下的较低频率范围。在串行通信中,RS-232通信标准数据传输速率慢(通常异步通信速率限制在19.2kbps以下),传送距离短(一般电缆长度为15m),不适于用作远程数据采集系统;RS-449、RS-422及RS-423等通信标准,实时性不强;RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;且当系统出现多节点同时向总线发送数据时,会导致总线呈现短路,从而损坏某些节点的现象。

  CAN(Controller Area Network)总线属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点是使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据。数据段长度为8个字节,不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。

2 系统设计

  远程数据采集系统要求传感器与测量装置位于测量现场,计算机系统在岸上或船上,它们之间距离经常在几百米,有时甚至达到几公里。因此,连接导线少,维护费用低就显得尤为重要。本文中测量系统针对磁场(3分量)、电场(3分量)、倾角参数(2分量),用CAN来构建远程水下数据采集系统,采用3个测量节点,分别对上述8路传感器信号实现实时采集与传送。远程水下数据采集系统的结构框图如图如图1所示。

  远程数据采集系统主要由两部分组成:岸上接收处理部分和水下测量装置。为了延长电池的使用时间,从岸上来控制水下测量体部分电池电源的通断。数据采集系统使用的是四芯纵向密封海水电缆,两路传输数据,另两路控制电池电源。

2.1硬件电路设计

  传感器采用磁场三分量测量模块,电场三分量测量模块,倾角2分量测量模块。信号处理电路中将各信号进行放大和滤波,放大采用两片LM148四运放,滤波器是由运算放大器构成的两个有源低通滤波二阶节的级联。单片机系统将电场三分量信号、磁场三分量信号和两个姿态角信号共8路信号轮流选通送入A/D进行转换,A/D转换选用B-B公司生产的16位芯片ADS7805,其输入电压范围为±10V,输出16位和8位可选,这里使用16位并行输出,其控制信号由单片机的口线P1.0、P1.1和P1.2产生,单片机系统的结构框图如图2所示。单片机采用PHILIPS的是有再片CAN功能的微控制器P87C592,晶振频率为16MHz, P0口和P2口用作数据线和地址线,P4口和P5口用作16位模数转换器的高8位和低8位并行数据线。P1.6、P1.7用于CAN总线,P1.2、P1.3和P1.4控制八选一多路转换器MAX308的通道。PC82C250为CAN总线收发器,是CAN控制器和物理总线间的接口,提供对总线的驱动发送能力 、对CAN控制器的差动发送能力和对CAN控制器的差动接收能力。它有很强的抗瞬间干扰和保 护总线的能力;有3种不同的工作方式即高速、斜率控制和待机。总线上的某节点掉电不会 影响总线,在40 m内实现高速应用可达1 Mbps。主机接收端使用PCL-841 ,PCL-841可直接插在计算机的ISA扩展槽内,计算机为PCL-841分配内存地址,并将其作为标准内存进行读写,内存地址可通过跳线设置为C800H至EF00H中40个基地址中的任一个。是内置CAN控制器的CAN总线通信卡,它提供总线仲裁和错误检测并自动重发送功能,从而避免了数据丢失,保证了系统的可靠性。 


2.2系统软件设计 

  要实现有效、实时通信,软件的设计是关键,也是难点。本系统软件设计包含两部分即单片机程序和主机控制和数据处理程序。

  单片机程序主要包括节点初始化程序、报文发送程序、报文接收程序以及CAN总线出错处理程序等。单片机主程序流程图见图3,程序用C51语言编写。


  CAN控制器对于CPU来说是以确保双方独立工作的寄存器映像外围设备出现的,微控制器和CPU之 间状态、控制和命令的交换都是通过在复位模式或工作模式下对这些寄存器的读写来完成的。初始化CAN内部寄存器时注意使得各节点的位速率必须一致,而且接、发双方必须同步。发送一帧数据采用高速DMA,它允许在最多2个周期内,在CAN控制器和主RAM之间传送一个完整的报文(最多10个字节)。CPU功能的极大增强是由于高速传送是在后台完成的。一次成功的DMA传送后DMA位被复位。DMA传送期间,CPU可以处理下一条指令,然而,不允许对数据存贮器、CANADR、CANDAT、CANCON或CANSTA的访问。置DMA位后,各个中断均被禁止,直至传送结束。复位状态期间(复位请求位为高)不能进行DMA传送。为提高通信的实时性,报文的接收采用中断接收方式,这样也可保证接收缓存器不会出现数据溢出现象。

  主机程序包括测量和控制子程序、通信子程序、数据处理子程序等。数据测量和控制子程序用来控制下位机进行测量,通信子程序根据通信协议发送控制命令并接收测量数据,数据处理子程序实现对数据的预处理和存储。主机程序用C语言编写。主机程序流程见图4。

3 水下物理场数据采集实验

  在对水下物理场数据进行采集时,需要测量的信号共有3种8路:电场三个分量,磁场三个分量以及传感器在海底的倾斜角度两个分量。实际测量时,整个测量体(包括传感器,信号调理电路,水密容器等)放置在海底(约30米深),测量体距离岸边接收主机120米。其他一些实验参数设置如下:传输波特率为1Mbps,各节点的采样频率为10KHz,每采样4路信号向主机发送一次数据,每次送出4组8字节数据,分辨率:0.0495μA/m;信号输入范围:-50mV~50mV;信号频率带宽:500Hz~800Hz;供电电压:±5V,9V,±15V。测量系统在较复杂的海洋环境条件下从上午9:00开始工作,中间不停机,到下午5:00测量完毕。测量结果经过分析与理论计算吻合说明该系统工作稳定、可靠。此外,全套测量系统硬件设备(包括计算机与传感器)造价低于3万元。

4 结论

  CAN总线已被公认为是最有前途的几种现场总线之一,在一些高档汽车车载系统中已经得到了广泛应用,也因其高性能价格比、实现简单等突出优点深得越来越多的研发人员的青睐。本文的创新点是提出一种基于CAN总线结构的远程数据采集系统方法,将CAN总线技术应用于工业现场控制中,设计了硬 件电路和软件,并得到实际应用。该系统可在复杂的海洋中实现对8路传感器信号的实时采集与传送,实验证明该系统具有结构简单、性能可靠、传输距离远、价格低廉等优点。该系统设计方法也可应用到其他需要数据采集的多节点系统中去。