当前位置:文档之家› can总线温度控制(DOC)

can总线温度控制(DOC)

can总线温度控制(DOC)
can总线温度控制(DOC)

祝你成功

本系统以AT89S52单片机为核心部件,外加温度采集电路、及显示电路和越限报警等电路。采用单总线型数字式的温度传感器DS18B20,使系统具有测温误差小、分辨率高、抗干扰能力强,动态显示的方式等特点。本设计既可以对当前温度进行检测又可以对温度进行数码显示,两位整数两位小数的显示方式具有更高的显示精度,若超越极限温度则触发蜂鸣器报警。利用功能强大的Keil和具有互动电路仿真的Proteus进行程序的编写和仿真。

关键词:仿真温度检测报警DS18B20

I

目录

第一章选题依据 (1)

1.1课题背景 (1)

1.2研究设计内容 (2)

第二章温度检测系统的硬件设计 (3)

2.1电路总体原理框图 (3)

2.1.1 AT89S52介绍 (4)

2.2DS18B20的特性 (6)

2.2.1 DS18B20的外形和内部结构 (6)

2.2.2 DS18B20的使用方法 (7)

2.3测温电路 (8)

2.4单片机复位电路 (9)

2.5LED显示电路 (10)

2.6报警电路 (11)

第三章温度检测系统软件设计 (12)

3.1总流程图 (12)

3.2延时设计 (13)

3.3复位设计 (14)

3.4显示设计 (14)

第四章系统仿真调试 (16)

4.1P ROTEUS7.1 (16)

4.2K EIL UVISION2 (17)

4.3仿真结果分析 (19)

4.4硬件焊接及系统调试问题 (20)

4.5结论 (22)

致谢 (23)

参考文献 (24)

附录 (25)

II

第一章选题依据

在科学技术突飞猛进的今天,温度检测、控制起不可忽视的作用。温度控制无论在医疗电子领域还是工业控制领域应用都非常广泛,如在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制,医疗电子领域的生化分析仪等,内部都涉及到温度控制。本课题它完成了从温度的采集、转换、显示以及报警的一系列任务。

本文介绍了以AT89S52单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机,单片机进行温度的判断是否超越所设置的温度极限,若低于或高于所设温度,单片机将发出信号使蜂鸣器自动报警。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控报警,完成了课题所有要求。

1.1课题背景

自动控制系统在各个领域尤其是工业领域中有着及其广泛的应用,温度控制是控制系统中最为常见的控制类型之一。随着单片机技术的飞速发展,通过单片机对被控对象进行控制日益成为今后自动控制领域的一个重要发展方向。

采用单片机AT89S52来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。

1

1.2 研究设计内容

本系统采用的新型智能化温度传感器DS18B20,能以数字形式直接输出被测点温度值,具有测温误差小、分辨率高、抗干扰能力强、成本低,是研制和开发具有高性价比的新一代温度检测系统的核心器件。

本系统设计了一个由数字化测温元件构成的温度检测报警系统,本系统包括了温度检测、温度显示、温度越限报警等部分。

本系统主要运用了单片机AT89S52,高性能CMOS 8位单片机,片内含8K bytes 的可反复擦写的。兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元等强大功能。也采用了新型传感器DS18B20,利用它的体积小,高精度、强大的读写功能等特点进行温度的采集。

用PNP型三极管做驱动,采用4位共阴LED动态显示方式。主要采用了手动复位操作。

2

第二章温度检测系统的硬件设计

2.1电路总体原理框图

温度测量及显示、报警系统控制的总体结构如图2-1所示。系统主要包括现场温度采集、温度显示、电路控制输出、与报警装置和系统核心AT89S52单片机作为微处理器。

图 2-1电路总体原理框图

温度采集电路以数字量形式将现场温度传至单片机。单片机结合现场温度与用户设定的目标温度,进行判断是否超越极限以此控制蜂鸣器自动报警。

3

2.1.1 AT89S52介绍

1、AT89S52性质

AT89S52单片机是美国ATMEL公司生产的AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8kBytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器256 bytes 的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

AT89S52芯片有40条引脚,双列直插式封装引脚图如2-2图所示:

2-2 AT89S52引脚图

Vss(20): 接地。

Vcc(40):电源+5V。

PSEN(29):片外程序存储器选通信号,低电平有效。

(9):复位信号输入端。AT89S52接能电源后,在时钟电路作用下,该脚上RST/V

PD

,即备用电源输入出现两个机器周期以上的高电平,使内部复位。第二功能是V

PD

端。

ALE/PROG(30):地址锁存信号输出端。

P0口(39—32):双向I/O口,既可作地址/数据总线口用,也可作普通I/O口用。

4

P1口(1—8):准双向通用I/O口。

P2口(21—28):准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用

P3口(10—17):多用途口,既可做普通I/O口,也可按每位定义的第二功能操作。ALE/PROG(30):地址锁存信号输出端。

主要功能特性:

◆兼容MCS-51指令系统

◆8k可反复擦写(>1000次)Flash ROM

◆32个双向I/O口

◆ 4.5-5.5V工作电压

◆时钟频率0-33MHz

◆全双工UART串行中断口线

◆256x8bit内部RAM

◆2个外部中断源

◆低功耗空闲和省电模式

◆中断唤醒省电模式

◆3级加密位

◆看门狗(WDT)电路

◆软件设置空闲和省电功能

◆灵活的ISP字节和分页编程

◆双数据寄存器指针

◆2个16位可编程定时/计数器

AT89S52共有4个(P0、P1、P2、P3口)8位并行I/O端口,共32个引脚。P0口双向I/O口,用于分时传送低8位地址和8位数据信号;P1、P2、P3口均为准双向I/O 口;其中P2口还用于传送高8位地址信号;P3口每一引脚还具有特殊功能,用于特殊信号的输入输出和控制信号。

AT89S52内部有一个可编程的、全双工的串行接口。它串行收发存储在特殊功能寄存器SFR的串行数据缓冲器SBUF中的数据。

5

2.2 DS18B20的特性

◆适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下由数据线供电。

◆独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现

微处理器与DS18B20的双向通讯。

◆DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网

多点测温。

◆DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如

一只三极管的集成电路内。

◆温范围-55℃~+125℃,在-10~+85℃时精度为0.5℃。

◆可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃

和0.0625℃,可实现高精度测温。

◆在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在你

750ms内把温度值转换为数字,速度更快。

◆测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送

CRC校验码,具有极强的抗干扰纠错能力。

◆负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

2.2.1 DS18B20的外形和内部结构

DS18B20的外形结构及引脚排列

图2-3 DS18B20 外形结构图

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

6

2.2.2 DS18B20的使用方法

DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

1、DS18B20的读时序

DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。

图 2-4 DS18B20的读时序

2、DS18B20的写时序

DS18B20的写时序仍然分为写0时序和写1时序两个过程。DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

图 2-5 DS18B20的写时序

7

2.3 测温电路

DS18B20测温原理如图2-6所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

图 2-6 DS18B20测温原理框图

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

图2-7 DS18B20温度值格式表

这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。如+125℃的数字输出07D0H,+25.0625℃的数

8

字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。最后CPU向传感器读取温度,加以处理。

2.4 单片机复位电路

当单片机AT89S52的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位图如3-5中A图所示。图中电容C1和R1对电源+5V来说构成微分电路。上电后使RST持续一段时间的高电平。由于单片机内的等效电阻作用,不用图中电阻R1,也能达到上电复位的功能,如3-5图B所示。

图2-8(A)上电复位图图2-8(B)上电复位电路上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如上图(B)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。

上图(A)中:Cl=10-30uF,R1=1kO

上图(B)中:C:=1uF,Rl=lkO,R2=10kO

单片机复位后的状态:

单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表。

9

说明:表中符号*为随机状态;A=00H,表明累加器已被清零。

2-1

PSW=00H,表明选寄存器0组为工作寄存器组;SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中。

Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;IP=×××00000B,表明各个中断源处于低优先级;

IE=0××00000B,表明各个中断均被关断;

系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。

2.5 LED显示电路

单片机I/O的应用最典型的是通过I/O口与LED数码管构成显示电路,我不采用LCD液晶显示器的主要原因是液晶显示,省电,常用于精密仪器仪表,而且编程复杂,而数码管显示,亮度高,成本低,编程简易,易操作。

显示采用4位共阴LED动态显示方式,显示内容有温度值的十位、个位及小数点后两位。用P2口作为段控码输出,P1.0—P1.2作为位控码输出,用PNP型三极管做驱动。模块电路如下图

10

图2-9显示接口电路

工作原理:利用DS18B2O所测量到的温度经过转换,再将转换出来的温度输入LED使内部的二极2管发光,使我们能看到清晰的温度值。

2.6 报警电路

此设计选择了蜂鸣器,因为是做设计,且比扬声器使用起来简单,只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,从经济性、电路结构、系统性等各方面考虑。

当用户设定的目标温度达到时需用声音的形式提醒用户,此时蜂鸣器为断续的滴答滴答的叫声。在本系统中我们为用户设计了越限报警,当温度低于用户设置的目标温度20度或高于30度时蜂鸣器为连续不断的滴答滴答叫声。当单片机P1.7输出高电平时,三极管导通,蜂鸣器工作发出报警声。

报警及指示灯电路如下图2-10示

图2-10 报警及指示灯电路图

当温度在正常范围内显示绿灯,当温度低于设限温度时,显示红灯2亮,同时,蜂鸣器报警。当温度高于设限温度时,显示红灯3亮,同时,蜂鸣器报警。

11

第三章温度检测系统软件设计3.1 总流程图

图 3-1 总流程图

主程序:

void main()

{

uchar i;

12

uchar temp;

float backbit;

uchar counter;

counter=5;

sp=1;

for(i=0;i<4;i++)

dispbuf[i] = 0;

while(1)

{

//温度测量频率没有必要太高,太高反而影响数码显示

//所以用计数器加以控制

if(counter-- == 0)

{

readtemp();

counter = 2;

}

// readtemp();//读18B20

backbit = temper[0];//换成浮点数

backbit = backbit * 6.25;//乘以0.0625*100

temp = backbit; //取低2位整数部分

dispbuf[3] = temp%10 ;

temp = temp/10;

dispbuf[2] = temp%10 ;

temp = temper[1]; //取整数部分

dispbuf[1] = temp%10;

temp = temp/10;

dispbuf[0]= temp%10;

saomiao();

}

}

3.2 延时设计

本系统选用的AT89S52单片机的工作频率为12MHZ。可以知道具体每条指令的周期数,这样就可以通过指令的执行条数来确定时间。具体的延时程序:void delay(uint z)

{

uint x,y;

13

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

本系统不仅对主函数进行了延时,还对DS18B20的操作进行了延时,以便我们能更容易看清楚所测温度的变化。对DS18B20的延时程序如下:

void delay1(uint z)

{

while(z--);

}

3.3 复位设计

本系统主要采用的是手动进行复位,在上电后使RST持续一段时间的高电平。就能使系统复位。其程序如下:

void reset(void)

{

uchar x=0;

DQ = 1;

delay1(8); //稍做延时

DQ = 0;

delay1(80); //精确延时大于 480us

DQ = 1; //拉高总线

delay(14);

x=DQ;

delay1(20);

}

3.4 显示设计

本设计主要是采用了四位一体LED数码管,都对起进行了上拉,以增加数码管的亮度。其程序:

void saomiao()

{

P0=table[dispbuf[0]];//十位

P1=0xfe;

14

delay(2);

P1=0xff;

P0=table1[dispbuf[1]];//个位

P1=0xfd;

delay(2);

P1=0xff;

P0=table[dispbuf[2]];//十分位

P1=0xfb;

delay(2);

P1=0xff;

P0=table[dispbuf[3]];//百分位

P1=0xf7;

delay(2);

P1=0xff;

15

第四章系统仿真调试

4.1 Proteus7.1

Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。

Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。

Proteus的工作过程

◆运行proteus的ISIS程序后,进入该仿真软件的主界面。

◆Proteus 软件所提供的仪表资源,对于一个仿真软件或实验室,测试的仪器

仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。

◆Proteus 软件所提供的调试手段,Proteus提供了比较丰富的测试信号用于电

路的测试。

16

图4-1 Proteus的的主界面

4.2 Keil uvision2

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

在打开Keil主界面后,新建工程进入界面如下图:

17

图 4-2 Keil主界面

程序编译成功后,点击Options for target后再点击Output进入以下界面

再点击Greate HEX Fi:生成 HEX文件。

图4-3 生成HEX文件界面

18

CANopen协议讲解

根据DS301的内容进行介绍 1、CAN总线 CAN标准报文

2、CANopen应用层协议 CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。 一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。 一个标准的CANopen 节点 CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。功能码将所有的报文分为7个优先级,按照优先级从高至低依次为: 网络命令报文(NMT) 同步报文(SYNC) 紧急报文(EMERGENCY) 时间戳(TIME)

过程数据对象(PDO) 服务数据对象(SDO) 节点状态报文(NMT Err Control) 7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。 下表给出了各报文的COB-ID 范围。 NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。 SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。 EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与

处理能力的节点会接收并处理紧急报文。

TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。 PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。 SDO 分为发送SDO 和接收SDO,用于读写对象字典。 MT Error Control报文由从节点发出,用以监测从节点的运行状态。 状态机 CANopen 的每一个节点都维护了一个状态机。该状态机的状态决定了该节点当前支持的通讯方式以及节点行为。 初始化时,节点将自动设置自身参数和CANopen 对象字典,发出节点启动报文,并不接收任何网络报文。 初始化完成后,自动进入预运行状态。在该状态,节点等待主站的网络命令,接收主站的配置请求,因此可以接收和发送除了PDO 以外的所有报文。 运行状态为节点的正常工作状态,接收并发送所有通讯报文。 停止状态为一种临时状态,只能接收主站的网络命令,以恢复运行或者重新启动。

LIN和CAN车载网络介绍

浅谈车载网络 为了在提高性能与控制线束数量之间寻求一种有效的解决途径,在20世纪80年代初,出现了一种基于数据网络的车内信息交互方式——车载网络。 车载网络采取基于串行数据总线体系的结构,最早的车载网络是在UART(Universal Asynchronous Receiver/Transmitter)的基础上建立,如通用汽车的E&C、克莱斯勒的CCD等车载网络都是UART在汽车上的应用实例。由于汽车具有强大的产业背景,随后车载网络由借助通用微处理器/微控制器集成的通用串行数据总线,逐渐过渡到根据汽车具体情况,在微处理器/微控制器中定制专用串行数据总线。 20世纪90年代中期,为了规范车载网络的研究设计与生产应用,美国汽车工程师协会(SAE)下属的汽车网络委员会按照数据传输速率划分把车载网络分为Class A、Class B、Class C三个级别:Class A的数据速率通常低于20Kbps,如LIN,主要用于车门控制、空调、仪表板;Class B的数据速率为10Kbps~125Kbps,如低速CAN(ISO 11898),主要是事件驱动和周期性的传输;Class C的数据速率为125Kbps~1Mbps,如高速CAN(ISO898),主要用于引擎定时、燃料输送、ABS等需要实时传输的周期性参数。拥有更高传输速率的MOST和FlexRay主要适用于音视频数据流的传输。 目前与汽车动力、底盘和车身密切相关的车载网络主要有CAN、LIN和FlexRay。从全球车载网络的应用现状来看,通过20多年的发展,CAN已成为目前全球产业化汽车应用车载网络的主流。 CAN,全称为“Controller Area Network”,即控制器局域网,CAN 数据总线又称为CAN—BUS总线,20世纪80年代初由德国Bosch 公司开发,作为一种由ISO定义的串行通讯总线,其通信介质可以是双绞线、同轴电缆或光导纤维。同年,Bosch公司正式颁布了CAN 技术规范,版本2.0。该技术规范包括A和B两部分。CAN被设计作为汽车环境中的微控制器通信,采用单片机作为直接控制单元,用于对传感器和执行部件的直接控制,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络,通信速率可达1Mbps。 CAN-BUS系统主要包括以下部件:CAN控制器——用来接收微处理器传来的信息,对这些信息进行处理并传给CAN收发器,同时CAN控制器也接收来自CAN收发器传来的数据,对这些数据进行处理,并传给控制单元的微处理器;CAN收发器——接收CAN控制器

CAN总线实例介绍

CAN总线读书笔记 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准。CAN总线解决方案为嵌入式设计提供通信与连接,使其进入崭新阶段。CAN串行总线协议是一款高速可靠的通信协议,创建最初用于汽车应用,如今已广泛用于需要达到1 Mbps比特率的稳健通信应用。在产品设计中集成CAN协议将是在恶劣电气环境下实现高度实时通信功能的低成本的可靠途径。 CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义2或2个以上不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。近年来广泛应用于汽车控制系统和工业控制系统领域。下面我们可以看到CAN-BUS总线技术应用的具体案例。 案例1:电动汽车充电站换电站充电桩CAN总线管理系统方案背景介绍:电动汽车充电站是电动汽车发展和普及的重要基础支撑系统,也是电动汽车商业化、产业化过程中的重要环节。 现在通常的通电方式有3类,适用于不同的应用场合。充电站通常主要提供快速充电服务,辅以用于慢速充电的充电桩;充电桩则只能提供慢速充电;换电站则提供为电动汽车更换电池的服务。 而这三类的充电方式都会同样使用到计算机作为管理核心,并且通过以太网来连接站内的各个功能部分,如计费和打印等计算机和系统。所以以太网是作为管理网络存在于系统当中。对于直接的充电的指示和监控则是由可靠性和实时性更好的CAN总线来管理的,所以BMS和充电桩都是CAN接口的。

CAN总线的浅析CANopen协议

CAN总线的浅析CANopen协议 作者:IC 文章来源:本站原创点击数:288 更新时间:2005-5-23 通过采用高层协议将CAN的应用推向深化,和其他的现场总线相比,CAN只定义了物理层和数据链路层的规范(遵循OSI标准),这种设计和CAN规范定义时的历史条件有关,也可以使CAN能够更广泛地适应不同的应用条件,但必然给用户应用带来一些不便。用户在应用CAN协议时,必须自行定义高层协议。 如何将CAN协议的应用推向更深的层次,同时满足产品的兼容和互操作性?国际上通行的办法是发展基于CAN的高层应用协议,只用在应用层上,不同公司的产品才可能实现互操作,好的应用层协议更可以为用户带来系统性能的飞跃。 在CAN总线协议飞速发展的20年中,很多领域都制定了CAN在该领域应用时所采用的高层协议规范。其中,比较著名的有美国汽车工程师协会(SAE)制定的车内通信规范J1939等。这些协议和规范对CAN的推广起了很大的作用,但总体来说,协议的模块化特性都不太好,一般只能应用于特定的领域。为了能够把CAN推广到更多的领域,欧洲一些公司推出了CAL(应用层CAN)协议,尽管CAL在理论上正确,并在工业上可以投入应用,但每个用户都必须设计一个新的子协议,因为CAL 是一个真正的应用层协议。CAL 可以被看作一个应用CAN 方案的必要理论步骤,但在这一领域它不会被推广。从1993 年起,由Bosch公司领导的一个欧洲机构研究出一个协议原型,由此发展成为CANopen规范。 CANopen是一个基于CAL的子协议,采用面向对象的思想设计,具有很好的模块化特性和很高的适应性,通过扩展可以适用于大量的应用领域。在CANopen规范基本完成之后,Bosch将其移交给CIA组织,由其进行维护与发展。在1995年,CIA发表了完整版的CANopen通信子协议;仅仅用了5年的时间,它已成为全欧洲最重要的嵌入式网络标准。 CANopen 不仅定义了应用层和通信子协议,而且为可编程系统、不同器件、接口、应用子协议定义了大量的行规,遵循这些行规开发出的CANopen设备将能够实现不同公司产品间的互操作。另外,CANopen 协议是免许可证的,任何组织和个人都可以开发支持CANopen协议的设备而不用支付版税,这也是CANopen得到迅猛发展的重要原因之一。CANopen目前已在汽车工业控制系统,公共交通运输系统,医疗设备,海运电子设备和建筑自动化系统中取得了广泛的应用,是将CAN应用推向深化的理想选择。 采用CANopen协议 实现通信 CANopen协议中包含了标准的应用层规范和通信规范,其通信模型如图1所示。在CANopen的应用层,设备间通过相互交换通信对象进行通信。良好的分层和面向对象的设计思想将带给用户一个清晰的通信模型。 CANopen设备模型 一个CANopen设备模块可以被分为3部分,如图2所示。 通信接口和协议软件提供在总线上收发通信对象的服务。不同CANopen设备间的通信都是通过交换通信对象完成的。这一部分直接面向CAN控制器进行操作。 对象字典描述了设备使用的所有的数据类型,通信对象和应用对象。是一个CANopen设备的核心部分。对象字典位于通信程序和应用程序之间,向应用程序提供接口,应用程序对对象字典进行操作就可以实现CANopen通信。理解对象字典的概念是理解CANopen模型的关键。 应用程序由用户编写,包括功能部分和通信部分。通信部分通过对对象字典进行操作实现CANopen通信,而功能部分由用户根据应用要求实现。 CANopen网络的通信和管理都是通过不同的通信对象来完成的,为了能够实现通信,网络管理,紧急情况处理等功能,CANopen规范定义了四类标准的通信对象:

汽车CAN_LIN总线测试流程和测试工具解析

汽车CAN/LIN总线测试流程和测试工具解析 汽车CAN/LIN总线系统测试的关键是测试流程、测试标准和测试工具,掌握专业的总线分析和测试工具的使用技术,开发测试软件并将它们应用到测试过程是对中国汽车厂家和汽车工程师的重大挑战,本文介绍CAN/LIN总线设计、仿真、分析和测试工具。 恒润提供CAN/LIN总线测试方案和在这些工具平台之上的测试软件开发咨询服务,帮助客户进行CAN/LIN总线方面的测试。这些工具包括用于CAN/LIN网络系统和电控单元仿真和测试的工具CANoe;记录、评价CAN总线信号电平的工具CANscope;CAN总线干扰生成工具CANstress;CAN总线数据记录器CANlog。 汽车总线测试流程 概括的讲,汽车总线的测试流程主要包括四个阶段: 1. 制订测试计划。制订测试计划是测试开始前必须的工作,包括了测试需要达到的目标,使用的资源、遵从的标准以及工具等方方面面,是测试顺利实施的指导性文件。主要内容有:目标;总体测试策略;测试的完整性需求;具体规则(如何时停止测试);资源需求;职责(如测试用例设计,执行,检查);测试用例库;测试标准;工具(CANoe, CANscope, CANstress, CANlog);测试软/硬件配置;系统集成计划。 2. 测试用例。测试用例的设计是一项复杂的工作,既需要直觉又需要专门技术。 3. 测试向量。包括测试向量和分解每一个测试用例。 4. 测试过程。经过授权的专业人员系统地执行测试。 测试步骤如下:1).单元测试(White Box, Glass Box, check code correctness;2).集成测试(Bottom Up, Top Down, Big Bang, Sandwich;3).功能测(Black Box,perspecification,component。 测试工具主要包括软件测试环境和和辅助的硬件测试工具两部分。 软件测试环境 在汽车总线网络开发和测试过程中,主要应用的软件测试环境是CANoe。CANoe (CAN Open Environment)是德国VECTOR公司开发的功能强大的开发工具。它能支持总线开发的整个过程-从最初的设计、仿真到最终的分析测试和产品的售后服务。CANoe实现了网络设计、仿真和测试的无缝集成,其开发、测试流程如图1所示。

CAN总线应用

设计(论文)题目:基于CAN总线的楼宇温度检测系统 前言 基于单片机实现传统温度检测技术的特点,提出了基于CAN总线的楼宇温度检测系统方案。该系统方案的硬件平台主要包括温度检测模块和主控平台,并详细介绍了其硬件实现、软件设计思想及流程。实验表明:该系统可实现对楼宇温度的实时检测,并由数码管显示检测结果,对异常情况进行处理,从而实现对楼宇房间温度的有效检测。 在传统的检测技术中,温度检测基本采用单片机系统为主,且大多数都针对工业需要,日常生活中的应用并不多;而通信多基于落后的485总线,不能进行远距离的实时数据传输,更不能与因特网相连,可靠性也不高。因此,本文提出一种基于CAN总线的温度测控技术,该技术适合远距离控制与传输,具有非常高的可靠性。 控制器局域网(Controller Area Network,CAN)是国际上应用最广泛的现场总线之一。CAN总线最早出现在20世纪80年代末的汽车工业中,由德国BOSCH公司最先提出,其主要特性为低成本,且总线利用率高。CAN采用串行通信方式工作,所提供的最高数据传输速率为1Mbit/s,最大通信距离为10km。CAN还具有可靠的错误处理和检错机制,极强的错误检测能力,发送信息遭到破坏后可自动重发;可在高噪声的干扰环境中只用,能够检测出产生的任何错误,当数据的传输距离达到10km时,CAN仍能提供5kbit/s的数据传输速率。 正是基于CAN总线的上述优点,目前CAN总线在众多领域被广泛应用,其应用范围不再局限于原先的汽车行业,而向过程工业、机械工业、纺织工业、数控机床、医疗器械及传感器等领域发展,CAN总线已经形成国际标准,并已被公认为是几种最有前途的现场总线之一。 考虑到CAN总线的高可靠性和远距离传输优点,结合目前温度检测技术的技术瓶颈,即距离短和实时性差的特点,本系统CAN总线应用于传统的温度检测中,也是一种新的尝试。

CAN总线与CANopen协议

CAN总线与CANOpen协议 一CAN总线简介 1.1 引言 在20世纪90年代的汽车研究领域,采用总线分布式控制获得了很大的成功。用户要求汽车的控制系统具有优越的性能以保证汽车的安全性和舒适性,因此越来越多的具有超强计算能力的电子设备加载在汽车上。这就要求不同的电子设备之间能够进行通信和数据交换,以达到信息共享协调工作的目的。德国的博世公司(Bosch)率先将CAN总线(Controller Area Network)应用于汽车电子控制系统,解决了控制系统的部件之间的以及控制系统与测试设备主机的数据交换问题,替代了原有网络(用于车体控制的LIN网络、用于厂内环境控制的MOST 网络及原有车内通信的Flecray网络等)实现的功能。由于其独特的设计思想和高可靠性,在不同总线标准的竞争中获得了广泛的认可,并逐渐成为汽车最基本的控制网络,广泛应用于火车、机器人、楼宇控制、机械制造、数字机床、医疗器械、自动化仪表等领域。 图1.1 早期的ECU(汽车电子控制单元)通信 CAN总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链路层),通常情况下CAN 总线网络都是独立的网络,所以没有网络层。在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用

层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。 图1.2 基于总线(CAN)的ECU通信 1.2 CAN总线的特点 CAN总线并不采用物理地址的模式传送数据,而是每个消息有自己的标识符用来识别总线上的节点。标识符主要有2个功能:消息滤波和消息优先级确定。节点利用标识符确定是否接收总线上的传送的消息当有2个或更多节点需要传送数据时,根据标识符确定消息的优先级。总线访问采用多主原则,所有节点都可以作为主节点占用总线。CAN总线相对于Ethernet具有非破坏性避免总线冲突的特点(CSMA/CA协议,与CSMA/CD协议相似),这种方式可以保证在产生总线冲突的情况下,具有更高优先级的信息没有被延时传输。 其物理传输层详细和高效的定义,使得CAN总线具有其它总线无法达到的优势,注定其在工业现场总线中占有不可动摇的地位,CAN总线通信主要具有如下所示的优势和特点: (1)CAN总线上任意节点均可在任意时刻主动的向其它节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权,在高优先级的节点释放总线后,任意节点都可使用总线; (2)CAN总线传输波特率为5Kbps~1Mbps,在5Kbps的通信波特率下最远传输距离可以达到10Km,即使在1Mbps的波特率下也能传输40m的距离。在1Mbps波特率下节点发送一帧数据最多需要134μs; (3)CAN总线采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。在节点需要发送信息时,节点先监听总线是否空闲,只有节点监听到总线空

汽车CAN总线车身控制系统介绍

汽车CAN总线车身控制系统介绍 一、 CAN总线CAN总线简介 CAN总线是德国Bosch公司为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1Mbps,距离可达10km。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码,使网络内的节点个数在理论上不受限制。由于CAN 总线具有较强的纠错能力,支持差分收发,因而适合高干扰环境,并具有较远的传输距离。因此,CAN协议对于许多领域的分布式测控很有吸引力。 随着集成电路和单片机在汽车上的广泛应用,汽车上电子控制单元越来越多,汽车总线已经成为汽车电气的一个必然的趋势。使用汽车总线不但可以简化线束,更主要的是可以增加各种智能化的功能。如故障检测和语音报警等。 二、汽车上的CAN总线应用 目前汽车上的网络连接方式主要采用2条CAN,一条用于驱动系统的高速CAN,速率达到500kb/s;另一条用于车身系统的低速CAN,速率是100kb/s。 驱动系统CAN主要连接对象是发动机控制器(ECU)、ABS控制器、安全气囊控制器、组合仪表等等,它们的基本特征相同,都是控制与汽车行驶直接相关的系统。 车身系统CAN主要连接和控制的汽车内外部照明、灯光信号、雨刮电机等电器。 目前,驱动系统CAN和车身系统CAN这两条独立的总线之间设计有"网关",以实现在各个CAN之间的资源共享,并将各个数据总线的信息反馈到仪表板上。驾车者只要看看仪表板,就可以知道各个电控装置是否正常工作了。 三、上海同济同捷科技股份有限公司汽车CAN总线车身控制系统 同捷公司的汽车CAN总线车身控制系统通过CAN总线来控制车身电器,如汽车外部照明、灯光信号、雨刮电机、洗涤电机、喇叭、启动电机、后除霜加热器、后备箱锁执行器,油箱盖锁执行器、车窗、后视镜等器件。 整套控制系统可以采用集中与分散相结合的控制方式。由一个主控模块、几个从控制模块以及语音中控模块组成。从控制模块的具体数量由控制量的多少决定。一般来说可以分成前控制模块、后控制模块、玻璃升降器控制模块、电动后视镜控制模块、电动天窗控制模块和电动座椅控制模块。 除前后盒主控模块外,其它几个模块自成系统并通过LIN总线与主控模块通讯以实现各种控制功能,例如语音中控模块可以通过LIN总线从主控模块读取各种故障信息以语音的方式向驾驶员报告,并将锁车设防信息送到主控模块供玻璃升降器和电动天窗读取,在锁车时实现玻璃的自动升降和天窗的自动关闭,还可以将电动后视镜和车窗的集控开关的信号通过LIN总线传递给各控制器以实现相应的控制。 各个模块的具体功率执行器件可以采用继电器或智能功率器件,采用智能功率器件可以减小控制盒体积,且具有过流,短路保护和断线反馈等功能。系统中融入故障检测和语音报警功能以及遥控、防盗功能,并提升了整车控制的智能化、人性化,简化整车线束、提高电气系统的可靠性。 基础框架:整个系统的基础框架由主控模块、车前模块、车后模块共3个部分组成。其控制了大部分车身电器,参见基础框架功能示意图。 四、上海同济同捷科技股份有限公司车身CAN总线系统的优势 (一)简化整车的供电系统,方便电气布线 由于改变了控制方式并使用了电子开关,取消了大部分继电器和熔断丝。整车线束减少20%~40%(发动机线基本保持不变,前围线减少20%~30%,底板线减少30%~40%)。

CANopen协议

一、CANOpen总线结构 广播命令 二、通信类型 CANOpen有三种通信方式: 主/从通信方式 服务器/客户端通信方式 生产商/顾客通信方式 2.1主/从通信方式(NMT) 对某一特点功能而言,一个网络中只有一个主机,其他全为从机。由主机发送请求信号,从机发送相应信号(如果需要) 主机发出命令,从机作出响应,但不回送数据

主机发出命令,从机作出响应,同时回送数据确认 2.2服务器/客户端通信方式(SDO) 这种关系指发生在一个服务器和一个客户端之间,客户端发送命令,服务器执行后,回答客户端 2.3生产商/顾客通信方式(SYNC、Time Stamp、EMCY) 这种通信方式有Push和pull两种模式,网络中在这一个生产厂,0或多个顾客。 2.3.1push模式 厂商发送命令,顾客执行,不需回送数据 2.3.2 pull模式 厂商发送命令,顾客执行,回送证实数据

三PDO传送模式 PDO分为TPDO(发送PDO)与RPDO(接收PDO)两种,PDO的传送模式有两种:同步传送与异步传送。同步传送又分为周期传送与非周期传送 3.1同步传送 由某一个同步应用在网路上周期性的发送同步对象,及发送SYNC帧,该同步应用可以是主机也可以是从机

PDO通信参数中的传输类型说明传送模式与触发方式, TPDO:传送类型同时说明其传送率,以基本传送周期的倍数表示。 传送类型为0时,表示当某事件发生后,收到一个同步对象帧(SYNC)时,立刻进行数据传输。(非周期传送) 传送类型为1时,表示当每收到一次同步对象帧(SYNC)时,传送一次数据。(周期传送) 传送类型为n时,表示当每收到n次同步对象帧(SYNC)时,传送一次数据。(周期传送) RPDO:接收是在收到SYNC信号后,运行接收,独立于传输参数定义的传送率。 传输类型 252 为非周期传输,在接收到同步对象后进行采样但不发送,在接收到请求该数据的远程帧后发送。 3.2异步传送 TPDO: 异步传送与SYNC无关, 传输类型 253-255 为异步传输,定义为此三种类型的 TPDO在接收到远程帧或规定的事件发生后进行传输。 3.3触发模式: 触发方式有三种 3.3.1事件触发方式 对于周期性传送,接收到的SYNC报文达到设定数量,相当于出发事件,引起一次发送。 对于非周期性传送由设备子协议设定的事件触发发送 3.3.2定时器触发 当设定的时间达到后,触发一次发送 3.3.3远程帧触发 在收到其他设备发送的远程帧后,启动一次异步传送 3.4PDO协议 PDO的通信模式相当于厂商/顾客的通信模式,包含如下参数: PDO数量:1~512, 用户类型:厂商/顾客 数据类型:由PDO映射确定 禁止时间:n*100ns 索引20h描述PDO的通信参数,索引21描述PDO的映射参数 3.4.1写PDO 使用厂商/顾客模式的PUSH形式,厂商主动发送PDO 3.4.2读PDO 使用厂商/顾客模式的PULL形式,某一顾客发送远程帧,传送发送PDO,这是可选模式,所有的PDO都可以接收,。这种模式若PDO发送的数据量L大于PDO映射定义的数据量n,取前那个数据,若PDO发送的数据量L小于PDO映射定义的数据量n,若顾客支持Emergency报文,发送Emergency报文,错误代码为8210 四SDO传送模式 SDO以段的形式发送,首先发送的是初始化阶段的段,以加速传送方式传送,包含4个以内字节的数据,索引为22h的对象字典描述SDO通信参数。相应的对象字典的条目通过下式计算:

can总线与canopen协议

竭诚为您提供优质文档/双击可除can总线与canopen协议 篇一:?canopen协议讲解 根据ds301的内容进行介绍 1、can总线 can标准报文 2、canopen应用层协议 canopen协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。同时,canopen完全基于can标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。 一个标准的canopen节点(下图),在数据链路层之上,添加了应用层。该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。 一个标准的canopen节点 canopen应用层协议细化了can总线协议中关于标识符的定义。定义标准报文的11比特标识符中高4比特为功能码,后7比特为节点号,重命名为通讯对象标识符(cob-id)。功能码将所有的报文分为7个优先级,按照优先级从高至低

依次为: 网络命令报文(nmt) 同步报文(sync) 紧急报文(emeRgency) 时间戳(time) 过程数据对象(pdo) 服务数据对象(sdo) 节点状态报文(nmterrcontrol) 7位的节点号则表明canopen网络最多可支持127个节点共存(0号节点为主站)。 下表给出了各报文的cob-id范围。 nmt命令为最高优先级报文,由canopen主站发出,用以更改从节点的运行状态。 sync报文定期由canopen主站发出,所有的同步pdo根据sync报文发送。 emeRgency报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。 time报文由canopen主站发出,用于同步所有从站的内部时钟。 pdo分为4对发送和接收pdo,每一个节点默认拥有4 对发送pdo和接收pdo,用于过程数据的传递。 sdo分为发送sdo和接收sdo,用于读写对象字典。

LIN总线

LIN简介 LIN协会创建于1998年末,最初的发起人为为宝马、Volvo、奥迪、VW、戴姆勒-克莱斯勒、摩托罗拉和 VCT等,五家汽车制造商,一家半导体厂商以及一家软件工具制造商。该协会将主要目的集中在定义一套开放的标准,该标准主要针对车辆中低成本的内部互联网络(LIN, local interconnect networks),这些地方无论是带宽还是复杂性都不必要用到CAN网络。LIN标准包括了传输协议的定义、传输媒质、开发工具间的接口、以及和软件应用程序间的接口。LIN提升了系统结构的灵活性,并且无论从硬件还是软件角度而言,都为网络中的节点提供了相互操作性,并可预见获得更好的EMC(电磁兼容)特性。 LIN补充了当前的车辆内部多重网络,并且为实现车内网络的分级提供了条件,这可以有助于车辆获得更好的性能并降低成本。LIN协议致力于满足分布式系统中快速增长的对软件的复杂性、可实现性、可维护性所提出的要求,它将通过提供一系列高度自动化的工具链来满足这一要求。 LIN(Local Interconnect Network) Bus是一种串行通讯总线,它有效地支持汽车应用中分布式机械电子节点的控制。它的使用范围是带单主机节点和一组从机节点的多点总线,其系统结构如图 1-1所示。 图 1-1 LIN Bus系统结构 LIN Bus系统主要特性有: ■单主机多从机组织(即没有总线仲裁),配置灵活; ■基于普通UART/SCI 接口的低成本硬件实现低成本软件协议; ■带时间同步的多点广播接收,从机节点无需石英或陶瓷谐振器,可以实

现自同步; ■保证信号传输的延迟时间。可选的报文帧长度:2、4 和8 字节; ■数据校验和的安全性和错误检测,自动检测网络中的故障节点; ■使用最小成本的半导体组件(小型贴片,单芯片系统)。 ■速度高达20kbit/s; LIN网络由一个主节点以及一个或多个从节点组成,媒体访问由主节点控制--从节点中不必有仲裁或冲突管理。可以保证最差状态下的信号传输延迟时间。 LIN相对于CAN的成本节省主要是由于采用单线传输、硅片中硬件或软件的低实现成本和无需在从节点中使用石英或陶瓷谐振器。 LIN物理层 总线驱动/接收器的定义遵循ISO 9141单线标准,并带有一些增强性能。总线为单线传输,"与"总线通过终端电阻由电池正极节点(VBAT)提供。总线收发器采用增强型的ISO 9141实现标准。总线可以取两个互补的逻辑值:主控值其电压接近于接地端,代表逻辑值"0",退让值其电压与电池电压接近,代表逻辑值"1"。 总线采用上拉电阻作为终端,主节点的上拉电阻为1kOhm,从节点的上拉电阻为30kOhm。电阻需串联一个二极管以防止由于本地电源泄漏对总线产生的干扰。从节点的终端电容通常值为 CSlave= 220pF,主节点的电容要更高以使整个总线的电容小于从节点的值。 由于采用单线媒质传输,最大的传输波特率被限定在20kbit/s以内。该值为从满足信号同步而不产生冲突的最高值,到为满足电磁兼容性要求而要达到的传输最低值之间的实验中间值。最小的传输波特率为1kbit/s--这有助于避免在实际中产生超时冲突。 LIN协议 通过LIN总线传输的实体为帧。一个报文帧由帧头以及回应(数据)部分组成。在一个激活的LIN 网络中,通讯通常由主节点启动,主节点任务发送包含有同步间隙的报文头,同步字节以及报文标志符(ID)。一个从节点的任务通过接收并过滤标志符被激活,并启动回应报文的传送。回应中包含了1到8个字节的数据以及一个字节的校验码。 传输一帧所花费的总的时间是发送每个字节所用的时间,加上从节点的回应间隙,再加上传输每个字节的间隙时间(inter-byte space)。字节间隙是指发送完前一个字节的停止位后到发送下一个字节的启动位之间的时间。 LIN协议的核心特性是使用进度表(schedule table)。进度表有助于保证总线不出现过载的情况,他们同样是保证信号定期传输的核心组件。在一组LIN节点中只有主节点任务才可以启动通讯保证了行为的确定性。主节点有责任保证与操作模式相关的所有帧都必须分配了足够长的传输时间。 LIN信息是以报文的形式传送的。报文传输是由报文帧的格式形成和控制的。报文帧由主机任务向从机任务传送同步和标识符信息,并将一个从机任务的信息传送到所有其它从机任务。主机任务位于主机节点内部,它负责报文的进度表、发送报文头(HEADER)。从机任务位于所有的(即主机和从机)节点中,其中一个(主机节点或从机节点)发送报文的响应(RESPONSE)。 帧内部间隔(inter-frame space)是从上一帧发送完毕后到下一帧启动发送间的时间间隔。帧由帧间间隔以及接下来的4到11个字节域组成。 一个报文帧如图 1-2所示,是由一个主机节点发送的报文头和一个主机或从机节点发送的响应组成。报文帧的报文头包括一个同步间隔场(SYNCH BREAK

CAN总线总结

CAN总线技术学习(一) CAN总线是控制器局域网络(Controller Area Network,CAN)的简称,是德国BOSCH公司开发,是国际上应用最广泛的现场总线之一,CAN总线已成为汽车计算机和嵌入式工控局域网标准总线。 为了全面了解CAN总线,需要先对其有个整体的概念,这中间还有一个小故事,一个应届毕业生到公司去应聘,负责招聘的经理问他:“你会哪方面的技术?”,毕业生说:“我会CAN总线”,经理疑惑的问:“你会看什么总线?”。那么什么是CAN总线呢? 1、首先CAN总线是一种串行总线,不是并行的,是用来传输电子数据的, 就像串口总线、USB总线、以太网一样; 2、CAN总线是半双工传输模式,发的时候不能收,收的时候不能发; 3、CAN总线使用双线传输,一根定义为CAN_H,一根定义为CAN_L,使用 差分信号传输(差分信号就是通过计算两线压差); 4、CAN总线的波特率最高可达1Mbps,传输距离最远10公里,传输波特 率和传输距离成反比,波特率越高有效传输距离越短; 5、组网时总线两端CAN_H和CAN_L之间要分别连接一个120欧的终端电 阻(起吸收反射波、高频抗干扰的作用)。 那么CAN总线有什么优势呢? 1、CAN总线作为现场总线只有两根传输线,比以太网组网简单,成本也低 很多,在不需要大数据量传输的设备通讯上有相当的优势; 2、CAN总线使用差分信号和屏蔽线传输,抗干扰能力强,数据传输稳定, 因为在某点有干扰时两根信号会被同步干扰,不会影响信号传输的信息; 3、CAN总线波特率最高可达1Mbps,传输速率相对串口快很多,同时总线 协议中加入CRC校验,相对于串口的奇偶校验,数据安全性强; 4、CAN总线使用差分双线传输,易于组网,布线简单; 5、CAN总线通讯不分主从,网络上每个设备都可以主动发送数据; 6、CAN总线协议应用非破坏性逐位仲裁机制,即通过发送帧的帧ID的大 小作为优先级判断网络上数据发送冲突,优先级高的信息发送,优先级 低的数据停止发送,极大提供总线的利用率;

CAN总线系列讲座第三讲CAN控制器和收发器

CAN总线系列讲座第三讲——CAN控制器和收发器 一 CAN控制器 官方定义:CAN控制器用于将欲收发的信息(报文),转换为符合CAN规范的CAN帧,通过CAN收发器,在CAN-bus上交换信息。 举个便于理解的例子:就像您发快递一样,要根据快递公司提供的快递单填写具体的信息(发件人和收件人的地址、联系电话等),快递公司将之标准化(统一的快递单格式,并对每一件快递进行编号),随后才能传递信息(您快递的具体东西,如文件、衣服、手机等)。 (1)CAN控制器分类 CAN控制器芯片分为两类:一类是独立的控制器芯片,如SJA1000;另一类是和微控制器做在一起,如NXP半导体公司的Cortex-M0内核LPC11Cxx系列微控制器、LPC2000系列32位ARM微控制器。CAN控制器的大致分类及相应的产品可参见表1。 表1 CAN控制器分类及相应产品型号 (2)CAN控制器的工作原理 为了便于读者理解CAN控制器的工作原理,下面给出了一个SJA1000 CAN控制器的经过简化的结构框图如图1所示。 图1 CAN控制器结构示意 接口管理逻辑 接口管理逻辑如图1所示。接口管理逻辑用于连接外部主控制器,解释来自主控制器的命令,控制CAN控制器寄存器的寻址,并向主控制器提供中断信息和状态信息。

CAN核心模块 CAN核心模块如图1所示。收到一个报文时,CAN核心模块根据CAN规范将串行位流转换成用于接收的并行数据,发送一个报文时则相反。 发送缓冲器 发送缓冲器如图1所示。发送缓冲器用于存储一个完整的报文,当CAN控制器发送初始化时,接口管理逻辑会使CAN核心模块从发送缓冲器读CAN报文。 验收滤波器 验收滤波器如图1所示,验收滤波器可以根据用户的编程设置,过滤掉无须接收的报文。 接收FIFO 接收FIFO如图1所示。接收FIFO是验收滤波器和主控制器之间的接口,用于存储从CAN 总线上接收的所有报文。 工作模式 CAN控制器可以有两种工作模式(BasicCAN和PeliCAN)。BasicCAN仅支持标准模式,PeliCAN支持CAN2.0B的标准模式和扩展模式。 二 CAN收发器 官方定义:CAN收发器是CAN控制器和物理总线之间的接口,将CAN控制器的逻辑电平转换为CAN总线的差分电平,在两条有差分电压的总线电缆上传输数据。 举个便于理解的例子:这类似于快递员,负责收发快递的工作。 目前市面上常见CAN收发器的分类及相应产品参见表2。 表2 CAN收发器分类及相应产品 三 CAN-bus接口电路保护器件 在汽车电子中,CAN-bus系统往往用于对安全至关重要的功能,比如引擎控制、ABS系统以及气囊等,如果受到干扰导致工作失常将出现严重事故;此外,在不受到干扰的的同时,CAN-bus系统也不能干扰其它电子元件;所以CAN-bus系统必须满足电磁干扰(EMI)和静电放电(ESD)标准的严格要求。此外,在许多场合CAN-bus接口有可能会遭到雷电、大电流浪涌的冲击(例如许多户外安装的设备),所以还需要使用保护器件以防浪涌。

CAN总线原理及应用

CAN总线原理及应用 摘要介绍了CAN总线的特点、工作原理和应用领域,并且对每个应用领域进行了描述和举例讲解。 关键字 CAN总线,汽车,现场控制系统,通信 1 引言 控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议由德国的Robert Bosch公司开发,用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。 CAN总线是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电子干扰性,并且能够检测出产生的任何错误。CAN总线可以应用于汽车电控制系统、电梯控制系统、安全监测系统、医疗仪器、纺织机械、船舶运输等领域。 2 CAN总线的特点 ●具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点; ●采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作; ●具有优先权和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-bus 上,形成多主机局部网络; ●可根据报文的ID决定接收或屏蔽该报文; ●可靠的错误处理和检错机制; ●发送的信息遭到破坏后,可自动重发; ●节点在错误严重的情况下具有自动退出总线的功能; ●报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。 3 CAN总线的工作原理 CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。 当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。 当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。

CANOPEN协议详解.pdf

一、CAN-BUS 介绍 1.CAN 的基本概念、特点 CAN 是Controller Area Network 的缩写(以下称为 CAN ),是ISO*1国际标准化 的串行通信协议。CAN 协议如表 3 所示涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。 CAN 协议中关于ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。 . ISO/OSI 基本参照模型ISO/OSI 基本参照模型 各层定义的主要项目软件 控制 7 层:应用层 由实际应用程序提供可利用的服务。6 层:表示层 进行数据表现形式的转换。如:文字设定、数据压缩、加密等的控制5 层:会话层 为建立会话式的通信,控制数据正确地接收和发送。4 层:传输层控制数据传输的顺序、传送错误的恢复等,保证通信的品质。 如:错误修正、再传输控制。 3 层:网络层进行数据传送的路由选择或中继。 如:单元间的数据交换、地址管理。 硬件 控制 2 层:数据链路层 将物理层收到的信号(位序列)组成有意义的数据,提供传输错误控 制等数据传输控制流程。如:访问的方法、数据的形式。 通信方式、连接控制方式、同步方式、检错方式。应答方式、通信方式、包(帧)的构成。位的调制方式(包括位时序条件)。 1 层:物理层 规定了通信时使用的电缆、连接器等的媒体、电气信号规格等,以实 现设备间的信号传送。 如:信号电平、收发器、电缆、连接器等的形态。【注】*1 OSI :Open Systems Interconnection (开放式系统间互联)

CAN的特点 CAN 协议具有以下特点。 (1) 多主控制 在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权。 (2) 消息的发送 在CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连 的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利 的单元则立刻停止发送而进行接收工作。 (3) 系统的柔软性 与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在 总线上的其它单元的软硬件及应用层都不需要改变。 (4) 通信速度 根据整个网络的规模,可设定适合的通信速度。 在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度 与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以 有不同的通信速度。 (5) 远程数据请求 可通过发送“遥控帧”请求其他单元发送数据。 (6) 错误检测功能·错误通知功能·错误恢复功能 所有的单元都可以检测错误(错误检测功能)。 检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。 正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单 元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。 (7) 故障封闭 CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的 数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。 (8) 连接 CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。 但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连 接的单元数增加;提高通信速度,则可连接的单元数减少。 2. CAN协议及标准规格

相关主题
文本预览
相关文档 最新文档