




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CAN总线CAN(Controller Area Network )总线即控制器局域网络,是上世纪把八十年代最先由德国的Bosch公司为解决汽车的监测与控制而设计的总线方案,其可靠性高,性能好,应用方便,现在已经成为工业控制种不可或缺的一种现场控制总线,并被广泛应用于工业自动化、医疗设备、工业设备、汽车电子等领域。CAN总线网络组建方式和计算机局域网类似,其常用的网络拓补结构为总线型拓补结构,相对其他总线,CAN总线具有以下特点: 其工作模式为多主工作模式;(节点不分主从) 其具有非破坏性的总线总裁技术(CSMA/CD); 其能进行点对点通信,也能进行一点对多点的广播式通信; 其具有短帧结构,传输报文可靠性高;(短帧抗干扰能力强,) 其具有较高的节点容错机制,当一个节点发生故障时会自动退出网络,避免对网络的影响; CAN上的节点数主要取决于总线驱动电路,目前可达128个;报文标识符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。 CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。 总线配置灵活;CAN总线具有以下通信技术规范: 带有冲突检测的载波侦听机制(CSMA/CD);(局域网介质访问控制) 报文传输不基于目的地址; 高速且强容错机制;CAN总线传输介质CAN总线在现场应用中,一般式利用双绞线做为其传输介质,双绞线实现简单,价格低廉,对有一定的抗电磁辐射干扰能力,但是在使用时要注意下面几个问题: 要采用抗干扰的差分信号传输方式; 如果使用屏蔽的双绞线作为物理层,除2根差分信号线连接以外,还需要注意在同一段中屏蔽层单点接地问题。 CAN总线两端必须有两个118-130欧的匹配电阻; 确保不要在干扰源附近布置CAN总线,或者使用屏蔽双绞线; 使用适当的电缆类型,必须确定电缆的电压衰减;当然,由于CAN总线有其特殊性,因此目前有专用的CAN总线传输线CAN总线技术规范1 CAN总线分层结构如图1所示,CAN具有OSI规定的标准分层结构,可以看出,其底层只具有数据链路层和物理层,而上层ISO并为对其标准化,这也是CAN总线应用灵活的原因之一,我们可以基于底层开发自己的应用层,当然目前也有现成的CAN总线应用层协议如DeviceNet(ODVA)、CAL(CiA)、CANopen(CiA)、CANKingdom(Kvaser)、J1939(SAE)、SDS(Honeywell),但是目前真正占领市场协议为DeviceNet和CANopen。CAN的分层机构和各层对应的功能如下图2所示。图 1:OSI标准化的CAN分层结构其中逻辑链路子层LLC子层的主要功能是报文滤波、超载通知和恢复管理。媒体访问控制子层MAC子层的功能主要是传送规则,以及控制帧结构、执行仲裁、错误检测、出错标定和故障界定。MAC子层也要确定为开始一次新的发送,总线是否开放或者是否马上开始接收,位定时也是MAC子层的一部分。物理层的功能是有关全部电气特性不同的节点间位的实际传送。图2 CAN的分层结构及其功能2 CAN总线工作原理当CAN总线上的一个节点(站)发送数据时,它以报文的形式广播给网络中所有节点,对每个节点来说,无论数据是否是发给自己的,都对其接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式成为面向内容的编制方案。同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文,当几个站同时竞争总线读取时,这种配置十分重要。CAN总线收发器通过两根总线的电平差来判断总线电平,总线电平为显性和隐性电平两种,总线必须处于两者之一,总线执行逻辑上得线“与”时,显性电平为“0”,隐性电平为“1”器物理层表示如下图3所示:图3 CAN总线物理层特征上图左边为ISO11898标准,其总线传输信号为TTL电平,总线为隐性时,CANL和CANH电平相同,电压差为“0”;总线为显性时,CANH变高,CANL变低,电压差为“1”;上图右边为ISO11519标准,器总线传输信号为差分信号,表示方法和前面一样,这里就不赘述了。这里看到一段网络上关于显性和隐性电平的解释,可以参考下:首先CAN数据总线有两条导线,一条是黄色的,一条是绿色的。分别是CAN_High线和CAN_Low线当静止状态时,这两条导线上的电平一样。这个电平称为静电平。大约为2.5伏。这个静电平状态就是隐形状态,也称隐性电平。也就是没有任何干扰的时候的状态称为隐性状态.当有信号修改时,CAN_High线上的电压值变高了,一般来说会升高至少1V,而CAN_Low线上的电压值会降低一个同样值,也是1v,那么这时候。CAN_High就 是2.5v+1v=3.5v,它就处于激活状态了。而CAN_Low降为2.5v-1v=1.5v。可以看看这个图由此我们得到在隐性状态下,CAN_High线与CAN_Low没有电压差,这样我们看到没有任何变化也就检测不到信号。但是在显性状态时,改值最低为2V,我们就可以利用这种变化才传输数据了。所以出现了那些帧,那些帧中的场,那些场中的位,云云在总线上通常逻辑1表示隐性。而0表示显性。这些1啊,0啊,就可以利用起来为我们传数据了。3 CAN报文格式CAN的报文格式有两种,不同之处其实就是识别符长度不同,具有11位识别符的帧称为标准帧,而还有29位识别符的帧为扩展帧,CAN报文有以下4个不同的帧类型。分别是(1) 数据帧:数据帧将数据从发送器传输到接收器。(2) 远程帧:总线节点发出远程帧,请求发送具有同一标识符的数据帧(3) 错误帧:任何节点检测到总线错误就发出错误帧(4) 过载帧:过载帧用已在先行的后续的数据帧(或远程帧)之间提供一附加的延时这里以数据帧为例,说明一下CAN报文的帧格式数据帧格式如下:图4数据帧组成结构其一共分为七个段(这里有几种不同的叫法,有的书称作域,有的书称作场,个人觉得段更好理解)分别为帧起始(SOF)、仲裁段、控制段、数据段、CRC段、ACK段、帧结束。这里就分别对各个段进行简单的解释帧起始:这个应该很好理解,其表示一个帧的开始,其有一个单独的“显性”位组成。一个CAN节点只在总线空闲时才允许发送报文,所有节点必须同步与首先开始发送的节点的帧起始前沿(即总线从隐性变为显性时产生的跳变沿)仲裁段:仲裁段表示帧的优先级,这点标准帧和扩展帧不同,可以从图4看出,标准帧有11位标识符和RTR组成,在扩展帧中其由11位标志符和SRR、IDE及18为扩展标志符组成。RTR为远程发送请求位,表示改报文为数据帧或是远程帧,为数据帧时其为显性,为远程帧时其为隐性,而扩展帧中SRR为隐性为,故标准数据帧优先级高于扩展数据帧,关于这点解释,我同样可以参考网络上一段解释:这个仲裁很抽象,其实在这里就是为了解决一个问题。如果2个或2个以上的单元同时开始传送报文,那么就会有总线访问冲突。那么仲裁机制就是用来根据标识符优先级来一个一个的去掉低级别的数据。我们可以详细的描述这场生动的争抢总线的战斗。当总线处于空闲状态时呈隐性电平,此时任何节点都可以向总线发送显性电平作为帧的开始。2个或2个以上的节点同时发送开始争抢总线,但是总线只能被一个人抢走。总线只属于一个他。这时候到底怎么决定谁留下,谁滚蛋呢。我们开始考虑,思索,我们以前定义了标识符,标识符有优先级,它越小,它优先级越高。那么怎么实现的呢。看下面把首先搞明白两点,一 下面的图 低波形代表0,高波形代表1 二 当隐性碰到显性,就变为显性。如图所示,节点A和节点B的标识符的第lO、9、8位电平相同,因此两个节点侦听到的信息和它们发出的信息相同。第7位节点B发出一个“1”,但从节点上接收到的消息却是“0”,为什么呢,因为A节点同时发出显性位,让总线也变成显性了,也就是0。节点B会退出发送处于单纯监听方式而不发送数据;节点A成功发送仲裁位从而获得总线的控制权,继而发送全部消息。总线中的信号持续跟踪最后获得总线控制权发出的报文,本例中节点A的报文将被跟踪。这种非破坏性位仲裁方法的优点在于,在网络最终确定哪个节点被传送前,报文的起始部分已经在网络中传输了,因此具有高优先级的节点的数据传输没有任何延时。在获得总线控制权的节点发送数据过程中,其他节点成为报文的接收节点,并且不会在总线再次空闲之前发送报文在这逐位的比较中,最终节点B因为第七位的偏差丢掉了总线。从此单纯监听,江山就拱手让给了节点A了,这就是仲裁机制。这里我们涉及到总线值 总线有二个互补的逻辑值:“显性”或“隐性”。“显性”位和“隐性”位同时传送时,总线的结果值为“显性”。比如,在总线的“写与”执行时,逻辑0代表“显性”等级,逻辑1代表“隐性”等级。上面我们说过,报文有两种格式,标准和扩展。这里,不同的格式仲裁场是不一样的。标准格式下,仲裁场由11位识别符和RTR位组成。但在扩展格式里,包括29位识别符,SRR位,IDE位,RTR位。RTR位。Remote Tranmission Request BIT 全称为 远程发送请求位。它在数据帧里必须为显性0 ,但在远程帧里为隐性1。我晕,为什么这么搞呢,不急,先留着这个问题。SRR位,替代远程请求位,SRR是一隐性位,也就是1,它在扩展格式的标准帧RTR位位置,那么标准帧怪不得优先于扩展帧了,因为在传输完11位标识符之后(扩展帧的后18位在最后发送,先发送11位标识符),轮到标准帧的RTR位和扩展帧的SRR位了。这时候,标准帧的RTR为显性,而扩展帧SRR为隐性,这样,总线自然就被标准帧占据。同时上面那个问题,也一目了然了,CAN总线协议设计者,肯定是设计了数据帧优先于远程帧所以IDE 全称识别符扩展位(Identifier Extension Bit),它属于扩展格式的仲裁场标准格式的控制场标准格式的IDE位为显性,扩展格式里IDE位为隐性。这样扩展格式的数据帧优先级又落下了一截。控制段:表示数据的字节数即保留位的段,其结构如下图所示:图5 控制段结构示意图其总共有六位,标准的跟扩展的又不同。标准的格式里的帧先是IDE位,然后保留位r0,然后数据长度代码(共四位,分别是DLC3,DLC2,DLC1,DLC0)而扩展格式里,IDE替换为r1保留位,其余不变。数据长度代码指示了数据场里的字节数量。数据段:数据段由数据帧要发送的数据组成,其可以包含0-8个字节的数据,每字姐8位,高位在前。CRC段:CRC即循环冗余校验码,其主要用于检测帧传输是否错误。应答段:表示确认接受正常的段。应答场(ACK)长度为2个位,包含应答间隙和应答界定符,在ACK场里,发送站发送两个隐性位。当接收器正确接收到有效地报文,接收器就会在应答间隙期间(发送ACK信号)向发送器发送一显性位以示应答。图6 应答段结构示意图帧结束:表示帧结束的段。帧结构就介绍到这里,关于远程帧、错误帧、过载帧可以去参考相关资料和书籍,都有很明确的讲解,这里就不多说了。关于帧间间隔:数据帧(或远程帧)与先行帧的隔离是通过帧间空间实现的。无论此先行帧类型如何。所不同的是过载帧与错误帧之间没有帧间空间。多个过载帧之间也不是由帧间空间隔离的。帧间空间包括间歇,总线空闲的位场。如果错误被动的站已作为前一报文的发送器,则其帧空间除了间歇,总线空闲外,还包括称作挂起传送的位场。间歇(Intermission)间歇包括3个“隐性”的位。间歇期间,所有的节点均不允许传送数据帧或远程帧,唯一要做的是标示一个过载条件。如果CAN节点有一报文等待发送并且节点在间歇的第三位采集到一显性位,则此位被解释为帧的起始位,并从下一位开始发送报文的标识符首位,而不用首先发送帧的起始位或成为一接收器。总线空闲(Bus Idle)总线空闲的时间是任意的。只要总线被认定为空闲,任何等待发送报文的节点就会访问总线。在发送其他报文期间,有报文被挂起,对于这样的报文,其传送起始于间歇之后的第一个位。4 CAN应用层协议前面讲过,目前应用较广泛的CAN应用层协议有DeviceNet何CANopen,DeviceNet是为工厂自动控制而特别制定的,目前在美国自动化领域应用广泛。其具有以下特点: 最多支持64个节点; 生产者/消费者的网络模型; 支持125kbps(500m)、250kbps(150m)、500kbps(100m)等多种波特率; 数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安阳市2024-2025学年八年级下学期语文期中模拟试卷
- 阿拉善盟2025-2026学年八年级下学期语文月考模拟试卷
- 安徽省滁州市南谯区2023-2024学年高三上学期第二次月考化学考题及答案
- PSH的识别与护理课件
- 2025 年小升初清远市初一新生分班考试数学试卷(带答案解析)-(人教版)
- 广东省广州市2025年高中“古诗文积累与阅读竞赛”初赛试题(语文)
- 教师教学2025工作总结
- 社区消防知识培训课件信息
- 2024-2025学年山东省潍坊市寒亭区青岛版五年级下册期中测试数学试卷(含答案)
- 房子首付合同范本
- 主变压器安装施工方案完整版本
- 深度学习教学改进丛书 深度学习:走向核心素养(理论普及读本)
- 人民医院整形外科临床技术操作规范2023版
- 脚手架搭拆施工方案
- 高等教育新论复习提纲-czy
- 汽车风窗刮水器机构设计
- 重庆某广场高边坡喷锚支护施工方案(脚手架设计)
- 用友ERP沙盘大赛推演工具表(模板)
- 传染病学总论(英文稿)
- 教师师德师风专题培训讲座《润物细无声》
- GB/T 5118-2012热强钢焊条
评论
0/150
提交评论