基于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页)