基于CAN总线的远程数据采集系统的设计
- 格式:pdf
- 大小:410.54 KB
- 文档页数:3
2008年
第
5期仪表技术与传感器
Instrument
Technique
and
Sensor2008
No1
5
收稿日期
:2007-11-07 收修改稿日期
:2008-03-06基于
CAN总线的远程数据采集系统的设计
徐帅男
,郭文川
,史颖刚
(西北农林科技大学机电学院
,陕西杨凌
712100)
摘要
:设计了一种基于
CAN总线的虚拟仪器。系统通过数据采集模块(
DAQ)将传感器采集的信号进行处理
,经过
CAN总线传输到主机端
,主机通过
USB/CAN接口适配器获取
CAN总线上的数据
,然后利用基于
LabVIEW构建的虚拟仪
器对数据进行处理和管理。该系统通用性好
,可靠性高
,传输速率快
,扩展灵活
,成本低
,操作方便。
关键词
:CAN总线
;虚拟仪器
;LabVIEW;数据采集系统
中图分类号
:TP216 文献标识码
:A 文章编号
:1002-1841(
2008)
05-0045-02
DesignofRemoteDataAcquisitionSystemBasedonCANbus
XUShuai2
nan,GUOWen2
chuan,SHIYing2
gang
(CollegeofMechanicalandElectricEngineering,NorthwestA&FUniversity,Yangling712100,China)
Abstract:OnekindofvirtualinstrumentbasedonCANbuswasdesigned.Thephysicalsignalscollectedbysensorswerepro2
cessedbydataacquisitionsystem(
DAQ)
andwastransmittedtopersonalcomputer(
PC)
throughCANbus.ThePCacquireddata
inCANbusthroughUSB/CANadapter.LabVIEWwasusedtorealizefunctionsofvirtualinstruments.Thesystemhasthecharac2
teristicsofgoodversatility,highreliability,hightransmissionspeed,lowcostandconvenientoperation.
Keywords:CANbus;virtualinstrument;LabVIEW;dataacquisitionsystem
0 引言
网络化虚拟仪器系统是一种新型网络测控技术
,当前虚拟
仪器的研究主要基于模块化总线和部分用于仪器之间通信的
独立总线
,如
:PCI、
PXI/CompactPCI、
VXI、
GPIB和
RS-485、
USB、
IEEE1394等。但是在工业控制现场
,上述总线在传输距
离、传输速率、可靠性、抗干扰以及性价比方面均有不足。基于
TCP/IP协议的网络化虚拟仪器
,无法满足工业测控系统对可靠
性和抗干扰要求比较高的场合。
CAN总线具有非破坏性总线
仲裁、严格的错误检测和界定、通讯距离远、通讯速率高等优
点
,可以很好地满足现场总线仪表的要求[1]
。所以使用
Lab2
VIEW8.2设计了基于
CAN总线的远程数据采集系统。
1 系统结构[2]
图
1为数据采集系统的结构图。信号进入
DAQ板卡后进
行
A/D转换
,然后送入
DAQ板卡的缓冲区(
Buffer)。
DAQ板
卡和主机端通过
CAN总线传输数据。使用
LabVIEW开发
DAQ板卡驱动程序以及数据显示等功能。计算机内存中缓冲
(
FIFO)指的是
PC内存的一个区域(不是
DAQ卡上的缓冲)
,
它用来临时存放从
CAN总线传来的数据。触发涉及初始化、
终止或同步
DAQ事件的任何方法。模拟信号过零时触发
,触
发次数由移位寄存器得出。
2 系统的硬件设计
图
2为系统的硬件结构框图[3]
。将传感器采集到的现场
信号经过信号调理电路后送入数据采集模块
,数据采集模块完
成
A/D转换、
CAN总线发送等任务后
,将信号通过
CAN总线传
至主机端
,主机通过
CAN/USB适配器完成对总线信号的读取
以及向总线上发送命令。主机使用基于
LabVIEW
构建的数据图
1 数据采集系统结构图
采集控制软件进行数据处理
,并把处理结果通过
CAN总线反
馈到工业现场。
图
2 系统硬件结构框图
21
1 协议转换器[4]
采用
GY8507USB/CAN总线接口适配器完成
CAN总线和
PC之间的通信。其主要特点如下
:支持
USB2.0、
CAN2.0A和
CAN2.0B协议并支持标准帧和远程帧
;CAN控制器波特率可
在
5kbit/s~
1Mbit/s之间使用软件配置选择
;CAN总线接口采
用光电隔离
;提供可被
LabVIEW调用的库函数。
适配器接收到
CAN网络的数据后
,将其保存在缓冲区中。
当
USB端接收到上位机请求命令时
,将数据通过
CAN总线收
46
InstrumentTechniqueandSensorMay1
2008
发器和控制器发送到
USB接口。适配器接收到
PC机的
USB
接口发送过来的数据流
,先识别是发送包还是配置包。若是发
送包
,则立即向
CAN网络发送
CAN帧。若是其他请求
,则进行
CAN总线控制器的相关配置或处理。
21
2 数据采集模块
图
3为数据采集模块框图。数据采集模块用于采集工业
现场的各种信号
,并将采集得到的信号经过信号调理电路后输
出到
CAN总线。信号调理电路的作用是实现对传感器采集的
信号进行简单的放大滤波
,使其符合数据采集模块的输入要
求。调理后信号通过模拟输入通道进入
A/D转换器的输入端
,
A/D转换器在微控制器
MCU的控制下开始逐个对多路模拟信
号进行转换
,转换得到的数字信号经过光电隔离电路送给
MCU.MCU根据
PC的命令将数据通过
CAN总线控制器后
,经
CAN总线收发器传到
CAN总线。一轮数据转换完成后
,判断
结果是否合理
,对合理的结果进行必要的处理
,然后将数据通
过
CAN控制器转换成
CAN协议的数据格式
,通过
CAN接口发送到总线等待上位机进一步处理。
图
3 数据采集模块框图
3
CAN总线协议设计[1]
CAN标准信息帧信息为
11个字节
,每字节
8位
,包括
2部
分
:信息和数据部分。前
3个字节为信息部分
,如表
1所示。
表
1
CAN标准信息帧信息
字节位
76543210
字节
1FFRTR××
DLC(数据长度)
字节
2报文识别码(
ID.10-ID.3)
字节
3ID.2-ID.0×××××
字节
4~
11数据
1~
8位
字节
1为帧信息。第
7位(
FF)表示帧格式
,在标准帧中
,
FF=0;第
6位(
RTR)表示帧的类型
,RTR=0表示为数据帧
,
RTR=1表示为远程帧
;DLC表示为数据帧时实际的数据长度。
字节
2、
3为报文识别码
,11位有效。字节
4~
11为数据帧
的实际数据
,远程帧时无效。
CAN总线
控制器采用
SJA1000,CAN总线收发器采用
82C250。
CAN总线节点的软件设计主要包括
CAN节点初始
化
,信息的接收和发送。初始化设置主要确定各种通信参数
,
如波特率、位周期宽度、采样点位置、采样次数、输出方式等。
SJA1000上电复位后进入
Basicmode模式
,在此模式下
,
SJA1000有复位和运行
2种状态
,在复位状态下完成对
SJA1000
接收屏蔽寄存器
AMR、接收代码寄存器
ACR、总线定时寄存器
BTR以及中断寄存器
IER的设置。信息的发送和接收由
CAN
总线控制器自动完成。
CAN数据采集流程图如图
4所示。数据采集首先完成总线初始化
,然后根据系统指令判断是否读取数据
,如果是则读
取数据
,否则返回上一步。读取数据后判断测量是否结束。如
果是则结束测量
,如果否则开始下一次数据测量。
图
4 数据采集流程图
4 系统软件设计
41
1 软件结构及设计思想
数据采集
DAQ仪器软件结构中
,接口软件主要提供
DAQ
卡的驱动
,它是应用软件和插件或者其他数据采集设备的接
口。应用软件则是在接口驱动的基础上
,采用图形化编程语言
LabVIEW设计完成。设计采用自顶向下和模块化的设计思想。
41
2 软件设计
用
LabVIEW[5]
实现数据采集
,就是在
LabVIEW中控制各
种
DAQ卡(或设备)完成特定的功能
,这离不开
DAQ卡驱动程
序的支持。
图
5为设计的系统框图。程序结构采用
while循环结构。
在
LabVIEW8.2中打开
DAQAssistant(仪器助手)
,使用
DAQmxCreatVirtualChannel子
VI创建
A/D转换的虚拟通道。
DAQmxStartTask子
VI开始
1个数据采集任务
,然后将采集的
数据输入
DAQmxRead子
VI读取采样数据。
DAQmxRead子
VI的
numberofsamplesperchannel用来设置每次读取缓冲区
数据的个数
,一般设为采样速率的
1/10,可根据实际情况自己
设定。
FilterExpressVI用于对采集的数据进行滤波。滤波后
的信号送入
SpectralMeasurements完成快速傅立叶变化(
FFT)
后显示输出。数据采集任务完成后使用
DAQmxStopTask子
VI
停止数据采集任务
,然后使用
DAQmxClearTask子
VI释放
DAQ设备上的硬件资源[6-7]
。
图
5 设计程序框图
5 结束语
完成了远程数据采集系统的模块选择与系统整体搭建
,使
用
LabVIEW开发了远程数据采集系统控制软件。该系统适合
于工业现场的多任务数据采集与控制
,可以挂接多个数据采集
模块
,并且用软件实现硬件的功能
,降低了系统硬件成本。但
对于单物理量的数据采集系统来说
,系统结构(下转第
54页)