控制器局域网-CAN总线.

Slides:



Advertisements
Similar presentations
NAT与ICMP交互.
Advertisements

连接器技术发展趋势及因应策略 生产&营销副总经理 王跃轩 贵州航天电器股份有限公司.
CAN总线协议 及CAN在工业控制中的应用
第三章 数据链路层 任务驱动 问题探究 习题讲解 实验要求.
§3.4 空间直线的方程.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
淄博信息工程学校 ZIBOIT&ENGINEERING VOCATONAL SHCOOL 03 交换机干道技术 计算机网络技术专业.
控制器局域网-CAN总线.
克劳斯-雷克曼 教授 德国 凯勒数控教学仿真软件有限公司
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第10章 FPGA硬件设计 <EDA技术与应用> 课程讲义
汽车电子学 ——CAN-BUS多路数据传输.
施耐德电气(中国)投资有限公司 运动控制部技术经理 李幼涵 高级工程师
Hadoop I/O By ShiChaojie.
现场总线控制系统.
The CAN bus 李强.
CAN-bus拓扑结构和传输介质 Version 1.20版 2006年5月.
存储系统.
管理信息结构SMI.
制定一个主/从通讯协议 Version 1.10版 2006年5月.
CAN总线及其应用.
矢量距离路由.
2 动力CAN总线系统故障诊断与检修.
网络常用常用命令 课件制作人:谢希仁.
实用组网技术 第一章 网络基础知识.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
数 控 技 术 华中科技大学机械科学与工程学院.
Windows网络操作系统管理 ——Windows Server 2008 R2.
逆向工程-汇编语言
CPU结构和功能.
工业机器人技术基础及应用 主讲人:顾老师
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
程序设计工具实习 Software Program Tool
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
微机系统的组成.
汽车单片机应用技术 学习情景4: 车载总线及网络系统的单片机控制 主讲:向楠.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
引 言 虽然CAN-BUS系统的通信方式对于汽车网络维修没有直接的关系,但是对于一个机电维修工,了解总线传输技术,有助于正确认识汽车网络的构成和工作方式,正确利用OBDⅡ接口,正确选用故障诊断设备和故障诊断方式。 CAN-BUS工作的核心内容就是怎样通过二根(或若干根)通信线,传输远远超过二个的信息量(数据),本章讲述CAN-BUS局域网的控制单元之间是如何进行数据(信息)传输.
VisComposer 2019/4/17.
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
(Random Access Memory)
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
第4章 Excel电子表格制作软件 4.4 函数(一).
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
IT 安全 第 9节 通信和网络控制.
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
数据报分片.
无线网络特性展现 张琦.
HSC高速输出例程 HORNER APG.
计算机绘图 AutoCAD2016.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
WSAAsyncSelect 模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
入侵检测技术 大连理工大学软件学院 毕玲.
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
9.6.2 互补对称放大电路 1. 无输出变压器(OTL)的互补对称放大电路 +UCC
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

控制器局域网-CAN总线

参考文献 1.邬宽明编著,CAN总线原理和应用系统设计,北航出版社,2001。

概述 控制器局域网CAN(Controller Area Network)为国际上应用最广泛的现场总线之一。 来源于80年代初期德国Bosch公司为汽车监测、控制系统而设计开发的一种串行数据通信总线。CAN被设计作为汽车环境中的微控制器通讯网,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络(如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置)。 据资料介绍,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都已开始采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。 1993年,CAN已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。

应用行业 汽车行业 过程工业、机械工业 纺织机械、农用机械 机器人、数控机床 医疗器械、传感器

CAN硬件 丰富廉价的CAN总线器件 INTEL、PHILIPS、MOTOROLA、SIEMENS、NEC及SILIONI等公司推出的各种系列CAN通信控制器和带有CAN总线接口的微控制器、I/O器件。 美国TI公司推出了集成有CAN控制器的系列DSP芯片TMS320F2×××(243、2401、2407、2812)。 多种ARM嵌入式芯片中都带有CAN控制器。 集成了CAN标准的微控制器系统扩展及多机通信接口推广了CAN技术的应用领域,提升了CAN技术的应用层次。

CAN总线的信号编码 CAN总线中的数值为两种互补逻辑状态之一:“显性”或“隐性”。“显性”(Daminant)数值表示逻辑“0”,而“隐性”(Recessive)数值表示逻辑“1”。 在“隐性”(Recessive)状态下,VCAN-H和VCAN-L被固定于平均电压电平,Vdiff近似为0。在总线空闲或“隐性”位期间,发送“隐性”状态。“显性”(Daminant)状态以大于最小值的差分电压表示。当在总线上同时发送显性和隐性位时,其结果是总线数值为显性(即“0”与“1”的结果为“0”)。它正是实现按位仲裁的基础。

CAN总线主要特点 结构简单 两根线与外部相连 内部含有错误探测和管理模块

特点 (1)借助接收滤波的多地址帧传送 CAN协议废除了传统的站地址编码而采用对通信数据报文进行编码。报文标识码可由11位或29位二进制数组成,因此可定义211或229个不同报文。不同的节点可接收相同的数据,这使CAN组成的通信网在点对点、点对多点及广播方式之间没有区别。 (2)通信方式灵活 多主站依据优先权进行总线访问,网络上任一节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从。

特点——仲裁 (3) 采用非破坏性的基于优先权的位仲裁技术。 •以报文为单位进行数据传递、广播给网络中所有节点。 •每个报文的起始部分有一个唯一的11位或29位的标识符ID。 •在总线访问期间,标识符定义了一个静态的(固定的)报文优先权。 •标识符值越高的报文优先级越低,反之越高。 •11位标识符就意味着有211=2048种数据帧,也就有2048种优先权。 在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一“隐性”电平而监视到的是一“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。 当两个节点同时向总线上发送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,节省了总线仲裁冲突时间,在网络负载很重的情况下也不会出现网络瘫痪。

特点—CAN总线的收发电路与仲裁 收发器框图 网络布线方式

特点——仲裁 CAN 总线物理层通常是双绞线,当逻辑“1 ”被写进总线里,两条线的电平是2.5V(输出管都截止) 并被定义为“隐性”位;当逻辑“0”被写进总线里, CANH线被上拉到为5V而CANL线被下拉到地(输出管都导通) ,此时定义为“显形”位。但是如果显形位和隐性位都被不同的节点同时写进总线里,总线呈“显形”位状态,即“显性”位覆盖了“隐性”位。

特点 (4)CAN上的节点数理论上可以为211=2048或229,采用扩展帧格式,其个数几乎不受限制。但为了保证信号的稳定、有效以及实时处理能力,实际节点数现在只能达到110个。 (5)网络上的信息可以分成不同的优先级,可以满足不同的实时要求。 (6)CAN采用短帧结构。每一个报文的数据段为8个字节,通信时间短,保证了通讯的实时性;受干扰概率低,具有极好的检错效果。 (7)CAN总线采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。 (8)直接通讯距离可达10km(速率5kb/s以下),最高通讯速率可达1Mb/s(此时距离最长为40m)。

特点 (9)通信介质可以是双绞线、同轴电缆或光导纤维。 (10) CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。CAN总线的诸多优势,促使其在各个领域得到日益广泛的应用,成为公认的最有前途的现场总线之一。

CAN通信报文的标准化 1991年9月Philips Semiconductors制定并发布了CAN技术规范(Version2.0)。 2.0B:标准的和扩展的两种报文格式 1993年11月ISO正式颁布了高速通信控制器局部网(CAN)国际标准(ISO11898。 CAN通信报文的标准化:1991年9月Philips Semiconductors制定并发布了CAN技术规范(Version2.0)。

通信距离

CAN的分层结构及功能

帧类型 数据帧(Data Frame):将数据从发送器传输到接收器。 远程帧(Remote Frame):请求发送具有同一标识符的数据帧。 错误帧(Error Frame):任何单元检测到总线错误就发出错误帧。 过载帧(Overload Frame):为相邻数据帧或远程帧之间提供附加的延时。

帧格式 扩展帧(含有29位标识符) 标准帧(含有11位标识符) 一帧应由其SOF (Start of Frame)场开始逐个位场进行发送。 在一个场内首先发送最高位。 MAC数据帧包含七个不同位场 帧起始 仲裁场 控制场 数据场 CRC场 ACK场 帧结束

数据帧-标准信息帧格式 RTR(Remote Transmission Request 远程发送请求位):在数据帧中必须是显性位,在远程帧中是隐性位。 IDE(Identifier Extension Bit 标识符扩展位):标准格式中的为显性、扩展格式中的为隐性。 r0:保留位 DLC(数据长度代码):4位。允许的数据字节数0~8。

数据帧-扩展信息帧格式 SRR(Substitute Remote Request Bit 替代远程请求位):隐性位。 IDE(Identifier Extension Bit 标识符扩展位):标准格式中的为显性、扩展格式中的为隐性。 r0:保留位 r1:保留位 DLC(数据长度代码):4位。允许的数据字节数0~8。

数据帧说明 只有当总线为空闲状态时,才允许节点开始发送、所有节点必须同步于首先开始发送节点帧起始引起的上升沿。 当节点接收到一个报文,首先与节点验收滤波器所规定的标识符相比较。如果标识符通过了验收过滤器,它就会被节点接收并产生CPU 中断。 CAN2.0B对报文滤波特别加以描述,报文滤波以整个标识符为基准,屏蔽寄存器可用于选择一组标识符,以便映像能够至接收缓冲器中,屏蔽寄存器每一位都需是可编程的。它的长度可以是整个标识符,也可以仅是其中一部分。

数据帧说明 发送节点的ACK(应答)场中,送出两个“隐位”,在ACK间隙内,所有接收到匹配CRC序列的节点,以“显位”改写发送器的“隐位”送出一个应答,告诉发送器报文已经被正确接收。如果发送节点没有得到应答,它会继续重新发送报文直到得到应答为止。

远程帧格式 远程帧发送者:作为数据接收器的节点 远程帧发送目的:请求发送节点重发与该请求帧标识符相同的报文(往往因为原发报文接收出错)。 远程帧格式特点: 远程帧的RTR位是隐性(同数据帧相反) 远程帧不存在数据场 远程帧中数据长度码的值(0~8)要与对应数据帧的数据字节数相同

出错帧格式 由两个不同场组成:第一个场由来自各站的错误标志叠加得到;第二个场是出错界定符。 因为总线上的任一个节点检测到总线出错时,都向总线上发出错帧,因而错误标志场是由不同节点发出的错误标志叠加而成的。 错误标志有两种: “激活错误”标志:6个连续的0位(显位)组成。 “认可错误”标志:6个连续的1位(隐位)组成。

超载帧格式 包括两个位场:超载标志场:6个0位(显位)超载界定符:8个1位(隐位) 其结构与出错帧类似。

帧间空间(InterframeSpace) 数据帧和远程帧与前面的帧(任何帧)以帧间空间位场隔开;过载帧和错误帧前面不存在帧间空间,并且多个过载帧也不用帧间空间分隔。

CAN节点的报文滤波 CAN控制器监听并接收总线上的所有报文,只有通过CAN控制器的报文筛选器筛选的报文才能进入CAN的报文接收缓冲区,被该节点所接收并传送给应用程序。程序员通过对报文筛选器的预定义,决定某个节点接收那些特定的报文。例如:SJA1000CAN网络控制器的滤波 CAN报文 接收码寄存器(ACR0~ACR3):规定了拟接收报文中参与筛选比较的各位(主要是标识符)必须匹配的值 接收屏蔽寄存器(AMR0~AMR3):将ACR中的某些位屏蔽为“无关位”,对应“无关位”的报文的位不参加筛选比较。 报文接收筛选器 报文接收缓冲区

CAN节点的总线仲裁与监听机制 CAN控制器发送数据时,按字节的高位到低位的顺序串行发送(MSB在最前,LSB在最后); 发送的同时进行接收,同时将收到的数据与发送的数据逐位进行比较。在总线仲裁阶段,若发送的位是“1”,而接收到的是“0”(总线完成线与功能),则该节点停止发送,退出总线,即仲裁失败。因而,标识符二进制数值低的报文具有更高的优先级。仲裁丢失的节点等到总线空闲后,再重新尝试报文发送。 总线仲裁阶段之后,发送节点仍将发送数据与接收数据逐位进行比较,称为“位校验”。若接收数据与发送数据不一致,则指出“位出错”,节点发送出错帧。 除发送节点和脱离总线的节点外,其他节点均为接收节点。接收节点不停地接收总线上的传输报文,由此不停地监测总线传输的错误状态。每个监听到总线上有传输错误的节点,都会发激活或认可错误帧,故总线上的错误帧是由多个节点发送的错误标志叠加而成的。

错误类型 为了获得尽可能高的数据传输安全性,在每个CAN节点中均设有错误检测、标定和自检的强有力措施。 CAN协议定义了5种错误类型 (1)位出错 (2)填充位出错 (3)CRC出错 (4)帧格式出错 (5)应答出错

错误界定 CAN总线上的每一个节点设立错误计数器 发送错误计数器TEC:寄存帧发送期间的错误数目。 错误计数器 接收错误计数器REC:寄存帧接收期间的错误数目。 若帧被正确送出或接收,计数值减少。在出现错误的情况下,计数值增加。CAN节点的三种状态由这两个计数器的计数值决定。 “错误激活(Error Active)”节点:(REC、TEC<128) 可正常参与总线通信,并在检测到错误时,发出一个活动错误标志(6个连续显性位)。 “错误认可(Error Passive)”节点:(REC或TEC>128) 可参与总线通信,并在检测到错误时,发出一个认可错误标志(6个连续隐性位)。发送后,“错误认可”节点在开始进一步发送前将等待一段附加时间。 “总线脱离(Bus Off)”节点:(TEC>255) 不允许对总线产生任何影响。

CAN总线节点状态转换图

CAN的高层协议 CAN的高层协议(也可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。 已定义的CAN高层协议 CAL协议、 CANOpen协议( CiA ) DeviceNet协议(ODVA ) SDS 协议(Honeywell ) CANKingdom协议(Kvaser)