大家在面对CANdb++中的花花绿绿的信号是时候,可能会产生这样一个疑问。为啥有的信号表示方法不按照我的理解来呢?
下面就具体来说说在建立DBC文件的时候,遇到的这个问题。
图一
首先问题就出在上图选择的这个位置,Intel和Motorola。对于这两种大小端的表达方式,放在报文里边确实有的时候让我们匪夷所思。
首先说一下motorola:
这个是我经常用到来写DB时使用的格式:
图二
如上图描述,在我们的认知当中,应该是31过后应该是从32开始,可在实际应用的过程中,为啥由38开始了呢。在这里表述一下motorola的大小端是怎么样表示的
图三
上图及为motorola的表述方式,和图二联合起来看过后就会不难理解,23过后为什么会是39了。
再回过头看看Intel
图四
这个图看起来很平常,23接上24到29,但是你忽略了大小端,这种想法是错误的。我们来看看Intel的大小端:
图五
如图五所表示,Intel的小端在上边这个就应该是,29-18,而不是18-29 !
所以我们看过这里以后就不在难以理解DBC里的表示方式了。
以上如有不对,欢迎指正。