基于茶園旱情監(jiān)測系統(tǒng)的WSN網(wǎng)關(guān)設(shè)計
Linux是內(nèi)核可裁剪、重新配置的操作系統(tǒng)。在ARM平臺上移植Linux嵌入式操作系統(tǒng)的工作分為建立交叉編譯環(huán)境、Bootloader移植、Linux內(nèi)核(kernel)移植、文件系統(tǒng)移植和系統(tǒng)驅(qū)動程序設(shè)計等。Linux系統(tǒng)移植示意圖如圖2所示。
交叉編譯環(huán)境是由編譯器、連接器和解釋器組成的綜合開發(fā)環(huán)境,可以將應(yīng)用程序轉(zhuǎn)換成能在目標(biāo)機上運行的二進(jìn)制代碼。
Bootloader是嵌入式系統(tǒng)上電后執(zhí)行的第一個軟件代碼。它的主要運行任務(wù)就是將內(nèi)核映像從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行,即開始啟動操作系統(tǒng)。
文件系統(tǒng)是指在物理設(shè)備上的任何文件組織和目錄,它構(gòu)成了Linux系統(tǒng)上所有數(shù)據(jù)的基礎(chǔ)。該系統(tǒng)選用JFFS2作為文件系統(tǒng)。
在Linux中,設(shè)備驅(qū)動程序的設(shè)計和使用一般有兩種方式可供選擇。第一種方式是將設(shè)備驅(qū)動程序作為可加載的模塊,動態(tài)地加載到內(nèi)核,模塊是內(nèi)核的一部分,但以獨立的個體形式存在;第二種方式是將設(shè)備驅(qū)動程序作為內(nèi)核代碼的一部分編譯到內(nèi)核中去,是以內(nèi)核模式運行的。本文選用了第二種方式。
3 遠(yuǎn)程數(shù)據(jù)傳輸方式設(shè)計與實現(xiàn)
在無線傳感器網(wǎng)絡(luò)與外部網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸?shù)倪^程中,網(wǎng)關(guān)處于承上啟下的地位,是數(shù)據(jù)傳輸?shù)闹袠泄?jié)點。本文的通信軟件包括網(wǎng)關(guān)與匯聚節(jié)點通信模塊和網(wǎng)關(guān)與遠(yuǎn)程終端通信模塊。
網(wǎng)關(guān)與匯聚節(jié)點之間的通信主要是指網(wǎng)關(guān)接收匯聚節(jié)點數(shù)據(jù)的過程,一般采用串口通信方式。由于Linux內(nèi)核中已嵌入了串口驅(qū)動程序,對串口的操作可通過設(shè)備文件來實現(xiàn)。
網(wǎng)關(guān)與遠(yuǎn)程終端進(jìn)行數(shù)據(jù)傳輸則分別通過開發(fā)以太網(wǎng)應(yīng)用程序和利用PPP協(xié)議,實現(xiàn)了以太網(wǎng)的有線通信和GPRS的無線通信。采用面向連接的客戶機/服務(wù)器模型,其通信過程見圖3。考慮到對數(shù)據(jù)傳輸?shù)目煽啃砸筝^高,故采用基于TCP的流式套接字(socket)通信機制。利用Sierra Wireless公司的Aircard750上網(wǎng)卡連接移動GPRS網(wǎng)絡(luò)接入Internet,從而實現(xiàn)網(wǎng)卡與遠(yuǎn)程監(jiān)控中心的數(shù)據(jù)交換。利用PPP協(xié)議棧把數(shù)據(jù)包封裝成IP包的格式,發(fā)送給無線模塊。完成從撥號到最終邏輯通信鏈路的建立需要經(jīng)過:網(wǎng)關(guān)首先通過撥號呼叫ISP,在得到ISP應(yīng)答后,建立起初始的物理連接,此時可以檢測到載波信號;然后終端與ISP之間開始傳送一系列經(jīng)過PPP封裝的LCP分組,用于協(xié)商選擇將要采用的PPP參數(shù),參數(shù)協(xié)商完成后開始認(rèn)證過程;認(rèn)證成功后,通信雙方開始交換一系列的NCP分組來配置網(wǎng)絡(luò)層。對于上層使用IP協(xié)議的情況而言,此過程是由IPCP完成的;當(dāng)NCP配置完成后,邏輯通信鏈路就建立好了,雙方可以開始在此鏈路上交換上層數(shù)據(jù)。該過程中PPP狀態(tài)轉(zhuǎn)換如圖4所示。
評論