[发明专利]一种实现CANopen从站的方法无效
申请号: | 201010189480.2 | 申请日: | 2010-06-02 |
公开(公告)号: | CN101854300A | 公开(公告)日: | 2010-10-06 |
发明(设计)人: | 徐喆;董石峰;段建民 | 申请(专利权)人: | 北京工业大学 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L12/40 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种实现CANopen从站的方法,特征在于本从站实现的硬件平台是基于PowerPC架构的处理器,在eCos操作系统上构建多线程系统,包括CANopen状态机线程、定时器线程和读报文中断。状态机线程用来管理从站的状态转换,CAN报文接收、CAN报文、PDO报文、SDO和报文收发、PDO、SDO、NMT和同步报文处理等CANopen的基本任务。其中传输实时数据的同步PDO报文中引入了最早截止期优先级(EDF)动态调度算法,保证低优先级报文对实时性的要求,改善总线通讯特性。本发明将eCos嵌入式实时操作系统应用在从站的设计中,具有高度的实时性和并发处理能力;将动态调度算法引入CANopen从站同步PDO报文的设计,保证低优先级报文对实时性的要求;对象字典满足网络灵活的配置,通过主站动态的改变对象字典中的对象。 | ||
搜索关键词: | 一种 实现 canopen 方法 | ||
【主权项】:
一种实现CANopen从站的方法,其特征在于,包括以下步骤:1)系统上电,首先初始化eCos操作系统;2)初始化集成在处理器内部CAN控制器模块,至少包括总线波特率设置,收发缓冲区配置,以及接收中断设置;3)设置基于处理器的时钟中断;4)创建定时器线程,初始化系统时间;5)初始化对象字典,对对象字典中数据区的应用对象进行初始化;采用主索引定位,子索引确定对象的思想构建对象字典,具体如下:使用结构体定义子索引,子索引结构体的成员变量包含对象的属性,至少包含读写权限、数据类型、数据长度和指向对象的指针,定义主索引时包含指向子索引的指针和子索引数目;根据对象的功能将对象字典的主索引分成不同的功能区,为每个分区定义上边界和下边界;6)创建一个CANopen线程,CANopen线程内部维护了一个CANopen状态机;7)开定时器中断,启动eCos操作系统,并开始管理线程;8)进入状态机循环,首先进入初始化状态;设置从节点的节点号,初始化过程数据对象和服务数据对象的接收和发送报文数组,初始化网络管理报文和同步报文的接收报文数组,初始化心跳报文发送周期,初始化PDO在对象字典中的通讯参数和映射参数;9)初始化完毕,CANopen从站自动进入预操作状态,并向CAN总线发送一条启动报文,从站进入正常的状态机循环;CANopen状态机就是状态管理,负责从节点状态转换,维护着四种状态,分别为初始化状态、预操作状态、操作状态和停止状态;从站的状态机靠接收主站发送的NMT命令报文推动,而且没有应答报文;在预操作状态下,CANopen支持SDO报文、NMT报文和心跳报文的处理;在操作状态下,CANopen支持对SDO报文、PDO报文、同步报文、NMT报文和心跳报文的处理;在停止状态下,CANopen支持NMT报文的接收处理和节点保护机制的发送;当CAN控制器监听到有报文接收时,将产生接收报文中断,读报文中断服务程序开始执行,将报文从CAN控制器的接收缓冲区中读出,对报文分类并存储到PDO或SDO或NMT或同步报文通讯对象数组中,并设置通讯对象接收数组非空标志;在CANopen状态机中调用接收报文分发处理函数,通过查询通讯对象接收数组非空标志,将通讯对象数组中的报文分发给PDO或SDO或NMT或同步报文处理函数,通讯对象处理函数通过对象字典的接口对对象字典中的对象进行读写操作,完成CANopen报文的处理任务;当从站中需要发送报文时,系统通过通讯对象发送函数调用底层CAN驱动发送接口函数,将报文内容写进CAN控制器的发送缓冲区中并将其发送到CAN总线上;当有任务需要从对象字典读或写对象时,提供给对象字典接口函数该对象的主索引和子索引;首先根据主索引定位到对象所在的功能区,然后在具体的功能区中查找主索引项,如果找到了则返回这个主索引项,如果返回的主索引中的子索引数目不小于要查找的对象的子索引值,并且访问权限正确,就直接在返回的主索引项中定位对象子索引的指针,对该子索引中的对象指针进行读或写操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010189480.2/,转载请声明来源钻瓜专利网。