999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

QNX下低成本視頻監控方案及實現

2015-01-13 02:19:14蔣俊銘
化工自動化及儀表 2015年9期
關鍵詞:設備

蔣俊銘

(上海交通大學自動化系,上海 200240)

控制系統中,在進行實時控制的同時,常常還希望能夠得到被控對象的視頻監控圖像,這時就必須使用到攝像頭。USB攝像頭作為市場上廣泛使用的設備,具有價格低廉、運用廣泛及技術成熟等特點[1]。使用USB攝像頭可以加速系統開發,同時還能保證系統的穩定性和可靠性。然而QNX操作系統卻沒有提供對于UVC(USB Video Class)攝像頭的支持,為了在QNX控制系統中引入視頻監控,筆者介紹了在resource manager框架[2]下UVC標準攝像頭驅動程序的編寫。

與傳統的操作系統不同,QNX操作系統是一個完全的微內核實時操作系統[3],在其內核中,只提供了線程服務、信號服務、消息傳輸服務、同步服務、時間服務、調度服務和進程管理服務[3]。而常見的網絡協議棧、文件系統、設備驅動及UI接口等都是作為獨立的進程存在于操作系統中的。QNX充分發揮了虛擬內存技術的優勢,保證了系統中各個模塊的獨立,同時也保證了系統各個進程的安全。QNX系統的內核架構如圖1所示。

圖1 QNX系統內核架構

2 驅動程序框架

為了便于實現QNX操作系統下驅動程序的編寫和多進程程序的模塊化,系統提供了resource manager框架。該框架使用了POSIX接口來實現服務進程和客戶端進程的通信,還提供了類似于LINUX文件系統模型的設備訪問接口。這在提高系統靈活性的同時也降低了開發難度。resource manager的結構框架如圖2所示。

圖2 resource manager結構框架

在該框架下,可以方便地使用open()、read()及write()[2]等函數對QNX下的設備進行簡單而快捷的操作。具體的操作流程為:客戶端向驅動程序發送IPC信息(調用open()等函數時產生),驅動程序端的消息等待函數從阻塞等待狀態醒來,然后再到resource manager層搜索相關的函數來處理該信息;待處理過程結束后,消息等待函數重新回到消息等待狀態。為了實現完整的resource manager功能,在編寫驅動程序時,需要提供相應的消息處理函數。本驅動程序在io_open()函數(處理由客戶端open()函數向resource manager發送的io_open消息)中實現了UVC攝像頭描述符解析、配置及啟動等功能,在io_read()函數中實現了同步查詢式的圖像幀數據傳輸等功能,而io_close()函數則用于取消數據傳輸及關閉設備等。

3 UVC標準與USB攝像頭操作

USB設備支持熱插拔,標準統一,同時還有很好的通用性,越來越多的廠商愿意在自己的設備中加入對USB標準的支持。然而隨著越來越多廠商實現了各自的USB攝像頭,USB攝像頭的控制協議也變得越來越紛亂,為了實現對USB攝像頭的標準化,USB標準化組織制定了UVC標準協議。

UVC標準的基本思想為:將USB攝像頭的基本信息(設備描述符)按一定的格式寫在設備自身內部,當USB攝像頭接入系統時,標準的USB協議棧能夠正確地識別該設備所屬的子類,然后將設備注冊到相應的驅動程序,設備對應的驅動程序解讀存儲于設備內部的設備描述符,并根據描述符提供的信息,按UVC協議完成對設備的控制和圖像的獲取。設備描述符如圖3所示。

圖3 設備描述符結構

在獲取了以上描述符并成功注冊設備之后,驅動程序便可以根據UVC操作流程對攝像頭進行操作了。

UVC對于攝像頭的控制主要有視頻控制請求和視頻流請求兩種。這兩種請求都是通過設置請求(set request)和獲取請求(get request)兩種操作來實現的。設置請求和獲取請求的操作參數分別見表1、2。

表1 設置請求操作參數

表2 獲取請求操作參數

由表1和表2的比較可知設置請求操作和獲取請求操作的區別是bmRequestType和bRequest兩個參數不同,bmRequestType指明了具體的操作類型,bRequest指明了要獲取或者設置的參數項,這些參數項所對應的實體和實體內的對象分別由wIndex和wValue指定。需注意的是在同種操作中,針對實體(接口通常被視為虛擬實體)和端點的請求類型碼是不同的。在以上兩個操作的基礎上,UVC標準協議定義了具體的視頻控制請求和視頻流請求。當攝像頭能夠自動調節參數時,處理好視頻流請求操作便可以控制攝像頭了。

視頻流請求最重要的操作是參數探測、參數確認和接口切換,這些操作是啟動視頻流傳輸必須的步驟,圖4為具體的視頻啟動流程。在啟動視頻的過程中,需要進行3次設置操作和一次獲取操作。在探測過程中,需要設置的參數主要有格式編號、幀索引編號及幀間隔等,其中幀格式編號指明了所使用圖像的格式,如MJPG,幀索引編號用于設定分辨率,而幀間隔用于設定幀率。當獲取的默認設置不能滿足要求時需要設置以上參數。

圖4 視頻啟動流程

4 QNX下程序的實現

UVC驅動程序的主要工作包括兩個部分:與QNX系統USB協議棧進行數據交互和建立resource manager處理來自用戶的信息。與QNX系統USB協議棧進行數據交互的過程如圖5所示。該圖詳細描述了UVC驅動程序與其他程序的交互順序。USB協議棧隨操作系統啟動后處于服務狀態,然后UVC驅動進程啟動并向USB棧注冊該驅動所處理設備的類型(UVC設備子類型在USB標準中為0x0e)和相應的回調函數。

圖5 與QNX系統USB協議棧進行 數據交互的過程

完成注冊后,當有UVC標準的攝像頭接入系統時,QNX下USB協議棧會主動通知UVC驅動程序。具體為圖5中“設備接入通知”所示。要啟動視頻流傳輸,還需要客戶端啟動相應的程序,如圖5中“打開設備”所示。因為resource manager支持POSIX標準,所以可以很方便地使用open()、read()及close()等POSIX標準函數實現設備的操作。

圖像數據的傳輸是通過同步查詢的方式實現的。USB下數據的傳輸需要建立URB(Usb Request Block)[4],然后用如下函數向USB協議棧提交URB和數據傳輸請求:

int usbd_setup_isochronous(

struct usbd_urb * urb, //URB指針

uint32_t flags,//請求傳輸類型

int32_t frame,//特定幀編號

void * addr,//緩沖區地址

uint32_tlen );//緩沖區長度

視頻傳輸啟動后,數據幀隨URB返回到驅動程序。當獲取數據幀之后,需要將圖像數據從數據幀中提取出來。本程序中使用了MJPEG格式作為圖像幀格式,相應的數據幀格式如圖6所示。當URB收到數據并返回后,會同時返回數據幀的總長度,將幀頭長度減去之后,得到有效數據的長度,將有效圖像數據從數據幀中取出,并重新組裝成圖像幀,便可以成功獲取MJPEG圖像幀了。

5 結束語

選用了羅技C270型號的攝像頭作為圖像獲取設備,并在QNX平臺下成功實現了UVC標準下攝像頭驅動程序的編寫。該驅動程序能夠穩定獲取320×240、30Hz的圖像,并能夠滿足對分辨率要求不高的環境下的監控。因為該攝像頭驅動程序滿足UVC標準,所以該驅動程序同時還具有很好的移植性,可以很方便地進行移植。

圖6 數據幀格式

[1] 李涵.USB接口驅動的研究與設計[D].青島:山東科技大學,2005.

[2] 徐竟青,黃俊峰,李一平.QNX設備驅動程序的編制[J].計算機工程,2003,29(12): 176~178.

[3] 任寧寧.多核平臺下強實時操作系統QNX調度機制的應用研究[D].成都:西南交通大學,2013.

[4] 楊偉,劉強,顧新.Linux下USB設備驅動研究與開發[J].計算機工程,2006,32(19):283~285.

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 日韩二区三区| 手机精品福利在线观看| 国产精品天干天干在线观看| 国产91视频免费观看| 免费在线色| 亚洲欧美在线精品一区二区| 欧美中出一区二区| 97久久超碰极品视觉盛宴| 亚洲va欧美va国产综合下载| 亚洲激情区| 美美女高清毛片视频免费观看| 在线看片国产| 中国国产一级毛片| 全部毛片免费看| 国产在线拍偷自揄拍精品 | 亚洲高清中文字幕在线看不卡| 在线亚洲小视频| 91小视频在线播放| 国产亚洲欧美日韩在线一区| 久无码久无码av无码| 日本人又色又爽的视频| 国产午夜一级毛片| 女人18毛片水真多国产| 亚洲一区无码在线| 99久久精品久久久久久婷婷| 18禁黄无遮挡免费动漫网站| 国产精品污污在线观看网站| 亚洲精品不卡午夜精品| 免费国产高清视频| 中文字幕在线欧美| 秘书高跟黑色丝袜国产91在线| 国产丝袜精品| 亚洲二三区| a在线观看免费| 久久国产V一级毛多内射| 99ri精品视频在线观看播放| 国产成人综合在线视频| 亚洲精品福利视频| 日本欧美在线观看| 亚洲AⅤ波多系列中文字幕| 国产精品福利导航| 色欲不卡无码一区二区| 国产精品欧美日本韩免费一区二区三区不卡 | 亚洲高清无码久久久| 日韩人妻精品一区| 波多野衣结在线精品二区| 国产专区综合另类日韩一区| 99er这里只有精品| 午夜国产理论| 国产XXXX做受性欧美88| 毛片网站免费在线观看| 日韩精品免费一线在线观看| 国产精品一区二区在线播放| 粉嫩国产白浆在线观看| 97视频在线观看免费视频| 国产日本视频91| 1769国产精品视频免费观看| 国产日韩精品欧美一区喷| 精品国产一二三区| 亚洲日本中文字幕乱码中文| 日韩精品一区二区三区中文无码 | 国产精品太粉嫩高中在线观看| 午夜无码一区二区三区| 久久福利网| 日本黄色不卡视频| 国产精品黑色丝袜的老师| 国产欧美在线| 伊人中文网| 亚洲欧美在线综合图区| 国产精品无码久久久久AV| 99热亚洲精品6码| 国产91在线|中文| 尤物精品视频一区二区三区| 国产在线观看人成激情视频| 亚洲美女高潮久久久久久久| 国产一在线| 国产激情无码一区二区免费| 91丝袜美腿高跟国产极品老师| 国产成人a毛片在线| 国内精品久久九九国产精品| 一级爆乳无码av| 久久精品国产国语对白|