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总线方面的应用,手上的许多材料都显示CAN总线的收发位率要求一致,是否就是发送与接收邮箱的ID相同,并且数据长度也要求一样?手上一部分的书面程序例程并未强调这一点,但是全都是这么做的;另外一些例程强调了收发邮箱数据长度一致结果程序上却没有配置接收邮箱的寄存器所以现在相当的迷茫不知到底怎么确定接收邮箱的数据长度?是根据相同ID的发送邮箱保持一致长度还是不用管长度,接收到几个字节就是几个字节呀?

       还请大家多多帮忙各抒己见,相信大家的建议都能帮到我,再次感谢!

  • 手册中关于

    eCAN 模块有下列特性:
    • 与CAN 协议,版本2.0B 完全兼容
    • 支持高达1Mbps 的数据速率
    • 32 个邮箱,每一个邮箱有下列属性:
    – 可配置为接收或者发送
    – 可使用标准或者扩展标识符进行配置
    – 有一个可编程的接受过滤器屏蔽
    – 支持数据和远程帧
    – 支持0 到8 位数据
    – 在接收和发送消息上使用一个32 位时间戳
    – 防止接收新消息
    – 可以动态设定发送消息优先级
    – 采用一个具有两个中断级别的可编辑中断机制
    – 在发送或者接收超时时采用可编辑中断

    扩展帧(id29)或者标准帧(id11)在发送时需要设置,接收自动识别是哪种帧格式,接收数据的长度是0-8位(放到buffer)都可以,建议您看下can2.0B协议。

  • 您好!

           感谢您的回复,手册中的描述我已经看到了,非常感谢,我想问的是如果我作为DSP下位机(应答方),和上位机(询问方)通讯时,我的接收邮箱要和上位机的发送邮箱配置成相同的标识符(ID),上位机在发送数据时自然是确定了DLC(数据长度)的,那么我的下位机是否需要配置成一样的数据长度呢?或者说我的下位机不用理会接收邮箱的数据长度,仅仅通过接收数据帧自己判断接收数据的长度就行呢?我手头的资料大同小异,有的强调了接收和发送必须相同的位率,是不是就是必须接收和发送配置成相同的数据长度呢?很多的CAN总线自测程序虽然没有强调这一点但是全都是配置成了相同的DLC(数据长度)!

            我想确认一下是否一定要配置接收邮箱的数据长度?