EtherCAT中SPI通讯模块配置研究
2011-02-09杨福宝
杨福宝
(武汉理工大学 马房山校区信息学院 电子工程系,武汉 430070)
0 引言
随着微电子技术的发展,数字式控制处理芯片的运算能力和可靠性得到很大的提高,这使得以单片机为控制核心的全数字化控制系统取代以前的模拟器件控制系统成为可能。在伺服功率模块,由于电力电子器件的不断进步,尤其是新的可关断器件,如双结型晶体管(BJT)、金属氧化物半导体场效应晶体管(MOSFET)、绝缘栅双极型晶体管(IGBT)的实用化,使得高频化PWM技术成为可能。在控制算法上,由于矢量控制技术的使用和现代控制理论的应用,巧妙的实现了交流电机磁通和转矩的重构和解耦控制,从而促进了交流电机控制系统走向实用,现代控制理论的应用,如最优控制、滑模变结构控制、状态观测器和卡尔曼滤波器等提高了系统的动态性能,如系统的鲁棒性和实时性[1,2]。新型的无机械传感器技术的发展也为伺服控制提高了高度的精确性。EtherCAT工业以太网技术最初由德国倍福公司开发,目前由ETG(EtherCAT Technology Group)协会进行管理。EtherCAT在数据链路层采用了实时调度的软件核,并采用了过程数据传输的独立通道,提高了系统的实时性;该网络具有灵活的拓扑结构,简单的系统配置,较低的构建成本等特点,可以实现传统的以太网无法迄及的控制理念。巨大的带宽可以实现每个数据信息与其状态信息同时传输。EtherCAT是一个完全开放的网络,这对对EtherCAT的研究及利用该网络开发相应的产品提供了很好的平台。
目前基于以太网的现场控制网络被广泛应用于工业现场控制领域。传统的以太网术采用CSMA/CD介质访问方式为竞争式的共享介质技术,对间歇传输、突发性长报文传输有着很高的效率。在节点数少、负载轻的情况下,以太网具有很好的效率。当节点数增多、数据通信量增大、负载加重的情况下以太网的效率下降很多。有资料表明,以太网的有效带宽利用率不超过40%[3~5]。所以,如何在原有的以太网基础上加以实时性改进,使之符合工业现场数据交换要求是把传统以太网引入工业现场的最佳途径。目前国内外开发的工业以太网采用了不同的原理和技术,从实现方式上大体可以分为三类[4,5],下面就这三类以太网实现方式分别介绍。
1 工业以太网的主要类型
A类使用标准的未改变的以太网硬件和标准的TCP/IP软件协议栈实现工业过程数据传输。为了提供更高的性能,对TCP/IP协议栈做了一些改动。A类被称为“尽力发送”的以太网网络,由于诸如交换机等以太网互联设备不可预知的延迟使得实时性大大降低。由于采用TCP/UDP/IP协议栈,成为提高A类网络实时性的最大障碍。目前施耐德公司的Modbus/TCP、罗克韦尔公司的Ethemet/IP、西门子公司PROFINET(version)为采用A类实现方式的工业以太网。图1为A类工业以太网络从站结构图。
图1 A类工业以太网络从站结构图
B类工业以太网仍然使用的是标准的以太网控制器,但是过程数据的传输没有使用TCP/IP协议,而是设计了一种专门用于过程数据的通讯协议,其数据可以直接在以太网帧里传输。TCP/IP协议栈仍然存在,但是被一层称作时间层的协议控制其访问以太网。相比A类实现方式,B类在过程数据传输上实时性得到很好的保证。目前Powerlink、西门子公司PROFINET(version2)网络采用的是B类实现方式。图2为B类以太网从站结构图。
图2 B类以太网从站结构图
C类相比B类工业以太同性能有了更大的提高。它使用了专用的硬件(至少在从站侧),硬件的集成是使以太月的性能提高的重要原因。过程数据通讯协议和TCP/IP协议栈可以并行运行,在数据链路层的时间实时软件核提高系统的实时性。SERCOSIII、EtherCAT和 PROFINE(version3)采用的是C类实现方式。图3为C类从站结村固。EtherCAT网络采用C类实现方式,在数据链路层采用了实时调度的软件核,并提供了过程数据传输的独立通道,提高了系统的实时性;EtherCAT还具有灵括的拓扑结构,简单的系统配置,高速高效率等特点,它还符台甚至降低了现场总线的使用成本,得到了业内的广泛关注。
图3 C类以太网从站结构图
2 SPI结构与特点
通讯模块是EtherCAT设计实现中DSP芯片与控制设备连接的手段,主要,包括SPI、SCI、I2C、Ecan、McBSP串口模块,SPI是一个高速同步串口通讯模块,它提供了数据的高速传输通道。在本设计中,我们通过SPI接口实现DSP控制器和从站接口芯片的数据传输。
图4 SPI结构图
SPI允许可编程长度的串行位流(1. 16bits)以一个可编程的位传输速率移入或移出设备。SPI一般应用于DSP控制器与外设或与另一个控制器之间的通信。SPl支持主从模式通信,即一主多从模式通信,通过从设备选择信号,主设备可以分别与每个从设备进行通信。刑S320F28335的SPI模块支持16级深的FIFO,这样的结构可以在通信过程中减轻CPU的负担。图4为SPI结构框图SPI有以下特点:
1)4个外部引脚:SPISOMI(从模式输出/主模式输入引脚);SPISIMO(从模式输入/主模式输出引脚);SPISTE(从模式发送使能引脚);SPICLK(串行时钟引脚)。
2)两种工作模式:主工作模式和从工作模式。
3)125种不同的可编程通信速率。
4)数据字长度可以为1.16个数据位。
5)4种时钟配置方法:不带相位延时的下降沿;带有相位延时的下降沿;不带相位延时的上升沿;带有相位延时的上升沿。
3 SPI通讯模式
SPI使用主从通信模式,使用SPI通讯的两个控制器必须在通讯前配置为主或从控制器,通过MASTER/SLAVE控制位去选择工作模式和SPICLK信号源。下边分别介绍主工作模式和从工作模式的工作原理。
1)主工作模式
在主工作模式中,MASTE刚SLAⅦ=1,SPI通过SPICLK为整个通信网络提供串行时钟。数据从SPISIMO引脚输出,从SPISOMI引脚输入。SPIBRR寄存器决定整个网络的数据发送和接收的位传输速率,有126种不同的位传输速率选择。写入SPIDAT或SPITXBUF的数据启动SPISIMO引脚的数据发送,首先发送的是最高有效位,然后依次发送。接收的数据通过SPISOMI引脚移入SPIDAT的最低有效位。当选择的位全部发送结束时,接收的数据被传输到SP RXBUF供CPU读取。SPISTE引脚作为从SPI设备的使能引脚,主设备发送数据到从设备之前,要将从选择引脚SPISTE置低,并且发送完主设备数据后将该引脚重新置高。
2)从工作模式
在从工作模式(MASTER/SLAVE_=o)中,数据在引脚SPISOMI移出且在SPISIMO移入。引脚SPICLK被用作串行移位时钟输入,该时钟由主设备提供。当接收到来自主设备SPICLK信号的适当边缘时,写入SPIDAT或SPITXBUF的数据被发送到网络。对于接收数据,SPI等待网络主设备送过来的SPICLK信号,接着将数据通过引脚SPISIMO移位到SPIDAT。SPISTE信号用作选择引脚。该引脚低有效信号允许SPI从设备向串行数据线传送数据,高有效信号禁止SPI从设备的串行移位寄存器,并将它的串行输出引脚置于高阻状态。图5为主从设备通讯时的具体连接。
图5 SPI主从连接图
在本设计中,SPI内部寄存器的具体配置及说明如下:
EALLOW;
GpioCtrlRegs. GPAMUX2. bit. GPIO16=1;//GPIO20 is SPISIMOA
GpioCtrlRegs. GPAMUX2. bit. GPlO17=1;//GPIO21 is SPISOMIA
GpioCtrlRegs. GPAMUX2. bit. GPIO18=1;//GPIO23 is SPICLKA
GpioCtrlRegs. GPAMUX2. bit. GPIO19=1;//GPIO23 is SPISTEA
EDIS;
在上述寄存器设置中,分别配置GPIO16.GPIO19分别为SPI的数据交换引脚、时钟引脚和从设备选择引脚;
SpiaRegs. SPICCR. all=0x0007;SpiaRegs. SPICTL. all=0x0015;SpiaRegs. SPIBRR. all=0x0000;
SpiaRegs. SPITXBUF. a11=0x0000;
上述配置中,设置每8个比特作为一个字符移入或移出寄存器,把DSP配置为SPI主设备,波特率为LSPCLK/4,数据在SPICLK低电平时在SPISIMO引脚输出数据,在高电平时在SPISOMI引脚输入数据;最后初始化输出寄存器。在程序运行时,通过中断读取输入缓冲寄存器中的值可以得到数据,通过写输出缓冲寄存器可以发送数据到主或从设备中去。
[1] George Ellis. Control System Design Guide(Third Edition).publishing house of electronics industry, 2006: 10-26.
[2] 施耐德电气公司著, 自动化解决方案指南. 机械工业出版社, 2007: 10-57.
[3] 夏继强, 刑春香. 现场总线工业控制网络技术[M]. 北京:北京航空航天人学出版社, 2005: 27-35.