摘 要: 對現(xiàn)有海底大地電磁" title="大地電磁">大地電磁信號采集系統(tǒng)的主控模塊進(jìn)行了改進(jìn)。采用AT91m40800為主控單元,通過移植嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ進(jìn)行任務(wù)管理,并擴(kuò)展了ISA總線、串行接口" title="串行接口">串行接口和網(wǎng)絡(luò)接口" title="網(wǎng)絡(luò)接口">網(wǎng)絡(luò)接口。概要介紹了改進(jìn)方案的設(shè)計(jì)思路、μC/OS-Ⅱ的移植以及ARM對外圍器件的擴(kuò)展,并通過ISA總線仿真了系統(tǒng)時(shí)序效果。
關(guān)鍵詞: 大地電磁 ARM μC/OS-Ⅱ 功耗
1 海底大地電磁儀的分析
海底大地電磁數(shù)據(jù)采集器" title="采集器">采集器是對海底大地電磁場和海底環(huán)境信息進(jìn)行自動采集的智能化儀器,旨在建立具有我國特色的海底大地電磁探測技術(shù),并使之實(shí)用化,為我國海域區(qū)域地質(zhì)調(diào)查提供新的技術(shù)支撐,為發(fā)展我 國海洋電磁探測奠定基礎(chǔ)。儀器于2000年研制成功后,在我國東海大陸架進(jìn)行了成功試驗(yàn)。
整個(gè)數(shù)據(jù)采集器由電道前放板、磁道前放板、主放板、輔助通道板、時(shí)鐘板、數(shù)字板、標(biāo)定信號板和主控單元構(gòu)成層疊式電路結(jié)構(gòu)[1]。整個(gè)電路板的整體體積為90×96×170mm3,重量約1kg。采集器使用+5V和±12V三路電源,工作狀態(tài)下整機(jī)功耗為7W,正常工作的環(huán)境溫度為-20°C~+70°C。目前一期完成的海底大地電磁儀最長記錄時(shí)間為7天,頻率范圍為0.0001Hz~100Hz。數(shù)據(jù)采集器配置容量為144MB的固態(tài)電子盤。從數(shù)據(jù)處理的邏輯次序看,整個(gè)系統(tǒng)分為八部分,包括前置放大、數(shù)字和模擬濾波、低通濾波、高通濾波、主放大器、數(shù)模轉(zhuǎn)換、緩沖存儲和數(shù)據(jù)存儲。
一期建設(shè)中,海底大地電磁儀器整體效果還是令人滿意的。但也存在一些不足,主要體現(xiàn)在以下幾個(gè)方面:
(1) 系統(tǒng)功耗
目前系統(tǒng)正常工作下,功耗約為7W。其中主要包括磁場傳感器功耗290mW、傾斜傳感器功耗45mW、振動傳感器功耗0.5W、主控電路功耗2W等。在電池電能一定的情況下,整個(gè)采集可以持續(xù)7天左右,采集時(shí)間長度不夠。
(2) 主控單元
目前采用286系列主控單元,在嵌入式系統(tǒng)發(fā)展到很高水平的今天,已不適應(yīng)高效率、高集成度的技術(shù)需要。
(3)采集穩(wěn)定性
海底大地電磁采集要求各采集點(diǎn)精確同步,所以系統(tǒng)對穩(wěn)定性的要求十分高。而目前系統(tǒng)采用單道大循環(huán)程序?qū)崿F(xiàn)各項(xiàng)系統(tǒng)任務(wù)。這樣不利于提高數(shù)據(jù)采集的穩(wěn)定性。
2 改進(jìn)方案的設(shè)計(jì)思路
海底電磁數(shù)據(jù)采集需要在海上作業(yè),采集成本大。為了達(dá)到效益最大化,就必須明顯降低原有系統(tǒng)的功耗,并提高數(shù)據(jù)采集的穩(wěn)定性。鑒于此,改進(jìn)方案如下:
(1) 用ARM芯片取代286系列主控單元
ARM具有集成度高、能耗低等特點(diǎn),通過使用ARM芯片取代目前的286系列主控單元將極大地降低系統(tǒng)的功耗,同時(shí)也可以縮減電路,進(jìn)而降低電路的復(fù)雜度,減小系統(tǒng)的體積。
(2) 用μC/OS-Ⅱ取代目前的單道程序
μC/OS-Ⅱ取得了美國聯(lián)邦航空管理局(FAA)對于商用飛機(jī)的、符合RTCA DO-178B標(biāo)準(zhǔn)的認(rèn)證[2],表明μC/OS-Ⅱ具有足夠的安全性和穩(wěn)定性。使用操作系統(tǒng)管理多任務(wù)" title="多任務(wù)">多任務(wù),實(shí)現(xiàn)多任務(wù)的并發(fā)和同步。通過這種方式取代目前的單道大循環(huán)程序,可以提高系統(tǒng)的穩(wěn)定性。
3 改進(jìn)主控單元的硬件組成
ARM架構(gòu)在推出后取得了成功,各種ARM核心版本以及不同系統(tǒng)方案種類繁多。使用ARM本身已經(jīng)比原有主控電路功耗降低,在滿足實(shí)際需要的情況下,還可以在ARM各架構(gòu)中選擇功耗較低的。最終選擇了ARM7TDMI結(jié)構(gòu),部分架構(gòu)功耗比較見表1。由于原有數(shù)據(jù)采集系統(tǒng)前臺采集部分和后臺主控部分使用ISA總線標(biāo)準(zhǔn)進(jìn)行連接,在ARM7TDMI架構(gòu)的ARM芯片中,選擇了ATMEL公司支持ISA總線擴(kuò)展的AT91M40800。為完成系統(tǒng)所需任務(wù),根據(jù)ATMEL公司發(fā)布的EB40開發(fā)板電路設(shè)計(jì)主控單元。片內(nèi)SRAM 8KB,外部Flash 2MB,另有外部器件如串行接口和網(wǎng)絡(luò)接口等。AT91m40800共有37個(gè)寄存器,其中包括31個(gè)32位通用寄存器(含程序計(jì)數(shù)器PC在內(nèi))、6個(gè)32位狀態(tài)寄存器(但目前只使用其中的12位)。運(yùn)行時(shí)的任意時(shí)刻,可見寄存器包括15個(gè)通用寄存器(R0~R14),一個(gè)或兩個(gè)狀態(tài)寄存器及程序計(jì)數(shù)器PC,其他寄存器多用于備份。經(jīng)測試證明:所購芯片功耗測量均值小于0.25mW,較之原有主控單元2W的功耗,顯著降低。
4 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ的移植
盡管μC/OS-Ⅱ是用標(biāo)準(zhǔn)C語言寫的,但當(dāng)應(yīng)用到某個(gè)具體的CPU上時(shí),還需要用C和匯編語言寫一些與處理器相關(guān)的代碼。改寫過程主要結(jié)合改進(jìn)系統(tǒng)所采用的新主CPU AT91m40800的一些具體參數(shù),完成整個(gè)操作系統(tǒng)的移植。
μC/OS-Ⅱ可以大致分為內(nèi)核、任務(wù)處理、時(shí)間處理、任務(wù)同步與通信、與CPU的接口等五部分[2]。內(nèi)核(OSCore.c)是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、系統(tǒng)運(yùn)行、中斷處理、時(shí)鐘節(jié)拍、任務(wù)調(diào)度和事件處理等多任務(wù)。任務(wù)處理部分(OSTask.c)是與任務(wù)操作密切相關(guān)的,包括任務(wù)的建立、刪除、掛起、恢復(fù)等。時(shí)鐘部分(OSTime.c)定義μC/OS-Ⅱ的最小時(shí)鐘單位是Timetick(時(shí)鐘節(jié)拍)。任務(wù)同步和通信部分包括信號郵箱、郵箱隊(duì)列和時(shí)間標(biāo)志等部分,主要用于任務(wù)間的互相聯(lián)系和對臨界資源的訪問。與CPU接口部分是指μC/OS-Ⅱ針對所使用的CPU的移植部分,主要包括中斷級任務(wù)切換的底層實(shí)現(xiàn)、任務(wù)級任務(wù)切換的底層實(shí)現(xiàn)、時(shí)鐘節(jié)拍的產(chǎn)生和處理、中斷的相關(guān)處理部分等內(nèi)容。
μC/OS-Ⅱ除了良好的穩(wěn)定性和安全性以外,很重要的特點(diǎn)就是對多任務(wù)管理的優(yōu)異表現(xiàn)。μC/OS-Ⅱ可以管理多達(dá)64個(gè)任務(wù)。除了8個(gè)μC/OS-Ⅱ自用的任務(wù)以外,用戶的應(yīng)用程序最多可有56個(gè)任務(wù)。用戶可以通過系統(tǒng)提供的任務(wù)結(jié)構(gòu)來自行創(chuàng)立任務(wù)。改進(jìn)方案中需要管理的任務(wù)包括GPS校時(shí)、讀采集數(shù)據(jù)、數(shù)字濾波和存數(shù)據(jù),執(zhí)行框架如圖1。
在初始化時(shí),進(jìn)行GPS校時(shí)。讀優(yōu)先級最高,采集器不停地讀數(shù)據(jù)。當(dāng)數(shù)據(jù)在緩沖區(qū)中還沒填滿時(shí),進(jìn)行濾波和寫存儲器的任務(wù),一旦緩沖已滿就要繼續(xù)執(zhí)行讀操作。這里所說的讀操作實(shí)際上是系統(tǒng)從緩沖中讀的操作,并不是實(shí)際的采集器讀地磁信號操作。寫任務(wù)其次,必須連貫地完成一次寫任務(wù),中途不能被打斷。所以只有在不進(jìn)行讀操作時(shí),才可以進(jìn)行寫操作。濾波任務(wù)在讀任務(wù)完成后執(zhí)行,但是如果前一個(gè)寫任務(wù)還沒有完成,就不能濾波,以防止新數(shù)據(jù)無法寫入。所以只有當(dāng)新的讀任務(wù)結(jié)束,且舊的寫任務(wù)完成后方可執(zhí)行新讀數(shù)據(jù)的濾波任務(wù)。通過μC/OS-Ⅱ提供的信號量機(jī)制,可很好地實(shí)現(xiàn)任務(wù)進(jìn)程的互斥與并發(fā)。
5 ARM對外圍設(shè)備的擴(kuò)展
主控單元與前臺數(shù)據(jù)采集模塊間仍保留原有ISA總線接口標(biāo)準(zhǔn),只是自行設(shè)計(jì)ARM主控單元的接口電路如圖2所示。符合原有協(xié)議標(biāo)準(zhǔn)后,改進(jìn)電路成功替代了原來的主控。
雖然串行接口速度較慢,但完全可以滿足與上位機(jī)之間的通信。改進(jìn)方案首先實(shí)現(xiàn)了ARM對于串口的擴(kuò)展,作為通信手段之一。使用ARM公司自行開發(fā)的ARM調(diào)試專用環(huán)境ADS1.2測試串行接口的效果:擴(kuò)展程序所設(shè)計(jì)的輸出結(jié)果為AT9140800USART_CUGB,連接采集儀和PC機(jī),使用Windows自帶的超級終端可以看到輸出結(jié)果與設(shè)計(jì)一致,表明擴(kuò)展是成功的。
各采集器間及采集器與上位機(jī)交互還可通過網(wǎng)絡(luò)實(shí)現(xiàn)。改進(jìn)方案基于μC/OS-Ⅱ移植IP協(xié)議棧后,通過擴(kuò)展網(wǎng)絡(luò)接口卡,可實(shí)現(xiàn)網(wǎng)絡(luò)功能。由于網(wǎng)絡(luò)接口芯片本身也遵守ISA標(biāo)準(zhǔn),所以擴(kuò)展的網(wǎng)絡(luò)接口還可以用來仿真測試ISA總線。檢測總線時(shí)序情況就可測試主控模塊的功能情況。抓取ISA設(shè)備時(shí)序,即得出系統(tǒng)連接總線是否符合ISA協(xié)議標(biāo)準(zhǔn)。寫一次后,邏輯分析儀截出幾次時(shí)序,結(jié)果如圖3所示。圖3時(shí)序情況:/CS8019為網(wǎng)絡(luò)接口芯片片選信號,/WE為寫使能信號,/OE為輸出使能信號,A1~A5為低5位地址,D0~D7為8位數(shù)據(jù)位。圖3中顯示寫使能一次后,輸出多次,對應(yīng)地址循環(huán)(程序設(shè)定的輸出效果),數(shù)據(jù)位則是輸出8019的數(shù)據(jù),具體內(nèi)容沒有意義。如圖3虛線處,在C1時(shí)刻,開始進(jìn)行寫操作;C2時(shí)刻輸出,低5位地址為00000;C3時(shí)刻第二次輸出,地址為00001;C4時(shí)刻第三次輸出,地址為00010。依次類推,表明主控單元改進(jìn)滿足了ISA總線的要求,網(wǎng)絡(luò)接口擴(kuò)展也正常。基于此,通過與前臺數(shù)據(jù)采集模塊直接連接,即可進(jìn)行海底大地電磁數(shù)據(jù)的高效采集。
由于采用ARM芯片取代原有主控單元,僅此一項(xiàng)就降低功耗約25%,實(shí)現(xiàn)了功耗降低的要求。另外在采用了操作系統(tǒng)后,將使整個(gè)采集過程更穩(wěn)定有序,提高了整個(gè)采集過程的準(zhǔn)確性和安全性。
參考文獻(xiàn)
1 魏文博.海底大地電磁探測技術(shù).國家863計(jì)劃課題“海底大地電磁探測技術(shù)”階段總結(jié)報(bào)告.北京:中國地質(zhì)大學(xué),2002
2 Jean J. Labrosse 著,邵貝貝譯.μC/OS-Ⅱ 源碼公開的實(shí)時(shí)嵌入式操作系統(tǒng).北京:北京航空航天大學(xué)出版社,2003
3 杜春雷.ARM體系結(jié)構(gòu)與編程.北京:清華大學(xué)出版社,2003
4 周立功.ARM微控制器基礎(chǔ)與實(shí)踐.北京:北京航空航天大學(xué)出版社,2003
5 倪 敏.μC/OS-Ⅱ的任務(wù)切換機(jī)理及中斷調(diào)度優(yōu)化.單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003;(10)
6 湯子瀛.計(jì)算機(jī)操作系統(tǒng).西安:西安電子科技大學(xué)出版社,2001