国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ZigBee無線船舶氣象終端的設(shè)計與實現(xiàn)

2012-04-29 16:10:56劉立功韓霜劉健
電腦知識與技術(shù) 2012年23期

劉立功 韓霜 劉健

摘要:無線船舶氣象儀終端是通過氣象傳感器來獲取氣象要素的設(shè)備。該文采用高性能CPU搭建硬件平臺,對基于嵌入式Linux操作系統(tǒng)開發(fā)的船舶氣象儀接收終端作了概述,利用組建的ZigBee無線通訊技術(shù)將氣象要素輸入數(shù)據(jù)接收終端處理,從而實現(xiàn)了對氣象數(shù)據(jù)的直觀觀測。整個設(shè)計流程主要實現(xiàn)了ZigBee無線網(wǎng)絡組建、嵌入式Linux啟動項bootloader的編寫、Linux的移植以及圖形系統(tǒng)的加載。整個系統(tǒng)完成了對數(shù)據(jù)的輸入采集、進程處理以及圖形化顯示,實現(xiàn)了接收終端的功能。

關(guān)鍵詞:ZigBee;接收終端;Linux;啟動項;圖形系統(tǒng)

中圖分類號:TP355+.3文獻標識碼:A文章編號:1009-3044(2012)23-5704-02

The Data Receiving Terminal of Ship Meteorological Design and Implement

LIU Li-gong, HAN Shuang, LIU Jian

(Navy Maritime Security Repair Factory, Qingdao 266071, China)

Abstract: Ship Meteorological instrument sensors and data processing terminal equipment access to the data of the Meteorological Ele? ments, high-performance CPU to build the hardware platform, ship meteorological instrument based on embedded Linux operation sys? tem developed by the receiving terminal are summarized in meteorological elements of the input data by the receiving terminal processing in order to achieve a visual observation of the meteorological data. Throughout the design process of embedded Linux startup items written in the bootloader, Linux migration and graphics system load. The entire system to completing the collection of data input, process handing and graphical display of the receiving terminal.

Key words: meteorological; receiving terminal; Linux; startup items; graphic system

由于艦船在航行中依賴于氣象數(shù)據(jù)的采集與分析,因此船舶氣象儀起著采集、分析、計算氣象要素的作用。當前船舶氣象與電子信息技術(shù)結(jié)合越來越緊密,尤其是對設(shè)備的智能化要求也在不斷提高。在智能系統(tǒng)的應用中,操作系統(tǒng)是必不可少的一環(huán)。Linux操作系統(tǒng)以穩(wěn)定、安全、開放、核心可以自主掌握、內(nèi)核能夠?qū)崿F(xiàn)多任務處理等他點,能夠?qū)崿F(xiàn)對設(shè)備數(shù)據(jù)的多進程與實時性操作,因此將其作為了系統(tǒng)軟件平臺。該文給出了整個系統(tǒng)包括ZigBee組建、底層硬件組成、內(nèi)核與文件系統(tǒng)的移植、設(shè)備驅(qū)動的編寫以及圖形系統(tǒng)的實現(xiàn),并且在應用層代碼中利用RS485串口驅(qū)動接口接收氣象數(shù)據(jù)的方法,實現(xiàn)了對氣象數(shù)據(jù)的收集與處理[1],在實際應用中具有可靠性。

1硬件平臺構(gòu)成

該系統(tǒng)使用S3C2440處理器為核心搭建嵌入式硬件平臺,加載FLASH存儲器、SDRAM存儲器、顯示控制模塊、接口驅(qū)動以及相應控制部件[2],數(shù)據(jù)的獲取由電源供電電路提供系統(tǒng)需要的+5v直流電,整體結(jié)構(gòu)如圖1所示。

ZigBee無線網(wǎng)絡基于IEEE802.15.4國際標準、上層協(xié)議為ZigBee協(xié)議棧,具有低功耗、短時延、高可靠、抗干擾以及冗余性能等優(yōu)點。本系統(tǒng)采用了CEL公司MeshConnect ZICM2410模塊,它由一個含有基帶modem的射頻收發(fā)器(cc2430),MAC和一個內(nèi)嵌的8051微處理器,支持SPI,串口等外設(shè),支持的傳輸距離為1000米。

2軟件平臺設(shè)計

2.1 bootloader的編寫與加載

Bootloader是嵌入式操作系統(tǒng)設(shè)備在啟動之前首先運行的固定代碼。通過這段代碼系統(tǒng)可以初始化設(shè)備、建立內(nèi)存空間的映射,為最終在內(nèi)存中調(diào)用和加載操作系統(tǒng)內(nèi)核建立正確的環(huán)境。程序設(shè)計流程如圖2。

CPU上電會自動運行處在FLASH存儲器上零地址處所拷貝的bootloader異常向量表并執(zhí)行指令,之后對硬件進行設(shè)置并對RAM內(nèi)存空間進行映射規(guī)劃,設(shè)置堆棧,然后引導代碼將操作系統(tǒng)拷貝到RAM空間運行,最后將對CPU的控制權(quán)交由Linux操作系統(tǒng)執(zhí)行。

2.2 Linux操作系統(tǒng)的移植

Linux操作系統(tǒng)是整個軟件結(jié)構(gòu)的核心,由于具有多任務實時性強的有點在氣象探測領(lǐng)域中應用中具有相當大的優(yōu)勢[3]。氣象終端設(shè)備平臺基于Linux2.6.27.8內(nèi)核版本,此核心支持任務的實時搶占,因此能夠提高系統(tǒng)實時接收以及動態(tài)處理氣象數(shù)據(jù)的性能。

Linux操作系統(tǒng)移植主要為配置、修改和裁剪Linux2.6.27.8內(nèi)核版本,首先修改編譯器以便搭建交叉編譯環(huán)境,設(shè)置編譯路徑;然后修改FLASH分區(qū)、校驗信息以及啟動選項,使其與bootloader的配置相符合;修改內(nèi)核版本的時鐘配置;對需要使用的各種設(shè)備、總線、文件系統(tǒng)等進行圖形化下的配置;使用命令make進行內(nèi)核的編譯,成功之后會生成zImage可執(zhí)行文件,用于加載至內(nèi)存供CPU運行[4]。

2.3設(shè)備驅(qū)動的實現(xiàn)

設(shè)備驅(qū)動程序是操作系統(tǒng)與硬件之間的門戶,對用戶提供了統(tǒng)一的接口。一般來說是把設(shè)備映射為一個特殊的設(shè)備文件,用戶程序經(jīng)過操作系統(tǒng)可以像對其它文件一樣對此設(shè)備文件進行操作。用戶應用程序是通過設(shè)備文件同硬件打交道,對設(shè)備文件的操作方式就是利用操作系統(tǒng)內(nèi)核提供的系統(tǒng)調(diào)用,如open,read,write,close,select,ioctl[5],分別代表對設(shè)備的打開、讀、寫、關(guān)閉、檢查設(shè)備以及對設(shè)備執(zhí)行讀寫以外的操作,并且通過數(shù)據(jù)結(jié)構(gòu)file_operations和驅(qū)動程序相關(guān)聯(lián)。

在氣象探測設(shè)備中針對RS485設(shè)備接口驅(qū)動中所實現(xiàn)的file_operations,其中的open、read等接口都對應文件的打開、讀取等函數(shù)。在應用中通過對設(shè)備號來取得對應的設(shè)備文件以及相關(guān)操作。通過命令mknod建立文件與設(shè)備的索引節(jié)點,將定義的設(shè)備號和設(shè)備名稱加入內(nèi)核,并調(diào)用命令insmod加載驅(qū)動,則用戶在操作系統(tǒng)中就能通過設(shè)備名稱對其進行操作。需要從設(shè)備中接收讀取氣象數(shù)據(jù)時,可以調(diào)用函數(shù)open(“/dev/uart485”, O_RDWR)在操作系統(tǒng)中通過調(diào)用uart_open函數(shù)打開設(shè)備;再通過系統(tǒng)調(diào)用uart_read函數(shù)來進行讀取。此函數(shù)主要是循環(huán)讀取緩沖區(qū)內(nèi)數(shù)據(jù)并通過調(diào)用接口copy_to_user將數(shù)據(jù)發(fā)送至應用層,整個數(shù)據(jù)的接收通過中斷觸發(fā),驅(qū)動的初始化由static int __init uart_init(void)函數(shù)完成。

3圖形系統(tǒng)設(shè)計

圖形系統(tǒng)提供了友好的操作界面和控制方式,并給操作系統(tǒng)完整的工具集和相應的應用程序,可以實現(xiàn)對設(shè)備的直觀控制。該文所設(shè)計的氣象數(shù)據(jù)接收終端采用了nicrowindows圖形系統(tǒng)與在其之上的TinyWidget控件集。兩者基于X窗口系統(tǒng),能夠保證在對設(shè)備基本操作的基礎(chǔ)之上,占用較少資源,可以提供給用戶良好的界面和方便的操作。

系統(tǒng)采用了服務器與客服端的處理模式。其中底層提供對顯示界面、鼠標、鍵盤等外接控制設(shè)備的驅(qū)動,通過操作系統(tǒng)可以將數(shù)據(jù)信息傳遞至應用程序;中間層為一個與設(shè)備無關(guān)的圖形引擎,其程序常駐內(nèi)存的服務器端,基于底層驅(qū)動之上提供建立線程、圖形繪制、字體與文本的管理等功能;窗口API與控件層利用圖形引擎的功能來進行窗口的管理、設(shè)計、發(fā)送繪制請求以及對事件的處理,事件處理包括風向風速顯示、溫濕度顯示、參數(shù)裝訂功能。程序首先使用GrOpen()初始化圖形系統(tǒng)Nano-X庫,并且和服務器端的圖形引擎建立連接,同時調(diào)用設(shè)備驅(qū)動初始化顯示儀、鍵盤、鼠標等I/O設(shè)備;然后調(diào)用GrNewGC創(chuàng)建圖形句柄GC,分配一個圖形上下文的數(shù)據(jù)結(jié)構(gòu)并建立圖形窗口并設(shè)置窗口的各項屬性;在Nano-X中必須告訴窗口哪些事件需要處理,例如是對風向風速的計算或者是對設(shè)備的檢測等任務,都使用GrSelectEvevts函數(shù)進行事件的注冊與選擇;最后使用GrMapWindow函數(shù)顯示窗口并調(diào)用GrMainLoop函數(shù)讓主程序進入消息處理循環(huán)。在事件發(fā)生之后,系統(tǒng)每接收到一個消息就會喚醒對應的注冊事件處理函數(shù)來對消息進行處理,處理函數(shù)為一個switch-case結(jié)構(gòu)的選擇語句,每個事件對應case語句不同的響應與處理。在應用中引入了操作系統(tǒng)的多線程處理。

4結(jié)論

該文采用S3C2440處理器的硬件平臺,搭建基于嵌入式Linux操作系統(tǒng)與microwindows圖形系統(tǒng)的軟件平臺,通過對系統(tǒng)的引導、操作系統(tǒng)與文件系統(tǒng)的移植、設(shè)備驅(qū)動的加載以及圖形界面的設(shè)計,實現(xiàn)了船舶氣象數(shù)據(jù)接收終端。本系統(tǒng)能夠方便地應用于數(shù)據(jù)接受處理終端領(lǐng)域,具有穩(wěn)定性好、實時性強、核心技術(shù)自己掌握的優(yōu)點。隨著應用的進一步增加,系統(tǒng)會將得到進一步的完善。

參考文獻:

[1]周武斌.ZigBee無線組網(wǎng)技術(shù)的研究[D].長沙:中南大學,2009.

[2]王勇,柳林濤.武漢地區(qū)GPS氣象網(wǎng)應用研究[J].測繪學報,2007,36(2).

[3]于慧彬,李小峰.基于嵌入式系統(tǒng)和MiniGUI的船舶氣象儀圖形界面設(shè)計[J].計算機測量與控制,2009,17(1).

[4]方涵先,黃思訓.用于大氣探測系統(tǒng)的Linux平臺研究[J].解放軍理工大學學報:自然科學版,2004,5(2).

[5]杜文軍,侯立剛,王艷梅.基于ARM的Linux移植分析與實現(xiàn)[J].遼寧石油化工大學學報,2009,29(2).

[6]毛德操,胡希明.Linux內(nèi)核源代碼情景分析[M].杭州:浙江大學出版社,2001.

山丹县| 桂林市| 巴青县| 徐汇区| 宁化县| 闽清县| 察雅县| 瑞安市| 申扎县| 太仓市| 武陟县| 景洪市| 龙泉市| 利川市| 白玉县| 杂多县| 余姚市| 确山县| 南安市| 新昌县| 巴林左旗| 监利县| 宜宾市| 汕尾市| 江都市| 双柏县| 金溪县| 梨树县| 库车县| 大庆市| 新源县| 新建县| 江安县| 黄陵县| 灵丘县| 汝州市| 盐边县| 吉首市| 招远市| 乡宁县| 馆陶县|