作者:劉輝,唐露新,張智軍,姚歡
1 引言
隨著科技的發(fā)展,嵌入式操作系統(tǒng)在越來越多的領(lǐng)域發(fā)揮著重要的作用,目前已成為產(chǎn)品技術(shù)水平的標(biāo)志之一。其中Linux因?yàn)槠鋼碛虚_放性、多用戶、多任務(wù)、良好的用戶界面、豐富的網(wǎng)絡(luò)功能、可靠的系統(tǒng)安全和良好的可移植等特性被廣泛的應(yīng)用到儀器測(cè)量設(shè)備中。
傳統(tǒng)的磁場(chǎng)測(cè)量設(shè)備(持斯拉計(jì)、高斯計(jì))普遍存在精度低(典型測(cè)量精度為1.5%)、操作不便等缺點(diǎn)。本文提出一種基于嵌入式Linux的中頻磁場(chǎng)測(cè)量系統(tǒng),它不但可以滿足當(dāng)前磁場(chǎng)測(cè)量數(shù)據(jù)采集的需要,還因?yàn)槠淝度肓瞬僮飨到y(tǒng)Linux,使具有可靠性好、升級(jí)方便的特點(diǎn),既提高了磁場(chǎng)測(cè)量的準(zhǔn)確性,又為儀器的功能升級(jí)帶來便利。可應(yīng)用于實(shí)驗(yàn)室儀器,醫(yī)療儀器,姿態(tài)控制,安全檢測(cè)等需磁場(chǎng)檢測(cè)的領(lǐng)域。
2 磁場(chǎng)測(cè)量系統(tǒng)的硬件結(jié)構(gòu)
磁場(chǎng)測(cè)量系統(tǒng)在硬件結(jié)構(gòu)上采用ARM9作為控制器,與信號(hào)放大、整流濾波、程控放大等硬件構(gòu)成了整個(gè)磁場(chǎng)測(cè)量系統(tǒng)。而且,測(cè)量系統(tǒng)還搭配了USB、RS232、以太網(wǎng)通信接口,系統(tǒng)通訊能力強(qiáng),可實(shí)現(xiàn)網(wǎng)絡(luò)連網(wǎng)功能。其硬件結(jié)構(gòu)如圖1所示。
·ARM9嵌入式處理器采用三星公司的$3C2410。S3C2410是基于ARM920T內(nèi)核的16/32位RISC嵌入式微處理器,主要面向手持設(shè)備以及高性價(jià)比,低功耗的應(yīng)用。它采用5級(jí)流水線和全性能的MMU,同時(shí)該芯片集成了大量的功能擴(kuò)展單元,例如LCD控制器、I2C總線、觸摸屏接口、USB接口等。強(qiáng)大的芯片功能簡(jiǎn)化了系統(tǒng)設(shè)計(jì),不但縮小了系統(tǒng)體積,而且提高了系統(tǒng)的可靠性。
·USB、RS232和以太網(wǎng)接口可為系統(tǒng)提供不同的通信方式,適合不同測(cè)量環(huán)境和條件,以太網(wǎng)接口還可實(shí)現(xiàn)系統(tǒng)聯(lián)網(wǎng)功能。
·在磁場(chǎng)測(cè)量系統(tǒng)中,可使用觸摸屏簡(jiǎn)便地對(duì)系統(tǒng)進(jìn)行控制,實(shí)現(xiàn)不同顯示方式切換、參數(shù)設(shè)置和測(cè)量數(shù)據(jù)保存等功能。
·磁場(chǎng)測(cè)量電壓信號(hào)部分,由磁場(chǎng)傳感器得到微弱的電壓信號(hào),經(jīng)放大整流等措施后輸入控制系統(tǒng)。
·報(bào)警輸出可實(shí)現(xiàn)用戶自設(shè)定報(bào)警的上下限值,方便用戶測(cè)量現(xiàn)場(chǎng)的監(jiān)控。
3 磁場(chǎng)測(cè)量系統(tǒng)前端信號(hào)處理模塊
磁場(chǎng)測(cè)量系統(tǒng)前端傳感器采用的測(cè)量方法為電磁感應(yīng)法。電磁感應(yīng)法是將測(cè)量線圈置入交變磁場(chǎng)中,根據(jù)法拉第電磁感應(yīng)定律在線圈的引線間會(huì)產(chǎn)生感應(yīng)電動(dòng)勢(shì),并且感應(yīng)電動(dòng)勢(shì)的大小與穿過線圈的磁通量的大小成正比。感應(yīng)電動(dòng)勢(shì)e為:
測(cè)量系統(tǒng)前端信號(hào)處理模塊的結(jié)構(gòu)如圖2所示。
(1)為了實(shí)現(xiàn)多路磁場(chǎng)傳感器的信號(hào)輸入,設(shè)計(jì)中采用片選芯片74HCl5進(jìn)行通道的選擇。通過對(duì)74HCl53控制端S0,Sl輸入不同的數(shù)據(jù)組合(00,10,0l,11),輸出端lY和2Y就可實(shí)現(xiàn)不同輸入通道的選擇。
(2)在整個(gè)系統(tǒng)的電路設(shè)計(jì)中,前置放大電路的主要作用是將傳感器輸出的、和磁場(chǎng)強(qiáng)度成正比的微弱電壓信號(hào)放大。根據(jù)其要求,設(shè)計(jì)的前置放大電路采用了差動(dòng)放大的方式,電路如圖3所示。它具有高共模抑制比、輸入阻抗高、輸出阻抗低、失調(diào)小、溫漂小、線性好等優(yōu)點(diǎn)。
(3)磁場(chǎng)測(cè)量系統(tǒng)對(duì)不同的測(cè)量對(duì)象進(jìn)行測(cè)量時(shí),磁場(chǎng)傳感器的感應(yīng)強(qiáng)度都會(huì)不同。要實(shí)現(xiàn)不同測(cè)量對(duì)象自適應(yīng)量程的切換,必須設(shè)計(jì)一個(gè)放大倍數(shù)可調(diào)的模塊,而且放大倍數(shù)的范圍應(yīng)較廣。現(xiàn)采用BURR-BROWN公司的PGA202/203程控儀表放大器,該芯片無需外圍芯片,而且PGA202與PGA203經(jīng)級(jí)聯(lián)可組成從l“8000倍的16種程控增益。放大范圍可滿足系統(tǒng)的需要。
(4)因磁場(chǎng)檢測(cè)時(shí)會(huì)受到環(huán)境中其它外部磁場(chǎng)的干擾而輸出偏移電壓,所以在電路設(shè)計(jì)中設(shè)有自動(dòng)調(diào)零電路,在每次儀器使用前進(jìn)行自動(dòng)校準(zhǔn)。實(shí)現(xiàn)方法是在輸入端增加一個(gè)開關(guān),校準(zhǔn)時(shí)輸入直接接地,測(cè)量時(shí)輸入接傳感器。主控制器將接地時(shí)的輸出記錄在數(shù)據(jù)區(qū)中,并將此輸出作為零點(diǎn)而實(shí)現(xiàn)自動(dòng)調(diào)零。
(5)該儀器檢測(cè)的是交變磁場(chǎng),所以對(duì)磁場(chǎng)的頻率檢測(cè)是必需的。實(shí)現(xiàn)方法是將磁場(chǎng)檢測(cè)信號(hào)通過一個(gè)過零比較器變成方波,方波經(jīng)過二極管將正電壓部分送至單片機(jī)的輸入捕捉引腳進(jìn)行頻率檢測(cè)。
總之,前端信號(hào)處理模塊的設(shè)計(jì)關(guān)系到系統(tǒng)測(cè)量數(shù)據(jù)是否可靠和準(zhǔn)確。在設(shè)計(jì)的過程中,遇到信號(hào)在程控放大倍數(shù)設(shè)置為1000的時(shí)候會(huì)出現(xiàn)失真的情況,究其原因,是器件PGA202的性能問題導(dǎo)致。所以必須根據(jù)器件的性能參數(shù)選擇合適的放大倍數(shù)。
電壓的檢測(cè)也采用了在一秒的時(shí)間內(nèi)取樣N次去掉最大和最小值然后取平均值的方法減少測(cè)量誤差。測(cè)量電壓V為:
在系統(tǒng)設(shè)計(jì)時(shí),也充分考慮了抗干擾的要求。在硬件的設(shè)計(jì)中,采取了同軸電纜作為傳輸媒質(zhì)、模擬地與數(shù)字地分開、光電隔離、系統(tǒng)加屏蔽罩等措施。軟件設(shè)計(jì)中加入數(shù)字濾波、定時(shí)自檢等措施抗干擾。
4 嵌入式Liinux系統(tǒng)的設(shè)計(jì)
嵌入式Linux系統(tǒng)不是針對(duì)某個(gè)硬件平臺(tái)而開發(fā)的,所以進(jìn)行Linux移植時(shí)必須針對(duì)相應(yīng)的硬件對(duì)Linux內(nèi)核加以裁減、修改和補(bǔ)充。磁場(chǎng)測(cè)量系統(tǒng)采用的是基于ARM9內(nèi)核的硬件平臺(tái),下面介紹該硬件平臺(tái)下的Linux系統(tǒng)移植過程和方法。
4.1 建立交叉編譯環(huán)境
在進(jìn)行移植前,首先要建立開發(fā)平臺(tái)的ARM—Linux交叉編譯環(huán)境。linux下的交叉編譯環(huán)境主要包括針對(duì)目標(biāo)系統(tǒng)幾部分:編譯器gcc;二進(jìn)制工具binutils:標(biāo)準(zhǔn)c庫glibc;linux內(nèi)核頭文件。
4.2 啟動(dòng)代碼的移植
啟動(dòng)代碼主要完成硬件檢測(cè)和系統(tǒng)引導(dǎo),建立內(nèi)存空間映射圖,為正確調(diào)用操作系統(tǒng)內(nèi)核做好準(zhǔn)備。系統(tǒng)加電后,由引導(dǎo)代碼進(jìn)行基本的硬件初始化,然后把內(nèi)核經(jīng)映像裝入內(nèi)存運(yùn)行。啟動(dòng)代碼必須針對(duì)不同的硬件而設(shè)計(jì),本測(cè)量系統(tǒng)選擇了當(dāng)前流行的U-BOOT引導(dǎo)系統(tǒng)進(jìn)行了修改移植。
U-BOOT的啟動(dòng)具體可分為兩個(gè)階段,分別為硬件的初始化和內(nèi)核調(diào)用的準(zhǔn)備。U—BOOT為開源軟件,可找到很多接近目標(biāo)開發(fā)板的參考程序。本系統(tǒng)在參考韓國(guó)某公司開發(fā)的VIVI啟動(dòng)代碼的基礎(chǔ)上進(jìn)行修改和移植,減少了開發(fā)時(shí)間且代碼健壯性好。
4.3 Linux內(nèi)核的移植
Linux內(nèi)核的移植是整個(gè)嵌入式系統(tǒng)設(shè)計(jì)的關(guān)鍵部分。Linux內(nèi)核移植需要完成內(nèi)核與啟動(dòng)代碼的銜接部分的移植以及硬件相關(guān)部分的移植,如CPU、中斷控制器、定時(shí)器、內(nèi)存控制器等的移植。根據(jù)磁場(chǎng)測(cè)量系統(tǒng)的硬件結(jié)構(gòu),Linux內(nèi)核的移植分為以下四個(gè)步驟:
(1)首先是選擇內(nèi)核版本、建立交叉編譯環(huán)境。本系統(tǒng)選擇的Linux內(nèi)核版本為2.4.18,交叉編譯工具選擇arm-1inux-gcc 3.3.2;
(2)然后是配置和編譯內(nèi)核,針對(duì)硬件對(duì)源碼作必要的修改。①先修改根目錄下的Makefile文件,分別指定目標(biāo)平臺(tái)為ARM和指定交叉編譯器是arm-1inux-gcc 3.3.2;②接著對(duì)linux內(nèi)核進(jìn)行配置,此過程必須根據(jù)系統(tǒng)硬件和功能進(jìn)行裁剪。進(jìn)入linux內(nèi)核目錄輸入命令make menuconfig,其配置方式為通過圖形方式進(jìn)行配置,對(duì)驅(qū)動(dòng)程序進(jìn)行裁剪;③配置完成后保存退出,輸入Make命令,編譯成功后會(huì)在arch/arm/boot目錄中生成內(nèi)核的鏡像;
(3)接著制作根文件系統(tǒng)并掛載。要實(shí)現(xiàn)程序固化,還必須將程序和模塊添加到根文件系統(tǒng)中。在程序的設(shè)計(jì)中,本系統(tǒng)主要是使用軟件QT進(jìn)行觸摸屏界面的開發(fā)和相關(guān)功能的設(shè)計(jì);
(4)最后是下載、調(diào)試內(nèi)核并運(yùn)行。
5 結(jié)語
電磁測(cè)量已廣泛應(yīng)用于各個(gè)行業(yè),隨著技術(shù)的發(fā)展和進(jìn)步,對(duì)磁場(chǎng)測(cè)量系統(tǒng)的精度和擴(kuò)展功能要求越來越高。本文的創(chuàng)新之處是將當(dāng)前流行的嵌入式Linux系統(tǒng)和磁場(chǎng)測(cè)量技術(shù)結(jié)合起來,構(gòu)建了一個(gè)系統(tǒng)功能豐富、易用性好且擴(kuò)展功能強(qiáng)的智能化磁場(chǎng)測(cè)量系統(tǒng)。在實(shí)際應(yīng)用中可提高測(cè)量系統(tǒng)的實(shí)時(shí)性和多任務(wù)處理的能力,符合當(dāng)前測(cè)量發(fā)展的需要。
責(zé)任編輯:gt
-
處理器
+關(guān)注
關(guān)注
68文章
19395瀏覽量
230672 -
嵌入式
+關(guān)注
關(guān)注
5089文章
19169瀏覽量
306755 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6874瀏覽量
123569
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論