IEC 61131-3标准与ARM嵌入式控制系统
关键词 ARM AT91M55800A IEC 61131 3标准 串口通信
引 言
ARM是采用ARM公司技术知识产权(IP)核的微处理器。其中ARM7是低功耗的32位核,具有小体积、低功耗、低成本而高性能的特点,在信息家电、工业控制和无线通信等领域得到了广泛的应用。
IEC61131-3国际标准是国际标准化组织(国际电工技术委员会)为工业控制软件编程制定的第一个国际标准。该标准针对工业控制系统所阐述的软件设计概念、模型等,适应了当今世界软件、工业控制系统的发展方向,是一种非常先进的设计技术。
友好的交互界面、网络互联功能、智能化的软件、实时数据处理已成为现代测控系统的共同需求,因此,殴计并实现基于ARM微处理器和IEC 6113l-3标准的嵌入式实时控制系统很有意义。
1 系统的设计与实现
1.1 系统的硬件基础
控制系统是基于Atmel AT91M55800A微处理器进行设计的。AT91M55800A是一款基于ARM7TDMI核的16/32位微控制器。其处理器核为高性能的32位RISC体系结构;具有高密度的16位指令集和极低的功耗,片内集成了8 KB SRAM、向量中断控制器VIC、先进电源管理控制器APMC和完全可编程的外部总线接口EBI;具有3个USART、58个可编程I/O线、6通道1 6位定时器/计数器、8通道10位ADC和2路lO位DAC,为各种超低功耗应用提供了一种高度灵活且高性价比的解决方案。
图1是控制系统的硬件结构框图。硬件设计采用了结构化、模块化的设计思想,易于裁剪。通信接口包括RS232串行通信接口、以太网接口和CAN总线接口。通过以太网口可以实现与工业以太网的互联。结合ARM集成开发环境ADSl.2和在线调试工具Multi-ICE,通过JTAG调试接口和处理器内嵌的Embedded ICE逻辑,可以对系统进行实时仿真和跟踪调试。
1.2 系统的软件基础
(1)μC/OS-II的移植
控制系统要完成的工作足很复杂的,要管理的外设也很多,程序也越来越庞大,因此移植嵌入式实时多任务操作系统是必然的选择。对小型实时控制系统来说,源代码公开的、可固化可裁剪的,具有很好的可移植性、高稳定性和高可靠性,具有可剥夺型内核的抢占式实时多任务操作系统μC/OS-II是很好的选择。代码简洁的μC/OS-II已经应用到智能仪表、信息家电、无线通信设备和工业机器人等嵌入式系统中。
μC/OS-II在AT9lM5800A处理器上移植比较简单,只须修改3个与ARM体系结构相关的文件――OS――CPU.H、OS_CPU_A.S和(OS_CPU_C.C,代码量大约是500行。具体的移植过程不再详述,网上有很多移植成功的范例可以参考。
(2)IEC 61131-3标准软件的应用
IEC 6113l-3标准是国际电工委员会(TEC)第一次为全世界工业控制制定的有关数字控制软件技术的编程语言标准,包括编程和公共元素两部分内容。公共元素描述了IEC61131-3五种编程语言(指令表、结构化文本、梯形图、功能块图和SFC)、IEC软件模型以及通信模型中用到的全部公共编程元素的变量和数据类型;给出了如何命名这些软件元素、声明变量、变量及数据类型的初始化等规则,是实现IEC61131-3编程系统不可缺少的有机组成部分。编程部分描述了两个重要模型:IEC软件模型和通信模型。这两个模型构成了实现符合IEC61131-3国际标准的编程系统的概念基础。
IEC61131-3标准还定义了一个标准功能和功能块算法库,而且用户也可建立自己的算法库。由于功能和功能算法库都是用ANSI C语言编写的,所以用户的控制算法程序具有很好的可移植性和可重用性。
IEC61131-3标准软件在基于AT9lM55800A的硬件平台上的应用就是把IEC运行时系统作为μC/OS-II的一个任务运行,代码如下:
2 串口通信程序设计
用户在基于IEC6113l-3标准的编程系统中编写好的程序,经过编泽和链接后所生成的目标代码可以通过串口或以太网口下载到目标系统(即控制系统)中执行。编程系统与目标系统之间通信连接的选择具有很大的灵活性,可以是RS232串口通信、以太网通信,或者是其他的通信方式。以下是基于AT9lM55800A的RS232串口通信程序设计的代码。
在内存中开辟数据接收/发送缓冲区:
最后编写IEC运行时系统内核与用户程序之间的接口界面通信程序:
有了以上代码,嵌入式控制系统就可接收从上位机下载的用户IEC程序,同时上位机可对控制系统中的实时数据进行采集和监控。这些实时数据还可发布到工业以太网中实现信息共享。
结语
本文介绍了基于ARM和IEC6l131-3标准的嵌入式实时测控系统的设计与实现方法。该系统具有很好的开放性、可裁剪性和升级性。设计了RS232通信接口、以太网接口和CAN总线接口,可满足现代工业控制的现场对网络化的需求。软件编程采用了IEC6113l-3国际标准,使得开发出来的用户程序具有很好的可移植性和可重用性。
评论