4.4.2 启动CAN功能 18
4.4.3 复位CAN功能 20
4.4.4 清空接收区功能 21
4.4.5 发送功能 22
4.4.6 接收功能 24
4.4.7 信息显示功能 24
4.4.8 非法字符的限制 25
4.5 本章小结 26
5 软件的封装 26
5.1 制作安装程序 26
5.2 本章小结 31
结 论 32
致 谢 33
参考文献 34
1 绪论
1.1 CAN总线的历史状况
CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议[1]。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来[2]。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。
CAN(Controller Area Network)即控制局域网,是国际上认为是几种最有前途的现场总线之一。CAN最初由德国的Bosch公司因汽车监控和控制系统的需要而设计,并且被世界各个大的汽车制造厂商采用。目前CAN已经成为国际标准,它的应用范围已经不仅仅局限于汽车行业,在工业过程控制、机械工业、纺织工业、农用机械、机器人、安全检测、数控机床、工业锅炉、医疗器械及传感器等领域也被成功应用,并取得了一定的效益[3]。
1.2 CAN总线的研究现状
1.3 CAN总线存在的问题与发展方向
无应用层协议
CAN只定义了物理层和数据链路层[8],故CAN本身不是一个完整的协议,在面向特定应用时,必须设计相应的高层协议。目前,基于CAN的高层协议有CANopen[9]、J1939、DeviceNet[10]等,这些协议较为庞大复杂[11],开发应用的难度较大,而且使用成本较高。因此针对工业测控通信系统,很有必要设计简单高效的通信协议[12]。
针对传感器识别系统中的CAN总线通信问题,出现了一种CAN总线应用层通信协议— — DNP。通过采用自定义的CAN应用层通信协议有效地解决了传感器识别系统中的CAN总线网络的通信问题,满足了实际应用的需要。DNP协议的设计思想对中小型CAN总线通信的应用具有一定的参考价值[12]。
结合工业测控通信系统的需求,还有一种CAN的高层协议——CHP协议。通过初始化帧实现了地址的动态分配与帧格式的约定,采用节点分类和定期查询的方法实现了节点状态的监控。针对大块报文重传效率较低的问题,出现了集中应答和选择性重传错误帧的解决办法;针对大块报文可能导致较大延时的问题,有实时报文的抢占机制[2]。
优先级较低站点数据传输延时的不确定性
虽然CAN的应用非常广泛,但随着自动化技术的不断发展,它的局限性也日趋明显。传统的CAN总线采用了非破坏性总线仲裁技术,当数据传输发生冲突的时候,具有较高优先级的站点会在竞争中胜出,获得数统中,网络结构将越来越复杂,网络负载也越来越大,会造成优先级较低的站点在多次发送数据时与优先级高的站点冲突,并且在竞争中失败而不能发送数据。这样就会导致优先级较低站点数据传输延时的不确定性,时而较大,时而较小,整个网络的实时性和可靠性会大大下降,甚至不能满足控制的需求。目前,解决这一问题的主流思路有两种。第一种是在原有CAN事件触发协议的基础上对总线仲裁方式做一些改进;第二种是采用TTCAN 协议[3]。 CAN总线网络协议分析+文献综述(2):http://www.751com.cn/tongxin/lunwen_9287.html