CAN总线通信问题解决实例1
有效数据帧数量少≠总线空闲
CAN总线在很多初学者眼里,将其看的很简单。是的,CAN总线在一定程度上是简单,但是简单的使用情况下,不一定能够满足设计需求。
实例:对CAN总线仲裁机制判断失误。
实例:某单位开发一多节点系统时,在联网并运行96个节点后,主机发送广播帧,每个节点在收到广播帧后,立即回复一帧扩展帧,所有节点回复完一帧扩展帧数据后所需要的时间是总计约20秒钟。客户使用总线速率500Kbps、总线长度9.6米、支线长度每个节点15cm、终端电阻在总线两端。客户研发人员告知是每个节点在收到广播帧后立即进行了回复,每个节点的发送信息ID不同,仲裁采用CAN总线基本的仲裁机制,即最小ID的报文具有最高的发送优先级。
测试情况:理论上,通信可靠时在500Kbps时总线通信时,CAN-BUS最大可以传输约2000帧扩展帧。实际测试中,我们接入PFautoCAN2接口卡,打开PFautoCAN软件,对CAN总线通信状态进行分析,发现无错误帧,另外发现总线速度约4~5帧每秒。接入示波器。通信波形正常,示波器统计占空比,发现占空比接近95%,证明总线数据较多,并且大大超出了正常通信状态下最优CAN总线占空比。
分析:基本的CAN-BUS总线仲裁中,每次总线仲裁时间过长,当最小ID的报文获得总线权限并将一帧数据发送完毕后,其他节点再次进行总线仲裁,ID最小的节点再次获得总线使用权,发送数据;导致总线占用较多,而由于仲裁需要时间等原因,实际发送数据较少。
解决办法:针对每个节点,根据ID的不同,对收到广播帧后的回复时间做一定延时。客户按照这样的方法处理后,96个节点回复时间在1秒钟以内,达到使用要求。
—————————成都盘沣科技有限公司————————— 【咨询电话】028-62496199 【业务联系人】贺先生 【业务联系电话】13608179927 【业务联系QQ】1415175
【客服联系人】袁先生 【客服联系电话】18602801577 【客服联系QQ】1206695207
【公司地址】 四川成都龙泉国际汽车城 【盘沣官方网站】 http://www.pfautoecu.com |