自制CAN总线的实验板接收到CAN总线上的信息少于CANoe监视到了,请帮忙分析一下原因
- UID
- 121671
- 性别
- 女
|
自制CAN总线的实验板接收到CAN总线上的信息少于CANoe监视到了,请帮忙分析一下原因
我的实验板是自制的,它接收到CAN总线上的数据后通过串口转发至上位机,在上位机一侧用一个串口调试助手之类的程序显示,这个串口显示程序不是我编制的,串口通信速率为9600Baud/s,单片机时钟为16MHz。将实验板接入到实车CAN总线网络中。
另外,将CANoe接入到实车CAN总线网络中。
利用实验板向处于睡眠状态的汽车总线发送一相关数据,汽车CAN总线被唤醒,然后又重新进入睡眠状态。CAN总线速率100KBaud/s..
在这一过程中,我的实验板接收到的数据比CANoe接收到的数据少。背景是:我用的单片机的CAN模块有5个FIFO,每次做这个实验,对于前5个信息,我的实验板和CANoe接收的一样;那以后,实验板接收的数据相对于CANoe接收到的就少了,不是连续少好多,而每隔几个(不超过5个)少若干。
我将串口的通信速率提高到57600Baud/s,丢失信息的状况有所好转,但是我的单片机的串口的最高速率就是这样了。
所以想请大家给分析一下原因出在哪里,是单片机的CAN模块处理速率不够,还是通过串口监控CAN总线不完善? |
|
|
|
|
|
- UID
- 104673
- 性别
- 男
|
很简单,100K的速率,单片机通过CAN接收数据,绰绰有余。不会丢包。主要问题是你的串口发送来不及发送这么多的数据。你可以用CANoe每100ms发送一帧报文,然后单片机接收,再通过串口9600送出去,肯定不会丢包 |
|
|
|
|
|