CC2530無線通信丟包率測(cè)試要點(diǎn)_第1頁
CC2530無線通信丟包率測(cè)試要點(diǎn)_第2頁
CC2530無線通信丟包率測(cè)試要點(diǎn)_第3頁
CC2530無線通信丟包率測(cè)試要點(diǎn)_第4頁
CC2530無線通信丟包率測(cè)試要點(diǎn)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)*實(shí)踐教學(xué)*蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院2013年春季學(xué)期嵌入式系統(tǒng)開發(fā)技術(shù)課程設(shè)計(jì)題 目: CC2530無線通信丟包率測(cè)試 專業(yè)班級(jí): 通信工程4班 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 成 績(jī): 摘 要 隨著后PC機(jī)時(shí)代的到來,計(jì)算機(jī)的發(fā)展已經(jīng)從以PC機(jī)為中心轉(zhuǎn)向了以嵌入式系統(tǒng)為中心的方向:嵌入式系統(tǒng)的迅猛發(fā)展和IA(信息電器)的不斷成熟使得其應(yīng)用越來越廣泛。其中,嵌入式系統(tǒng)與網(wǎng)絡(luò)的結(jié)合也是當(dāng)今發(fā)展的一大趨勢(shì),而嵌入式網(wǎng)絡(luò)技術(shù)的產(chǎn)生正好迎合了這個(gè)趨勢(shì)。由于嵌入式系統(tǒng)的專用

2、性強(qiáng)、體積小且價(jià)格低廉,因此嵌入式設(shè)備已經(jīng)開始應(yīng)用于智能家居系統(tǒng)、工業(yè)智能化從站系統(tǒng)、LED網(wǎng)絡(luò)控制顯示屏系統(tǒng)、網(wǎng)絡(luò)安全加密系統(tǒng)等各個(gè)網(wǎng)絡(luò)相關(guān)領(lǐng)域。本設(shè)計(jì)是使用兩個(gè)CC2530模塊利用其板載無線天線,測(cè)試在不同環(huán)境或不同通信距離內(nèi),CC2530無線通信數(shù)據(jù)包丟失率。關(guān)鍵詞:嵌入式 無線通信 丟包率 目 錄TOC o 1-2 h u 前 言 我國(guó)的無線通信產(chǎn)業(yè)通過短短幾十年的發(fā)展,已經(jīng)發(fā)展到第三代和第四代移動(dòng)通信技術(shù),多種無線通信技術(shù)都得到了廣泛的應(yīng)用是利用電磁波可以在自由空間中傳播的特性進(jìn)行信息交換的一種通信方式,由于無線通信技術(shù)具有成本廉價(jià)、建設(shè)工程周期短、適應(yīng)性好、擴(kuò)展性好、設(shè)備維護(hù)上更容

3、易實(shí)現(xiàn)等諸多優(yōu)點(diǎn),所以近些年來是信息通信領(lǐng)域中,發(fā)展最快、應(yīng)用最廣的。本課設(shè)設(shè)計(jì)一個(gè)簡(jiǎn)單無線通信的應(yīng)用,該設(shè)計(jì)可以用來測(cè)試不同環(huán)境或不同通信距離的誤碼率以及信號(hào)的強(qiáng)弱。完成本實(shí)驗(yàn)需要兩個(gè)模塊,一個(gè)設(shè)置為發(fā)送模塊,一個(gè)設(shè)置為接收模塊;其中發(fā)送模塊主要是通過板上按鍵設(shè)置不同的發(fā)送參數(shù),然后發(fā)送數(shù)據(jù)包。接收模塊接收發(fā)送模塊的數(shù)據(jù)包,然后計(jì)算誤碼率和信號(hào)的強(qiáng)度。一、基本原理1.1 無線通信概述 通信按傳輸媒體分為無線通信和有線通信兩大類。移動(dòng)通信、衛(wèi)星、微波、無線接入等都是無線通信,無線通信信號(hào)以電磁波的形式通過空間傳送,具有信道不可預(yù)見性大,使用靈活、方便等特點(diǎn)。無線通信是通過無線信道來實(shí)現(xiàn)的,所以

4、無線信道質(zhì)量的好壞直接影響通信的質(zhì)量。新一代的個(gè)人通信對(duì)通信時(shí)的傳輸速率和誤碼率有很高的要求,因此對(duì)于無線信道的研究有助于提高傳輸速率并降低誤碼率。無線信道是一個(gè)充滿復(fù)雜干擾的信道。由環(huán)境中的各種障礙物所引起的信號(hào)多徑傳播是其主要特點(diǎn)之一。同一發(fā)射機(jī)發(fā)射的電磁波向各個(gè)方向輻射,不同的波遇到不同的障礙物發(fā)生反射折射以及散射衍射等作用會(huì)使得波束到達(dá)接收機(jī)時(shí)的時(shí)間、幅度和相位均發(fā)生延遲與畸變,比如若發(fā)射一個(gè)窄脈沖經(jīng)過無線信道后將在接收端收到一連串幅度和相位均不同的脈沖串,如果在這個(gè)期間內(nèi)連續(xù)發(fā)射多個(gè)脈沖,將在接收端產(chǎn)生混疊發(fā)生誤碼的幾率大大提高。另一個(gè)特點(diǎn)是多普勒效應(yīng)。無線通信中的終端基本處于移動(dòng)的

5、狀態(tài),這就導(dǎo)致了電磁波的多普勒效應(yīng)。由于到達(dá)接收機(jī)的雜散波的方向相位均不同所引起的多普勒效應(yīng)也不盡相同,更加惡化了接收信號(hào)。1.2 CC2530 配置本設(shè)計(jì)主要是在學(xué)會(huì)了配置CC2530 RF功能基礎(chǔ)上,一個(gè)簡(jiǎn)單無線通信的應(yīng)用,該設(shè)計(jì)可以用來測(cè)試不同環(huán)境或不同通信距離的誤碼率以及信號(hào)的強(qiáng)弱。完成本設(shè)計(jì)需要兩個(gè)模塊,一個(gè)設(shè)置為發(fā)送模塊,一個(gè)設(shè)置為接收模塊;其中發(fā)送模塊主要是通過板上按鍵設(shè)置不同的發(fā)送參數(shù),然后發(fā)送數(shù)據(jù)包。接收模塊接收發(fā)送模塊的數(shù)據(jù)包,然后計(jì)算誤碼率和信號(hào)的強(qiáng)度。 其中按鍵功能分配如下: SW1 - 開始測(cè)試(進(jìn)入功能選擇菜單) SW2 - 設(shè)置功能加 SW3 - 設(shè)置功能減 SW

6、4 - 確定按鈕 在每完成一個(gè)參數(shù)設(shè)置或選擇,都是通過SW4來確定,然后進(jìn)入下一個(gè)參數(shù)設(shè)置,其中發(fā)送模式下的發(fā)送開始和停止也是通過SW4控制的。在測(cè)試中,接收模塊可以通過SW4來復(fù)位測(cè)試結(jié)果。 發(fā)送模塊需設(shè)置的參數(shù)有:1、信道選擇,802.15.4中2.4G頻段信道有16個(gè)。為信道11-26,對(duì)應(yīng)的頻率為2405MHz到2480MHz。通過SW2和SW3可以對(duì)16個(gè)信道進(jìn)行選擇。(注意,測(cè)試時(shí)要與接收模塊選擇相同的信道)。 2、發(fā)射功率設(shè)置,CC2530提供的發(fā)送功率有-3dBm、0dBm和4dBm三種,通過SW2和SW3可以選擇發(fā)送模塊的不同發(fā)射功率。3、發(fā)送數(shù)據(jù)包數(shù)量設(shè)置,程序中提供的數(shù)據(jù)

7、包數(shù)量有:1000、10000、和四種,推薦測(cè)試時(shí),選擇1000或10000即可。其中也是通過SW2和SW3來選擇的。 4、發(fā)送速度設(shè)置,發(fā)送速度即1s中發(fā)送數(shù)據(jù)包的個(gè)數(shù)。程序中提供5/S、10/S、20/S和50/S四種速度。通過SW2和SW3來選擇。 接收模塊只需要設(shè)置和發(fā)送模塊相同的信道即可。 接收模塊測(cè)量時(shí)顯示的信息有: 1.數(shù)據(jù)包丟失率(顯示為x/1000)。 2.信號(hào)強(qiáng)度(RSSI)。 3.收到的數(shù)據(jù)包個(gè)數(shù)。 其中LED1為工作指示燈,當(dāng)工作不正常時(shí),LED2將為亮狀態(tài)。1.3 丟包率的測(cè)試與分析 在我們網(wǎng)絡(luò)上形成的數(shù)據(jù)包通過途徑傳輸?shù)搅硪粋€(gè)數(shù)據(jù)庫上面,一般通過網(wǎng)絡(luò)傳輸?shù)倪^程中會(huì)因

8、為一些原因比如距離過大而產(chǎn)生小部分?jǐn)?shù)據(jù)包被丟失,而大部分?jǐn)?shù)據(jù)包被成功傳輸?shù)浇K端數(shù)據(jù)庫上。這樣就形成了一個(gè)網(wǎng)絡(luò)丟包的過程。而其中丟包的大小和傳輸數(shù)據(jù)包的大小就是網(wǎng)絡(luò)丟包率。比如工廠在A地買了一車貨,然后運(yùn)送到B地,其中因?yàn)榘徇\(yùn)工搬運(yùn)和其他原因造成這批貨和在A地的所測(cè)量的數(shù)值要少一些,這個(gè)過程就是被丟失的貨物,也就是網(wǎng)絡(luò)中網(wǎng)絡(luò)丟包,而丟失的貨物和貨物的總量的比值就是網(wǎng)絡(luò)丟包率。通常這些只是磨損消耗,屬于很正常的。網(wǎng)絡(luò)丟包率怎樣解決呢?主要有以下幾個(gè)方面。1、物理線路故障 如果是物理線路故障所造成網(wǎng)絡(luò)丟包現(xiàn)象,則說明故障是由線路供應(yīng)商提供的線路引起的,需要與線路供應(yīng)商聯(lián)系盡快解決問題。聯(lián)系你的服務(wù)商

9、來解決網(wǎng)絡(luò)丟包很嚴(yán)重的情況。2、設(shè)備故障 設(shè)備方面主要包括軟件設(shè)置不當(dāng)、網(wǎng)絡(luò)設(shè)備接口及光纖收發(fā)器故障造成的。這種情況會(huì)導(dǎo)致交換機(jī)端口處于死機(jī)狀態(tài)。那么可以將你的光纖模塊更換掉,換一條新的模塊替換掉。3、網(wǎng)絡(luò)被堵塞、擁堵當(dāng)網(wǎng)絡(luò)不給力的時(shí)候,在通過網(wǎng)絡(luò)傳輸數(shù)據(jù),就會(huì)將網(wǎng)絡(luò)丟包更多,一般是路由器被占用大量資源造成的。解決方法就是這時(shí)應(yīng)該show process cpu和show process mem,一般情況下發(fā)現(xiàn)IP input process占用過多的資源。接下來可以檢查fast switching在大流量外出端口是否被禁用,如果是,則需要重新使用。用show interfaces和show

10、interfaces switching命令識(shí)別大量包進(jìn)出的端口。一旦確認(rèn)進(jìn)入端口后,打開IP accounting on the outgoing interface看其特征,如果是攻擊,源地址會(huì)不斷變化但是目的地址不變,可以用命令“access list”暫時(shí)解決此類問題。4、路由錯(cuò)誤網(wǎng)絡(luò)中的路由器的路徑錯(cuò)誤也是會(huì)導(dǎo)致數(shù)據(jù)包不能正常傳輸?shù)街鳈C(jī)數(shù)據(jù)庫上這種情況屬于正常狀況,它所丟失的數(shù)據(jù)也是很小的。所以用戶可以忽略這些數(shù)據(jù)丟包,而且這也是避免不了的。二、系統(tǒng)分析2.1 程序流程圖開始系統(tǒng)時(shí)鐘和外圍設(shè)備初始化RF初始化SW1是否按下?信道設(shè)置是否按下SW2或SW3?發(fā)射功率設(shè)置開啟接收功發(fā)送數(shù)

11、據(jù)包數(shù)量設(shè)置是否接收到數(shù)發(fā)送速度設(shè)置關(guān)閉接收功能數(shù)據(jù)計(jì)算是否按下計(jì)算結(jié)果清零是否使能32K定時(shí)器?定時(shí)發(fā)送數(shù)據(jù)結(jié)果顯示 2.2 具體步驟 給智能主板供電(USB外接電源或2節(jié)干電池)。將兩個(gè)無線節(jié)點(diǎn)模塊分別插入到兩個(gè)帶LCD的智能主板的相應(yīng)位置。3、將2.4G的天線安裝在無線節(jié)點(diǎn)模塊上。 4、將CC2530仿真器的一端通過USB線(A型轉(zhuǎn)B型)連接到 PC 機(jī),另一端通過10Pin下載線連接到智能主板的CC2530 JTAG口(J203)。 5、將智能主板上電源開關(guān)撥至開位置。按下仿真器上的按鈕,仿真器上的指示燈為綠色時(shí),表示連接成功。 6、使用IAR7.51打開“OURS_CC2530LIB

12、lib12(PER Test) IAR_files”下的PER Test.eww文件,下載程序。 7、關(guān)掉智能主板上電源,拔下仿真器,按4、5步驟對(duì)另一個(gè)模塊下載程序。 8、打開兩個(gè)模塊的電源,當(dāng)LED1處于亮?xí)r,按下SW1進(jìn)入下級(jí)菜單,按SW2和SW3對(duì)通信信道進(jìn)行選擇(兩個(gè)模塊必須設(shè)置相同的信道)。選定后,按SW4進(jìn)入下一個(gè)設(shè)置。 9、一個(gè)模塊按下SW3設(shè)置為接收模式,按下SW4確定。接收模塊設(shè)置完成(此時(shí)接收模塊已經(jīng)處于接收待命狀態(tài))。 10、另一個(gè)模塊按下SW2設(shè)置為發(fā)送模式,按下SW4確定進(jìn)入下一個(gè)設(shè)置。 11、使用SW2和SW3對(duì)發(fā)送模塊發(fā)射功率選擇,選定后,按SW4進(jìn)入下一個(gè)設(shè)置

13、。 12、使用SW2和SW3對(duì)發(fā)送模塊發(fā)射數(shù)據(jù)包數(shù)量選擇,選定后,按SW4進(jìn)入下一個(gè)設(shè)置。 13、使用SW2和SW3對(duì)發(fā)送模塊發(fā)射速度選擇,選定后,按SW4進(jìn)入發(fā)送準(zhǔn)備狀態(tài)。 14、將發(fā)送和接收模塊安放在不同的地方,按下發(fā)送模塊的SW4開始發(fā)送數(shù)據(jù)(再次按下將停止發(fā)送)。觀察接收模塊的測(cè)試結(jié)果(此時(shí)按下接收模塊的SW4,將會(huì)清除測(cè)試結(jié)果)。 15、改變兩個(gè)模塊的位置,再次測(cè)量,觀察測(cè)量結(jié)果。 注:如果需要重新設(shè)置模塊的收發(fā)功能,按復(fù)位按鍵。 三、詳細(xì)設(shè)計(jì)3.1 CC2530介紹 3.1.1 CC2530概述CC2530 是用于2.4-GHz、ZigBee 和RF4CE 應(yīng)用的一個(gè)真正的(SoC

14、)解決方案。它能夠以非常低的總的材料成本建立強(qiáng)大的。CC2530 結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8-KB RAM 和許多其他強(qiáng)大的功能。CC2530 有四種不同的閃存版本:CC2530F32/64/128/256,分別具有32/64/128/256KB 的閃存。CC2530 具有不同的運(yùn)行模式,使得它尤其適應(yīng)超低功耗要求的系統(tǒng)。運(yùn)行模式之間的轉(zhuǎn)換時(shí)間短進(jìn)一步確保了低能源消耗。CC2530F256 結(jié)合了德州儀器的業(yè)界領(lǐng)先的黃金單元ZigBee(Z-Stack),提供了一個(gè)強(qiáng)大和完整的ZigBee 解決方案。CC2530F64 結(jié)合了德州

15、儀器的黃金單元RemoTI,更好地提供了一個(gè)強(qiáng)大和完整的ZigBee RF4CE解決方案。3.1.2引腳描述引腳名稱 引腳 引腳類型 描述AVDD1 28 電源(模擬) 2-V3.6-V 模擬電源連接AVDD2 27 電源(模擬) 2-V3.6-V 模擬電源連接AVDD3 24 電源(模擬) 2-V3.6-V 模擬電源連接AVDD4 29 電源(模擬) 2-V3.6-V 模擬電源連接AVDD5 21 電源(模擬) 2-V3.6-V 模擬電源連接AVDD6 31 電源(模擬) 2-V3.6-V 模擬電源連接DCOUPL 40 電源(數(shù)字) 1.8V 數(shù)字電源去耦。不使用外部電路供應(yīng)。DVDD1

16、39 電源(數(shù)字) 2-V3.6-V 數(shù)字電源連接DVDD2 10 電源(數(shù)字) 2-V3.6-V 數(shù)字電源連接GND - 接地 接地襯墊必須連接到一個(gè)堅(jiān)固的接地面。GND 1,2,3,4 未使用的連接到GNDP0_0 19 數(shù)字I/O 端口0.0P0_1 18 數(shù)字I/O 端口0.1P0_2 17 數(shù)字I/O 端口0.2P0_3 16 數(shù)字I/O 端口0.3P0_4 15 數(shù)字I/O 端口0.4P0_5 14 數(shù)字I/O 端口0.5P0_6 13 數(shù)字I/O 端口0.6P0_7 12 數(shù)字I/O 端口0.7P1_0 11 數(shù)字I/O 端口1.0-20-mA 驅(qū)動(dòng)能力P1_1 9 數(shù)字I/O

17、端口1.1-20-mA 驅(qū)動(dòng)能力P1_2 8 數(shù)字I/O 端口1.2P1_3 7 數(shù)字I/O 端口1.3P1_4 6 數(shù)字I/O 端口1.4P1_5 5 數(shù)字I/O 端口1.5P1_6 38 數(shù)字I/O 端口1.6P1_7 37 數(shù)字I/O 端口1.7P2_0 36 數(shù)字I/O 端口2.0P2_1 35 數(shù)字I/O 端口2.1P2_2 34 數(shù)字I/O 端口2.2P2_3 33 數(shù)字I/O 模擬端口2.3/32.768 kHz XOSCP2_4 32 數(shù)字I/O 模擬端口2.4/32.768 kHz XOSCRBIAS 30 模擬I/O 參考電流的外部精密偏置電阻RESET_N 20 數(shù)字輸入

18、 復(fù)位,活動(dòng)到低電平RF_N 26 RF I/O RX 期間負(fù)RF 輸入信號(hào)到LNARF_P 25 RF I/O RX 期間正RF 輸入信號(hào)到LNAXOSC_Q1 22 模擬I/O 32-MHz 晶振引腳1或外部時(shí)鐘輸入XOSC_Q2 23 模擬I/O 32-MHz 晶振引腳23.1.3功能介紹RF/布局適應(yīng)2.4-GHz IEEE 802.15.4 的RF 收發(fā)器極高的接收靈敏度和抗干擾性能可編程的輸出功率高達(dá)4.5 dBm只需極少的外接元件只需一個(gè)晶振,即可滿足網(wǎng)狀網(wǎng)絡(luò)系統(tǒng)需要6-mm 6-mm 的QFN40適合符合世界范圍的無線電頻率法規(guī):ETSI EN 300 328 和EN (),F(xiàn)

19、CC CFR47 第15 部分()和ARIB STD-T-66()低功耗主動(dòng)模式RX(CPU 空閑):24 mA主動(dòng)模式TX 在1dBm(CPU 空閑):29mA供電模式1(4 s 喚醒):0.2 mA供電模式2(睡眠運(yùn)行):1 A供電模式3():0.4 A寬電源電壓范圍(2 V3.6 V)微控制器優(yōu)良的性能和具有代碼預(yù)取功能的低功耗8051 微控制器內(nèi)核32-、64-或128-KB 的系統(tǒng)內(nèi)可編程閃存8-KB RAM,具備在各種供電方式下的數(shù)據(jù)保持能力支持硬件調(diào)試外設(shè)強(qiáng)大的5 通道DMAIEEE 802.5.4 MAC,通用定時(shí)器(一個(gè)16 位定時(shí)器,一個(gè)8 位定時(shí)器)IR 發(fā)生電路具有捕獲

20、功能的32-kHz 睡眠硬件支持支持精確的RSSI/LQI電池和溫度傳感器具有8 路輸入和可配置分辨率的12 位ADCAES 安全協(xié)處理器2 個(gè)支持多種的強(qiáng)大USART21 個(gè)通用I/O(194 mA,220 mA)四、設(shè)計(jì)總結(jié) 本學(xué)期為期三周的嵌入式課程設(shè)計(jì)在不知不覺中結(jié)束了,雖說這次課程設(shè)計(jì)時(shí)間不是很長(zhǎng),但是感覺自己收獲頗豐,不僅學(xué)習(xí)到了一些新知識(shí),回顧了以前的一些快要遺忘的知識(shí)點(diǎn),而且使自己的學(xué)習(xí)目標(biāo)更加明確,學(xué)習(xí)方法更加完善,也體會(huì)到軟件開發(fā)的趣味,更加清楚地認(rèn)識(shí)到了自己在軟件開發(fā)及學(xué)習(xí)上的一些不足之處。下面就來詳細(xì)寫一下我關(guān)于此次課程設(shè)計(jì)的總結(jié): 此次課程設(shè)計(jì)給老師選擇項(xiàng)目是在Lin

21、ux下用C語言開發(fā)一個(gè)程序。項(xiàng)目的實(shí)施方式是團(tuán)隊(duì)分組合作,共同完成,雖說一些些技術(shù)我們?cè)谡n堂上也曾學(xué)習(xí)過,但是大多停留在理論學(xué)習(xí)上,實(shí)際開發(fā)很少,而這次課程設(shè)計(jì)給了我們一個(gè)很好的邊學(xué)習(xí)邊實(shí)踐的機(jī)會(huì),對(duì)我們深入學(xué)習(xí)這些技術(shù)有很大幫助,深刻體會(huì)到了這些技術(shù)的實(shí)用性。每當(dāng)自己成功調(diào)試一段代碼或者通過自己的努力克服一個(gè)技術(shù)困難,都頗有收獲感。這次實(shí)訓(xùn)讓我們體驗(yàn)了軟件開發(fā)的全過程,發(fā)現(xiàn)自己的不足,了解了當(dāng)前流行技術(shù)的軟件開發(fā),增加了一定的項(xiàng)目開發(fā)經(jīng)驗(yàn),增強(qiáng)了一定的就業(yè)競(jìng)爭(zhēng)力。 五、附錄#include hal_board.h #include hal_int.h #include hal_mcu.h #

22、include hal_rf.h #include basic_rf.h #include LCD.h #define RF_CHANNEL 25 / 2.4 GHz RF 使用信道25 #define PAN_ID 0 x2011 /通信PANID #define SWITCH_ADDR 0 x2530 /開關(guān)模塊地址 #define LIGHT_ADDR 0 xBEEF /燈模塊地址 #define APP_PAYLOAD_LENGTH 1 /命令長(zhǎng)度 #define LIGHT_TOGGLE_CMD 0 /命令數(shù)據(jù) / 應(yīng)用狀態(tài) #define IDLE 0 #define SEND_C

23、MD 1 /應(yīng)用角色 #define NONE 0 #define SWITCH 1 #define LIGHT 2 #define APP_MODES 2 /按鍵 #define HAL_BUTTON_1 1 #define HAL_BUTTON_2 2 #define HAL_BUTTON_3 3 #define HAL_BUTTON_4 4 #define HAL_BUTTON_5 5 #define HAL_BUTTON_6 6 static uint8 pTxDataAPP_PAYLOAD_LENGTH; /發(fā)送數(shù)據(jù)數(shù)組 164 static uint8 pRxDataAPP_PAY

24、LOAD_LENGTH; /接收數(shù)據(jù)數(shù)組 static basicRfCfg_t basicRfConfig; /RF初始化結(jié)構(gòu)體 extern void halboardinit(void); /硬件初始化函數(shù) extern void ctrPCA9554FLASHLED(uint8 led); /IIC燈控制函數(shù) extern void ctrPCA9554LED(uint8 led,uint8 operation); extern uint8 halkeycmd(void); /獲取按鍵值函數(shù) #ifdef SECURITY_CCM /安全密鑰 static uint8 key= 0 x

25、c0, 0 xc1, 0 xc2, 0 xc3, 0 xc4, 0 xc5, 0 xc6, 0 xc7, 0 xc8, 0 xc9, 0 xca, 0 xcb, 0 xcc, 0 xcd, 0 xce, 0 xcf, ; #endif static void appLight(); /燈應(yīng)用處理函數(shù) static void appSwitch(); /開關(guān)應(yīng)用處理函數(shù) static uint8 appSelectMode(void); /應(yīng)用功能選擇函數(shù) /* * 函數(shù)名稱:appLight * 功能描述:接收模式應(yīng)用函數(shù),初始化RF一些參數(shù),接收另一個(gè)模塊發(fā)送的控制命令,然后控制相應(yīng)的LED

26、燈 * 參 數(shù):無 * 返 回 值:無 */ static void appLight() basicRfConfig.myAddr = LIGHT_ADDR; /設(shè)置接收模塊的地址 if(basicRfInit(&basicRfConfig)=FAILED) /RF初始化 ctrPCA9554FLASHLED(5); /RF初始化不成功,則所有的LED5閃爍 basicRfReceiveOn(); /打開接收功能 / Main loop while (TRUE) while(!basicRfPacketIsReady(); /準(zhǔn)備接收數(shù)據(jù) if(basicRfReceive(pRxData,

27、 APP_PAYLOAD_LENGTH, NULL)0) /接收數(shù)據(jù) if(pRxData0 = LIGHT_TOGGLE_CMD) /判斷命令是否正確 ctrPCA9554FLASHLED(1); /關(guān)閉或打開LED1 /* * 函數(shù)名稱:appSwitch * 功能描述:發(fā)送模式應(yīng)用函數(shù),初始化發(fā)送模式RF,通過按下SW4向另一個(gè)模塊發(fā)送控制命令。 * 參 數(shù):無 * 返 回 值:無 */ static void appSwitch() pTxData0 = LIGHT_TOGGLE_CMD; /向發(fā)送數(shù)據(jù)中寫入命令 basicRfConfig.myAddr = SWITCH_ADDR;

28、/設(shè)置發(fā)送模塊的地址 if(basicRfInit(&basicRfConfig)=FAILED) /RF初始化 ctrPCA9554FLASHLED(5); /RF初始化不成功,則所有的LED5閃爍 basicRfReceiveOff(); /關(guān)閉接收功能 / Main loop while (TRUE) if(halkeycmd() = HAL_BUTTON_4) /判斷是否按下SW4 basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH);/發(fā)送數(shù)據(jù) halIntOff(); /關(guān)閉全局中斷 halIntOn(); /打開中斷

29、 /* * 函數(shù)名稱:appSelectMode * 功能描述:通過SW2或SW3選擇模塊的應(yīng)用模式。 * 參 數(shù):無 * 返 回 值:LIGHT - 接收模式 * SWITCH - 發(fā)送模式 * NONE - 不正確模式 */ static uint8 appSelectMode(void) uint8 key; GUI_ClearScreen(); /LCD清屏 GUI_PutString5_7(25,6,OURS-CC2530); /在LCD上顯示相應(yīng)的文字 GUI_PutString5_7(10,22,Device Mode: ); GUI_PutString5_7(10,35,SW2

30、 - Light); GUI_PutString5_7(10,48,SW3 - Switch); LCM_Refresh(); do key = halkeycmd(); while(key = HAL_BUTTON_1); /等待模式選擇 if(key = HAL_BUTTON_2) /接收模式 GUI_ClearScreen(); GUI_PutString5_7(25,6,OURS-CC2530); /在LCD上顯示相應(yīng)的文字 GUI_PutString5_7(10,22,Device Mode: ); GUI_PutString5_7(10,35,Light); LCM_Refresh

31、(); return LIGHT; if(key = HAL_BUTTON_3) /發(fā)送模式 GUI_ClearScreen(); GUI_PutString5_7(25,6,OURS-CC2530); /在LCD上顯示相應(yīng)的文字 GUI_PutString5_7(10,22,Device Mode: ); GUI_PutString5_7(10,35,Switch); GUI_PutString5_7(10,48,SW4 Send Command); LCM_Refresh(); return SWITCH; return NONE; /* * 函數(shù)名稱:main * 功能描述:通過不同的按鍵,設(shè)置模塊的應(yīng)用角色(接收模式或發(fā)送模式)。通過SW4發(fā)送控制命令 * 參 數(shù):無 * 返 回 值:無 */ void main(void) uint8 appMode = NONE; /應(yīng)用職責(zé)(角色)初始化 basicRfConfig.panId = PAN_ID; /配置PANID 2011 basicRfConfig.channel = RF_CHANNEL; /設(shè)置信道

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論