亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        CC2530芯片無(wú)線收發(fā)深入解析

        2021-07-28 12:51:16劉連鋼
        科技資訊 2021年8期

        劉連鋼

        DOI:10.16661/j.cnki.1672-3791.2010-5042-0258

        摘? 要:在智能家居和智能農(nóng)業(yè)系統(tǒng)的感知層開(kāi)發(fā)中主要運(yùn)用Zigbee技術(shù),實(shí)現(xiàn)Zigbee技術(shù)的硬件主要為具有射頻收發(fā)功能的CC2530芯片。該文通過(guò)配置CC2530芯片的寄存器,使芯片實(shí)現(xiàn)無(wú)線收發(fā)的功能;通過(guò)使用寄存器的方式,編寫(xiě)無(wú)線發(fā)送函數(shù)和無(wú)線接收函數(shù),實(shí)現(xiàn)基于Basic RF的數(shù)據(jù)傳輸。深入研究CC2530芯片的無(wú)線收發(fā)機(jī)制,從而掌握無(wú)線收發(fā)原理,便于更好地利用芯片,增強(qiáng)物聯(lián)網(wǎng)感知層開(kāi)發(fā)的能力。

        關(guān)鍵詞:CC2530? 芯片寄存器? 中斷函數(shù)? 無(wú)線收發(fā)

        中圖分類號(hào):TN92? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3791(2021)03(b)-0023-05

        Depth Analysis of CC2530 Chip Wireless Transceiver

        LIU Liangang

        (Dalian Vocational & Technical College, Dalian, Liaoning Province, 116035? China)

        Abstract: In the development of the sensing layer of smart home and intelligent agriculture system, ZigBee technology is mainly used. The hardware of ZigBee technology is CC2530 chip with RF transceiver function. In this paper, through the configuration of CC2530 chip register, the chip realizes the wireless transceiver function; through the use of registers, the wireless sending function and wireless receiving function are written to realize the data transmission based on basic RF. In depth study of CC2530 chip wireless transceiver mechanism, so as to master the wireless transceiver principle, facilitate better use of the chip, enhance the ability to develop the perception layer of the Internet of things.

        Key Words: CC2530; Chip register; Interrupt function; Wireless transceiver

        伴隨著智能家居、智能農(nóng)業(yè)等發(fā)展,Zigbee技術(shù)的應(yīng)用已非常廣泛,在使用Zigbee技術(shù)組建無(wú)線傳感網(wǎng)時(shí),經(jīng)常會(huì)用到芯片CC2530芯片。在使用CC2530芯片進(jìn)行無(wú)線網(wǎng)絡(luò)組建時(shí),肯定會(huì)用到無(wú)線收發(fā)這一功能。開(kāi)發(fā)者一般都會(huì)到官網(wǎng)下載工程模板,在開(kāi)發(fā)時(shí)調(diào)用給定的接收、發(fā)送函數(shù)完成收發(fā)功能。該文抽絲剝繭,通過(guò)寄存器配置的方式實(shí)現(xiàn)無(wú)線收發(fā)功能,幫助讀者深入了解CC2530無(wú)線收發(fā)的原理。

        通過(guò)配置寄存器的方式實(shí)現(xiàn)無(wú)線收發(fā)功能,要完成這樣幾項(xiàng)工作:射頻相關(guān)資源初始化、編寫(xiě)射頻發(fā)送函數(shù)、編寫(xiě)射頻接收函數(shù)、編寫(xiě)射頻接收中斷服務(wù)子函數(shù)。完成了上述幾項(xiàng)基本工作,就可以根據(jù)實(shí)際的業(yè)務(wù)邏輯進(jìn)行程序的開(kāi)發(fā)。上述幾項(xiàng)工作都涉及到多個(gè)寄存器的配置,下面該文就針對(duì)上述幾項(xiàng)工作進(jìn)行詳細(xì)的闡述,使讀者深入地了解CC2530芯片射頻工作的原理。

        1? 射頻相關(guān)資源初始化

        該項(xiàng)工作涉及到的寄存器比較多,該文通過(guò)表1歸納出需要配置的寄存器,并對(duì)各寄存器進(jìn)行了功能的描述,具體見(jiàn)表1。

        通過(guò)表1歸納出的寄存器,相關(guān)人員可以看到,在射頻相關(guān)資源初始化時(shí),相關(guān)人員需要完成的工作有以下幾個(gè)方面。

        (1)是否由無(wú)線電自動(dòng)處理FCS字節(jié)數(shù)據(jù)。即是否由硬件完成幀校驗(yàn)序列。涉及寄存器FRMCTRL0。

        (2)設(shè)置獲得最佳性能的值。即必須把寄存器TXFILTCFG、AGCCTRL1、FSCAL1從默認(rèn)值更新到獲得最佳性能的值。

        (3)中斷設(shè)置。無(wú)線電與CPU的兩個(gè)中斷向量有關(guān),它們是RFERR中斷(中斷0)和RF中斷(中斷12),該文主要是完成數(shù)據(jù)的發(fā)送和接收,所以使用RF普通操作的中斷,用到的寄存器為IEN2。RF內(nèi)核產(chǎn)生的中斷是RF內(nèi)核中若干源的組合,每個(gè)單獨(dú)的源在RF內(nèi)核中有自己的使能和中斷標(biāo)志,該文用到的中斷屏蔽寄存器為RFIRQM0,標(biāo)志位可在寄存器RFIRQF0中找到(后面用到)。

        (4)設(shè)置射頻發(fā)送參數(shù)。寄存器FREQCTRL設(shè)置無(wú)線通訊的物理信道,IEEE802.15.4-2006指定16個(gè)通道,它們位于2.4 GHz頻段之內(nèi)。步長(zhǎng)為5 MHz,編號(hào)為11~26。通道k的RF頻率遵循公式fc=2405+5(k-11)[MHz]k∈[11,26],對(duì)于操作在通道k,F(xiàn)REQCTRL.FREQ寄存器設(shè)置為FREQCTRL.FREQ=11+5(k–11)。

        通過(guò)配置PANID和SHORT_ADDR,完成網(wǎng)絡(luò)標(biāo)識(shí)和模塊短地址的設(shè)置。

        (5)RF命令選通。寫(xiě)入該寄存器的數(shù)據(jù)被寫(xiě)到CSP指令存儲(chǔ)器,命令選通/CSMA-CA處理器(CSP)提供控制CPU和無(wú)線電之間的通信。

        射頻相關(guān)資源初始化使用到的寄存器的具體配置值和作用,具體見(jiàn)表2。

        2? 編寫(xiě)射頻發(fā)送函數(shù)

        射頻發(fā)送涉及到的寄存器以及寄存器的功能,具體見(jiàn)表3。

        無(wú)線電RAM為發(fā)送數(shù)據(jù)有一個(gè)FIFO(TXFIFO),為接收數(shù)據(jù)有一個(gè)FIFO(RXFIFO)。這兩個(gè)FIFO都是128字節(jié)長(zhǎng)。可以通過(guò)SFR寄存器RFD(0xD9)訪問(wèn)TXFIFO和RXFIFO。當(dāng)寫(xiě)入RFD寄存器時(shí),數(shù)據(jù)被寫(xiě)入到TXFIFO。當(dāng)讀取RFD寄存器時(shí),數(shù)據(jù)從RXFIFO中讀出。射頻發(fā)送具體實(shí)現(xiàn)步驟可參見(jiàn)下面的函數(shù),函數(shù)參數(shù)為發(fā)送字符數(shù)組名。

        void RFSend(char *RFsend_str )

        {

        while (FSMSTAT1 & 0x22);//等待射頻發(fā)送就緒

        RFST = 0xEE;//清除 TXFIFO 緩沖區(qū)

        RFIRQF1 &= ~0x02;// 清除發(fā)送完成標(biāo)志位

        for(chari=0;i< RFsend_str [0]-1;i++)/*第一個(gè)字節(jié)為幀長(zhǎng)度域,校驗(yàn)字節(jié)由硬件產(chǎn)生并附加到發(fā)送幀*/

        {

        RFD= RFsend_str [i];

        }? //利用循環(huán)把需要發(fā)送的數(shù)據(jù)全部壓到發(fā)送緩沖區(qū)里面

        RFST = 0xE9; /*校準(zhǔn)之后使能 TX,即該寄存器賦值為0xE9后,發(fā)送緩沖區(qū)的數(shù)據(jù)

        就被發(fā)送出去*/

        while(?。≧FIRQF1 & 0x02) );//等待發(fā)送完成

        RFIRQF1 = ~0x02;// 清除發(fā)送完成標(biāo)志位

        }

        注意:幀長(zhǎng)度域定義了MPDU中的字節(jié)數(shù),長(zhǎng)度域的值不包括長(zhǎng)度域本身。但是它包括幀檢查序列(FCS),即使這是由硬件自動(dòng)插入的。

        3? 編寫(xiě)射頻接收函數(shù)

        無(wú)線接收函數(shù)的功能是將接收到的數(shù)據(jù)存放到指定的數(shù)組中,涉及到的寄存器見(jiàn)表4。

        無(wú)線接收函數(shù)功能相對(duì)簡(jiǎn)單,即通過(guò)寄存器RFIRQM0和IEN2將收到一個(gè)完整的幀的中斷禁用。然后讀取RFD寄存器,數(shù)據(jù)從RXFIFO中讀出,并存儲(chǔ)到指定的數(shù)組中,數(shù)據(jù)讀取完成后,使能收到一個(gè)完整的幀的中斷。具體代碼如下。

        void RFR evstr(char*RFstr_recive)

        {

        char len=0;

        RFIRQM0 &= ~0x40;

        IEN2 &= ~0x01;

        len=RFD;? //讀第一個(gè)字節(jié)判斷這一串?dāng)?shù)據(jù)后面有幾個(gè)字節(jié)

        *RFstr_recive=len;

        for(int i=1;i

        {

        *(RFstr_recive+i)=RFD;

        Delay(1);? ? //每次讀取加一定延時(shí)

        }

        RFIRQM0 |= 0x40;

        IEN2 |= 0x01;

        }

        4? 編寫(xiě)射頻接收中斷服務(wù)子函數(shù)

        利用中斷完成數(shù)據(jù)的接收,涉及到的寄存器見(jiàn)表5。

        在中斷服務(wù)子程序中關(guān)閉總中斷后,判斷是否產(chǎn)生的是接收到一個(gè)完整的幀的中斷,如果是調(diào)用上述接收函數(shù)完成數(shù)據(jù)的接收,然后清除中斷標(biāo)志位。最后重設(shè)RFST寄存器,打開(kāi)總中斷即可。

        #pragma vector=RF_VECTOR

        _interrupt void RF_IRQ(void)

        {

        EA=0;

        if( RFIRQF0 & 0x40 )

        {

        RFRevstr (pRxData);

        S1CON= 0;? ? ? ? ? ?// Clear general RF interrupt flag

        RFIRQF0&= ~0x40; ;? // Clear RXPKTDONE interrupt

        }

        RFST = 0xED;? ?//清除 RXFIFO 緩沖區(qū)并復(fù)位解調(diào)器。

        RFST = 0xE3; // RX使能并校準(zhǔn)頻率合成器

        EA=1;

        }

        通過(guò)上述的講解,可以使讀者深入地理解CC2530芯片無(wú)線傳輸。讀者可在完成射頻相關(guān)資源初始化、射頻發(fā)送函數(shù)、射頻接收函數(shù)、射頻接收中斷服務(wù)子函數(shù)后,結(jié)合實(shí)際的業(yè)務(wù)邏輯完成項(xiàng)目的開(kāi)發(fā),也可以該文為基礎(chǔ)更加深入地學(xué)習(xí)CC2530芯片。在進(jìn)行無(wú)線傳輸開(kāi)發(fā)時(shí)還應(yīng)牢記兩點(diǎn):一是在RF收發(fā)器操作時(shí),必須設(shè)置系統(tǒng)時(shí)鐘源為32 MHz晶振,雖然16 MHz RC振蕩器功耗少于晶振,但是不像晶振那么精確;二是無(wú)線收發(fā)的數(shù)據(jù)必須符合IEEE 802.15.4幀格式,否則無(wú)法完成數(shù)據(jù)傳輸。

        參考文獻(xiàn)

        [1] 汪振中.基于CC2530芯片的ZIGBEE無(wú)線數(shù)據(jù)傳輸模塊設(shè)計(jì)[J].中國(guó)設(shè)備工程,2017(14):133-134.

        [2] 嚴(yán)林波.基于ZigBee技術(shù)的無(wú)線通信模塊研究[J].科學(xué)技術(shù)創(chuàng)新,2020(29):88-89.

        [3] 戚澤峰.基于CC2530的ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì)分析[J].中國(guó)新通信,2020(14):41.

        [4] 徐志勇.基于CC2530的ZigBeeRFID讀寫(xiě)應(yīng)用研究[J].科技資訊,2020(14):11-13.

        [5] 吳攀,曹珍貫.基于CC2530的大學(xué)圖書(shū)館和機(jī)電一體化監(jiān)控系統(tǒng)的設(shè)計(jì)[J].科技資訊,2017(31):17,19.

        [6] 廖兵,周妮,石洋,等.基于物聯(lián)網(wǎng)技術(shù)的農(nóng)產(chǎn)品溯源關(guān)鍵問(wèn)題研究與設(shè)計(jì)[J].科技創(chuàng)新導(dǎo)報(bào),2020(3):56-57.

        [7] 黃冰霜,胡微微.基于大數(shù)據(jù)下物聯(lián)網(wǎng)對(duì)武術(shù)訓(xùn)練的應(yīng)用[J].當(dāng)代體育科技,2016(17):43-44.

        [8] 王超.基于ZigBee技術(shù)的機(jī)房溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)[D].大連理工大學(xué),2019.

        [9] 李海鋒.基于ZigBee技術(shù)的魚(yú)塘水質(zhì)監(jiān)測(cè)系統(tǒng)研究[D].西安科技大學(xué),2019.

        日韩人妻无码一区二区三区久久| 精品女同一区二区三区免费播放| 国产激情一区二区三区成人| 国产精品天干天干综合网| 97伦伦午夜电影理伦片| 韩国精品一区二区三区| 久久国产精品免费久久久| 亚洲最全av一区二区| 少妇饥渴偷公乱a级无码| 国产成人精品自在线无码| 一本色道久久综合亚州精品| 亚洲午夜狼人综合影院| 老妇女性较大毛片| 亚洲国产美女在线观看| 伊人久久大香线蕉综合av| 少妇高潮太爽了在线看| 特级做a爰片毛片免费看108| 欧美伊人亚洲伊人色综| 免费在线观看草逼视频| 国产精品久久国产精品99 gif| 国产乱子乱人伦电影在线观看| avtt一区| 亚州无吗一区二区三区| 国产av无码专区亚洲av蜜芽| 国产高中生在线| 在线免费午夜视频一区二区| 久久精品国产成人午夜福利| 国产成年女人特黄特色毛片免| 男性一插就想射是因为啥| 在线观看一区二区蜜桃| av鲁丝一区鲁丝二区鲁丝三区| 老熟妇仑乱一区二区视頻| 一区二区日本影院在线观看| 亚洲国产av自拍一区| 久久综合九色综合网站| 精品三级久久久久久久| 亚洲av高清一区二区三区| 丁字裤少妇露黑毛| 亚洲熟妇AV一区二区三区宅男| 亚洲av高清一区三区三区| 国模冰莲自慰肥美胞极品人体图 |