linux環(huán)境下的車輛多傳感器數(shù)據(jù)采集系統(tǒng)設計_第1頁
linux環(huán)境下的車輛多傳感器數(shù)據(jù)采集系統(tǒng)設計_第2頁
linux環(huán)境下的車輛多傳感器數(shù)據(jù)采集系統(tǒng)設計_第3頁
linux環(huán)境下的車輛多傳感器數(shù)據(jù)采集系統(tǒng)設計_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、linux環(huán)境下的車輛多傳感器數(shù)據(jù)采集系統(tǒng)設計基金項目:高等學校博士學科點專項科研基金(新教師)(編號:200802861061);江蘇省自然科學基金(編號:BK2010239) 柯小路,李旭作者簡介:柯小路(1990-),男,本科,主要研究方向:導航制導通信聯(lián)系人:李旭(1975-),男,副教授,主要研究方向為汽車智能測控技術、智能車輛. E-mail: lixu.mail1.51.5高等學校博士學科點專項科研基金(新教師)(編號:200802861061);江蘇省自然科學基金(編號:BK2010239)School of Instrument Science and Engineering

2、,Southeast University,Nanjing 210096;School of Instrument Science and Engineering,Southeast University,Nanjing 210096東南大學儀器科學與工程學院,南京 210096;東南大學儀器科學與工程學院,南京 210096210096;21009615952050116;1360146319915952050116蘇省南京市玄武區(qū)四牌樓2號東南大學中心樓328;江蘇省南京市玄武區(qū)四牌樓2號東南大學中心樓321xiyulanghua;lixu.mail柯小路(199

3、0-),男,本科,主要研究方向:導航制導;李旭(1975-),男,副教授,主要研究方向為汽車智能測控技術、智能車輛柯小路;李旭KE Xiaolu;LI Xu李旭1.51.51.51.51.51.51.51.51*|*期刊*|*李旭,張為公. 智能車輛導航技術的研究進展J. 機器人技術與應用,2007(4):24-27.2*|*期刊*|* 張飛舟,范越祖,孫先仿.車輛組合定位技術J.系統(tǒng)工程與電子技術,2000,22(6):32-35.3*|*期刊*|*徐田來,崔平遠,崔祜濤. 車載多傳感器組合導航系統(tǒng)設計與實現(xiàn)J. 2008,30(4):686-6914*|*專著*|*W. Richard S

4、tevens, Stephen A. Rago. UNIX環(huán)境高級編程M. 北京:人民郵電出版社,2006.5*|*期刊*|*劉兵,陳琛. Linux下的多線程編程J. 黑龍江科技信息,2008(1):56-57.|1|柯小路|KE Xiaolu|東南大學儀器科學與工程學院,南京 210096|School of Instrument Science and Engineering,Southeast University,Nanjing 210096|柯小路(1990-),男,本科,主要研究方向:導航制導|江蘇省南京市玄武區(qū)四牌樓2號東南大學中心樓328|210096|xiyulanghua

5、15952050116*|2|李旭|LI Xu|東南大學儀器科學與工程學院,南京 210096|School of Instrument Science and Engineering,Southeast University,Nanjing 210096|李旭(1975-),男,副教授,主要研究方向為汽車智能測控技術、智能車輛|江蘇省南京市玄武區(qū)四牌樓2號東南大學中心樓321|210096|lixu.mail13601463199linux環(huán)境下的車輛多傳感器數(shù)據(jù)采集系統(tǒng)設計|Design of vehicular multi-sensor

6、 data acquisition system under linux development environment|高等學校博士學科點專項科研基金(新教師)(編號:200802861061);江蘇省自然科學基金(編號:BK2010239)(東南大學儀器科學與工程學院,南京 210096)摘要:為給組合導航的數(shù)據(jù)融合提供基本保障,在linux環(huán)境下使用C語言和多線程技術構建了一個多傳感器數(shù)據(jù)采集系統(tǒng)。詳細介紹了系統(tǒng)的軟硬件構成,對各線程的具體實現(xiàn)做了簡要說明。最后給出了部分試驗結果。試驗測試表明,系統(tǒng)可以穩(wěn)定及時地采集各路傳感器的數(shù)據(jù)信息,能夠滿足組合導航的一般要求。關鍵詞:組合導航;數(shù)據(jù)

7、采集;多線程中圖分類號:U467.4Design of vehicular multi-sensor data acquisition system under linux development environmentKE Xiaolu, LI Xu(School of Instrument Science and Engineering,Southeast University,Nanjing 210096)Abstract: In order to ensure the correctness of the data fusion of integrated navigation, a

8、vehicular multi-sensor data acquisition system based on C language and multi-thread technology is designed under linux development environment. This paper introduces the hardware and software structure in detail, and gives a brief description of the threads realization. Finally,some experimental res

9、ults were shown. The experimental tests show that the system can acquire the information of each sensor steadily and timely, and that it can satisfy the requirement of integrated navigation.Key words: integrated navigation; data acquisition; multi-thread0 引言 隨著交通與汽車工業(yè)的快速發(fā)展,全世界高速公路里程數(shù)及汽車保有量迅速增長,如何大幅提

10、高交通運輸效率成為一個亟待解決的問題,日益受人們重視。而車輛的定位與導航則是解決這一問題的基礎和核心。1 經(jīng)過這些年的發(fā)展,目前已存在多種定位導航方式,但是每種方式都有自己的優(yōu)點和不可避免的缺點。如DR 、INS短期精度高但長期有誤差積累;GPS全天時,精度較高,但會因信號遮擋而失效。2-3 因此,目前最常用的方式是將多種導航方式組合起來,發(fā)揮各自的優(yōu)點,互補不足,即組合導航方式。多種導航方式的組合,勢必涉及多種傳感器數(shù)據(jù)融合的問題。而進行數(shù)據(jù)融合的前提,是能夠準確完整的采集各傳感器的數(shù)據(jù)。因此,在linux環(huán)境下設計了這個多傳感器數(shù)據(jù)采集系統(tǒng),實現(xiàn)對車輛各路導航信息的同步采集。1 系統(tǒng)硬件設

11、備本車載數(shù)據(jù)信息采集系統(tǒng)采用了基于PC/104的嵌入式系統(tǒng),它主要由PC/104主板、數(shù)據(jù)采集卡、車載多傳感器模塊、車載電源等組成。數(shù)據(jù)采集卡SysExpanModule TM /ADT680-AT是基于PC/104 的擴展板,具有12位分辨率、最高100KHz A/D采樣率的16單端/8差分輸入,4通道模擬量輸出和24通道軟件可編程的TTL/CMOS I/O。車載傳感器包括電子羅盤、陀螺儀、GPS等。系統(tǒng)中,電子羅盤選用美國KVH公司的KVH C100型。它具有體積小、性能穩(wěn)定可靠、尋北精度高、啟動速度快的特點,內(nèi)置自動校準軟件,可對磁場變化而引起的誤差進行修正,它提供的航向精度能達到0.5

12、度。陀螺儀采用的是星網(wǎng)迅達公司的XW VG 7100,該產(chǎn)品可測量三個軸的角速度和三個軸的加速度參數(shù),可用于動態(tài)運動中的定位、導航和測量。它采用嵌入式加固設計,具有抗沖擊、抗震動、防塵、耐溫等特點。GPS接收機采用北斗星通公司的OEMV-1,它體積緊湊、功耗低,具有很強的接收能力,可在比較苛刻的條件下為用戶提供高可靠性的三維坐標、三維速度、時間、衛(wèi)星分布等信息,最高可設置20Hz頻率輸出。PC/104主機高速同步采集各傳感器傳送的各項導航數(shù)據(jù),包括航向角,俯仰角,橫滾角,三位位置,三位速度等,并將采集到的信息存儲到PC/104的主機硬盤中。除轉(zhuǎn)角測量儀(輸出為電壓信號,與數(shù)據(jù)采集卡相連)外,各

13、個傳感器均通過串口與主機進行通信。2 系統(tǒng)軟件設計2.1 系統(tǒng)軟件框架在Linux(Fedora,內(nèi)核2.6.21)環(huán)境下,所有的設備都用文件來表示,稱之為特殊文件。所以如何處理來自多個設備的數(shù)據(jù),就變成如何監(jiān)視多個文件描述符的問題。這通常有以下幾種方法:多進程、select函數(shù),poll函數(shù),帶有輪詢的無阻塞型I/O ,異步I/O 和多線程。4多進程占用資源相對較多;當設備較多時,使用select、poll函數(shù),編程會比較復雜;帶有輪詢的無阻塞型I/O 及異步I/O的使用對編程要求也比較高;多線程與多進程類似,相對而言比較節(jié)約資源,通信更加方便。此外,多線程編程可以改善程序的結構,將一個復雜

14、的程序分成幾個線程來實現(xiàn),既方便理解,也便于修改;使得多CPU系統(tǒng)更加有效,每個CPU執(zhí)行一個線程,實現(xiàn)真正的實時同步。4 經(jīng)過比較,本系統(tǒng)設計中采用多線程方案。由于系統(tǒng)中共要采集三路串口數(shù)據(jù)信息和一路模擬量數(shù)據(jù)信息,所以需要四個子線程來分別進行處理。開發(fā)過程利用linux文本模式,軟件使用vi編輯器和C語言編寫,GCC編譯器編譯,GDB工具調(diào)試。系統(tǒng)的軟件結構框圖如圖1所示: 圖1 系統(tǒng)軟件框架 Fig. 1 Software architecture of the system2.2 程序設計 程序共包含一個主線程和四個子線程,其中主線程只在開始時執(zhí)行一次,負責打開各設備,并對設備進行初始

15、化設置,完成調(diào)度策略的和優(yōu)先級的設置。完成后創(chuàng)建并啟動各采集子線程,之后轉(zhuǎn)入輪流執(zhí)行各子線程,直到程序終止。2.2.1 主線程具體設計1 使用open函數(shù)打開設備(串口、adt),并設置為可讀寫、非阻塞模式;2 使用set_speed函數(shù)(自定義)設置串口波特率,set_Parity函數(shù)(自定義)設置串口的部分通信參數(shù),如校驗方式、數(shù)據(jù)位、停止位、流量控制等;還需屏蔽一些控制屬性,如c_lflag中的ICANON、ECHO、ECHOE、ISIG,c_iflag 中的ICRNL、IGNCR、INLCR、IXON。如果不屏蔽這些屬性,在接收數(shù)據(jù)時可能出現(xiàn)意料不到的錯誤。3 線程屬性初始化,設置調(diào)度

16、策略和各線程優(yōu)先級。由于數(shù)據(jù)采集的過程都比較短,而對實時性要求比較高,所以適合采用FIFO調(diào)度策略??紤]到GPS接收機精度較高,信息比較完整,數(shù)據(jù)比較精確,所以給予最高的優(yōu)先級;IMU的數(shù)據(jù)信息也比較全面,所以給予次高優(yōu)先級;電子羅盤信息與IMU有重合,故給予最低優(yōu)先級;轉(zhuǎn)角測量儀給予第三優(yōu)先級。為保證數(shù)據(jù)采集的及時性,數(shù)據(jù)處理線程應在空閑時運行,故可使用分時調(diào)度策略。4 使用pthread_create函數(shù)創(chuàng)建各采集子線程,并開始執(zhí)行。5 用pthread_join等待各線程結束,并回收線程資源。6 用pthread_attr_destroy函數(shù)銷毀線程屬性對象。2.2.2 子線程具體設計1

17、 三個串口采集數(shù)據(jù)線程實現(xiàn)方式類似,即不斷循環(huán)利用read函數(shù)從接收緩沖區(qū)內(nèi)讀取數(shù)據(jù),然后等待到一個數(shù)據(jù)包的長度,再進行相應的處理。處理的第一步是判斷校驗和,如果正確則進行下一步處理;如果不正確,則放棄本數(shù)據(jù)包,但是為了保證后期融合的數(shù)據(jù)完整,用前一次的數(shù)據(jù)作為本次測量。其流程圖如圖2-(1)所示。由于電子羅盤和GPS接收機輸出的是ASC碼,而陀螺儀輸出的是二進制數(shù)據(jù),所以在數(shù)據(jù)提取方面所采用的方法有所不同。對于ASC碼,有多種方式提取其中的數(shù)據(jù)信息,程序中是使用sscanf函數(shù),根據(jù)字符串的特點,提取出中間的數(shù)據(jù)信息。例如對于羅盤,數(shù)據(jù)在兩個逗號之間,可用sscanf(buff,“%*,%,

18、”,buff)將方位角數(shù)據(jù)放到buff中。對于陀螺儀,輸出是二進制數(shù)據(jù),所以每個數(shù)據(jù)包的字節(jié)數(shù)固定,因此可以利用一套固定公式進行計算,再用fprintf函數(shù)將結果格式化輸入文件中保存。2 模擬量采集線程的實現(xiàn)方式與串口不同。它首先要設置ADC的工作模式,電壓范圍,使用的輸入端口等等。軟件中設置的是定時觸發(fā)模式,每0.1s啟動一次轉(zhuǎn)換,中斷方式讀取數(shù)據(jù),不斷循環(huán)執(zhí)行。該線程的流程圖如圖2-(2)所示。 (1) 串口線程流程圖 (2) A/D線程流程圖圖2 采集線程程序流程圖Fig. 2 Program flow chart of acquisition threads3 系統(tǒng)試驗測試 在系統(tǒng)的試驗測試中,電子羅盤的輸出頻率是10Hz,陀螺儀的頻率是40Hz,GPS接收機頻率是10Hz,A/D采樣頻率是10Hz。為檢驗系統(tǒng)的性能,進行了多次的試車試驗。圖4所示為某次實驗的部分數(shù)據(jù)繪制的曲線(數(shù)據(jù)采集完成后在windows下用matlab繪制)。圖中的藍色曲線是電子羅盤直接測量的方位角,紅色曲線是由對陀螺儀測得的角速度積分所得到的方位角,從圖中可以看出,兩者基本吻合。 實驗結果表明,系統(tǒng)能夠準確完整的采集各路傳感器的信息,具有較高的精確性和實時性。由于所使用的傳感器之間具有比較強的信息互

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論