基于nRF24L01的礦用搜救器設(shè)計
引言
在煤礦生產(chǎn)自動化中,人員定位系統(tǒng)發(fā)揮了越來越大的作用?,F(xiàn)在國內(nèi)外大多數(shù)煤礦使用的人員定位系統(tǒng)都是基于2.4GHz工業(yè)無線通信標準設(shè)計的,該定位系統(tǒng)主要由裝在礦井巷道的定位分站和配戴在工人身上的目標識別卡協(xié)同工作來完成人員定位。然而定位分站并不是在每一個巷道都安裝,在沒有安裝定位分站的巷道就不能實現(xiàn)人員定位;而且由于事故原因引起的定位分站不能正常工作導致的被困人員不能正常定位,以致營救困難等現(xiàn)象也屢見不鮮。鑒于以上客觀原因,本設(shè)計就顯得具有明顯的實際意義。
搜救器系統(tǒng)設(shè)計
搜器系統(tǒng)主要由電源模塊、主控制器模塊、2.4GHz無線通信模塊、紅外通信模塊、FLASH存儲器模塊、OLED顯示模塊和觸摸按鍵模塊組成,系統(tǒng)框圖如圖1所示。
系統(tǒng)電源
采用鋰電池做為系統(tǒng)電源,電池充電管理芯片選用CN3083,圖2所示是以500mA電流4.2V電壓進行恒壓充電的電路圖。圖2中發(fā)光二極管D5發(fā)光時表明充電正在進行,D6發(fā)光時表明充電已經(jīng)結(jié)束。鋰電池通過LDO芯片MD73R30向系統(tǒng)提供穩(wěn)定的3.3V電壓,該芯片有使能控制引腳CE,可以通過將圖中POWER_EN置為低電平關(guān)閉MD73R30以節(jié)省電能。
主控制器
選用STM32F103VE做主控制器。STM32F103VE增強型系列使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,內(nèi)置高速存儲器(高達512k字節(jié)的閃存和64k字節(jié)的SRAM),豐富的增強I/O端口和聯(lián)接到兩條APB總線的外設(shè)。器件包含3個12位的ADC、4個通用16位定時器和2個PWM定時器,還包含標準和先進的通信接口: 2個I2C、3個SPI、2個I2S、1個SDIO、5個USART、一個USB和一個CAN。STM32F103VE具有DMA功能,可以在外設(shè)和內(nèi)存之間、內(nèi)存和內(nèi)存之間提供高速數(shù)據(jù)傳輸。STM32F103VE具有FSMC(靜態(tài)存儲控制器),本設(shè)計用FSMC功能實現(xiàn)控制具有Intel8080總線模式的OLED顯示屏。
FLASH存儲器
搜救器要存儲大量的人員信息,所以在主控制器外部擴展了8M字節(jié)的FLASH。M25P64是一個8M×8的串行FLASH存儲器,具有寫保護機制,通過高速SPI兼容總線應(yīng)用。存儲器由128個塊組成,每個塊包含256頁,每頁256個字節(jié)。M25P64具有高性能的編程功能,用頁編程指令每次可編程1至256字節(jié)。整個存儲器可以通過塊擦寫指令擦除,也可以由塊擦除指令一次一塊的擦除。[!--empirenews.page--]
紅外通信
出于方便應(yīng)用考慮,搜救器在與上位機進行數(shù)據(jù)交換時使用紅外通信技術(shù)。由于STM32F103VE的USART可以設(shè)置成IrDA模式,所以本設(shè)計選用Vishay的紅外芯片TFDU4300。TFDU4300是一個對于低電壓IO接口有獨立邏輯參考電壓的紅外收發(fā)模塊,它與快速紅外數(shù)據(jù)通信的最新IrDA物理層標準完全兼容,IrDA的速度最高支持115.2kbit/s并且支持基帶遠程控制。收發(fā)模塊由PIN二極管,一個紅外發(fā)送器和一個低功耗控制IC構(gòu)成,提供一個完全的單芯片前端到后端的解決方案。器件覆蓋擴展的近于1米IrDA范圍,通過一外部限流控制電阻可以調(diào)到更近的范圍。
無線通信
無線通信模塊通信芯片采用的是工作在2.4GHzISM頻段的nRF24L01,整個模塊的結(jié)構(gòu)簡單,采用單芯片進行數(shù)據(jù)的處理。nRF24L01只要用很少的外圍元件就可以進行正常的工作。無線通信模塊電路主要是由nRF24L01、數(shù)字衰減器(HMC274)、天線、晶振電路組成,框圖如圖3所示。
在功能上,主要用于搜救器和目標識別卡之間的數(shù)據(jù)收發(fā)。nRF24L01和STM32F103VE通過SPI口進行數(shù)據(jù)交換。
OLED顯示屏
選用奇晶光電的OLED顯示模塊C0283QGLC-T。該顯示模塊帶有2.8英寸OLED顯示屏并且集成OLED顯示屏驅(qū)動芯片S6E63D6,S6E63D6支持intel 8080總線模式。S6E63D6與STM32F103VE的FSMC接口相連,通過將FSMC設(shè)置成16位的PSRAM控制器,結(jié)合FSMC提供的時鐘信號、控制信號以及數(shù)據(jù)總線可以把S6E63D6看成外部存儲器來操作。
觸摸按鍵
選用PIC基于mTouch技術(shù)的電容觸摸專用單片機PIC16F724,該單片機最多提供8個觸摸按鍵輸入。與PIC16F724相連的6個觸摸按鍵定義為所需要的功能鍵。
軟件設(shè)計
軟件采用主從結(jié)構(gòu),程序采用C語言編寫。STM32F103VE收到PIC單片機的發(fā)送的數(shù)據(jù)后,根據(jù)通信協(xié)議取出命令字和鍵碼,然后根據(jù)鍵碼完成相應(yīng)的操作。軟件基于模塊化思想設(shè)計,主要包括主控制器程序和觸摸按鍵感應(yīng)程序。
主控制器程序
主控制器程序完成STM32F103VE初始化、OLED顯示屏初始化、nRF24L01初始化,nRF24L01數(shù)據(jù)處理,紅外數(shù)據(jù)數(shù)據(jù)處理和顯示內(nèi)容更新等工作。其中nRF24L01數(shù)據(jù)接收,紅外數(shù)據(jù)交換,按鍵鍵碼的獲取是通過中斷方式完成的。
觸摸按鍵檢測程序
鍵值判斷程序包括主程序和中斷服務(wù)程序。單片機上電后進入主程序先完成初始化工作(包括I/O端口、定時器、電容傳感模塊和USART的設(shè)置),然后開全局中斷,依次查詢按鍵標記(KeyFlag)的值,如果按鍵標記置位(KeyFlag的值等于1)則將按鍵標記清零并調(diào)用USART發(fā)送函數(shù)將相應(yīng)的鍵碼發(fā)送給主MCU(STM32F103VE)否則查詢下一個按鍵標記直到8個按鍵標記查詢完后進入休眠等待中斷程序的到來。中斷程序喚醒單片機后,先將定時器1的TMR1值讀出,接下來將TMR1值與0.85倍的平均值做比較。如果TMR1的值小于0.85倍的平均值則將按鍵標記KeyFlag置1,接著設(shè)置成下一個觸摸傳感器;如果TMR1的值大于或等于0.85倍的平均值則將TMR1的值代入程式計算新的平均值,接著設(shè)置成下一個觸摸傳感器。最后重啟定時器并退出中斷服務(wù)程序。退出中斷服務(wù)程序后進入主程序進行新的一次按鍵標記查詢。程序流程圖如圖4所示,左圖是主程序流程圖,右圖為中斷服務(wù)程序流程圖
結(jié)語
本儀器采用STM32F103VE作為主控制器,成本低,系統(tǒng)運行穩(wěn)定,各項指標達到了技術(shù)要求。通過煤炭科學院撫順分院的鑒定,已交付用戶使用。在井下沒有安裝定位分站的巷道中進行的模擬營救中,營救距離達到規(guī)定的60米。