|
1、硬件平台:用一个arm9做主机 16台stm32做从机 来进行can通信,
2、操作过程:主机发一个ID为0x081 的通信帧(16台从机均接受0x081ID帧 类似广播) 16台从机收到主机发送的ID帧后 返回给主机一个数据 主机收全16台从机的信息后继续发送类似广播的通信帧(如此循环下去)
3、操作数据: arm9和stm32均采用500KB的波特率
4、实验数据:我做200次循环时间是409毫秒左右 平均一个循环的时间为2.04毫秒左右 (一个循环的概念是 从发送一个数据开始 到接受全部16台从机信息为结束)
5、出现的问题1: 我对单个循环的时间进行捕捉 设置单个循环的时间大于5毫秒的进行报警 发现问题:出现单个循环时间大于5毫秒的情况,最大出现了单个循环8.7毫秒的情况 (平均1万次循环就会出现一次大于8毫秒的)
6、出现的问题2:我对16台从机返回信息丢失进行捕捉 设置16台从机如果20毫秒没有返回信息就报警 并继续进行下次循环,发现问题:平均每10万次循环就会出现一次从机丢失的情况(从机丢失的不规律,1到10台都有可能)
请问原子哥 can通信中 我测试的上面的两个问题是正常情况 还是不正常,尤其是第一个问题 单个时间峰值这么高 不打可能吧!
在线等啊! 各位也可以把我的测试结果做分析 如果有需要 我吧我程序共享给大家 应该有参考价值的!
|