基于CAN总线的数据采集系统.docx

上传人:b****3 文档编号:27219599 上传时间:2023-06-28 格式:DOCX 页数:49 大小:391.21KB
下载 相关 举报
基于CAN总线的数据采集系统.docx_第1页
第1页 / 共49页
基于CAN总线的数据采集系统.docx_第2页
第2页 / 共49页
基于CAN总线的数据采集系统.docx_第3页
第3页 / 共49页
基于CAN总线的数据采集系统.docx_第4页
第4页 / 共49页
基于CAN总线的数据采集系统.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

基于CAN总线的数据采集系统.docx

《基于CAN总线的数据采集系统.docx》由会员分享,可在线阅读,更多相关《基于CAN总线的数据采集系统.docx(49页珍藏版)》请在冰豆网上搜索。

基于CAN总线的数据采集系统.docx

基于CAN总线的数据采集系统

摘要

数据采集系统在实际中有广泛应用,本文以一个数据采集系统的开发项目为背景,主要完成该系统通信协议的设计,下位机主辅MCU程序的开发。

在理解数据采集系统设计方案的基础上,借鉴一些CAN应用协议的相关规定完成了整个系统通信协议的设计。

完成了主MCU程序的开发,主要实现了以下功能:

数据采集,接收上位机发送的命令,将需要实时显示的数据传送给上位机,将需要保存的数据导入辅MCU,将辅MCU传上来的数据传送给上位机。

完成了辅MCU程序的开发,主要功能包括:

接收主MCU的命令,将主MCU导入的需要保存的数据存储在PSRAM,将存储在PSRAM中的数据传给主MCU。

 

关键词:

数据采集下位机CANPSRAM

 

插图清单

图1.1典型的基于PC的数据采集系统···················13

图2.1数据采集系统整体结构························16

图2.2框图·····································19

图3.1根据ISO11898的额定总线电平···················26

图3.2典型CAN网络结构···················27

图3.3两种CAN数据帧·····················28

图4.1数据采集系统整体流程图··················31

图4.2主MCU的整体软件流程图···················

图4.3“开始数据采集”命令流程图···················

图4.4“开始数据采集”命令流程图···················

 

表格清单

表3.1部分串行总线比较···················22

表4.1通信协议······················33

表4.2通道选择的协议···················33

表4.3触发方式的选择协议···················34

表4.4控制命令选择协议···················34

表4.5预触发时间选择协议··················

表4.6肯定的回告如表··················

表4.7否定的回告如表··················

目录

第一章绪论································13

1.1数据采集系统概述································13

1.2设计目的································14

1.3小结································15

第二章数据采集系统整体方案································16

2.1系统整体设计································16

2.2USB控制器特性································18

2.3TMS470特性································20

2.4小结································21

第三章相关技术································22

3.1常用通信总线简介································22

3.1.1通用异步接收器传输总线(UART)··················22

3.1.2同步外设接口(SPI)································23

3.1.3控制器区域网络(CAN)································24

3.2小结································28

第四章下位机软件设计································30

4.1系统软件整体结构································30

4.2通信协议································31

4.2.1设计思路································32

4.2.2通信协议格式································32

4.2.2.1通道选择································33

4.2.2.2触发方式································33

4.2.2.3控制命令································34

4.2.2.4预触发时间································34

4.2.2.5回告································35

4.2.2.6主辅MCU间通信格式································35

4.3下位机软件设计································36

4.3.1主MCU软件································36

4.3.2辅MCU软件································39

4.4小结································43

第五章总结································44

参考文献································45

附录································47

第一章绪论

1.1数据采集系统概述

现今,在实验室研究、测试以及工业自动化领域中,绝大多数科研人员和工程师使用配有PCI、PXI/CompactPCI、USB、IEEE1394、并行或串行接口的基于PC的数据采集系统。

许多应用使用插入式设备采集数据并把数据直接传送到计算机内存中,而在一些其它应用中数据采集硬件与PC分离,通过并行或串行接口和PC相连。

数据采集系统的组成主要包括:

PC、传感器、信号调理、数据采集硬件和软件。

从基于PC的数据采集系统中获取适当的结果取决于图示1中的各项组成部分:

图1.1典型的基于PC的数据采集系统

数据采集系统所使用的计算机会极大地影响连续采集数据的最大速度,而当今的技术已可以使用Pentium级别以及多核的处理器,它们能结合更高性能的PCI/PCIExpress、PXI/CompactPCI和IEEE1394(火线)总线以及传统的ISA总线和USB总线。

PCI总线和USB接口是目前绝大多数台式计算机的标准设备,而ISA总线已不再经常使用。

随着PCMCIA、USB和IEEE1394的出现,为基于桌面PC的数据采集系统提供了一种更为灵活的总线替代选择。

对于使用RS-232或RS-485串口通信的远程数据采集应用,串口通信的速率常常会使数据吞吐量受到限制。

计算机的数据传送能力会极大地影响数据采集系统的性能。

所有PC都具有可编程I/O和中断传送方式。

目前绝大多数个人电脑可以使用直接内存访问(Directmemoryaccess,DMA)传送方式,它使用专门的硬件把数据直接传送到计算机内存,从而提高了系统的数据吞吐量。

采用这种方式后,处理器不需要控制数据的传送,因此它就可以用来处理更复杂的工作。

为了利用DMA或中断传送方式,数据采集设备必须能支持这些传送类型。

例如,PCI、USB设备可以支持DMA和中断传送方式,而PCMCIA设备只能使用中断传送方式。

所选用的数据传送方式会影响数据采集设备的数据吞吐量。

限制采集大量数据的因素常常是硬盘,磁盘的访问时间和硬盘的分区会极大地降低数据采集和存储到硬盘的最大速率。

对于要求采集高频信号的系统,就需要选择高速硬盘,从而保证有连续(非分区)的硬盘空间来保存数据。

此外,要用专门的硬盘进行采集并且在把数据存储到磁盘时使用另一个独立的磁盘运行操作系统。

对于要实时处理高频信号的应用,需要用到32位的高速处理器以及相应的协处理器或专用的插入式处理器,如数字信号处理(DSP)板卡。

然而,对于在一秒内只需采集或换算一两次数据的应用系统而言,使用低端的PC就可以满足要求。

在满足短期目标的同时,要根据投资所能产生的长期回报的最大值来确定选用何种操作系统和计算机平台。

影响选择的因素可能包括开发人员和最终用户的经验和要求、PC的其它用途(现在和将来)、成本的限制以及在实现系统期间内可使用的各种计算机平台。

传感器是数据采集系统重要组成部分。

传感器感应物理现象并生成数据采集系统可测量的电信号。

例如,热电偶、热敏电阻器和IC传感器可以把温度转变为模拟数字转化器(analog-to-digital,ADC)可测量的模拟信号。

为了适合数据采集设备的输入范围,由传感器生成的电信号必须经过处理。

为了更精确地测量信号,需要借助信号调理配件来放大低电压信号,并对信号进行隔离和滤波。

此外,某些传感器需要有电压或电流激励源来生成电压输出。

1.2设计目的

本文所涉及的数据采集设备主要用途是为某车载产品的软件开发和标定提供客观的数据依据。

该采集系统需要采集大量数据,其中有模拟量、数字量、CAN信号、SPI数据、SCI数据和高精度时钟计数信号;在PC机实时显示采集的数据,具有触发功能,可以设定多种不同的触发条件,当触发条件满足时可以保存触发条件满足前后一段时间内采集的数据;该系统还需要具有可扩展性,不但能满足该产品的当前需求,同时又能为今后更为高级的产品进行数据采集。

由于需要采集的数据涉及到模拟量、数字量等数据的采集,数据量大,速度较快,并且要做到很好的同步,目前市场上都是只有部分功能的采集设备,要么是只对模拟量进行采集、要么只对数字量进行采集。

而要完成该电子产品的可靠性测试必须几者结合才能完成,因此要用市场上的仪器搭建一套完整的采集设备,就要购买多台设备,成本大大提高。

为了实现的设计目的,该数据采集系统应满足的功能定义如下:

1、CAN通信功能

被采集的信号中有两路CAN,同时也是为了实现设备的向下兼容性,该采集设备要求具有两路CAN通信功能。

2、SPI通信功能

由于采集的信号变量大部分是通过SPI方式发出来的,所以此设备应具有SPI通信功能。

设备中只需要1路。

3、ADC功能

由于需要采集的信号中有多个传感器信号,其中部分传感器信号如下:

传感器

信号

通道数

压力传感器

0~5V

8

温度传感器

4~20mA

4

4、GIO功能

由于需要采集的信号中有多个数字信号信号,如光电开关信号,其中部分信号如下:

类型

通道数

10V

1

12.6V

1

5、Timer&Counter功能

由于需要采集的信号中有PWM信号,因此需要该系统能采集相关信号,需求如下:

类型

通道数

5V

5

1.3小结

本章简单介绍了当前使用最广泛的数据采集系统的组成结构,在此基础上对本项目设计的数据采集系统的需求进行了简略介绍,为第三章介绍数据采集系统的整体方案设计做铺垫。

第二章数据采集系统整体方案

2.1系统整体设计

该采集系统由于该数据采集系统的数据量比较大,最多达到3Mbps,所以在与PC机之间采用USB通信。

设备中需要支持1路USB的通讯模块。

保存采集到的数据需要保存一段时间,根据需求,需要12M的RAM资源,由于选用的MCU芯片硬件资源有限,无法直接存储,需要外接存储芯片,采用PSRAM保存采集到的数据。

又由于MCU外接USB芯片之后没有足够的接口来连接PSRAM,因此我们采用两片相同的MCU,一片称为主MCU,另外一片称为辅MCU。

采集数据时主MCU主要负责采集数据,将采集到的数据通过SPI通讯导给辅MCU,由辅MCU写入PSRAM。

需要读取保存的数据时,先由辅MCU将数据从PSRAM中读出,同样通过SPI导给主MCU,由主MCU写入USB芯片。

该采集系统硬件主要包括以下几个模块:

1,电源模块2,主MCU模块3,辅MCU模块4,存储模块5,USB通信模块6,CAN通信模块7,模拟量模块8,数字IO模块。

图2.1数据采集系统整体结构。

图2.1数据采集系统整体结构

下面详细介绍各个模块的实现和设计的优点。

(1)、电源模块

本系统需要多组电源,分别为5V、3.3V。

本系统供电系统是蓄电池,电压12V。

所以一级电源电路采用开关电源模块提供+5V电源,供系统中需要5V供电的IC电路使用,并给二级电源电路提供输入。

一级电路的设计必须考虑到电源的特殊性,必须加上必要的保护措施,保证系统的可靠运行。

(2)、主MCU模块

本系统采用TI公司的TMS470系统芯片,本款微控制器是TI公司精简指令集TMS470R1×系列成员之一,它是采用高性能的StaticCMOS制造技术。

以ARM7TDMI为核,支持DMA;拥有两个SPI通信口、两个高端CAN通信口、带有高端定时记数器等。

主MCU主要负责整个系统的数据采集、通信以及管理系统工作。

和辅MCU以SPI通信实现高速数据传输。

以满足ESP大量数据的传输存储功能。

对模拟信号的采集采用MCU内部集成的高精度10位AD转换器对多路模拟信号进行快速轮流采集。

对脉冲信号采用高端定时器进行计数。

两个CAN口用于采集需要接收的CAN信号。

和USB采用高速并行接口进行数据传输。

(3)、辅MCU模块

辅MCU采用和主MCU相同的芯片,辅MCU主要接收主MCU采集到的数据,并把这些数据存储到PSRAM中,在进行上位机数据传输时把PSRAM中的数据送出,以便进行更复杂的数据分析处理。

(4)、存储模块

本系统由于在短时间内有大量的数据交换,一般的SD卡存储介质受储存速度的限制无法满足本系统的要求,因此本系统采用快速的PSRAM。

此芯片是BGA封装,体积很小节约系统空间。

(5)、USB模块

USB接口是一种通用的高速串行接口,它最主要的特点是高速传输特性,可以很好的解决海量数据在嵌入式系统与PC机之间的互传问题;同时USB接口还具有热插拔、速度快(具有3种数据传输模式,即低速、全速、高速:

最快可达480Mbps)等优点,因此很适合本采集系统的情况。

本采集系统采用CY7C68013芯片。

(6)、CAN通信接口模块

本系统采用CAN接口接收信息,CAN协议控制器集成在主MCU中。

外围只需要添加简单的收发器即可,电路设计简单、可靠性高。

在考虑本系统的应用环境,采用TVS保护,使系统更安全可靠。

(7)、模拟量模块

本系统需要采集多路模拟信号,由于系统是采用主MCU内置AD转换器,转换的参考电压是0—3.3V,而外部输入信号为非标准信号,不满足内置AD转换器的要求。

因此必须要加上调理电路。

调理电路主要完成信号滤波和信号变换的工作。

同时考虑应用的特殊环境在各个模拟口分别加上输入保护电路。

2.2USB控制器特性

CY7C68013是一个带增强型MCS51内核和USB接口的单片机,完全遵从USB2.0协议,可提供高达480Mbps的传输速率;内部集成PLL,最高可使51内核工作在48MHz,对外提供两个串口,可以方便的与外部通信。

该系统中串口被用来连接USB和主MCU,上位机命令通过该串口连接到主MCU。

使UART工作在半双工模式下。

这样USB和主MCU就可以互为主机了。

Cypress的EZ-USBFX2TM是世界上第一款集成了USB2.0接口的微控制器。

通过集成USB2.0收发器、SIE(串行接口引擎,SerialInterfaceEngine)、增强的8051微控制器以及可编程成的外部接口于一个单片中,Cypress为决策者获取产品快速上市利益建立了一个真正的高效解决方案。

虽然在小到56脚SSOP封装内仍然使用低成本的8051微控制器,但由于FX2独特的体系结构,使数据传输速率可以达到USB2.0允许的最大带宽——每秒56Mbytes。

因为组合了USB2.0收发器,FX2比USB2.0SIE和使用外部收发器实现更经济、提供了更小封装尺寸的解决方案。

由于有EZ-USBFX2,Cypress灵巧的SIE可以在硬件中处理最多的USB1.1和2.0协议,将嵌入式控制器从特殊的应用功能中解脱出来,并且可以减少为确保USB兼容性所花费的开发时间。

GPIF(通用可编程接口,TheGeneralProgrammableInterface)、主从端点FIFO(8位或16位数据总线)提供了一种容易而且是无缝地与流行的接口进行连接的方法,如ATA、UTOPIA、EPP、PCMCIA以及大部分的DSP/处理器。

主要应用于DSL调解器、ATA接口、存储卡读卡器、相机、扫描仪、家庭PNA、无线局域网、MP3播放器。

本系列产品定义了四种封装形式:

56脚SSOP,56脚QFN,100脚TQFP以及128脚TQFP。

图2.2框图

●单片集成USB2.0收发器、SIE和增强型8051微处理器。

●软件:

从内部RAM运行的8051程序来自于:

——通过USB接口下载,或

——从EEPROM下载

——外部储存器设备(仅对128脚配置)

●4个可编程的批量/中断/同步端点

——缓冲器可选:

双倍、三倍和四倍。

●8位或16位外部数据接口

●GPIF

——允许直接连接到大部分并行接口;8位或16位。

——通过可编程的波形描述器和配置寄存器来定义波形。

——支持多就绪(RDY)和控制(CTL)输出。

——高达48MHz的时钟速率。

——每指令周期4个时钟。

——两个UARTS。

——三个定时器/计数器。

——扩展的中断系统。

——两个数据指针。

●通过枚举支持总线供电应用。

●3.3V操作电压。

●灵巧的串行接口引擎。

●USB中断向量。

●对控制传输的设置(SETUP)和数据(DATA)部分使用独立的数据缓冲器。

●集成的I2C兼容控制器,运行速率100或400kHz。

●8051的时钟频率为48MHz,24MHz,或12MHz。

●4个集成的FIFO。

——以更低的系统开销组合FIFO。

——自动转换到/自16位总线。

——支持主或从操作。

——FIFO可以使用外部提供的时钟或异步选通。

——容易与ASIC和DSP芯片接口。

●对FIFO和GPIF接口的特殊自动中断向量。

●多达40个通用I/O接口。

●四种封装可选—128脚TQFP,100脚TQFP,56脚QFN和56脚SSOP。

2.3TMS470特性

TMS470CPU核心是ARM7TDMI,16/32-bitRISC。

其正常模式的系统时钟是28MHz、管线模式是48MHz。

内含128K字节的FLASH和8K字节的SRAM。

其它电路单元还包含:

●零位锁相环(ZPLL)时钟模块;

●模拟的看门狗定时器;

●实时中断模块;

●两个串行外围接口模块;

●两个串行通讯接口模块;

●标准的CAN控制器;

●10-bit、16个输入通道多重缓冲模拟数字转换器(MibADC);

●高端定时器(high-endtimer),控制16个输入/输出端口;

●外部时钟分频器。

上述ZPLL、MibADC、HET是TMS470的特殊功能。

ZPLL包含了一个PLL、一个时钟监视电路、一个时钟使能电路和一个预分频器(预分频值是从1-8)。

ZPLL功能是将外部的参考电压乘以预分频值,以获得较高的频率,供给TMS470内部使用。

ZPLL提供ACLK给TMS470的系统模块,之后,系统模块会产生系统时钟、实时中断时钟、CPU时钟、外围接口时钟。

MibADC接受一个模拟信号,并将它转换成一个10-bit的数字信号。

MibADC具有两个模式:

兼容和缓冲模式。

在兼容模式中,TMS470的程序模型和TMS470的ADC模块兼容,而且MibADC的数字输出是储存在数字输出缓存器中;程序模型包含:

缓存器、寻址模式和中断。

兼容模式能让ADC的程序设计工作变得比较容易,因为只要直接读取数字输出缓存器即可取得转换后的数字数据。

在缓冲模式中,数字元输出缓存器被3个FIFO缓冲存储器取代——分别表示不同的转换群组(事件、群组1、群组2)。

在兼容模式中,MibADC的FIFO是被“中断服务例程”读取。

HET是一种先进的智能型定时器,它为实时的应用提供精确的计时功能。

此定时器是由软件控制的,使用精简的指令集、特殊的微电路架构、I/O端口。

它可以应用于数据比较、采集,或当成GPIO,尤其适用于对多个传感器的输入数据做比较,或输出复杂的和精确的时间脉冲(如PWM脉冲)来驱动启动器(actuator)。

2.4小结

在综合考虑该数据采原定的采集要求。

后期在系统实际应用过程中,该系统运行效果良好,用户对该系统反馈比较满意。

事实证明该数据采集系统在考虑实际需求和开发周期的基础上,采用ARM7+USB+PSRAM的整体设计方案,能够满足设计要求。

第三章相关技术

3.1常用通信总线简介

目前嵌入式系统在消费类电子、计算机外设、汽车和工业应用中应用广泛,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的微控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。

目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。

微控制器(MCU)中常用的集成串行总线是通用异步串行通信(SCI)、同步串行通信(SPI)、通用串行总线(USB),以及控制器区域网(CAN)和本地互连网(LIN)等等。

这些总线在速度、物理接口要求和通信方法学上都有所不同。

本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些提供一个总体介绍,下面给出一个比较图表(表3.1)。

为了说明方便起见,本文的阐述是基于微处理器的设计。

总线类型

线数

通信类型

多主支持

数据率(bps)

总线器件数

通信距离(米)

SCI

2

异步

不支持

3K—4K

2

1.5@128Kbps

SPI

3

同步

不支持

>1M

<10

<3

CAN

2/1

异步

支持

<=1M

128

40@1Mbps

LIN

1

异步

不支持

<=20K

16

40

表3.1部分串行总线比较

3.1.1通用异步接收器传输总线(UART)

UART是一种应用最广泛的通用串行数据总线,用于异步通信。

该总线双向通信,可以实现全双工传输和接收。

在嵌入式设计中,UART用来与PC进行通信,包括与连接仿真器和其它器件,如EEPROM通信。

a.UART通信

UART首先将接收到的并行数据转换成串行数据来传输。

消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶效验位和一个或几个停止位。

接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。

如果选择了奇偶,UART就在数据位后面加上奇偶位。

奇偶效验位可用来帮助错误校验。

在接收过程中,UART从消息帧中去掉起始位和停止位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。

UART也产生额外的信号来指示发送和接收的状态。

例如

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1