首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

自制CAN总线的实验板接收到CAN总线上的信息少于CANoe监视到了,请帮忙分析一下原因

自制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总线不完善?

很简单,100K的速率,单片机通过CAN接收数据,绰绰有余。不会丢包。主要问题是你的串口发送来不及发送这么多的数据。你可以用CANoe每100ms发送一帧报文,然后单片机接收,再通过串口9600送出去,肯定不会丢包
返回列表