基于嵌入式ARM處理器的M2M終端總體設(shè)計(jì)
嵌入式軟件設(shè)計(jì)
采用嵌入式實(shí) 時(shí)操作系統(tǒng)可以更合適、有效地利用CPU的資源,簡(jiǎn)化應(yīng)用軟件的設(shè)計(jì),縮短系統(tǒng)開發(fā)時(shí)間,更好地保證系統(tǒng)的實(shí)時(shí)陛和可靠性。FreeRTOS是在 Sourceforge網(wǎng)站上發(fā)布的微內(nèi)核嵌入式實(shí)時(shí)操作系統(tǒng),它是完全免費(fèi)的操作系統(tǒng),具有源碼公開、可移植、可裁減、調(diào)度策略靈活的特點(diǎn)。作為一個(gè)輕 量級(jí)的操作系統(tǒng),F(xiàn)reeRTOS提供的功能包括:任務(wù)管理、時(shí)間管理、信號(hào)量、消息隊(duì)列、內(nèi)存管理等FreeRTOS支持優(yōu)先級(jí)和輪換時(shí)間片兩種調(diào)度 算法,可根據(jù)用戶需要設(shè)置為可剝奪型內(nèi)核或不可剝奪型內(nèi)核。本文基于FreeRTOS給出了M2M終端實(shí)現(xiàn)PPP協(xié)商以及數(shù)據(jù)封裝傳輸?shù)能浖O(shè)計(jì)方案。
基于狀態(tài)機(jī)設(shè)計(jì)GPRS連接任務(wù)
由于網(wǎng)絡(luò)和信號(hào)較弱等原因,可能導(dǎo)致節(jié)點(diǎn)與GPRS網(wǎng)絡(luò)連接的失敗,采用基于狀態(tài)機(jī)的結(jié)構(gòu)設(shè)計(jì)方法對(duì)各個(gè)階段產(chǎn)生的錯(cuò)誤進(jìn)行處理,能保障模塊與GPRS網(wǎng)絡(luò)建立可靠連接。程序狀態(tài)機(jī)如圖2所示。
閑待命態(tài):此時(shí)MC35i處在離線關(guān)閉狀態(tài),節(jié)點(diǎn)處在低功耗模式下,系統(tǒng)復(fù)位后處于此狀態(tài)。
GPRS參數(shù)設(shè)置態(tài):處理器控制啟動(dòng)MC35i模塊后進(jìn)入此狀態(tài),通過發(fā)送AT命令對(duì)模塊及必要的網(wǎng)絡(luò)參數(shù)進(jìn)行設(shè)置,為使各個(gè)參數(shù)均設(shè)置成功,軟件設(shè)計(jì)中增加了容錯(cuò)重試機(jī)制。
PPP協(xié)商態(tài):GPRS參數(shù)設(shè)置完成后,通過發(fā)送AT*99***1#CR>命令開始MC35i模塊與GPRS網(wǎng)絡(luò)ISP(網(wǎng)絡(luò)服務(wù)提供 商)的PPP協(xié)商軟件設(shè)計(jì)中采用LCPHandler()函數(shù)完成LCP協(xié)商,PAPHandler()完成認(rèn)證,由IPCPHandler()完成 IPCP協(xié)商,如果最后獲得ISP和本節(jié)點(diǎn)的IP地址,則進(jìn)入PPPOVER態(tài),此后就能進(jìn)行數(shù)據(jù)的傳輸了,由于GPRS網(wǎng)絡(luò)等原因,PPP協(xié)商有時(shí)會(huì)失 敗,此時(shí)應(yīng)重啟MC35i模塊,再按照狀態(tài)機(jī)流程重新連接。
UDP數(shù)據(jù)傳輸態(tài):當(dāng)程序采用UDP方式進(jìn)行數(shù)據(jù)傳輸時(shí),程序進(jìn)入此狀態(tài),通過xDataTrsmtTask()任務(wù)進(jìn)行數(shù)據(jù)的UDP/IP封裝和解析。
TCP數(shù)據(jù)傳輸態(tài):當(dāng)節(jié)點(diǎn)調(diào)用uip_cionnect()函數(shù)與監(jiān)控中心建立連接后,程序進(jìn)入TCP數(shù)據(jù)傳輸態(tài),進(jìn)行基于TCP的數(shù)據(jù)傳輸。
數(shù)據(jù)的封裝和傳輸
通過GPRS進(jìn)行數(shù)據(jù)的傳輸需要經(jīng)過Internet網(wǎng)絡(luò)進(jìn)行中轉(zhuǎn),因而傳輸?shù)臄?shù)據(jù)封裝必須進(jìn)行TCP/IP協(xié)議。文中利用軟件進(jìn)行了數(shù)據(jù)封裝,需要傳 輸?shù)臄?shù)據(jù)經(jīng)過傳輸層UDP協(xié)議頭封裝,然后是IP協(xié)議頭的封裝,最后進(jìn)行PPP協(xié)議的封裝。經(jīng)過封裝傳輸?shù)組C35i的數(shù)據(jù)格式如表1所示。
MC35i將接收到的數(shù)據(jù)透明地傳輸?shù)絀nternet網(wǎng)絡(luò)中。通過Internet網(wǎng)絡(luò)路由器中轉(zhuǎn),最終將數(shù)據(jù)傳輸?shù)奖O(jiān)控中心。接收端對(duì)接收到的數(shù)據(jù)按照相應(yīng)的層次進(jìn)行解析,從而確定數(shù)據(jù)的目標(biāo)程序。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論