引言
工业环境正在对嵌入式控制系统开发人员构成日益严峻的挑战,究其主要原因,当前系统和通信协议栈变得越来越复杂,系统实时性和安全要求越来越严格,同时,这种趋势直接影响到半导体元器件的特性和技术规格。
为克服这些挑战,意法半导体在今年初发布了STM32-F2系列微控制器,以帮助开发人员实现要求苛刻的工业应用。新系列产品诞生于深受市场欢迎的STM32产品家族,拥有更高的性能、更大的存储容量和针对工业应用优化的外设。F2系列产品在一颗芯片上集成了多种功能,例如,控制/调整功能和复杂的通信协议栈。高集成度的优点是,缩小印刷电路板空间,避免在不同的控制器之间存在易受到电磁兼容性影响的连接电路,优化应用成本。
工业自动化市场的特点是多个通信协议并存,实时应用需要高效的操作系统。因此,软件栈和操作系统成为选择微控制器的首要参数。 STM32微控制器基于受到市场广泛支持的Cortex M3内核,因此,有20多家实时操作系统和通信协议提供商供用户选择。为使STM32微控制器更加完美,意法半导体还增加了一个兼容CMSIS的硬件抽象层和其它固件库,例如,支持永磁同步电机(PMSM)的磁场定向控制 (FOC) 。本文将介绍两个第三方专门为STM32F-2研发的工厂自动化软件: IXXAT 开发的支持PTP的IEEE1588协议软件包和 PORT 开发的Profinet通信协议栈。
STM32-F2针对工厂自动化的改进的性能
与上一代产品STM32-F1相比,STM32-F2在很多方面加以改进,特别是性能更加出色,外设接口更加丰富。STM32-F2采用90nm光刻技术,处理速度达到120MHz,并使运行功耗保持在合理水平(300uA/MHz)。这项光刻技术的另一个好处是集成度更高,有助于降低应用的系统级成本。
为了充分发挥Cortex-M3内核的优异性能,意法半导体重新评估了产品架构。新产品在120MHz下释放150DMIP的强劲性能(Dhrystone 2.1),CoreMark™测试成绩取得254高分(2.120 CoreMark/MHz 通过EEMBC 认证), STM32F-2因而进入Cortex-M微控制器的第一阵营,这个成绩归功于自适应实时存储器加速器(ARTTM),采用这项闪存访问管理技术后,应用代码执行不再会受闪存本身固有的等待状态的影响。虽然闪存的速度比内核本身慢三倍,但是,在代码执行过程中不会出现等待状态,即便处理速度达到120MHz时也是零等待状态。因此,新系列产品可大幅缩减设计尺寸,降低功耗和闪存的EMC影响,确保最高的产品性能。
STM32-F2的主要特性如下: 最高1MB的闪存、128kB RAM、6个UART(7.5Mbps)、3 SPI接口 (30Mbps)、支持IEE1588 PTP V2的以太网媒体访问控制器(MAC)、4kB备用RAM、512字节的一次性可编程存储器(OTP)。
总线矩阵
除单纯的内核计算能力外,微控制器设计人员还必须考虑总线设计,在微控制器不同单元之间实现并行访存和数据传输,例如,内核和通信外设需要同时访问不同的存储器。因此,主要总线最终被设计成一个多层AHB总线矩阵,最多支持6个同步数据流。
STM32-F2系列微控制器共有5个总线主控制器:
· 有3条内核总线的ARM Cortex-M3内核
· 2个DMA控制器
· 高速 USB主设备控制器
· 10/100以太网 MAC控制器
上图中的黑点代表在这个7层总线结构中总线主控制器与从控制器的全部接口。为提高系统的能效,SRAM存储器被分成两个存储区SRAM1和SRAM2,SRAM1用于保存基本协议栈和变量,而SRAM2则用作通信外设的帧缓冲区。以太网和USB外设都占用了几千字节的FIFO存储空间,而且分别拥有一个各自专用的DMA控制器。
除多个SRAM分区外,该系统还有两个AHB总线从控制器。同样地,这样的配置准许不同的总线主控制器并行处理和同步访问不同的高速外设,例如,加密处理器和通用输入输出端口。AHB从控制器和DMA控制器都是双端口,这样设计准许在AHB总线上直接连接DMA控制器与高速外设,避免在总线矩阵和二级高速至低速桥上因延迟而降低性能。
外部存储器接口又称“静态存储控制器”,可直接连接不同的异步和同步存储器、NOR/NAND闪存、SRAM、伪SRAM,甚至还能连接一个液晶显示器控制器,外存接口总线频率最高60MHz,还能通过指令总线(I-bus)获取CPU内核指令。
存储器加速器
意法半导体的自适应实时(ART)存储器加速器(如上图所示)可让Cortex-M3内核释放最高的处理性能,虽然闪存本身需要等待状态,但是,引入这项技术后,STM32-F2以120 MHz的速度从闪存执行代码无等待状态。
存储器接口是128位宽,每次可取4-8条THUMB2指令。如果执行线性代码,因为预取指功能,即便闪存速度只是内核的四分之一,代码执行也不会出现等待状态。
然而,如果执行转移或跳转指令,需要立即取出转移或跳转目标地址的数据,这样,存储器的等待状态会增加系统开销,这就是ART及其64项高速指令缓存发挥作用的地方。如果非顺序指令第一次出现,这条指令将从存储器中取出并保存在64项高速缓存的一个存储项内。在下一次出现时,该指令将从高速缓存中直接取出,没有等待状态。
这个指令高速缓存还有一个LRU即最近不常用机制,因此,假如一个应用软件的转移指令超过64条,最近常用的新指令将取代最近不常用的指令。这个架构的优点是,即便中断服务处理程序被加速器覆盖,这个机制仍然能够支持各种转移指令。
最常用的8行数据项目像高速指令缓存一样,但是用于暂存最常用的数据库,可以使D-bus总线立即充满数据。
工业协议栈和固件
IXXAT为 STM32开发的IEEE 1588 PTP协议
测量系统、电信设备、自动化系统或汽车系统等分布式应用设备对精确时序机制的要求越来越高。IEEE 1588的精确时序协议(PTP)通过以太网使分布式设备的时序同步精度达到纳秒级,从而满足分布式应用系统的要求。
IXXAT自动化技术有限公司开发的IEEE 1588协议软件让设备厂商能够轻松、快速地开发IEEE 1588兼容设备,这款软件的源代码采用C语言,可实现在任何平台上。
为了在意法半导体的STM32-F2系列微控制器上实现IEEE 1588协议,IXXAT为STM32-F2用户提供一个定制版协议软件,该解决方案大幅简化并加快了协议的实现过程。STM32-F2专用协议软件需要与一个有组播功能的TCP/IP协议栈配合使用,有无操作系统均可。
因为功能丰富,连续升级,占有率高,IXXAT的IEEE 1588协议软件已成为1588协议软件市场的主要参考标准。最新的1.03版IEEE 1588已支持新的IPv6标准,该标准将逐渐被新系统所采用。这个解决方案的模块化软件结构包含基本包和可选扩展文件,例如,用于IPv6、IEEE 802.3和Unicast的文件,让包与专门应用及其资源能够实现最佳匹配。
用户可以动态设置多种功能,例如,延迟机制(对等/端到端)和通信技术(IPv4, IPv6, 802.3),因此,设计人员开发设备时无需考虑网络结构,用户使用设备时无需修改固件,这样设计可以降低研制成本,让客户提出更吸引人的价值主张。
STM32-F2系列微控制器在以太网媒体访问控制器MAC内整合了支持IEEE 1588 (PTP V2)的硬件,具有实现一个高精度时序同步协议所需的全部资源。我们做了一个长时间的背对背连接同步测试, 采用了1个精确的主控制器(2ppm晶振),测试条件是0.125秒同步间隔,测试结果显示,该平台最大同步偏差为±70纳秒,标准同步偏差大约是15纳秒。在上电后,IXXAT的IEEE 1588协议软件同步平均需要大约20个同步间隔。
在一个STM32微控制器上实现的IEEE 1588软件,取得1个有IPv4、端到端 (E2E)和对等(P2P)延迟机制和主控制器的通用普通时钟的典型功能,需要47KB空间保存程序代码,7KB空间保存只读数据,23KB空间保存读写数据。
除IEEE 1588协议软件外,IXXAT的服务还包括定制软硬件开发和系统设计,以及技术研讨会和代码推介会服务。
PORT Profinet软件栈
Port公司是市场领先的CAN/CANopen、DeviceNet现场总线解决方案提供商,公司加强了硬件和固件开发能力,扩大了业务组合,加强了协议栈和POWERLINK、PROFINET、EtherNet/IP和EtherCAT开发工具产品组合。
PROFINET是工业以太网版PROFIBUS总线,而这项技术被业界公认为极其耗费资源。意法半导体与Port合作为STM32 F-2系列研发了一款只需128KB SRAM存储容量的PROFINET软件,让意法半导体的微控制器步入一个新的应用领域。STM32 F-2与Port PROFINET组合不仅适用于工业自动化应用,例如,工业编码器(定位)、工业驱动附件,而且还适用于内置以太网控制功能的安全系统。PROFINET的 STM32 F-2版协议栈为用户提供符合IEC 61158和IEC 61784标准的PROFINET IO兼容通信所需的全部服务功能,帮助用户轻松快速地开发PROFINET IO设备。该解决方案是是通过一个硬件抽象层访问硬件,并为用户提供能够连接意法半导体的不同微控制器的驱动程序,有无操作系统均可。为了快速获得总线使用权限,符合PROFINET的技术规范,该解决方案对底层以太网驱动软件进行了优化。STM32 F-2支持PROFINET Conformance Class A,还可以支持PROFINET Realtime Class 1。为了帮助设计人员轻松快速地开发项目,Port还提供一个PROFINET设计工具。
意法半导体的电机矢量控制库
因为集成两个先进的定时器外设、3个快速数模转换器(0.5MSps)和DMA直接访存功能,STM32F2x特别适合需要1个或2个电机控制驱动器的应用。即便驱动两个电机时,150DMIPS的性能让STM32F2x有充足后备动力驱动其它复杂的应用任务。
STM32F-2配备STM32 PMSM FOC软件开发工具,实现了磁场定向控制(FOC)驱动3相永磁同步表面安装电机(SM-PMSM)和内部安装电机(I-PMSM),最新的3.1版STM32 PMSM FOC开发工具套件包含STM32F-2微控制器,预计2011年7月上市。
STM32 PMSM FOC开发工具套件可用于快速评估STM32微控制器的各种应用和完整的应用平台,当开发在意法半导体微控制器上运行的电机控制算法时,这套开发工具有助于缩短的应用的开发周期。PMSM FOC固件的源代码采用C语言,实现了电机控制内核算法(参考系转换、电流调整、速度调整、空间矢量调制、能效优化)以及传感器检测算法、解码算法(3个并联电阻、意法半导体专利单直流链路并联电阻、隔离型电流传感器、增量编码器、霍尔传感器)和转子位置重构无传感器算法。
为了让大家了解STM32F-2出色的计算性能,我们做了一个性能测试。在使用两个并联电阻检测电机电流的无传感器配置中,用一个STM32F-2驱动两个PMSM电机,按照标准双矢量控制性能(以10kHz运行FOC算法)测试,CPU负荷在35%的范围内;按照高级双矢量控制性能(以16kHz运行FOC算法)测试,CPU负荷在50%的范围内。这些性能为STM32F-2系列微控制器在工厂自动化领域开启了广泛的应用空间。
结语
要求严格的工业通信协议软件栈显然能够充分利用STM32F-2系列微控制器高于同级产品的优异性能。当执行高性能应用软件和算法时,STM32F-2执行速度比上一代产品STM32F-1提高1倍多。
STM32-F2系列产品已通过客户检测验证,目前正在提升产量。大多数固件和协议栈已经上市,未上市的也准备今年夏季发布。STM32-F2系列产品的升级产品目前正在设计阶段,新一代产品包括基于Cortex-M4内核的微控制器,能够更好地支持需要数字信号处理器的应用。