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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種基于STM32的嵌入式低功耗無線手持控制器設(shè)計

          一種基于STM32的嵌入式低功耗無線手持控制器設(shè)計

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          摘要:以用于顯微注射的操作系統(tǒng)為平臺,設(shè)計了一種基于的嵌入式無線手持控制器??刂破魇菍嶒炂脚_的人機接口,替代了平臺已有的有線控制器,在原設(shè)備基礎(chǔ)上增加了無線通訊功能和平臺工作狀態(tài)及參數(shù)實時顯示功能,彌補了原設(shè)備連線復(fù)雜、無數(shù)據(jù)顯示功能等諸多不足。針對系統(tǒng)需求,完成了無線手持控制器的軟硬件設(shè)計。測試結(jié)果表明:無線手持控制器具有功耗低,無線通訊可靠穩(wěn)定,用戶界面友好簡潔的特點,提高了的效率和質(zhì)量,具有較高的實用價值。

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

          顯微注射技術(shù)是現(xiàn)代生物工程重要的技術(shù)手段之一,廣泛應(yīng)用在轉(zhuǎn)基因、試管嬰兒和克隆等細胞工程領(lǐng)域。操作系統(tǒng)是一套完整的用于顯微注射實驗的自動化裝置,它將自動控制、微電子、嵌入式、無線通訊等技術(shù)運用到顯微注射實驗中,通過手持控制器和機械手驅(qū)動系統(tǒng)實現(xiàn)了顯微注射實驗的數(shù)字化和智能化,相比于傳統(tǒng)人工操作,極大的提高了科研工作者的工作效率和工作質(zhì)量。

          手持控制器是顯微實驗系統(tǒng)的人機接口,用戶通過手持控制器將命令發(fā)送至機械手驅(qū)動系統(tǒng),由驅(qū)動系統(tǒng)控制三軸機械手實現(xiàn)對細胞探針的操作。原實驗系統(tǒng)中的手持控制器采用RS485與驅(qū)動系統(tǒng)實現(xiàn)通信,使用時需要操作人員連接供電線纜及通訊線纜,過多的連線不僅使得手持控制器喪失了其使用的便攜性,并且接插件容易松脫為系統(tǒng)增加不可靠隱患。本文設(shè)計了一種采用鋰電池電池供電的無線手持控制器,彌補了上述不足,除此之外還增加了LCD顯示功能,實現(xiàn)了機械手工作參數(shù)和狀態(tài)的實時監(jiān)控,進一步提高了顯微實驗的自動化程度。

          1 無線手持控制器需求分析

          采用無線手持控制器的顯微實驗操作系統(tǒng)框圖如圖1所示,根據(jù)系統(tǒng)框圖需求可將無線手持控制器功能分為人機接口、板間通訊、鋰電池管理3部分。

          一種基于STM32的嵌入式低功耗無線手持控制器設(shè)計

          1.1 人機接口

          原始的有線控制器不具備參數(shù)顯示功能,機械手工作參數(shù)和狀態(tài)無法獲取,特別是XYZ坐標(biāo)只能通過顯微鏡大致判斷,使用時十分不便。通過增加LCD顯示功能彌補了上述不

          足,使得手持控制器成為功能完整的人接機口。用戶可通過按鍵(確定、取消、移動等)實現(xiàn)參數(shù)查詢與設(shè)置、界面切換等操作。

          控制器通過三路光電編碼器實現(xiàn)對機械手XYZ三軸運動的控制,用戶轉(zhuǎn)動編碼器的方向和速度決定了機械手在相應(yīng)坐標(biāo)軸上運動的速度和方向。

          1.2 板間通訊

          控制器通過無線方式和驅(qū)動系統(tǒng)實現(xiàn)通訊。通訊應(yīng)當(dāng)可靠,丟包、誤碼、重傳都會導(dǎo)致用戶命令不能及時傳送至驅(qū)動系統(tǒng),機械手因此無法及時響應(yīng),從而顯微實驗所需的高分辨率就難以保證,嚴(yán)重時還會破壞細胞甚至損壞機械手。另外控制器還保留了RS485有線通訊接口備用。正常使用時,有線和無線通訊距離均不超過2 m,使用環(huán)境無強電磁干擾。

          1.3 鋰電池管理

          無線手持控制器采用3.7 V/2200 mAh鋰電池供電,相比于傳統(tǒng)的鎳鎘電池、鎳氨電池、鉛酸電池,鋰電池具有相同容量下體積小、質(zhì)量輕;無重金屬元素,對環(huán)境污染小等優(yōu)勢,但是鋰電池對過充電和過放電十分敏感,過充和過放都會對電池造成不可逆的損壞,降低電池壽命,因此需要對鋰電池進行合理的管理和保護。

          2 無線手持控制器硬件設(shè)計

          根據(jù)無線手持控制器的功能需求,設(shè)計出手持控制器硬件系統(tǒng)框圖如圖2所示。下面對系統(tǒng)中各重要模塊進行說明。

          一種基于STM32的嵌入式低功耗無線手持控制器設(shè)計

          2.1 MCU模塊

          MCU選用F103RCT6,該芯片是專為高性能、低成本、的嵌入式應(yīng)用所設(shè)計的,其主要參數(shù)如表1所示。該芯片處理速度快,并集成了多種功能豐富的外設(shè)資源,極大的簡化了系統(tǒng)硬件設(shè)計,如系統(tǒng)中使用到的通訊接口如:IIC、SPI、USART以及用于電池電壓檢測的ADC都集成在MCU中,省去了外接相應(yīng)功能的芯片。另外光電編碼器輸出的AB正交脈沖可直接接入MCU,內(nèi)部的定時器可實現(xiàn)判向、可逆計數(shù)、抖動濾波等功能,避免了較為復(fù)雜的正交編碼器的接口電路。簡潔的硬件設(shè)計,降低了成本,提高了可靠性。

          2.2 模塊

          無線收發(fā)芯片選擇瑞典NORDIC公司生產(chǎn)的nRF24L01。該芯片工作于2.4~2.5 GHz頻段,該頻段是全球開放的ISM(工業(yè)、科學(xué)和醫(yī)學(xué))頻段,使用者無需申請許可證,給開發(fā)者帶來了很大方便。該芯片內(nèi)集成了增強型“ShockBurst”模式控制器、頻率發(fā)生器、功率放大器、晶體振蕩器、調(diào)制器和解調(diào)器,MCU通過SPI接口可以對芯片進行靈活的配置。

          一種基于STM32的嵌入式低功耗無線手持控制器設(shè)計

          相比于藍牙、WiFi、ZigBee等其他短距離方式,nRF24L01具有功耗低、開發(fā)簡單、成本低等優(yōu)勢,特別是在方面十分適合本控制器的需求,發(fā)射功率為0dBm時電流消耗為11.3 mA,接收模式下電流消耗為12.3 mA,待機模式下電流消耗為22μA,無論是收發(fā)模式還是待機模式,電流消耗都遠低于上述其余方式。無線通信模塊電路原理圖如圖3所示。

          一種基于STM32的嵌入式低功耗無線手持控制器設(shè)計

          2.3 鋰電池管理

          BQ2057C是美國TI公司生產(chǎn)的先進鋰電池充電管理芯片,該芯片集成了電壓電流調(diào)節(jié)器、電池溫度監(jiān)測、充電狀態(tài)指示等多種功能,外圍電路簡潔,十分適合本系統(tǒng)的應(yīng)用需求,電路如圖4所示。

          3 無線手持控制器軟件設(shè)計

          手持控制器的軟件開發(fā)采用C語言Keil MDK集成開發(fā)環(huán)境,它集編碼、編譯、仿真、下載、調(diào)試功能于一體,極大提高了軟件開發(fā)效率。

          根據(jù)控制器的功能將軟件劃分為如下六任務(wù):系統(tǒng)初始化、電源管理、指令處理、nRF24L01收發(fā)、LCD顯示、鍵盤掃描,如圖5所示。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();