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