基于ARM9的嵌入式LINUX地震數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
【關(guān)鍵詞】AT91RM9200 嵌入式LINUX操作系統(tǒng) 數(shù)據(jù)采集 www.51kaifa.com
【Summary】This text has introduced the microprocessor AT91RM9200 and embedded LINUX operating system briefly, and discussed hardware designing and corresponding software design method of the data collecting system of the earthquake.
【key】AT91RM9200 embedded LINUX operating system data collecting
0 引言
隨著數(shù)字技術(shù)的飛速發(fā)展,數(shù)字化儀器已成為觀測(cè)技術(shù)領(lǐng)域的主流儀器,因而數(shù)據(jù)采集技術(shù)也成為觀測(cè)技術(shù)領(lǐng)域中一個(gè)十分重要的技術(shù)環(huán)節(jié)。眾所周知,地震預(yù)報(bào)是一個(gè)的世界性難題,作為地震預(yù)報(bào)的基礎(chǔ),地震及地震前兆觀測(cè)數(shù)據(jù)的地位可想而知,獲得真實(shí)、可靠的觀測(cè)數(shù)據(jù)取決于地震觀測(cè)儀(包括傳感器和采集器兩部分)。伴隨著計(jì)算機(jī)的迅速發(fā)展,以嵌入式為平臺(tái)的數(shù)據(jù)采集系統(tǒng)就應(yīng)運(yùn)而生了,它具有可靠性高,體積小,易擴(kuò)展、功能強(qiáng),開(kāi)發(fā)周期短、成本低。本論文是基于東方地球物理公司地震采集系統(tǒng)設(shè)計(jì)項(xiàng)目,采用ARM9的嵌入式系統(tǒng),因此對(duì)其研究具有非常重要的現(xiàn)實(shí)意義。
1 總體設(shè)計(jì)方案
作為一個(gè)通用的工業(yè)數(shù)據(jù)采集系統(tǒng)的硬件平臺(tái),其基本目的是獲取外界信號(hào),例如模擬量、開(kāi)關(guān)量,并且能夠?qū)?shù)字量信號(hào),轉(zhuǎn)化成模擬量信號(hào)輸出,以達(dá)到對(duì)外部設(shè)備的控制。在此基礎(chǔ)上,本文所要設(shè)計(jì)的系統(tǒng)有以下的要求:www.51kaifa.com
(1)多通道模擬量采集。因?yàn)楣た噩F(xiàn)場(chǎng)的模擬量數(shù)據(jù)非常多,而且各種模擬量所需要的放大倍數(shù)是不一樣的,這就需要可變?cè)鲆娴姆糯笃鳌?/P>
(2)支持以太網(wǎng)等多種通訊接口?,F(xiàn)代工業(yè)測(cè)控現(xiàn)場(chǎng)要求控制器能夠更加速高效的傳輸數(shù)據(jù)。
(3)數(shù)據(jù)采集具有移動(dòng)轉(zhuǎn)儲(chǔ)功能?;诂F(xiàn)場(chǎng)的實(shí)際工況,需要控制平臺(tái)在正常工作的情況下,能夠?qū)⒉糠謹(jǐn)?shù)據(jù)通過(guò)移動(dòng)存儲(chǔ)器提取出來(lái),以便在其它設(shè)備上進(jìn)行數(shù)據(jù)分析。
設(shè)計(jì)要求為整個(gè)系統(tǒng)的性能提出了最低要求,它為器件選型和系統(tǒng)內(nèi)部的設(shè)計(jì)提供了指導(dǎo)原則。根據(jù)要求總的系統(tǒng)框圖如下:
圖1 系統(tǒng)的總體結(jié)構(gòu)框圖
2 系統(tǒng)硬件設(shè)計(jì)
構(gòu)建地震采集嵌入式系統(tǒng)必須有硬件支持,嵌入式系統(tǒng)硬件沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),根據(jù)應(yīng)用要求對(duì)嵌入式系統(tǒng)進(jìn)行裁剪,系統(tǒng)設(shè)計(jì)的微處理器采用ATMEL公司生產(chǎn)的AT91RM9200微處理器,它是一個(gè)真正的片上系統(tǒng),片內(nèi)集成了USB、以太網(wǎng)、EBI、, MCI、SSC和SPI等多種通信接口,200MIPS的處理速度和先進(jìn)電源管理使這款芯片非常適合于系統(tǒng)控制領(lǐng)域。
設(shè)計(jì)基于AT91RM9200的硬件框圖如下所示:
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
本系統(tǒng)是一款功能強(qiáng)大的微功耗嵌入式高精度數(shù)據(jù)采集系統(tǒng),采用基于ARM9內(nèi)核的工業(yè)級(jí)處理器和嵌入式Linux操作系統(tǒng)。該系統(tǒng)具備豐富的外圍控制接口和通信接口,可通過(guò)IO輸出的形式控制外圍部件以及進(jìn)行多路模擬信號(hào)的切換,采集到的高精度數(shù)據(jù)可以通過(guò)RS232或者高速以太網(wǎng)等方式傳送到遠(yuǎn)程監(jiān)控端。由于系統(tǒng)采用了功能強(qiáng)大的處理器以及Linux操作系統(tǒng),除了可以完成高精度數(shù)據(jù)的采集外,還可以允許用戶完成數(shù)據(jù)處理以及其他的一些應(yīng)用層的功能。
3 系統(tǒng)軟件設(shè)計(jì)
該系統(tǒng)的實(shí)現(xiàn)是在嵌入式Linux操作系統(tǒng)下完成的。嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件是可裁剪的,適用于對(duì)功能、可靠性、成本、體積、功耗等有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。Linux擁有的許多特點(diǎn),比如廣泛的硬件支持,內(nèi)核高效穩(wěn)定,開(kāi)放源碼,軟件豐富,優(yōu)秀的開(kāi)發(fā)工具,完善的網(wǎng)絡(luò)通信和文件管理機(jī)制,免費(fèi)的等等,它的這些優(yōu)良特性使得其在嵌入式系統(tǒng)中應(yīng)用十分合適。嵌入式系統(tǒng)是在滿足實(shí)際應(yīng)用基礎(chǔ)上的最小簡(jiǎn)化型系統(tǒng),嵌入式數(shù)據(jù)采集系統(tǒng)上運(yùn)行的各種任務(wù)繁多并且部分實(shí)時(shí)性要求高,嵌入式微處理器需要管理的資源豐富,這些都決定了要在嵌入式平臺(tái)上引入操作系統(tǒng)。
根據(jù)系統(tǒng)要求完成的任務(wù),相應(yīng)的各模塊的設(shè)計(jì)也就有運(yùn)用而生了。
3.1 A/D通道模塊的軟件設(shè)計(jì)
本系統(tǒng)中采用的 ADS1256 芯片,具有 24 位的轉(zhuǎn)換數(shù)據(jù),有效轉(zhuǎn)換位數(shù)會(huì)根據(jù)轉(zhuǎn)換速率、輸入緩沖器及放大器的設(shè)置而有所改變,在輸入緩沖器和放大器的設(shè)置不變的情況下,轉(zhuǎn)換速率成了影響有效位數(shù)的要素。數(shù)據(jù)采集頻率在允許范圍內(nèi)可人為改動(dòng),但無(wú)論采集頻率為多少,ADC的轉(zhuǎn)換速率始終設(shè)置為最高 30Ksps,這是為了滿足在最高采樣頻率下工作時(shí),使有效數(shù)據(jù)位數(shù)始終處于最小值,但并不能照顧在低采樣頻率下工作的情況,因?yàn)檫@時(shí)數(shù)據(jù)量相對(duì)較低,對(duì)轉(zhuǎn)換速率沒(méi)有太高的要求,故可以當(dāng)改選用較低采樣頻率工作時(shí),相應(yīng)的將 ADC 工作參數(shù)進(jìn)行設(shè)置,將其改為在較低的低轉(zhuǎn)換速率下工作,當(dāng)然要求是滿足此時(shí)采樣頻率下的數(shù)據(jù)要求,這樣可以提高系統(tǒng)在某些采樣頻率下 ADC 工作的轉(zhuǎn)換精度。
使用ADC模塊時(shí),先要將測(cè)量通道引腳設(shè)置為AINx,然后通過(guò)ADCR寄存器設(shè)置ADC的工作模式,ADC轉(zhuǎn)換通道,轉(zhuǎn)換通道(CLKDIV時(shí)鐘分頻值),并啟動(dòng)ADC轉(zhuǎn)換??梢酝ㄟ^(guò)查詢或中斷的方式等待AD轉(zhuǎn)換完畢,轉(zhuǎn)換數(shù)據(jù)保存在ADDR存器中。ADC轉(zhuǎn)換時(shí)鐘分頻值計(jì)算: CLKDIV= -1(Fadclk為所要設(shè)置的ADC時(shí)鐘,其值不能大于4.5MHZ)。
進(jìn)行多通道AD轉(zhuǎn)換的時(shí)候,首先切換到通道1并進(jìn)行第一次轉(zhuǎn)換,等待轉(zhuǎn)換結(jié)束,再次啟動(dòng)轉(zhuǎn)換,等待轉(zhuǎn)換結(jié)果,讀取ADC結(jié)果。然后切換到通道2并進(jìn)行第一次轉(zhuǎn)換,操作過(guò)程與通道1相同,依次再切換到通道3, 4......,最終完成所有通道的轉(zhuǎn)換。
A/D轉(zhuǎn)換任務(wù)的流程如圖所示:
圖3 A/D任務(wù)轉(zhuǎn)換流程圖
3.2 USB通道模塊的軟件設(shè)計(jì)
USB的拓?fù)浣Y(jié)構(gòu)中居于核心地位的是主機(jī),任何一次USB的數(shù)據(jù)傳輸都必須由主機(jī)來(lái)發(fā)起和控制,所有的USB設(shè)備都只能和主機(jī)建立連接,而目前,大量的扮演主機(jī)角色的是個(gè)人電腦。因此我們目前所使用的USB移動(dòng)設(shè)備都是USB的設(shè)備如U盤(pán),在嵌入式平臺(tái)上使用U盤(pán),就必須使得嵌入式產(chǎn)品支持USB host接口。
USB總線包含4種基本數(shù)據(jù)傳輸類型:控制傳輸、中斷傳輸、批傳輸以及同步傳輸,本文中用到的是控制傳輸和批傳輸。由于一般U盤(pán)都屬于mass-storage存儲(chǔ)類,遵循Bulk-Only傳輸協(xié)議和UFI命令規(guī)范。在該種傳輸方式下,有3種類型的數(shù)據(jù)在板卡和U盤(pán)之間傳送:CBW, CSW和普通數(shù)據(jù)。CBW是從板卡發(fā)送到U盤(pán)的命令,這里為SCSI傳輸命令集(包括標(biāo)志信息,數(shù)據(jù)長(zhǎng)度,UFI命令),完成后U盤(pán)向板卡反映當(dāng)前命令執(zhí)行狀態(tài)的CSW,板卡根據(jù)CSW來(lái)決定是否發(fā)送數(shù)據(jù)。
圖4 U盤(pán)寫(xiě)數(shù)據(jù)流程圖
3.3 串口模塊的軟件設(shè)計(jì)
一般工控現(xiàn)場(chǎng)所使用的控制器或者智能儀表都需要具有與PC機(jī)通訊的功能,以充分發(fā)揮PC機(jī)和智能設(shè)備各自資源的優(yōu)勢(shì)??梢栽O(shè)置通訊的波特率,串行口為8位異步通信接口,一幀信息為10位:1位起始位(0), 8位數(shù)據(jù)位(低位先)和1位停止位(1) TXD1為發(fā)送端,RXD1為接收端,這些都是對(duì)USART寄存器的初始化。www.51kaifa.com
完成初始化后,下圖是程序流程圖:
圖5 串口流程圖
4 結(jié)束語(yǔ)
作為嵌入式系統(tǒng)在工業(yè)控制領(lǐng)域的應(yīng)用,本文主要討論了基于AT91系列處理器AT91RM9200、嵌入式Linux操作系統(tǒng)的地震數(shù)據(jù)采集系統(tǒng)的硬件軟件設(shè)計(jì),在對(duì)目前地震測(cè)量技術(shù)發(fā)展進(jìn)行研究的基礎(chǔ)上,對(duì)本數(shù)據(jù)采集的功能和設(shè)計(jì)方法提出了一整套系統(tǒng)的方案。在不斷更新總結(jié)的過(guò)程中完成了采集系統(tǒng)的研發(fā)和制作,并且進(jìn)行了系統(tǒng)的 ADC性能和數(shù)據(jù)存儲(chǔ)各方面的測(cè)試。
參考文獻(xiàn)
[1] 江俊輝,基于ARM的嵌入式系統(tǒng)硬件設(shè)計(jì),微計(jì)算機(jī)信息,2005年第7-2期
[2] 周振安 范良龍等. 數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)踐. 地震出版社,2005年7月www.51kaifa.com
[3] 馬建明. 數(shù)據(jù)采集與處理技術(shù). 西安交通大學(xué)出版社,2005年9月
[4] 楊恒. ARM嵌入式系統(tǒng)設(shè)計(jì)與實(shí)踐. 西安電子科技大學(xué)出版社,2005年10月
[5] 鄒思軼. 嵌入式 Linux 設(shè)計(jì)與應(yīng)用. 清華大學(xué)出版社,2002年4月www.51kaifa.com
[6] 何加銘. 嵌入式32位微處理器系統(tǒng)設(shè)計(jì)與應(yīng)用. 電子工業(yè)出版社,2005年12月