This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CAN总线的接收邮箱是否需要配置数据长度?



大家好!

       本人是DSP的新人,最近在熟悉关于CAN总线的通讯部分,遇到一个问题就是接收邮箱的数据长度是否需要在寄存器中进行配置,因为在我手头资料上的解释说需要配置接收邮箱的数据长度DLC(0~8),可是在资料中的自测模式程序例程里却只是配置了发送邮箱的数据长度却没有配置接收邮箱的数据长度,更让人不解的是旁边的注解处却写着配置发送和接收邮箱的数据长度,不知道接收邮箱到底该不该配置这个数据长度寄存器?如果不配置,接收邮箱如何判读接收了多少个字节的数据,是否通过控制位来识别帧中的数据个数?

       本人菜鸟,希望看到的朋友能够给我留言,相信大家都能够帮助到我,留言多多益善!谢谢!

  • http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/p/144833/409004.aspx#409004

    和这个是同一个帖子,请看其中的回复。

  • 感谢您对我上一个贴子的回复!

            冒昧的再次发问,举个例子:如果上位机的发送邮箱配置成了6个字节的数据格式,并且给我相同标识符(ID)的接收邮箱发送了6个字节的数据,但是我的接收邮箱将DLC(数据长度)配置成4个字节,那么我能否收到上位机下发的CAN总线数据呢?

             根据CAN总线的数据帧格式,波特率一定的前提下,发送6个字节数据和4个字节数据的帧长度不同也就是时间不同,那么作为接收方还能收到数据吗?

             还是说接收方的接收数据长度(DLC)没有意义,只要数据的标识符(ID)相同都能通过仲裁从而收到数据,数据的个数自己能够通过帧里面的控制为自行判读呢。

             总之我是对接收邮箱的接收数据长度(DLC)非常的疑惑,不知是否一定要与发送方的数据长度配置成一致的,我更倾向于配置成一致的,如果配置的不一致将接收不到数据,因为接收的的控制位数据(含数据长度)与自己的设置不匹配?我这么想不知对不对?还请您指点!