网络中的每个CAN节点通过发送包形式的信息进行通信。每个包将包含开销和净荷。根据通信类型,包称为数据帧、远程帧、过载帧或错帧。对车载网络,CAN节点请求数据,然后发送一个远程帧。如果节点忙着处理数据、执行优先工作,那么节点将把过载帧放在总线上,表明它目前正忙。如果CAN节点发现有校验和错误或数据毁坏,它将发送一个错帧。CAN有两种协议格式:CAN2.OA和CAN2.OB。这两种版本之间的差别是地址中使用的位数不同。CAN2.OA支持11位地址,可以兼容CAN2.OB。CAN2.OB支持29位地址,也称为扩展地址。
CAN2.OB的典型数据帧内容如图1所示。
LIN基础知识
LIN是一种基于公共UART接口的单线串行通信协议。LIN采用单主站多从站组网结构。它是为汽车传感器和驱动器组网应用开发的,用于车门控制、车灯和车窗操作。LIN主节点将LIN网络与高级网络相连,如使用控制器区域网(CAN)。由于电磁干扰和时钟同步要求,LIN支持最大20Kbps的数据速率。在收到和过滤标识符时,从站任务激活,开始传输消息响应。响应由2个、4个或8个数据字节和1个校验和字节组成。包头和响应部分构成了一个消息格式。LIN消息格式如图2所示。
测量频率振荡器容限和传输延迟,帮助解决位定时问题
CAN协议的功能、位速率、位采样点和一个位周期中的样点数量都可以由用户编程。在这一过程中,用户必须知道位定时参数、参考频率振荡器容限和系统中各种信号传输延迟。根据CAN规范,位时间分成四段,即同步段、传播时间段、相位缓冲段1和相位缓冲段2。每个段由可以编程的特定数量的时间单位组成。时间单位(tq)是位时间的基本时间单位,其长度由编程人员使用位速率预标量定义。图3说明了怎样才能选择位时间中的时间单位,然后为4个段分配时间单位。同步段(sync_seg)是预计发生CAN总线电平边沿的位时间部分。在sync_seg外面发生的边沿与相位段边沿间的距离称为该边沿的相位误差。传输时间段(prop_seg)主要用来补偿CAN网络内部的物理延时。相位缓冲段(phasesegl和phase_seg2)包围在样点周围。再一同步跳转宽度(SJW)规定了再同步可以在相位缓冲段规定的范围内把样点移动多远的距离,以补偿沿到沿误差。
为使CAN网络正常运行,必须考虑物理延时和频率振荡器的容限范围,CAN网络中的每个节点从自己的频率振荡器中得到位定时,这个位时间会随着频率振荡器的容限而变化。在实际系统中,由于初始容限偏置和老化及周围温度变化,频率振荡器参考频率fclk会偏离额定值。这些偏离之和得到总的频率振荡器容限。在对定时寄存器编程时,编程人员必须考虑这一变化。
在DP07000系列上运行的CAN和LIN定时和协议解码软件(称为下DSVNM)自动测量频率振荡器容限。用户可以指定CAN节点的号码。下DSVNM中的结果将包括有ACK位及没有ACK位的整体频率振荡器容限。TDSVNM还将提供没有ACK位的数据,表明接收CAN节点对传输节点的影响。通过结合使用频率振荡器的发送节点和接收节点容限,可以对CAN控制器定时寄存器编程,实现无差错的网络性能。
除频率振荡器容限信息外,为精确地设置样点,还要求传输延时信息。传输延迟在CAN系统中具有重要意义,这是因为CAN支持在竞争访问网络的节点之间进行非破坏性判优及同帧确认。
假设有两个CAN节点A和B。两个节点A和B之间的单向传播延迟规定为tprop (A, B)。由于两个节点之间的信号传播时间,同步到CAN总线上码流的任何CAN节点将与发射机码流不同相。
在图4中的实例中,两个节点A和B都是对CAN总线执行判优的发射机。节点A发送帧开始位的时间比节点B早不到一个位时间,因此节点B把自己同步到收到的从隐性到显性的边沿。由于节点B是在发送后同步的这一边沿延迟(A_to_B),因此B的位定时段相对于A发生位移。节点B发送优先权更高的标识符,因此在发送显性位时,在特定标识符上它会赢得判优,而节点A则传输隐性位。节点B发送的显性位将在延迟(B_to_A)后到达节点A。
由于频率振荡器容限,节点A的样点的实际位置可能会位于节点A同相的段额定范围内的任何地方,因此节点B传输的位必须在phase_segl开始前到达节点A。这一条件定义了prop_seg的长度。
如果节点B传输的从隐性到显性的边沿在phase_seg2开始后到达节点A,那么可能会发生节点A对隐性位、而不是显性位取样的情况。这会导致误码,并使用错误标记破坏当前帧。
这个问题要求工程师在对CAN控制器的定时寄存器编程时考虑精确的数据。现在TDSVNM软件提供了自动测量传输延迟的功能。TDSVNM可以自动测量频率振荡器容限和传输延迟,用户可以使用来自车载网络的实际环境数据对寄存器编程。
CAN和LIN消息的协议解码
一旦物理层在车载网络中全面运行,固化软件将与ECU(发动机控制单元)集成在一起。在这一活动过程中,用户可以以数据链路层格式查看OSI的物理层活动。图5是典型的车载网络。
在图5中,多条总线使用网关互连起来。舒适总线和资讯娱乐总线通常以低于125 Kbps的速率运行,传动链总线和安全总线以500 Kbps~1 Mbps的数据速率运行。LIN总线接入到舒适总线上。在不同总线之间使用网关交换数据。在这个异构网络中,需要进行的分析如下:
· 触发特定GAN帧内容,捕获总线业务,以数据链路层格式查看信息
· CAN消息之间的时戳
· 检定不同网段之间的通信
· 能够同时查看两个网段中的协议活动。两个网段可以是CAN-CAN或CAN-LIN
· 检定网关的性能,确定网段之间信息交换的时延及信息交换的准确性
通过使用与DP07000系列集成式CAN触发功能接口的TDSVNM软件,用户可以捕获特定CAN帧内容上的CAN业务。TDSVNM解决方案可以监测CAN2.OA或CAN2.0B帧。用户可以灵活地选择帧类型,如数据帧、过载帧、远程帧或错帧。根据帧中的内容,用户可以指明要监测的内容,并发起捕获。
但是,采用YT格式捕获的数据很难解释NRZ数据,很难知道CAN消息中的内容。TDSVNM解码YT波形,以十六进制或二进制格式显示数据,节约了时间,不会产生人为错误。
上一篇:解析CAN—BUS数据总线
下一篇:通信协议之CAN知识介绍
推荐阅读最新更新时间:2024-05-03 00:18