东方集成-测试测量专家,仪器仪表专业网站
首 页 采购仪器设备 租赁仪器设备 测试应用系统集成 计量校准和管理外包 公共保税仓库 客户服务专区
       集成报道  行业动态  技术文章  技术专题  展会信息
当前位置:客户服务专区 > 电子测量测试  
如何写一个简单的CAN应用层通讯协议

2007-06-28
应该从哪几个方面来构造协议?
  CAN协议的基本要素是ID、周期和信号与消息的映射关系。因此构造协议的主要任务是ID分配、定义消息周期、确定信号与消息的映射关系。这三个方面的设计都同等重要,设计要考虑的主要因素有数据传输的实时性要求(即所谓的时序)、数据的相对重要程度、与数据相关的应用控制算法对数据的时间要求。

  协议设计实质上是非常复杂的工作,对于国内来说,由于我们缺乏相应的经验,国外又对我们进行技术封锁,因此到目前为止这还是阻碍中国技术发展的主要障碍。

  国际上也存在一些现有的标准,如CANopen、SAE J1939.SAE J1939这是一个有汽车工程师协议牵头制定的应用与卡车电控网络的协议。不过它主要是应用与卡车的电控系统,不能直接照搬到轿车控制系统中。

  但是随着汽车电子的发展,汽车电子设计分工也越来越细,这部分工作也有厂商提供工具实现协议的计算机辅助设计。比如Mentor Graphics公司的VNA就是是一款自动化的协议设计软件,了解它的设计技术有助于你理解协议构造的方方面面。详细信息欢迎进一步交流咨询。

还有实现通讯协议的程序代码结构是什么样的?
  首先CAN通讯功能包括物理层、数据链路层和应用层。物理层、数据链路层已经由硬件实现,目前都已经标准化,有现成的部件(CAN控制器和收发器)选择。因此在单片机上加上CAN控制器、收发器,软件实现相应的驱动程序就基本实现了CAN的通讯功能。

  但是这对于汽车电子上的应用还是远远不够的,因为数据链路层有很多功能没有定义如具有逻辑关系的消息之间的功能实现、网络管理等等。因此通讯协议的程序代码的结构应该是底层驱动+应用代码(通讯功能的应用代码)。
 
  如果考虑目前汽车电子嵌入式软件的技术发展,未来的结构应该是底层驱动+应用代码+抽象层。汽车电子软件开放式体系标准AUTOSAR也基本是这样的思路。目前也有很多软件厂商提供现成的解决方案,ECU软件开发只需要在该解决方案提供的基于数据读写的接口之上实现控制算法。这样做的好处在于软件设计人员可以把专长用于集中设计控制算法、保证其可靠性。这样的产品如Mentor Graphics的嵌入式软件(VTP + 网络管理 + 诊断。。。)就是这样的应用例子。
  
  → 汽车CAN/LIN网络系统测试
  → 用CAN/LIN总线实现车门分布式控制系统
  → CAN在汽车电子中的应用
  → CAN入门书
  → 基于CAN总线的汽车仪表软件实现方案
  → 基于CAN总线的汽车内部网络系统研究
  → CAN基本知识
  → 简化CAN和LIN车载网络测试
 
  关于我们 | 网站地图 | 最新招聘 | 联络方式 | 友情链接 | 京ICP备案06026460号  
北京东方中科集成科技有限公司  版权所有