ANope
协议从节点功能用软件嵌入在电机驱动器中,CANope
协议通讯框架结构如图2所示。
22eCAN接口模块
设计采用TI的TMS320F2812DSP,该芯片集成了增强型CAN总线通信接口eCAN模块4,有效节省了硬件开销,在eCAN模块外增接SH65HVD23xCAN收发器连接,eCAN模块及外围组件如3图所示,CAN总线满足高速CAN总线电平特性。
2系统软件设计
在CCS软件中设计完成软件部分,主要包括三部分:通讯报文处理、CANope
对象字典、控制模式。上电后,初始化各个模块,进入主循环程序,先以COBID对CAN报文扫描处理,再判断有效控制字和状态字指令,最后执行运行模式操作,软件程序流程如图4所示。
21报文处理
为不增加CPU运行开销,拖累电流环等实时反应系统模块,对NMT(网络管理报文)、PDO(进程数据对象)、SDO(服务数据对象)采用查询方式处理,采用中断方式对同步报文处理,调用独立通信函数功能模块来分类、接收和发送信息,eCAN模块使用邮箱管理模式指定邮箱绑定到特定报文COBID,实现不同功能报文处理,报文处理流程如图5所示,eCAN模块邮箱与报文绑定如表1所示。
22对象字典实现
f将驱动器所有参数结构加入对象词典立标准字典项,定义对象字典数据结构CO_OD,程序通过调用函数CO_Fi
dE
tryI
OD()查找象入口地址,再调用函数CO_OD_Read()和函数CO_OD_Write()读写对象字典。对象字典数据结构定义如下
typedefstruct
u
sig
edi
ti
dex索引
u
sig
edcharsubi
dex子索引
u
sig
edcharattribute读写属性
u
sig
edcharle
gth数据字节长度
ROMvoidpData存放地址的指针
CO_OD
23控制模式实现
在CANope
协议中,有专用于驱动和运动控制子协议DS402,其定义了驱动器的操作模式和响应参数,还定义了用于控制驱动器的状态机,对象字典中的指令字(索引6040h)控制驱动器状态机,并状态字(索引6041h)显示驱动器状态机中的每个状态,驱动器状态机有复杂的指令字和状态字58。驱动器状态机如图6所示。
状态机包括“主电关闭”、“主电打开”和“报错”三部分。上电后,驱动器初始化完成,进入“未准备启动”状态,对驱动器进行工作模式配置等,此时,电源仍处于关闭状态且电机未通电状态,在状态传输2、3、4之后,进入“允许操作”状态后,主电已接通,驱动器根据控制指令配置工作模式运行电机。在状态传输9完成后,主电源关闭,并且驱动器在状态传输期间中产生报警,驱动器的状态都进入报“错误”。
设计实现驱动和控制协议DS402的标准运行模式PV模式和PP模式,程序中首先读取PDO报文r