PIC18单片机的CANopen通信协议1

上传人:时****我 文档编号:227115170 上传时间:2023-08-10 格式:DOCX 页数:6 大小:692.17KB
收藏 版权申诉 举报 下载
PIC18单片机的CANopen通信协议1_第1页
第1页 / 共6页
PIC18单片机的CANopen通信协议1_第2页
第2页 / 共6页
PIC18单片机的CANopen通信协议1_第3页
第3页 / 共6页
资源描述:

《PIC18单片机的CANopen通信协议1》由会员分享,可在线阅读,更多相关《PIC18单片机的CANopen通信协议1(6页珍藏版)》请在装配图网上搜索。

1、PIC18 单片机的 CANopen 通信协议技术分类: 微处理器与 DSP | 2023-01-02广西大学 蒋智康 宋春宁 宋绍剑引 言CAN 总线由于具有实时性和牢靠性高、组网本钱低等优点,近年来在汽车工业、楼宇自动化、工厂自动化、机器人把握等领域得到广泛应用。CANopen 协议不仅定义了通信标准, 而且为可编程系统、不同器件、接口等设备应用子协议定义了大量的行规。遵循 CANopen 协议开发出的设备能实现不同生产厂家的产品间的互操作。要把握CANopen 协议,重点是对对象字典和设备模型的理解以及对4 类通信对象的把握。本文先对 CANopen 协议进展削析,再重点介绍在 PICl

2、8F458 单片机上开发基于CANopen 协议的节点,最终通过温度测控系统试验验证了系统信息传递的牢靠性、准确性和实时性。1 CANopen 通信协议简介CANopen 协议是 CiA 协会基于CAN 总线定义的应用层协议之一,在各种把握系统中得到了广泛应用。它以 CAN 芯片为硬件根底,有效利用 CAN 芯片所供给的简洁通信功能来满足工业把握网络的简洁应用层协议要求。CANopen 网络是主从站(MasterSlave)构造,系统的运行由主站把握,主站可以对127 个从设备进展把握,不同设备通过CAN 总线进展连接组网。图 1 为 CANopen 设备模型。CANopen 通信协议接口用于

3、供给在总线上收发通信对象的效劳, 不同 CANopen 设备间的通信都是通过交换通信对象来完成的。CANopen 协议中定义了 4 种通信对象(通信模式),用于对不同作用的信息进展处理:NMT 对象(网络治理对象)、SDO 对象(效劳数据对象)、PDO 对象(过程数据对象)、特别功能对象。点击看原图设备对象字典是 CANopen 协议的核心概念,位于 CANopen 设备模型中通信层和用户应用层之间,为用户应用层供给接口。它是一个构造标准化的、有序的对象组,描述了该设备使用的全部数据类型、通信对象和应用对象。基于 CANopen 协议的网络系统中每一个设备都要实现一个唯一的对象字典,区分在于设

4、备类型不同其内容则不同。对象字典中每个对象拥有一个唯一的 16 位主索引和 8 位子索引,由此实现对其中各种对象的访问。对象字典在系统软件设计中得以实现,然后使用标准化的 EDS 文件对其进展描述。2 温度测控系统的软、硬件设计2.1 温度测控系统组成图 2 所示温度测控系统包含 3 个节点,它们构成一个 CAN 网络。传感温度节点发送测到的温度,此节点由主芯片和温度传感器组成。温度调整节点接收到从传感温度节点发送的温 度数据后,低于下限温度加热,高于上限温度降温,并发送调整状态;此节点由主芯片、状态显示灯和空调设备组成。命令节点接收从传感温度节点发送的温度和温度调整节点发送的 状态在液晶屏上

5、显示,并有按钮可以发送 NMT 对象,对整个系统进展把握;此节点由主芯片、液晶屏、状态显示灯和按钮组成。点击看原图针对系统的要求,选用 PICl8F458 单片机作为从节点的主芯片。它是 Microchip 公司的单片 16 位高性能微把握器,具有片内CAN 把握器,CAN 模块符合 CAN20B 标准,带有3 个发送缓冲区、2 个接收缓冲区、2 个接收屏蔽存放器、6 个完全接收滤波器。CAN 收发器承受PCA82C250 芯片,它具有高速稳定的差动发送和接收力气,可作为CAN 协议把握器和物理总线接口。此外,为了便于调试和与主把握器的通信,系统中还扩展了 RS232 接口。对于各个节点都承受

6、预定义连接集中规定的 11 位 ID。它由 4 位功能码和 7 位节点ID 组成。其中各通信对象具体安排的 COBID 为 NMT SERVICE 一 000、EMERGENCY 一 080、TIMESTAMP 一 100、SYNC 一 080、TPD01180、RPD01200、TPD02280、RPD02300、TSDO 一 580、RSDO 一 600、HEARTBEAT 一 700。设定传感温度节点的 ID 为 6,以TPDO 对象方式发送测到的温度。所以发送对象的COBID 分别为 TPD02(200+6)、TSD(580+6)、HEARTBEAT(700+6)、EMERGENCY(

7、080+6),接收对象的 COBID 分别为 NMT SERVICE(000)、RSD(600+6)。设定温度调整节点的 ID 为 7,以 RPDO 对象方式接收从传感温度节点发送的温度,并以TPDO 对象方式发送调整状态。所以发送对象的COBID 分别为TPD01(180+7)、TSDO(580+7)、HEARTBEAT(700+7)、EMERGENCY(080+7),接收对象的 COBID 分别为 NMT SERVICE(000)、RSDO(600+7)、RPDO2(280+6)。设定命令节点的 ID 为 8,以 RPDO 对象方式分别接收从传感温度节点发送的温度和从温度调整节点发送的调整

8、状态,也可用NMT 对象方式发送NMT 报文。所以发送对象的COBID 分别为 TSDO(580+8)、HEARTBEAT(700+8)、EMERGENCY(080+8)、NMT MASTER(000),接收对象的 COBID 分别为 NMT SERVICE(000)、RSD0(600+8)、RPD02(280+6)、RPD01(180+7)。2.2 节点对象字典的建立对象字典的内容除了包括 CANopen 协议规定的必需项外,还包括调用的各功能模块和参数设定项。它的正确配置和使用,是保证整个 CANopen 网络正常运行的核心,是节点实现其预定功能的必要保证。对象字典的组建承受 C 语言在头

9、文件中编写,通过 Struct(构造)语 句实现对象字典内容的寻址。对象字典的规划赋值设计依据 CANopen 协议规定的格式完成, 每个节点的对象字典都具有一样的构造,但具体内容要依据不同的设备而定义,包含了描述 这个设备和它网络的全部参数。对象字典的操作是 CANopen 协议软件的核心,通过对象字典实现网络间参数的映射从而完成各种数据的处理,需要编写对象字典解码子函数、读对象字 典子函数和写对象字典子函数。下面以温度调整节点为例介绍对象字典的创立、赋值和具体 操作。表 1 显示了此节点中 PDO 的各个参数。点击看原图点击看原图在此例中,PDO 报文是在对象字典中用通信参数和映射参数来描

10、述的。通信参数打算哪个 COBID 将被 PDO 使用,此例中 RPD0 的 COBID 为 286,TPDO 的 COBID 为 187。映射参数包含映射到 PDO 里的对象在对象字典中的索引和子索引,以及对象的数据长度。此例中映射到 RPDO 里的对象在对象字典中的索引为 3200,子索引为OO,长度为 2;映射到TPDO 里的对象在对象字典中的索引为 3100,子索引为 00,长度为 1。另外某些相关变量也由对象字典所描述,可以通过 sD0 对象传输方式进展下载修改或上传观看。此例中的上限温度、下限温度,就由对象字典主索引 3000、子索引 00 和主索引 3001、子索引 00 分别描

11、述。2.3 节点的 CANopen 协议的软件实现在节点上实现 CANopen 协议软件,首先要实现节点接收报文和发送报文的功能。接收报文的过程是,一旦有接收中断产生,就把 CAN 接收缓冲区接收到的数据和地址放到一内部阵列中,对接收到的报文进展分析,并送去执行相应的子函数(NMT 报文接收处理子函数、SDO 报文接收处理子函数、心跳报文接收处理子函数、SDO 报文接收处理子函数),最终返回主程序。发送报文的过程是,把需要发送的变量放到对象字典里,再把它们映射封装成相应的对象,最终将报文发送到总线上。主程序依据通信流程编写,模块上电后先进展通信初始化。其首先初始化 CANopen 协议中的通信

12、相关参数、对象字典、节点号,再初始化 CAN 把握器的硬件,包括单片机的内部存放器、定时器、串行口、CAN 把握器。通信初始化后自动进入节点初始化,并进展一些特定用户的初始化。完成后,发送一个启动报文自动进入预操作状态。此时用户的程序循环执行着,在每个循环里,调用接收报文 1 次。这个模块用来检查接收到的对象,并作相应的处理。在 NMT 报文到来之前始终持续在预操作状态。在这个状态里,节点可以通过 SD0 被配置和设置参数,但是不允许发送PDO。在相应的NMT 报文到来后,即收到启动远程节点命令后,进入操作状态,在这个状态就可以进展正常的通信了。在收到 NMT 报文,即停顿远程节点命令, 节点

13、进入了停顿状态,从而停顿 PDO 和 SDO 通信。3 试验结果在软件设计中编写了与上位机的通信模块程序,可以将每个节点接收和发送报文的 ID号、数据长度、数据转发到串口,便于上位机进展观测。图 3 为系统传输数据的过程,温度传感节点发送报文过程为发送自启动报文后以周期为1 s 发送心跳报文,以周期为 100 ms 发送PDO1 报文,发送数据为传感温度(分别为 19, 20,21)。上限温度和下限高温都为 20时,温度调整节点接收报文过程为接收到 NMT 报文命令后进入操作状态,不断接收 PDOl 报文。温度调整节点发送报文过程为发送自启动报文后以周期为 1 s 发送心跳报文,以大事触发方式

14、发送 PDOO 报文(发送数据为工作状态长度为 1,当接收到的温度低于 20时发送数据为 02 表示加热,当接收到的温度高于20时发送数据为 01 表示降温,当接收的温度为20时发送数据为 OO 表示保持),状态显示灯不断闪耀红色、黄色、蓝色。如在命令节点中发送 SDO 报文转变对象字典中的上限温度和下限温度,再观看各节点变化。状况 1,当上限温度低于 20(为 15)时,温度调整节点始终在降温状态,状态显示灯为红色。状况 2,当下限温度高于 20(为 25)时,温度调整节点始终在加热状态,状态显示灯为黄色,状况 3,当上限温度高于 20(为 25), 下限温度低于 20(为 15)时,温度调

15、整节点始终在保持状态,状态显示灯为蓝色。命令节点在液晶显示屏中显示实时温度,在状态显示灯中显示实时状态。点击看原图命令节点进展 NMT 对象操作时再观看各节点状态:当按下按钮 1 时,节点进入欲操作状态;当按下按钮 2 时,节点重启。从以上两个试验可以看出,整个系统在运行过程中到达了满足的把握效果,实现了基于CANopen 协议的对象数据的交换,通信传输抱负。结 语应用 PIC18 单片机自行开发的基于 CANopen 协议的节点,实现了对 4 种通信对象信息的通信处理,并通过测试验证了系统信息传递的牢靠性、准确性和实时性,很好地满足了基于CANopen 协议的温度测控系统的要求;对于CANopen 在国内的应用和普及,以及CAN 网络和驱动产品尽早和国际接轨,具有重要的意义。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!