<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è) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM Linux的3G無(wú)線(xiàn)車(chē)載視頻監控系統

基于A(yíng)RM Linux的3G無(wú)線(xiàn)車(chē)載視頻監控系統

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

2.2 監控中心
車(chē)輛監控中心由顯示屏幕、監控服務(wù)器、主控工作臺、路由器和存儲器等硬件組成。按功能區分,其基本功能模塊有數據接收模塊、解碼模塊、顯示模塊和存儲模塊等。由于監控中心硬件可采用通用器件,故不需要進(jìn)行專(zhuān)門(mén)的選型設計。

3 系統軟件實(shí)現
系統選擇Linux操作系統。Linux具有源代碼開(kāi)放、成本低廉、內核可裁減性強等特點(diǎn),且集成有TCP/IP協(xié)議,對網(wǎng)絡(luò )的支持是相對于其他操作系統的優(yōu)勢?;贏(yíng)RM Linux的終端的軟件設計主要完成三方面的工作:第一在硬件上搭建一個(gè)軟件平臺,搭建嵌入式Linux軟件開(kāi)發(fā)平臺需要完成UBOOT移植、嵌入式Linux操作系統內核移植以及嵌入式Linux操作系統的設備驅動(dòng)程序的開(kāi)發(fā)等工作;第二在軟件平臺的基礎上,借助交叉編譯工具,開(kāi)發(fā)終端上運行的采集、壓縮、流媒體服務(wù)器程序;第三監控中心運行的接收、解壓縮、顯示程序。
3.1 S3C2440A的Linux平臺的搭建
構建嵌入式Linux開(kāi)發(fā)平臺需要先構建交叉編譯環(huán)境。一套完整的交叉編譯環(huán)境包括主機和目標機。在開(kāi)發(fā)中主機是一臺裝有Centos 5.5操作系統的PC機,目標機是基于S3C2440A的終端。選用的嵌入式Linux內核源代碼包版本號為2.6.28,交叉編譯器是GCC 4.3.2。編譯內核之前首先要配置內核,裁減掉冗余的功能模塊。具體步驟如下:
(1)通過(guò)命令make menuconfig,對內核進(jìn)行配置,選擇YAFFS文件系統,支持NFS啟動(dòng),啟用USB設備支持模塊,包括USB設備文件支持模塊、USB主控制器驅動(dòng)模塊等。此外,USB攝像頭屬于視頻設備,還需要啟用Video4Linux模塊;
(2)用make dep命令生成內核程序間依賴(lài)關(guān)系;
(3)make zlmage命令生成內核映像文件;
(4)make modules和make modules_install命令生成系統可加載模塊。這樣就生成了zlmage內核映像文件,把它下載到目標平臺的FLASH中。
本設計采用USB外置攝像頭,在內核配置時(shí)要求以模塊形式動(dòng)態(tài)加載。首先要完成驅動(dòng)程序驅動(dòng)中需要提供基本的I/O操作接口函數open、read、write、close的實(shí)現,對中斷的處理實(shí)現,內存映射功能以及對I/O通道的控制接口函數ioctl等,并把他們定義在struct file_operations中。接著(zhù)把USB驅動(dòng)程序編譯成可以動(dòng)態(tài)加載的模塊。
3.2 車(chē)載移動(dòng)終端軟件設計
3.2.1 模塊程序設計
接收機15L輸出數據格式符合NMEA-0183標準。NMEA-0183協(xié)議是由美國國家海洋電子協(xié)會(huì )制定的一種串行通信的數據協(xié)議,所有輸入輸出信息均為一行ASCII字符。它的一條消息稱(chēng)為語(yǔ)句(Sentence),每條語(yǔ)句都以“$”開(kāi)始,以回車(chē)換行符(CR>LF>)結束,中間是用逗號分隔的若干個(gè)域。一條NMEA-0183語(yǔ)句包含以下5個(gè)部分:起始符,固定字符“$”,表示語(yǔ)句開(kāi)始;標識符域,表示一條語(yǔ)句的全部數據域的特定格式,長(cháng)度可變;數據域,包含各種類(lèi)型的數據,各數據之間用逗號分隔,數據域可以為空,但用來(lái)分隔數據的逗號不可省略;校驗和,以“{”開(kāi)始,由2個(gè)字符的十六進(jìn)制數組成;結束符,固定字符CR>LF>,表示語(yǔ)句結束。NMEA-0183語(yǔ)句中最常見(jiàn)的幾種格式有GPGG A(Global Positioning System Fix Data)、GPRMC、GPGSV、GPVTG等,它們包含的信息不盡相同。本設計中采用的是GPGGA輸出語(yǔ)句,它包含了主要的GPS定位數據。獲取GPS數據流程圖如圖3所示。

本文引用地址:http://dyxdggzs.com/article/148087.htm

c.JPG


由圖3可以看出,GPS模塊啟動(dòng)后首先對串口的初始化也就是對GPS模塊的初始化,包括設置波特率、數據位、校驗位等;然后后開(kāi)始接收GPS數據,即從串口讀數據,并將讀到的數據保存到BUF中,接著(zhù)進(jìn)入數據的解析和提取階段,判斷BUF[5]是否等于“c”以判斷是否為MYMGPR MC,若是,則開(kāi)始提取經(jīng)緯度、時(shí)間等信息并存入結構體GPS_DATA中。
3.2.2 視頻采集模塊設計與實(shí)現
視頻采集模塊是通過(guò)嵌入式Linux操作系統調度V4L(Video4Linux)及影像設備驅動(dòng)程序來(lái)完成視頻采集。V4L是Linux影像系統與嵌入式影像的基礎,是Linux kernel里支持影像設備的一組API。在Linux操作系統中,外部設備被作為設備文件來(lái)管理,從而使得對外部設備的操作就轉變成對設備文件的操作。其采集流程如圖4所示。

d.JPG

linux相關(guān)文章:linux教程


攝像頭相關(guān)文章:攝像頭原理


關(guān)鍵詞: GPS 3G 視頻監控 H.264 RTP

評論


相關(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>