摘 要:本文首先對(duì)IEEE802.15.4協(xié)議和ZigBee協(xié)議進(jìn)行了研究,分析了JN5121 ZigBee的軟硬件開(kāi)發(fā)環(huán)境,包括JN5121芯片、傳感器開(kāi)發(fā)板、編譯環(huán)境CodeBlocks、燒寫(xiě)器Flash Programmer等,然后基于該軟硬件環(huán)境,實(shí)現(xiàn)了無(wú)線(xiàn)鍵盤(pán)的軟件設(shè)計(jì),包括系統(tǒng)設(shè)計(jì)的總體結(jié)構(gòu),ZigBee無(wú)線(xiàn)鍵盤(pán)的工作原理和過(guò)程,并給出了程序流程。最后對(duì)本文做了總結(jié)并指出了下一步研究方向。
關(guān)鍵詞:IEEE802.15.4協(xié)議;ZigBee協(xié)議;無(wú)線(xiàn)鍵盤(pán)
中圖分類(lèi)號(hào):TP212.9
1 ZigBee協(xié)議及其應(yīng)用
ZigBee協(xié)議底層是基于IEEE802.15.4無(wú)線(xiàn)通訊協(xié)議。ZigBee規(guī)范是由半導(dǎo)體廠商、技術(shù)供應(yīng)商和其他公司組成的一家非營(yíng)利工業(yè)協(xié)會(huì)(即ZigBee聯(lián)盟)制定的。聯(lián)盟當(dāng)前的成員規(guī)模不斷廣大。ZigBee規(guī)范致力于利用IEEE802.15.4所提供的特性,ZigBee適用于低速率、低功耗的應(yīng)用環(huán)境。
ZigBee是部署無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的新技術(shù)。它是一種短距離、低速率無(wú)線(xiàn)網(wǎng)絡(luò)技術(shù),是一種介于無(wú)線(xiàn)標(biāo)記技術(shù)和BlueTooth之間的技術(shù)提案。ZigBee一詞源自蜜蜂群在發(fā)現(xiàn)花粉位置時(shí),通過(guò)跳ZigZag形舞蹈來(lái)告知同伴,達(dá)到交換信息的目的。借此稱(chēng)呼一種專(zhuān)注于低功耗、低成本、低復(fù)雜度、低速率的近程無(wú)線(xiàn)網(wǎng)絡(luò)通信技術(shù)。
2 開(kāi)發(fā)環(huán)境
2.1 硬件環(huán)境
JN51XX芯片是英國(guó)Jennic公司推出的高性能、低功耗的一系列無(wú)線(xiàn)SoC芯片,該系列芯片完全兼容,封裝與管腳也完全一樣,用戶(hù)能夠很容易的在該系列的產(chǎn)品中進(jìn)行平臺(tái)移植。JN5139與JN5121相比較,天線(xiàn)的靈敏度更高,功耗更低,通訊距離更遠(yuǎn)。
2.2 開(kāi)發(fā)板
JN51XX-Z01-MXX模塊:JN51XX-Z01模塊是基于JN51XX芯片所開(kāi)發(fā)的一系列表帖形式的模塊產(chǎn)品。該系列模塊集成了所有的射頻組件和無(wú)線(xiàn)微控制器。采用模塊進(jìn)行開(kāi)發(fā)可以大大的減少開(kāi)發(fā)人員的工作量,縮短產(chǎn)品的開(kāi)發(fā)周期。這一系列的模塊包含下列不同的型號(hào):JN51XX-Z01-M00內(nèi)置陶瓷天線(xiàn);JN51XX-Z01-M01帶有SMA天線(xiàn)連接接口;JN51XX-Z01-M02帶有功率放大器和SMA天線(xiàn)連接接口。
開(kāi)發(fā)包中的主要部件就是傳感器板,之所以叫做傳感器板是因?yàn)槊恳粋€(gè)板子上都集成了相應(yīng)的溫濕度一體傳感器,這樣用戶(hù)就可以直接利用傳感器板進(jìn)行一些應(yīng)用的測(cè)試和開(kāi)發(fā)。傳感器板包含的部件如下所介紹:
JN51XX模塊板載溫濕度傳感器RS232接口:用于編程或者連接其他的串口設(shè)備JN51XX的I/O擴(kuò)展端口,RS485 J1 CMOS Program,J2 Prog Run,J3 Flash,J4 I/O腳,J5 RS232/Program Port,J6 J1和J5編程/串口選擇,J7 RS485端電阻,J8如圖標(biāo)注,SW1,SW2可編程按鍵,SW3開(kāi)關(guān)(可選擇外供電或電池),PWR電源指示燈LED1,LED2可編程LED。
2.3 軟件環(huán)境
ZigBee開(kāi)發(fā)環(huán)境有多種平臺(tái),在設(shè)計(jì)過(guò)程中主要使用了Jennic的設(shè)計(jì)平臺(tái)Code::Blocks,它是一個(gè)全功能的,開(kāi)放的免費(fèi)提供的IDE,基本包含代碼開(kāi)發(fā)編譯工具、程序下載工具等基本組成部分。其中,代碼編譯工具包括以下幾個(gè)內(nèi)容:CodeBlocks IDE、Jennic Cygwin、ZigBee stack和MAC stack、Jennic Debugger Tools;第二個(gè)部分則是Jennic Flash Programmer的安裝。
3 程序的設(shè)計(jì)和實(shí)現(xiàn)
3.1 方案設(shè)計(jì)
此方案有硬件有五部組成:傳感器板子,控制器板子,一個(gè)普通的鍵盤(pán),一個(gè)5V電源,連接線(xiàn)??梢詫?shí)現(xiàn)通過(guò)鍵盤(pán)輸入字符,此字符先轉(zhuǎn)化為二進(jìn)制代碼,并打包分批傳遞到傳感器板子,傳感器板子通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)發(fā)送給控制板子,控制板接受數(shù)據(jù)后將二進(jìn)制代碼還原為字符,并通過(guò)屏幕顯示出來(lái)。
3.2 程序設(shè)計(jì)流程
根據(jù)性能和作用的分析,可以把這兩塊代碼執(zhí)行的情況用流程圖表示出來(lái)。傳感器板應(yīng)用程序軟件的主要任務(wù)有三個(gè):讀PS2總線(xiàn),傳輸一個(gè)字節(jié)的鍵盤(pán)碼,接受到一個(gè)確定。傳感器板把鍵盤(pán)傳過(guò)來(lái)的鍵碼一個(gè)一個(gè)的發(fā)送給控制板,等待控制板的確認(rèn)信息,收到確認(rèn)后接著發(fā)送下一個(gè)鍵碼,沒(méi)有收到且超時(shí)就重新發(fā)送一次。在無(wú)線(xiàn)鍵盤(pán)應(yīng)用程序的設(shè)計(jì)中最主要的是把應(yīng)用程序中斷和協(xié)議棧中斷分開(kāi)。控制板應(yīng)用程序在整個(gè)流程中顯得很簡(jiǎn)單,只接受到鍵盤(pán)碼序列,然后翻譯成ASCII碼,再將其顯示到LED,然后發(fā)送一個(gè)確認(rèn)給等同的應(yīng)用程序。既控制板那邊就是不停檢測(cè)是否收到數(shù)據(jù),如果收到,首先判斷收到的數(shù)據(jù)是否在有效范圍內(nèi),如果是就翻譯,然后把翻譯后的數(shù)據(jù)顯示在LCD顯示屏上,如果不是就接收下一個(gè)數(shù)據(jù)。
3.3 程序調(diào)試、下載和運(yùn)行結(jié)果
打開(kāi)Jennic CodeBlocks,打開(kāi)ZigBeeKEyboardEndDevice工程目錄,并鼠標(biāo)右鍵選擇Build options,選擇合適的調(diào)試器,用同樣的方法對(duì)ZigBeeKeyboardCoord工程目錄執(zhí)行同樣的操作,具體步驟同上。然后對(duì)ZigBeeKEyboardEndDevice工程下的PS2socket.c文件,ZKBgetKey.c文件,ZKBsensor.c文件進(jìn)行編譯和鏈接,選擇ZigBeeKEyboardEndDevice后點(diǎn)擊build按鈕。編譯ZigBeeKEyboardEndDevice。編譯完成后您將在工程目錄下找到一個(gè) JN5121_Build目錄,將在這個(gè)目錄下找到ZigBeeKeyboardEndDevice.bin文件,同樣的方法編譯ZigBeeKeyboardCoord在JN5121_Build 目錄同樣也生成相應(yīng)的bin文件,下載和編譯應(yīng)用程序如下所示:
第一步:保證工程目錄存在于
第二步:使用在當(dāng)?shù)谺uild目錄下提供的MakeFile文件,Build應(yīng)用程序。或者是提供Code::Blocks工程文件 (.cbp文件)。
第三步:下載已經(jīng)生成的二進(jìn)制文件到板子上。
(1)下載ZigBeeKeyboardCoord.bin 到Jennic控制板上;
(2)下載ZigBeeKeyboardEndDevice.bin到Jennic控制板上。
4 結(jié)束語(yǔ)
通過(guò)ZigBee技術(shù),以其高效的傳輸速率、良好的可靠性、網(wǎng)絡(luò)組建方便、節(jié)點(diǎn)容量大和功耗小等優(yōu)點(diǎn)無(wú)線(xiàn)網(wǎng)絡(luò)設(shè)備中扮演著重要角色。通過(guò)以上對(duì)無(wú)線(xiàn)鍵盤(pán)系統(tǒng)的設(shè)計(jì)得出其在當(dāng)今網(wǎng)絡(luò)通信領(lǐng)域的特點(diǎn):首先網(wǎng)絡(luò)連接方便,有多種網(wǎng)絡(luò)結(jié)構(gòu)可以選擇:星型網(wǎng)絡(luò)適合實(shí)現(xiàn)對(duì)鍵盤(pán)設(shè)備的幾種無(wú)線(xiàn)控制;樹(shù)型網(wǎng)絡(luò)則適合于分級(jí)控制;網(wǎng)格型網(wǎng)絡(luò)適合對(duì)無(wú)線(xiàn)通信系統(tǒng)的交錯(cuò)控制;其次采用編碼技術(shù),提高了信息傳輸過(guò)程中的可靠性;路由技術(shù)應(yīng)用提高了連接的節(jié)點(diǎn)數(shù)量,并且保證可靠信息傳輸路徑,延長(zhǎng)了傳輸局距離、拓展了控制范圍;增加了傳輸信道;并且保證了在每一個(gè)節(jié)點(diǎn)都能工作在節(jié)點(diǎn)模式下。
參考文獻(xiàn):
[1]雷亞平,沈春林,楊忠.嵌入式系統(tǒng)的組成、設(shè)計(jì)與調(diào)試[J].航空計(jì)算技術(shù),2003(03).
[2]斯托林斯.無(wú)線(xiàn)通信與網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2004:453-462.
[3] 參考文獻(xiàn)有問(wèn)題 改成:關(guān)宇東,李澤鯤.基于CAN總線(xiàn)的無(wú)線(xiàn)通信技術(shù)研究[J].工業(yè)控制計(jì)算機(jī),2004(10).
作者簡(jiǎn)介:呂曉芳(1983.11-),女,河南鄭州人,本科,助教,學(xué)士學(xué)位,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。
作者單位:鄭州電力職業(yè)技術(shù)學(xué)院,鄭州 450000