CAN总线由于具有实时性和可靠性高、组网成本低等优点,近年来在汽车工业、楼宇自动化、工厂自动化、机器人控制等领域得到广泛应用。CANopen协议不仅定义了通信规范,而且为可编程系统、不同器件、接口等设备应用子协议定义了大量的行规。遵循CANopen协议开发出的设备能实现不同生产厂家的产品间的互操作。
要掌握CANopen协议,重点是对对象字典和设备模型的理解以及对4类通信对象的掌握。本文先对CANopen协议进行削析,再重点介绍在PICl8F458单片机上开发基于CANopen协议的节点,最后通过温度测控系统实验验证了系统信息传递的可靠性、准确性和实时性。
1 CANopen通信协议简介
CANopen协议是CiA协会基于CAN总线定义的应用层协议之一,在各种控制系统中得到了广泛应用。它以CAN芯片为硬件基础,有效利用CAN芯片所提供的简单通信功能来满足工业控制网络的复杂应用层协议要求。CANopen网络是主从站(Master—Slave)结构,系统的运行由主站控制,主站可以对127个从设备进行控制,不同设备通过CAN总线进行连接组网。图1为CANopen设备模型。CANopen通信协议接口用于提供在总线上收发通信对象的服务,不同CANopen设备间的通信都是通过交换通信对象来完成的。CANopen协议中定义了4种通信对象(通信模式),用于对不同作用的信息进行处理:NMT对象(网络管理对象)、SDO对象(服务数据对象)、PDO对象(过程数据对象)、特殊功能对象。
设备对象字典是CANopen协议的核心概念,位于CANopen设备模型中通信层和用户应用层之间,为用户应用层提供接口。它是一个结构标准化的、有序的对象组,描述了该设备使用的所有数据类型、通信对象和应用对象。基于CANopen协议的网络系统中每一个设备都要实现一个唯一的对象字典,区别在于设备类型不同其内容则不同。对象字典中每个对象拥有一个唯一的16位主索引和8位子索引,由此实现对其中各种对象的访问。对象字典在系统软件设计中得以实现,然后使用标准化的EDS文件对其进行描述。
针对系统的要求,选用PICl8F458单片机作为从节点的主芯片。它是Microchip公司的单片16位高性能微控制器,具有片内CAN控制器,CAN模块符合CAN2.0B标准,带有3个发送缓冲区、2个接收缓冲区、2个接收屏蔽寄存器、6个完全接收滤波器。CAN收发器采用PCA82C250芯片,它具有高速稳定的差动发送和接收能力,可作为CAN协议控制器和物理总线接口。此外,为了便于调试和与主控制器的通信,系统中还扩展了RS232接口。
对于各个节点都采用预定义连接集中规定的11位ID。它由4位功能码和7位节点ID组成。其中各通信对象具体分配的COB—ID为NMT SERVICE一000、EMER—GENCY一080、TIMESTAMP一100、SYNC一080、TPD01—180、RPD01—200、TPD02—280、RPD02—300、TSDO一580、RSDO一600、HEARTBEAT一700。
设定传感温度节点的ID为6,以TPDO对象方式发送测到的温度。所以发送对象的COB—ID分别为TP—D02(200+6)、TSD()(580+6)、HEARTBEAT(700+6)、EMERGENCY(080+6),接收对象的COB—ID分别为NMT SERVICE(000)、RSD()(600+6)。
设定温度调节节点的ID为7,以RPDO对象方式接收从传感温度节点发送的温度,并以TPDO对象方式发送调节状态。所以发送对象的COB—ID分别为TPD01(180+7)、TSDO(580+7)、HEARTBEAT(700+7)、EMERGENCY(080+7),接收对象的COB—ID分别为NMT SERVICE(000)、RSDO(600+7)、RPDO2(280+6)。
设定命令节点的ID为8,以RPDO对象方式分别接收从传感温度节点发送的温度和从温度调节节点发送的调节状态,也可用NMT对象方式发送NMT报文。所以发送对象的COB—ID分别为TSDO(580+8)、HEART—BEAT(700+8)、EMERGENCY(080+8)、NMT MAS—TER(000),接收对象的COB—ID分别为NMT SERVICE(000)、RSD0(600+8)、RPD02(280+6)、RPD01(180+7)。
2.2 节点对象字典的建立
对象字典的内容除了包括CANopen协议规定的必需项外,还包括调用的各功能模块和参数设定项。它的正确配置和使用,是保证整个CANopen网络正常运行的核心,是节点实现其预定功能的必要保证。对象字典的组建采用C语言在头文件中编写,通过Struct(结构)语句实现对象字典内容的寻址。对象字典的规划赋值设计按照CANopen协议规定的格式完成,每个节点的对象字典都具有相同的结构,但具体内容要根据不同的设备而定义,包含了描述这个设备和它网络的所有参数。对象字典的操作是CANopen协议软件的核心,通过对象字典实现网络间参数的映射从而完成各种数据的处理,需要编写对象字典解码子函数、读对象字典子函数和写对象字典子函数。下面以温度调节节点为例介绍对象字典的创建、赋值和具体操作。表1显示了此节点中PDO的各个参数。
命令节点进行NMT对象操作时再观察各节点状态:当按下按钮1时,节点进入欲操作状态;当按下按钮2时,节点重启。
从以上两个实验可以看出,整个系统在运行过程中达到了满意的控制效果,实现了基于CANopen协议的对象数据的交换,通信传输理想。
应用PIC18单片机自行开发的基于CANopen协议的节点,实现了对4种通信对象信息的通信处理,并通过测试验证了系统信息传递的可靠性、准确性和实时性,很好地满足了基于CANopen协议的温度测控系统的要求;对于CANopen在国内的应用和普及,以及CAN网络和驱动产品尽早和国际接轨,具有重要的意义。
关键字:PIC18单片机 CANopen 通信协议
引用地址:
PIC18单片机的CANopen通信协议简介及设计
推荐阅读最新更新时间:2024-03-16 14:50
基于单片机的现场无电源电子密码锁设计
0 引言 目前,市场上有多种基于IC卡设计的电子锁,广泛应用于宾馆、公寓、仓库、学校等场所。这些场合能够提供很好的直流或交流电源,电子锁的控制部分可以长时间方便地获取稳定的电源。但是,在野外环境中往往不能为控制部分方便地提供电源,需要手持部分为控制部分提供电源,执行开锁和闭锁操作,因此传统由控制部分提供电源的电子锁不能满足野外环境的需要,例如采油井、注水站、电信通讯井等,在这些地方,尤其是偏远的地方,往往对安全性要求较高,提供电源又较为困难。 本文介绍了一种电子锁,电子锁系统分为控制和手持两部分。手持部分的电源采用锂电池,控制部分的工作电源由手持部分提供,数据线和电源线共用一根线,有效解决了上述问题,使用方便。 1
[单片机]
DMR通信协议与数字对讲机基带模块设计
引 言 随着嵌入式技术的发展,单片机、DSP、ARM等处理器已经广泛应用于通信行业,尤其是在无线通信领域更是有其不可替代的作用。本设计中所用的核心器件MSP430FG4619是TI公司推出的MCU,TMS320VC5510(简称“VC5510”)是TI公司的5000系列DSP,而语音编解码芯片AMBE一2000也是以DSP为内核的。 无线对讲机由于具有即时通信、经济实用、成本低廉、使用方便以及无需通信费等优点,因此广泛应用在民用、紧急事件处理等方面。尤其在紧急事件处理以及没有手机网络覆盖的情况,对讲机更加显示出它的不可取代的地位。如今,模拟对讲机仍然占据绝大部分的市场,但是由于数字通信可以提供更丰富的业务种类,更好的业务质量、
[嵌入式]
基于CY7C646xx的通用串行总线接口
1 USB简介
UBS(Universal Serial Bus)是一种标准的计算机与外设的连接接口,1995年问世,并由Compaq,Digital Equipment Corp.(现属Compaq),IBM,Intel,Microsoft,NEC及Northern Telecom七家计算机与通信工业领域的领先公司组成的联盟定义和推广。1996年,该联盟公布了USB 1.1规范。其后,随着USB的完善和应用的需求,促进了高速USB2.0规范在1999年发布。目前已经成为外设的流行接口选择。
USB具有诸多特性和特点。USB统一了各种接口设备的连接头,如通信接口、打印机接口、显示器接口、音响输入/输出设备、
[嵌入式]
美高森美LiteFast串行通信协议减少客户设计工作和上市时间
致力于在功耗、安全、可靠性和性能方面提供差异化半导体技术方案的领先供应商美高森美公司(Microsemi Corporation,纽约纳斯达克交易所代号:MSCC)宣布提供全新LiteFast解决方案,这是一项专有的轻量、高速、低迟滞、点至点串行通信协议。涵盖多种应用领域的嵌入式系统使用高速串行接口和协议来实现超过1Gbps速率传送数据。LiteFast充分利用SmartFusion 2系统级芯片(SoC)现场可编程逻辑器件(FPGA)、IGLOO 2 FPGA和RTG4 高速信号处理耐辐射FPGA器件中的串行器/解串器(SerDes)收发器模块,简便实施高速串行链接,推动客户减少设计工作和上市时间,而且无需重度的逻辑利用率,极大地
[嵌入式]
一种基于数字水印的无线传感器网络敏感数据通信协议
无线传感器网络具有节点成本低、电源消耗小、网络自组织等优点,已广泛地应用于很多领域[1]。 无线传感器网络在很多应用中,存在着在节点间传输敏感信息的需求。敏感数据是指密钥、ID、军事领域中的关键数据、节点的身份验证信息等涉及系统安全、稳定运行的一类关键数据。这类数据通常要求采用一种比常规通信方式更安全、可靠的方式传递。敏感数据的传输有很多种方法,比较常见的是基于加密技术来实现。但由于传感器节点资源有限,复杂的算法无法在节点中实现[2],这些算法在资源耗费方面、加密强度方面尚不完美。 本文基于数字水印的原理来实现敏感数据的传输,通过信息隐藏来实现敏感数据的传输。与加密传输相比,该算法具备简单高效、不易察觉等优点,适合于在无线传感
[工业控制]
通用光伏系统测试平台的设计
光伏系统是利用太阳电池组件和其他辅助设备将太阳能转换成电能并进行一定应用的系统。近来,各种新型的光伏系统被不断设计投产。为优化和提高系统性能和稳定性,工程师在设计这些系统的过程中需要额外设计系统测试方案对其性能和实际运行效果进行测试,如采集和记录充放电效率、运行功率、实时太阳能电池板功率等数据。不同的工程师在设计系统时若采用不同的数据测试方案,这将可能会导致项目管理混乱和引起不必要的重复设计,而实际上光伏应用系统有着许多的共性,测试过程中所需要的参数具有一定的重复性,因此可以设计一种具有一定扩展能力的通用光伏系统测试平台,测试常用光伏系统参数并兼容一些额外的参数和计算,以简化和统一测试标准,缩短系统设计周期。 1 系统基本结
[测试测量]
CANopen从站设备的快速实现方法
CANopen协议作为CAN总线的应用层协议,拥有复杂的网络管理、实时过程数据对象、服务数据对象、预定义连接和特殊功能对象等基本功能,另外CANopen协议还定义了指示灯规范、通信安全架构、在线配置、以及EDS文件规范、标准设备规范等一系列的协议规范。因此开发基于CANopen协议的设备有着非常高的难度以及较长的开发周期。 为了解决CANopen产品开发难的问题,广州致远电子有限公司开发的一款嵌入式CANopen从站协议转换模块——XGate-COP10,转换为UART接口,支持CANopen标准协议DS301、DS302、DS303、DS305。XGate-COP10为CANopen从站协议转换模块,其内部已经集
[嵌入式]
现场总线的基本概念及其特点
什么是现场总线 随着网络技术发展和市场需求的变化,工业设备实现网络化管理控制已经成为一种必然趋势,改善 工业控制 系统同样也需要在不同生产设备之间实现高效、可靠、标准化的互联,经过多年的努力,国际上最后公布了8种现场总线。制定总线的初衷在于不同厂家的设备进行互连,可是,这8种总线目前是不能完全互连的。
所谓现场总线,是指将现场设备(如数字传感器、变送器、仪表与执行机构等)与工业过程控制单元、现场操作站等互连而成的计算机网络,具有全数字化、分散、双向传输和多分支的特点,是工业控制网络向现场级发展的产物。现场总线控制系统FCS是集当今计算机技术、网络技术和控制技术为一体的当代最先进的计算机控制技术,它适用于工业过程控
[嵌入式]