• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

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

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

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

      1 硬件設計

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

      1.1 nRF24L01射頻模塊

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

      圖1 nRF24L01及外部接口

      1.2 微控制器模塊

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

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

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

      圖2 接口電路原理圖

      2 軟件設計

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

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

      2.1 初始化操作

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

      圖3 nRF24L01初始化操作流程圖

      2.2 配置發(fā)送模式

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

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

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

      }

      2.3 配置接收模式

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

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

      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ā)射達到最大復發(fā)次數(shù)

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

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

      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);//清除寄存器標志

      }

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

      }}

      3 分析驗證

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

      表2 幾種無線方案對比分析

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

      4 結束語

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

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

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

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

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

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

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

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

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

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

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

      猜你喜歡
      管腳低功耗功耗
      一種高速低功耗比較器設計
      揭開GPU功耗的面紗
      個人電腦(2016年12期)2017-02-13 15:24:40
      基于圖像處理的異型電子元器件管腳偏移誤差檢測方法研究
      數(shù)字電路功耗的分析及優(yōu)化
      電子制作(2016年19期)2016-08-24 07:49:54
      CMOS數(shù)字IC管腳電容的估算與測量
      “功耗”說了算 MCU Cortex-M系列占優(yōu)
      電子世界(2015年22期)2015-12-29 02:49:44
      IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
      電源技術(2015年11期)2015-08-22 08:51:02
      ADI推出三款超低功耗多通道ADC
      IDT針對下一代無線通信推出低功耗IQ調制器
      低功耗加權cache替換策略
      仙游县| 睢宁县| 鹤峰县| 玉屏| 井冈山市| 沙坪坝区| 新丰县| 柞水县| 都江堰市| 上虞市| 额敏县| 宜昌市| 大同市| 丰顺县| 凤阳县| 华容县| 徐州市| 石城县| 惠来县| 绩溪县| 亳州市| 榕江县| 万全县| 集贤县| 疏附县| 富源县| 革吉县| 如皋市| 峨边| 木里| 石城县| 杭州市| 嘉峪关市| 龙泉市| 神池县| 亚东县| 遂溪县| 瓦房店市| 施甸县| 巴中市| 盘锦市|