近年來, 隨著無線通信技術的發展, 無線通訊設備的集成化越來越高。本文介紹了一種選用高性能、低功耗的32位微處理器STM32F103和射頻收發芯片nRF24L01來設計短距離無線數據傳輸系統的具體方法。
1 系統設計
短距離無線數傳系統主要由電源管理器AMC7635、微控制器STM32F103、射頻收發器nrf24l01三部分組成。下面分別介紹其關鍵電路。
1.1 電源電路
本設計的電源采用3.7V鋰電池供電, 然后經低壓降電源管理芯片AMC7635, 以產生3.0V的電壓來為STM32F103和nRF24L01供電, 圖1所示是本系統的供電電路。
圖1 系統供電電路
1.2 微控制器電路
微控制器選用帶ARM Cortex -M3 內核的STM32F103。STM32F103控制器具有高性能、低功耗、低電壓等特性, 同時具有高集成度和易于開發的優勢。圖2所示是該系統中的微控制器電路。控制器與射頻收發器nRF24L01的接口采用SPI口來實現, 即圖2 中SPICS、MOSI、MISO和SCK四條信號線和CE和INT0兩條信號線。另外,該控制器還可以擴展一路主板RS232 口和8 路GPIO口輸出。
圖2 微控制器電路
1.3 射頻收發電路
nRF24L01可工作于2.4 GHz~2.5 GHz ISM 頻段, 該收發器內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊, 是一款集成度較高的無線收發器。nRF24L01的外部電路比較簡單, 而且融合了增強型ShockBurst技術, 其中輸出功率和通信頻道可通過程序進行配置。同時,該芯片的功耗極低, 在以-6 dBm的功率發射時,其工作電流只有9 mA;而在接收時, 工作電流只有12.3 mA。nRF24L01的控制電路可與STM32控制器的SPI口和GPIO口相連接。圖3所示是該芯片組成的射頻收發電路原理圖。
圖3 射頻收發電路
2 系統程序設計
本系統可在STM32F103上移植UCOSII操作系統。系統程序主要分為主機的系統初始化程序、鍵盤和顯示程序及射頻收發器nRF24L01的控制程序三大部分。圖4所示是其軟件程序流程。
圖4 系統程序流程圖
系統程序設計的關鍵是UCOSII操作系統的移植和SPI口通信控制。有關操作系統的移植, 芯片廠商在官網上已有范例提供, 本文不再贅述。
下面列出系統SPI初始化及收發函數的程序源碼。
void SPI_Initial (void)
當然, 也可以用GPIO口來實現SPI通信, 但前提是通信速率要求不是很高。由于要通過GPIO口模擬實現SPI的突發傳送協議, 而且要兼顧其通用性, 故其程序較為復雜。下面給出通過GPIO口實現SPI收發的一般程序:
3 結束語
經現場調試證明, 本文給出的無線數傳系統具有成本低, 速率高, 傳輸可靠等優點。在實際應用中, 還可根據需要將nRF24LOl組成一對一、一對多、多對多的結構。因此, 該系統可以廣泛應用于無線測控、文件傳輸、家庭無線應用、工業控制等場合。