• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于i.MX6Q 的智能電子后視鏡系統(tǒng)設(shè)計方法

      2022-11-18 14:01:46張宏寬樓勇亮胡權(quán)顧晨舒信陽
      電子設(shè)計工程 2022年22期
      關(guān)鍵詞:光感緩沖區(qū)線程

      張宏寬,樓勇亮,胡權(quán),顧晨,舒信陽

      (數(shù)源科技股份有限公司,浙江杭州 310012)

      公交和旅游大巴等大型車輛的車身長,轉(zhuǎn)彎時前內(nèi)輪轉(zhuǎn)彎半徑與后內(nèi)輪轉(zhuǎn)彎半徑不同,存在“內(nèi)輪差”。傳統(tǒng)后視鏡采用的是玻璃反光鏡,特別是在雨雪、大霧等天氣情況下,存在視野盲區(qū)和視覺模糊問題,駕駛員無法實時了解車外障礙物和行人車輛信息[1],存在安全隱患。隨著嵌入式流媒體技術(shù)和智能化技術(shù)的快速發(fā)展[2-3],電子后視鏡[4-6]能夠為司機(jī)提供行車安全輔助作用,通過在車內(nèi)左、右A 柱兩側(cè)安裝顯示屏,實時采集車外盲區(qū)的視頻圖像,可以讓司機(jī)實時了解到車外狀況,為安全駕駛提供了保障[7]。

      1 系統(tǒng)整體設(shè)計

      該文所設(shè)計的電子后視鏡,采用一路主機(jī)驅(qū)動兩路高清屏的設(shè)計方案,主要由i.MX6Q CPU 主控模塊、左右顯示屏、光感、SD 卡、4 路720P 的數(shù)字?jǐn)z像頭組成。系統(tǒng)采用NXP 公司的車規(guī)SOC 處理器i.MX6Q,其為ARM Cortex-A9架構(gòu),有四個內(nèi)核,主頻是1.2 GHz。它擁有三個Vivante的GPU,分別是GC2000、GC320、GC355。GC2000 負(fù)責(zé)3D 圖形的加速,GC320負(fù)責(zé)2D 圖形的加速,GC355 負(fù)責(zé)矢量圖形的加速[8]。i.MX6Q 有兩個IPU,能夠接收MIPI CSI-2 格式數(shù)據(jù),通過LDB 控制到左顯示屏,HDMI 控制輸出到右顯示屏。i.MX6Q 視頻處理單元VPU 支持MJPG、MPEG-4、H.263 和H.264 編解碼格式[9-10],可以將采集到的數(shù)據(jù)進(jìn)行編碼壓縮存儲到SD 卡。電子后視鏡的整體系統(tǒng)框架圖如圖1 所示。

      BH1750FVI 光感模塊安裝在顯示屏上,用于感知光照強(qiáng)度。光感能夠根據(jù)光照的強(qiáng)弱動態(tài)改變數(shù)值,用于i.MX6Q 自動調(diào)節(jié)顯示屏的背光亮度,實現(xiàn)環(huán)境光自適應(yīng)控制。

      系統(tǒng)的主要信號流向為4 路分辨率為720P、幀率為30 FPS 的數(shù)字?jǐn)z像頭產(chǎn)生的數(shù)字視頻圖像通過同軸線纜傳輸?shù)絠.MX6Q 主機(jī),再進(jìn)行格式轉(zhuǎn)換,輸出到左右顯示屏,同時將視頻流進(jìn)行壓縮編碼存儲到SD 卡并且通過光感調(diào)節(jié)屏幕的背光亮度。

      2 硬件設(shè)計

      i.MX6Q 主機(jī)由內(nèi)存DDR、EMMC 和i.MX6Q CPU組成的最小子系統(tǒng),加上Maxim 的MAX9286 和TI 的DS90UB947 和DS90UB949 組成。MAX9286 芯片集成四通道1.5 Gbps GMSL 解串器,能夠接收和自動同步來自四個串行器的視頻輸入和CSI-2 輸出[11],主機(jī)的框架圖如圖2 所示。

      在設(shè)計中MAX9286 接收4 路分辨率為720P、幀率為30 FPS 的數(shù)字?jǐn)z像頭產(chǎn)生的影像數(shù)據(jù),并且進(jìn)行格式轉(zhuǎn)換成CSI-2 輸出到i.MX6Q,經(jīng)IPU 單元將CSI-2 格式的數(shù)據(jù)轉(zhuǎn)換成4 路720P 的YUV422 格式數(shù)據(jù),通過使用DMA 方式傳輸?shù)礁髯灾付ǖ膬?nèi)存塊上,便于GPU 進(jìn)行處理。同時,IPU 需要把內(nèi)存中720P、YUV422 的格式數(shù)據(jù)轉(zhuǎn)換成480P、YUV420 格式,通過DMA 方式傳輸?shù)街付ǖ膬?nèi)存物理地址上,用于VPU 進(jìn)行編碼壓縮處理,并存儲到SD 卡內(nèi)。

      i.MX6Q 內(nèi)部的硬件GPU 模塊GC320 主要負(fù)責(zé)2D 圖像的處理,它將IPU 處理后傳輸?shù)絻?nèi)存中的720P、YUV422 數(shù)據(jù)轉(zhuǎn)成RGB 格式,并且對其中的2路視頻數(shù)據(jù)進(jìn)行鏡像操作,通過使用DMA 方式將RGB 數(shù)據(jù)傳輸?shù)絝ramebuffer 指定的物理內(nèi)存地址上,用于顯示屏的顯示。

      顯示接口主要是使用串行總線FPD-Link III(Flat Panel Display Link III),以實現(xiàn)單個差分鏈路高速視頻數(shù)據(jù)傳輸和雙向全雙工的通信。DS90UB947是一款OpenLDI 到FPD-Link III 的橋接器件,可串行化OpenLDI(LVDS)的輸入并支持WUXGA 和1080P的視頻分辨率(24 位色深)[12]。DS90UB949 是HDMI到FPD-Link III 的橋接器件。該器件可串行化HDMI v1.4b 的輸入同時支持WUXGA 和1 080P 的視頻分辨率(24位色深)[13]。DS90UB948是FPD-Link III解串器,與DS90UB949/947 串行器配合使用,可將單通道或雙通道FPD-Link III 流轉(zhuǎn)換成FPD-Link(OpenLDI) 接口格式[14],它能夠從單通道或雙通道FPD-Link III 串行流中恢復(fù)數(shù)據(jù),然后將其轉(zhuǎn)換為雙像素8 個LVDS 數(shù)據(jù)通道+時鐘。

      該文采用雙屏驅(qū)動顯示方案,采用DS90UB947串行器和DS90UB948 解串器配合,DS90UB949 串行器和DS90UB948 解串器配合。i.MX6Q 的顯示輸出有多種方式,該文通過i.MX6Q 的LDB 模塊輸出低壓差分信號(LVDS)到DS90UB947 串行器,經(jīng)過FPDLink III 串行總線到DS90UB948 解串器,最后輸出LVDS信號到左顯示屏。另一路通過i.MX6Q的HDMI控制器輸出HDMI 信號到DS90UB949 串行器,經(jīng)過FPD-Link III 串行總線到DS90UB948 解串器,最后輸出LVDS 信號到右顯示屏,完成雙屏顯示功能。

      FPD-Link III 接口支持通過同一條差分鏈路實現(xiàn)雙向全雙工的通信。將BH1750FVI 光感通過I2C接口接入DS90UB948解串器,CPU 就能夠把I2C 信號通過DS90UB947 串行器、FPD-Link 總線以及DS90 UB948 解串器透傳到光感傳感器,間接實現(xiàn)對它的控制。通過讀取光感傳感器值獲得光照強(qiáng)度值,達(dá)到對顯示屏的背光亮度進(jìn)行調(diào)節(jié)。

      3 軟件設(shè)計

      在i.MX6Q 主機(jī)采用Linux 系統(tǒng),版本為V4.1.15,設(shè)計采用的數(shù)字?jǐn)z像頭幀率為30 FPS,分辨率為720P。為充分利用CPU 的多核架構(gòu),軟件上采用多線程設(shè)計,軟件架構(gòu)圖如圖3 所示。在應(yīng)用程序Main 主線程中派生出一個視頻處理線程、一個背光控制線程、兩個視頻接口自動偵測與恢復(fù)機(jī)制的線程和四個視頻存儲線程。由于在視頻處理線程中采集到的數(shù)據(jù)既要用于顯示,又需要提供給視頻存儲線程,這就涉及到多個線程搶占一個資源的情況和線程間的同步問題。電子后視鏡的主要用途是顯示,在視頻處理線程中不能對公共資源進(jìn)行限制,不然會影響顯示的延時時間,而對于視頻存儲線程又需要采集數(shù)據(jù)。因此為了兼顧視頻存儲的需求,在視頻存儲線程中需要增加緩沖區(qū),將視頻處理線程中采集到的數(shù)據(jù)復(fù)制到緩沖區(qū)中,在不影響顯示延時時間的同時保證視頻存儲線程的正常工作。背光控制線程和視頻接口自動偵測與恢復(fù)機(jī)制的線程是各自獨立的,能分別進(jìn)行工作。

      3.1 視頻處理線程

      視頻處理線程分為初始化參數(shù)、視頻圖像的采集、圖像格式的轉(zhuǎn)換處理和圖像顯示四部分。V4L2是Linux 中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動模塊。該文是基于V4L2 框架與顯示系統(tǒng)來進(jìn)行編程的,步驟主要如下:

      1)分別打開視頻設(shè)備文件(/dev/video0—video3),獲得四個文件的描述符;

      2)通過獲得視頻設(shè)備文件描述符查詢視頻設(shè)備的信息和功能,例如,判斷是否是一個視頻捕捉設(shè)備并且具有數(shù)據(jù)流控制模式;

      3)設(shè)置視頻的制式和幀格式;

      4)分別打開顯示設(shè)備文件(/dev/fb0 和fb2),獲得兩個顯示文件描述符;

      5)從Framebuffer 中獲取相應(yīng)顯示設(shè)備的可變信息(Framebuffer 的長度、寬度以及顏色深度);

      6)從Framebuffer 獲取相應(yīng)顯示設(shè)備的信息(Framebuffer 的起始物理地址);

      7)設(shè)置Framebuffer 的顯存大小是實際屏幕大小的3 倍;

      8)向內(nèi)存申請連續(xù)的物理內(nèi)存;

      9)將申請到的物理內(nèi)存作為幀緩沖區(qū);

      10)使幀緩沖區(qū)全部入隊列,以便存放采集到的數(shù)據(jù);

      11)開始視頻采集;

      12)出隊列以取得已采集數(shù)據(jù)的幀緩沖以及原始采集數(shù)據(jù);

      13)將原始YUV422 格式數(shù)據(jù)轉(zhuǎn)成RGBA8888,用于屏幕顯示;

      14)將原始采集的YUV422格式數(shù)據(jù)轉(zhuǎn)成YUV420,將分辨率裝換為480P,并復(fù)制到用于錄像線程的緩沖區(qū)中作為原始數(shù)據(jù);

      15)將幀緩沖區(qū)重新入隊列,這樣可以循環(huán)采集;

      16)停止視頻的采集;

      17)關(guān)閉視頻設(shè)備。

      電子后視鏡的4 路攝像頭需要分別投在車內(nèi)A柱的左、右兩個屏上顯示,因此需要作分屏操作。以車身為參照物,1/3 屏顯示A 柱前盲區(qū),對應(yīng)映射的攝像頭需朝前,采集到的數(shù)據(jù)顯示到車內(nèi)屏上會產(chǎn)生左右鏡像。2/3 屏顯示后面的盲區(qū),對應(yīng)映射的攝像頭需朝后,不會產(chǎn)生鏡像。因此需要對朝前攝像頭采集到的數(shù)據(jù)進(jìn)行鏡像矯正后再顯示到屏上。

      3.2 背光控制線程

      在背光控制線程中,需要將光感傳感器的驅(qū)動注冊到內(nèi)核中,再根據(jù)數(shù)據(jù)手冊進(jìn)行上電,讀ID 判斷光感傳感器設(shè)備是否可以正常工作。在應(yīng)用程序中就可以對光感進(jìn)行定制化了,主要步驟如下:

      1)打開光感傳感器所掛載的I2C 總線,獲得文件描述符;

      2)打開背光亮度值文件描述符;

      3)通過宏I2C_SLAVE,設(shè)置光感的設(shè)備地址;

      4)讀取光感傳感器的亮度值;

      5)根據(jù)光感傳感器和背光亮度值的對照表,調(diào)節(jié)顯示器背光亮度;

      6)延時200 ms,回到第4)步。

      3.3 視頻接口自動偵測與恢復(fù)機(jī)制的線程

      由i.MX6Q 輸出視頻信號到DS90UB947,經(jīng)過FPD-link 線再到DS90UB948,最后輸出到顯示屏上。在FPD-link 線束接口一側(cè),由于車輛行駛過程中車載設(shè)備受到路面顛簸振動,會導(dǎo)致視頻接口的瞬間松動,引起顯示屏的圖像丟失,為解決線束接口瞬間抖動引起的斷線重連,需要對DS90UB948 初始化才能夠讓顯示屏重新顯示圖像。因此需要通過DS90UB947 不斷偵測DS90UB948 是否連接正常,當(dāng)出現(xiàn)線束松開再接上的異常情況時,需對DS90UB948進(jìn)行重新初始化才能讓顯示屏正常工作。該設(shè)計中有2 路視頻接口自動偵測與恢復(fù)機(jī)制的線程,其過程是相似的,因此只做其中一路的說明,如圖4 所示。

      應(yīng)用程序的具體流程步驟如下:

      1)初始化變量flag,并清零;

      2)打開DS90UB947 所掛載的I2C 總線,獲得文件描述符;

      3)通過宏I2C_SLAVE,設(shè)置DS90UB947 和DS 90UB948 的設(shè)備地址;

      4)初始 化DS90UB947 和DS90UB948 的相關(guān)寄存器;

      5)讀取DS90UB947 的寄存器,判斷連接是否正常;

      6)如果連接斷開,將設(shè)置flag 為1,并回到第5)步。如果連接正常,將到第7)步執(zhí)行;

      7)判斷flag 是否為1,如果flag 不為1,則回到第5)步執(zhí)行;

      8)設(shè)置DS90UB948 的相關(guān)寄存器,能讓屏幕重新點亮,并把flag 清零,再回到第5)步執(zhí)行。

      3.4 視頻存儲線程

      在視頻存儲線程中,需要對攝像頭采集的數(shù)據(jù)進(jìn)行H264 編碼。有兩種編碼的方式:使用CPU 或者VPU 硬件模塊。由于使用CPU 編碼的方式,會導(dǎo)致編碼的實時性不夠,編碼的圖像缺失嚴(yán)重。而使用VPU 模塊編碼的效率高,能夠滿足要求。因此,采用VPU 模塊來實現(xiàn)編碼[15-16]。由于四個視頻存儲線程是相似的,因此流程圖中只畫了其中的一路,如圖5所示。

      具體的編程步驟如下:

      1)使用讀寫方式打開文件,路徑為SD 卡所在系統(tǒng)文件目錄;

      2)對VPU 硬件資源進(jìn)行初始化;

      3)打開一個編碼器實例;

      4)獲得編碼器的關(guān)鍵參數(shù),如需要的幀緩沖區(qū)大小等;

      5)依據(jù)上一步操作獲取的信息,申請幀緩沖區(qū);

      6)將IPU 轉(zhuǎn)換后的YUV420、480P 格式數(shù)據(jù)拷貝到幀緩沖區(qū)中;

      7)生成圖像編碼后的數(shù)據(jù)結(jié)構(gòu);

      8)開始當(dāng)前圖像的H264 編碼;

      9)等待當(dāng)前圖像編碼完成,則產(chǎn)生中斷;

      10)檢查編碼信息并將編碼壓縮后的數(shù)據(jù)寫到SD 卡里;

      11)回到第5)步進(jìn)行循環(huán)操作;

      12)關(guān)閉當(dāng)前打開的編碼器實例;

      13)釋放VPU 的硬件資源。

      通過上述幾個線程的循環(huán)操作,實現(xiàn)了4 路攝像頭的數(shù)據(jù)采集、顯示以及存儲壓縮,并能根據(jù)環(huán)境光動態(tài)地調(diào)節(jié)屏幕背光亮度。

      4 測試驗證

      車載設(shè)備關(guān)鍵的技術(shù)指標(biāo)是溫度參數(shù),因此實驗階段將模擬高低溫環(huán)境對設(shè)備的影響。車載設(shè)備要求能夠在-30~80 ℃范圍內(nèi)都能夠穩(wěn)定運行,因此需要對-30 ℃、常溫25 ℃和80 ℃分別進(jìn)行實驗,以保證設(shè)備的可靠運行。

      首先,對常溫25 ℃下設(shè)備的運行進(jìn)行了測試,如圖6 所示??梢钥闯鲈谠O(shè)備啟動階段CPU 的溫度為25 ℃,在經(jīng)過4 小時運行后,穩(wěn)定在50 ℃。在整個24 小時的實驗過程中,設(shè)備運行穩(wěn)定。

      再通過恒溫箱將溫度設(shè)置在80 ℃下進(jìn)行設(shè)備的可靠性實驗,如圖7 所示。設(shè)備在啟動階段CPU的溫度為80 ℃,經(jīng)過30 分鐘運行后,CPU 溫度穩(wěn)定在91.2 ℃。在整個24 小時的實驗過程中,設(shè)備運行穩(wěn)定。

      最后,通過恒溫箱將溫度設(shè)置在-30 ℃下進(jìn)行設(shè)備的可靠性實驗,如圖8 所示。設(shè)備在啟動階段CPU的溫度為-30 ℃,經(jīng)過30 分鐘運行后,CPU 溫度穩(wěn)定在-21 ℃。在24 小時的實驗過程中,設(shè)備運行穩(wěn)定。

      5 結(jié)束語

      針對傳統(tǒng)玻璃后視鏡視野盲區(qū)問題,該文給出了基于i.MX6Q 的智能電子后視鏡系統(tǒng)設(shè)計方法,通過設(shè)計一機(jī)雙屏系統(tǒng)架構(gòu)和視頻接口的自動偵測和恢復(fù)機(jī)制,有效解決了車內(nèi)視頻信號的抗噪聲和傳輸穩(wěn)定性問題,通過環(huán)境實驗和跑車測試,系統(tǒng)性能得到了驗證,能夠滿足預(yù)期目標(biāo),對車輛運營起到安全輔助作用,具有很好的市場應(yīng)用前景。

      猜你喜歡
      光感緩沖區(qū)線程
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
      一種基于51單片機(jī)的光感和聲感的輔助沖便器裝置
      電子制作(2018年11期)2018-08-04 03:25:46
      淺談linux多線程協(xié)作
      卡姿蘭光感氣色胭脂透現(xiàn)光暈粉頰 讓你氣色飛揚
      女友(2016年3期)2016-09-13 18:02:43
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      Linux線程實現(xiàn)技術(shù)研究
      地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計與實現(xiàn)
      電視技術(shù)(2012年1期)2012-06-06 08:13:58
      常化濃妝 易被曬傷
      么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      福泉市| 若羌县| 专栏| 宣汉县| 郴州市| 兴海县| 宣汉县| 丰顺县| 同江市| 忻城县| 定边县| 永康市| 马边| 济阳县| 松阳县| 桂阳县| 昔阳县| 宜兰县| 广灵县| 景宁| 双牌县| 瓮安县| 颍上县| 朔州市| 天镇县| 平舆县| 普安县| 高唐县| 洛南县| 沁阳市| 那坡县| 米脂县| 涡阳县| 灌云县| 如东县| 罗甸县| 宜阳县| 宁蒗| 绿春县| 元氏县| 区。|