基于mc35i的m2m終端設計與研究xkpf
對每個(gè)任務(wù)單獨進(jìn)行設計后,最終由FreeRTOS操作系統統一管理,通過(guò)采用信號量和郵箱的方式實(shí)現多個(gè)任務(wù)之間的通信,軟件各部分主要函數之間的關(guān)系如圖3所示。本文引用地址:http://dyxdggzs.com/article/195191.htm
在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è)可行的設計方案。
評論