TMS320F28034: 关于CAN通讯发送邮箱发送数据间隔时间

Part Number: TMS320F28034

目前实验现象是:我如果每隔2ms往空闲发送邮箱写入数据,那么通过调试助手可以监测到,实际上,系统会间隔15-16ms发送7-8串数据(图一),并不是每隔2ms发送一条数据; 如果我将发送时间间隔延长至40ms(每隔40ms往空闲邮箱写入一串数据),那么我能监测到系统实际会以大约40ms间隔发送一串数据,不会出现在同一个时间点连续发送多条数据的情况(图二)。我想问一下,从我往空闲发送邮箱写入数据到发送完成这整个过程中,大概需要多少时间? 这个时间的长短可能会受到哪些寄存器的影响?如果我想要让系统均匀的,每隔2ms发送一串数据,那么我该怎么做?     图一    图二;       我can通讯的波特率是1000k


  • 感谢您对TI产品的关注!
    关于你的咨询,我们正在确认你的问题,稍后回复您。

  • 您好

    当 CPU 将消息编号写入 IF1/IF2命令寄存器位时、CAN 消息开始传输。 将数据从接口寄存器传输到消息 RAM 大约需要14个系统时钟周期。 如果消息传输是通过 CAN 消息传输、接受过滤或消息存储进行的、则可能需要更多的系统周期来在接口寄存器和消息 RAM 之间传输数据。 如果 CPU 连续写入 IF1/IF2命令寄存器(在首次传输仍在进行的情况下请求第二次传输)、则第二次传输将在完成第一个传输后开始。 一条 CAN 消息将使 CAN 总线只占用大约40us 到108us (在1000K 波特率上)。 因此、如果您每2ms 向接口寄存器写入一条消息、并且 CAN 总线上没有流量、那么消息应该每2ms 发送一次。