女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>無線通信>

基于nRF24L01的2.4GHz無線通信系統設計 - 全文

2017年12月15日 15:00 網絡整理 作者: 用戶評論(0

  隨著科技的發展進步,互聯網技術的高速發展,人們對無線通信質量的需求不斷提高。老一代無線傳輸技術以無法滿足現今需求。于是新一代無線傳輸孕育而生;2.4G無線傳輸技術就是其中之一。

  所謂的2.4G無線傳輸技術,其頻段處于2.405GHz-2.485GHz(科學、醫藥、農業)之間。所以簡稱為2.4G無線技術。這個頻段里是國際規定的免費頻段,是不需要向國際相關組織繳納任何費用的。這就為2.4G無線技術可發展性提供了必要的有利條件。而且2.4G無線技術不同于之前的27MHz無線技術,它的工作方式是全雙工模式傳輸,在抗干擾性能上要比27MHz有著絕對的優勢。這個優勢決定了它的超強抗干擾性以及最大可達10米的傳輸距離。此外2.4G無線技術還擁有理論上2M的數據傳輸速率,比藍牙的1M理論傳輸速率提高了一倍。這就為以后的應用層提高了可靠的保障。綜合2.4G、藍牙以及27MHz這三種常用的無線傳輸技術,2.4G有著自己獨到的優勢所在。相比藍牙它的產品制造成本更低,提供的數據傳輸速率更高。相比同樣免費的27MHz無線技術它的抗干擾性、最大傳輸距離以及功耗都遠遠超出。

  實現方案及硬件選型

  系統實現方案

  系統的目的是在單片機的控制下實現數據的無線傳輸 ,硬件電路結構如圖 1 所示

  基于nRF24L01的2.4GHz無線通信系統設計

  該系統主要以單片機為控制處理核心 ,由它完成對數據的采集處理以及控制數據的無線傳輸 ;電源電路提供系統所需各種電壓 ;復位電路提供單片機所需的復位信號 ;晶振電路提供單片機的時鐘信號 ;指示電路用來指示無線傳輸模塊的工作狀態 ;鍵盤電路用來發送各種類型的指令和數據 ;顯示電路用來顯示系統接收到的指令和數據。

  硬件選型

  設計采用低成本、性能好的 NORDIC 公司生產的 nRF24L01 芯片來完成。nRF24L01 是單片射頻收發芯片 ,工作在全球開放的 2. 4 GHz 頻段 ,有多達125 個頻道可供選擇 ;可通過 SPI 寫入數據 ,并且有自動應答和自動再發射功能 ;芯片功耗非常低 ,以- 6 dBm的功率發射時 ,工作電流只有 9 mA ,接收時工作電流只有 12. 3 mA ;多種低功率工作模式使節能設計更方便 ,并且市場上有不少以它為核心的模塊 ,便于購買。PTR6000 就是以 nRF24L01 為核心的無線收發模塊 ,它可以通過軟件設定地址 ,同時設置6 路接收通道地址 ,特別方便點對多點無線通信。其內部全面的寄存器配置 ,能夠更全面地對無線數據傳輸的細節進行控制。所以本次的無線數傳模塊選用了 PTR6000 ,它的硬件接口如圖 2 所示。

 基于nRF24L01的2.4GHz無線通信系統設計

  在待機或掉電模式下 ,單片機通過 SPI 接口配置 PTR6000 的工作參數 ;在發射/ 接收模式下 ,單片機通過 SPI 接口發送和接收數據 ;中斷輸出接口IRQAM可提供如下 3 種中斷輸出 :發送完成中斷TX DR、接收完成中斷 RX DR、最大發送次數到MAX RT。

  由于 PTR6000 的工作電壓為 1. 9~3. 6 V ,AVR系列單片機也工作在低電壓 ,并且具有 SPI 接口 ,正好滿足了這一點要求 ;考慮到顯示部分使用串行方式 ,所使用的 I/ O 口不是很多 ,ATmega8L 足以滿足要求 ,為了降低設計成本 ,控制芯片選擇 ATmega8L。

  硬件電路設計

  電源、復位和晶振電路設計

  為了縮短開發周期 ,設計中由交流 220 V 轉直流 12 V 的部分由市場上的電源模塊來代替。雖然ATmega8L 可工作在 2. 7~5. 5 V 寬電壓 ,但是由于PTR6000 工作在 1. 9~3. 6 V ,超出這個電壓范圍就有被燒壞的可能 ,因此在用三端穩壓管 7805 將 12 V轉換為 5 V 后 ,還要用 1117 將 5 V 的直流電轉換到3.3 V ,這樣 PTR6000 和 Atmega8L 都能正常工作。此外 ,為了適應移動測試的需要 ,設計的電路上還配備了電池槽 ,以便用 2 節干電池為系統提供 3 V 直流電壓。

  設計采用簡單的阻容復位電路 ,由于 ATmega8L是低電平復位 ,電源經 1 K電阻和 22μF 電解電容接地 , 復 位 線 從 電 阻 和 電 容 之 間 引 出 , 接 到ATmega8L 的復位引腳。

  為了獲得較高的振蕩頻率 ,設計采用了外接8 MHz晶體振蕩器。由于 AVR 單片機獨特的熔絲位設置 ,很容易造成單片機的鎖死現象 ,因此在設置有關時鐘的相關位時要格外小心。當然 ,即便是鎖死了一般情況下還是可以通過外接有源晶振來解鎖 ,并重新燒寫正確的熔絲位。

  鍵盤和顯示電路設計

  設計的鍵盤采用 3 ×3 的矩陣式鍵盤 ,3 條行線接到 ATmega8L 的 PC3、PC4、PC5 ,3 條列線分別接到PC0、PC1、PC2 ,并且 3 條列線帶有上拉電阻。在每個上拉電阻的下面引出一條線 ,接到三輸入與門74HC11 的輸入口 ,然后輸出口接到單片機的外中斷1 引腳 ,這樣設置的目的是用中斷的方法來進行鍵盤的掃描讀取。這一功能的實現主要還依靠軟件的設計 ,使得在有按鍵按下時 ,能夠通過 74HC11 產生一個中斷信號 ,通知單片機現在有鍵按下。然后單片機會進入預先編寫好的鍵盤處理程序進行鍵盤掃描 ,判斷鍵值 ,并執行相應的操作。

  顯示電路使用 2 個 8 段數碼管 ,通過串轉并的動態顯示來實現 ,并且通過 2 個 I/ O 口控制 2 個三極管來分別進行驅動和控制。用 SPI 口進行顯示數據的串行輸出是一個比較方便的方法 ,但是考慮到PTR6000 通過單片機 SPI 口接收數據 ,有與顯示沖突的可能。因此 ,設計時利用了 PD1、PD4 兩個普通的 I/ O 口來分別作為數據線和時鐘線 ,模擬時序來實現數據的串轉并顯示。

  軟件設計

  主程序設計

  設計采用的是匯編語言 ,內存不能自動分配 ,在主程序的開始 ,首先對 ATmega8L 的堆棧指針進行設置。在 I/ O 空間 ,地址為 3E ( 005E) 和 3D( 005D)的 2 個 8 位寄存器構成了一個 16 位寬的堆棧指針寄存器 SP ,單片機上電復位后 ,堆棧寄存器的初始值為 SPH = 00、SPL = 00。AVR 的堆棧是向下生長的 ,即新數據推入堆棧時 ,堆棧指針的數值將減小。所以系統程序一開始就對堆棧指針寄存器進行了初始化 , 將 SP 的 值 設 在 數 據 存 儲 器(SRAM) 空間的最高處。設置堆棧指針后的程序中 ,對各 I/ O 口的存儲器進行配置 ,包括數據寄存器PORTx、數據方向寄存器 DDRx 。

  隨后的初始化設置中 ,對外中斷的觸發方式進行相應的設置。最初設計采用的是低電平觸發方式 ,但是由于低電平容易造成重復觸發 ,造成鍵值讀取錯誤 ,因此在后續的程序設計中將其改成了下跳沿觸發 ,這樣只要鍵盤消抖工作做好 ,就能解決重復觸發的問題。

  在點對點和點對多點的短距離通信中 ,每一方隨時 都 有 發 送 數 據 的 可 能 , 所 以 在 主 程 序 的PTR6000 初始化部分中設置為接收方式 ,并對其相關地址通道進行了開通和自動應答設置 ,并配置了其地址的的長度且按指定長度對地址進行了配置。在主程序中還設置了 PTR6000 的中斷允許標志位 ,當有數據接收中斷、發送完成中斷、最大發送次數中斷產生時 ,在 PTR6000 的 IRQ 引腳產生一個低電平 ,觸發單片機外中斷 0 ,進行相應的處理。

  鍵盤程序設計

  由硬件電路設計可知 ,鍵盤程序是放在中斷服務程序中的 ,而且是下降沿觸發中斷 ,這一點有關的I/ O 口設置和寄存器有關位設置在主程序中完成 ,在此不再作具體說明。在外中斷 1 服務程序的開始 ,首先對鍵盤延時消抖 ,判斷是否真的有鍵按下 ,如果判斷確實有鍵按下則向下執行鍵值判斷程序 ,否則 ,判定為錯誤中斷 ,中斷返回。

  該部分鍵盤判斷程序是通過線反轉法完成的 ,首先 3 行送高電平 ,3 列送低電平 ,延時一個時鐘周期后 ,讀取管腳電平(PINC) ,并且對讀取的數據進行保存 ;然后 3 列送高電平 ,3 行送低電平 ,延時一個時鐘周期后 ,讀取管腳電平(PINC) ,并且對讀取的數據進行保存。然后兩次讀到的數據只保留低 6 位 ,高位全部清零 ,因為鍵盤只用到了低 6 位。然后再把 2 個鍵進行位或 ,得到一個數值 ,通過對這個數值的判斷來判定是哪一個鍵按下了。

  顯示程序設計

  顯示程序設計總的思想是首先串行傳送轉換后的十位顯示數碼 ,然后選通十位 ,再進行適當延時后關閉。再串行傳送轉換后的個位顯示數碼 ,然后選通個位 ,進行適當延時后關閉。

  具體串行顯示是這樣實現的 :首先把要顯示碼寄存器進行帶進位移位 ,然后判斷進位標志位 C 來向串行數據輸出口送 0 或 1 ,進行適當延時后 ,向串行時鐘口送低電平 ,適當延時后送高電平 ,目的是產生一個上跳沿 , 把串行數據口的電平狀態移入74HC164。這樣連續傳送 8 次 ,就將 8 位顯示碼送出。

  PTR6000 通信程序設計

  由于與 RF 協議相關的高速信號處理部分已經嵌入在模塊內部 ,PTR6000 可與各種低成本單片機配合使用 ,也可以與 DSP 等高速處理器配合使用。此系統中 PTR6000 可以進行半雙工通信 ,所有通信基點都初始化為接收模式 ,等待命令。當收到數據后 ,進行相應的操作。并且同樣可以進行數據的發送 ,在數據發送完成后又立即轉換成接收狀態 ,等待再次有數據的到來。PTR6000 有 6 種工作模式如表 1所示 ,其中 PWR UP 和 PRIM RX 是模塊寄存器參數

 基于nRF24L01的2.4GHz無線通信系統設計

  接收程序設計

  接收程序編寫流程主要是在初始化的過程中 ,把本機設置成接收狀態 ,這部分主要是在主程序的初始化配置的過程中完成的。具體的程序流程如下:

  ①設置 PTR6000 的配置寄存器 ,把 PTR6000 配置成允許數據接收完成中斷、數據發送完成中斷和最大發送次數到中斷 3 個中斷 ,當有以上 3 種中斷中的任何一個產生時 PTR6000 的 IRQAM 引腳都產生一個低電平 ;

  ②給 EN RXADDR 接收地址允許寄存器送數01 只開通數據通道 0 ;并且通過給 EN AA 送數01 允許數據通道 0 自動應答允許 ;

  ③通過對 SETUP AW 配置 ,設置地址的長度為 3 個字節 ;并且在對數據通道 0 的地址寄存器RX ADDR P0 的 配 置 過 程 中 把 地 址 配 置 為000000 ,在 隨 后 的 設 置 中 把 數 據 速 率 設 置 為2 Mbps;

  ④對接收緩沖寄存器清空 ,確保其能進入接收狀態。最后 CE 送高電平 ,進入接收狀態。

  發送程序設計

  當有鍵按下時就要啟動相應的發送程序 ,發送子程序是在外中斷 0 中被調用的。具體的程序流程如下 :

  ①PTR6000 的發送緩沖寄存器進行清空操作 ;

  ②程序中接收結點地址 (RX ADDR) 、最大發送次數(ARC) 和有效數據 (TX PLD) 通過 SPI 接口寫入 PTR6000 ,在寫入過程中對 SPI 中斷標志位進行監測 ,如果數據傳送沒有完成保持 CSN 為低 ;

  ③配置寄存器 PRIM RX 位設為低 ,把標志寄存器 r1 和數據寄存器 r19 的數據不斷寫入 PTR6000的發送緩沖寄存器 ;

  ④設置 CE 為高 ,啟動發射。CE 高電平持續時間最小為 10μs。若啟用了自動應答模式 ,模塊立即進入接收模式。

  PTR6000 中斷服務程序設計

  PTR6000 的 3 種類型的中斷都是通過 INT0 觸發的 ,所以在程序的開始要對中斷的具體來源進行判斷。PTR6000 中有一個狀態寄存器 (STATUS) ,其中包括 3 種中斷的標志位。在中斷服務程序的開始首先向 PTR6000 發送一個空操作指令 ,此時返回單片機 SPI 數據寄存器 SPDR 的數據就是當前狀態寄存器的數值。接下來對其 3 個中斷標志位進行判斷 ,判斷是接收完成中斷、發送完成中斷還是最大發送次數到中斷 ,然后跳轉到相應的服務程序部分。

  實驗仿真

  基于以上設計方案 ,對系統進行了實驗仿真。在搭建相關硬件平臺的基礎上 ,通過對相關軟件程序的調試 ,系統很好地實現了點對點的無線通信 ,實驗證實 ,基于 nRF24L01 的 2. 4 GHz 無線通信系統解決方案 ,可以實現小于 10 m 的短距離通信。此外還在 2 臺計算機之間進行了不同格式、不同大小的文件的傳輸實驗 ,其傳輸速率約為 512 kB/ S,具體結果

  如表 2 所示。通過提高單片機的晶振還可以加快文件的傳輸速度 ,最快可以達到 2 Mb/ s。

  基于nRF24L01的2.4GHz無線通信系統設計

  2. 4 GHz 無線通信是一項新興的短距離無線通信解決方案 ,主要面向的應用領域是低速率無線個人區域網 ,典型特征是近距離、低功耗、低成本 ,主要適用于小型廉價設備的無線聯網和控制。該文提出一種基于 2. 4 GHz 無線收發芯片 nRF24L01 的短距離無線數據傳輸系統設計方法 ,在實際應用時將系統作為一個模塊可方便地移植 ,以便構建更為復雜的無線通信網絡 ,可應用于無線抄表、工業數據采集系統、安全防火系統以及水文氣象監控等領域 ,具有很高的實用價值。

上一頁123全文

非常好我支持^.^

(2) 66.7%

不好我反對

(1) 33.3%

( 發表人:李倩 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?