国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

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

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

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

該文所設(shè)計(jì)的電子后視鏡,采用一路主機(jī)驅(qū)動兩路高清屏的設(shè)計(jì)方案,主要由i.MX6Q CPU 主控模塊、左右顯示屏、光感、SD 卡、4 路720P 的數(shù)字?jǐn)z像頭組成。系統(tǒng)采用NXP 公司的車規(guī)SOC 處理器i.MX6Q,其為ARM Cortex-A9架構(gòu),有四個(gè)內(nèi)核,主頻是1.2 GHz。它擁有三個(gè)Vivante的GPU,分別是GC2000、GC320、GC355。GC2000 負(fù)責(zé)3D 圖形的加速,GC320負(fù)責(zé)2D 圖形的加速,GC355 負(fù)責(zé)矢量圖形的加速[8]。i.MX6Q 有兩個(gè)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é)顯示屏的背光亮度,實(shí)現(xiàn)環(huán)境光自適應(yīng)控制。

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

2 硬件設(shè)計(jì)

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

在設(shè)計(jì)中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)行處理。同時(shí),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),以實(shí)現(xiàn)單個(gè)差分鏈路高速視頻數(shù)據(jù)傳輸和雙向全雙工的通信。DS90UB947是一款OpenLDI 到FPD-Link III 的橋接器件,可串行化OpenLDI(LVDS)的輸入并支持WUXGA 和1080P的視頻分辨率(24 位色深)[12]。DS90UB949 是HDMI到FPD-Link III 的橋接器件。該器件可串行化HDMI v1.4b 的輸入同時(shí)支持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 個(gè)LVDS 數(shù)據(jù)通道+時(shí)鐘。

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

3 軟件設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

11)開始視頻采集;

12)出隊(duì)列以取得已采集數(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ū)重新入隊(duì)列,這樣可以循環(huán)采集;

16)停止視頻的采集;

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

電子后視鏡的4 路攝像頭需要分別投在車內(nèi)A柱的左、右兩個(gè)屏上顯示,因此需要作分屏操作。以車身為參照物,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)延時(shí)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)線束松開再接上的異常情況時(shí),需對DS90UB948進(jìn)行重新初始化才能讓顯示屏正常工作。該設(shè)計(jì)中有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)寄存器,能讓屏幕重新點(diǎn)亮,并把flag 清零,再回到第5)步執(zhí)行。

3.4 視頻存儲線程

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

具體的編程步驟如下:

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

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

3)打開一個(gè)編碼器實(shí)例;

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)前打開的編碼器實(shí)例;

13)釋放VPU 的硬件資源。

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

4 測試驗(yàn)證

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

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

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

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

5 結(jié)束語

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

猜你喜歡
光感緩沖區(qū)顯示屏
嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計(jì)與實(shí)現(xiàn)
一塊布就是一個(gè)顯示屏?
軍事文摘(2022年10期)2022-06-15 02:29:30
蒼蠅迷戀顯示屏
一種基于51單片機(jī)的光感和聲感的輔助沖便器裝置
電子制作(2018年11期)2018-08-04 03:25:46
卡姿蘭光感氣色胭脂透現(xiàn)光暈粉頰 讓你氣色飛揚(yáng)
女友(2016年3期)2016-09-13 18:02:43
未來五年LED顯示屏出貨將保持16%增長
中國照明(2016年6期)2016-06-15 20:30:14
關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
基于AT89S52的手勢可控LED滾動顯示屏設(shè)計(jì)
地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
電視技術(shù)(2012年1期)2012-06-06 08:13:58
崇明县| 宿州市| 堆龙德庆县| 涿鹿县| 大邑县| 广元市| 满洲里市| 威宁| 华安县| 通化市| 潜江市| 邵武市| 宣威市| 民乐县| 循化| 富阳市| 舟曲县| 深州市| 祁阳县| 云和县| 阳江市| 阜阳市| 呼图壁县| 棋牌| 若尔盖县| 琼结县| 临泉县| 丁青县| 灵宝市| 浪卡子县| 孙吴县| 永吉县| 岚皋县| 吉木乃县| 正阳县| 库伦旗| 革吉县| 南平市| 彭州市| 施秉县| 资阳市|