课程培训
|
CAN总线通信原理分析培训课程
CAN总线通信原理分析培训课程课程摘要:介绍了控制器局域网总线(CAN总线)的应用特性以及将其应用于具体的工程项目时CAN总线系统的分层结构及各层的主要功能。基于CAN总线系统结构构成,通过工程实践的具体应用以及对CAN控制器及收发器硬件结构的深入理解,并从通信的角度出发着重深入分析了CAN总线通信的节点同步机制、总线地址机制、总线仲裁机制(即总线的冲突解决机制)以及总线鲁棒性的实现原理。
对于CAN控制器的实现,可以选用集成于系统主控芯片的CAN控制器实现,如恩智浦公司出品的LPC2000系列的微控制器,或者也可以选用分立元件的CAN控制器,如SJA1000。对于CAN收发器的实现,可以选用CTM1050、TJA1050等。若环境干扰噪声较大,则需在控制器和收发器之间添加隔离芯片或采用集成了隔离功能的CAN收发器。值得一提的是,恩智浦公司新推出的LPC11C24微控制器芯片中不仅集成了CAN控制器,同时集成了CAN收发器功能,对于CAN总线系统的快速开发提供了良好的支持。另外,根据实际应用的总线长度及总线上的节点数目,还需考虑收发器芯片的发送和接收的延迟时间。
2.2 固定的帧结构 CAN协议中明确定义的固定的帧结构,便于CAN控制器和收发器对总线状态进行监测,在CAN2.0协议规范中,分为标准帧和扩展帧两种帧结构,两者区别只在于仲裁域,标准帧采用11位标识符,而扩展帧有29位标识符,具体的标准帧、扩展帧帧结构如表1、表2所示。
2.3 硬同步和再同步 2.3.1 硬同步 所谓硬同步就是指在总线空闲期间(即总线电平表现为连续的隐性位),控制器一旦检测到从隐性电平到显性电平的跳变,就说明此时总线上有站点开始发送数据,则强制CAN控制器的位状态计数器同步到图2所示的SS段,同时位时钟从此开始重新计数(CAN位时间由上层软件设定)。硬同步用于帧的起始判定。 2.3.2 再同步 在CAN总线协议中,再同步是基于位填充机制实现的。与HDLC协议类似,在CAN的帧结构中,从帧起始到CRC序列位为止,一旦检测到5个连续相同极性的位,CAN控制器自动插入一个极性相反的位。再同步就是在数据传输过程中,CAN控制器通过检测总线上的跳变沿与节点内部位时间的差异来调整相位调整段1和相位调整段2,调整大小是由同步跳转宽度编程设定的,调整大小单位为TQ。具体调整规则是,在传输过程中,由CAN控制器检测到的总线上的跳变沿如果位于节点内部的SS位时间段内,则不需要调整;若跳变沿位于TESG1段,说明总线上的位时间相对于节点的位时间有延迟,则CAN控制器延长节点的TESG1位时间段,若延迟时间值(T0值)大于同步跳转宽度,延长时间为同步跳转宽度值,否则节点的CAN控制器延长其与总线位时间的差值;若跳变沿位于TESG2段,说明总线上的位时间相对于节点的位时间有超前,则CAN控制器减少节点的TESG2位时间段,具体调整规则与TESG1段的调整规则相似。 3 CAN总线地址机制分析 不同于工业以太网、RS485等总线,CAN总线是通过数据包ID而非节点地址来收发数据的,即CAN总线上的节点没有固定的地址,取而代之的是每个节点都需要通过软件配置一个ID表(在该节点的验收滤波器单元中),如果总线上的数据包的ID号在该节点的ID表中存在,则数据包成功通过该节点的验收滤波器单元的验收,并将被送到上层软件处理单元并进行相应的数据处理,否则,该数据包被丢弃。举例来说,若总线上的节点A想发送数据包到节点B,则该数据包的ID号必须位于节点B的ID表中,同理,若节点A想广播数据包到总线上,则该数据包的ID号必须位于总线上所有其它节点的ID表中。如前所述,ID表是通过软件进行配置的,但验收滤波功能却是通过CAN控制器中的验收滤波器这个硬件单元进行的,所以从速度上来说,验收造成的延迟很小。另外,采用这种地址机制的优点还在于是采用此总线的系统具有很高的灵活性,即新加入或删除的节点不会影响系统原有节点间的通信。
4 CAN总线仲裁机制分析 总线仲裁,是指当总线上有多个节点在同时发送数据时总线协议的处理方法。CAN总线采用的是无破坏性的仲裁机制,即若总线上的多个节点同时发送数据,具有高优先级数据包的节点仲裁胜出,可以继续发送数据,而其它仲裁失败的节点将退出发送状态而转为接收节点,与其他总线仲裁机制(例如局域网的CSMA/CD)相比,其不仅不会破坏已发送的数据,并且不会造成发送数据的延迟,是CAN总线与其他总线相比的优点之一,其主要是通过CAN总线所具备的如下两个特点实现:1)CAN总线的线与特性,即当总线上多个节点同时发送显性和隐形电平时,总线电平表现为显性电平。2)CAN控制器即使在发送数据的同时也在监控总线电平状态,即当在仲裁时,当控制器发送隐性电平但检测到总线为显性电平时,节点仲裁失败,转为接收节点。 5 CAN总线鲁棒性分析 CAN总线的鲁棒性是通过其对节点和总线数据包安全性的实时检测与监控来实现的,另外,CAN总线通过采用的差分信号对外界干扰信号有较强的抑制作用。具体论述如下。 5.1 实时监控总线波形 CAN控制器不仅在上电后会一直监测总线上其它节点发送的的数据包,并且在自己发送数据包得过程中也在实时监测自己发送的数据,一旦检测到位错误、填充错误、CRC错误、格式错误或者应答错误,该节点就会根据其所处的错误状态(错误激活状态或者错误认可状态)发送相应的错误标志,实际上笔者认为只有错误激活站点发送激活错误标识(即6个连续的显性位后接8个隐性位的错误标识界定符)会对总线及总线上的节点产生影响,而处于错误认可状态的节点发送的错误认可标识实际对总线没有任何影响(发送的6个隐性电平与总线空闲状态是一致的)。 5.2 实时监控节点状态判定节点权限 节点会根据总线上数据包的情况实时改变自身的状态(错误激活、错误认可或者总线关闭状态),处于错误激活的节点正常参与总线通信,错误认可的单元参与总线通信,但是在其启动下一个发送之前需要发送8个额外的隐性位。对于总线上发送的数据包,如表1所示,15位的CRC序列实现了对起始位、仲裁域、控制域以及数据域(如果有的话)的监控,接收站点在接收到数据后会根据与发送节点相同的算法生成该数据包的CRC序列,并与接收到的CRC序列做比较,如果不同则说明有错,接收节点不会对该数据包做出应答,发送节点就会检测到应答错误并重新发送该数据包。总之,CAN总线通过数据链路层以及物理层就已经实现了较高的总线的数据安全性和总线的稳定性。 6 结论 文中以ISO11898协议规范为基础,从通信的角度详细分析了CAN总线的节点同步机制、节点地址机制、总线仲裁机制(即总线冲突解决机制)及总线鲁棒性的实现原理和基础,同时简要介绍了CAN总线的应用特性以及将其应用于实际系统中时总线的系统分层结构,对深入理解CAN总线协议和将CAN总线应用到具体工程项目中,以及研究或开发特定要求的总线系统具有指导意义。
如果您想学习本课程,请预约报名
如果没找到合适的课程或有特殊培训需求,请订制培训 除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916 技术服务需求表下载请点击 服务优势: 丰富专家资源,精准匹配相关行业,相关项目技术精英,面向用户实际需求,针对性培训或咨询,互动式交流,案例教学,精品小班,实际工程项目经验分享,快捷高效,节省时间与金钱,少走弯路与错路。 专家力量: 中国科学院相关研究所高级研究人员 西门子,TI,vmware,MSC,Ansys,MDI,Mentor, candence,Altium,Atmel 、Freescale,达索,华为等 大型公司高级工程师,项目经理,技术支持专家 中科信软培训中心,资深专家或讲师 大多名牌大学,硕士以上学历,相关学历背景专业,理论素养高 多年实际项目实践,大型复杂项目实战案例分享,热情,乐于技术分享 针对客户实际需要,真实案例演示,互动式沟通,学有所值 |
|