CAN总线网络

来自:王荣专修汽车电路
3年前
已收藏
收藏
阅读数
102
回复数
0

1.CAN总线定义CAN( Controller Area Network,控制器局域网络)是德国博世公司在1985年时为了解决汽车上众多测试仪器与控制单元之间的数据传输而开发的一种支持分布式控制的串行数据通信总线。国际化标准组织(ISO)在1993年提出了CAN总线的国际标准—ISO 11898,使得CAN总线的应用更标准化和规范化。目前,CAN总线已经是国际上应用最广泛的网络总线之一,它的数据信息传输速率最大为1 Mbit/s,属于中速网络,通信距离(无须中继)最远可达10km,最有可能成为世界标准的汽车局域网。 2.CAN总线网络特点CAN总线采用双绞线作为传输介质,媒体访问方式为位仲裁,是一种多主总线。CAN总线为事件触发的实时通信网络,其总线仲裁方式采用基于优先级的载波侦听多路访问冲突检测( CSMA/CD)法。CAN总线网络具有以下特点(1)多主控制多主控制是指在总线空闲时,所有的单元都可开始发送消最先访问总线的单元可获得发送权( CSMA/CA方式);多个单元同时开始发送时发送高优先级ID(标识符)消息的单元可获得发送权(2)消息的发送在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据DD决定优先级。ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作(3)系统的柔软性与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其他单元的软硬件及应用层都不需要改变。


(4)高速度和远距离当通信距离小于40m时,CAN总线的传输速率可以达到1Mbit/s。通信速度与其通信距离成反比,当其通信距离达到10km时,其传输速率仍可以达到约5 kbit/s。 (5)远程数据请求可通过发送“遥控帧”请求其他单元发送数据。 (6)错误检测功能、错误通知功能、错误恢复功能错误检测功能是指所有的单元都可以检测错误;错误通知功能是指正在发送消息的单元一旦检测出错误,会强制结束当前的发送,并立即同时通知其他所有单元;错误恢复功能是指强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止。 (7)故障封闭CAN总线可以判断出错误的类型是总线上暂时的数据错误
(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。 根据此功能,当总线上发生持续的数据错误时,可将引起此故障的单元从总线上隔离出去。 (8)连接CAN总线可以同时连接多个单元,可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低传输速率,可连接的单元数增加;提高传输速率,则可连接的单元数减少。 总之,CAN总线具有实时性强、可靠性高、传输速率快、结构简单、互操作性好、总线协议具有完善的错误处理机制、灵活性髙和价格低廉等特点,在车载网络上已经得到广泛的应用。 3.CAN总线网络的分层结构CAN协议包含了ISO规定的OSI( Open System Interconnection)7层参考模型中的物理层、数据链路层和传输层。CAN协议与OSI7层参考模型的比较以及对应3层的总线功能如图4-4所示。
7层参考模型OSI是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,它是一个7层的、抽象的模型,不仅包括一系列抽象的术语或概念,也包括具体的协议。
(1)物理层 物理层的主要功能是利用传输介质为数据链路层提供物理连接实现相邻节点之间比特流的透明传输,尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么。 (2)数据链路层 数据链路层负责建立和管理节点间的链路,其主要功能是通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。数据链路层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制:MAC子层也受一个名为“故障界定”的管理实体监管,此故障界定为自检测机制,以便把永久故障和短时扰动区别开来。LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。数据链路层的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。 (3)网络层 网络层是OSI参考模型中最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。其主要任务是通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。具体来说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。一般数据链路层解决同网络内节点之间的通信,而网络层主要解决不同子网间的通信。例如在广域网之间通信时,必然会遇到路由(即两节点间可能有多条路径)选择问题。
(4)传输层 OSI下3层的主要任务是数据通信,上3层的任务是数据处理。 传输层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。传输层的主要功能有传输连接管路、处理传输差错和监控服务质量,其中传输连接管理是指提供建立、维护和拆除传输连接的功能,传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务;处理传输差错是指提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重发。 (5)会话层 会话层是用户应用程序和网络之间的接口,具体功能有会话管理、会话流量控制、寻址、出错控制,其中会话管理是指允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换,如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短;会话流量控制是指提供会话流量控制和交叉会话功能;寻址是指使用远程地址建立会话连接;出错控制是负责纠正错误。
(6)表示层 表示层是对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是处理用户信息的表示问题,如编码、数据格式转换和加密解密等。 (7)应用层 应用层是计算机用户以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。 此外,该层还负责协调各个应用程序间的工作由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。 4.CAN总线网络帧类型CAN总线网络传输的帧主要包括数据帧、远程帧、错误帧和过载帧。 (1)数据帧 数据帧用于传输数据,主要由帧起始、仲裁域、控制域、数据域、CRC校验、应答域和帧结束构成,如图4-5所示。
(2)远程帧 远程帧主要用于接收单元向发送单元请求主动发送数据,包含了数据帧中除了数据段以外的部分,其实质是没有数据段的数据帧,其结构如图4-6所示。
(3)错误帧 错误帧用于在接收和发送消息时检测岀错误并向网络节点通知错误发出的帧,主要包含错误标志和错误界定符,结构如图4-7所示。 (4)过载帧 当总线数据传输量过大,接收节点对接收的数据无法及时处理
时,会在相邻的两个数据帧之间穿插发送一个过载帧,以告求发送节点延迟下帧消息的发送。其由过载标志叠加区和过载界定符组成,其结构如图4-8所示。
5.CAN总线在汽车上的应用CAN总线的最大传输速率可达1 Mbit/s。目前,汽车上的网络连接方式需采用两条CAN总线:一条是用于驱动系统的高速CAN总线,速率达到500kbit/s; 另一条是用于车身系统的低速CAN总线,速率为100 kbit/s。高速CAN总线主要连接发动机、自动变速器、 ABS/ASR、ESP等对通信实时性有较高要求的系统低速CAN总线主要连接灯光、电动车窗、自动空调及信息显示系统等,多为低速电动机和开关量器件,对实时性要求低而数量众多。不同速度的CAN网络之间通过网关连接。对汽车CAN总线上的信号进行采集时,需要确定所采集的信号处于哪个CAN网络中,以便于设置合适的CAN通道波特率。汽车CAN网络拓扑结构如图4-9所示。

上一篇下一篇
参与回答(0条评论)
用户头像
上传
用户头像
{{item.nickname}}{{item.pubtime}}回复
回复图片
用户头像
上传
用户头像
{{item1.nickname}}回复 {{item1.othername}} {{item1.pubtime}} 回复
回复图片
用户头像
上传
查看全部回复{{item.replylist_count}}条 查看全部
收起回复 收起全部
{{isLoadList==1?'加载中...':(isLoadList==2&&(list.length <=3||(list.length>3&&!is_hidden))?'没有更多内容了':'查看更多回答')}}
返回顶部

返回顶部