《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于uC/OS-II的視頻監控終端無線網絡接口設計
基于uC/OS-II的視頻監控終端無線網絡接口設計
摘要: 本文研究的森林火災視頻監控終端采用mC/OS-II作為嵌入式操作系統,為了支持 GPRS網絡通信,系統需要PPP或SLIP協議的支持。由于mC/OS-II不包括TCP/IP協議棧,所以要編寫設備的網絡接口。本文選用免費的 TCP/IP協議棧LwIP v0.6.4作為設計核心,在mC/OS-II上移植了LwIP以實現TCP/IP協議棧,從而獲得了一個功能完善的嵌入式IP終端。
Abstract:
Key words :

 引言

本文研究的森林火災視頻監控終端采用mC/OS-II作為嵌入式操作系統,為了支持 GPRS網絡通信,系統需要PPP或SLIP協議的支持。由于mC/OS-II不包括TCP/IP協議棧,所以要編寫設備的網絡接口。本文選用免費的 TCP/IP協議棧LwIP v0.6.4作為設計核心,在mC/OS-II上移植了LwIP以實現TCP/IP協議棧,從而獲得了一個功能完善的嵌入式IP終端。

視頻監測終端網絡接口原理

圖像監控系統工作流程

工作時,圖像監控系統首先將接收服務器連入Internet,取得服務器的公網IP地址,確定服務的端口號,并將IP地址及端口信息以短消息方式發送給遠程站點的視頻監控儀模塊。視頻監控儀模塊通過GPRS-Modem模塊連入Internet后即可與接收服務器連線。視頻監控儀在正常工作時(無火警)僅定時上傳含有本地特征編碼的短消息,接收服務器軟件會根據收到的短消息來分析各監控儀的狀態并進行顯示。當視頻監控儀檢測到火警時,它會將火災信息編碼,以短消息形式傳遞到服務器,同時啟動視頻圖像壓縮及上傳服務,供接收服務器分析判斷。
圖1 GPRS傳輸模塊工作原理

GPRS傳輸模塊工作原理

視頻監控終端的GPRS傳輸模塊原理如圖1所示,西門子公司的 MC35 GPRS模塊把從TCP/IP模塊接收的TCP/IP包和從基站接收的GPRS分組數據進行相應的協議處理后再轉發。MC35模塊主要由射頻天線、內部 Flash、SRAM、GSM基帶處理器、匹配電源和一個40腳的ZIF插座組成。GSM基帶處理器是核心部件,其作用相當于一個協議處理器,用來處理外部系統通過串口發送過來的AT指令。射頻天線部分主要實現信號的調制與解調,以及外部射頻信號與內部基帶處理器之間的信號轉換。匹配電源為處理器及射頻部分提供所需的電源。MC35 GPRS模塊支持GSM900和GSMl800雙頻網絡,接收速率可達86.20kbps,發送速率可達21.5kbps。MC35模塊提供了9針的標準 RS232接口,通過MAX3232電平轉換芯片和LPC2104的UART0口相連,進行全雙工通信。MC35工作電壓為12V,上電后由DTR上升沿跳變觸發啟動。本系統指定LPC2104的P0.13信號線經MAX3232電平轉換后作為MC35的DTR。系統上電復位后,首先進行工作頻率等參數設置,然后進行撥號和PPP協商,得到系統本地IP,完成GPRS的Internet接入。ARM CPU將用戶數據先打成IP包,再經串口發送給MC35,MC35把其封裝成GPRS分組數據包傳到GPRS網絡。 

網絡接口協議

本系統的視頻監控儀網絡通信分層結構如圖2所示,GPRS服務節點和網關節點等GPRS內部節點都簡化抽象為GPRS網絡,GPRS內部協議及Internet網關協議等都簡化抽象為GPRS網關協議。

視頻監控終端網絡通信各層的作用如下。

物理層:ARM CPU利用AT指令對GPRS Modem進行撥號。反饋應答后,一條物理通道即GPRS信道就在本系統中的GPRS Modem和Internet之間建立起來。

數據鏈路層:PPP協議將原始的GPRS物理層連接改造成無差錯的數據鏈路,系統遠程登錄Internet,并得到GPRS網關分配的A類IP地址。

網絡層:采用IP協議作為網絡層協議。IP協議將接入Internet、具有不同IP地址的終端都聯系起來。經過IP路由選擇,可以令本系統與連在Internet上的任一IP終端進行數據交互。

傳輸層:選擇TCP作為傳輸層協議,為數據傳輸提供面向連接的可靠服務。
圖2 視頻監控儀網絡通信分層結構

視頻監測終端網絡接口軟件設計

LwIP在mC/OS-II上的實現

LwIP協議棧在設計時就考慮到了將來的移植問題,因此把所有與硬件、操作系統、編譯器相關的部份都獨立出來,放在/src/arch目錄下。 LwIP在mC/OS-II上的實現就是要修改該目錄下的文件,其它的文件一般不應該修改,主要的工作包括以下幾部分。

與CPU或編譯器

相關的include文件

在/src/arch/include/arch 目錄下的cc.h、cpu.h、perf.h中有一些與CPU或編譯器相關的定義,如數據長度、字的高低位順序等,這應該與用戶實現mC/OS-II時定義的數據長度等參數一致。一般情況下C語言的結構體struct是4字節對齊的,但是在處理數據包的時候,LwIP是通過結構體中不同數據的長度來讀取相應數據的,所以,一定要在定義struct的時候使用_packed關鍵字,讓編譯器放棄struct的字節對齊。

sys_arch操作系統相關部份

sys_arch. [ch]中的內容是與操作系統相關的一些結構和函數。mC/OS-II實現了消息隊列結構OSQ及其操作,但沒有對消息隊列中的消息進行管理,因此不能直接使用,必須重新實現。對隊列本身的管理可利用mC/OS-II自己的OSQ操作完成,然后使用mC/OS-II中的內存管理模塊實現對消息的創建、使用、刪除回收,兩部分綜合起來即可形成LwIP的消息隊列功能。

sys_thread_new 創建新線程

在mC/OS-II 中,沒有線程(thread)的概念,只有任務(Task)。它已經提供了創建新任務的系統API調用OSTaskCreate,因此只要把 OSTaskCreate封裝一下,就可以實現sys_thread_new。需要注意的是LwIP中的thread并沒有mC/OS-II中優先級的概念,實現時要由用戶事先為LwIP中創建的線程分配好優先級。

lib_arch中庫函數的實現

LwIP協議棧中用到了8個外部函數,這些函數通常與用戶使用的系統或編譯器有關,因此應由用戶自己實現。

LwIP的設備驅動程序接口

LwIP與PPP的程序結構簡要描述如下:

#define NTHREADS 3

#define STACKSIZE( CYG NUM_HAL_STACK_SIZE_TYPICAL + 4096 )

#define NTHREADS 3

#define STACKSIZE ( CYG NUM_HAL_STACK_SIZE_TYPICAL + 4096 )

err = cyg_io_lookup( "/dev/ser1", &handle1 );

if (ENOERR == err) {

middleblink();

} else {

leftblink();

};

pppInit();

pppSetAuth(PPPAUTHTYPE_ PAP," pppuser","pppassword");

pd=pppOpen(handle1,ppp LinkStatus Callback,NULL);

void pppLinkStatusCallback (void * ctx, int errCode, void * arg) {

skipblink();

}

結語

本設計有機地結合了嵌入式終端設備和無線傳輸,符合嵌入式和無線網絡結合的發展趨勢。同時,這一接口設計也對其它視頻監控系統的發展起到一定的借鑒意義。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 精品人人妻人人澡人人爽人人| 国产区卡一卡二卡三乱码免费| 国产精品99久久精品爆乳| 国产成人精品无码专区| 国产AV国片精品一区二区| 免费看黄的网站在线看| 亚洲欧美日韩国产精品一区| 国产日韩在线亚洲字幕中文| 国产免费黄色片| 免费网站看v片在线香蕉| 亚洲欧美日韩精品中文乱码| 九九精品视频在线观看| 中文字幕在线成人免费看| 99精品国产高清一区二区| 性刺激久久久久久久久| 色橹橹欧美在线观看视频高清| 精品久久久久不卡无毒| 色视频在线观看免费| 老马的春天顾晓婷5| 福利小视频在线观看| 欧美人善交videosg| 日本丰满熟妇BBXBBXHD| 小说专区图片专区| 抽搐一进一出gif免费视频| 日本精品少妇一区二区三区 | 国产v亚洲v天堂a无| 人善交video欧美| 亚洲av中文无码乱人伦| 亚洲午夜久久久久妓女影院| 亚洲男人天堂影院| 二十四小时日本高清在线www| 中文字幕av一区乱码| 69网站在线观看| 色综合久久伊人| 欧美黄色一级在线| 欧美日韩高清在线| 日本黄色一级视频| 失禁h啪肉尿出来高h男男视频| 国产日产卡一卡二乱码| 人人妻人人澡人人爽不卡视频| 久久精品这里有|