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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于嵌入式ARM處理器的M2M終端總體設計

          基于嵌入式ARM處理器的M2M終端總體設計

          作者: 時間:2010-11-26 來源:網絡 收藏


            軟件設計

            采用實 時操作系統(tǒng)可以更合適、有效地利用CPU的資源,簡化應用軟件的設計,縮短系統(tǒng)開發(fā)時間,更好地保證系統(tǒng)的實時陛和可靠性。FreeRTOS是在 Sourceforge網站上發(fā)布的微內核實時操作系統(tǒng),它是完全免費的操作系統(tǒng),具有源碼公開、可移植、可裁減、調度策略靈活的特點。作為一個輕 量級的操作系統(tǒng),FreeRTOS提供的功能包括:任務管理、時間管理、信號量、消息隊列、內存管理等FreeRTOS支持優(yōu)先級和輪換時間片兩種調度 算法,可根據用戶需要設置為可剝奪型內核或不可剝奪型內核。本文基于FreeRTOS給出了M2M終端實現PPP協(xié)商以及數據封裝傳輸的軟件設計方案。

            基于狀態(tài)機設計GPRS連接任務

            由于網絡和信號較弱等原因,可能導致節(jié)點與GPRS網絡連接的失敗,采用基于狀態(tài)機的結構設計方法對各個階段產生的錯誤進行處理,能保障模塊與GPRS網絡建立可靠連接。程序狀態(tài)機如圖2所示。

            閑待命態(tài):此時MC35i處在離線關閉狀態(tài),節(jié)點處在低功耗模式下,系統(tǒng)復位后處于此狀態(tài)。

            GPRS參數設置態(tài):處理器控制啟動MC35i模塊后進入此狀態(tài),通過發(fā)送AT命令對模塊及必要的網絡參數進行設置,為使各個參數均設置成功,軟件設計中增加了容錯重試機制。

             PPP協(xié)商態(tài):GPRS參數設置完成后,通過發(fā)送AT*99***1#CR>命令開始MC35i模塊與GPRS網絡ISP(網絡服務提供 商)的PPP協(xié)商軟件設計中采用LCPHandler()函數完成LCP協(xié)商,PAPHandler()完成認證,由IPCPHandler()完成 IPCP協(xié)商,如果最后獲得ISP和本節(jié)點的IP地址,則進入PPPOVER態(tài),此后就能進行數據的傳輸了,由于GPRS網絡等原因,PPP協(xié)商有時會失 敗,此時應重啟MC35i模塊,再按照狀態(tài)機流程重新連接。

            UDP數據傳輸態(tài):當程序采用UDP方式進行數據傳輸時,程序進入此狀態(tài),通過xDataTrsmtTask()任務進行數據的UDP/IP封裝和解析。

            TCP數據傳輸態(tài):當節(jié)點調用uip_cionnect()函數與監(jiān)控中心建立連接后,程序進入TCP數據傳輸態(tài),進行基于TCP的數據傳輸。

            數據的封裝和傳輸

             通過GPRS進行數據的傳輸需要經過Internet網絡進行中轉,因而傳輸的數據封裝必須進行TCP/IP協(xié)議。文中利用軟件進行了數據封裝,需要傳 輸的數據經過傳輸層UDP協(xié)議頭封裝,然后是IP協(xié)議頭的封裝,最后進行PPP協(xié)議的封裝。經過封裝傳輸到MC35i的數據格式如表1所示。

            MC35i將接收到的數據透明地傳輸到Internet網絡中。通過Internet網絡路由器中轉,最終將數據傳輸到監(jiān)控中心。接收端對接收到的數據按照相應的層次進行解析,從而確定數據的目標程序。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          關鍵詞: 嵌入式 ARM 電源

          評論


          相關推薦

          技術專區(qū)

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