基于nRF24L01的礦用搜救器設計
無(wú)線(xiàn)通信
本文引用地址:http://dyxdggzs.com/article/117157.htm無(wú)線(xiàn)通信模塊通信芯片采用的是工作在2.4GHzISM頻段的nRF24L01,整個(gè)模塊的結構簡(jiǎn)單,采用單芯片進(jìn)行數據的處理。nRF24L01只要用很少的外圍元件就可以進(jìn)行正常的工作。無(wú)線(xiàn)通信模塊電路主要是由nRF24L01、數字衰減器(HMC274)、天線(xiàn)、晶振電路組成,框圖如圖3所示。
在功能上,主要用于搜救器和目標識別卡之間的數據收發(fā)。nRF24L01和STM32F103VE通過(guò)SPI口進(jìn)行數據交換。
OLED顯示屏
選用奇晶光電的OLED顯示模塊C0283QGLC-T。該顯示模塊帶有2.8英寸OLED顯示屏并且集成OLED顯示屏驅動(dòng)芯片S6E63D6,S6E63D6支持intel 8080總線(xiàn)模式。S6E63D6與STM32F103VE的FSMC接口相連,通過(guò)將FSMC設置成16位的PSRAM控制器,結合FSMC提供的時(shí)鐘信號、控制信號以及數據總線(xiàn)可以把S6E63D6看成外部存儲器來(lái)操作。
觸摸按鍵
選用PIC基于mTouch技術(shù)的電容觸摸專(zhuān)用單片機PIC16F724,該單片機最多提供8個(gè)觸摸按鍵輸入。與PIC16F724相連的6個(gè)觸摸按鍵定義為所需要的功能鍵。
軟件設計
軟件采用主從結構,程序采用C語(yǔ)言編寫(xiě)。STM32F103VE收到PIC單片機的發(fā)送的數據后,根據通信協(xié)議取出命令字和鍵碼,然后根據鍵碼完成相應的操作。軟件基于模塊化思想設計,主要包括主控制器程序和觸摸按鍵感應程序。
主控制器程序
主控制器程序完成STM32F103VE初始化、OLED顯示屏初始化、nRF24L01初始化,nRF24L01數據處理,紅外數據數據處理和顯示內容更新等工作。其中nRF24L01數據接收,紅外數據交換,按鍵鍵碼的獲取是通過(guò)中斷方式完成的。
觸摸按鍵檢測程序
鍵值判斷程序包括主程序和中斷服務(wù)程序。單片機上電后進(jìn)入主程序先完成初始化工作(包括I/O端口、定時(shí)器、電容傳感模塊和USART的設置),然后開(kāi)全局中斷,依次查詢(xún)按鍵標記(KeyFlag)的值,如果按鍵標記置位(KeyFlag的值等于1)則將按鍵標記清零并調用USART發(fā)送函數將相應的鍵碼發(fā)送給主MCU(STM32F103VE)否則查詢(xún)下一個(gè)按鍵標記直到8個(gè)按鍵標記查詢(xún)完后進(jìn)入休眠等待中斷程序的到來(lái)。中斷程序喚醒單片機后,先將定時(shí)器1的TMR1值讀出,接下來(lái)將TMR1值與0.85倍的平均值做比較。如果TMR1的值小于0.85倍的平均值則將按鍵標記KeyFlag置1,接著(zhù)設置成下一個(gè)觸摸傳感器;如果TMR1的值大于或等于0.85倍的平均值則將TMR1的值代入程式計算新的平均值,接著(zhù)設置成下一個(gè)觸摸傳感器。最后重啟定時(shí)器并退出中斷服務(wù)程序。退出中斷服務(wù)程序后進(jìn)入主程序進(jìn)行新的一次按鍵標記查詢(xún)。程序流程圖如圖4所示,左圖是主程序流程圖,右圖為中斷服務(wù)程序流程圖。
評論