Download presentation
Presentation is loading. Please wait.
1
控制器局域网-CAN总线
2
参考文献 1.邬宽明编著,CAN总线原理和应用系统设计,北航出版社,2001。
3
概述 控制器局域网CAN(Controller Area Network)为国际上应用最广泛的现场总线之一。
来源于80年代初期德国Bosch公司为汽车监测、控制系统而设计开发的一种串行数据通信总线。CAN被设计作为汽车环境中的微控制器通讯网,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络(如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置)。 据资料介绍,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都已开始采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。 1993年,CAN已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。
4
应用行业 汽车行业 过程工业、机械工业 纺织机械、农用机械 机器人、数控机床 医疗器械、传感器
5
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技术的应用层次。
6
CAN总线的信号编码 CAN总线中的数值为两种互补逻辑状态之一:“显性”或“隐性”。“显性”(Daminant)数值表示逻辑“0”,而“隐性”(Recessive)数值表示逻辑“1”。 在“隐性”(Recessive)状态下,VCAN-H和VCAN-L被固定于平均电压电平,Vdiff近似为0。在总线空闲或“隐性”位期间,发送“隐性”状态。“显性”(Daminant)状态以大于最小值的差分电压表示。当在总线上同时发送显性和隐性位时,其结果是总线数值为显性(即“0”与“1”的结果为“0”)。它正是实现按位仲裁的基础。
7
CAN总线主要特点 结构简单 两根线与外部相连 内部含有错误探测和管理模块
8
特点 (1)借助接收滤波的多地址帧传送 CAN协议废除了传统的站地址编码而采用对通信数据报文进行编码。报文标识码可由11位或29位二进制数组成,因此可定义211或229个不同报文。不同的节点可接收相同的数据,这使CAN组成的通信网在点对点、点对多点及广播方式之间没有区别。 (2)通信方式灵活 多主站依据优先权进行总线访问,网络上任一节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从。
9
特点——仲裁 (3) 采用非破坏性的基于优先权的位仲裁技术。 •以报文为单位进行数据传递、广播给网络中所有节点。
•每个报文的起始部分有一个唯一的11位或29位的标识符ID。 •在总线访问期间,标识符定义了一个静态的(固定的)报文优先权。 •标识符值越高的报文优先级越低,反之越高。 •11位标识符就意味着有211=2048种数据帧,也就有2048种优先权。 在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一“隐性”电平而监视到的是一“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。 当两个节点同时向总线上发送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,节省了总线仲裁冲突时间,在网络负载很重的情况下也不会出现网络瘫痪。
10
特点—CAN总线的收发电路与仲裁 收发器框图 网络布线方式
11
特点——仲裁 CAN 总线物理层通常是双绞线,当逻辑“1 ”被写进总线里,两条线的电平是2.5V(输出管都截止) 并被定义为“隐性”位;当逻辑“0”被写进总线里, CANH线被上拉到为5V而CANL线被下拉到地(输出管都导通) ,此时定义为“显形”位。但是如果显形位和隐性位都被不同的节点同时写进总线里,总线呈“显形”位状态,即“显性”位覆盖了“隐性”位。
12
特点 (4)CAN上的节点数理论上可以为211=2048或229,采用扩展帧格式,其个数几乎不受限制。但为了保证信号的稳定、有效以及实时处理能力,实际节点数现在只能达到110个。 (5)网络上的信息可以分成不同的优先级,可以满足不同的实时要求。 (6)CAN采用短帧结构。每一个报文的数据段为8个字节,通信时间短,保证了通讯的实时性;受干扰概率低,具有极好的检错效果。 (7)CAN总线采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。 (8)直接通讯距离可达10km(速率5kb/s以下),最高通讯速率可达1Mb/s(此时距离最长为40m)。
13
特点 (9)通信介质可以是双绞线、同轴电缆或光导纤维。
(10) CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。CAN总线的诸多优势,促使其在各个领域得到日益广泛的应用,成为公认的最有前途的现场总线之一。
14
CAN通信报文的标准化 1991年9月Philips Semiconductors制定并发布了CAN技术规范(Version2.0)。
2.0B:标准的和扩展的两种报文格式 1993年11月ISO正式颁布了高速通信控制器局部网(CAN)国际标准(ISO11898。 CAN通信报文的标准化:1991年9月Philips Semiconductors制定并发布了CAN技术规范(Version2.0)。
15
通信距离
16
CAN的分层结构及功能
17
帧类型 数据帧(Data Frame):将数据从发送器传输到接收器。 远程帧(Remote Frame):请求发送具有同一标识符的数据帧。
错误帧(Error Frame):任何单元检测到总线错误就发出错误帧。 过载帧(Overload Frame):为相邻数据帧或远程帧之间提供附加的延时。
18
帧格式 扩展帧(含有29位标识符) 标准帧(含有11位标识符) 一帧应由其SOF (Start of Frame)场开始逐个位场进行发送。
在一个场内首先发送最高位。 MAC数据帧包含七个不同位场 帧起始 仲裁场 控制场 数据场 CRC场 ACK场 帧结束
19
数据帧-标准信息帧格式 RTR(Remote Transmission Request 远程发送请求位):在数据帧中必须是显性位,在远程帧中是隐性位。 IDE(Identifier Extension Bit 标识符扩展位):标准格式中的为显性、扩展格式中的为隐性。 r0:保留位 DLC(数据长度代码):4位。允许的数据字节数0~8。
20
数据帧-扩展信息帧格式 SRR(Substitute Remote Request Bit 替代远程请求位):隐性位。
IDE(Identifier Extension Bit 标识符扩展位):标准格式中的为显性、扩展格式中的为隐性。 r0:保留位 r1:保留位 DLC(数据长度代码):4位。允许的数据字节数0~8。
21
数据帧说明 只有当总线为空闲状态时,才允许节点开始发送、所有节点必须同步于首先开始发送节点帧起始引起的上升沿。
当节点接收到一个报文,首先与节点验收滤波器所规定的标识符相比较。如果标识符通过了验收过滤器,它就会被节点接收并产生CPU 中断。 CAN2.0B对报文滤波特别加以描述,报文滤波以整个标识符为基准,屏蔽寄存器可用于选择一组标识符,以便映像能够至接收缓冲器中,屏蔽寄存器每一位都需是可编程的。它的长度可以是整个标识符,也可以仅是其中一部分。
22
数据帧说明 发送节点的ACK(应答)场中,送出两个“隐位”,在ACK间隙内,所有接收到匹配CRC序列的节点,以“显位”改写发送器的“隐位”送出一个应答,告诉发送器报文已经被正确接收。如果发送节点没有得到应答,它会继续重新发送报文直到得到应答为止。
23
远程帧格式 远程帧发送者:作为数据接收器的节点 远程帧发送目的:请求发送节点重发与该请求帧标识符相同的报文(往往因为原发报文接收出错)。
远程帧格式特点: 远程帧的RTR位是隐性(同数据帧相反) 远程帧不存在数据场 远程帧中数据长度码的值(0~8)要与对应数据帧的数据字节数相同
24
出错帧格式 由两个不同场组成:第一个场由来自各站的错误标志叠加得到;第二个场是出错界定符。
因为总线上的任一个节点检测到总线出错时,都向总线上发出错帧,因而错误标志场是由不同节点发出的错误标志叠加而成的。 错误标志有两种: “激活错误”标志:6个连续的0位(显位)组成。 “认可错误”标志:6个连续的1位(隐位)组成。
25
超载帧格式 包括两个位场:超载标志场:6个0位(显位)超载界定符:8个1位(隐位) 其结构与出错帧类似。
26
帧间空间(InterframeSpace)
数据帧和远程帧与前面的帧(任何帧)以帧间空间位场隔开;过载帧和错误帧前面不存在帧间空间,并且多个过载帧也不用帧间空间分隔。
27
CAN节点的报文滤波 CAN控制器监听并接收总线上的所有报文,只有通过CAN控制器的报文筛选器筛选的报文才能进入CAN的报文接收缓冲区,被该节点所接收并传送给应用程序。程序员通过对报文筛选器的预定义,决定某个节点接收那些特定的报文。例如:SJA1000CAN网络控制器的滤波 CAN报文 接收码寄存器(ACR0~ACR3):规定了拟接收报文中参与筛选比较的各位(主要是标识符)必须匹配的值 接收屏蔽寄存器(AMR0~AMR3):将ACR中的某些位屏蔽为“无关位”,对应“无关位”的报文的位不参加筛选比较。 报文接收筛选器 报文接收缓冲区
28
CAN节点的总线仲裁与监听机制 CAN控制器发送数据时,按字节的高位到低位的顺序串行发送(MSB在最前,LSB在最后); 发送的同时进行接收,同时将收到的数据与发送的数据逐位进行比较。在总线仲裁阶段,若发送的位是“1”,而接收到的是“0”(总线完成线与功能),则该节点停止发送,退出总线,即仲裁失败。因而,标识符二进制数值低的报文具有更高的优先级。仲裁丢失的节点等到总线空闲后,再重新尝试报文发送。 总线仲裁阶段之后,发送节点仍将发送数据与接收数据逐位进行比较,称为“位校验”。若接收数据与发送数据不一致,则指出“位出错”,节点发送出错帧。 除发送节点和脱离总线的节点外,其他节点均为接收节点。接收节点不停地接收总线上的传输报文,由此不停地监测总线传输的错误状态。每个监听到总线上有传输错误的节点,都会发激活或认可错误帧,故总线上的错误帧是由多个节点发送的错误标志叠加而成的。
29
错误类型 为了获得尽可能高的数据传输安全性,在每个CAN节点中均设有错误检测、标定和自检的强有力措施。 CAN协议定义了5种错误类型
(1)位出错 (2)填充位出错 (3)CRC出错 (4)帧格式出错 (5)应答出错
30
错误界定 CAN总线上的每一个节点设立错误计数器 发送错误计数器TEC:寄存帧发送期间的错误数目。 错误计数器
接收错误计数器REC:寄存帧接收期间的错误数目。 若帧被正确送出或接收,计数值减少。在出现错误的情况下,计数值增加。CAN节点的三种状态由这两个计数器的计数值决定。 “错误激活(Error Active)”节点:(REC、TEC<128) 可正常参与总线通信,并在检测到错误时,发出一个活动错误标志(6个连续显性位)。 “错误认可(Error Passive)”节点:(REC或TEC>128) 可参与总线通信,并在检测到错误时,发出一个认可错误标志(6个连续隐性位)。发送后,“错误认可”节点在开始进一步发送前将等待一段附加时间。 “总线脱离(Bus Off)”节点:(TEC>255) 不允许对总线产生任何影响。
31
CAN总线节点状态转换图
32
CAN的高层协议 CAN的高层协议(也可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。 已定义的CAN高层协议 CAL协议、 CANOpen协议( CiA ) DeviceNet协议(ODVA ) SDS 协议(Honeywell ) CANKingdom协议(Kvaser)
Similar presentations