1 电磁打桩机及其功能要求简介
电磁驱动是指导体在电磁场中受到电磁作用力而发生运动。电磁驱动器是由单组线圈外加轭铁构成。当电枢进入电磁驱动器中时,线圈不通电,由于轭铁和电枢都是用软磁性材料制成,它们之间没有作用力;当线圈通电,轭铁和电枢都被磁化,轭铁和电枢以及轭铁与电枢之间的空气间隙组成闭合磁路,电磁驱动器与电枢之间将产生电磁相互作用。但这种相互作用与电枢和驱动器之间的相对位置有关,当电枢处于驱动器的中平面上,磁阻最小,作用力为零;当电枢处于驱动器的某一端时,作用力使电枢向另一端运动。要强调的是,这种作用力的大小除了与电枢和驱动器相对位置有关外,仅与线圈电流的大小有关,而与电流的变化率无关。

图1 电磁打桩机结构图
如果将电磁驱动器与某个物体相连接,并且让其在与电枢发生相互作用时受到的作用力方向总是朝一个方向,那么电磁驱动器就能带着那个物体总是朝另一个方向运动。笔者所要设计的电磁打桩机正是运用了上面的原理,电磁打桩机结构如图1所示。 电磁打桩机工作的关键是线圈放电时机、放电时间和放电强度的选择,而且对准确性和实时性的要求很高,靠传统的机械和电子手段已经不能解决问题。为了保证控制的准确性和快速反应能力,必须采用计算机技术。在打桩过程中可能需要对桩的状态和性能做分析,桩的动测技术同样也要采用计算机技术来实现对信号的采集和处理分析。由于电磁打桩机机电部件多而且工作环境恶劣,在野外难免会发生故障,这就要求它能具有一定的自我故障诊断功能。
2 电磁打桩机控制器总体结构设计
嵌入式系统作为一个专用的计算机非常适合这种场合,根据电磁打桩机的功能要求和嵌入式系统的一般设计原则并结合未来的发展趋势,电磁打桩机控制器的结构设计如图2所示。

图2 电磁打桩机控制器结构图
3 电磁打桩机控制器的硬件
(1) 微处理器 一个嵌入式系统最核心的硬件是微处理器,笔者选择SAMSUNG公司的S3C44B0X作为电磁打桩机控制器的处理器,这是一款专为手持设备和一般应用提供的高性价比和高性能的ARM7TDMI核和RISC结构的32位微处理器。S3C44B0X自身带有扩展内存控制器、LCD控制器、71个通用I/O、8个10位ADC、带PWM的定义器等。
(2) 存储器系统 对于系统的存储结构,采用BIOS+系统内存+海量存储器的形式。系统通过BIOS启动,然后将硬盘里面的可执行文件拷贝到系统内存中,系统开始运行。BIOS采用NOR FLASH(线性FLASH),系统内存采用SDRAM,海量存储采用NAND FLASH(非线性FLASH)。S3C44B0X的地址空间具有8个Bank,在这里Bank0用作BIOS,Bank1用作海量存储,Bank6用作系统内存。S3C44B0X支持多种数据总线,这里采用的是16位数据总线,因此在存储器与处理器相连的时候要将存储器地址引脚A0和S3C44B0X的地址引脚A1相连,其他对应相连。
(3) 人机接口 人机接口包括键盘和LCD显示。键盘采用4×4的小键盘,分别有0~9、小数点、↑、↓、←、→、Enter这16个键。键盘采用行列布局,以扫描的方式工作。键盘的行列线分别接在S3C44B0X的8个通用I/O口上。 由于S3C44B0X内部带有LCD控制器,因此只需外接LCD显示屏,配以外围的驱动电路,再对LCD的寄存器进行编程即可。这里给电磁打桩机控制配置的显示屏是常见的320×240的单色LCD。
(4) 系统接口 为了使电磁打桩机控制器能够与外界交换信息,一些接口是必不可少的。在这里使用RS-232C作为其串行接口。S3C44B0X本身带有UART(通用异步收发器),可以提供两个独立的异步串行I/O口。由于RS-232C和UART端口的电平特性不同,要通过电平转换芯片如MAX3232等来实现两者之间电平的转换。 USB接口是已渐渐成为标准接口,具有很强的通用性和扩展性。S3C44B0X没有USB控制器,因此通过外部的USB控制器USBN9603来扩展出一个USB接口,该接口是作为设备接口使用的。 随着网络技术的发展,特别是IPv6技术的发展,这使得每一个嵌入式设备都有机会接入因特网。电磁打桩机控制器一旦能够与网络连接,就可以通过网络实现远程控制、远程诊断和软件的远程下载等。S3C44B0X没有自带Ethernet接口,这就需要通过外部Ethernet控制芯片来完成。这里用的是最常见的Ethernet控制芯片RTL8019AS。Ethernet的物理接口一般是RJ-45接口,RTL8019AS的数据收发线经隔离变压器与RJ-45相对应的端口相连。
(5) 数字、模拟I/O 电磁打桩机由许多部件组成,对各个组成部件的开关控制、部件状态的监测等需要许多数字I/O口;而且设备还有各种传感器,这些传感器发回的大多是模拟信号,这就需要模拟I/O口。S3C44B0X本身带有71个通用数字I/O,但很多都被占用,笔者用两片8255A来扩展到24路输入和24路输出。电磁打桩机除了传感器之外,其他部件与控制器之间的传输的信号基本上没有模拟信号,而且S3C44B0X本身带有8个10位ADC,数量和精度都已经能够满足使用要求,因此无需专门设计模拟信号输入输出。
(6) 外围辅助电路 由于电磁打桩机控制器各个器件的工作电压是不同的,如S3C44B0X内核为2.5V,I/O为3.3V,LCD驱动需要28V等。通过MAX1677可以从0.7~5.5V的输入得到3.3V和28V的电压,2.5V的电压则通过对3.3V的电压经二极管降压得到。 其他的如复位、时钟电路也是必不可少的。
4 电磁打桩机控制器的软件
(1) 操作系统μC/OS-Ⅱ 嵌入式系统的软件一般可分为两种,一种是没有操作系统的,一种是有操作系统的。没有操作系统的通常是通过CPU在所有任务之间轮回调度来实现,整个程序是一个无限循环。由于电磁打桩机控制器所要做的较多,而且对于某些事情线圈放电参数计算,其实时性要求很高,这就要用实时嵌入式操作系统来管理。这里为电磁打桩机控制器选择的操作系统是Jean J. Labrosse的μC/OS-Ⅱ。 μC/OS-Ⅱ是一款开放源码的实时嵌入式操作系统,具有可移植性强、可固化、可裁剪、内核短小精悍等特点,是比较理想的低端嵌入式操作系统。
(2) μC/OS-Ⅱ在S3C44B0X上的移植 μC/OS-Ⅱ在设计之初就考虑到了在不同CPU上运行,因此将和CPU与编译器相关的部分都独立出来。μC/OS-Ⅱ与CPU和编译器有关的部分都集中在OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C文件中。将μC/OS-Ⅱ移植到S3C44B0X就要根据S3C44B0X和编译器对这三个文件进行改写。 OS_CPU.H文件包含与编译器相关的数据类型、堆栈的定义以及用于开关中断的宏的定义。 OS_CPU_A.ASM中要改实现的是与处理器相关的几个函数:运行优先级最高的就绪任务函数OSStartHighRdy()、任务级的任务切换函数OSCtxSw()、中断级的任务切换函数OSIntCtxSw()和时钟节拍中断服务函数OSTickISR()。这些函数只能用汇编语言编写。 OS_CPU_C.C中需要用C语言实现和操作系统有关的几个函数:任务堆栈初始化函数OSTaskStkInit()和另外5个钩子函数。钩子函数可以不添加代码。 对这三个文件进行改写后经调试μC/OS-Ⅱ就可以在S3C44B0X上运行了。
(3) μC/OS-Ⅱ网络连接的实现 设备要与现有因特网连接就必须要支持TCP/IP协议。μC/OS-Ⅱ只提供了一个内核,它本身并不带有TCP/IP协议,但通过自己编写代码或使用第三方的软件可以实现μC/OS-Ⅱ的网络连接。这里将LwIP移植到μC/OS-Ⅱ上来实现网络连接。 LwIP是瑞士计算机学院(SICS)的Adam Dunkels等人开发的一套用于嵌入式系统的开发源码的TCP/IP协议栈。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的需求。一般只需要几十K的RAM和ROM就可以运行,非常适合在低端嵌入式系统中使用。LwIP在设计之时就充分考虑了在各种操作系统上的移植,将与硬件、操作系统和编译器相关的都独立出来。 LwIP中与CPU或编译器有关的文件包括cc.h、cpu.h和perf.h,这些文件定义了数据长度、字的高低位顺序等。 sys_arch.c中的内容主要是与操作系统有关的一些结构和函数。在这里要实现的有系统初始化sys_init()、新线程的创建sys_thread_new()、信号量的创建和使用sys_sem_t、消息的创建和使用sys_mbox_t,以及等待超时时间timeout的实现。 在lib_arch.c中有一些LwIP用到的外部函数要实现,这些函数主要是改变字节顺序的函数和一些字符串处理函数。 LwIP为网络设备制定了一个ethernetif.c的模板用于网络设备的驱动。根据使用的网络芯片的不同对ethernetif.c文件进行改写。驱动中要做的就是对网卡的初始化、接收、发送和中断处理操作。
(4) 针对电磁打桩机的应用程序
针对电磁打桩机的实际工作情况和其控制器的设计,其应用程序基本上包括如下几个部分: ? 人机接口程序,如键盘和LCD显示; ? 数字、模拟I/O口处理程序; ? 系统自检、故障诊断程序; ? 打桩程序; ? 桩测试程序; ? 其他服务程序。 μC/OS-Ⅱ中的应用程序是以任务的形式出现。根据实际使用要求,笔者为上述六种任务制定相应的优先级。μC/OS-Ⅱ为自己保留了8个任务的,用户可以使用的有56个。将键盘任务的优先级定为10,是应用程序中的最高优先级,其他应用任务的优先级依次降低。 由于在打桩时5和6程序并不是必要的,因此只是在被人为激活后才进入运行,运行结束后任务进入休眠状态。
5 结语
基于ARM核微处理器和μC/OS-Ⅱ操作系统的嵌入式系统作为电磁打桩机控制器可以有效实现对设备的控制并且能够具有一定的智能化水平。同时由于硬件设计上充分考虑到了大多数应用的需要,软件结构采用操作系统+应用程序的模型,只要对硬件做很小的改到,通过软件编程就可以使它很容易应用到其他应用场合
|