




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 ZigBee實(shí)驗(yàn)十一無(wú)線采集溫度11.1 實(shí)驗(yàn)簡(jiǎn)介對(duì)于溫度傳感器,主要原理就是將溫度轉(zhuǎn)化成為模擬量,再通過(guò)ADC將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。對(duì)于CC2530芯片內(nèi)部已經(jīng)集成了ADC,該ADC 支持多達(dá)14 位的模擬數(shù)字轉(zhuǎn)換,具有多達(dá)12 位的ENOB(有效數(shù)字位)。它包括一個(gè)模擬多路轉(zhuǎn)換器,具有多達(dá)8 個(gè)各自可配置的通道;以及一個(gè)參考電壓發(fā)生器。轉(zhuǎn)換結(jié)果通過(guò)DMA 寫(xiě)入存儲(chǔ)器。還具有若干運(yùn)行模式。同時(shí)CC2530內(nèi)部也集成了一溫度傳感器,可以通過(guò)配置寄存器,將溫度傳感器作為ADC的輸入,這樣CC2530就可以方便的使用溫度傳感器。在基礎(chǔ)實(shí)驗(yàn)中,也用過(guò)了溫度傳感器,本實(shí)驗(yàn)主要是居于TI的協(xié)議棧進(jìn)
2、行的無(wú)線采集實(shí)驗(yàn)?zāi)康?1.2 訓(xùn)練目的 12.2.1 通過(guò)本實(shí)驗(yàn)了解Z-STACK協(xié)議棧中的ADC采集的使用及相關(guān)寄存器的配置。11.3實(shí)驗(yàn)設(shè)備11.3.1 硬件:(1) ZIGBEE 調(diào)試底板2個(gè):可調(diào)電阻ZigBee_DEBUG指示燈紅外發(fā)射ZigBee復(fù)位ZigBee按鍵撥碼開(kāi)關(guān)節(jié)點(diǎn)按鍵復(fù)位傳感器接口1J-LINK接口傳感器接口3傳感器接口2電源開(kāi)關(guān)電源圖11-1 ZIGBEE調(diào)試底板(2) UART轉(zhuǎn)接板與轉(zhuǎn)接線各1個(gè):UART轉(zhuǎn)接線轉(zhuǎn)接串口輸入,連接到ZIGBEE調(diào)試底板轉(zhuǎn)接串口輸出,連接到電腦串口圖11-2 UART轉(zhuǎn)接板與轉(zhuǎn)接線(3) ZIGBEE仿真器1個(gè);10PIN下載接口電
3、源(上)和狀態(tài)指示燈USB接口圖11-3 ZIGBEE仿真器(4) ZIGBEE模塊2個(gè);圖11-4 ZIGBEE模塊(5) 電源2個(gè)圖11-5 電源(6) 串口延長(zhǎng)線1根圖11-6 串口延長(zhǎng)線(7) 硬件連接圖連接電腦串口ZigBee調(diào)試底板與串口轉(zhuǎn)接板連接電源連接電腦USBZIGBEE DeBug連接口圖11-7 硬件連接11.3.2 軟件(1) IAR Embedded Workbench for MCS-51 7.51A集成開(kāi)發(fā)環(huán)境;(2) TI Z-STACK;(3) 仿真器驅(qū)動(dòng);(4) 串口調(diào)試助手。實(shí)驗(yàn)知識(shí)11.4 11.4.1 ADC輸入除了輸入引腳AIN0-AIN7,片上溫度
4、傳感器的輸出也可以選擇作為ADC 的輸入,用于溫度測(cè)量??赏ㄟ^(guò)配置寄存器TR0.ADCTM 和ATEST.ATESTCTRL去實(shí)現(xiàn)。 11.4.2 片內(nèi)溫度傳感器的溫度計(jì)算方法在CC2530的用戶(hù)手冊(cè)中沒(méi)找到相關(guān)的溫度計(jì)算方法,而在CC2430用戶(hù)手冊(cè)用,可以得到以下一個(gè)表格:在TI提供的官方例程中“SimpleSensorEB-Pro”中,得到這樣的一段話:value ranges from 0 to 0x8000 indicating 0V and 1.25VVOLTAGE_AT_TEMP_ZERO = 0.743 V = 19477TEMP_COEFFICIENT = 0.0024 V/
5、C = 62.9 /CThese parameters are typical values and need to be calibratedSee the datasheet for the appropriate chip for more detailsalso, the math below may not be very accurate可以知道以上的確實(shí)為CC2530的內(nèi)部溫度傳感器的電壓與溫度的關(guān)系,從而可以得到計(jì)算溫度的方法。實(shí)驗(yàn)步驟11.511.5.1 在開(kāi)始本實(shí)驗(yàn)的仿真前,參看配套源資料中“關(guān)于節(jié)點(diǎn)板串口使用的統(tǒng)一說(shuō)明”,先按照本說(shuō)明去配置好串口,波特率38400,以便往
6、下實(shí)驗(yàn)?zāi)苷J褂么?。圖11-8 節(jié)點(diǎn)板串口使用的統(tǒng)一說(shuō)明11.5.2 啟動(dòng)IAR Embedded Workbench,打開(kāi)對(duì)應(yīng)配套實(shí)驗(yàn)源碼中“路由器”的SampleApp.eww工程:圖11-9 工程文件圖11-10 打開(kāi)工程界面11.5.3 編譯鏈接程序代碼Make,這一步可以省略,因?yàn)檫M(jìn)行DeBug前,IAR軟件會(huì)先編譯再下載代碼到目標(biāo)板上去仿真,但對(duì)于編譯檢查錯(cuò)誤,這一步也很有必要。如果正確編譯后文件右側(cè)的紅星會(huì)消失。在Make之前,最好Clean一下,如下圖所示:圖11-11 編譯鏈接代碼文件紅色星星編譯后變沒(méi)有了編譯后生成圖11-12 編譯前后對(duì)比如果正確建立工程并正確配置了工程
7、,則此時(shí)編譯是無(wú)錯(cuò)誤的,編譯無(wú)錯(cuò)誤如圖 圖11-13 編譯鏈接無(wú)錯(cuò)誤圖11-14 編譯連接有錯(cuò)誤11.5.4 按照前面“實(shí)驗(yàn)設(shè)備”小節(jié)中的“硬件連接圖”連接好硬件并打開(kāi)電源,點(diǎn)擊DEBUG按鈕或者”P(pán)roject->Debug”或者快捷鍵“Ctrl + D”進(jìn)行程序下載并Debug。如有出錯(cuò),請(qǐng)檢查硬件連接或拔掉仿真器USB再重接圖11-15 Debug 調(diào)試圖11-16 程序正在下載到目標(biāo)板11.5.5 正確進(jìn)入DeBug界面,如下圖:圖11-17 仿真調(diào)試界面11.5.6 通過(guò)以上步驟已將路由器程序下載到節(jié)點(diǎn),此時(shí)的節(jié)點(diǎn)叫“路由器”。卸下仿真器與“路由器”的連接線,使得“路由器”為一
8、個(gè)單獨(dú)的個(gè)體。再將仿真器與另外一個(gè)節(jié)點(diǎn)按照“硬件連接圖”去進(jìn)行連接。按“實(shí)驗(yàn)步驟”從頭開(kāi)始,將“協(xié)調(diào)器”程序下載到到節(jié)點(diǎn),以得到一個(gè)節(jié)點(diǎn)為“協(xié)調(diào)器”,一個(gè)節(jié)點(diǎn)為“路由器”。圖11-18 協(xié)調(diào)器與路由器11.5.7 此時(shí)“協(xié)調(diào)器”節(jié)點(diǎn)與“路由器”節(jié)點(diǎn)已經(jīng)準(zhǔn)備好?!皡f(xié)調(diào)器”則通過(guò)串口連接電腦,打印出收到的數(shù)據(jù)包。先讓“協(xié)調(diào)器”在DEBUG狀態(tài)下全速運(yùn)行,再給“路由器”上電運(yùn)行(注意:協(xié)調(diào)器要先于路由器運(yùn)行,不然兩個(gè)節(jié)點(diǎn)可能建立不了連接。如果“路由器”連接不到“協(xié)調(diào)器”,那么LED一直閃爍,閃爍周期大概1S)。11.5.8 在配套資料“提高實(shí)驗(yàn)”文件夾下找到“超級(jí)單片機(jī)工具軟件.exe”,如果是WI
9、N7系統(tǒng),右鍵“以管理員身份運(yùn)行”,選擇電腦對(duì)應(yīng)的端口,設(shè)置和程序?qū)?yīng)的波特率“38400”,數(shù)據(jù)位“8”,停止位“1”,校驗(yàn)位“NONE”,然后點(diǎn)擊“打開(kāi)串口”圖11-19 超級(jí)單片機(jī)工具軟件圖11-20 超級(jí)單片機(jī)工具軟件界面11.5.9 按下“全速運(yùn)行”按鈕進(jìn)行試驗(yàn)驗(yàn)證,與下文“實(shí)驗(yàn)驗(yàn)證”小節(jié)內(nèi)容進(jìn)行驗(yàn)證本實(shí)驗(yàn)結(jié)果步出函數(shù)步入函數(shù)單步運(yùn)行復(fù)位全速運(yùn)行按鈕圖11-21 調(diào)試功能按鈕11.5.10 實(shí)驗(yàn)完畢。實(shí)驗(yàn)驗(yàn)證11.6 11.6.1 路由器是否每個(gè)1秒LED閃爍一下;11.6.2 查看協(xié)調(diào)器串口(串口調(diào)試助手)是否有溫度數(shù)據(jù)上傳顯示。圖11-22 實(shí)驗(yàn)結(jié)果驗(yàn)證實(shí)驗(yàn)部分參考程序解析(完整
10、程序見(jiàn)源程序文件)11.7代碼解釋?zhuān)?1.7.1 路由器設(shè)計(jì)uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )afIncomingMSGPacket_t *MSGpkt;if(events&SYS_EVENT_MSG)MSGpkt=(afIncomingMSGPacket_t *)osal_msg_receive(SampleApp_TaskID);while(MSGpkt)switch(MSGpkt->hdr.event) case AF_INCOMING_MSG_CMD:break; case ZDO_S
11、TATE_CHANGE:GenericApp_NwkState=(devStates_t)(MSGpkt->hdr.status);if(GenericApp_NwkState=DEV_ROUTER)osal_set_event(SampleApp_TaskID,SEND_DATA_EVENT);break;default:break;osal_msg_deallocate(uint8 *) MSGpkt);MSGpkt=(afIncomingMSGPacket_t *)osal_msg_receive(SampleApp_TaskID);return (events SYS_EVENT
12、_MSG); if(events&SEND_DATA_EVENT)GenericApp_SendTheMessage();osal_start_timerEx(SampleApp_TaskID,SEND_DATA_EVENT,1000);return (eventsSEND_DATA_EVENT);return 0;參考注解:當(dāng)路由器檢測(cè)到網(wǎng)絡(luò)并加入網(wǎng)絡(luò)后即會(huì)發(fā)生ZDO_STATE_CHANGE事件,當(dāng)系統(tǒng)檢測(cè)到該事件時(shí),啟動(dòng)SEND_DATA_EVENT事件,在SEND_DATA_EVENT事件中每個(gè)1000MS進(jìn)行一次GenericApp_SendTheMessage()函數(shù)的調(diào)用
13、。void GenericApp_SendTheMessage(void) int8 tvalue; uint8 datatemp5; tvalue=readTemp();datatemp0=tvalue/10+'0'datatemp1=tvalue%10+'0'datatemp2='C' AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc, SAMPLEAPP_FLASH_CLUSTERID, 3, datatemp, &SampleApp_TransI
14、D, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ); HalLedBlink(HAL_LED_1,0,50,500);參考注解:本函數(shù)的目的主要是調(diào)用readTemp()溫度讀取函數(shù),將數(shù)據(jù)進(jìn)行字符串轉(zhuǎn)換后通過(guò)無(wú)線電發(fā)送出去。int8 readTemp(void) static uint16 reference_voltage; static uint8 bCalibrate=TRUE; uint16 value; int8 temp; ATEST=0x01; TR0|=0x01; ADCIF=0; ADCCON3=(HAL_ADC_REF_115V|HAL_ADC_
15、DEC_256|HAL_ADC_CHN_TEMP); while(!ADCIF);ADCIF=0;value = ADCL >> 2; /ADCL寄存器低2位無(wú)效value |= (UINT16)ADCH) << 6);if(bCalibrate)reference_voltage=value;bCalibrate=FALSE;temp=22+(value-reference_voltage)/4);return temp; 參考注解:這個(gè)函數(shù)只要是開(kāi)啟AD采集,并將溫度數(shù)值進(jìn)行函數(shù)返回。11.7.2 協(xié)調(diào)器設(shè)計(jì)uint16 SampleApp_ProcessEvent
16、( uint8 task_id, uint16 events ) afIncomingMSGPacket_t *MSGpkt; (void)task_id; / Intentionally unreferenced parameter if ( events & SYS_EVENT_MSG ) MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); while ( MSGpkt ) switch ( MSGpkt->hdr.event ) / Received when a key is pr
17、essed / Received when a messages is received (OTA) for this endpoint case AF_INCOMING_MSG_CMD: SampleApp_MessageMSGCB( MSGpkt ); break; / Release the memory osal_msg_deallocate( (uint8 *)MSGpkt ); / Next - if one is available MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); / return unprocessed events return (events SYS_EVENT_MSG); return 0;參考注解:協(xié)調(diào)器運(yùn)行建網(wǎng)后,在等待事件的發(fā)生,當(dāng)檢測(cè)到AF_INCOMING_MSG_CMD(接收到無(wú)線數(shù)據(jù))事件后,調(diào)用SampleApp_MessageMSGCB( M
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 肢體離斷應(yīng)急處理
- 請(qǐng)求帳篷報(bào)告范文
- 欠費(fèi)報(bào)告范文
- 二零二五年度未婚父母放棄撫養(yǎng)權(quán)及子女撫養(yǎng)費(fèi)支付協(xié)議
- 2025年度車(chē)輛報(bào)廢回收抵押借款合同
- 二零二五年度夫妻離婚協(xié)議書(shū)及財(cái)產(chǎn)分割及子女撫養(yǎng)權(quán)及撫養(yǎng)金及贍養(yǎng)費(fèi)及債務(wù)處理及子女教育及共同財(cái)產(chǎn)及子女撫養(yǎng)協(xié)議書(shū)
- 2025年度旅游酒店委托經(jīng)營(yíng)管理協(xié)議
- 2025年度汽車(chē)行業(yè)信息化建設(shè)與系統(tǒng)集成服務(wù)合同模板
- 二零二五年度魚(yú)塘承包與漁業(yè)生態(tài)補(bǔ)償協(xié)議
- 二零二五年度醫(yī)藥行業(yè)員工競(jìng)業(yè)禁止補(bǔ)償金及解約合同
- 2025年黑龍江交通職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)必考題
- 個(gè)人畫(huà)協(xié)議合同范本
- 2024-2025學(xué)年高一下學(xué)期開(kāi)學(xué)第一節(jié)課(哪吒精神)主題班會(huì)課件
- 人教版2025-初中物理實(shí)驗(yàn)室實(shí)驗(yàn)課程安排
- 南京市江寧區(qū)2023-2024六年級(jí)數(shù)學(xué)下冊(cè)第一二單元練習(xí)及答案
- 2024年無(wú)錫科技職業(yè)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 舞蹈藝術(shù)賞析課件
- 2025江蘇泰州興化市陳堡鎮(zhèn)村級(jí)后備干部招聘10人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 重慶市2025屆高三第一次學(xué)業(yè)質(zhì)量調(diào)研抽測(cè)化學(xué)試題 (含答案)
- 成人腦室外引流護(hù)理-中華護(hù)理學(xué)會(huì)團(tuán)體 標(biāo)準(zhǔn)
- 2024年甘肅省公務(wù)員考試《行測(cè)》真題及答案解析
評(píng)論
0/150
提交評(píng)論