STM32F207 下用DCMI和USB HS做UVC攝像頭總結(jié)

前言

最近由于公司項目需要,需要做低分辨率(320 * 240 @30fps)DVP接口的特殊攝像頭晶伦,但是主機(jī)沒有DVP接口而芥,最后決定用USB口來轉(zhuǎn)接。由于攝像頭比較特殊耕姊,原始數(shù)據(jù)桶唐,需要做簡單的格式轉(zhuǎn)換和數(shù)據(jù)處理后,才能使用茉兰,不能用一些現(xiàn)成的DVP轉(zhuǎn)USB的IC尤泽,因此方案最終選定為采用STM32F2的DCMI接口(接DVP),然后通過其HS的USB接口轉(zhuǎn)到USB上面规脸。為了讓接口盡量通用坯约,軟件上,要求STM32F2虛擬出一個UVC協(xié)議的攝像頭莫鸭,并可以通過UVC協(xié)議闹丐,配置其工作模式。這樣可以免去了在電腦上開發(fā)USB驅(qū)動的麻煩被因。

資料準(zhǔn)備

由于之前從沒有接觸過STM32F2的USB卿拴,也沒有借出過DCMI接口衫仑,更沒有看過UVC協(xié)議,因此堕花,只能找些現(xiàn)成的資料看看∥挠現(xiàn)在列舉如下:

  1. 網(wǎng)上現(xiàn)成的別人做的STM32F4上的UVC協(xié)議。https://github.com/iliasam/STM32F4_UVC_Camera.git
  2. STM32F2 的Reference manual缘挽,這個可以在ST的官網(wǎng)查到如贷。
  3. STM32F2 的STM32CubeMX相關(guān)軟件。PS:該軟件非常好用到踏,可以大大簡化STM32上的關(guān)于底層驅(qū)動的工作杠袱,并且提供非常全面的API,會中斷回調(diào)函數(shù)窝稿,基本上不用看寄存器楣富,也不用管中斷,時鐘什么的了伴榔,非常推薦使用N坪!
  4. OV7670 的DataSheet
  5. UVC協(xié)議相關(guān)的文檔踪少。這個可以在USB官方網(wǎng)站上下載到塘安,非常必要,且有用援奢。

這么多資料兼犯,不可能開始就全部肯了,看起來需要有技巧集漾∏星基本套路是:

  • 先看看別人的例程是否可以跑起來
  • 再對照協(xié)議文檔(UVC相關(guān))來理解和嘗試修改別人的代碼。
  • 最后根據(jù)自己的項目需求來編寫相關(guān)數(shù)據(jù)處理程序具篇。

工作成果

實(shí)現(xiàn)了讀出OV7670攝像頭(用于測試軟件)的數(shù)據(jù)纬霞,并緩存在隊列中,在USB的DataIn里面發(fā)送出去驱显,并在電腦上诗芜,用攝像頭軟件可以看到攝像頭的內(nèi)容。

測試結(jié)果

  • 用軟件模擬產(chǎn)生數(shù)據(jù)埃疫,最大幀率可以做到80fps(數(shù)據(jù)格式為320*240 YUY2伏恐,未壓縮),已經(jīng)是非常快了熔恢,速度約為(98Mbps, USB HS理論值為 480Mbps)脐湾,完全可以滿足我們項目的要求臭笆。STM32F2 USB HS的速度果然不是蓋的叙淌,非吵诱疲快。
  • 用Ov7670產(chǎn)生數(shù)據(jù)(由于硬件原因鹰霍,只能獲得最大37fps的幀率闻鉴,數(shù)據(jù)格式為320*240 YUY2,未壓縮)茂洒,電腦上的程序可以正確讀出孟岛,錄像結(jié)果為37fps,和ov7670的幀率一致督勺。

需要的注意事項

  • 由于攝像頭數(shù)據(jù)算是比較大了渠羞,而且是持續(xù)性的,為了確保數(shù)據(jù)不丟失智哀,STM32F2的DCMI接口采用了雙緩沖的DMA模式次询,并用軟件做了一個隊列,不停地將雙緩沖結(jié)束后的數(shù)據(jù)壓入隊列瓷叫。這樣便于中間的數(shù)據(jù)處理屯吊。
  • STM32F2 的 DCMI,在設(shè)置DMA的時候摹菠,要注意:DMA的外設(shè)地址盒卸,必須為32位,盡管DVP的接口數(shù)據(jù)位寬為8位次氨。DMA的數(shù)據(jù)長度設(shè)置時蔽介,其實(shí)際長度要和位寬匹配。
  • 注意UVC的協(xié)議頭煮寡,即UVC Header里面的FID和EOF兩個位屉佳。FID要每次發(fā)送新的幀的時候,進(jìn)行翻轉(zhuǎn)洲押。EOF要當(dāng)前幀的最后一次傳送時置位武花。
  • 由于是非壓縮數(shù)據(jù)格式,且為固定幀率杈帐,因此其UVC的頭可以直接采用2個字節(jié)体箕。不要后面的幀時間戳相關(guān)的內(nèi)容。(一般的UVC頭為12個字節(jié))挑童。
  • 在USB DATA IN里面累铅,如果DCMI的數(shù)據(jù)沒有準(zhǔn)備好(USB的數(shù)據(jù)帶寬要大于DCMI的帶寬),那么可以發(fā)送空包出去站叼。也可以只發(fā)UVC頭出去娃兽。我測試了一下,WIN10下面的默認(rèn)相機(jī)軟件是都可以正常工作的尽楔。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末投储,一起剝皮案震驚了整個濱河市第练,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玛荞,老刑警劉巖娇掏,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異勋眯,居然都是意外死亡婴梧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門客蹋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來塞蹭,“玉大人,你說我怎么就攤上這事讶坯「』梗” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵闽巩,是天一觀的道長钧舌。 經(jīng)常有香客問我,道長涎跨,這世上最難降的妖魔是什么洼冻? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮隅很,結(jié)果婚禮上撞牢,老公的妹妹穿的比我還像新娘。我一直安慰自己叔营,他們只是感情好屋彪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绒尊,像睡著了一般畜挥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婴谱,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天蟹但,我揣著相機(jī)與錄音,去河邊找鬼谭羔。 笑死华糖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘟裸。 我是一名探鬼主播客叉,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了兼搏?” 一聲冷哼從身側(cè)響起卵慰,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎向族,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棠绘,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡件相,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了氧苍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夜矗。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖让虐,靈堂內(nèi)的尸體忽然破棺而出紊撕,到底是詐尸還是另有隱情,我是刑警寧澤赡突,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布对扶,位于F島的核電站,受9級特大地震影響惭缰,放射性物質(zhì)發(fā)生泄漏浪南。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一漱受、第九天 我趴在偏房一處隱蔽的房頂上張望络凿。 院中可真熱鬧,春花似錦昂羡、人聲如沸絮记。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怨愤。三九已至,卻和暖如春蛹批,著一層夾襖步出監(jiān)牢的瞬間憔四,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工般眉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留了赵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓柿汛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子络断,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo閱讀 3,707評論 1 20
  • 姓名:張猛 引用自:http://blog.csdn.net/u013985662/article/details...
    oliverabc閱讀 6,619評論 0 3
  • 峽谷外 夕陽剛落下的山影 枯草長貌笨,雁棲樹 風(fēng)塵拂柳弱判,黃土瘦 我曾遺落的腳印 在夜露下 盛滿如虹的月色 像裝了靈魂的...
    話晨閱讀 295評論 0 12
  • 已經(jīng)上班兩天,比較開心的是锥惋,我現(xiàn)在已經(jīng)會讀韓語啦昌腰,可以學(xué)韓語歌啦,至于發(fā)音問題膀跌,還有好幾堂音變課程遭商,不過也不用那么...
    maomizone閱讀 166評論 0 0