《一种基于DSP28335的CANOPEN从站系统.pdf》由会员分享,可在线阅读,更多相关《一种基于DSP28335的CANOPEN从站系统.pdf(8页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102833141 A (43)申请公布日 2012.12.19 C N 1 0 2 8 3 3 1 4 1 A *CN102833141A* (21)申请号 201210306645.9 (22)申请日 2012.08.23 H04L 12/40(2006.01) (71)申请人天津瑞能电气有限公司 地址 300385 天津市西青区经济开发区兴华 七支路1号 (72)发明人谷兴华 侯立军 张永斌 江军谊 (74)专利代理机构天津滨海科纬知识产权代理 有限公司 12211 代理人孙春玲 (54) 发明名称 一种基于DSP28335的CANopen从站系统 (57) 摘。
2、要 本发明提供一种基于DSP28335的CANopen 从站系统,基于DSP28335硬件平台,可以适应于 嵌入式操作系统或前后台系统上构建的一个状态 机系统,包括CAN通信管理模块、对象字典管理模 块、网络管理模块、计时器管理模块、通信对象管 理模块等,实现PDO、SDO、NMT和同步报文处理等 CANopen的基本任务。本发明完全实现了CIA协 议中301协议功能;在DSP28335平台上实现了具 有针对性优化的CANopen从节点功能可以经过简 单修改移植到同系列CPU下,可移植性;代码可裁 减、对系统资源占用少、实时性高;可应用性强只 需简单配置即可实现不同的节点功能,开发成本 少,维。
3、护与功能扩展方便。 (51)Int.Cl. 权利要求书1页 说明书4页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 4 页 附图 2 页 1/1页 2 1.一种基于DSP28335的CANopen从站系统,其特征在于:包括: CAN控制器模块,提供CAN2.0的驱动接口; CAN通信管理模块,初始化底层CAN2.0硬件模块,为高层功能提供发送、接收数据及硬 件状态管理的通信接口,对底层硬件数据及通信状态进行管理; 对象字典管理模块,提供对象字典的访问与管理功能,完成对象字典的读或写任务;采 用双数组指针定位的方式来进行数据的查找,每个数据的。
4、访问只需对主映射数组与子映射 数组进行两次访问即可定位到单独数据条项,并且进行查找时直接使用数据位置指针访问 数据; 网络管理模块,包括NMT模块控制、MNT节点保护、NMT启动,NMT模块控制从网络接收 主站发送的NMT命令,为状态机模块提供切换中断源与切换命令;并且在系统需要的情况 下,完成波特率的自动分配; 状态机模块,负责从节点启动后的工作状态转换,为其它模块的工作状态提供限定条 件;CANopen状态机可切换的状态包括:初始化状态、预操作状态、操作状态和停止状态,状 态的切换依靠从网络管理模块中获得的NMT命令来驱动; 计时器管理模块,为CANopen控制器模块提供微秒级别精度的周期。
5、性中断与时基,负 责系统计时器的初始化及管理,CANopen节点的定时中断控制,为每个服务功能提供微秒精 度的定时中断服务源,提供时基查询功能; 通信对象管理模块,实现PDO、SDO、Emergency Object三个通信对象的处理与产生功 能。 2.根据权利要求1所述的基于DSP28335的CANopen从站系统,其特征在于:通过生成 工具OD构建对象字典和并对对象字典内容进行修改,进而设定整个CANopen协议栈的整体 功能与属性。 权 利 要 求 书CN 102833141 A 1/4页 3 一种基于 DSP28335 的 CANopen 从站系统 技术领域 0001 本发明属于现场总。
6、线技术领域,尤其是涉及一种基于DSP28335的CANopen从站系 统。 背景技术 0002 CANopen是基于CAN-bus规范的高层应用协议,是由生产厂商和用户联合CiA共 同开发的,并在2002年成为CENELEC EN50325-4标准。同时CANopen也是一个子协议系 列,其基本的通信机制在通信子协议(CommunicationProfile)中进行描述。CANopen已经 在大量的工业通信领域建立了标准,用来实现基于CAN-bus的分布式自动化控制设备的工 业通信。在每一个CANopen节点下,它不但允许以广播的方式传递讯息,更可以以点对点的 方式收发数据,CANopen网络。
7、管理功能中简化了项目的开发。此外,使用者能经由CANopen 的基本装置结构来执行及诊断该网络的开始与错误管理。在相同的局域网络下,任何一项 CANopen的设备都能有效的沟通、取得I/O数值状态、及节点状态。由于CANopen是基于CAN 总线,因此其也属于总线型网络,网络中由一个主站节点与数个从站节点或网关设备组成, 在布线和维护等方面非常方便,可最大限度的节约组网成本,并可以灵活方便的扩展新的 从站节点。 0003 现有技术中,CANopen协议技术一般都是基于通用平台设计代码,规模较大、占用 系统资源相对庞大。而嵌入式CANopen协议模块一般做为单独的硬件模块方式实现与系统 CPU通。
8、过UART等内部总线实现。由于系统数据从系统CPU传送到模块及模块内部处理都需 要一定的时间,所以会使节点响应速度相应变慢,并且由于CAN总线通信速度达到1M/S一 般内部串行总线无法达到相应速度致使成为速度瓶颈,影响整个CANopen网络信息交换速 率。并且大多数功能模块功能单一无法进行灵活配置,添加新功能只能依靠相应厂商开发 新型号并且需要在产品设计中单独考虑其安装空间、单只成本较高不利于产品的小型化及 规模化。 发明内容 0004 本发明要解决的问题是提供一种基于DSP28335的CANopen从站系统,尤其适合于 嵌入式操作系统或前后台系统上构建的一个状态机系统。 0005 为解决上述。
9、技术问题,本发明采用的技术方案是: 0006 一种基于DSP28335的CANopen从站系统,包括: 0007 CAN控制器模块,提供CAN2.0的驱动接口; 0008 CAN通信管理模块,主要负责初始化底层CAN2.0硬件模块,为高层功能提供发送、 接收数据及硬件状态管理的通信接口,对底层硬件数据及通信状态进行管理; 0009 对象字典管理模块,提供对象字典的访问与管理功能,完成对象字典的读或写任 务;采用双数组指针定位的方式来进行数据的查找,每个数据的访问只需对主映射数组与 子映射数组进行两次访问即可定位到单独数据条项,并且进行查找时直接使用数据位置指 说 明 书CN 102833141。
10、 A 2/4页 4 针访问数据; 0010 网络管理模块,主要包括NMT模块控制、MNT节点保护、NMT启动,NMT模块控制主 要是从网络接收主站发送的NMT命令,为状态机模块提供切换中断源与切换命令;并且在 系统需要的情况下,完成波特率的自动分配; 0011 状态机模块,主要负责从节点启动后的工作状态转换,为其它模块的工作状态提 供限定条件;CANopen状态机可切换的状态主要包括:初始化状态、预操作状态、操作状态 和停止状态,状态的切换主要依靠从网络管理模块中获得的NMT命令来驱动; 0012 计时器管理模块,为CANopen控制器模块提供微秒级别精度的周期性中断与时 基,负责系统计时器的。
11、初始化及管理,CANopen节点的定时中断控制,为每个服务功能提供 微秒精度的定时中断服务源,提供时基查询功能; 0013 通信对象管理模块,主要实现PDO、SDO、Emergency Object三个主要通信对象的处 理与产生功能。 0014 进一步的,通过生成工具OD构建对象字典和并对对象字典内容进行修改,进而设 定整个CANopen协议栈的整体功能与属性。 0015 本发明具有的优点和积极效果是: 0016 完全实现了CIA协议中301协议功能、并可选择性加载401、402等通信子协议功 能,支持子协议扩展可通过新的标准子协议代码编写与嵌入达到实现新功能目的; 0017 CANopen协。
12、议的对象字典是通过OD生成工具进行生成有良好的通用性和灵活性; 所实现的对象字典具有良好的扩展能力,主站可动态的通过SDO改变字典中所有R/W数 据; 0018 在DSP28335平台上实现了具有针对性优化的CANopen从节点功能可以经过简单 修改移植到同系列CPU下,可移植性; 0019 代码可裁减、对系统资源占用少、实时性高; 0020 可应用性强只需简单配置即可实现不同的节点功能,开发成本少,维护与功能扩 展方便。 附图说明 0021 图1是本发明的各功能模块通讯连接图; 0022 图2是本发明的启动流程图。 具体实施方式 0023 如图1所示, 0024 本发明是基于TI公司的DSP。
13、28335系列32位浮点DSP芯片硬件平台的CANopen 从站的开发,系统结构框图如图1所示。整个CANopen从站软件部分采用C语言,按照三层 结构来设计编码,分为硬件驱动层、CANopen函数处理层、CANopen应用接口层。 0025 硬件驱动层完成硬件的初始化,实现了计时器管理模块和CAN通信管理模块的绝 大部分功能。初始化各部分硬件模块,给协议栈提供正常进行所需的调度时钟,CAN控制器 的初始化,并通过CAN控制器提供到CAN总线的物理层与数据链路层的功能。为整个协议 栈的运行提供CPU、RAM等系统资源。 说 明 书CN 102833141 A 3/4页 5 0026 CANop。
14、en函数处理层,实现CANopen协议栈主要功能包括:网络管理模块、状态机 模块、通信对象管理模块的全部功能,及对象字典管理模块的对象字典访问管理功能和计 时器管理模块中的系统时钟调度功能; 0027 具体而言,通过NMT message与主站同步子站状态并接收主站控制命令,根据接收 到的NMT命令来切换节点不同的运行状态,并将运行状态分配给SYNC、PDO、SDO、网络管理 等模块以指导各模块的运行功能,其中,SYNC模块通过与CAN通信管理模块通信在CAN总 线上发送定时的SYNC报文同步整个总线的通信周期;SDO模块通过与CAN通信管理模块通 信为主站或其它从站提供SDO服务器与客户端功。
15、能;PDO模块通过与CAN通信管理模块通 信实现协议栈的TPDO与RPDO功能; 0028 对象字典访问管理功能就是负责当有其它功能模块需要访问对象字典中的数据 时提供访问接口,并对不同的对象的读写权限进行保护; 0029 系统时钟调度功能就是负责整个协议栈各函数运行的调度与分配,在不同的时间 段调用不同的节点功能来实现SYNC、PDO、SDO、网络管理等功能的自动定时调用。 0030 本协议栈时钟模块采用系统定时器完成多优先级定时任务队列算法,计时精准, 调用开销小,队列数量可配置等优点。 0031 CANopen应用接口层提供针对用户访问的各种功能函数,用户可以在需要的时候 对CANope。
16、n节点进行启动、停止、管理、数据交互等操作。 0032 对象字典功能用于保存可掉电保存的数据与参数等,并在系统上电后为状态机、 对象字典访问管理、SYNC、PDO、SDO、网络管理等模块提供参数及数据读写功能。用户可以 通过将对象字典中的相应对象直接映射到系统全局变量等方式实现CANopen节点与用户 程序自动交互数据的目的。 0033 对象字典是CANOPEN协议的存储核心,起到类似数据库的功能,涉及整个协议的 运转参数都存放在里面,负责CANopen节点所有通信数据与控制变量的管理和存储。 0034 用户可以通过生成工具OD构建对象字典和并对对象字典内容进行修改,进而设 定整个CANope。
17、n协议栈的整体功能与属性。 0035 用户可以通过将对象字典中的相应对象直接映射到系统全局变量的方式实现 CANopen节点与用户程序自动交互数据的目的。 0036 CANopen状态机就是状态管理,主要负责从节点启动后的工作状态转换,为其它模 块的工作状态提供限定条件。可切换的状态包括:初始化状态、预操作状态、操作状态和停 止状态。状态的切换主要依靠从网络管理模块中获得的NMT命令来驱动。 0037 从站系统上电启动后,进入状态机的初始化状态,通信对象管理模块初始化SDO 和PDO的接收和发送报文数组,初始化SYNC的接收报文数组,初始化PDO在对象字典中的 通讯参数和映射参数;初始化完成之。
18、后,自动进入预操作状态,该状态从站可以进行SDO报 文通讯;在操作状态,节点支持SDO、PDO、SYNC等通讯对象;在停止状态,从站除了支持NMT 报文和节点保护机制外,其他通讯都会停止。 0038 PDO的发送:在对象字典中配置好相应PDO数据映射将要发送的数据映射到对象 字典中,具体是通过C指针配置完成。PDO发送模式可设置为同步与异步两种方式:在同步 发送模式下根据在对象字典中所设置传输类型参数决定在同步报文或RTR申请到达情况 下将对象字典中所映射的数据发送到主站;在异步模式下每个CANOPEN时钟周期内协议栈 说 明 书CN 102833141 A 4/4页 6 都会自动对比判断所映。
19、射数据是否有变化,当数据发生变化会自动向主站发送最新数据。 0039 PDO接收:在对象字典中配置好相应PDO数据映射将要存储接收的数据地址映射 到对象字典中,具体是通过C指针配置完成。当主站发送给本节点相应数据时模块会自动 识别相应数据并将其放置在预先映射好的存储空间内。 0040 SDO通信:将所要通过SDO访问的数据的地址映射到对象字典中相应位置,当主站 有修改或读取相应数据动作时协议栈会自动与主站进行通信,做出相应动作。 0041 要发送的数据应映射到从站和主站的数据缓冲区中,数据的发送与接收是从从站 方向进行观察的。 0042 当有任务需要从对象字典中读写对象时,采用双数组指针定位的。
20、方式来进行数据 的查找,每个数据的访问只需对主映射数组与子映射数组进行两次访问即可定位到单独数 据条项。并且访问方式针对DSP283X系列CPU流水线工作方式进行优化,进行查找工作时 不打断流水线直接使用数据位置指针访问数据。 0043 所有通过CANopen模块进行通信的数据都定义在一个区中并且声明为外部全局 变量,可以通过访问这些全局变量来对所有通过模块通信的数据进行输入输出。 0044 所有通过CANopen模块进行通信的数据都定义在一个区中并且声明为外部全局 变量,可以通过访问这些全局变量来对所有通过模块通信的数据进行输入输出。 0045 数据的定义及命名都来自于利用OD生成工具自动生。
21、成,故不应对对象字典C语言 文件进行除了以上移植要点中提到的更改外的任何更改。任何数据的更改、新建都应通过 OD生成工具进行。 0046 如图2所示,为本发明的启动过程: 0047 首先,系统上电,供电稳定后对系统时钟、中断向量等系统基本模块进行初始化; 0048 之后,DSP系统初始化, 0049 之后,CAN控制器模块初始化,DSP28335自带的CAN控制器根据CANopen运行所需 参数进行初始化; 0050 之后,进行为CANopen模块提供时钟的CPUtimer0进行初始化; 0051 之后,初始化对象字典,对CANopen模块的核心对象字典中的参数进行初始化即 将对象字典中所存储。
22、的运行关键参数读取到控制运行的变量中等动作; 0052 之后,设置节点ID,对CANopen节点指定一个nodeID; 0053 之后,启动全局中断,使能全局中断使CPUtimer0的中断可以为CANopen的正常运 行提供中断服务; 0054 之后,使能CANopen状态机的初始化状态,CANopen模块进行初始化; 0055 之后,通过NMT报文进入预操作状态,向总线上发送Boot-up消息; 0056 之后,总线上的主站接收到该命令后通过NMT命令及SDO对该节点进行相应配置 工作; 0057 之后,发送启动报文,配置完成后向其发送Start_Remote_node命令使本节点状 态机进行操作状态进入正常的状态机偱环。 0058 以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施 例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进 等,均应仍归属于本发明的专利涵盖范围之内。 说 明 书CN 102833141 A 1/2页 7 图1 说 明 书 附 图CN 102833141 A 2/2页 8 图2 说 明 书 附 图CN 102833141 A 。