开发平台介绍:

  NUC970 + 内置CAN控制器(双通道CAN1\CAN2) + 官方Linux_Kernel(少量修改)

名词:

  终端,使用NUC970的硬件

异常表现:

  1、当CAN收发器(VP251)断电时,此时再恢复CAN外部通讯,终端表现为能收到全部的CAN数据,发送函数返回成功,但CAN总线上没有任何发送的数据显示。

  2、同样条件使用旧的CAN内核驱动时,竟然可以恢复通讯。

分析问题:

  1、查询CAN资料显示,当CAN收发器(VP251)断电时,CAN总线会进入BUSOFF的状态,在此状态下,接收成功发送失败是正常的表现。

  2、旧驱动之所以能恢复通讯,是因为旧驱动有BUG,BUSOFF后,收发都异常,应用程序重启了CAN总线,所以才能恢复正常。

解决办法:

  1、对于断电这种情况,应用程序可以监测到,可以增加补丁程序,当断电恢复时,强制重启CAN总线;

  2、尝试使用CAN总线状态指示,经过测试发现驱动中的状态指示不正常,无法正确显示BUSOFF\WARNING等状态,因此暂时无法判断。

  3、CAN总线寄存器中有一个自动重启的设置项,目前设置是禁止,如果设置为使能,CAN驱动会在BUSOFF后自动恢复正常。

  以上3个办法,目前使用1对应,2、3都需要修改和评审驱动程序后再做打算。

  

最新文章

  1. 封装Nvelocity的渲染方法
  2. JavaScript学习笔记——节点
  3. 『随笔』WCF开发那些需要注意的坑
  4. Hadoop 添加删除数据节点(datanode)
  5. 关键字替换排除HTML标签属性字符
  6. 如何在jmeter中调用自己写的java工具包
  7. node.js&mongodb&express 搭建个人博客系统
  8. UVA 11300 Spreading the Wealth (数学推导 中位数)
  9. 基于ViewPager的一些酷炫切换效果
  10. ComponentName的意思
  11. ABP之动态WebAPI
  12. SQLite 数据库
  13. win10 UWP FlipView
  14. ImageMagick 使用经验
  15. Linux:配置samba服务
  16. 微信小程序 - 超出文字省略组件
  17. 日志记录的作用和方法 java
  18. 洛谷P2015二叉苹果树
  19. linux下core dump
  20. PHP操作redis之String(字符串)、List(列表)(一)

热门文章

  1. 查看创世区块 Genesis Block和channel.tx文件
  2. sql注入02
  3. 【ARM-Linux开发】 pkg-config的用法
  4. 最新 欢聚时代java校招面经 (含整理过的面试题大全)
  5. Django之session详解
  6. Linux回收站的路径在哪里?
  7. 使用Dockerfile创建ssh服务的镜像02
  8. BIO和NIO实现文件复制
  9. Http请求头和响应头(Get和Post)
  10. js穿梭框;将两个table中的数据选中移动