新闻中心

EEPW首页>嵌入式系统>设计应用> 调试嵌入式系统设计中的低速串行总线

调试嵌入式系统设计中的低速串行总线

作者: 时间:2012-06-02 来源:网络 收藏

  这些触发也可以隔离感兴趣的特定总线业务,解码功能则可以立即查看采集中总线传送的每条消息的内容。

  CAN

  背景知识

  CAN (控制器区域网)总线是博世公司在20世纪80年代专门研制的一种分层串行数据通信协议,以在电气噪声环境中作为设备之间的通信总线。1992年,梅塞德兹-奔驰率先在其汽车系统中采用CAN。今天,几乎每个汽车制造商都在使用CAN控制器和网络,控制雨刷器马达控制器、雨水传感器、安全气囊、门锁、列车控制传动系统和电动车窗等等。由于能够容忍电气噪声、减少连线、校验错误及高速传送速率,CAN正迅速扩展到其它应用中,如工业控制、舰队、医疗、航空等领域。

  工作方式

  CAN总线是一种平衡的(差分) 2线接口,在屏蔽双绞线(STP)、非屏蔽双绞线(UTP)或带状电缆上运行。每个节点使用公头9针连接器。非归零(NRZ)位编码与位填充一起使用,保证紧凑的消息及最小的转换数量和高抗噪声能力。CAN总线接口采用异步传输方案,在总线空闲时每个节点可以开始传送信息。消息广播到网络上的所有节点。在多个节点同时发起消息时,位仲裁用来确定哪条消息的优先权较高。消息可以是四种类型中的一种:数据帧、远程传输请求(RTR)帧、错帧或过载帧。总线上检测到错误的任何节点会传输一个错帧,导致总线上所有节点能够看到当前消息不完整,传输节点会重新发送消息。接收设备发起过载帧,表明还没有准备好接收数据。数据帧用来传输数据,远程帧由用来请求数据。数据帧和远程帧由每个帧开头和结束的开始位和停止位控制,包括下述字段:仲裁字段、控制字段、数据字段、 CRC字段和ACK字段,如图14所示。


  – SOF – 帧以帧头(SOF)位开始
  – 仲裁 – 仲裁字段包括标识符(地址)和远程传输请求(RTR)位,用来区分数据帧和数据请求帧,其也称为远程帧。标识符可以采取标准格式(11位 – 2.0A版)或扩展格式(29位 - 2.0B版)。
  – 控制 – 控制字段由6个位组成,包括标识符扩展(IDE)位,它区分CAN 2.0A (11位标识符)标准帧和CAN 2.0B (29位标识符)扩展帧。控制字段还包括数据长度代码(DLC)。DLC长4位,表明数据帧中数据字段的字节数或远程帧请求的字节数。
  – 数据 – 数据字段由0-8个数据字节组成。
  – CRC – 15位循环冗余校验代码和隐性分隔符位。
  – ACK – 确认字段长两位。第一个位是时隙位,作为隐性位传输,但之后被成功地收到传输消息的任何节点传送的显性位覆盖。第二个位是是隐性分隔符位。
  – EOF – 七个隐性位,表明帧尾(EOF)。

  三个隐性位的间断(INT)字段表明总线空闲。总线空闲时间可以是任意长度,包括零。

  它定义了大量的不同数据速率,最高数据速率为1Mb/s,最低数据速率为5kb/s。所有模块必须支持至少20kb/s的速率。电缆长度取决于使用的数据速率。正常情况下,系统中所有设备都以统一的固定位速率传送信息。最大线路长度在低速时可以达到几千米;典型情况是1Mbps时40米。在电缆每端使用端接电阻器。

  处理CAN

  DPO4AUTO串行触发和分析应用模块可以对CAN总线实现类似的触发和分析功能。我们可以再次使用前面板B1或B2按钮,简单地输入总线的基本参数,包括探测的CAN信号类型及位于哪条通道上、位速率、门限和样点(位时间的%),来定义CAN总线,参见图15。


  想象一下您需要进行相关定时测量,确定从司机在司机车门仪表板上按下摇车窗开关开始到车窗实际开始移动之间的时延。通过指定司机车门中CAN模块的ID及与“下摇车窗”命令有关的数据,您可以触发采集正在查找的数据帧。通过同时探测司机车门的下摇车窗开关及车门中的马达驱动,可以非常简便地完成这一定时测量,如图16所示。


  图中的白三角形是我们放在波形上作为参考点的标记。通过简单地按示波器前面板上Set/Clear Mark (设置/清除标记)按钮,可以在屏幕中增加或从屏幕中删除标记。按前面板上的Previous和Next按钮,缩放窗口从一个标记跳到另一个标记,从而可以简便地在采集中感兴趣的事件之间导航。

  现在想象一下,如果没有这些功能会怎样执行这一任务。

  如果没有CAN触发功能,您将不得不触发开关本身,捕获时间窗口足够长的活动,然后在CAN总线上逐帧手动解码,直到最终找到适当的帧。以前需要几十分钟或几个小时完成的工作,现在只需要一会儿就可以完成。

  DPO4000强大的CAN触发功能包括下述类型:

  – 帧头–触发SOF字段。
  – 帧类型–选项包括数据帧, 远程帧, 错帧和过载帧
  – 标识符–使用读/写判定触发特定的11位或29位标识符
  – 数据–触发1-8字节用户指定的数据
  – Missing Ack–在接收设备没有提供确认时触发
  – 帧尾–触发EOF字段

  这些触发类型可以轻松隔离CAN总线上查找的几乎任何项目。但触发只是开始。调试通常要求检查触发前和触发后的消息内容。可以通过DPO4000系列的事件表简单地查看一次采集中的多个消息的内容,如图17所示。

  事件表以带时戳的表格形式显示了采集中每条消息解码的消息内容。它不仅可以简便地查看总线上的所有业务,还可以简便地在消息之间进行定时测量。事件表还可以用于I2C和SPI总线。


  触发与搜索

  正如我们在本应用指南中讨论的那样,必需拥有强大的触发系统,隔离串行总线上感兴趣的事件。但是,一旦已经采集了数据 (示波器被停止),而且想分析数据,那么触发就没有什么用了。如果示波器具有类似触发的资源、分析停止的波形数据不是更好吗?DPO4000系列的 Wave Inspector为您提供了强大的搜索功能。本文中讨论的所有总线触发功能还作为已采集数据的搜索标准使用。例如,在图18中,示波器已经在长采集记录中搜索了具有特定地址和数据内容的每条CAN消息,并在显示屏顶部在每条消息上标明空心的白三角形。为在发生的消息之间导航,用户只需按前面板上的 Previous和Next按钮即可。


  当然,搜索也可以用于比较传统的触发类型。搜索类型包括边沿、脉宽、欠幅脉冲、建立时间和保持时间、逻辑和上升时间/下降时间。

  总结

  尽管设计从并行总线转向串行总线带来了许多好处,但它也给设计工程师带来了许多挑战。通过传统测试测量工具,触发查找的事件要困难得多,这些工具仅仅查看模拟信号,几乎不可能告诉用户其提供了哪些信息,而且手动解码长时间的总线活动、诊断问题是非常耗时、非常容易出错的过程。
DPO4000系列改变了这一切。由于其强大的触发、解码和搜索功能,当前的设计工程师可以以极高的效率解决设计问题。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭