引言
今天,嵌入式系统已渗透到日常生活的方方面面,带来的工业年产值已超过1万亿美元,在工业控制、消费电子等领域的应用范围不断扩大,而机电控制是嵌入式系统技术的一个典型应用,采用嵌入式的机器人、SONY机器狗及1997年美国发射的“索纳杰”火星车就是经典的实例。就嵌入式系统的组成、特点,开发所采用的主流软件平台、硬件平台作详细的介绍,并通过Stewart平台专用伺服控制器的设计,介绍了嵌入式技术在机电控制系统中的应用及具体实现。
1 嵌入式系统
嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。由于嵌入式系统具有微内核、系统精简、高实时性、专用性强等特点,因此非常适合应用于机电控制系统。有别于传统的控制系统,嵌入式系统由嵌入式微处理器/微控制器、存储器、输入输出(I/O)和软件组成,这里的软件是指基于RTOS开发的且和RTOS密切结合的应用软件。这种操作系统和应用软件紧密结合为一体正是嵌入式系统和基于Windows应用系统的主要差别所在,也是其可靠性和实时性的重要保证。
2 嵌入式微处理器
目前有许多款嵌入式微处理器,如Intel公司的StrongARM、Xscale,ATMEL的AT91系列,IBM的PowerPC,Motorola的68K,三星的S3C4x系列等,其中基于英国ARM公司的ARM内核的嵌入式微处理器是目前的主流。ARM是典型的32位RISC芯片——不论是在PDA、STB、DVD等消费类电子产品中,还是在机电、GPS、航空、勘探、测量等军方产品中都得到了广泛的应用。越来越多的芯片厂商早已看好ARM的前景,如Intel、NS、Ateml、Samsung、Philips、NEC、CirrusLogic等全球著名公司都有相应的基于ARM处理器的产品。ARM处理器的主要特点是:小体积、低功耗、低成本、高性能、16/32位双指令集、全球众多的合作伙伴。事实上ARM已成为嵌入式解决方案的RISC标准,成为业界的龙头。
文中采用ATMEL的AT91x40[2],设计了用于Stewart平台的伺服控制器。AT91系列微控制器是基于ARM7TDMI嵌入式微处理器的16/32位控制器,用高密度的16位指令实现了高效的32位RISC结构,非常适合实时控制应用。ATMEL公司采用高密度CMOS技术,通过片上集成ARM7TDMI和大量的FLASH、片内RAM以及各种外围功能模块使其成为强有力的微控制器,为许多需要加强运算的嵌入式应用提供了高度的灵活性和高性价比的解决方案。AT91x40的主要片上功能:
·带8KB缓存的ARM7TDMI ARM ThumbCPU核;
·完全可编程的外部总线接口,支持64M寻址空间;
·8优先级、可单独屏蔽的向量中断控制器,4个外部中断源;
·3通道16位定时、计数器;
·5个PWM定时器及1个内部定时器;
·可编程的看门狗定时器;
·两个独立的USART;
·先进的省电特性。
3 嵌入式RTOS的选择
目前嵌入式实时操作系统RTOS分为两类:商用型和免费型。其中商用型典型的RTOS有:Windows CE 4.0(适合于消费类电子产品);VxWork(适合于网络、交换设备等);Palm OS(适合于PAD产品)。免费型RTOS有Linux(包括uLinux和RT-Linux)和μC/OSII。综合考虑,这里选择μC/OSII作为本系统的RTOS。
μC/OSII(即μC/OS的最新版)主要特点如下:
(1)公开源码:是为数不多的公开源码的RTOS,给二次开发和移植提供了可能;
(2)可移植性强:μC/OSII绝大多数源码用ANSI C编写,少量用汇编语言编写,具有较强的移植性;
(3)可固化:微小内核,可以和应用程序一起固化到FLASHROM中;
(4)可裁剪:通过条件编译即可实现裁剪,十分方便;
(5)占先式:是实时性的重要保证;
(6)多任务:多达64个任务管理,可以满足大多数控制任务;
(7)可确定性:全部的函数调用与服务执行的时间是可知的;
(8)系统服务:提供众多的系统服务,如:消息队列、信号量、内存管理等。
(9)中断管理:多达255层的中断管理。
(10)稳定性和可靠性:自1992年以来已经有好几百个商业应用。其中NationalOptronics公司成功将μC/OS用于三轴运动控制卡中,该三轴运动控制卡主要用于高精度的光电子制造业。
4 基于Stewart平台的伺服控制器设计
4.1 系统硬件结构
Stewart平台是6腿(杆)机械手,在大射电望远镜指向跟踪系统中是利用Stewart平台作馈源舱的精调子系统。在该系统中要求Stewart平台系统实现高精度、高实时性运动,其控制精度直接决定着馈源的定位精度,而且对Stewart平台控制器的可靠性、体积都有较高的要求。
Stewart平台控制系统基于ATMEL公司的AT9140800嵌入式微处理器为核心。其它主要硬件部分有:
(1) 存储器:系统配以2MBSDRAM,1MB线性FlashROM用于存储RTOS和应用软件。
(2) 编码器接口:设计6路独立编码器接口,包括脉冲细分逻辑和辨向电路。
(3) DA接口:6路独立的12位DA接口电路,其输出的模拟量作为伺服放大器的输入。
(4) 两个标准RS232接口:可以通过RS232接口接收主机的指令。
(5) 提供ISA总线接口:可以将本嵌入式系统插入PC的ISA槽中,通过ISA总线接收PC的指令,用于标准的工控模式。
(6) 各种状态指示灯,指示系统的工作状况和每个通道的工作状态。各接口的通讯格式全部采用带校验的自定义格式。
4.2 系统软件
该系统软件是基于μC/OS为RTOS开发的专用软件。主要包括以下几部分:
(1) 多任务管理;
(2) 内存资源管理;
(3)中断管理;
(4)UART接口管理;
(5) ISA接口管理;
(6) 电机控制ADRC算法。
其中(1)、(2)、(3)由μC/OS实现(与接口有关的中断服务程序需用户编写),其余为用户编程实现。传统的各类电机控制器中大多采用各种各样的PID,如非线性PID,模糊PID等,这里电机控制采用自抗扰控制ADRC(auto_disturbance rejector controller)算法。为了提高算法的效果,对原来ADRC算法进行了适当的改进,采用变参数思想,称之为模糊ADRC。
4.3 μC/OS的移植软件
μC/OS的移植工作主要包括:
(1)声明10个数据类型。在文件OS_CPU.H 中定义9个数据类型和一个堆栈宽度。
(2)用#define设置一个表示堆栈增长方向的常量OS_STK_GROWTH x 。
(3)用#define声明三个宏。
(4)用C语言编写六个简单的函数。
由于μC/OS是源码公开的免费型RTOS,其上有许多成功的移植实例共享。按照上述嵌入式软硬件设计思想,我们设计了Stewart平台专用伺服控制器。控制器能很好地跟踪期望信号,并能在很短的时间内消除干扰的影响。
5 结束语
嵌入式系统及其应用已成为当前研究和应用的热点,采用嵌入式系统的机电控制系统较传统控制系统在可靠性、体积、功耗、性价比等方面都具有明显的优势,相信不久的将来嵌入式系统会广泛应用于各类机电控制中,并能取得更好的控制效果和更好的系统综合性能。