




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
智能產品設計與應用基于BasicRF的點對點無線通信案例導入01/PART
ONE基于BasicRF的點對點無線通信BasicRF由TI公司提供,它包含了IEEE802.15.4標準的數(shù)據(jù)包的收發(fā)。這個協(xié)議只是用來演示無線設備是如何進行數(shù)據(jù)傳輸?shù)模话暾δ艿膮f(xié)議。但是它采用了與802.15.4MA兼容的數(shù)據(jù)包結構及ACK包結構,其功能限制如下:不提供“多跳”、“設備掃描”及Beacon。不提供不同種的網(wǎng)絡設備,如協(xié)調器、路由器等。所有節(jié)點同級,只實現(xiàn)點對點傳輸。傳輸時會等待信道空閑,但不按802.15.4CSMA-CA要求進行兩次CCA檢測。不重傳數(shù)據(jù)。簡言之,BasicRF功能較為簡單,但可用來進行無線設備數(shù)據(jù)傳輸?shù)娜腴T學習。BasicRF概述基于BasicRF的點對點無線通信BasicRF軟件包主要有四個部分:硬件層:HardwareLayerA硬件抽象層:HardwareAbstractionLayer基本無線傳輸層:BasicRFLayer應用層:AppliactionBasicRF只是簡單的點對點無線通信協(xié)議,不具備“多跳”、“設備掃描”功能,不提供多種網(wǎng)絡設備,如協(xié)調器,所有的節(jié)點為同一等級,只能實現(xiàn)點對點的數(shù)據(jù)傳輸,傳輸時會等待信道空閑,但不支持數(shù)據(jù)重傳。BasicRF概述基于BasicRF的點對點無線通信BasicRF概述基于BasicRF的點對點無線通信BasicRF的應用開發(fā)要點BasicRF軟件包看起來比較復雜,而實際上BasicRF相關的核心要點,有四個部分:無線參數(shù)的配置。無線模塊的初始化。無線數(shù)據(jù)的發(fā)送。無線數(shù)據(jù)的接收。需要配置四個無線參數(shù):本機地址、目標地址、PandID、通信信道。注意:兩個通信節(jié)點的PandID和通信信道必須一致?;贐asicRF的點對點無線通信BasicRF核心函數(shù)介紹1.BasicRF無線數(shù)據(jù)發(fā)送:basicRfSendPacket()uint8basicRfSendPacket(uint16destAddr,uint8*pPayload,uint8length)功能:將待發(fā)送數(shù)據(jù)緩沖區(qū)中指定長度的數(shù)據(jù)發(fā)送給目標地址的節(jié)點。返回值:SUCCESS:數(shù)據(jù)發(fā)送成功。 FAILED:數(shù)據(jù)發(fā)送失敗。參數(shù):destAddr:發(fā)送的目標地址。
pPayload:待發(fā)送數(shù)據(jù)的緩沖區(qū)指針。 length:待發(fā)送數(shù)據(jù)的長度?;贐asicRF的點對點無線通信BasicRF核心函數(shù)介紹2.BasicRF判斷是否已收到無線數(shù)據(jù):basicRfPacketlsReady()uint8basicRfPacketIsReady(void)功能:查詢無線模塊是否成功接收到數(shù)據(jù)。返回值:返回TRUE:表示已成功接收到無線數(shù)據(jù),有數(shù)據(jù)可以讀取?;贐asicRF的點對點無線通信BasicRF核心函數(shù)介紹3.BasicRF無線數(shù)據(jù)讀?。篵asicRfReceive()uint8basicRfReceive(uint8*pRxData,uint16len,int16*pRssi)功能:在已經(jīng)接收到的無線數(shù)據(jù)中,讀取指定長度的數(shù)據(jù)到數(shù)據(jù)接收緩沖區(qū)中。返回值:實際讀取到的數(shù)據(jù)長度。參數(shù):pRxData:存放讀取數(shù)據(jù)的緩沖區(qū)指針。
len:需要讀取數(shù)據(jù)的長度。
pRssi:保持上一次數(shù)據(jù)接收包信息變量位置,一般填NULL?;贐asicRF的點對點無線通信staticvoidappSwitch(){
//BasicRF
初始化
basicRfConfig.myAddr=SWITCH_ADDR;
if(basicRfInit(&basicRfConfig)==FAILED){
HAL_ASSERT(FALSE);}//KeepReceiveroffwhennotneededtosavepowerbasicRfReceiveOff();//Mainloopwhile(TRUE){if(halButtonPushed()==HAL_BUTTON_1){
bsicRfSendPacket(LIGHT_ADDR,pTxData,APP_PAYLOAD_LENGTH);//PutMCUtosleep.ItwillwakeuponjoystickinterrupthalIntOff();halMcuSetLowPowerMode(HAL_MCU_LPM_3);//Willturnonglobal//interruptenablehalIntOn();}}}基于BasicRF的點對點無線通信選擇左邊窗口application下的light_switch.c打開,找到main()函數(shù)里的以下代碼:
//被點燈的板打開此函數(shù)(appLight)appLight();//作為開關板打開此函數(shù)(appSwitch)appSwitch();基于BasicRF的點對點無線通信通信任務及結果給兩塊開發(fā)板上電,按下A開發(fā)板的S1,B開發(fā)板的D1會被點亮。智能產品設計與應用主講教師:肖俊芳基于BasicRF的點對點無線通信應用案例導入01/PART
ONE基于BasicRF的點對點無線通信應用使用2塊CC2530模塊,進行無線數(shù)據(jù)通信A模塊按下k1,發(fā)送數(shù)據(jù)0x02給B模塊,B模塊收到數(shù)據(jù)后LED1狀態(tài)取反。B模塊按下k1,發(fā)送數(shù)據(jù)0x02給A模塊,A模塊收到數(shù)據(jù)后LED1狀態(tài)取反。RF頻道設置為25,網(wǎng)絡ID為0x2007;兩個模塊地址分別為:0x2520和0xBEEF。任務:點對點無線通信CC2530模塊ACC2530模塊B基于BasicRF的點對點無線通信應用任務:點對點無線通信A模塊按下K1無線數(shù)據(jù)0x02B模塊LED1取反發(fā)送接收B模塊按下K1無線數(shù)據(jù)0x02A模塊LED1取反發(fā)送接收基于BasicRF的點對點無線通信應用參數(shù)配置、初始化硬件PANID、信道、本機地址、目標地址---結構體如何把數(shù)據(jù)發(fā)送出去?發(fā)給誰?發(fā)什么?如何把接收到的數(shù)據(jù)準確的取出來?如何知道新數(shù)據(jù)到來如何取出新數(shù)據(jù)任務:點對點無線通信基于BasicRF的點對點無線通信應用任務:點對點無線通信一、無線參數(shù)配置1.通信頻道和網(wǎng)絡ID#defineRF_CHANNEL25//RF頻道#definePAN_ID0x2007//網(wǎng)絡ID2.點對點通訊地址設置開始//#defineMY_ADDR0x2520//本機模塊地址//#defineSEND_ADDR0xBEEF//發(fā)送模塊地址#defineSEND_ADDR0x2520//本機模塊地址#defineMY_ADDR0xBEEF//發(fā)送模塊地址3.端口引腳定義#defineLED1P1_0//led1#definek1P0_14.數(shù)據(jù)定義staticbasicRfCfg_tbasicRfConfig;//這個需要unsignedchardat_send;//存放通過無線模塊要發(fā)送的數(shù)據(jù)unsignedchardat_recv;//存放通過無線模塊接收的數(shù)據(jù)typedefstruct{uint16myAddr;//本機地址uint16panId;//網(wǎng)絡ID,與其他模塊一致uint8channel;//通信信道,一致uint8ackRequest;//應答信號#ifdefSECURITY_CCM//是否加密uint8*securityKey;uint8*securityNonce;#endif}basicRfCfg_t;basic_rf.h文件通過basicRfInit(basicRfCfg_t*pRfConfit)函數(shù),將參數(shù)寫入到無線模塊中基于BasicRF的點對點無線通信應用任務:點對點無線通信二、無線模塊初始化voidConfigRf_Init(void){basicRfConfig.panId=PAN_ID;//網(wǎng)絡
0x2007basicRfConfig.channel=RF_CHANNEL;//RF頻道25basicRfConfig.myAddr=MY_ADDR;//本機地址0xBEEFbasicRfConfig.ackRequest=TRUE;#ifdefSECURITY_CCMbasicRfConfig.securityKey=key;#endifwhile(basicRfInit(&basicRfConfig)==FAILED);//將參數(shù)寫入到無線模塊中。basicRfReceiveOn();//開啟無線模塊的數(shù)據(jù)接收功能}hal_rf.cuint8halRfInit(void)//{FRMCTRL0|=(AUTO__ACK|AUTO__CRC)TXFILTCFG=0x09;AGCCTRL1=0x15;FSCAL1=0x00halPaLnaInit();//自動確認和允許隨機數(shù)產生halRfEnableRxInterrupt();//使能接收中斷returnSUCCESS;}該函數(shù)初始化射頻無線模塊,設置默認配置選項,允許自動確認和允許隨機數(shù)產生。在開發(fā)中,直接調用該函數(shù)來初始化無線模塊,不需要關注該函數(shù)的實現(xiàn)細節(jié)?;贐asicRF的點對點無線通信應用任務:點對點無線通信三、無線數(shù)據(jù)發(fā)送先創(chuàng)建一個字節(jié)數(shù)組作為數(shù)據(jù)發(fā)送的緩沖區(qū),將要發(fā)送的內容置于數(shù)組之中,然后調用無線數(shù)據(jù)發(fā)送函數(shù)進行發(fā)送即可。uint8
basicRfSendPacket(
uint16
destAddr,
//發(fā)送的目標地址
uint8*
pPayload,
//發(fā)送內容的數(shù)組
uint8
length//發(fā)送數(shù)據(jù)的長度);
函數(shù)執(zhí)行成功返回:SUCCESS。函數(shù)執(zhí)行失敗返回:FAILED。基于BasicRF的點對點無線通信應用任務:點對點無線通信四、無線數(shù)據(jù)接收basicRfPacketIsReady()查詢是否收到新的數(shù)據(jù)包,如果有新的數(shù)據(jù)包,則返回TRUE。新的數(shù)據(jù)包信息會存放在basicRfRxInfo_t類型結構體的rxi中。basicRfReceive()把接收到的數(shù)據(jù)復制到自定義的緩沖區(qū)中,然后進行使用。uint8
basicRfReceive(
uint8*
pRxData,
//數(shù)據(jù)接收緩沖區(qū)
uint8
len,
//要接收的數(shù)據(jù)長度
int16*
pRssi);
//無線信號強度函數(shù)執(zhí)行成功返回:接收的字節(jié)數(shù)。了解即可基于BasicRF的點對點無線通信應用1.通信頻道和網(wǎng)絡ID設置K1按下?發(fā)送數(shù)據(jù)basicRfSendPacket(SEND_ADDR,&dat_recv,1);如果收到數(shù)據(jù)?取出數(shù)據(jù)
basicRfReceive(&dat_recv,1,NULL);dat_recv==0x02?LED1=~LED1;main
IO端口初始化(按鍵和LED燈)2.點對點通信地址設置(發(fā)送地址和接收地址)4.數(shù)據(jù)定義:定義存放發(fā)送數(shù)據(jù)、接收數(shù)據(jù)的變量3.端口引腳定義,K1,LED1basicRfPacketIsReady()==true判斷收到的數(shù)據(jù)是否是0x02?基于BasicRF的點對點無線通信應用使用2塊CC2530模塊,進行無線數(shù)據(jù)通信A模塊按下k1,發(fā)送數(shù)據(jù)0x02給B模塊,B模塊收到數(shù)據(jù)后LED1狀態(tài)取反。B模塊按下k1,發(fā)送數(shù)據(jù)0x02給A模塊,A模塊收到數(shù)據(jù)后LED1狀態(tài)取反。RF頻道設置為25,網(wǎng)絡ID為0x2007;兩個模塊地址分別為:#0x2520和0x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項10 文學常識(試卷版)
- 2025屆江蘇省鹽城市射陽中學高三上學期一模物理試題(解析版)
- 2025屆四川省資陽市安岳中學高三二模語文試題(原卷版+解析版)
- 人教版九年級下冊化學教學工作計劃(含進度表)
- 《跨境電子商務法律法規(guī) 》全套教學課件
- 廣東省廣州市華南師范附屬中學2024-2025學年高二下學期3月月考物理試卷(原卷版+解析版)
- 教育咨詢居間協(xié)議樣本
- 汽車車身電子控制技術指南
- 中醫(yī)護理學(第5版)課件 第三節(jié) 中藥煎服法與護理
- 雨水收集再利用系統(tǒng)
- JJG 257-2007浮子流量計行業(yè)標準
- 2023年 新版評審準則質量記錄手冊表格匯編
- 2024年全國版圖知識競賽(小學組)考試題庫大全(含答案)
- 博物館保安服務投標方案(技術方案)
- (高清版)TDT 1047-2016 土地整治重大項目實施方案編制規(guī)程
- 2024年新疆維吾爾自治區(qū)中考一模綜合道德與法治試題
- 醫(yī)藥代表專業(yè)化拜訪技巧培訓
- 今年夏天二部合唱譜
- 現(xiàn)代制造技術課件
- 小米公司招聘測試題目
- 2024年北京控股集團有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論