1.引言
随着现代电子计算机技术的迅猛发展及普及,各式各样的自动化分析仪日新月异,而临床生化检验是实现自动化最早也最有成效的部分。大部分已装备的全自动生化分析仪无论其同时检测的项目多少还是其速度的快慢,其核心部分仍是建立在比色分析基础上的自动比色系统,其附属设备的增加及由计算机控制自动化程度的提高使分析仪具有了许多功能。
市场上每小时150―1200个测试的全自动生化分析仪的基本组成如下:

从框图可以看出,全自动生化分析仪是在计算机的程序控制下,围绕着比色分析而进行的一系列工作,同手工操作的化学反应一样,只不过是各个操作步骤都由相应的执行机构在计算机的控制下有序的完成。
2 基于ARM与UCLINUX的控制系统模型
2.1 系统结构模型及优点
采用ARM及UCLINUX具有以下好处: (1)提高控制性能。采用成熟32位的ARM处理器来控制,可以提高系统可测的反应类型和相应的项目。 (2)提高系统可靠性。S3C4510B是一款基于ARM7内核的32位RISC架构的处理器,其体积小、低功耗、低成本、性能高,支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件,采用此芯片后,控制器的硬件器件大为减少,软件程序大为缩短,均有助提高可靠性。 (3)提高系统实时性,采用UCLIMNUX操作系统可以提高系统反应时间,如减少试剂臂下降过程中触底的反应时间等等。 (4)降低软件研发成本。软件开发简单、快速,可以由更少的软件研发人员花更少的时间完成复杂的运动控制编程。
因此,采用采用ARM及UCLINUX能够提高系统性能,并得到更优秀的控制特性。且采用了运动控制芯片MCX314,由运动控制芯片来完成复杂的运动控制,而ARM处理器用来管理调度。 图1表示了基于这种思想开发的数控系统的结构。

2.2 数控系统的硬件结构
系统硬件采用ARM处理器加运动控制芯片结构模式。ARM处理器选用SANSUM公司的4510B处理芯片,用于键盘、显示,网络通讯等管理工作,而运动控制芯片采用了NOVA电子有限公司的MCX314芯片,专门负责运动控制的处理工作, MCX314芯片是一款能够同时控制4个伺服马达或步进马达的运动控制芯片,它以脉冲串形式输出,能对伺服马达或步进马达进行位置控制、插补驱动、速度控制等。该芯片输出的脉冲速度范围为1PPS一4MPPS,可以满足高速驱动的需求,并且脉冲的频率精确度小于0.1%。。控制系统硬件结构如图2所示。

2.3 ARM 处理器与运动控制芯片的连接

MCX314与CPU的连接如图3所示。其中:CLK是启动MCX314的内部同步电路的主时钟信号输入端,其频率为16.000MHz。驱动速度、加/减速度、加速度/减速度的变化率都根据此频率设定。A0-A2是MCX314读/写寄存器的地址信号。CSN为片选信号,低电平有效。INTN是供CPU使用的中断请求信号,由任何中断因素引发中断,INTN都为低电平,中断解除后,返回高阻态。WRN和RDN分别是写使能和读使能。PLS是Pulse/DIR模式下的脉冲输出端,占空比为50%,复位后为低电平。DIR是Pulse/DIR模式下的方向信号输出端,占空比为50%,复位后为低电平。LMTP和LMPM分别是正方向和负方向的越限信号输入端,在正、负方向驱动脉冲输出过程中,此信号有效就执行减速停止或立即停止,在方式选择中,可设定减速停止或立即停止和逻辑电平。IN0~IN3用于立即停止或减速运动中的轴,这里接原点和各工位的光电开关输入信号。EMGN信号常用于紧急停车,低电平会立即停止所有输出。
3 控制系统软件设计
3.1控制系统软件构架
uClinux是控制领域的嵌入式操作系统,其优势在于开源,免费.稳定及强大的网络功能,其内核的功能结构与Linux基本相同. 只是对内存管理和进程管理进行改写。uClinux不支持MMU.不能使用处理器的虚拟内存技术,它采用的是实存储器管理策略uClinux采用romfs文件系统.这种文件系统相对于一般的ext2文件系统占有更少的空间。uClinux重写了应用程序库。相对于大而全的glibc库,uclibc 对libc做了精简。
为了最大的利用系统硬件资源,并且还要保证实时性,所以使用了uClinux这个多任务实时操作系统,通过它实现多任务实时控制。程序的编程语言为C语言以及ARM汇编语言。uClinux的所有源代码都作为本程序的一部分,并与其它代码一起进行编译和链接。系统的软件构架如图4所示。
程序运行时将会先后创建如下任务: (1) TaskStart 系统运行后创建的第一个任务,完成一些初始化工作以及创建其它任务,所有工作完成后此任务将会被删除。 (2) TaskMainMenu 主任务,系统的菜单、网络下载以及测试等都在此任务中完成,进入运动控制任务后此任务会被挂起。 (3) TaskContml 运动控制任务,负责编织过程中命令发送、运动芯片状态读取、IO口操作等控制。 (4)TaskErrorControl 异常处理任务,负责运动过程中的异常处理。 (5)TaskStatusControl 运动状态任务,负责运动过程中的状态显示以及参数设置。 (6)TaskKeyInt 按键处理任务,负责对键盘输入的接收。 (7)TaskNetHandle 网络任务,负责对网络数据包的处理。 (8)Taskstatus 系统状态任务,负责显示CPU利用率、编码器值等系统状态。
2.2 UClinux的移植和驱动程序的编写
操作系统采用目前比较流行的嵌入式Linux操作系统UClinux。移植UClinux到S3C4510B上主要需要解决以下一些问题: 交叉编译环境的建立:在宿主机上安装arm―elf―tool工具包,建立基于ARM体系结构的编译器、链接器、调试器以及一些实用程序,编译UClinux内核、制作文件系统都需要依赖此交叉编译环境。
加载方式:UClinux的内核有两种运行方式,可以在Flash上直接运行;也可以加载到RAM 中运行。我们采用了boot-loader来执行设置开机寄存器的配置、内核与文件系统的加载以及传递硬件与启动参数给内核的方式加载UClinux内核。 配置、编译:在编译UClinux内核之前,首先要进行内核的系统类型、通用选项、块设备、文件系统、字符设备的选择和配置。最后用make zlmage命令生成压缩好的内核Zlmage。
UClinux的根文件系统的加载:系统内核启动成功之后便会试图加载根文件系统。UClinux采用的romfs根文件系统, romfs中需要保证基本目录和基本应用程序的存在,这样操作系统才能正常工作。
此外,还必须为各外部硬件设备编写UClinux的驱动程序,如IIC总线驱动、LCD驱动、打印机驱动等。UClinux的驱动程序结构和标准Linux驱动程序结构类似。大部分的标准Linux驱动都是采用模块化的方式,以支持动态加载/卸载的功能;而嵌入式系统都是针对具体应用的,一般不需要此功能,所以UClinux的驱动程序都是直接编译到内核中去的。
3.2 运动控制芯片的控制
与MCX314进行数据交换主要通过以WR开头的8个写寄存器和以RR开头的8个读寄存器。MCX314既可以用16位数据总线访问,也可以用8位数据总线访问。当用8位数据总线访问时,需要使用A0、A1、A2和A3。系统初始化时皆应预先设施寄存器初始制。
通过32位逻辑、实时位置计数器和比较寄存器实现位置反馈和控制;通过中断端口向主控制器发出中断请求;提供32个输出端口和48个输入端口,这些端口的功能各具特色。
本系统中运动控制芯片主要用于对4个轴(X.Y.Z.U)进行控制,X轴初始化程序流程图如下所示。

4 结论
采用基于ARM7的S3C451OB嵌入式微处理器,可以使系统小型化,便于提高性能以及与各种外设连接扩展,同时降低了成本。uclinux作为一个源代码公开的操作系统,在具体应用种稳定可靠。本系统采用ARM7+ uclinux开发设计,具有精度高、运行稳定、实时性好、抗干扰能力强、性价比高的特点,通过实验证明,这种设计方案是可行的,如果接入网络接口应用,将取得更好效果。
|