分享

关于通用车系GMLAN总线网络的进一步分析

 刘沟村图书馆 2019-03-24

16年的时候曾经写过一篇关于通用车系高速GMLAN的诊断方法的文章。现在看来十分肤浅。最近翻看汽车通讯网络的资料时,对通用的GM网络有了进一步的认识,所以总结出来同各位师傅分享一下,还请各位师傅不吝赐教,多多批评指正。

我们要回答几个问题:

  1. 为什么GMLAN通讯网络会有两根线

  2. 为什么LIN线只有一根线

  3. 通讯模块之间是如何进行数据的传递的

以下:

  1. GMLAN通讯网络为什么会有两根线。

GMLAN有两根线的目的是为了防止对外部线路造成干扰。

模块之间进行通讯的时候,尤其是高速的GMLAN网络,传输速率能达到500KB,会对周围的线路造成干扰。为了消除这个干扰,CPU发出的数据经过CAN通讯芯片后,被CAN通讯芯片分成CANHCANL两根线。

总线静默时,CANHCANL均为2.5V。当总线上有数据传递时,在2.5V的基础上,CANH被拉高为3.5V,CANL被拉低到1.5V。其实际只需要一根线就可以完成数据的传递任务,这样采用差动的总线方式,两根线产生的干扰可以相互的抵消,使总线不再向外发出干扰。

诊断GMLAN总线最好使用示波器,万用表的话,测得的是数据传送时的一个电压平均值。

CAN波形见下图。

另外,对于GMLAN总线上的模块的连接方式,见下图。

  1. LIN线为什么只有一条。

这是因为LIN线传输的速率很低,只有30KB左右。不会对外造成太大的干扰。

静默时,LIN线被上拉至12V

LIN线波形应该和RXD一致,但是幅值为12V左右。见下图

  1. 模块之间的信息是如何进行传递的。

一个模块发出一个信息,比如我发送一个制动开关信号。

首先我给制动开关信号起一个名字(ID),比如叫01111000100112位标准帧)《也有的是32位扩展帧》

然后我现在制动开关现在的状态是闭合(数据),比如是0000000000000000000000000000001132位数据位,8个字节)

那么,我向GMLAN总线发送这个信息为:011110001001   00000000000000000000000000000011

这样,总线上所有的模块,在接收该信息时,首先看的是名字(ID),如果这个ID是我所需要的,那么我就接收它后面的数据;如果我不需要这个ID,那么,我就不接收这个信息。

如果某一个模块不通讯,可以拆开该模块,找到里面的CAN芯片和CPU的传送和接收针脚,用示波器测量传送和接收的数据波形。

如果该模块发送数据,那么TXDRXD的波形应该一致,且CANHCANL上的波形应该和RXD的波形一致或者相反,但是幅值会不同。

如果该模块正在接收数据,那么TXDRXD的数据会有不同,TXD会稳定在5V,而RXD会有波形,那么CANHCANL的波形应该和RXD一致,但幅值不同。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多