基于Linux的EtherCAT主站的研究
图3空闲阶段与操作阶段程序流程
3 数据帧通讯管理的实现
主站实现通讯管理的核心是有限状态机(FMS)理论睁J。有限状态机又称为有限状态自动机或简称状态机,是表示有限个状态以及这些状态之间的转移和动作等行为的数学模型。这一数学模型具有输入与输出,输出不仅依赖于输入而且依赖于输入的历史情况。作为承担了主要数据管理工作的主站的工作内容,取决于用户的输入以及与从站的通讯状态,亦即通过分析用户的输入与接收到的来自从站的数据报文后再调用相应的函数。主站程序中包含的状态机有:主站状态机、从站扫描状态机、从站配置状态机、状态切换状态机(管理从站应用层的状态切换)、读写SII(从站信息)状态机、读写SDO(如COE协议中的非周期数据)等。主站状态机(如图4所示)又是实现其他状态机功能的基础,它的主要用途是:
1)监控总线上设备的变化。如:当有新的从站设备接入时,便对其进行扫描和配置。
2)监控从站应用层状态。若从站状态与要求不符便对其进行重新配置。
3)接收用户层的指令,进行状态的切换。
4)处理对SII和SDO等的请求操作。
4应用程序开发的流程
应用程序是用户针对自身控制系统的控制要求编写的控制程序模块,运行于内核层。包括对主站和从站的配置以及周期性实时运行的任务。在实时任务程序中实现主从站间通讯以及各种数控算法。
4.1主站和从站的配置
如图5所示,应用程序的module init()函数中首先要对主、从站的通讯进行配置。其中的几个关键技术与重要概念如下:
4.1.1数据域指针
数据域是EtherCAT过程数据(PDO)向程序中的数据结构的映射,它提供了用户程序对总线上各个从站进行数据访问的入口。当从站PDO入口注册成功后,不同从站都将获得一个属于自己的地址偏移量,用户可通过“数据域指针+地址偏移量”的方法对所需PDO进行读写操作。
4.1.2从站配置信息
主站对从站的扫描识别由四个参数决定:化名(保存在EEPROM中,可由主站修改)、位置(决定于从站在总线中连接的顺序)、厂商ID号和产品号。这些信息构成从站配置信息。
4.1.3从站同步管理信息
这一信息可从EEPROM中的SⅡ或者厂商提供的设备描述文件(即xml文件)获得。以Copley公司的Accelnet伺服驱动器为例,其设备描述文件的一部分为:
前4行信息表明该设备拥有4个同步管理通道。前两个为邮箱传输方式,用于COE协议的通讯,负责对SDO的传输。后两个为过程数据传输方式,负责对PDO的传输。其中StartAddress参数为物理起始地址,即该同步管理通道在双口RAM上的起始地址;ControlByte参数为控制字,包含了该通道的传输
图4主站状态机
方式、传输方向等信息。之后的三个参数规定了该通道的大小。第5行起开始定义RxPdo,与CANopen协议类似,EtherCAT的PDO也通过索引号和子索引号进行识别。将x1600_——x1607定义为RxPdo(接收PDO),在这8个接收PDO中安排被主站接收的参数。将x1A00_——x1A07定义为TxPdo(发送PDO),在这8个发送PDO中安排向主站发送的参数。由于该款Accelnet伺服驱动器支持COE,因此其原有的CAN总线中使用的参数可保持不变。图6表明将控制字x6040的0号子索引,长度为2个字节,映射到RxPd00中。应用程序将以上同步管理信息写入数据结构ec_sync_info_t中,作为ecrt slave config_pdos()的参数,通过调用该函数最终完成完整的PDO配置。
评论