色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

基于ARM11的無線視頻監(jiān)控系統(tǒng)

發(fā)布時間:2015-10-30 15:29    發(fā)布者:designapp
關(guān)鍵詞: ARM11 , 視頻監(jiān)控
  摘 要:設計了一種基于ARM11+Linux 系統(tǒng)組成的無線視頻監(jiān)控系統(tǒng)。為提高運算速度,系統(tǒng)采用ARM11 微處理器S3C6410 作為主處理器,采用OV9650 攝像頭作為圖像采集設備,用硬編碼方式對圖像數(shù)據(jù)進行H264編碼。接著通過WI-FI 無線網(wǎng)絡和RTP 流媒體傳輸協(xié)議把已編碼的數(shù)據(jù)傳送到遠端的服務器上顯示。實現(xiàn)了運行穩(wěn)定、速度快、成本低、體積小的無線視頻監(jiān)控平臺,具有很大的實用價值。
  1 引言
  隨著無線網(wǎng)絡的普及,ARM 處理器運算的能力不斷地增強以及計算機處理圖像的技術(shù)不斷地提高,基于ARM 的視頻監(jiān)控正越來越廣泛的應用于學校,社區(qū),酒店,網(wǎng)吧,醫(yī)療等各種各樣地領(lǐng)域。傳統(tǒng)的視頻監(jiān)控系統(tǒng)布線復雜,設備龐大,智能化低,以及軟硬件資源得不到充分的發(fā)揮。而ARM 嵌入式系統(tǒng)的小型化、占用空間小、成本低廉、結(jié)構(gòu)緊湊、支持無線網(wǎng)絡等特點,使得利用S3C6410 的ARM11+linux系統(tǒng)構(gòu)成各種各樣的無線網(wǎng)絡數(shù)字監(jiān)控系統(tǒng)具有廣泛的應用價值。
  2 系統(tǒng)整體設計
  2.1 硬件總體設計
  本系統(tǒng)采用韓國三星公司ARM11 內(nèi)核的S3C6410 作為微處理器,該款處理器體積小,尺寸僅相當于一個48mm*67mm 方塊的大小,同時集成了豐富的接口,32 位數(shù)據(jù)總線和32 位外部地址總線,SROM 控制器、 SRAM 控制器、NAND 閃存控制器、64 個中斷源的中斷控制器、五個三十二位定時器、四個UART、四個DMA 控制器、STN 與TFT LCD 控制器、看門狗、IIS 音頻接口、IIC-Bus 接口、兩個USB host口、一個USB device 口、兩個串行外圍接口電路、三個SD 卡接口、camera_if 接口、TV_out 接口、MFC接口、2 路SPI、Touch Screen 接口,其主頻可達800MHz,擴展總線最大頻率133MHz.在此基本上,還進行了相關(guān)的擴展,引出了一個四線RS-232 串口,該串口用于開發(fā)主機與S3C6410 開發(fā)平臺進行通信;配置了1GB 的NANDflash,用于存放嵌入式linux操作系統(tǒng),應用程序和數(shù)據(jù),128MB 的DDR 內(nèi)存,用于存放運行程序,攝像頭捕獲的數(shù)據(jù);擴展了一個WIFI 模塊,用于開發(fā)平臺與服務器傳輸視頻數(shù)據(jù),通過無線網(wǎng)絡實現(xiàn)視頻遠程監(jiān)控。
  2.2 軟件總體設計
  軟件總體結(jié)構(gòu)包括引導加載程序Bootloader、操作系統(tǒng)內(nèi)核,設備驅(qū)動程序和應用層程序,其軟件結(jié)構(gòu)如圖1 所示。
  


  圖1 軟件總體結(jié)構(gòu)框圖
  該系統(tǒng)上電后,先運行引導加載程序Bootloader,該程序的作用是初始化硬件設備、建立內(nèi)存空間的映射表,引導和加載操作系統(tǒng)內(nèi)核,然后啟動嵌入式操作系統(tǒng)linux,接著加載Nand flash 驅(qū)動程序、LCD 驅(qū)動程序、WIFI 驅(qū)動程序等一些必要的驅(qū)動程序。
                               
                  3 視頻數(shù)據(jù)采集和編碼設計
  3.1 基于V4L2 視頻數(shù)據(jù)采集設計
  在Linux 系統(tǒng)下,對視頻設備的各種操作是通過Video4Linux2 實現(xiàn)的,簡稱V4L2.應用程序通過V4L2 提供的接口函數(shù)實現(xiàn)視頻設備的操作。整個視頻數(shù)據(jù)采集的過程如圖2 所示。
  ( 1) 打開視頻設備, int open( const char *pathname, int flags)。調(diào)用該函數(shù),若返回值為-1,表示打開失敗,否則,表示所打開設備的文件描述符。
  (2)取得設備信息。通過ioctl(cam_fp, VIDIOC_QUERYCAP, &cap)函數(shù)來取得設備文件的屬性參數(shù)并存儲于cap 結(jié)構(gòu)中,其中cam_fp 指的是打開的視頻設備的文件描述符。
  ( 3)選擇視頻輸入方式。通過ioctl(cam_fp,VIDIOC_ S_INPUT, &chan)函數(shù)設置視頻設備的輸入方式,其中chan 的數(shù)據(jù)結(jié)構(gòu)類型是v4l2_input,用來指定視頻的輸入方式。
  ( 4 ) 設置視頻幀格式。通過ioctl(cam_fp ,VIDIOC_S _FMT, &fmt)函數(shù)設置視頻的幀格式,其中fmt 的數(shù)據(jù)結(jié)構(gòu)類型是v4l2_format,用來指定視頻的寬度、高度、像素大小等。
  (5)讀取視頻數(shù)據(jù)。通過read(cam_fp, g_yuv,YUV_ SIZE)函數(shù),把攝像頭一幀的數(shù)據(jù)存放到g_yuv中,其中YUV_ SIZE 指的是每幀數(shù)據(jù)的大小。
  (6)關(guān)閉視頻設備。通過close(cam_fp)函數(shù)來實現(xiàn)視頻設備的關(guān)閉。
  


  圖2 視頻數(shù)據(jù)采集流程框圖。
  3.2 視頻數(shù)據(jù)的H264 編碼
  為了提高視頻數(shù)據(jù)編碼速度,本系統(tǒng)采用的是H264 硬編碼方式,硬編碼具有不占用CPU 資源,運算速度快等優(yōu)點,從而滿足視頻數(shù)據(jù)實時性的要求。
  具體編碼的過程如圖3 所示。
  (1)創(chuàng)建H264 編碼結(jié)構(gòu)。調(diào)用SsbSipH264EncodeInit (width, height, frame_rate, bitrate, gop_num)函數(shù)實現(xiàn)的,其中width 表示圖像的寬度,height 表示圖像的高度,frame_rate 表示幀頻,bitrate 表示比特率或碼率,gop_num 表示兩個相離關(guān)鍵幀之間最多包含多少個幀(B 或P 幀)。
  (2)初始化H264 編碼結(jié)構(gòu),調(diào)用SsbSipH264Encode Exe (handle)函數(shù)。
  (3)獲取視頻輸入地址,SsbSipH264EncodeGetInBuf (handle, 0)函數(shù)來實現(xiàn),該函數(shù)返回視頻輸入的首地址,存放在p_inbuf 中。
  (4)輸入視頻數(shù)據(jù),調(diào)用memcpy(p_inbuf, yuv_buf, frame_size)函數(shù)實現(xiàn),p_inbuf 存放需要編碼的數(shù)據(jù),yuv_buf 存放原始視頻數(shù)據(jù),frame_size 表示數(shù)據(jù)的大小。
  (5)編碼視頻數(shù)據(jù),對p_inbuf 內(nèi)容進行H264編碼,調(diào)用SsbSipH264EncodeExe(handle)函數(shù)實現(xiàn)。
  (6)輸出已編碼的數(shù)據(jù),SsbSipH264EncodeGetOutBuf (handle, size),該函數(shù)返回已編碼圖像的首地址,size 表示已編碼圖像的大小。
  (7)關(guān)閉硬編碼設備,調(diào)用SsbSipH264EncodeDeInit (handle)函數(shù)實現(xiàn)的。
  


  圖3 H264 編碼流程框圖。
  4 視頻數(shù)據(jù)的傳輸和顯示
  4.1 視頻數(shù)據(jù)傳輸模塊設計
  現(xiàn)代無線通信網(wǎng)絡標準主要有3G(第三代移動通信),WI-FI,Bluetooth,Zigbee(紫蜂)等,具體詳見表1.
  表1 常用無線通信網(wǎng)絡標準的基本比較
  


  由于WI-FI 具有傳輸率高,支持的協(xié)議多,安裝及設置簡單,成本低等優(yōu)點,所以本系統(tǒng)采用的無線網(wǎng)絡標準是WI-FI.
                               
                  4.1.1 WI-FI 無線網(wǎng)絡搭建過程
  (1)加載WI-FI 模塊。通過insmod 命令加載,這里需要加載2 個文件helper_sd.bin、sd8686.bin,這2 個文件可以從Marvel 官方網(wǎng)站下載。
  (2)搜索WI-FI 網(wǎng)絡。先用ifconfig eth1 up 命令把WI-FI 網(wǎng)絡接口卡打開,然后用iwlist eth1 scanning命令搜索WIFI 網(wǎng)絡。
  (3)設置eth1 的ip 地址和子網(wǎng)掩碼。
  (4)設置ESSID.通過iwconfig eth1 essid 402命令實現(xiàn)的,ESSID 用來區(qū)分不同的網(wǎng)絡。
  (5)設置密碼。通過iwconfig eth1 key s:your_key命令實現(xiàn)的,其中your_key 就是登陸密碼。
  4.1.2 基于RTP 協(xié)議的視頻數(shù)據(jù)傳輸
  RTP 是實時傳送協(xié)議( Real-time TransportProtocol)的縮寫,代表一個網(wǎng)絡傳輸?shù)膮f(xié)議,為音頻、視頻上傳中的常用協(xié)議[5].RTCP 和RTP 一起提供流量控制和擁塞控制服務,它們能以有效反饋和最小開銷使傳輸效率最佳化,因而特別適合傳送實時的數(shù)據(jù),所以采用該協(xié)議傳輸視頻數(shù)據(jù)。
  本系統(tǒng)采用開源代碼Jrtplib 提供的RTP 協(xié)議棧,由于Jrtplib 對RFC3550 的實現(xiàn)進行了封裝,使得傳輸視頻數(shù)據(jù)更加簡單。由于本系統(tǒng)的網(wǎng)絡最大有效載荷為1500 字節(jié),因此設置RTP 包大小的上限為1400 字節(jié),如果發(fā)送的數(shù)據(jù)大于1400 字節(jié),則采用拆包的方法再發(fā)送,具體傳輸過程如圖4 和圖5 所示。
  


  圖4 發(fā)送端流程框圖。
  


  圖5 接收端流程框圖。
  發(fā)送端主要過程如下:
  (1)創(chuàng)建RTP 會話并設置目標地址。調(diào)用Create方法得到RTP 會話實例,然后調(diào)用AddDestination 方法設置目標IP 以及目標端口號。
  (2)獲得數(shù)據(jù),調(diào)用Get_Data()函數(shù)得到。
  (3)發(fā)送數(shù)據(jù),通過SendPacket()方法實現(xiàn)。
  接收端主要過程如下:
  (1)創(chuàng)建RTP 會話。調(diào)用Create 方法來創(chuàng)建一個會話實例,并且在創(chuàng)建會話的同時設置端口號,要與發(fā)送端的端口號保持一致。
  (2)接受RTP 數(shù)據(jù)。調(diào)用RTPSession 類的PollData()方法接收數(shù)據(jù)。
  (3)保存RTP 數(shù)據(jù)報。通過創(chuàng)建了一個指針數(shù)組,里面存放的是RTP 數(shù)據(jù)報的指針,只要將剛接收到RTP 數(shù)據(jù)報的指針賦給這個指針數(shù)組即可,這樣可以節(jié)省數(shù)據(jù)拷貝的時間。
  (4)判斷是否接收完成,如果沒有,則跳轉(zhuǎn)到第b 步,否則接收端程序退出。
                               
               
本文地址:http://www.54549.cn/thread-155175-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表