新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 以ARM為核心的嵌入式體感遙控器的設計方案

        以ARM為核心的嵌入式體感遙控器的設計方案

        作者: 時間:2013-10-08 來源:網絡 收藏

          2.2 電源模塊電路

          本遙控器采用8.4 V鋰電池供電,采用TL750M05C穩壓芯片提供5 V電壓,選用REG1117-3.3穩壓芯片為系統提供3.3 V電壓。STM32F1 03C8T6電源分為模擬電源與數字電源,為了保證其正常工作,將兩路電源進行隔離設計,在模擬地與數字地之間通過0Ω電阻實現單點共地。為監測鋰電池電源電壓,將電池電壓經電阻分壓及阻容濾波電路濾波后作為采樣輸入。

          2.3 無線通信模塊及顯示模塊電路

          無線通信模塊采用2.4 GHz頻段射頻芯片nRF24L01作為無線數據收發芯片,工作于2.4~2.5GHz ISM頻段,輸出功率和通信頻道可通過程序進行配置。nRF24L01功耗低,在以-6 dBm的功率發射時,工作電流只有9 mA;接收時,工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節能設計更方便。nRF24L01采用SPI總線方式與控制芯片進行通信。

          12864液晶顯示模塊,可顯示漢字及圖形,內置8192個中文漢字(16×1 6點陣)、128個字符(8×16點陣)及64×256點陣顯示RAM(GDRAM),具有并行數據傳送方式和串行數據傳送方式,其中串行數據傳輸方式只用到CS、SID、SCK 3個通信引腳,較并行數據傳送方式節省單片機的I/O引腳,本文采用串行傳輸方式進行設計。

          3 軟件系統設計

          的軟件系統設計基于實時嵌入式操作系統mu;C/OS-II,借助于mu ;C/OS-II內核的多任務管理和優秀的實時性能,大大簡化了軟件系統設計,并且可以保證系統響應的實時性。

          3.1 任務分配與實現

          在任務規劃的過程中,采用分層次和模塊化的思想將整個系統任務進行劃分。首先,我們必須對系統整體的控制任務有清楚地了解,具體任務劃分如表1所列。

          
          表1中除OSTaskStat和OSTaskIdle任務為系統自帶,其他8個任務均為用戶創建。其中:App_TaskStart為起始任務,系統運行后第一個建立的任務,其作用是為初始化系統時鐘和底層設備創建所有事件和其他任務;App_TaskAD任務監視電池電壓的變化,當電壓低于設定值Low Battery時,將啟動蜂鳴器報警;App_TaskAHRS任務通過DMA不斷接收iNEMO慣性導航模塊數據,然后交由USART1接收緩沖區,實時獲得手部姿態信息;App_TaskCmd根據手部姿態信息轉化為機器人運動指令,然后按照制定的通信協議通過nRF24L01無線模塊將指令數據包發送出去;App_TaskData任務在每發送一次指令數據包后,通過nRF24L01無線模塊接收機器人本體回傳的運動狀態信息包;App_TaskLCD任務實現運動指令、機器人運動狀態、電池電量、實時時鐘在12864液晶顯示模塊上的顯示;App_TaskLED_B任務通過LED指示遙控器上的主控芯片與iNEMO慣性導航模塊、遙控器與機器人是否通信正常,當電池電量過低時,通過蜂鳴器進行報警;App_TaskClock任務得到DS1302的實時時鐘,通過消息郵箱App_LCDClockMbox發送給App_TaskLCD任務予以實時顯示。

          3.2 任務間通信設計

          任務和中斷服務子程序可以通過事件控制塊與其他任務進行通信,常用的通信方式有信號量、郵箱和消息隊列,同時,通過事件標志實現任務與事件之間的同步。本操作系統共創建了8個消息郵箱和1個事件標志:

          OS_EVENT *App_AHRSMbox

          OS_EVENT *App_CommandMbox

          OS_EVENT *App_DataMbox

          OS_EVENT *App_ADMbox

          OS_EVENT *App_LCDCmdMbox

          OS_EVENT *App_LCDDataMbox

          OS_EVENT *App_LCDADMbox

          OS_EVENT *App_LCDClockMbox

          OS_FLAG_GRP *App_GreenLEDFlag

          其中,App_GreenLEDFlag包括3個標志位:

          #define Flg_GreenLED 0x0001

          #define Flg-BlueLED 0x0002

          #define Flg_Buzzer 0x0004

        紅外遙控器相關文章:紅外遙控器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 蓬溪县| 明水县| 佳木斯市| 郑州市| 景东| 长岛县| 新干县| 池州市| 来安县| 迁西县| 论坛| 台中县| 三穗县| 谷城县| 额济纳旗| 西安市| 镇江市| 夏河县| 宁安市| 岳西县| 黄陵县| 栾城县| 长泰县| 富宁县| 石嘴山市| 故城县| 灵璧县| 舞钢市| 兴山县| 商丘市| 商城县| 安仁县| 山东省| 烟台市| 木兰县| 康乐县| 焦作市| 神池县| 儋州市| 会昌县| 西吉县|