1.引言
隨著現(xiàn)代電子計(jì)算機(jī)技術(shù)的迅猛發(fā)展及普及,各式各樣的自動(dòng)化分析儀日新月異,而臨床生化檢驗(yàn)是實(shí)現(xiàn)自動(dòng)化最早也最有成效的部分。大部分已裝備的全自動(dòng)生化分析儀無論其同時(shí)檢測(cè)的項(xiàng)目多少還是其速度的快慢,其核心部分仍是建立在比色分析基礎(chǔ)上的自動(dòng)比色系統(tǒng),其附屬設(shè)備的增加及由計(jì)算機(jī)控制自動(dòng)化程度的提高使分析儀具有了許多功能。
市場(chǎng)上每小時(shí)150―1200個(gè)測(cè)試的全自動(dòng)生化分析儀的基本組成如下:
從框圖可以看出,全自動(dòng)生化分析儀是在計(jì)算機(jī)的程序控制下,圍繞著比色分析而進(jìn)行的一系列工作,同手工操作的化學(xué)反應(yīng)一樣,只不過是各個(gè)操作步驟都由相應(yīng)的執(zhí)行機(jī)構(gòu)在計(jì)算機(jī)的控制下有序的完成。
2 基于ARM與UCLINUX的控制系統(tǒng)模型
2.1 系統(tǒng)結(jié)構(gòu)模型及優(yōu)點(diǎn)
采用ARM及UCLINUX具有以下好處:
(1)提高控制性能。采用成熟32位的ARM處理器來控制,可以提高系統(tǒng)可測(cè)的反應(yīng)類型和相應(yīng)的項(xiàng)目。
(2)提高系統(tǒng)可靠性。S
(3)提高系統(tǒng)實(shí)時(shí)性,采用UCLIMNUX操作系統(tǒng)可以提高系統(tǒng)反應(yīng)時(shí)間,如減少試劑臂下降過程中觸底的反應(yīng)時(shí)間等等。
(4)降低軟件研發(fā)成本。軟件開發(fā)簡(jiǎn)單、快速,可以由更少的軟件研發(fā)人員花更少的時(shí)間完成復(fù)雜的運(yùn)動(dòng)控制編程。
因此,采用采用ARM及UCLINUX能夠提高系統(tǒng)性能,并得到更優(yōu)秀的控制特性。且采用了運(yùn)動(dòng)控制芯片MCX314,由運(yùn)動(dòng)控制芯片來完成復(fù)雜的運(yùn)動(dòng)控制,而ARM處理器用來管理調(diào)度。
圖1表示了基于這種思想開發(fā)的數(shù)控系統(tǒng)的結(jié)構(gòu)。
2
系統(tǒng)硬件采用ARM處理器加運(yùn)動(dòng)控制芯片結(jié)構(gòu)模式。ARM處理器選用SANSUM公司的4510B處理芯片,用于鍵盤、顯示,網(wǎng)絡(luò)通訊等管理工作,而運(yùn)動(dòng)控制芯片采用了NOVA電子有限公司的MCX314芯片,專門負(fù)責(zé)運(yùn)動(dòng)控制的處理工作, MCX314芯片是一款能夠同時(shí)控制4個(gè)伺服馬達(dá)或步進(jìn)馬達(dá)的運(yùn)動(dòng)控制芯片,它以脈沖串形式輸出,能對(duì)伺服馬達(dá)或步進(jìn)馬達(dá)進(jìn)行位置控制、插補(bǔ)驅(qū)動(dòng)、速度控制等。該芯片輸出的脈沖速度范圍為1PPS一4MPPS,可以滿足高速驅(qū)動(dòng)的需求,并且脈沖的頻率精確度小于0.1%。??刂葡到y(tǒng)硬件結(jié)構(gòu)如圖2所示。
2.3 ARM 處理器與運(yùn)動(dòng)控制芯片的連接
MCX314與CPU的連接如圖3所示。其中:CLK是啟動(dòng)MCX314的內(nèi)部同步電路的主時(shí)鐘信號(hào)輸入端,其頻率16.000MHz。驅(qū)動(dòng)速度、加/減速度、加速度/減速度的變化率都根據(jù)此頻率設(shè)定。A0-A2是MCX314讀/寫寄存器的地址信號(hào)。CSN為片選信號(hào),低電平有效。INTN是供CPU使用的中斷請(qǐng)求信號(hào),由任何中斷因素引發(fā)中斷,INTN都為低電平,中斷解除后,返回高阻態(tài)。WRN和RDN分別是寫使能和讀使能。PLS是Pulse/DIR模式下的脈沖輸出端,占空比為50%,復(fù)位后為低電平。DIR是Pulse/DIR模式下的方向信號(hào)輸出端,占空比為50%,復(fù)位后為低電平。LMTP和LMPM分別是正方向和負(fù)方向的越限信號(hào)輸入端,在正、負(fù)方向驅(qū)動(dòng)脈沖輸出過程中,此信號(hào)有效就執(zhí)行減速停止或立即停止,在方式選擇中,可設(shè)定減速停止或立即停止和邏輯電平。IN0~IN3用于立即停止或減速運(yùn)動(dòng)中的軸,這里接原點(diǎn)和各工位的光電開關(guān)輸入信號(hào)。EMGN信號(hào)常用于緊急停車,低電平會(huì)立即停止所有輸出。
3 控制系統(tǒng)軟件設(shè)計(jì)
3.1控制系統(tǒng)軟件構(gòu)架
uClinux是控制領(lǐng)域的嵌入式操作系統(tǒng),其優(yōu)勢(shì)在于開源,免費(fèi).穩(wěn)定及強(qiáng)大的網(wǎng)絡(luò)功能,其內(nèi)核的功能結(jié)構(gòu)與Linux基本相同. 只是對(duì)內(nèi)存管理和進(jìn)程管理進(jìn)行改寫。uClinux不支持MMU.不能使用處理器的虛擬內(nèi)存技術(shù),它采用的是實(shí)存儲(chǔ)器管理策略uClinux采用romfs文件系統(tǒng).這種文件系統(tǒng)相對(duì)于一般的ext2文件系統(tǒng)占有更少的空間。uClinux重寫了應(yīng)用程序庫。相對(duì)于大而全的glibc庫,uclibc 對(duì)libc做了精簡(jiǎn)
為了最大的利用系統(tǒng)硬件資源,并且還要保證實(shí)時(shí)性,所以使用了uClinux這個(gè)多任務(wù)實(shí)時(shí)操作系統(tǒng),通過它實(shí)現(xiàn)多任務(wù)實(shí)時(shí)控制。程序的編程語言為C語言以及ARM匯編語言。uClinux的所有源代碼都作為本程序的一部分,并與其它代碼一起進(jìn)行編譯和鏈接。系統(tǒng)的軟件構(gòu)架如圖4所示。
程序運(yùn)行時(shí)將會(huì)先后創(chuàng)建如下任務(wù):
(1) TaskStart 系統(tǒng)運(yùn)行后創(chuàng)建的第一個(gè)任務(wù),完成一些初始化工作以及創(chuàng)建其它任務(wù),所有工作完成后此任務(wù)將會(huì)被刪除。
(2) TaskMainMenu 主任務(wù),系統(tǒng)的菜單、網(wǎng)絡(luò)下載以及測(cè)試等都在此任務(wù)中完成,進(jìn)入運(yùn)動(dòng)控制任務(wù)后此任務(wù)會(huì)被掛起。
(3) TaskContml 運(yùn)動(dòng)控制任務(wù),負(fù)責(zé)編織過程中命令發(fā)送、運(yùn)動(dòng)芯片狀態(tài)讀取、IO口操作等控制。
(4)TaskErrorControl 異常處理任務(wù),負(fù)責(zé)運(yùn)動(dòng)過程中的異常處理。
(5)TaskStatusControl 運(yùn)動(dòng)狀態(tài)任務(wù),負(fù)責(zé)運(yùn)動(dòng)過程中的狀態(tài)顯示以及參數(shù)設(shè)置。
(6)TaskKeyInt 按鍵處理任務(wù),負(fù)責(zé)對(duì)鍵盤輸入的接收。
(7)TaskNetHandle 網(wǎng)絡(luò)任務(wù),負(fù)責(zé)對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的處理。
(8)Taskstatus 系統(tǒng)狀態(tài)任務(wù),負(fù)責(zé)顯示CPU利用率、編碼器值等系統(tǒng)狀態(tài)。
2.2 UClinux的移植和驅(qū)動(dòng)程序的編寫
操作系統(tǒng)采用目前比較流行的嵌入式Linux操作系統(tǒng)UClinux。移植UClinux到S
交叉編譯環(huán)境的建立:在宿主機(jī)上安裝arm―elf―tool工具包,建立基于ARM體系結(jié)構(gòu)的編譯器、鏈接器、調(diào)試器以及一些實(shí)用程序,編譯UClinux內(nèi)核、制作文件系統(tǒng)都需要依賴此交叉編譯環(huán)境。
加載方式:UClinux的內(nèi)核有兩種運(yùn)行方式,可以在Flash上直接運(yùn)行;也可以加載到RAM 中運(yùn)行。我們采用了boot-loader來執(zhí)行設(shè)置開機(jī)寄存器的配置、內(nèi)核與文件系統(tǒng)的加載以及傳遞硬件與啟動(dòng)參數(shù)給內(nèi)核的方式加載UClinux內(nèi)核。
配置、編譯:在編譯UClinux內(nèi)核之前,首先要進(jìn)行內(nèi)核的系統(tǒng)類型、通用選項(xiàng)、塊設(shè)備、文件系統(tǒng)、字符設(shè)備的選擇和配置。最后用make zlmage命令生成壓縮好的內(nèi)核Zlmage。
UClinux的根文件系統(tǒng)的加載:系統(tǒng)內(nèi)核啟動(dòng)成功之后便會(huì)試圖加載根文件系統(tǒng)。UClinux采用的romfs根文件系統(tǒng),
romfs中需要保證基本目錄和基本應(yīng)用程序的存在,這樣操作系統(tǒng)才能正常工作。
此外,還必須為各外部硬件設(shè)備編寫UClinux的驅(qū)動(dòng)程序,如IIC總線驅(qū)動(dòng)、LCD驅(qū)動(dòng)、打印機(jī)驅(qū)動(dòng)等。UClinux的驅(qū)動(dòng)程序結(jié)構(gòu)和標(biāo)準(zhǔn)Linux驅(qū)動(dòng)程序結(jié)構(gòu)類似。大部分的標(biāo)準(zhǔn)Linux驅(qū)動(dòng)都是采用模塊化的方式,以支持動(dòng)態(tài)加載/卸載的功能;而嵌入式系統(tǒng)都是針對(duì)具體應(yīng)用的,一般不需要此功能,所以UClinux的驅(qū)動(dòng)程序都是直接編譯到內(nèi)核中去的。
3.2 運(yùn)動(dòng)控制芯片的控制
與MCX314進(jìn)行數(shù)據(jù)交換主要通過以WR開頭的8個(gè)寫寄存器和以RR開頭的8個(gè)讀寄存器。MCX314既可以用16位數(shù)據(jù)總線訪問,也可以用8位數(shù)據(jù)總線訪問。當(dāng)用8位數(shù)據(jù)總線訪問時(shí),需要使用A0、A1、A2和A3。系統(tǒng)初始化時(shí)皆應(yīng)預(yù)先設(shè)施寄存器初始制。
通過32位邏輯、實(shí)時(shí)位置計(jì)數(shù)器和比較寄存器實(shí)現(xiàn)位置反饋和控制;通過中斷端口向主控制器發(fā)出中斷請(qǐng)求;提供32個(gè)輸出端口和48個(gè)輸入端口,這些端口的功能各具特色。
本系統(tǒng)中運(yùn)動(dòng)控制芯片主要用于對(duì)4個(gè)軸(X.Y.Z.U)進(jìn)行控制,X軸初始化程序流程圖如下所示。
4 結(jié)論
采用基于ARM7的S
參考文獻(xiàn):
[1].馬忠梅,馬廣云等.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ).北京:北京航空航天大學(xué)出版社,2002
[2].Samsung Electronics。CPU一S
[3].李駒光 聶雪媛等.ARM應(yīng)用系統(tǒng)開發(fā)詳解-基于S
[4].Linux與嵌入式系統(tǒng),李善平等,清華大學(xué)出版社,2003.
[5].[美]Hollabaugh C,陳雷,鐘書毅等譯.嵌入式linux―― 硬件、軟件與接口.北京:電子工業(yè)出版社,2003
[6].葉佩青,汪勁松. MCX314運(yùn)動(dòng)控制芯片與數(shù)控系統(tǒng)設(shè)計(jì). 北京航空航天大學(xué)出版社,2002