<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式ARM處理器在M2M終端總體設計中的應用

嵌入式ARM處理器在M2M終端總體設計中的應用

作者: 時(shí)間:2012-12-29 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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

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

  數據的封裝和傳輸

  通過(guò)GPRS進(jìn)行數據的傳輸需要經(jīng)過(guò)Internet網(wǎng)絡(luò )進(jìn)行中轉,因而傳輸的數據封裝必須進(jìn)行TCP/IP協(xié)議。文中利用軟件進(jìn)行了數據封裝,需要傳輸的數據經(jīng)過(guò)傳輸層UDP協(xié)議頭封裝,然后是IP協(xié)議頭的封裝,最后進(jìn)行PPP協(xié)議的封裝。

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

  系統軟件設計采用分層的結構,從底到上分別為:串口驅動(dòng)層(物理層)、PPP協(xié)議層(鏈路層)、IP協(xié)議層(網(wǎng)絡(luò )層)、UDP協(xié)議和ICMP層(傳輸層)以及應用層。在移植好的LwIP協(xié)議棧中,通過(guò)在各層中建立相應功能的線(xiàn)程,實(shí)現數據的封裝。底層軟件為上層軟件提供函數支持,上層軟件利用底層軟件完成應用程序的編寫(xiě)和實(shí)現。軟件采用自底向上的設計方法逐步實(shí)現系統中各個(gè)函數的功能,各部分函數實(shí)現均采用模塊化的設計方法。每個(gè)任務(wù)對應一個(gè)模塊

  對每個(gè)任務(wù)單獨進(jìn)行設計后,最終由FreeRTOS操作系統統一管理,通過(guò)采用信號量和郵箱的方式實(shí)現多個(gè)任務(wù)之間的通信,軟件各部分主要函數之間的關(guān)系如圖3所示。


  在MC35SerialISR()中將接收的數據存放到xQRxChars隊列中后,發(fā)送SemMC35Rx信號量來(lái)激活PPPRxTask()任務(wù),通過(guò)對接收數據的解析,確定數據包的類(lèi)型,然后由相應的函數對接收數據進(jìn)行處理。

  如果接收的數據是應用程序的數據,將由IPRx()函數判斷目標主機是否正確,再經(jīng)過(guò)傳輸層解析數據從而判定對數據處理的應用程序。最后由應用程序解析數據并執行相應的功能,如將數據通過(guò)串口發(fā)送到主機、向數據采集系統發(fā)送控制命令、接收數據采集系統的數據并發(fā)送等。當接收隊列中所有數據均處理完畢后,延時(shí)250ms如果還沒(méi)有接收到數據,則任務(wù)通過(guò)等待信號量SemMC35Rx將自己掛起。數據的發(fā)送過(guò)程是一個(gè)相反的過(guò)程。

  應用程序根據需要的功能建立UDPTxTask()或ICMPTxTask()任務(wù),并將數據發(fā)送到xAPPTxQ隊列中。相應的任務(wù)再調用IPTx()和PPPTx()函數進(jìn)行數據的封裝并將數據發(fā)送到XqTxChar隊列中,從而喚醒MC35SerialISR()中斷程序將數據通過(guò)串口發(fā)送到MC35i中進(jìn)行傳輸。為提高系統的實(shí)時(shí)性,本文中FreeRTOS采用可剝奪內核方式進(jìn)行調度。采用FreeRTOS操作系統對任務(wù)進(jìn)行管理簡(jiǎn)化了軟件的編寫(xiě)難度,同時(shí)提高了程序的可讀性和可移植性。

  總結

  基于GPRS M2M產(chǎn)品的無(wú)線(xiàn)數據傳輸以及遠程監控系統是目前國內外研究的熱點(diǎn)。本文采用完全免費的操作系統和TCP/IP協(xié)議棧給出的系統設計方案具備成本低、性能好、可升級等優(yōu)點(diǎn),為遠程監控系統相關(guān)領(lǐng)域的數據傳輸提供了一個(gè)可行的設計方案。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ARM處理器 M2M終端 GPRS通信

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>