基于ARM920T的嵌入式靜力測量系統(tǒng)設(shè)計
0 引言
本文引用地址:http://www.ex-cimer.com/article/80233.htm靜力測量可用于許多不同的測量系統(tǒng)中。目前大多數(shù)工業(yè)控制系統(tǒng)、地質(zhì)勘測系統(tǒng)以及建筑測量中所使用的計量設(shè)備(衡器)的測量模型大多建立于杠桿原理或彈性原理,其平衡方程均建立在靜力平衡的基礎(chǔ)之上。隨著微電子技術(shù)的進(jìn)一步發(fā)展、嵌入式芯片的大量引入、控制功能的完善、速度及組態(tài)軟件以及圖像處理技術(shù)的發(fā)展,目前已出現(xiàn)了很多新型靜力測量系統(tǒng)。當(dāng)今的靜力測量系統(tǒng)正沿著微型化、智能化和網(wǎng)絡(luò)化的主流方向發(fā)展。
在以前主從式單片機實現(xiàn)的靜力測量系統(tǒng)中,主單片機負(fù)責(zé)管理整個系統(tǒng),從單片機負(fù)責(zé)實現(xiàn)具體的功能,然后通過增加外設(shè)來實現(xiàn)顯示和打印功能。整個系統(tǒng)只有一個主程序,其中包括系統(tǒng)控制模塊、驅(qū)動和用戶界面程序。這樣,系統(tǒng)的硬件軟件功能的可擴(kuò)展性以及通信方式、數(shù)據(jù)存儲能力就受到了很大的限制。針對這些問題并結(jié)合實際的項目需要,本文提出并研制了一種基于ARM920T內(nèi)核的嵌入式靜力測量系統(tǒng)。
1 靜力測量原理及系統(tǒng)要求
靜力測量一般是采用半導(dǎo)體應(yīng)變電阻的特性來實現(xiàn)的。這可在宏觀上用金屬絲應(yīng)變電阻方程來描述:
對于半導(dǎo)體材料,其電阻的變化率△R/R主要由△ρ/ρ引起,這種變化取決于它的電阻應(yīng)變,所以,可得到下列公式:
式中,π為壓阻系數(shù),σ為應(yīng)力,E為彈性模量,ε為應(yīng)變,μ為泊松比。
半導(dǎo)體應(yīng)變片的靈敏度為:
靜力測量一般通過單橋或雙橋橋式電路來實現(xiàn),在圖1所示的電橋中,在初始狀態(tài),橋是平衡的,也就是B、D兩點的電壓為0。而在力的作用之下,由于壓力電阻的特殊屬性,應(yīng)力變化導(dǎo)致R1電阻阻值發(fā)生變化,從而使得橋臂不平衡,這個不平衡會反映在電阻R1的電壓上。該電壓再經(jīng)過放大電路放大,最終作為AD轉(zhuǎn)換器的輸入電壓信號。這里需要注意的重要一點是,電阻RL兩端的電位均是以電源E的一半為參考的,因此,在電路設(shè)計時,這一點需要充分考慮。
靜力測量系統(tǒng)往往工作于較為惡劣的環(huán)境,通常是在野外進(jìn)行,很多的數(shù)據(jù)和信息都不能在現(xiàn)場得到及時的處理,因此,要求系統(tǒng)具有較強的抗干擾能力、強大的系統(tǒng)處理功能及較多的外圍支持設(shè)備,同時要具有良好而美觀的用戶界面、較大的數(shù)據(jù)存儲空間和很好的程序模塊化,此外,它還應(yīng) 具有良好的數(shù)據(jù)和圖像處理功能,以便任務(wù)完成后能在脫離現(xiàn)場的空間對所獲數(shù)據(jù)和信息進(jìn)行處理并得出想要的結(jié)果。
2 系統(tǒng)硬件設(shè)計
基于目標(biāo)系統(tǒng)功能的要求,本設(shè)計中整個系統(tǒng)的核心處理器和操作系統(tǒng)分別選定三星公司基于ARM9內(nèi)核的S3CFS2410處理器和目前比較流行的Linux操作系統(tǒng)。同時,其硬件系統(tǒng)還需具備處理能力和外設(shè)比較豐富的ARM處理器、適當(dāng)大小的內(nèi)存、存儲容量匹配的閃存、顯示設(shè)備和交互設(shè)備接口、串口和USB口、網(wǎng)絡(luò)控制器和網(wǎng)口、模數(shù)轉(zhuǎn)換模塊、外部中斷接口、紅外線收發(fā)器、實時時鐘和在線調(diào)試ICE接口等。其功能方框圖如圖2所示。
采用圖2所示的結(jié)構(gòu)進(jìn)行設(shè)計可以最大程度地實現(xiàn)核心板的擴(kuò)展功能。該設(shè)計在核心板上集成有ARM處理器S3CFS2410;內(nèi)存63 M字節(jié)的SDRAM由兩片K4S561632組成;10 MB的以太網(wǎng)控制器選用CS8900Q3;64 M字節(jié)的Nand Flash閃存選用K9F1208,而2MB的Nor Flash閃存則選用SST39VF1601。S3CFS2410是三星公司的一款基于ARM920T內(nèi)核的16、32位RISC嵌入式微處理器,主要面向手持設(shè)備以及高性價比、低功耗的應(yīng)用。它的運行頻率可以達(dá)到203 MHz。此外,S3CFS2410集成的資源還包含有LCD控制器、SDRAM控制器、3個通道的UART、4個通道的DMA、4個具有PWM功能的計時器和一個內(nèi)部時鐘、8通道的10位ADC、觸摸屏接口、IIS總線接口、2個USB主機接口、1個USB設(shè)備接口、2個SPI接口、看門狗計數(shù)器、117個通用I/O口和24個外部中斷源、8通道的10位AD控制器、一個具有日歷功能的RTC和具有PLL的芯片時鐘發(fā)生器。由于該芯片用MPLL產(chǎn)生主時鐘,因此能夠使主處理器的工作頻率高達(dá)203 MHz。
本設(shè)計在硬件實現(xiàn)方案上充分考慮到系統(tǒng)的可擴(kuò)展性和核心板布局的靈活性,因而采用了拔插式的核心板布局。其他各外部功能處理模塊(如鍵盤、模數(shù)轉(zhuǎn)換電路、通用I/O口、液晶屏、觸摸屏、網(wǎng)絡(luò)接口、USB接口、無線收發(fā)模塊、串口UART、VGA轉(zhuǎn)化電路和電源模塊)均采用擴(kuò)展接口的形式來實現(xiàn)其模塊功能,主要用來完成數(shù)據(jù)的收發(fā)、網(wǎng)絡(luò)通訊、鍵盤操作以及圖像處理和顯示。通過這些特殊功能模塊可對現(xiàn)場得到的數(shù)據(jù)進(jìn)行特定的處理,以便很好地完成人機交互界面和通過外設(shè)對系統(tǒng)核心模塊的控制,具體接口方式如圖3所示。
3 系統(tǒng)軟件設(shè)計
本系統(tǒng)的編譯和調(diào)試可采用ADS1.2工具。該工具的功能非常強大,能支持多種ARM內(nèi)核以及ARM匯編語言、C語言、C++等。而且在進(jìn)行各種參數(shù)設(shè)置時,不必記憶大量的參數(shù)格式,而是可直接在窗口中設(shè)置。它能夠支持映象仿真,并可配合調(diào)試硬件邏輯SUPERJTAG實現(xiàn)在線調(diào)試。
由于本系統(tǒng)是一個基于ARM的嵌入式Linux系統(tǒng)平臺,系統(tǒng)最為關(guān)鍵的是實現(xiàn)引導(dǎo)程序,植入Linux操作系統(tǒng),而不很關(guān)心具體的應(yīng)用。所以,軟件系統(tǒng)的主要任務(wù)是實現(xiàn)一個性能優(yōu)良的引導(dǎo)程序,以使Linux操作系統(tǒng)能夠良好地運行起來。事實上,在嵌入式系統(tǒng)中,通常并沒有像PC機中BIOS那樣的同件程序,因此,整個系統(tǒng)的加載啟動任務(wù)就完全由Boot Loader來完成。完成硬件檢測和資源分配后,只要將閃存中的BootLoader讀到系統(tǒng)的RAM中,然后將控制權(quán)交給Boot Loader即可。Boot Loader的主要運行任務(wù)是將內(nèi)核映象從閃存讀到RAM,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行,也就是開始啟動操作系統(tǒng)。
由于Boot Loader的實現(xiàn)依賴于CPU的體系結(jié)構(gòu),因此大多數(shù)Boot Loader都分為階段一和階段二兩大部分。依賴于CPU體系結(jié)構(gòu)的代碼(比如設(shè)備初始化代碼等)通常都放在階段一中,且通常都用匯編語言來實現(xiàn),以達(dá)到短小精悍的目的。而階段二則通常用C語言來實現(xiàn),這樣可以實現(xiàn)更復(fù)雜的功能,而且代碼會具有更好的可讀性和可移植性。
Boot Loader的階段一通常包括以下步驟(以執(zhí)行的先后順序列出):
◇硬件設(shè)備初始化;
◇為加載Boot Loader的階段二準(zhǔn)備RAM空間;
◇拷貝Boot Loader的階段二到RAM空間中;
◇設(shè)置好堆棧;
◇跳轉(zhuǎn)到階段二的C入口點。
Boot Loader的階段二通常包括以下步驟(以執(zhí)行的先后順序列出):
◇初始化本階段要使用到的硬件設(shè)備;
◇檢測系統(tǒng)內(nèi)存映射(memory map);
◇將kernel映像和根文件系統(tǒng)映像從Flash上讀到RAM空間中;
◇為內(nèi)核設(shè)置啟動參數(shù);
◇調(diào)用內(nèi)核。
接下來就是內(nèi)核的編譯、目標(biāo)文件系統(tǒng)的制作以及調(diào)試仿真實現(xiàn)程序各模塊的固化。這些均可選取一下的交叉編譯工具來實現(xiàn)。本系統(tǒng)選擇Redhat9.0(Linux操作系統(tǒng)),其交叉編譯工具有兩個:一個是cross-2.95.3.tar.bz2,安裝此編譯器只需要在/usr/local下建立一個arm目錄再執(zhí)行解包命令即可。當(dāng)編輯/etc/bashrc文件并在最后增加路徑/usr/local/arm/2.95.3/bin之后,再編澤內(nèi)核或其它應(yīng)用程序時,均可用arm-linux-來指定交叉編譯器。另一個編譯器是MIZI提供的arm41安裝包,它的安裝必須有binutils、gcc、glibc等幾包存在。當(dāng)有其它應(yīng)用時,還需要安裝另外的工具,它們都會安裝在/opt/host/arm41下,而不需要再手工設(shè)置路徑。
為了將Linux內(nèi)核固化,需要將該程序和模塊添加到根文件系統(tǒng)中。為此,本設(shè)計制作了demo.cramfs這樣一個根文件系統(tǒng)。其具體操作步驟如下:
(1) 將demo.cramfs拷貝到任意目錄下;
(2) 在該目錄下建立兩個目錄dirl和dir2;
(3)將目標(biāo)文件系統(tǒng)demo.cramfs掛接到目錄dir1;
(4) 將目錄dir1下的內(nèi)容壓縮;
(5) 與目錄dir1卸載掛接,將此壓縮包解壓到錄dir2下,然后刪除此包;
(6) 將驅(qū)動程序、應(yīng)用程序分別拷貝到dir2/usr/和應(yīng)用程序?qū)?yīng)的目錄下。
經(jīng)過上面的步驟便可將驅(qū)動程序和應(yīng)用程序添加到了demo.cramfs中。然后將mkcramfs文件拷貝到dir2所在目錄。運行該命令成功后便可生成所期待的根文件系統(tǒng)了。
最后就是系統(tǒng)軟件具體應(yīng)用代碼的調(diào)試和映像文件的燒寫。調(diào)試的方式可分為三種:ADS裝栽映象調(diào)試、通過串口輸出信息到主機的調(diào)試、通過外部的ARMJTAG代理軟件和SUPERJTAG電路協(xié)作調(diào)試。在調(diào)試Boot Loader或者內(nèi)核過程中,可通過主機上的DNM或者超級終端程序來顯示目標(biāo)板的各種輸出信息。
4 結(jié)束語
從硬件和軟件兩部分的工作情況看,其硬件模塊能正常運行,電路板的工作電壓轉(zhuǎn)換后工作正常,轉(zhuǎn)換效率、電壓波動和電流大小均能達(dá)到設(shè)計要求;而系統(tǒng)軟件引導(dǎo)程序也能正常實現(xiàn)目標(biāo)板各種資源的初始化設(shè)置和管理。Linux操作系統(tǒng)和文件系統(tǒng)在建立相應(yīng)的工作環(huán)境,并正確進(jìn)行相應(yīng)配置后,通過相應(yīng)命令操作可順利制作出對應(yīng)的映象文件。此映象文件成功后,內(nèi)存中的程序也可以按照預(yù)期正常運行,并能夠?qū)崿F(xiàn)操作系統(tǒng)各種基本功能和文件系統(tǒng)的各種管理。此外,筆者還進(jìn)行了應(yīng)用程序的二次開發(fā),最終研制成功了一套嵌入式靜力測量系統(tǒng)。實踐表明,該系統(tǒng)設(shè)計合理、性能穩(wěn)定、功能強大、運行可靠,具有很好的應(yīng)用前景.
評論