【正文】
具有密集型、隨機分布的特點,使其非常適合應用于惡劣的戰(zhàn)場環(huán)境中,包括偵察敵情、監(jiān)控兵力、裝備和物資,判斷生物化學攻擊等多方面用途 ;最后無線傳感網(wǎng)絡還被應用于其他的一些領(lǐng)域,比如一些危險的工業(yè)環(huán)境如 井礦、核電廠等,工作人員可以通過它實施安全檢測,也可以用在交通領(lǐng)域作為車輛監(jiān)控的有力工具。 關(guān)鍵詞 : 無線傳感網(wǎng)絡 ; USB 協(xié)議 ; Qtopia; 交叉開發(fā) ; Linux 設備驅(qū)動 ; Linux應用程序 ABSTRACT With the development of the work and wireless munication technology, people had started to constantly apply them to practical production and life, the Wireless Sensor Network is one of the good application examples. It mainly consists of the front desk system and background system. The front desk system is just like a embedded system, which contains a lot of sensors, control and wireless munication module, they are distributed in certain areas to acquire signal ,store data and forward information ,also they can municate with each other. The main task of the background system is the analysis and judgement of the information received from the front desk system, to achieve the purpose of realtime monitoring the area parameters, the Wireless Sensor Network generally used in monitoring the temperature, humidity, noise and various chemical position concentration parameters of biological habitats and industrial production process. This paper is mainly research the realization of the front embedded system in the Wireless Sensor Network and simply introduced the relevant contents of the wireless munication module, also specially discussed the implementation of signal acquisition and information process. It mainly included hardware and software ponents. Hardware has all kinds of sensors, such as the sound listener, USB cameras and TQ2440 development board, software is the key point which includes boot loader, Linux kernel, the file system and the whole cross development environment based on Qtopia, the most important is the development of application with Qtopia and Linux drivers, also introduced some contents of the USB protocol. Keyword: Wireless sensor work。 Cross Development。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。嵌入式操作系統(tǒng)主要用于系統(tǒng)硬件和軟件資源的分配、任務調(diào)度、控制以及保證它們協(xié)調(diào)工作,它位于硬件和應用軟件之間 。 USB 發(fā)展經(jīng)歷了四個時代,從 1996 年推出 USB (LowSpeed),支持最大的傳輸速率為 ,然后是 USB 支持 12Mbps(FullSpeed),接著是(HighSpeed) 支持 480Mbps , 最 后 就 是 現(xiàn) 在 的 支持5Gbps(SuperSpeed)(目前還沒有普及),但是這些數(shù)據(jù)都是理論上的,現(xiàn)實中根本就達不到這個速度。 主 機邏 輯 設 備 邏 輯 設 備 邏 輯 設 備 邏 輯 設 備 圖 23 USB 的邏輯拓撲結(jié)構(gòu) USB 的數(shù)據(jù)流 傳輸 USB是為主機軟件和它的 USB應用設備問的通信服務的,對 客戶與應用間不同的交互, USB設備對數(shù)據(jù)流有不同的要求?;?USB 總線的虛擬儀器系統(tǒng)主要由計算機模塊用于數(shù)據(jù)處理, USB 接口模塊用于計算機模塊和單片機模塊的通信,單片機模塊是為了控制被測設備,這是虛擬儀器技術(shù)應用的平臺。 無線 USB USB 技術(shù)使得許多的外圍設備很容易接入計算機,但是當這些設備都接入時,這些有線 的設備聚集在一起就變得很繁雜,為了解決這個問題,一些廠商就開始發(fā)布無線 USB 的產(chǎn)品,現(xiàn)在無線 USB 的設備也很常見,如鼠標、鍵盤燈,據(jù)統(tǒng)計,現(xiàn)在的 USB 設備中有 %是無線 USB 設備,相信這個數(shù)據(jù)會逐年增加。 一般 USB設備驅(qū)動的開發(fā)包括以下步驟: ? 實現(xiàn) usb_driver結(jié)構(gòu)和相應的 file_operations結(jié)構(gòu); ? 在模塊的加載函數(shù)中調(diào)用 usb_register函數(shù)向內(nèi)核注冊設備,在模塊的卸載函數(shù)中調(diào)用 usb_deregister函數(shù)注銷設備; ? 調(diào)用 usb_alloc_urb函數(shù)分配一個 urb,調(diào)用相關(guān)的填充函數(shù)(如中斷 urb用 usb_fill_int_urb)構(gòu)造一個 urb,記得實現(xiàn)相應的完成函數(shù),因為主機控制器返回 urb時會調(diào)用完成函數(shù),用 usb_submit_urb向內(nèi)核提交 urb; ? 在完成函數(shù)中完成后續(xù)操作,可以重新提交 urb,也可以釋放 urb。 Qobject::connect(amp。我們使用的攝像頭就是普通的 CCD 型,分辨率為 320X240,輸出的數(shù)據(jù)格式為 YUV4:2:2,利用 linux 內(nèi)核自帶的 USB 類進行驅(qū)動,通過 Video4linux 編程接 口訪問 USB 攝像頭。 UBOOT 支持的命令很多,比如設置環(huán)境變量: ? Setenv serverip 設置服務器 IP 地址為 ; ? Setenv bootargs ?console=ttySAC0 root=/dev/mtdblock2 rootfstype=yaffs2 init=/linuxrc?設置內(nèi)核默認的控制臺為第一個串口,根文件系統(tǒng)所在的設備是塊設備第二個分區(qū),文件系統(tǒng)類型為 yaffs2,初始化執(zhí)行程序為 /linuxrc。make install ? 配置 gdbserver:./configure –target = armtq2440linuxgnu ? 編譯 gdbserver: make CC=armlinuxgcc 之后將 gdbserver 下載到開發(fā)板上。 解決辦法: 第一,通過通用的 I/O 口,模擬 A/D 接口的邏輯,實現(xiàn)數(shù)據(jù)的采樣; 第二,采用時分復用技術(shù),將單通道采樣實現(xiàn)為多通道采樣; ( 3)波形顯示效率 因為程序設計是通過每讀一個數(shù)據(jù)就在界面上顯示,這樣大大的降低了顯示的效率,雖然采樣的速度很快,但是實際上數(shù)據(jù)的更新必須要等到顯示完成之后,因此采樣的數(shù)據(jù)被覆蓋,這導致了有時不能采樣到有效的數(shù)據(jù),靈敏度不是很好。 //存儲采集數(shù)據(jù)的臨時緩存 int fd = adcfd。pDrawCurve) { //建立三個界面的緩沖 bitBlt(amp。 //補劃坐標系由于動態(tài)顯示擦除的線條 ( Qt::blue )。 //取得最后兩個數(shù)據(jù)的坐標 Ynew = ().y() *(Yit) 1。 //賦值給 ADC 結(jié)構(gòu)的 data 變量 if(adcquit == TRUE) //設置 通道采集 結(jié)束標記 break。 //將傳給線程的數(shù)據(jù)轉(zhuǎn)化為 ADC 結(jié)構(gòu) static int data = 0。 USB 設備 驅(qū)動 分析 用戶進程 文件系統(tǒng)(操作系統(tǒng)) 高層軟件 底層軟件 硬件設備 I/O 請求 I/O 應答 杭州電子科技大學本科畢業(yè)設計 21 由于 USB 攝像頭驅(qū)動非常復雜,在這里 就不分析了,感興趣的讀者可以參閱linux 內(nèi)核源代碼。 嵌入式軟件開發(fā)中,調(diào)試時采用的是在宿主機和目標機之間進行的交叉調(diào)試,杭州電子科技大學本科畢業(yè)設計 19 調(diào)試器仍然運行在宿主機上,但被調(diào)試的代碼卻是在嵌入式平臺上運行,兩者通常通過串口或網(wǎng)絡通信。 杭州電子科技大學本科畢業(yè)設計 17 6 軟件系統(tǒng)設計 編譯開發(fā)板鏡像 一個嵌入式系統(tǒng)要運行起來,必須包括三個部分,首先就是系統(tǒng)的 bootloader及引導程序,然后就是嵌入式操作系統(tǒng)的內(nèi)核,最后就是 根文件系統(tǒng),三者缺一不可。 微音監(jiān)聽器主要是用來采集外界的聲音信息,其信號線接在開發(fā)板的一個 A/D通道上,從而將采集到的數(shù)據(jù)傳至主控模塊處理,其電路組成主要是微 音監(jiān)聽器本身的供電模塊以及同主控模塊的連接部分。插槽可以有參數(shù),但插槽的參數(shù)不能有默認值。它使用 USB核心提供的函數(shù) 與設備通信,所以它是與平臺無關(guān)的。 USB 事務中繼技術(shù) USB協(xié)議的實現(xiàn)是典型的主從結(jié)構(gòu)模型,一條總線上只有一個主設備或者主機,所有其他的設備都是從設備,只有主設備才能發(fā)起傳輸事務,其他的從設備只能對事務應答。 ? 中斷傳輸類型支持像游戲手柄、鼠標鍵盤等輸入設備,這些設備與主機間數(shù)據(jù)傳輸量小,無周期 性,但要求相應速度快。提供具體應用功能的設備是應用設備。 ? 軍事領(lǐng)域。其核心部件就是嵌入式處理器,包括基于 ASIC(專用集成電路)的嵌入式微處理器, DSP 系統(tǒng),SOC 系統(tǒng)以及基于現(xiàn)場可編程邏輯器件 FPGA。傳感器網(wǎng)絡特別適合部署在惡劣環(huán)境或人類不宜到達的區(qū)域,傳感器節(jié)點可能工作在露天環(huán)境中,遭受太陽的暴曬或風吹雨打,甚至遭到破壞,這些都要求傳感器節(jié)點非常堅固,不易損壞,適應各種惡劣條件。硬件部分主要有各種傳感器,如微音監(jiān)聽器、 USB 攝像頭, TQ2440 開發(fā)板,軟件部分 是研究的重點,包括引導程序 uboot, Linux 內(nèi)核和文件系統(tǒng)移植以及 整個基于 Qtopia 的交叉 開發(fā)環(huán)境的搭建,最重要的是基于 Qtopia 的應用程序和 Linux 驅(qū)動程序的開發(fā),簡單介紹了 USB 協(xié)議的一些內(nèi)容 。 Linux Device Driver。目前國內(nèi)一個普遍被認可的定義是:以應用為中心、以計算機技術(shù)為基礎、軟硬件可裁剪、適應于系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求 的專用計算機系統(tǒng)。目前嵌入式操作系統(tǒng)一般有 181。 USB 接口除了使用方便、傳輸速度快外,它還具有熱插拔的特性,這也是為什么現(xiàn)在越來越多的設備支持 USB 接口的原因。每種通信流都采用了某種總線訪問方杭州電子科技大學本科畢業(yè)設計 8 法來完成主機上的軟件與設備之間的通信。各個模塊運行相應的軟件,實現(xiàn)特定的功能。隨著集成電路,無線電以及無線局域網(wǎng)技術(shù)的發(fā)展,無線 USB 技術(shù)也會得到快速的應用,現(xiàn)在 WUSB[8]無線電在移動終端上的應用已經(jīng)成為可能。 這只是一般驅(qū)動都會實現(xiàn)的基本步驟,實際的驅(qū)動比這要復雜得多。dlg,SIGNAL(clicked()),amp。 主控模塊是 TQ2440 開發(fā)板,它提供了 USB 接口,因此只需將 USB 攝像頭接杭州電子科技大學本科畢業(yè)設計 16 在其接口上就完成了硬件方面的工作,其主要開發(fā)過程在軟件方面。 讀寫 NAND FLASH: ? Nand erase 0x30000 0x300000 把 Flash 從地址 0x30000 開 始的長度為0x300000 的區(qū)域擦除; ? Nand write 0x30008000 0x30000 0x300000 把內(nèi)存地址 0x30008000 開始的數(shù)據(jù)寫入 Flash 中從地址 0x30000 開始的區(qū)域,寫入的長度為 0x300000字節(jié); ? Nand read 0x30008000 0x30000 0x300000 把 Flash 中從地址 0x30000 開始的數(shù)據(jù)讀取到內(nèi)存中地址