基于nRF24L01的礦用搜救器設(shè)計
引言
在煤礦生產(chǎn)自動化中,人員定位系統(tǒng)發(fā)揮了越來越大的作用?,F(xiàn)在國內(nèi)外大多數(shù)煤礦使用的人員定位系統(tǒng)都是基于2.4GHz工業(yè)無線通信標準設(shè)計的,該定位系統(tǒng)主要由裝在礦井巷道的定位分站和配戴在工人身上的目標識別卡協(xié)同工作來完成人員定位。然而定位分站并不是在每一個巷道都安裝,在沒有安裝定位分站的巷道就不能實現(xiàn)人員定位;而且由于事故原因引起的定位分站不能正常工作導(dǎo)致的被困人員不能正常定位,以致營救困難等現(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ù)要求。通過煤炭科學(xué)院撫順分院的鑒定,已交付用戶使用。在井下沒有安裝定位分站的巷道中進行的模擬營救中,營救距離達到規(guī)定的60米。