英创信息技术WinCE主板新CAN驱动使用说明

12月份,英创对现主要销售的产品em928x、esm928x、em335x、esm335x系列工控主板的can驱动做了一次较大升级。主要目的是修复原有bug,同时优化部分逻辑,使得使用起来更加方便。
优化内容
1、修复了原驱动打开过滤器后一个可能导致接收丢包的bug
em335x及esm335x系列主板在打开过滤器后,can接收单元过少,在高速收发时可能因为来不及收发导致丢包。新驱动修改了该部分逻辑,同时定义过滤器最大数为4个。新的过滤器设置说明请参考附录《英创新can驱动接口调用方法及说明》过滤器设置一节。
2、增加一套新的接口函数
1)新的接口更加简洁清晰,使用起来更加方便。详细请参考附录《英创新can驱动接口调用方法及说明》。
2)使用统一标准,英创公司计划在之后推出的产品也采用该标准,方便客户在升级更换平台时移植起来更加方便。
3)完全兼容老驱动。新驱动保留了老驱动所有接口。升级之后,之前开发的can应用程序可以继续照常使用。
3、增加对can总线错误自动复位功能,修改了can总线错误处理逻辑结构
原驱动在can总线出错后会上报事件通知上层应用程序,同时挂起等待上层应用程序处理完错误事件后手动复位can总线。在等待期间,无法进行can的收发工作。
图 原驱动总线错误处理流程
新驱动考虑到,实际应用中用户更希望在can错误排除后,能够尽快恢复通信。大部分时候并不需要停下来等待can错误处理完毕。所以新驱动在can总线出错后会自动检查恢复can总线。
图 新驱动总线错误处理流程
4、修改can总线错误处理模式
原驱动需要单独获取can错误事件,然后再通过接口查询错误类型,再决定处理方式。新驱动做优化修改了处理模式,使得使用起来更灵活方便。
图 原驱动can总线错误处理模式
新驱动can总线错误信息改为通过帧形式上报,用户可以通过注册表[hkey_local_machine\drivers\builtin\can1]中buserrorreport项设置是否需要接收错误帧,默认不接收。
图 新驱动can总线错误处理模式
错误帧详细定义见附录《can错误帧定义》。
5、修改发送逻辑
原驱动发送指令只是将需要发送的数据帧放入发送buffer区,只要buffer区未满均返回成功,但是不代表实际发送成功。
原can驱动会自动检查发送buffer区里未发送的can包并尝试发送,对未发送成功的can包会自动重发,直到发送成功。
在can数据线断开时,can发送指令会返回true,但实际数据仍存在发送buffer中并未发送出去。当can数据线重新连接后,buffer中的数据才得以发送。
图 原驱动can发送流程
新驱动发送函数为阻塞函数,超时时间默认为1000ms,可以设置注册表[hkey_local_machine\drivers\builtin\can1]中txtimeout项修改该时间长短。返回值为实际发送是否成功的逻辑值。
当can总线错误,发送失败后,can驱动不会自动重发can包,所以需要应用层自行判断是否重发。
图 新驱动can发送流程
6、增加can接收buffer到8k,可以缓存更多can包
附录
《英创新can驱动接口调用方法及说明》
《can错误帧定义》

集成电路技术大幅提升MEMS性能
LED灯丝的内部构造剖析,单个LED失灵,开路保护器为你保驾护航!
Wision A.I.坚持临床循证医学 为医疗AI界带来很多参考
英特尔谈如何与Nvidia争夺AI芯片市场
是否可以将Shazam称为有听歌识曲功能应用的鼻祖?
英创信息技术WinCE主板新CAN驱动使用说明
COVID-19对存储器行业的影响
基于触摸屏和RS-232串口实现捷联惯导显控系统的设计
泛在电力物联网将是新时代电网发展的新思路新理念和新战略
动态内存管理在面向嵌入式实时系统中的研究
nodemcu和esp8266是什么关系?
!租售/回收/维修HP6030A直流电源HP6030A 小兵
中兴通讯陈志萍:推动工业场景数智升级,促进“数实”深度融合
电池中的水和液是这样吗
如何构建STM32单片机keil的开发环境
光纤激光水听器的基本原理,国内外光纤激光水听器的研究进展以及发展趋势
弹片微针模组在手机锂电池性能测试中的作用
打造稳定快速的家庭网络,选购高性能4G路由器
对电动汽车充电原理及充电过程予以介绍
采用AT89C51报站系统液晶显示硬件电路设计