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