摘要:為了解決傳統(tǒng)數(shù)據(jù)傳榆系統(tǒng)笨重,、繁瑣,、造價(jià)高、擴(kuò)展性差等缺點(diǎn),,設(shè)計(jì)了一種基于ARM的便攜式無(wú)線傳輸系統(tǒng),,可靈活地與數(shù)據(jù)采集設(shè)備進(jìn)行遠(yuǎn)距離數(shù)據(jù)傳輸。該系統(tǒng)可進(jìn)行遠(yuǎn)距離無(wú)線傳輸,并對(duì)數(shù)據(jù)進(jìn)行顯示,、存儲(chǔ),、處理等,還能通過(guò)以太網(wǎng)把數(shù)據(jù)傳輸?shù)饺魏文苓B接以太網(wǎng)的地方,。在室外空曠環(huán)境下,,通信距離可達(dá)800 m,接收到的數(shù)據(jù)準(zhǔn)確率達(dá)到100%,。
關(guān)鍵詞:ARM,;便攜式設(shè)備;無(wú)線傳輸
引言
隨著測(cè)試系統(tǒng)的不斷發(fā)展,,對(duì)數(shù)據(jù)傳輸系統(tǒng)有了更高的要求,,傳統(tǒng)的數(shù)據(jù)傳輸系統(tǒng)大多采用有線方式,數(shù)據(jù)的接收終端使用PC機(jī),。隨著無(wú)線通信技術(shù)的發(fā)展,,人們開(kāi)始用無(wú)線來(lái)取代有線。但目前的無(wú)線領(lǐng)域還存在一些問(wèn)題,,如網(wǎng)絡(luò)頻段受到限制,,通信極易受到外界干擾,通信中可能出現(xiàn)丟包或誤碼,,天線高度不能太低等,。
本設(shè)計(jì)實(shí)現(xiàn)了一種基于ARM的便攜式無(wú)線傳輸系統(tǒng),相比于筆記本,,該系統(tǒng)體積小,、重量輕,可便攜,,當(dāng)通信受到限制時(shí),,可調(diào)整通信距離,從而使無(wú)線傳輸系統(tǒng)性能達(dá)到最佳,。
1 硬件結(jié)構(gòu)
ARM系統(tǒng)主要由ARM處理器,、SRAM、SDRAM,、Flash,、LCD以及一些外圍接口組成,主要的外圍接口有USB接口,、串口,、GPIO口、SD卡接口,、SPI接口,、camera接口等。ARM系統(tǒng)的硬件結(jié)構(gòu)如圖1所示,它們是通過(guò)AHB系統(tǒng)總線和APB外圍總線來(lái)進(jìn)行通信,。
測(cè)試系統(tǒng)里已經(jīng)集成了無(wú)線模塊,,只要在ARM系統(tǒng)中加入無(wú)線模塊便可實(shí)現(xiàn)ARM終端與測(cè)試系統(tǒng)的無(wú)線數(shù)據(jù)傳輸。為了數(shù)據(jù)接收終端具有便攜,、靈活,、抗干擾強(qiáng)以及方便替換無(wú)線模塊等優(yōu)點(diǎn),無(wú)線模塊與ARM終端采用USB接口來(lái)對(duì)接,。系統(tǒng)基本結(jié)構(gòu)如圖2所示。
2 USB及Linux USB驅(qū)動(dòng)
2.1 USB的基本原理
USB是一種快速,、雙向的串行接口,,它采用總線拓?fù)浣Y(jié)構(gòu),其主控制器通過(guò)USB集線器可擴(kuò)展主機(jī)的sub端口,。USB具有4種傳輸方式:控制傳輸,、中斷傳輸、批量傳輸,、等時(shí)傳輸,。其數(shù)據(jù)的通信是雙向的,數(shù)據(jù)從主機(jī)傳向USB設(shè)備稱(chēng)下行通信,,數(shù)據(jù)從USB設(shè)備傳向主機(jī)稱(chēng)上行通信,。控制權(quán)是在host方,,不支持設(shè)備間的直接通信,。
USB設(shè)備是由接口和端點(diǎn)構(gòu)成的,端點(diǎn)是USB通信最基本的形式,,它只能往一個(gè)方向傳送數(shù)據(jù),。接口是用來(lái)綁定到設(shè)備上的,一個(gè)接口只處理一種USB邏輯連接,。一個(gè)USB設(shè)備可以有多個(gè)接口,,不同的接口可以代表不同的功能。USB驅(qū)動(dòng)程序是綁定到接口上的,。此外,,一個(gè)USB設(shè)備通常又有多個(gè)配置的,而且可以在配置之間切換以改變?cè)O(shè)備的狀態(tài),;但是一個(gè)時(shí)刻只能激活一個(gè)配置,,一個(gè)配置通常具有一個(gè)或者更多的接口,如圖3所示,。
2.2 基于Linux的USB驅(qū)動(dòng)
由于數(shù)據(jù)記錄的USB接口采用FTDI公司開(kāi)發(fā)的FT245 USB芯片,,能單芯片實(shí)現(xiàn)并行FIFO緩存區(qū)的雙向數(shù)據(jù)傳輸,且支持VCP(虛擬串口)功能。本文以實(shí)際應(yīng)用出發(fā),,針對(duì)FT245芯片介紹Linux環(huán)境下的USB驅(qū)動(dòng)程序,。
在Linux的內(nèi)核源碼中有一個(gè)USB驅(qū)動(dòng)的框架程序,文件名為usb-skeleton.c,,目錄在/drivers/usb下,,大多數(shù)的USB驅(qū)動(dòng)都是在這個(gè)框架的基礎(chǔ)上修改的。這里針對(duì)FT245芯片修改這個(gè)USB驅(qū)動(dòng)的框架程序,。
USB驅(qū)動(dòng)程序中有兩個(gè)宏:
這兩個(gè)宏的值是USB芯片制造商所提供的,,VID是芯片制造商ID,PID是芯片的識(shí)別碼,,不同廠商不同型號(hào)的USB芯片的VID和PID是不同的,,F(xiàn)T245芯片的VID=0x0403,PID=0x6001,。
file_operation是驅(qū)動(dòng)程序中一個(gè)很重要的類(lèi),,它定義了一組常見(jiàn)文件I/O函數(shù),而這些函數(shù)的使用類(lèi)似于普通文件的I/O操作,。程序如下:
這里定義的函數(shù)是USB驅(qū)動(dòng)程序的入口點(diǎn),,要打開(kāi)USB設(shè)備時(shí),使用系統(tǒng)函數(shù)Open(),,系統(tǒng)就會(huì)自動(dòng)調(diào)用驅(qū)動(dòng)中的ft245_open()函數(shù),。其他函數(shù)類(lèi)似,如write()對(duì)應(yīng)ft245_write(),,rcad()對(duì)應(yīng)ft245_rcad(),,close()對(duì)應(yīng)ft245_release()。
3 基于USB接口的無(wú)線模塊
短距離無(wú)線傳輸技術(shù)廣泛地應(yīng)用于各個(gè)領(lǐng)域,,并成為人們工作和生活中不可或缺的一部分,,由于它與有線相比有很多優(yōu)點(diǎn):方便使用、低功耗,、便于攜帶,、無(wú)需線纜的束縛等。表1是幾種傳輸技術(shù)的優(yōu)缺點(diǎn),。根據(jù)具體應(yīng)用環(huán)境選用特定的無(wú)線傳輸方式,。
由于低功率遠(yuǎn)距離無(wú)線通信技術(shù)具有傳輸距離遠(yuǎn)、速度快等優(yōu)點(diǎn),,符合遠(yuǎn)距離快速傳輸?shù)男枰?,所以采用低功率遠(yuǎn)距離無(wú)線模式。該無(wú)線模塊采用標(biāo)準(zhǔn)低功率遠(yuǎn)距離射頻芯片nRF24L01,,通信接口使用FTDI公司研發(fā)的USB2.0芯片F(xiàn)T245,,微控制器是采用精簡(jiǎn)指令集的PIC單片機(jī),。無(wú)線模塊系統(tǒng)框圖如圖4所示。
4 實(shí)驗(yàn)結(jié)果與分析
壓力測(cè)試記錄儀頭部接高精度壓力傳感器,,內(nèi)部集成無(wú)線模塊,,天線使用微帶天線。ARM開(kāi)發(fā)板使用Linux作為操作系統(tǒng),,使用QT作為開(kāi)發(fā)軟件,,制作數(shù)據(jù)讀取及顯示程序,完成數(shù)據(jù)的無(wú)線傳輸及顯示任務(wù),。該系統(tǒng)可取代筆記本完成野外的無(wú)線數(shù)據(jù)傳輸任務(wù),。USB接口的無(wú)線模塊與天線,在空曠環(huán)境下傳輸距離最遠(yuǎn)可達(dá)800 m,。在不同的溫度,、濕度、以及不同的空曠環(huán)境下經(jīng)過(guò)多次實(shí)驗(yàn),,使用無(wú)線傳輸系統(tǒng)讀取的數(shù)據(jù)與PC機(jī)下使用USB數(shù)據(jù)線讀取的數(shù)據(jù)完全相同,所以實(shí)驗(yàn)表明該系統(tǒng)設(shè)計(jì)是正確,、可行的,。
結(jié)語(yǔ)
由于嵌入式設(shè)備在測(cè)試系統(tǒng)中有著種種優(yōu)點(diǎn),越來(lái)越受到人們的青睞,。此外,,隨著短距離無(wú)線傳輸?shù)陌l(fā)展,給便攜式無(wú)線傳輸設(shè)備帶來(lái)了新的生機(jī),。本文介紹的基于ARM的無(wú)線傳輸系統(tǒng)根據(jù)實(shí)際應(yīng)用出發(fā),,克服了傳統(tǒng)的數(shù)據(jù)傳輸系統(tǒng)笨重、費(fèi)時(shí),、費(fèi)力的缺點(diǎn),,且接收到的數(shù)據(jù)可進(jìn)行波形顯示、數(shù)據(jù)存儲(chǔ),、數(shù)據(jù)處理等,。此外,由于ARM系統(tǒng)強(qiáng)大的網(wǎng)絡(luò)功能,,可通過(guò)以太網(wǎng)把數(shù)據(jù)傳輸?shù)饺魏斡幸蕴W(wǎng)的地方,,具有一定的創(chuàng)新性。