• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 数学学习 > 正文

    【基于CANOpen协议的汽车电子通信系统】通信系统相关的业务和协议

    时间:2020-07-14 07:29:57 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘要:CANopen是基于CAN(Controller Area Network)总线的应用层协议,本文通过对CANopen协议设计的实质和核心内容的分析,给出了基于该协议的汽车电子通信系统的设计和实现方案。 通过CAN硬件接口的设计和DLL模块实现了利用CANopen通信模型构造汽车电子通信系统的基本框架模型,总结了CANopen协议的在本方案中的优缺点和适用性。
      关键词:CAN;CANopen;LIN;OD
      中图分类号:TP393.04 文献标识码:A
      
      1 概述
      
      CANopen[1]协议集定义基于CAN的分布式工业自动化系统的应用标准以及CAN应用层通信标准。CANopen是CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen被认为是在基于CAN的工业系统中占领导地位的标准。CANopen协议集基于所谓的“通信子集”,该子集规定了基本的通信机制及其特性,如图1。
      应用层(Application layer):为网络中每一个有效设备都能够提供一组有用的服务与协议。
      通讯描述(Communication profile):提供配置设备、通讯数据的含义,定义数据通讯方式。
      设备描述(Device proflile):为设备(类)增加符合规范的行为。
      CANopen主要应用在汽车、工业控制、自动化仪表等领域,目前由CIA负责管理和维护。
      
      2CANopen协议设计的实质
      
      CAN处于OSI网络模型中物理层和数据链路层,而CANopen是基于CAN的应用层,因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)、第6层(描述层)的作用。正是因为有了CANopen这样应用层协议的存在,从而使CAN总线成为了一个更加完善的网络系统。
      CANopen协议在设计的时候,对总线上传输的数据进行了分类,即每一个传输数据都是某一特定类的对象,从而实现了面向对象的程序设计。在CANopen中每一类传输对象都有其规范化的格式,从而实现了应用层结构上的统一。这样无论从规范化角度,还是从模块化程序设计角度讲,CANopen协议都是一个设计比较完善的协议,图2是CANopen 内核[2]。图2CANopen master kernel在CANopen协议的数据传输中共定义了4类对象(通讯模式)[3],分别为管理对象(NMT)、服务数据对象(SDO)、过程数据对象(PDO)和特殊功能对象。其中NMT用来传递主节点对整个网络系统的管理信息,SDO用来传递网络系统中的配置信息,PDO用来传递过程数据信息(例如电压的变化值),特殊功能对象包括同步对象(SYNC)、紧急对象(Emergency)、时间基准(Time-Stamp)等。各类对象传输时的帧格式在参考文献中有详细的规定,在这里就不详细介绍。在实际的工程中用户只要根据需要,按照类的规定把要传输的数据映射到相应的对象中就可以了。
      
      3CANopen协议中的核心内容
      
      为了对各类对象进行规范化和方便的管理,在CANopen协议中定义了对象字典的概念。它是一个有序的对象组,其中定义了一个设备的所有信息,在CANopen网络系统中每一个设备都要有一个唯一的对象字典,每个设备的对象字典具有结构相同、内容不同的特点。通过对对象字典中的对象定义一个唯一的16位主索引和8位子索引,就可以方便地访问对象字典中的对象。CANopen协议中定义了通用的对象字典结构,其中规定了各种数据在对象字典中的位置区域。在我们建立设备对象字典的时候,主要工作应集中在定义通讯子协议区域(1000~1FFF)和制造商特定子协议区域(2000~5FFF)部分[4]。
      在整个CANopen协议中,对象字典起到了连接DLL模块(通讯接口)和应用程序的作用。我们要想把一个应用程序中的数据(如I/O的输入值)送到CAN总线上,我们首先要确定这个数据属于对象字典中的哪一类对象(例如I/O口的输入值应为过程数据对象),然后用DLL模块访问对象字典中相应的对象,并把其按照相应的帧格式发送到CAN总线上去,从而完成了数据的传输。
      
      4汽车电子通信系统设计与实现
      
      4.1汽车网络方案
      对于CAN在汽车上的应用,具有很多行业标准或者是国际标准,比如国际标准化组织(International Organization for Standardization)的ISO11992、ISO11783以及汽车工程协会(Society of Automotive Engineers )的SAE J1939。CAN总线已经作为汽车的一种标准设备列入汽车的整体设计中[5]。
      通过图3[6]可以看到,蓝色较粗线代表CAN总线,它连接了传动装置控制单元、灯控单元、门控单元、座椅控制单元以及仪表盘控制单元等等。红色较细线代表LIN总线,由LIN总线构成的LIN网络作为CAN网络的辅助网络,连接了车窗控制单元、雨刷控制单元、天窗控制单元等低速设备。
      LIN网络[7](Local Interconnect Network),由汽车厂商为汽车开发,作为CAN网络的辅助网络,目标应用在低端系统,不需要CAN的性能、带宽以及复杂性。LIN的工作方式是一主多从,单线双向低速传送数据(最高20K位/),与CAN相比具有更低的成本,且基于UART接口,无需硬件协议控制器,使系统成本更低。
      4.2系统中CAN硬件接口设计
      在汽车中ECU的设计,应该首先从安全的角度来考虑,对于关键控制部分如:汽车引擎、刹车装置、安全气囊等单元应该采用分散式控制;而对于那些与安全无关的单元如:灯控单元、门控单元、座椅控制单元等出于成本的考虑可以采用CAN与LIN混合的集中控制方式。图4给出ECU结构图。
      4.3DLL模块的实现
      MB90F543具有两个CAN控制器分别为CAN0和CAN1,我们只用CAN0,这样CAN1可以在系统扩展时使用。CAN控制器具有如下的特点[8]:
      (1)符合规范CAN2.0A和CAN2.0B;
      (2)支持通过接收远程帧发送数据;
      (3)16个收、发缓冲区,每个缓冲区都具有29比特ID和8字节数据,多级缓冲配置;
      (4)每个缓冲区支持标准帧和扩展帧的多种过滤方式;
      (5)波特率可从10Kbit/s到1Mbit/s。
      在我们系统中使用规范CAN2.0A,波特率为125k/s,并且为每类消息分配了一个独立的缓冲区,这样做可以减少中断程序的处理时间,从而提高系统的实时性。
      
      5结束语
      
      汽车电子设备的网络化、标准化是组成车载监控系统的一个重要条件,同时也是车载设备发展的一个重要方向。CANopen协议作为CAN总线的应用层协议,在车辆领域有着广阔的应用前景。本文通过把车载平台做成符合CANopen协议的标准化装置,从而增强了设备的可扩展性,同时也提高了数据传输的可靠性,可以满足现代化应用环境中的实际需求。
      
      参考文献
      [1]www.can-cia.de.
      [2] www.省略.
      [3]CiA DS-301,Version 4.0,June 16 1999.
      [4]CiA Draft Standard Proposal DSP 402, Version 1.0 Device Profiles Drives and Motion Control.
      [5] CANopen application profile for lift control systems CiA DSP 417.
      [6] M. Cheng, et al. Design and implementation of a braincomputer interface with high transfer rates IEEE Trans. Biomed. Eng., 2002,49:pp.1181-1186.
      [7]CiA DSP-401,Version 1.4,Dec 1996.
      [8]CANopen high-level protocol for CAN-bus H.Boterenbrood NIKHEF,March 20,2000.
      (本文审稿陈少敏)

    推荐访问:通信系统 汽车电子 协议 基于CANOpen协议的汽车电子通信系统 单片机通信协议 单片机通讯协议

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章