a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式ARM-Linux無線ZigBee協調器驅動設計

基于嵌入式ARM-Linux無線ZigBee協調器驅動設計

作者: 時間:2011-12-14 來源:網絡 收藏

 農田中大范圍的環境信息監測已成為網絡應用范圍重點之一。針對農田布線不便的特點,ZigBee無線節點網絡成為農田信息采集系統的首選,可對其所分布區域內的各種環境和檢測對象的信息進行實時的監控[1]。然而,控制下層整個網絡狀態的核心是上位機ARM處理器,而且上位機與下位機通信大多以串口模式來實現[2-3]。但串口通信模式存在串口傳輸速率低(波特率雙方一致)、傳送距離短[4]、數據冗余差(數據校驗)以及設計串口協議繁瑣(幀格式)等不足。因此本文研究了ZigBee在ARM9內核中的協調器字符驅動,利用I/O傳輸數據,控制具有的設備在農田任何位置即可組網,以減少協調器的布局,實現方便快捷的動態數據監測。
1 田間監測系統的要求
 因監測節點需要零散分布在田間,以監測田間的空氣和地表的溫度,因此,田間監測系統所需要的技術指標應滿足:(1)低功耗。田間采電受到布線限制,因此節點模塊的耗電量應盡可能低。(2)低成本。田間需要大量布局節點,投資成本成為廣泛實施的制約因素。(3)低復雜度和高可靠性。田間節點開發設備應采用結構簡單、采集數據盡可能精確又廉價的設計。綜合上述特點,ZigBee可以作為田間無線協議首選。
 ZigBee協議是基于IEEE802.15.4標準的低功耗、低速率、低復雜度的雙向通信技術。它可工作在國際上免授權的2.4 GHz,具有250 Kb/s的最高數據傳輸速率和10~75 m的可靠傳輸距離。ZigBee支持星型、樹型、對等和混合型網絡拓撲結構,網絡中的從設備高達254個。根據如圖1所示的節點在網絡分布的特點,節點在網絡中可實現多條數據鏈路通信,以選擇最佳的路徑進行傳輸,提高了網絡通信的可靠性。

基于嵌入式ARM-Linux無線ZigBee協調器驅動設計

 協調器是整個網絡的核心部分,負責完成整個網絡的無線接入和組建,是維持路由器和終端節點之間的數據通信的關鍵。在田間固定放置協調器節點會浪費大量的資源,若動態地測量田間任意位置的數據,把協調器作為移動設備動態地測量數據則是最好的選擇,并且可以減少田間協調器的放置,降低設計難度的成本。
2 嵌入式Linux驅動開發環境的搭建
 Linux操作系統環境的搭建如圖2所示。

基于嵌入式ARM-Linux無線ZigBee協調器驅動設計

2.1 Bootloader的移植
 Bootloader是操作系統內核運行之前運行的一小段程序,它為加載內核提供合適的硬件環境。Bootloader分成Stage1和Stage2兩個階段,具體實現框圖如圖3所示。

基于嵌入式ARM-Linux無線ZigBee協調器驅動設計

 Stage1:主要由匯編實現,包括GPIO驅動、使開發板上電LED閃爍、關閉所有中斷、設置系統時鐘、關閉看門狗、SDRAM初始化、實現相應驅動(提供更大的執行空間)、NAND Flash初始化(驅動開發板上唯一的固態存儲掉電不消失設備)以及設置SP棧指針為Stage2中的C語言代碼執行做好準備。
Stage2:實現加電自搬移過程、串口調試信息、函數庫、shell命令等擴展功能。
2.2 內核的編譯和移植
 本硬件移植2.6.27版本的Linux內核:(1)解壓縮tar xf linux-2.6.27.tar.bz2,進入該目錄。(2)移植平臺為ARM體系結構,修改Makefile中的ARCH?=arm CORSS_COMPILE?=arm-linux-(交叉編譯器的前綴)。(3)配置內核:make deconfig(清除原來編譯的config,如果是第一次配置可省略);make menuconfig進入配置菜單,選擇硬件所需的驅動。大部分可選擇默認選項,但注意網卡驅動一定必選,硬件類型也要匹配。(4)編譯內核make bzImage在~/linux-2.6.27/arch/arm/boot/bzImage生成內核映像,通過tftp把bzImage燒到地址為0x30008000內存上,然后用nand erase kernel擦除kernel分區上的數據,最后用nand write 0x30008000把內存上的數據燒到Flash對應的kernel分區上。
2.3 根文件系統的移植
 運行Linux操作系統,除了內核外還需要根文件系統。用mkdir創建rootfs文件夾,在其中創建根文件系統目錄并安裝busybox。busybox是專門為嵌入式系統設計的,它把大多數常用的命令(如ls,cp,cd,tar等)拼接在一起,在根文件系統中只有一個可執行文件/bin/busybox,其余都是busybox的鏈接。安裝busybox與安裝內核類似,在~$tar xf busybox-1.9.1.tar.bz2、cd busybox-1.9.1/下修改ARCH?=arm CROSS_COMPILE?=arm-linux-;make defconfig、make menuconfig設置busybox安裝路徑rootfs文件夾。將make、make install、busybox文件與一系列鏈接文件安裝在rootfs下。其他鏈接文件在/bin、/sbin、/usr/bin、/usr/sbin中,配置Linuxrc啟動文件、安裝glibc共享庫,在/dev目錄下創建設備文件,將主機系統時鐘拷貝到根文件系統中去,并配置網路和http相關配置文件。最后將文件系統配置成YAFFS文件系統,可直接對文件系統進行讀寫。設置開發板為NFS方式,啟用可以直接在主機上操作開發板的根文件系統并進行調試。
3 硬件設計及驅動實現
3.1 系統硬件設計

 本系統平臺是采用ARM體系結構的S3C2410作為處理器,通過移植的字符設備驅動與ZigBee CC2430無線收發節點進行數據的傳輸。系統硬件框架圖如圖4所示。

基于嵌入式ARM-Linux無線ZigBee協調器驅動設計

 CC2430是一個真正的片上系統(SoC),以高性能和低功耗的8051為內核,專門針對IEEE802.15.4和ZigBee應用,它可以用很低的費用構成ZigBee節點。
現有的硬件是通過串口實現數據傳輸,數據傳輸的格式要按照串口通信協議的格式封裝,大量數據的傳輸還需要在串口通信格式的基礎上再進行設計封裝,不僅數據傳輸速度慢,而且容錯能力低。如果在內核中加入ZigBee的字符驅動則可省去數據發送時的封裝以及接收時需要解析的麻煩。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉