(整理)CC2530簡(jiǎn)介課件_第1頁(yè)
(整理)CC2530簡(jiǎn)介課件_第2頁(yè)
(整理)CC2530簡(jiǎn)介課件_第3頁(yè)
(整理)CC2530簡(jiǎn)介課件_第4頁(yè)
(整理)CC2530簡(jiǎn)介課件_第5頁(yè)
已閱讀5頁(yè),還剩81頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、(最新整理)CC2530簡(jiǎn)介2021/7/261(最新整理)CC2530簡(jiǎn)介2021/7/261CC2530簡(jiǎn)介2021/7/2622CC2530簡(jiǎn)介2021/7/2622CC2530芯片CC2530是基于2.4GHz IEEE802.15.4、ZigBee和RF4CE上的一個(gè)片上系統(tǒng)解決方案。其特點(diǎn)是以極低的總材料成本建立較為強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530 芯片結(jié)合了RF 收發(fā)器,增強(qiáng)型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8KB SRAM 和許多其他模塊的強(qiáng)大的功能。CC2530 主要有四種不同的閃存版本:CC2530F32/64/128/256(32/64/128/256KB閃存)其具有多種

2、運(yùn)行模式,使得它能滿足超低功耗系統(tǒng)的要求。同時(shí)CC2530運(yùn)行模式之間的轉(zhuǎn)換時(shí)間很短,使其進(jìn)一步降低能源消耗。2021/7/2633CC2530芯片CC2530是基于2.4GHz IEEE80CC2530片內(nèi)結(jié)構(gòu)方框圖數(shù)字模擬混合輸入/輸出控制器XOSC_Q2 RESET_N XSOC_Q1 P2_4 P2_3 P2_2 P2_1 P2_0 P1_4 P1_3 P1_2 P1_1 P1_0 RF_PP1_7 P1_6 P1_5 P1_4 P1_3 P1_2 P1_1 P1_0 P1_7 P1_6 P1_5 復(fù)位看門(mén)狗片上穩(wěn)壓器32MHz晶振高速RC-OSC上電/復(fù)位/掉電32.768KHz晶振

3、32.768KHzRC-OSC睡眠定時(shí)器調(diào)試接口多路時(shí)鐘校準(zhǔn)睡眠模式控制器DMA8051CPU內(nèi)核存儲(chǔ)器仲 裁32/64/128/256KB FLASH8KB SRAMADC音頻/直流8通道AES加密和解密IRQ控制FLASH寫(xiě)射頻寄存器CSMA/CA選通處理器USART1USART2射步數(shù)據(jù)接口定時(shí)器1(16位)定時(shí)器2IEEE 802.15.4 MAC定時(shí)器定時(shí)器3(8位)定時(shí)器4(8位)調(diào)制器解調(diào)器自動(dòng)增益控制頻率合成器接收鏈RF_N先進(jìn)選出和幀控制發(fā)送鏈VDD(2.03.6V)DCOUPL2021/7/2644CC2530片內(nèi)結(jié)構(gòu)方框圖數(shù)字模擬混合輸入/輸出控制器XOSCC2530引腳

4、描述(1)2021/7/2655CC2530引腳描述(1)2021/7/2655CC2530引腳描述(2)2021/7/2666CC2530引腳描述(2)2021/7/2666CC2530封裝2021/7/2677CC2530封裝2021/7/2677CC2530需要極少的外部連接元件,同時(shí)有很多典型電路,其模塊大致可以分為三類(lèi): 1、CPU和內(nèi)存相關(guān)模塊 2、外設(shè),時(shí)鐘和電源管理相關(guān)模塊 3、無(wú)線信號(hào)收發(fā)相關(guān)模塊CC2530芯片內(nèi)部結(jié)構(gòu)2021/7/2688CC2530需要極少的外部連接元件,同時(shí)有很多典型電路,其模強(qiáng)大的5通道DMAIEEE 802.15.4 MAC定時(shí)器,通用定時(shí)器(一個(gè)

5、16位定時(shí)器,一個(gè)8位定時(shí)器)IR發(fā)生電路(IR 中斷)具有捕獲功能的32-kHz睡眠定時(shí)器硬件支持CSMA/CA(載波偵聽(tīng)多路訪問(wèn)沖突避免) 支持精確的數(shù)字化RSSI/LQI(鏈路質(zhì)量指示 )電池監(jiān)視器和溫度傳感器21個(gè)通用I/O引腳看門(mén)狗定時(shí)CC2530的外設(shè)(1)2021/7/2699強(qiáng)大的5通道DMACC2530的外設(shè)(1)2021/7/26兩個(gè)8位定時(shí)器:定時(shí)器3,4為8位定時(shí)器,有一個(gè)可編程分頻器,一個(gè)8位的周期值,一個(gè)計(jì)數(shù)器通道。MAC定時(shí)器:專(zhuān)為MAC或其他協(xié)議而設(shè)的定時(shí)器,可以跟蹤已過(guò)周期,同時(shí)可以記錄收發(fā)某一的幀精確時(shí)間和傳輸結(jié)束時(shí)間,以便產(chǎn)生不同的選通命令到無(wú)線模塊ADC

6、:支持7到12位的分辨率,帶寬范圍為7-30kHz,在DC與音頻轉(zhuǎn)換時(shí),能夠使用8個(gè)輸入通道。AES加密/解密內(nèi)核:CC2530用128位的AES算法進(jìn)行加密或解密數(shù)據(jù),從而保證了ZigBee網(wǎng)絡(luò)層和應(yīng)用層的安全要求。USART0和USART1分別被配置為一個(gè)主從或一個(gè)UART,其功能是為RX和TX提供雙緩沖,以及硬件流控制。調(diào)試接口:用于內(nèi)部電路調(diào)試,具有兩線串形接口I/O控制器:負(fù)責(zé)所有的通用的I/O引腳CC2530的外設(shè)(2)2021/7/261010兩個(gè)8位定時(shí)器:定時(shí)器3,4為8位定時(shí)器,有一個(gè)可編程分頻器 CC2530具備一個(gè)IEEE802.15.4兼容無(wú)線收發(fā)器,其中的RF內(nèi)核控

7、制模擬無(wú)線模塊,另外它還提供了一個(gè)連接外部設(shè)備的端口,從而可以發(fā)出命令和讀取狀態(tài),操縱各執(zhí)行電路的事件順序。同時(shí)無(wú)線設(shè)備還包括數(shù)據(jù)包過(guò)慮模塊和地址識(shí)別模塊。無(wú)線設(shè)備2021/7/261111 CC2530具備一個(gè)IEEE802.15.4兼容無(wú)線收發(fā)器CC2530最小系統(tǒng)2021/7/261212CC2530最小系統(tǒng)2021/7/261212CC2530的典型應(yīng)用2021/7/261313CC2530的典型應(yīng)用2021/7/261313輸入輸出匹配:當(dāng)使用單極子的一個(gè)不平衡天線,需要用一個(gè)巴倫(平衡非平衡轉(zhuǎn)換器 )來(lái)對(duì)性能進(jìn)行優(yōu)化,可以采用低成本分立電感或電容來(lái)實(shí)現(xiàn),這里主要運(yùn)用C262,L26

8、1,C252,L252.如果使用了諸如折疊偶極子這樣的平衡天線,巴倫可以忽略。1.8V片上穩(wěn)壓器:用以提供1.8V的數(shù)字邏輯電壓,采用這一個(gè)穩(wěn)壓器要求用一個(gè)去耦電容C401來(lái)獲得穩(wěn)定運(yùn)行效果。電源去耦和過(guò)濾必須使用合適的電源去耦以獲得最佳的性能。在一個(gè)應(yīng)用中去耦電容和電源過(guò)濾的位置和尺寸對(duì)獲得最佳性能是非常重要的。TI 提供了一個(gè)緊湊的參考設(shè)計(jì),應(yīng)該很好地遵循。晶振 32MHz 晶振使用了一個(gè)外部32-MHz 振蕩器XTAL1 和兩個(gè)負(fù)載電容(C221 和C231)。晶振 XTAL2 是一個(gè)可選的32.768 kHz 晶振,有兩個(gè)負(fù)載電容(C321 和C331)用于32.768-kHz晶振。3

9、2.768 kHz 晶振用于要求非常低的睡眠電流消耗和精確喚醒時(shí)間的應(yīng)用。元件說(shuō)明2021/7/261414輸入輸出匹配:當(dāng)使用單極子的一個(gè)不平衡天線,需要用一個(gè)巴倫(CC2530模塊傳感器板2021/7/261515CC2530模塊傳感器板2021/7/261515步進(jìn)電機(jī)結(jié)點(diǎn)2021/7/261616步進(jìn)電機(jī)結(jié)點(diǎn)2021/7/261616CC Debug仿真器2021/7/261717CC Debug仿真器2021/7/261717CC2530使用的8051CPU是一個(gè)單周期的兼容內(nèi)核,它有三種不同的訪問(wèn)總線。其中包括中斷控制器,內(nèi)存仲裁器,8KB SRAM,32/64/128/256KB

10、閃存塊。增強(qiáng)型8051 內(nèi)核使用標(biāo)準(zhǔn)的8051 指令集。因?yàn)橐韵略蛑噶顖?zhí)行比標(biāo)準(zhǔn)的8051更快:每個(gè)指令周期是一個(gè)時(shí)鐘,而標(biāo)準(zhǔn)的8051 每個(gè)指令周期是12個(gè)時(shí)鐘消除了總線狀態(tài)的浪費(fèi)。因?yàn)橐粋€(gè)指令周期與可能的內(nèi)存存取是一致的,大多數(shù)單字節(jié)指令在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行。除了速度提高之外,增強(qiáng)型8051 內(nèi)核還包括結(jié)構(gòu)上的改善。第二個(gè)數(shù)據(jù)指針一個(gè)擴(kuò)展的18源中斷單元8051 內(nèi)核的對(duì)象代碼兼容業(yè)界標(biāo)準(zhǔn)的8051 微控制器。即對(duì)象代碼使用8051 內(nèi)核上執(zhí)行的業(yè)界標(biāo)準(zhǔn)的8051編譯器或匯編器編譯,在功能上是等同的。CC2530的CPU2021/7/261818CC2530使用的8051CPU是一個(gè)單周

11、期的兼容內(nèi)核,它有CC2530的CPU中斷控制器:其為18個(gè)中斷源提供服務(wù),它們中的每個(gè)中斷都被賦予4 個(gè)中斷優(yōu)先級(jí)中的某一個(gè)。內(nèi)存仲裁器:位于系統(tǒng)中心,它負(fù)責(zé)執(zhí)行仲裁,即決定同時(shí)訪問(wèn)系統(tǒng)物理存儲(chǔ)器時(shí)的順序,便于系統(tǒng)效率的提高。8 KB SRAM:為超低功耗的SRAM,使數(shù)字部分即使掉電也能保存其中內(nèi)容,是芯片低功耗原因所在。閃存塊:用于保存電腦傳輸進(jìn)入的程序代碼以及常量數(shù)據(jù),節(jié)約了搜尋時(shí)間。2021/7/261919CC2530的CPU中斷控制器:其為18個(gè)中斷源提供服務(wù),它CC2530的存儲(chǔ)器CC2530里的四種存儲(chǔ)空間:CODE程序存儲(chǔ)器:用處存放程序代碼和一些常量,尋址范圍 0000H

12、FFFFH 共64KB。DATA:內(nèi)部數(shù)據(jù)存儲(chǔ)空間,可以直接或間接被一個(gè)單周期CPU指令訪問(wèn)。這一存儲(chǔ)空間是256B。其中較低的128B可以直接或間接尋址,較高的128B只能間接尋址。XDATA:外部數(shù)據(jù)存儲(chǔ)空間,通常需要4-5個(gè)CPU指令周期來(lái)訪問(wèn)。這一存儲(chǔ)空間是64KB。訪問(wèn)XDATA 存儲(chǔ)器慢于訪問(wèn)DATA,因?yàn)镃ODE 和XDATA 存儲(chǔ)空間共享CPU 內(nèi)核上的一個(gè)通用總線。SFR:寄存器存儲(chǔ)空間,可以直接被一個(gè)CPU指令訪問(wèn)。這一存儲(chǔ)空間含有128字節(jié)。對(duì)于地址是被8 整除的SFR 寄存器,每一位還可以單獨(dú)尋址。 這四個(gè)存儲(chǔ)空間在8051 結(jié)構(gòu)中是分開(kāi)的,但是在設(shè)備中有部分是重疊的,

13、以減輕DMA 傳輸和硬件調(diào)試操作的負(fù)擔(dān)。2021/7/262020CC2530的存儲(chǔ)器CC2530里的四種存儲(chǔ)空間:2021/CC2530的XDATA存儲(chǔ)器映射為使DMA 訪問(wèn)全部物理存儲(chǔ)空間,并由此使得DMA 在不同8051存儲(chǔ)空間之間進(jìn)行傳輸,CODE和SFR部分存儲(chǔ)空間映射到XDATA存儲(chǔ)空間。XDATA較高的32KB是一個(gè)只讀區(qū)域(XBANK),任何可用的32KB閃存區(qū)均可以映射到這里。這使得軟件可以訪問(wèn)整個(gè)閃存存儲(chǔ)器。這一區(qū)域主要用作存儲(chǔ)另外的常量數(shù)據(jù)。2021/7/262121CC2530的XDATA存儲(chǔ)器映射為使DMA 訪問(wèn)全部物理存CC2530的CODE存儲(chǔ)器映射機(jī)制一 機(jī)制一

14、是標(biāo)準(zhǔn)的8051映射,只有程序存儲(chǔ)器(即閃存)映射到CODE 存儲(chǔ)空間, 這是復(fù)位后默認(rèn)映射方式。RootBankFMAP.MAP2:0確定過(guò)來(lái)的Bank2021/7/262222CC2530的CODE存儲(chǔ)器映射機(jī)制一 CC2530的CODE存儲(chǔ)器映射機(jī)制二2021/7/262323CC2530的CODE存儲(chǔ)器映射機(jī)制二2021/7/2623CPU 存儲(chǔ)空間SRAM 映射到的地址范圍是0 x0000 到(SRAM_SIZE 1)。XREG 區(qū)域映射到1KB 地址區(qū)域(0 x60000 x63FF)。這些寄存器是另外的寄存器,有效地?cái)U(kuò)展SFR 寄存器空間。一些外設(shè)寄存器和大多數(shù)無(wú)線電控制和數(shù)據(jù)寄

15、存器映射到這里。SFR 寄存器映射到地址區(qū)域(0 x70800 x70FF)。閃存信息頁(yè)面(2 KB)映射到地址區(qū)域(0 x78000 x7FFF)。這是一個(gè)只讀區(qū)域,包含有關(guān)設(shè)備的各種信息。XDATA 存儲(chǔ)空間(0 x80000 xFFFF) 的較高32KB 是一個(gè)只讀的閃存代碼區(qū)( XBANK),可以使用MEMCTR.XBANK2:0位映射到任何一個(gè)可用的閃存區(qū)。閃存存儲(chǔ)器SRAM 和寄存器到XDATA 的映射允許DMA 控制器和CPU 訪問(wèn)在一個(gè)統(tǒng)一的地址空間內(nèi)的所有物理存儲(chǔ)器。寫(xiě)入存儲(chǔ)映射中未執(zhí)行的區(qū)域(圖中的陰影部分)沒(méi)有影響。從為執(zhí)行的區(qū)域讀出返回0 x00。寫(xiě)只讀區(qū)域比如閃存區(qū)域

16、將被忽略。2021/7/262424CPU 存儲(chǔ)空間SRAM 映射到的地址范圍是0 x0000 到物理存儲(chǔ)器閃存存儲(chǔ)器:片上閃存存儲(chǔ)器主要是為了保存程序代碼和常量數(shù)據(jù)。閃存存儲(chǔ)器有以下功能:頁(yè)面大?。? KB閃存頁(yè)面擦除時(shí)間:20ms閃存芯片(批量)擦除時(shí)間:20ms閃存寫(xiě)時(shí)間(4 字節(jié)):20s數(shù)據(jù)保留(室溫下):100 年編程/擦除次數(shù):20,000 次信息頁(yè)面是一個(gè)2 KB 的只讀區(qū)域,存儲(chǔ)設(shè)備信息。其他信息中它包括來(lái)自TI 地址范圍的一個(gè)唯一的IEEE地址。它以最低位優(yōu)先的形式存儲(chǔ)在XDATA 地址0 x780C。將出版一個(gè)單獨(dú)的設(shè)計(jì)說(shuō)明,詳細(xì)介紹信息頁(yè)面的內(nèi)容。SFR寄存器:特殊功能

17、寄存器(SFR)控制8051CPU內(nèi)核和/或外設(shè)的一些功能。許多8051CPU內(nèi)核的SFR和標(biāo)準(zhǔn)的8051SFR 相同。但是有一些控制功能的另外的SFR,是標(biāo)準(zhǔn)8051 中所沒(méi)有的。另外的SFR 用于和外設(shè)單元以及RF 收發(fā)器接口。2021/7/262525物理存儲(chǔ)器閃存存儲(chǔ)器:片上閃存存儲(chǔ)器主要是為了保存程序代碼和與端口有關(guān)的寄存器寄存器名稱地址描 述端口P00 x80端口0。可從XDATA(0 x7080)只讀。P10 x90端口1??蓮腦DATA(0 x7090)只讀。P20 xA0端口2??蓮腦DATA(0 x70A0)只讀。寄存器名稱地址描 述端口控制寄存器P0SEL0 xF3端口0

18、功能選擇(0-通用I/O,1-外圍功能)P1SEL0 xF4端口1功能選擇(0-通用I/O,1-外圍功能)P2SEL0 xF5端口2功能選擇(0-通用I/O,1-外圍功能)P0INP0 x8F端口0 輸入模式(0-三態(tài),1-上拉)P1INP0 xF6端口1輸入模式(0-三態(tài),1-上拉)P2INP0 xF7端口2輸入模式(0-三態(tài),1-上拉)P0DIR0 xFD端口0方向選擇(0-輸入,1-輸出)P1DIR0 xFE端口1方向選擇(0-輸入,1-輸出)P2DIR0 xFF端口2方向選擇(0-輸入,1-輸出)2021/7/262626與端口有關(guān)的寄存器寄存器名稱地址描 述端P00 x80以下代碼使

19、P1_0引腳電平每隔一定時(shí)間反向一次:#include #define BLED P1_0 / 定義LED為P1_0口控制void main() unsigned int d; P1SEL &= 0 x01; / 選擇P1_0為通用I/O引腳 P1DIR |= 0 x01; / I/O方向選擇為輸出 while(1) for(d=0; d30000; d+); / 延時(shí) BLED = BLED; / 電平反向,LED閃爍 2021/7/262727以下代碼使P1_0引腳電平每隔一定時(shí)間反向一次:#inclu將P1_2設(shè)為三態(tài)輸入,讀取按鍵狀態(tài)#define key P0_1 P0SEL &=

20、0X02; / P0_1作為通用I/O口P0DIR &= 0X02; / P0_1輸入P0INP |= 0 x02; / P0_1上拉uchar key_scan(void)if(key = 0) / 低電平有效 delay(100); / 延時(shí)消抖動(dòng) if(key = 0) / 處理按鍵事件 while(!key); / 直到松開(kāi)按鍵 2021/7/262828將P1_2設(shè)為三態(tài)輸入,讀取按鍵狀態(tài)#define key 定時(shí)器T1(1)16 位遞增或遞減計(jì)數(shù)器由CLKCON.TICKSPD定義活動(dòng)時(shí)鐘邊沿周期,它設(shè)置從0.25MHz到32MHz的不同的時(shí)鐘標(biāo)簽頻率(可以使用32 MHz XO

21、SC 作為時(shí)鐘源)。由T1CTL.DIV設(shè)置分頻器值可以從1、8、32 或128。 因此當(dāng)32 MHz 晶振用作系統(tǒng)時(shí)鐘源時(shí),定時(shí)器1 可以使用的最低時(shí)鐘頻率是1953.125Hz,最高是32 MHz。2021/7/262929定時(shí)器T1(1)16 位遞增或遞減計(jì)數(shù)器2021/7/262可以通過(guò)兩個(gè)8 位的SFR讀取16位的計(jì)數(shù)器值:T1CNTH 和T1CNTL,分別包含在高位字節(jié)和低位字節(jié)中。當(dāng)讀取T1CNTL 時(shí),計(jì)數(shù)器的高位字節(jié)在那時(shí)被緩沖到T1CNTH,以便高位字節(jié)可以從T1CNTH 中讀出。因此T1CNTL 必須總是在讀取T1CNTH 之前首先讀取。對(duì)T1CNTL 寄存器的所有寫(xiě)入訪

22、問(wèn)將復(fù)位16 位計(jì)數(shù)器。當(dāng)達(dá)到最終計(jì)數(shù)值(溢出)時(shí),計(jì)數(shù)器產(chǎn)生一個(gè)中斷請(qǐng)求??梢杂肨1CTL 控制寄存器設(shè)置啟動(dòng)并停止該計(jì)數(shù)器。當(dāng)一個(gè)不是00 值的寫(xiě)入到T1CTL.MODE 時(shí),計(jì)數(shù)器開(kāi)始運(yùn)行。如果00 寫(xiě)入到T1CTL.MODE,計(jì)數(shù)器停止在它現(xiàn)在的值上。一般來(lái)說(shuō)控制寄存器T1CTL 用于控制定時(shí)器操作。狀態(tài)寄存器T1STAT 保存中斷標(biāo)志。定時(shí)器T1(2)2021/7/263030可以通過(guò)兩個(gè)8 位的SFR讀取16位的計(jì)數(shù)器值:T1CNTH與定時(shí)器1有關(guān)的寄存器寄存器名稱地址描 述T1CC0L0 xDA通道0捕獲/比較值低字節(jié)T1CC0H0 xDB通道0捕獲/比較值高字節(jié)T1CC1L0

23、xDC通道1捕獲/比較值低字節(jié)T1CC1H0 xDD通道1捕獲/比較值高字節(jié)T1CC2L0 xDE通道2捕獲/比較值低字節(jié)T1CC2H0 xDF通道2捕獲/比較值高字節(jié)T1CNTL0 xE2計(jì)數(shù)器低字節(jié)T1CNTH0 xE3計(jì)數(shù)器高字節(jié)T1CTL0 xE4控制T1CCTL00 xE5通道0捕獲/比較控制T1CCTL10 xE6通道1捕獲/比較控制T1CCTL20 xE7通道2捕獲/比較控制T1STAT0 xAF狀態(tài)常用2021/7/263131與定時(shí)器1有關(guān)的寄存器寄存器名稱地址描 述T1CC0T1CTL 定時(shí)器1 的控制和狀態(tài)位名稱復(fù)位R/W描 述7:4-0000RO保留3:2DIV1:00

24、0R/W分頻器劃分值。產(chǎn)生主動(dòng)的時(shí)鐘邊緣用來(lái)更新計(jì)數(shù)器,如下:00:標(biāo)記頻率/101:標(biāo)記頻率/810:標(biāo)記頻率/3211:標(biāo)記頻率/1281:0MODE1:000R/W選擇定時(shí)器1模式。定時(shí)器操作模式通過(guò)下列方式選擇:00:暫停運(yùn)行。01:自由運(yùn)行,從0 x0000到0 xFFFF反復(fù)計(jì)數(shù)10:從0 x0000到T1CC0反復(fù)計(jì)數(shù)。11:正計(jì)數(shù)/倒計(jì)數(shù),從0 x0000到T1CC0反復(fù) 計(jì)數(shù)并且從T1CC0倒計(jì)數(shù)到0 x00002021/7/263232T1CTL 定時(shí)器1 的控制和狀態(tài)位名稱復(fù)位R/W描 T1STAT定時(shí)器1狀態(tài)寄存器位名稱復(fù)位R/W描 述7:6-0R0保留5OVFIF0R

25、/W0定時(shí)器1計(jì)數(shù)器溢出中斷標(biāo)志。當(dāng)計(jì)數(shù)器在自由運(yùn)行或模模式下達(dá)到最終計(jì)數(shù)值時(shí)設(shè)置,當(dāng)在正/倒計(jì)數(shù)模式下達(dá)到零時(shí)倒計(jì)數(shù)。寫(xiě)1沒(méi)有影響。4CH4IF0R/W0定時(shí)器1通道4中斷標(biāo)志。當(dāng)通道4中斷條件發(fā)生時(shí)設(shè)置。寫(xiě)1沒(méi)有影響。3CH3IF0R/W0定時(shí)器1通道3中斷標(biāo)志。當(dāng)通道3中斷條件發(fā)生時(shí)設(shè)置。寫(xiě)1沒(méi)有影響。2CH2IF0R/W0定時(shí)器1通道2中斷標(biāo)志。當(dāng)通道2中斷條件發(fā)生時(shí)設(shè)置。寫(xiě)1沒(méi)有影響。1CH1IF0R/W0定時(shí)器1通道1中斷標(biāo)志。當(dāng)通道1中斷條件發(fā)生時(shí)設(shè)置。寫(xiě)1沒(méi)有影響。0CH0IF0R/W0定時(shí)器0通道0中斷標(biāo)志。當(dāng)通道0中斷條件發(fā)生時(shí)設(shè)置。寫(xiě)1沒(méi)有影響。2021/7/263333

26、T1STAT定時(shí)器1狀態(tài)寄存器位名稱復(fù)位R/W描 利用定時(shí)器中斷實(shí)現(xiàn)指示燈的閃爍#include #define uint unsigned int#define uchar unsigned char#define RLED P1_0/ 定義LED1為P10口控制#define YLED P1_1/ 定義LED2為P11口控制uint counter=0;/ 統(tǒng)計(jì)溢出次數(shù)uint LEDFlag;/ 標(biāo)志是否要閃爍void InitialT1test(void) / T1初始化程序P1DIR = 0 x03; / 初始化LED控制端口P1 ,P10 P11為輸出RLED = 0;YLED =

27、 0;T1CTL = 0 x05; / 初始化計(jì)數(shù)器1 T1STAT= 0 x21; / 通道0,中斷有效,8分頻 / 自動(dòng)重裝模式(0 x0000-0 xffff) 2021/7/263434利用定時(shí)器中斷實(shí)現(xiàn)指示燈的閃爍#include 0) /中斷標(biāo)志寄存器,其中bit1為T(mén)1IF IRCON = 0; / 清溢出標(biāo)志 counter+; if(counter=15) / 中斷計(jì)數(shù),約0.25s counter = 0; LEDFlag = !LEDFlag; if(LEDFlag) YLED = RLED; RLED = !RLED; / 每 1s LED燈閃爍一下 LEDFlag =

28、 !LEDFlag; / 閃爍標(biāo)志變量置0 2021/7/263535利用定時(shí)器中斷實(shí)現(xiàn)指示燈的閃爍void main() /主串口0使用(初始化)void initUARTSEND(void) CLKCONCMD &= 0 x40; / 設(shè)置系統(tǒng)時(shí)鐘源為32MHZ晶振 while(CLKCONSTA & 0 x40); / 等待晶振穩(wěn)定 CLKCONCMD &= 0 x47; / 設(shè)置系統(tǒng)主時(shí)鐘頻率為32MHZ PERCFG = 0 x00; / 位置1 P0口 P0SEL = 0 x3c; / P0_2, P0_3, P0_4, P0_5用作串口 P2DIR &= 0XC0; / P0優(yōu)先

29、作為UART0 U0CSR |= 0 x80; / UART方式 U0GCR |= 9; U0BAUD |= 59; / 波特率設(shè)為19200 UTX0IF = 0; / UART0 TX中斷標(biāo)志初始置位0函數(shù)功能: 將系統(tǒng)時(shí)鐘設(shè)為高速晶振,將 P0口設(shè)置為串 口0功能引腳,串口0使用UART模式,波特率設(shè)為19200,允許接收。該函數(shù)在使用串口之前調(diào)用。CLKCONCMDCLKCONSTAPERCFGU0CSRU0GCRU0BAUDUTX0IF2021/7/263636串口0使用(初始化)void initUARTSEND(vo串口0使用(發(fā)送字符串)void UartTX_Send_Str

30、ing(char *Data,int len) int j; for(j=0;jlen;j+) U0DBUF = *Data+; while(UTX0IF = 0); UTX0IF = 0; 函數(shù)功能:串口發(fā)送數(shù)據(jù), *data 為發(fā)送緩沖的指針,len 為發(fā)送數(shù)據(jù)的長(zhǎng)度該函數(shù)在初始化串口后才可以正常調(diào)用。2021/7/263737串口0使用(發(fā)送字符串)void UartTX_Send_S#include #include #define RLED P1_0 / 定義控制燈的端口#define GLED P1_1char Txdata25=XWWK Test Data!;void main(

31、void)uchar i; P1DIR = 0 x03; / P1_0, P1_1輸出,控制LED RLED = 1; / RLED滅 GLED = 0; / GLED亮 initUARTSEND(); UartTX_Send_String(Txdata,25); for(i=0;i30;i+) Txdatai = ; strcpy(Txdata,HELLO ); / 將UART0 TX test賦給Txdata;while(1) UartTX_Send_String(Txdata, sizeof(HELLO); / 串口發(fā)送數(shù)據(jù) Delay(50000); / 延時(shí) GLED = !GLED

32、; / GLED閃爍 Delay(50000); Delay(50000);串口0使用(主函數(shù))2021/7/263838#include 串口0使用(主函數(shù)通過(guò)內(nèi)置溫度傳感器實(shí)現(xiàn)溫度采集(初始化)/*溫度傳感器初始化函數(shù)*/void initTempSensor(void) DISABLE_ALL_INTERRUPTS(); / 關(guān)閉所有中斷 InitClock(); / 設(shè)置系統(tǒng)主時(shí)鐘為32M *(BYTE _xdata*) 0 x624B) = 0 x01; / 開(kāi)啟溫度傳感器 *(BYTE _xdata*) 0 x61BD) = 0 x01; / 將溫度傳感器與 / ADC連接起來(lái)vo

33、id InitClock(void) CLKCONCMD = 0 x28; /設(shè)定計(jì)數(shù)器時(shí)鐘為1M Hz, 系統(tǒng)時(shí)鐘為32 MHz while(CLKCONSTA & 0 x40); /等晶振穩(wěn)定#define DISABLE_ALL_INTERRUPTS() (IEN0 = IEN1 = IEN2 = 0 x00)2021/7/263939通過(guò)內(nèi)置溫度傳感器實(shí)現(xiàn)溫度采集(初始化)/*INT8 getTemperature(void) UINT8 i; UINT16 AdcValue; UINT16 value; AdcValue = 0; for( i = 0; i 2; / ADCL寄存器

34、低2位無(wú)效 value |= (UINT16)ADCH) 2; / 累加除以4,得到平均值 return ADC14_TO_CELSIUS(value); / 根據(jù)AD值,計(jì)算出實(shí)際的溫度通過(guò)內(nèi)置溫度傳感器實(shí)現(xiàn)溫度采集(讀AD值)#define ADC_SINGLE_CONVERSION(settings) do ADCCON3 = (settings); while(0)#define ADC_SAMPLE_SINGLE() do ADC_STOP(); ADCCON1 |= 0 x40; while (0)00HHHHHHADCHLLLLLLXXADCL0000HHHH00LLLLLLHH

35、0000000000HHHHHHLLLLLL#define ADC14_TO_CELSIUS(ADC_VALUE) ( (ADC_VALUE) 4) - 335)#define ADC_SAMPLE_READY() (ADCCON1 & 0 x80)2021/7/264040INT8 getTemperature(void)通過(guò)內(nèi)置void main(void)char i; char TempValue10; InitUART0(); / 初始化串口initTempSensor(); / 初始化ADC while(1) AvgTemp = 0; for(i = 0 ; i = 1; / 每次

36、累加后除2. sprintf(TempValue, (char *)%dC , (INT8)AvgTemp); UartTX_Send_String(TempValue, 4); Delay(50000); 通過(guò)內(nèi)置溫度傳感器實(shí)現(xiàn)溫度采集(主函數(shù))2021/7/264141void main(void)通過(guò)內(nèi)置溫度傳感器實(shí)現(xiàn)溫度采集CC2530 Basic RF(簡(jiǎn)單無(wú)線點(diǎn)對(duì)點(diǎn)傳輸協(xié)議)Basic RF 由TI 公司提供,它包含了IEEE 802.15.4 標(biāo)準(zhǔn)的數(shù)據(jù)包的收發(fā)。這個(gè)協(xié)議只是用來(lái)演示無(wú)線設(shè)備是如何進(jìn)行數(shù)據(jù)傳輸?shù)?,不包含完整功能的協(xié)議。但是它采用了與802.15.4 MAC兼容的數(shù)

37、據(jù)包結(jié)構(gòu)及ACK 包結(jié)構(gòu),其功能限制如下:不提供“多跳”、“設(shè)備掃描”及Beacon(信標(biāo) )。不提供不同種的網(wǎng)絡(luò)設(shè)備,如協(xié)調(diào)器、路由器等,所有節(jié)點(diǎn)同級(jí),只實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)傳輸。傳輸時(shí)會(huì)等待信道空閑,但不按802.15.4 CSMA-CA 要求進(jìn)行兩次CCA 檢測(cè)。不重傳數(shù)據(jù)。簡(jiǎn)言之,Basic RF 不適合直接用于產(chǎn)品的開(kāi)發(fā),但可用來(lái)進(jìn)行無(wú)線設(shè)備數(shù)據(jù)傳輸?shù)娜腴T(mén)學(xué)習(xí)。2021/7/264242CC2530 Basic RF(簡(jiǎn)單無(wú)線點(diǎn)對(duì)點(diǎn)傳輸協(xié)議)BaBasic RF 工作原理(2)啟動(dòng)創(chuàng)建一個(gè)basicRfCfg_t 的數(shù)據(jù)結(jié)構(gòu),并初始化其中的成員。調(diào)用basicRfInit()函數(shù)進(jìn)行協(xié)議的初始

38、化。數(shù)據(jù)發(fā)送1. 創(chuàng)建一個(gè)buffer,把payload放入其中。2. 調(diào)用basicRfSendPacket()函數(shù)發(fā)送。數(shù)據(jù)接收上層通過(guò)basicRfPacketIsReady()函數(shù)來(lái)檢查是否收到一個(gè)新的數(shù)據(jù)包,調(diào)用basicRfReceive()函數(shù),把收到的數(shù)據(jù)復(fù)制到buffer 中。2021/7/264343Basic RF 工作原理(2)啟動(dòng)2021/7/26434基于Basic RF的無(wú)線燈光控制實(shí)驗(yàn)程序功能是一個(gè)基本的點(diǎn)對(duì)點(diǎn)通信實(shí)驗(yàn),實(shí)現(xiàn)了一個(gè)節(jié)點(diǎn)板上的開(kāi)關(guān)控制另一個(gè)節(jié)點(diǎn)板上的LED的功能。每一個(gè)節(jié)點(diǎn)是用來(lái)做開(kāi)關(guān)還是用來(lái)做燈的控制器,可以通過(guò)源程序的不同定義進(jìn)行選擇??勺鳛橐?/p>

39、個(gè)無(wú)線通信的入門(mén)級(jí)程序。TI例程工程名:cc2530_sw_examples.eww2021/7/264444基于Basic RF的無(wú)線燈光控制實(shí)驗(yàn)程序功能2021/7/baseRF通信基本流程1. 初始化網(wǎng)絡(luò)地址,打開(kāi)接收機(jī)。2. 初始化basicRfConfig,確定網(wǎng)絡(luò)ID、信道。3. 初始化外圍設(shè)備,如時(shí)鐘、各個(gè)I/O口等。4. 事件的處理,如發(fā)送報(bào)文或接受報(bào)文后的數(shù)據(jù)處理等。2021/7/264545baseRF通信基本流程1. 初始化網(wǎng)絡(luò)地址,打開(kāi)接收機(jī)。2初始化網(wǎng)絡(luò)(1)void main(void)/ 射頻配置 basicRfConfig.panId = PAN_ID; bas

40、icRfConfig.channel = RF_CHANNEL; basicRfConfig.ackRequest = TRUE; / 要求接受方應(yīng)答 / IO初始化 halBoardInit(); / 初始化指示燈和按鈕 initUART0(); / 初始化串口 / RF初始化 if(halRfInit()=FAILED) HAL_ASSERT(FALSE); 2021/7/264646初始化網(wǎng)絡(luò)(1)void main(void)2021/7/初始化網(wǎng)絡(luò)(2)uint8 halRfInit(void) / 上電設(shè)置默認(rèn)參數(shù) FRMCTRL0 |= (AUTO_ACK | AUTO_CRC)

41、; / 推薦的RX設(shè)置 TXFILTCFG = 0 x09;/TX過(guò)濾器配置寄存器 AGCCTRL1 = 0 x15; / AGC控制寄存器 FSCAL1 = 0 x00; / 調(diào)整頻率校準(zhǔn) halRfEnableRxInterrupt(); / 使能RX中斷 return SUCCESS;void halRfEnableRxInterrupt(void) / enable RXPKTDONE interrupt RFIRQM0 |= 1 0) if(pRxData0 = LIGHT_TOGGLE_CMD) UartTX_Send_String(UartData,17); / 向串口發(fā)送測(cè)試數(shù)

42、據(jù) halLedToggle(LED_RED); / 改變狀態(tài) Wait(3); halLedToggle(LED_RED); / 改變狀態(tài) 接收函數(shù)(點(diǎn)亮LED)2021/7/265050static void appLight()接收函數(shù)(點(diǎn)亮L發(fā)送數(shù)據(jù)包函數(shù)(1)uint8 basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length) uint8 mpduLength; uint8 status; if(!txState.receiveOn) / 如果沒(méi)有打開(kāi)接收機(jī) halRfReceiveOn(); length =

43、 min(length, BASIC_RF_MAX_PAYLOAD_SIZE); / 包長(zhǎng)度 halRfWaitTransceiverReady(); / 等到收發(fā)空閑 halRfDisableRxInterrupt(); /關(guān)閉接收幀完成中斷避免對(duì)SPI接口的干擾 mpduLength = basicRfBuildMpdu(destAddr, pPayload, length); halRfWriteTxBuf(txMpdu, mpduLength); halRfEnableRxInterrupt(); /打開(kāi)接收幀ACK接收完成中斷 if(halRfTransmit() != SUCCES

44、S) /如果發(fā)送幀不成功,返回失敗 status = FAILED; 2021/7/265151發(fā)送數(shù)據(jù)包函數(shù)(1)uint8 basicRfSendPac發(fā)送數(shù)據(jù)包函數(shù)(2)if (pConfig-ackRequest) /等待確認(rèn)被接受 ; /自動(dòng)進(jìn)入接收 halMcuWaitUs(12 * BASIC_RF_SYMBOL_DURATION) + (BASIC_RF_ACK_DURATION) + (2 * BASIC_RF_SYMBOL_DURATION) + 10); status = txState.ackReceived ? SUCCESS : FAILED; else statu

45、s = SUCCESS; if (!txState.receiveOn) halRfReceiveOff(); /關(guān)掉接收機(jī) if(status = SUCCESS) txState.txSeqNumber+; return status;2021/7/265252發(fā)送數(shù)據(jù)包函數(shù)(2)if (pConfig-ackRequZ-Stack協(xié)議棧軟件層次(1)APP 用戶應(yīng)用程序目錄HAL 硬件接口層目錄MAC、NWK 底層封裝目錄(無(wú)源碼)MT 串口操作工具目錄OSAL 操作系統(tǒng)抽象層目錄ZMAIN 協(xié)議棧入口目錄ZDO 設(shè)備對(duì)象層管理代碼目錄TOOL 工程配置文件目錄(信道、PANID)202

46、1/7/265353Z-Stack協(xié)議棧軟件層次(1)APP 用戶應(yīng)用程序目錄 整個(gè)Z-Stack采用分層的軟件結(jié)構(gòu),硬件抽象層(HAL)提供各種硬件模塊的驅(qū)動(dòng),包括定時(shí)器Timer,通用I/O口GPIO,通用異步收發(fā)傳輸器UART,模數(shù)轉(zhuǎn)換ADC的應(yīng)用程序接口API,提供各種服務(wù)的擴(kuò)展集。 操作系統(tǒng)抽象層OSAL實(shí)現(xiàn)了一個(gè)易用的操作系統(tǒng)平臺(tái),通過(guò)時(shí)間片輪轉(zhuǎn)函數(shù)實(shí)現(xiàn)任務(wù)調(diào)度,提供多任務(wù)處理機(jī)制。用戶可以調(diào)用OSAL提供的相關(guān)API進(jìn)行多任務(wù)編程,將自己的應(yīng)用程序作為一個(gè)獨(dú)立的任務(wù)來(lái)實(shí)現(xiàn)。Z-Stack協(xié)議棧軟件層次(2)2021/7/265454 整個(gè)Z-Stack采用分層的軟件結(jié)構(gòu),硬件抽工

47、程的選擇設(shè)備類(lèi)型協(xié)調(diào)器路由器節(jié)點(diǎn)設(shè)備開(kāi)發(fā)板類(lèi)型EB2021/7/265555工程的選擇設(shè)備類(lèi)型2021/7/265555工程的配置(1)預(yù)編譯宏 Z-Stack協(xié)議棧的代碼采用了大量的預(yù)編譯宏定義來(lái)模塊化代碼,以此來(lái)節(jié)省硬件代碼空間。用戶可以根據(jù)具體應(yīng)用環(huán)境適當(dāng)添加或刪除宏定義。 具體編譯宏由協(xié)議棧相關(guān)文檔詳細(xì)解釋。Project-Options-C/C+Compiler-Preprocessor中查看2021/7/265656工程的配置(1)預(yù)編譯宏 2021/7/26565配置文件 在f8wConfig.cfg等配置文件中定義了工程相關(guān)的網(wǎng)絡(luò)通訊設(shè)置。其中比較重要的是和ZigBee通信相關(guān)

48、的信道通道的設(shè)置,和PAN ID的設(shè)置,用戶可以通過(guò)更改該文件中的相關(guān)宏定義,來(lái)控制ZigBee網(wǎng)絡(luò)的通道和PAN ID。Project- Options-C/C+Compiler-Preprocessor中查看工程的配置(2)2021/7/265757配置文件 工程的配置(2)2021/7/26575如何使用ZStack網(wǎng)絡(luò)配置(1)1.PAN ID 和Channel(在Toolsf8wConfig.cfg中) ZigBee協(xié)議使用一個(gè)14位的個(gè)域網(wǎng)標(biāo)志符(PAN ID)來(lái)標(biāo)識(shí)一個(gè)網(wǎng)絡(luò)。ZStack允許用兩種方式配置PAN ID,當(dāng)ZDAPP_CONFIG_PAN_ID值不設(shè)置為0 xFFF

49、F時(shí),那么設(shè)備建立或加入網(wǎng)絡(luò)的PAN ID由ZDAPP_CONFIG_PAN_ID指定;如果設(shè)置ZDAPP_CONFIG_PAN_ID為0 xFFFF,那么設(shè)備就將建立或加入一個(gè)“最優(yōu)”的網(wǎng)絡(luò)。 -DZDAPP_CONFIG_PAN_ID=0 xFFFF/-DZDAPP_CONFIG_PAN_ID=0 x2FFF IEEE 802.15.4/ZIGBEE規(guī)范在2.4G頻段上規(guī)定了16各頻道,用戶可以通過(guò)選擇DEFAULT_CHANLIST不同的值選擇不同的頻道,協(xié)議默認(rèn)頻道為0 xB即0 x00000800。 /-DDEFAULT_CHANLIST=0 x04000000 / 26 - 0 x

50、1A/-DDEFAULT_CHANLIST=0 x02000000 / 25 - 0 x19-DDEFAULT_CHANLIST=0 x01000000 / 24 - 0 x18/-DDEFAULT_CHANLIST=0 x00800000 / 23 - 0 x17/-DDEFAULT_CHANLIST=0 x00400000 / 22 - 0 x16/-DDEFAULT_CHANLIST=0 x00200000 / 21 - 0 x15/-DDEFAULT_CHANLIST=0 x00100000 / 20 - 0 x14/-DDEFAULT_CHANLIST=0 x00080000 / 1

51、9 - 0 x13/-DDEFAULT_CHANLIST=0 x00040000 / 18 - 0 x12/-DDEFAULT_CHANLIST=0 x00020000 / 17 - 0 x11/-DDEFAULT_CHANLIST=0 x00010000 / 16 - 0 x10/-DDEFAULT_CHANLIST=0 x00008000 / 15 - 0 x0F/-DDEFAULT_CHANLIST=0 x00004000 / 14 - 0 x0E/-DDEFAULT_CHANLIST=0 x00002000 / 13 - 0 x0D/-DDEFAULT_CHANLIST=0 x0000

52、1000 / 12 - 0 x0C/-DDEFAULT_CHANLIST=0 x00000800 / 11 - 0 x0B2021/7/265858如何使用ZStack網(wǎng)絡(luò)配置(1)1.PAN ID 和C2.網(wǎng)絡(luò)結(jié)構(gòu)(nwk_globals.h,nwk_globals.c) STACK_PROFILE_ID定義為NETWORK_SPECIFIC、 HOME_CONTROLS、BUILDING_AUTOMATION、GENERIC_STAR、GENERIC_TREE中的一個(gè),默認(rèn)為HOME_CONTROLS,并據(jù)此設(shè)置MAX_NODE_DEPTH、NWK_MODE等,具體如下: #define

53、STACK_PROFILE_ID HOME_CONTROLS #if ( STACK_PROFILE_ID = HOME_CONTROLS ) #define MAX_NODE_DEPTH 5 #define NWK_MODE NWK_MODE_MESH #define SECURITY_MODE SECURITY_RESIDENTIAL#if ( SECURE != 0 ) #define USE_NWK_SECURITY 1 / true or false #define SECURITY_LEVEL 5#else #define USE_NWK_SECURITY 0 / true or

54、false #define SECURITY_LEVEL 0#endif 網(wǎng)絡(luò)最大設(shè)備數(shù)設(shè)定: #if !defined( NWK_MAX_DEVICE_LIST ) #define NWK_MAX_DEVICE_LIST 20 / Maximum number of devices in the Assoc/Device list. #endif如何使用ZStack網(wǎng)絡(luò)配置(2)2021/7/2659592.網(wǎng)絡(luò)結(jié)構(gòu)(nwk_globals.h,nwk_glob路由器和終端設(shè)備數(shù)設(shè)定:#if defined ( RTR_NWK ) / change this if using a diffe

55、rent stack profile. / Cskip array uint16 *Cskip; #if ( STACK_PROFILE_ID = HOME_CONTROLS ) byte CskipRtrsMAX_NODE_DEPTH+1 = 6,6,6,6,6,0; byte CskipChldrnMAX_NODE_DEPTH+1 = 20,20,20,20,20,0; #elif ( STACK_PROFILE_ID = GENERIC_STAR ) byte CskipRtrsMAX_NODE_DEPTH+1 = 5,5,5,5,5,0; byte CskipChldrnMAX_NOD

56、E_DEPTH+1 = 5,5,5,5,5,0; #elif ( STACK_PROFILE_ID = NETWORK_SPECIFIC ) byte CskipRtrsMAX_NODE_DEPTH+1 = 5,5,5,5,5,0; byte CskipChldrnMAX_NODE_DEPTH+1 = 5,5,5,5,5,0; #endif / STACK_PROFILE_ID#endif / RTR_NWK其中CskipRtrs和CskipChldrn分別為每一級(jí)的最大路由器數(shù)和最大節(jié)點(diǎn)數(shù),前者是后者的子集。如何使用ZStack網(wǎng)絡(luò)配置(3)2021/7/266060路由器和終端設(shè)備數(shù)設(shè)定:

57、如何使用ZStack網(wǎng)絡(luò)配置(3PAN IDZigBee協(xié)議使用一個(gè)16位的個(gè)域網(wǎng)標(biāo)志符(PAN ID)來(lái)標(biāo)識(shí)一個(gè)網(wǎng)絡(luò)。ZStack允許用兩種方式配置PAN ID,當(dāng)ZDAPP_CONFIG_PAN_ID值不設(shè)置為0 xFFFF時(shí),那么設(shè)備建立或加入網(wǎng)絡(luò)的PAN ID由ZDAPP_CONFIG_PAN_ID指定;如果設(shè)置ZDAPP_CONFIG_PAN_ID為0 xFFFF,那么設(shè)備就將建立或加入一個(gè)“最優(yōu)”的網(wǎng)絡(luò)。PANID的出現(xiàn)一般是伴隨在,確定信道以后的。PANID其全稱是Personal Area Network ID,網(wǎng)絡(luò)的ID(即網(wǎng)絡(luò)標(biāo)識(shí)符),是針對(duì)一個(gè)或多個(gè)應(yīng)用的網(wǎng)絡(luò),用于區(qū)分不

58、同的ZigBee網(wǎng)絡(luò),一般是mesh或者cluster tree兩種拓?fù)浣Y(jié)構(gòu)之一。所有節(jié)點(diǎn)的panID唯一,一個(gè)網(wǎng)絡(luò)只有一個(gè)PANID,它是由pan協(xié)調(diào)器生成的,PANID是可選配置項(xiàng),用來(lái)控制 ZigBee路由器和終端節(jié)點(diǎn)要加入那個(gè)網(wǎng)絡(luò)。文件f8wConfg.cfg中的 ZDO_CONFIG_PAN_ID 參數(shù)可以設(shè)置為一個(gè) 00 x3FFF 之間的一個(gè)值。協(xié)調(diào)器使用這個(gè)值,作為它要啟動(dòng)的網(wǎng)絡(luò)的 PAN ID。而對(duì)于路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)來(lái)說(shuō)只要加入一個(gè)已經(jīng)用這個(gè)參數(shù)配置了PAN ID的網(wǎng)絡(luò)。如果要關(guān)閉這個(gè)功能,只要將這個(gè)參數(shù)設(shè)置為0 xFFFF。 要更進(jìn)一步控制加入過(guò)程,需要修改 ZDApp

59、.c 文件中的ZDO_NetworkDiscoveryConfirmCB 函數(shù)。當(dāng)然,如果ZDAPP_CONFIG_PAN_ID被定義為0 xFFFF,那么協(xié)調(diào)器將根據(jù)自身的IEEE地址建立一個(gè)隨機(jī)的PANID(00 x3FFF)。2021/7/266161PAN IDZigBee協(xié)議使用一個(gè)16位的個(gè)域網(wǎng)標(biāo)志符(PZ-Stack協(xié)議棧工作流程Z-Stack采用操作系統(tǒng)的思想來(lái)構(gòu)建,采用事件輪循機(jī)制,當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式,當(dāng)事件發(fā)生時(shí),喚醒系統(tǒng),開(kāi)始進(jìn)入中斷處理事件,結(jié)束后繼續(xù)進(jìn)入低功耗模式。如果同時(shí)有幾個(gè)事件發(fā)生,判斷優(yōu)先級(jí),逐次處理事件。整個(gè)Z-stack的主要工作流程,大

60、致分為系統(tǒng)啟動(dòng),驅(qū)動(dòng)初始化,OSAL初始化和啟動(dòng),進(jìn)入任務(wù)輪循幾個(gè)階段。2021/7/266262Z-Stack協(xié)議棧工作流程Z-Stack采用操作系統(tǒng)的思想Z-Stack系統(tǒng)運(yùn)行流程圖2021/7/266363Z-Stack系統(tǒng)運(yùn)行流程圖2021/7/266363主函數(shù)例子(即啟動(dòng)程序)ZSEG int main( void ) osal_int_disable( INTS_ALL ); / 關(guān)閉中斷 HAL_BOARD_INIT(); / 初始化HAL zmain_vdd_check() ; /電壓檢測(cè) zmain_ram_init(); / 初始化stack存儲(chǔ)區(qū) InitBoard(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論