<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于nRF24L01的礦用搜救器設計

          基于nRF24L01的礦用搜救器設計

          —— Design of Mine Rescuer Based on nRF24L01
          作者:崔玉祥 太原理工大學信息工程學院時間:2011-02-23來源:電子產品世界收藏

            系統設計

          本文引用地址:http://www.ex-cimer.com/article/117157.htm

            搜器系統主要由電源模塊、主控制器模塊、2.4GHz無線通信模塊、紅外通信模塊、FLASH存儲器模塊、OLED顯示模塊和觸摸按鍵模塊組成,系統框圖如圖1所示。

            系統電源

            采用鋰電池做為系統電源,電池充電管理芯片選用CN3083,圖2所示是以500mA電流4.2V電壓進行恒壓充電的電路圖。圖2中發光二極管D5發光時表明充電正在進行,D6發光時表明充電已經結束。鋰電池通過LDO芯片MD73R30向系統提供穩定的3.3V電壓,該芯片有使能控制引腳CE,可以通過將圖中POWER_EN置為低電平關閉MD73R30以節省電能。

            主控制器

            選用STM32F103VE做主控制器。STM32F103VE增強型系列使用高性能的ARM Cortex-M3 32位的RISC內核,內置高速存儲器(高達512k字節的閃存和64k字節的SRAM),豐富的增強I/O端口和聯接到兩條APB總線的外設。器件包含3個12位的ADC、4個通用16位定時器和2個PWM定時器,還包含標準和先進的通信接口: 2個I2C、3個SPI、2個I2S、1個SDIO、5個USART、一個USB和一個CAN。STM32F103VE具有DMA功能,可以在外設和內存之間、內存和內存之間提供高速數據傳輸。STM32F103VE具有FSMC(靜態存儲控制器),本設計用FSMC功能實現控制具有Intel8080總線模式的OLED顯示屏。

            FLASH存儲器

            要存儲大量的人員信息,所以在主控制器外部擴展了8M字節的FLASH。M25P64是一個8M×8的串行FLASH存儲器,具有寫保護機制,通過高速SPI兼容總線應用。存儲器由128個塊組成,每個塊包含256頁,每頁256個字節。M25P64具有高性能的編程功能,用頁編程指令每次可編程1至256字節。整個存儲器可以通過塊擦寫指令擦除,也可以由塊擦除指令一次一塊的擦除。

            紅外通信

            出于方便應用考慮,在與上位機進行數據交換時使用紅外通信技術。由于STM32F103VE的USART可以設置成IrDA模式,所以本設計選用Vishay的紅外芯片TFDU4300。TFDU4300是一個對于低電壓IO接口有獨立邏輯參考電壓的紅外收發模塊,它與快速紅外數據通信的最新IrDA物理層標準完全兼容,IrDA的速度最高支持115.2kbit/s并且支持基帶遠程控制。收發模塊由PIN二極管,一個紅外發送器和一個低功耗控制IC構成,提供一個完全的單芯片前端到后端的解決方案。器件覆蓋擴展的近于1米IrDA范圍,通過一外部限流控制電阻可以調到更近的范圍。


          上一頁 1 2 下一頁

          關鍵詞: 搜救器 nRF24L01

          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();