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

        ?

        基于nRF24L01和STM32L152RD超低功耗無(wú)線通信系統(tǒng)

        2013-01-31 05:23:28胡文東徐文濤
        電視技術(shù) 2013年17期
        關(guān)鍵詞:管腳低功耗功耗

        叢 林,楊 凱,胡文東,徐文濤,黃 燁

        (1.空軍工程大學(xué) 航空航天工程學(xué)院,陜西 西安710038;2.第四軍醫(yī)大學(xué)航 空航天醫(yī)學(xué)系,陜西 西安710032)

        隨著科學(xué)技術(shù)水平的不斷提高,傳統(tǒng)的有線通信因自身的局限性已越來(lái)越不能滿足人們的需要,無(wú)線通信技術(shù)得到了快速發(fā)展。如今出現(xiàn)了種類眾多的無(wú)線通信技術(shù),目前比較熱門的有WiFi、藍(lán)牙、UWB、ZigBee、Nordic nRF以及TI公司的SimpliciTI等。不同無(wú)線通信技術(shù)在成本、功耗、傳輸速率、使用頻段、功能方面有很大區(qū)別,針對(duì)不同的需求要選擇適合的無(wú)線技術(shù)。

        針對(duì)便攜式設(shè)備的低成本、低功耗要求,藍(lán)牙和WiFi功耗相對(duì)較大,UWB規(guī)范尚不統(tǒng)一且芯片價(jià)格高,Zigbee的傳輸速率受限僅250 kbit/s,SimpliciTI則受TI公司硬件平臺(tái)限制。綜合考慮各個(gè)因素,本系統(tǒng)采用了Nordic Semiconductor公司2.4 GHz低成本高性能的nRF24L01無(wú)線射頻芯片,由低功耗ARM系列STM32L152RD微處理器控制,實(shí)現(xiàn)短距離無(wú)線數(shù)據(jù)通信。nRF24L01不僅可以提供一個(gè)真正的超低功耗解決方案,而且也擁有優(yōu)良的共存性,其載波監(jiān)測(cè)功能保證了在WLAN干擾下的可靠通信。高速的頻率切換時(shí)間減少了與藍(lán)牙等跳頻系統(tǒng)出現(xiàn)互相干擾的可能。

        1 硬件設(shè)計(jì)

        系統(tǒng)的設(shè)計(jì)思路是在滿足高速傳輸數(shù)據(jù)的同時(shí)盡可能的降低功耗,故在MCU與無(wú)線芯片的選型上側(cè)重于性能和功耗的平衡。系統(tǒng)硬件部分采用模塊化的設(shè)計(jì)思想,主要由供電模塊,nRF24L01射頻模塊和微控制器模塊組成。其中供電模塊根據(jù)實(shí)際需求方案很多,本文就不詳細(xì)敘述了。

        1.1 nRF24L01射頻模塊

        nRF24L01是由Nordic Semiconductor公司出品的GFSK單片式收發(fā)芯片[1],工作于2.4~2.5 GHz的世界通用(ISM)頻段,傳輸速率可達(dá)2 Mbit/s。芯片包括頻率發(fā)生器、功率放大器、增強(qiáng)型SchockBurstTM模式控制器、晶振和調(diào)制解調(diào)器。發(fā)射功率和頻道選擇等工作參數(shù)可以通過(guò)SPI接口進(jìn)行設(shè)置。增強(qiáng)型ShockBurstTM功能使軟件設(shè)計(jì)更為簡(jiǎn)單,集成了雙向通信所需要的鏈路層,而通常這些功能需要一個(gè)高速的MCU和大空間的存儲(chǔ)器和高的電源消耗來(lái)實(shí)現(xiàn)。nRF24L01及外部接口如圖1所示。

        圖1 nRF24L01及外部接口

        1.2 微控制器模塊

        STM32L152RD基于高品質(zhì)的ARM Cortex-M3內(nèi)核,融合了高性能和超低功耗的特性,內(nèi)置高速存儲(chǔ)器,工作頻率為32 MHz。它采用了優(yōu)化的節(jié)能架構(gòu)與0.13μm的STMicroelectronics超低漏電生產(chǎn)工藝,此外,為了實(shí)現(xiàn)超低功耗,STM32L152RD還劃分了6種工作模式,使其在任何設(shè)定時(shí)間內(nèi)都能以最低的功耗完成任務(wù)。STM32控制器的SPI[2](串行外設(shè)接口)允許芯片與外部設(shè)備以全雙工或者半雙工、同步、串行方式通信,可用于多種用途,包括使用一條雙向數(shù)據(jù)線的雙線單工同步傳輸,還可使用CRC校驗(yàn)的可靠通信。

        通常SPI通過(guò)4個(gè)管腳與外部器件相連。MISO:主設(shè)備輸入/從設(shè)備輸出管腳,該管腳在從模式下發(fā)送數(shù)據(jù),在主模式下接收數(shù)據(jù);MOSI:主設(shè)備輸出/從設(shè)備輸入管腳,該管腳在主模式下發(fā)送數(shù)據(jù),在從模式下接收數(shù)據(jù);SCK:串口時(shí)鐘,作為主設(shè)備的輸出,從設(shè)備的輸入;NSS:從設(shè)備選擇。這是一個(gè)可選的管腳,用來(lái)選擇主/從設(shè)備[3]。

        系統(tǒng)除了使用MCU這4個(gè)管腳與無(wú)線模塊相連,還通過(guò)PA0管腳控制nRF24L01的片選端CE,PB0管腳控制中斷響應(yīng)。圖2是微控制器模塊STM32L152RD與nRF24L01的接口電路原理圖。

        圖2 接口電路原理圖

        2 軟件設(shè)計(jì)

        nRF24L01無(wú)線射頻芯片內(nèi)置的鏈路層使軟件設(shè)計(jì)更為簡(jiǎn)單,系統(tǒng)進(jìn)行無(wú)線通信無(wú)須配置復(fù)雜的通信協(xié)議,只需編程配置好射頻芯片與MCU的SPI通信接口,然后在發(fā)送時(shí)將有效數(shù)據(jù)放入TX緩沖區(qū),芯片將把地址信息和TX緩沖區(qū)的有效數(shù)據(jù)與內(nèi)部自行產(chǎn)生的數(shù)據(jù)頭、標(biāo)志位和CRC校驗(yàn)碼等信息結(jié)合起來(lái)進(jìn)行數(shù)據(jù)打包并發(fā)送出去。表1給出增強(qiáng)型的ShockBurstTM模式的數(shù)據(jù)包[4]。整個(gè)系統(tǒng)的軟件設(shè)計(jì)部分分為初始化操作、配置發(fā)送模式、配置接收模式、配置中斷4部分。

        表1 增強(qiáng)型的ShockBurstTM模式的數(shù)據(jù)包 byte

        2.1 初始化操作

        無(wú)線射頻芯片nRF24L01要進(jìn)行無(wú)線通信,首先要對(duì)MCU的時(shí)鐘,MCU的SPI通信口和nRF24L01進(jìn)行初始化操作[5]。MCU時(shí)鐘和SPI接口初始化部分STM32L152RD的芯片資料[6]很詳細(xì),在此就不詳細(xì)敘述了。nRF24L01的初始化主要包括地址、應(yīng)答方式、工作頻率、數(shù)據(jù)長(zhǎng)度、發(fā)射速率、中斷響應(yīng)等參數(shù)的配置。nRF24L01初始化操作[7]的流程圖如圖3所示。

        圖3 nRF24L01初始化操作流程圖

        2.2 配置發(fā)送模式

        nRF24L01配置為增強(qiáng)型的ShockBurstTM發(fā)送模式[8],當(dāng)MCU有數(shù)據(jù)要發(fā)送nRF24L01就會(huì)啟動(dòng)Shock-BurstTM模式,自動(dòng)生成數(shù)據(jù)頭、標(biāo)志位和CRC校驗(yàn)碼并發(fā)送數(shù)據(jù)。數(shù)據(jù)發(fā)送完畢后將轉(zhuǎn)到接收模式并等待接收端的ACK應(yīng)答信號(hào)。如果沒有收到ACK應(yīng)答信號(hào),則認(rèn)為數(shù)據(jù)丟失,nRF24L01將循環(huán)重發(fā)數(shù)據(jù)包,直到收到ACK或重發(fā)次數(shù)超過(guò)重發(fā)寄存器中設(shè)置的值為止。如果數(shù)據(jù)重發(fā)次數(shù)超過(guò)了初始設(shè)定值,則會(huì)產(chǎn)生數(shù)據(jù)溢出導(dǎo)致IRQ中斷。當(dāng)收到ACK應(yīng)答信號(hào)時(shí),nRF24L01就認(rèn)為最后一包數(shù)據(jù)已經(jīng)發(fā)送成功,TX_FIFO寄存器中的數(shù)據(jù)被清除并產(chǎn)生IRQ中斷通知MCU。MCU根據(jù)任務(wù)需求控制nRF24L01進(jìn)入發(fā)送模式,接收模式或待機(jī)模式。發(fā)送模式流程如圖4所示。

        配置發(fā)送模式代碼如下:

        void nRF24L01_TxPacket(unsigned char*tx_buf)

        {

        NRF24L01_MODE_CE_0();

        SPI_Write_Buf(WRITE_REG1+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//寫入接收地址

        SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);//寫入//要發(fā)送的數(shù)據(jù)

        SPI_RW_Reg(WRITE_REG1+CONFIG,0x0e);//IRQ中斷,16位CRC

        NRF24L01_MODE_CE_1();//CE置1,激發(fā)增強(qiáng)型的ShockBurstTM發(fā)送模式

        圖4 發(fā)送模式流程圖

        Delay_us(20);//注意延遲值不能太低

        }

        2.3 配置接收模式

        在增強(qiáng)型的ShockBurstTM接收模式[9]下,nRF24L01可以接收6路不同地址相同頻率的數(shù)據(jù),每個(gè)數(shù)據(jù)通道擁有自己的地址,通過(guò)寄存器RX_ADDR_PX來(lái)配置。nRF24L01CE置高后130μs便自動(dòng)檢測(cè)空中信息,當(dāng)有通道接收到有效的地址和數(shù)據(jù)時(shí),進(jìn)行CRC校驗(yàn),正確則記錄地址并以此為目標(biāo)地址發(fā)送應(yīng)答信號(hào)ACK同時(shí)自動(dòng)去除數(shù)據(jù)頭,標(biāo)志位和校驗(yàn)碼并將有效數(shù)據(jù)寫入RX_FIFO寄存器,芯片通過(guò)產(chǎn)生IRQ中斷通知MCU接收完畢,隨后MCU可從RX_FIFO寄存器讀出有效數(shù)據(jù)。如果CRC校驗(yàn)錯(cuò)誤則丟棄數(shù)據(jù)包重新檢測(cè)空中信息。當(dāng)成功接收數(shù)據(jù)時(shí),MCU可根據(jù)任務(wù)需求控制nRF24L01進(jìn)入發(fā)送模式,接收模式或待機(jī)模式。接收模式流程如圖5所示。

        配置接收模式代碼如下:

        void nRF24L01_SetRX_Mode(void)

        {

        NRF24L01_MODE_CE_0();

        SPI_RW_Reg(0xe2,0); //清接收FIFO

        SPI_RW_Reg(WRITE_REG1+STATUS,0XFF);//清狀態(tài)寄存器

        SPI_RW_Reg(WRITE_REG1+CONFIG,0x0F);//IRQ中斷,16位CRC

        NRF24L01_MODE_CE_1();

        }

        圖5 接收模式流程圖

        2.4 配置中斷

        中斷機(jī)制是單片機(jī)的基礎(chǔ)設(shè)施之一,它起著通信網(wǎng)絡(luò)的作用,以協(xié)調(diào)系統(tǒng)對(duì)各種內(nèi)外部時(shí)間的響應(yīng)和處理。通過(guò)配置外部中斷,可以判斷數(shù)據(jù)發(fā)送和接收的情況,以便對(duì)相應(yīng)事件做出處理。配置中斷代碼如下:

        void NRF24L01_INT_IRQHandler(void)

        {

        uint8_t status;status=0;

        if(EXTI_GetITStatus(NRF24L01_IRQ_EXTI_LINE)!=RESET)//判斷是否產(chǎn)生了EXTI2中斷

        {

        if(GPIO_ReadInputDataBit(NRF24L01_IRQ_GPIO_PORT,NRF24L01_IRQ_PIN)==0)//判斷是否是PA2線變低

        status=SPI_Read(READ_REG1+STATUS);//讀狀態(tài)寄器

        if(status &0x40) //如果接收到數(shù)據(jù)

        {

        SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);//將數(shù)據(jù)從RX緩沖區(qū)讀出

        SPI_RW_Reg(0xe2,0); //清除發(fā)送緩沖區(qū)

        }

        else if((status &0x10)>0)//發(fā)射達(dá)到最大復(fù)發(fā)次數(shù)

        SPI_RW_Reg(0xe1,0); //清除發(fā)送緩沖區(qū)

        else if((status &0x20)>0)//發(fā)射后收到應(yīng)答

        SPI_RW_Reg(0xe1,0);

        SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);//將數(shù)據(jù)從RX緩沖區(qū)讀出

        SPI_RW_Reg(WRITE_REG1+STATUS,0xFF);//清除寄存器標(biāo)志

        }

        EXTI_ClearITPendingBit(NRF24L01_IRQ_EXTI_LINE);//清除EXTI2上的中斷標(biāo)志

        }}

        3 分析驗(yàn)證

        為保證系統(tǒng)準(zhǔn)確有效,現(xiàn)將本文方案與目前已有的幾種無(wú)線通信系統(tǒng)方案進(jìn)行對(duì)比[9-10],其中系統(tǒng)綜合耗電的計(jì)算是通過(guò)無(wú)線芯片發(fā)射電流和接收電流的平均值與8 MHz工作時(shí)的MCU電流之和。對(duì)比分析如表2所示。

        表2 幾種無(wú)線方案對(duì)比分析

        表中系統(tǒng)綜合耗電的數(shù)據(jù)直觀地顯示出本文設(shè)計(jì)的系統(tǒng)功耗明顯低于其他的無(wú)線方案,更滿足便攜設(shè)備低功耗的需求。

        4 結(jié)束語(yǔ)

        提出了一種基于STM32L152RD微控制器和nRF24L01無(wú)線射頻芯片的超低功耗無(wú)線通信系統(tǒng)方案,并搭建了實(shí)際硬件系統(tǒng),實(shí)現(xiàn)了超低功耗下的高速近距離無(wú)線數(shù)據(jù)傳輸。無(wú)工作任務(wù)時(shí)nRF24L01可進(jìn)入掉電模式,STM32L152RD可進(jìn)入休眠模式,系統(tǒng)功耗更低,特別滿足便攜式設(shè)備功耗盡可能低的要求。系統(tǒng)硬件電路簡(jiǎn)單、成本低、傳輸速率快、可靠性好、具有良好的可擴(kuò)展性,適用于對(duì)功耗有較高要求的便攜設(shè)備無(wú)線通信。

        [1]Nordic Semiconductor ASA.nRF24L01_Product_Specification_v2.0[EB/OL].[2013-01-01].http://www.nordicsemi.no.

        [2]潘勇.短距離無(wú)線數(shù)據(jù)網(wǎng)絡(luò)的應(yīng)用研究無(wú)線數(shù)據(jù)網(wǎng)絡(luò)[D].天津:天津大學(xué),2010.

        [3]徐廣偉.RFID在煤礦系統(tǒng)中的應(yīng)用[D].成都:成都理工大學(xué),2010.

        [4]肖林榮,應(yīng)時(shí)彥,馬躍坤,等.2.4 GHz射頻收發(fā)芯片nRF24LE1及其應(yīng)用[J].信息技術(shù),2009(12):13-16.

        [5]徐愛鈞,彭秀華.單片機(jī)高級(jí)語(yǔ)言C51Windows環(huán)境編程與應(yīng)用[M].北京:電子工業(yè)出版社,2008.

        [6]STMicroelectronics.STM32L152RD Datasheet[EB/OL].[2013-01-01].http://www.st.com.

        [7]隋紹勇,鄭維廣,張振邦.基于STM32F103和nRF24L01的近程無(wú)線數(shù)傳系統(tǒng)設(shè)計(jì)[J].電子元器件應(yīng)用,2010(12):15-17.

        [8]張金昌,李博,馮小琴.nRF24L01在智能電子導(dǎo)游系統(tǒng)中的應(yīng)用[J].數(shù)字通信,2012(4):88-90.

        [9]朱慧彥,林林.基于MCU和nRF24L01的無(wú)線通信系統(tǒng)設(shè)計(jì)[J].電子科技,2012(4):81-83.

        [10]時(shí)志云,王代華,張志杰.基于nRF24L01和PICl6F877的無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)[J].電子測(cè)量,2008(1):60-63.

        猜你喜歡
        管腳低功耗功耗
        一種高速低功耗比較器設(shè)計(jì)
        揭開GPU功耗的面紗
        基于圖像處理的異型電子元器件管腳偏移誤差檢測(cè)方法研究
        數(shù)字電路功耗的分析及優(yōu)化
        電子制作(2016年19期)2016-08-24 07:49:54
        CMOS數(shù)字IC管腳電容的估算與測(cè)量
        “功耗”說(shuō)了算 MCU Cortex-M系列占優(yōu)
        電子世界(2015年22期)2015-12-29 02:49:44
        IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
        ADI推出三款超低功耗多通道ADC
        IDT針對(duì)下一代無(wú)線通信推出低功耗IQ調(diào)制器
        低功耗加權(quán)cache替換策略
        精品国产亚洲一区二区三区演员表 | 亚洲 高清 成人 动漫| 国产精品一区2区三区| 91青青草手机在线视频| 在线一区二区三区国产精品| 欧美人和黑人牲交网站上线| 国产精品麻豆成人AV电影艾秋| 精品视频一区二区杨幂| 国产自在自线午夜精品视频在| 国产精品女同二区五区九区 | 久久香蕉国产线熟妇人妻| 美腿丝袜诱惑一区二区| 国产精品无码无片在线观看3d| 久久精品国产亚洲av成人| 产精品无码久久_亚洲国产精| 粉嫩人妻91精品视色在线看| 国产乱子轮xxx农村| 一本一本久久a久久精品综合| 中国免费一级毛片| 久久久精品国产免费看| 国产精品无码aⅴ嫩草| 丰满岳乱妇在线观看中字无码| 国产精品一区二区三区色| 亚洲毛片在线免费视频| 国产激情久久久久影院老熟女| 婷婷亚洲国产成人精品性色| 日韩va高清免费视频| 日韩夜夜高潮夜夜爽无码| 国产女主播一区二区三区在线观看| 精品亚洲一区二区区别在线观看| 无码乱人伦一区二区亚洲一| 亚洲精品中国国产嫩草影院美女| 亚洲精品在线一区二区三区| 18禁在线永久免费观看| 亚洲精品成人网站在线观看| 超清无码AV丝袜片在线观看| 国产91久久麻豆黄片| 欧美一区二区三区红桃小说| 少妇的诱惑免费在线观看| 国产精品一区二区三区av在线| 精品国内在视频线2019|