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