《基于CANopen协议的车载平台数据通讯系统.docx》由会员分享,可在线阅读,更多相关《基于CANopen协议的车载平台数据通讯系统.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于CANopen协议的车载平台数据通讯系统ronggang导语:随着网络技术的不断开展,车辆系统中的网络化程度也越来越高,这就要求一个车载装置能和其它的设备进展互连,进而有利于形成整车监控系统在当代战争中,随着武器装备系统的机动化、自动化和信息化程度的不断进步,军用车辆上的车载设备也不断增多,其中很多设备如车载雷达、车载光学瞄准设备、车载武器设备等,都需要一个稳定的程度平台作为基座,以保证武器系统的瞄准、跟踪和准确打击。同时,随着网络技术的不断开展,车辆系统中的网络化程度也越来越高,这就要求一个车载装置能和其它的设备进展互连,进而有利于形成整车监控系统。目前,在车辆中大多数设备都通过CAN总
2、线进展连接,但是其应用层协议的不统一给不同厂商之间的设备互连带来了困难。CANopen是基于CANControllerAreaNetwork总线的应用层协议,它最初由从事工业控制的CiACANinAutomation会员开发。由于CANopen是一种公共、开放、通用的协议,而且精练透明、轻易开发,因此在发布后不久就获得了广泛的成认。如今已经被承受为CAN高层协议的标准之一。尤其在欧洲,CANopen协议被以为是在基于CAN的工业系统中占指导地位的标准,已经应用于多种领域,如越野车、海上电子设备、医疗设备甚至于还可应用于公共汽车和铁路,且针对行业应用,实现比拟简洁。一方面,将CANopen应用于
3、车载平台装置,可使它很方便地挂接到总线上,这样不仅解决了设备间的互连问题,同时也进步了信息传输的可靠性、实时性及装置的标准化、开放化程度。另一方面,在国外CANopen的应用已经非常广泛,而在国内有关CANopen的文章还很少,希望借此文章给从事CAN总线技术开发的人员提供一些有用的信息,使我国的CAN总线应用早日与国际接轨。1CANopen协议设计的本质和核心内容CAN处于OSI网络模型中物理层和数据链路层,而CANopen是基于CAN的应用层,由于现场总线通常只包括一个网段,因此不需要第3层传输层和第4层网络层,也不需要第5层会话层、第6层描绘层的作用。正是由于有了CANopen这样应用层
4、协议的存在,进而使CAN总线成为了一个更加完善的网络系统。1.1CANopen协议设计的本质面向对象CANopen协议在设计的时候,对总线上传输的数据进展了分类,即每一个传输数据都是某一特定类的对象,进而实现了面向对象的程序设计。在CANopen中每一类传输对象都有其标准化的格式,进而实现了应用层构造上的统一。这样无论从标准化角度,还是从模块化程序设计角度讲,CANopen协议都是一个设计比拟完善的协议。在CANopen协议的数据传输中共定义了4类对象通讯形式,分别为治理对象NMT、效劳数据对象SDO、经过数据对象PDO和特殊功能对象。其中NMT用来传递主节点对整个网络系统的治理信息,SDO用
5、来传递网络系统中的配置信息,PDO用来传递经过数据信息例如电压的变化值,特殊功能对象包括同步对象SYNC、紧急对象Emergency、时间基准Time-Stamp等。各类对象传输时的帧格式在参考文献中有具体的规定,在这里就不具体介绍了。在实际的工程中用户只要根据需要,按照类的规定把要传输的数据映射到相应的对象中就可以了。1.2CANopen协议中的核心内容对象字典ObjectDictionary为了对各类对象进展标准化和方便的治理,在CANopen协议中定义了对象字典的概念。它是一个有序的对象组,其中定义了一个设备的所有信息,在CANopen网络系统中每一个设备都要有一个唯一的对象字典,每个设
6、备的对象字典具有构造一样、内容不同的特点。通过对对象字典中的对象定义一个唯一的16位主索引和8位子索引,就可以方便地访问对象字典中的对象。CANopen协议中定义了通用的对象字典构造,其中规定了各种数据在对象字典中的位置区域。在我们建立设备对象字典的时候,主要工作应集中在定义通讯子协议区域10001FFF和制造商特定子协议区域20005FFF局部。在整个CANopen协议中对象字典起到了连接DLL模块通讯接口和应用程序的作用。我们要想把一个应用程序中的数据如I/O的输入值送到CAN总线上,我们首先要确定这个数据属于对象字典中的哪一类对象例如I/O口的输入值应为经过数据对象,然后用DLL模块访问
7、对象字典中相应的对象并把其按照相应的帧格式发送到CAN总线上去,进而完成了数据的传输。2车载平台数据通讯系统的实现2.1数据通讯系统的组成在我们的调平系统中,平台采用4点支撑,由4个1KW、24V的直流电机和减速器、T型丝杠相连接,以控制平台中4个支点的上升或者下降。主控制器、4个电机控制器和USB-to-CAN通过CAN总线相连,程度传感器和手操器通过RS232接口和主控制器相连,其构造如图1所示。其中主控制、电机控制器和手操器为我们自行开发的嵌入式设备,电机控制器可以实现准确的电机位置控制,手操器可以提供手动调平功能。程度传感器为CrossbowTechnology公司消费的CXTD02型
8、,它可以由RS232口送出准确的平台X、Y轴角度密位信息;USB-to-CAN设备为德国IXXAT公司消费的USB-to-CANcompact,其中包含了SJA1000CAN控制器可完成消息的收发,并可以将CAN信号转换成USB信号传递给上位机,上位机通过运行IXXAT公司的监视软件miniMON可以在线观察总线上传输的数据。2.2系统中CAN硬件接口设计在主控制器和电机控制器中微处理器采用FUJITSU公司的MB90F543芯片,其本身带有内嵌CAN控制器,因此只需加一个CAN总线驱动器,就可方便地实现主控制器和4个电机控制器之间的通讯。本系统中选用了PCA82C250收发控制器,该芯片提供
9、对总线的差动发送才能和对CAN控制器的差动接收才能,PCA82C250是标准的CAN收发器,实验显示,只要总线的每米电容小于120pf条件下,就知足CAN总线传送间隔的标准。CAN总线驱动电路图略。为了加强总线的抗干扰才能,总线的通讯介质采用带屏蔽线的双绞线。2.3对象字典的建立在网络系统中每一个设备都要有一个唯一的对象字典,其中定义了各种对象的属性如ID、发送方式等。在我们的系统中共有5个节点,它们以主从方式工作1个主节点和4个从节点,主控制器对应主节点,4个电机控制器对应4个从节点。为了系统扩展的方便,我们设4个从节点的节点号分别为10、11、12、13,在各个节点对象字典中的对象ID都采
10、用预定义连接集中规定的11位ID,它由4位功能代码和7位节点号组成。下面以主节点对象字典的建立为例讲明对象字典的建立方法。首先要分析主节点在网络中的作用,进而确定对象字典中要包含哪一类对象及其个数,然后定义对象的属性。在我们的系统中主节点要支持从节点的访问,因此需要一个SDO;主节点要向4个从节点发送位置信息,因此要有4个Tx-PDO和4个Rx-PDO,其中每个PDO又由TxRxPDOParameter和TxRx-PDOmapping两局部组成;当系统中发生紧急情况的时候主节点要发送紧急信息,因此要有1个应急指示紧急对象EmergencyObject;向从节点发送的位置信息保存在制造商特定子协
11、议区域20005FFF中;另外主节点要完成各个从节点的治理工作,因此还要有NMT治理模块。SDO、PDO的属性设置如表1、2所示,由于4对PDO的属性除了映射值不用以外,其他属性根本一样,因此只给出了向从节点号为10的从节点发送接收PDO的设置。对象索引接收ID发送IDSDOI200H580H600H对象索引ID传输类型映射参数Tx-PDOI800H0x18A2550x20000110Rx-PDOI400H0x20A2550x20000208在表2中传输类型255表示异步、事件触发传输,映射参数0x20000110按照从左至右的顺序分别表示将对象字典中主索引为2000H,子索引为01H的16位
12、数值10映射到PDO中去。也就是讲将保存在2000H处的位置信息映射到PDO中发送。在对象字典建立完成之后要生成EDSElectronicDataSheet来描绘这个设备的对象字典,主节点的EDS如图2所示。2.3DLL模块的实现MB90F543具有两个CAN控制器分别为CAN0和CAN1,我们只用CAN0,这样CAN1可以在系统扩展时使用。CAN控制用具有如下的特点:符合标准CAN2.0A和CAN2.0B;支持通过接收远程帧发送数据;16个收、发缓冲区,每个缓冲区都具有29比特ID和8字节数据,多级缓冲配置;每个缓冲区支持标准帧和扩展帧的多种过滤方式;波特率可从10Kbit/s到1Mbit/
13、s。在我们系统中使用标准CAN2.0A,波特率为125k/s,并且为每类消息分配了一个独立的缓冲区,这样做可以减少中断程序的处理时间,进而进步了系统的实时性。DLL模块是对象字典和CAN控制器之间的通讯接口,它要完成的主要工作是:对CAN控制器进展初始化,其中包括波特率设置和CAN存放器初始化等;对CAN引发的中断处理,其中包括:1在发送时通过访问对象字典将各种对象按照规定的帧格式发送到总线上;2在接收的时候把接收到的对象信息写到对象字典的相应位置中去。我们用两个函数-DLL_InitCAN和DLL_Interrupt来实现CAN控制器的初始化和中断处理功能。2.4主控制器的应用程序流程在系统
14、中各个从节点被配置成节点监测状态,主节点通过检测4个从节点发送的周期性心跳报文Heartbeat来判定各个从节点的工作状态。主控制器的应用程序流程为:在系统上电后主控制器首先判定各个从控制器是否发出Boot-Up消息,假如有Boot-up消息那么让各个从节点进Operational状态并接着判定是否有心跳报文Heartbeat产生以判定各节点是否成功进Operational状态,否那么通过指示灯报错,然后收集程度传感器输出的X、Y轴密位信息并判定是否在误差带内,接着通过调平策略解算出3个电机应该上移或者下移的位置3点即可解决一个平面,并且通过CAN总线将位置信息传送给电机控制器,电机控制器在运
15、动了相应的位置后向主控制器发出确认消息,主控制器在接到确认消息后,再次收集程度传感器输出的位置信号,假如位置误差在误差带内那么数据传输停顿,否那么循环上述经过。其流程图如图3所示。3实验结果整个平台在调平经过中到达了满足的效果,调平的时间在2min之内,调平精度能到达3,这从一方面验证了通讯系统的可靠性。为了更直观地观察数据传输经过,我们通过运行监视程序miniMON可以在上位机上实时地显示数据传输的全经过,这无论从系统调试方面还是从系统检验方面来讲都是很有意义的。系统运行时的数据通讯如图4所示。通过监视数据的传输,我们可以更加确认数据传输的可靠性。4完毕语车载设备的网络化、标准化是组成车载监控系统的一个重要条件,同时也是车载设备开展的一个重要方向。CANopen协议作为CAN总线的应用层协议,在车辆领域有着广阔的应用前景。本文通过把车载平台做成符合CANopen协议的标准化装置,进而增强了设备的可扩展性同时也进步了数据传输的可靠性,可以知足当代化战争中军用车载设备的要求。