中文在线中文资源,色鲁97精品国产亚洲AV高,亚洲欧美日韩在线一区,国产精品福利午夜在线观看

你的位置:首頁 > 互連技術 > 正文

STM32 DCMI 的帶寬與性能介紹

發布時間:2023-09-05 來源:STM32單片機 責任編輯:wenwei

【導讀】隨著市場對更高圖像質量的需求不斷增加,成像技術持續發展,各種新興技術(例如3D、計算、運動和紅外線)的不斷涌現。如今的成像應用對高質量、易用性、能耗效率、高集成度、快速上市和成本效益提出了全面要求。為了滿足這些要求,STM32 MCU 內置的數字照相機接口(DCMI),能夠高效連接并行照相機模塊。


1. 引言


隨著市場對更高圖像質量的需求不斷增加,成像技術持續發展,各種新興技術(例如3D、計算、運動和紅外線)的不斷涌現。如今的成像應用對高質量、易用性、能耗效率、高集成度、快速上市和成本效益提出了全面要求。為了滿足這些要求,STM32 MCU 內置的數字照相機接口(DCMI),能夠高效連接并行照相機模塊。


對于使用STM32 DCMI 開發相機應用的客戶,經常有以下問題:STM32 DCMI 最大支持的像素時鐘是多少?STM32F4/F7/H7/U5 能支持1280×720 的相機分辨率嗎?最大的幀率是多少?如何判斷所設計的應用產生的帶寬是否能充足?相機輸出是選擇8 位、10位、12 位、還是14 位?


針對這些問題,本文檔從DCMI 使用的幾個方面,介紹了STM32 DCMI 在連續抓取模式下帶寬的估算,以及提升性能需要注意的事項。客戶在設計相機應用時可以參考。


2. STM32 DCMI


STM32 數字照相機接口(DCMI)采用同步并行數據總線。它可以輕松集成并適應相機的特殊應用要求。DCMI 可連接8、10、12 和14 位CMOS 照相機模塊,并支持多種數據格式:8/10/12/14 位逐行視頻、YCbCr4:2:2 逐行視頻、RGB565 逐行視頻、JPEG 等。像素最大支持16 位色深。


2.1. STM32 智能架構中的DCMI


DCMI 應用需要用幀緩沖區來存儲采集的圖像。必須根據圖像大小和傳輸速度使用合適的目標存儲區。在某些應用中,必須連接外部存儲器(SDRAM),以便提供較大的數據存儲空間。對于支持DMA2D(Chrom-ART Accelerator?控制器)的STM32 系列,也可以用它做色彩空間轉換(例如RGB565 至ARGB8888),或使用DMA 從一個存儲區到另一個存儲區的數據轉移。


下面圖1 是STM32F2x7 系列智能架構中DCMI 的例子。這里DCMI 通過AHB2 外設總線連接到AHB 總線矩陣。DMA2 主控訪問DCMI,將DCMI 接收到的圖像數據傳輸到內部RAM 或外部SDRAM 中,具體目標位置取決于應用。


1690933697688760.png

圖1. STM32F2x7系列智能架構中的DCMI從設備AHB2外設


2.2. DCMI 最大像素時鐘頻率


STM32 DCMI支持的像素時鐘頻率,與AHB時鐘頻率比值必須小于0.4。具體的像素時鐘頻率最大值要查詢所用STM32的數據手冊。下面表1中列出了部分STM32系列DCMI最大像素時鐘頻率及相關可用資源的信息。如需更詳細信息,請參考相應的參考手冊/數據手冊。


1690933679345057.png

表1. DCMI及相關可用資源


2.3. DCMI 支持的圖像分辨率


STM32 DCMI僅對輸入像素時鐘頻率有硬件限制(DCMI_PCLK / fHCLK 最大0.4),對圖像的分辨率沒有限制。DCMI連續抓取模式下,圖像分辨率會影響幀率(幀率的大小會影響視頻的流暢度)。在固定的像素時鐘頻率下,高分辨率圖像的帶寬需求較高,對應的幀率則會下降。或者說,在相同的圖像分辨率下,提高幀率需要相應地提高像素時鐘頻率。例如下表2(摘自三星S5K5CAGA CMOS Image Sensor的數據手冊)所示,大家可以從中了解S5K5CAGA的像素頻率、圖像分辨率、幀率的關系(非RGB888,16位色深)。另外,圖像分辨率主要通過設置相機的輸出格式進行修改。


1690933663940909.png

表2. S5K5CAGA YUV/RGB565像素時鐘頻率與幀率


對于中高分辨率的圖像,一般采用雙緩沖區或多緩沖區模式。這個主要原因是因為DCMI使用的DMA計數寄存器SxNDTR使用了16位用于計數。最大0xFFFF,即 65535 ,單位為32位Word,當圖像分辨率超過65535 Words(262140字節)時,則要使用雙緩沖區或多緩沖區模式。雙緩沖區地址由DMA_SxM0AR/DMA_SxM1AR設定。多緩沖區時,則需要動態交替DMA_SxM0AR/DMA_SxM1AR,使之指向圖像緩沖區的不同存儲位置,相當于分塊存儲。


2.4. DCMI 帶寬與性能


使用DCMI的相機應用,使用連續抓取模式,功能往往是由相機連續輸出所攝圖像數據流到STM32,STM32 DCMI捕獲視頻流后,再輸出到屏幕顯示(如監控)或做圖像數據處理、傳輸等。如果相機輸出的是高像素高色深高幀率的視頻流,DCMI在接收過程中,如不能及時處理,DCMI FIFO即會產生溢出錯誤(Overrun),進而導致圖像數據丟失,幀率下降等問題。


2.4.1. DCMI 帶寬與性能


DCMI帶寬計算公式為:帶寬 = 分辨率 * 色深 * 幀率。


以三星S5K5CAGA為例,如表2中第1行數據(這里相機采用RGB565,16位/像素,8位輸出格式),則QXGA輸出的帶寬需求 =(2048 * 1536)* 2 * 6 ≈ 38MBps。像素時鐘為40MHz,8位輸出,每2個CLK傳輸1個像素數據,對應的最大輸出能力為40 MBps。則QXGA在40MHz的像素時鐘頻率下是可以以6幀/秒的幀率輸入到DCMI的。DCMI捕獲圖像數據流,再由DMA傳輸到圖像緩沖區,該例中,圖像緩沖區(幀緩沖區)的大小為:2048 * 1546 * 2 ≈ 6.3 MByte。


高像素高色深的圖像,對應的圖像緩沖區較大。當MCU內置的SRAM不能滿足DCMI圖像緩沖區需求時,則需要用外部SDRAM來存儲。例如STM32F469 MCU(見表1,第6行數據),其FSMC支持的最大頻率為90MHz,寬度32位,則SDRAM的帶寬 = 90 * 4 = 360 MBps,能夠滿足DCMI帶寬的需求。一般,DCMI圖像緩沖區中的數據是需要再次傳輸或由CPU進行計算處理的,理論上DCMI輸入的帶寬需求最大不應超過SDRAM的帶寬的50%。這里需要注意SDRAM可能存在多個主控(如CPU、DMA、LTDC等)的訪問,如遇到SDRAM性能瓶頸問題,可考慮下列方面進行優化:


(1)將各主控設備訪問的存儲器盡量分開,以減少競爭訪問;

(2)將CPU訪問的SDRAM Bank 與DCMI圖像緩沖區的Bank分開;

(3)將DCMI圖像緩沖區區域設為不可緩沖,CPU 訪問的區域則可以設為可緩沖。


對于性能,另外一個重要因素是總線競爭問題。DCMI DMA申請的AHB總線訪問(即使在使用FIFO的情況下)并非長Burst的訪問。如果AHB總線上存在其它長Burst訪問(最大1KByte),會造成DMA延遲訪問DCMI,令其不能及時將DCMI FIFO中的數據傳輸出去。可以認定:DCMI需要傳輸數據時的總線繁忙是造成 其FIFO 溢出錯誤的根源。解決辦法除了直接為設備分配不同SDRAM之外(將長Burst訪問放在其他SDRAM),還可以考慮在內部SRAM增設DCMI LineBuffer,化零為整,巧妙避開AHB 長Burst 訪問造成的DCMI延遲問題。數據流如下:


(1)DCMI(經DMA)=> 內部SRAM(LineBuffer) ;

(2)內部SRAM(LineBuffer)=> 外部SDRAM(圖像Buffer)。


由LineBuffer 到SDRAM的數據中轉傳輸請求,可使用DCMI IT_LINE 中斷(行結束)觸發。這里MCU如果是STM32F7/H7系列,還可使用MDMA 充分發揮AXI總線的優勢,但要注意LineBuffer 最好是8字節的倍數(64位總線)。


2.4.2. DCMI 圖像大小調整功能


當考慮了上面的措施,仍無法滿足應用對高分辨率需求時,用戶可以通過設置相機,修改相機輸出分辨率,配合DCMI調整圖像大小功能,找到合適的折中方案。DCMI提供的相關功能如下:


(1)窗口裁剪:


使用寄存器DCMI_CWSTRT指定起始坐標;

使用寄存器DCMI_CWSIZE指定窗口大小。


(2)圖像數據調整(詳見寄存器DCMI_CS中LSM/BSM等位域):


- 行選擇:可選擇2選1,行數減半;

- 數據選擇:字節流上可進行2選1、4選1已經4選2 (注意:對于RGB565格式, 只能4選2可選,2選1及4選1會造成色彩數據錯亂)。


2.5. DCMI 10/12/14數據線輸入


DCMI 支持最多14條數據線(D13 - D0),如果將DCMI配置為接收10、12或14位數據,DCMI將用2個像素時鐘周期捕獲一個32位數據。以12位數據寬度為例,DCMI在第1個像素時鐘捕獲12位LSB(忽略D[13 :12]),存于DCMI_DR寄存器低16位字中低12位,高4位(D[15 :12)清零;第2像素時鐘捕獲的12位LSB則存于DCMI_DR高16位字的低12位,高4位(DCMI_DR的[31 : 28])清零。另外相機也必須配置為10/12/14位輸出。具體情況則由應用決定。


3.小結


本文通過介紹STM32 DCMI支持的最大像素時鐘頻率,支持的圖像分辨率及與幀率的關系,進而引出DCMI帶寬與性能提升的注意事項。另外附帶了DCMI圖像大小的調整及10~14數據線的簡介,為用戶遇到相關問題時提供思路參考。


來源:STM32單片機



免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。


推薦閱讀:


詳解光耦震蕩器

BB3581J 高電壓運放

如何選擇合適的電源模塊?

GaN如何在基于圖騰柱PFC的電源設計中實現高效率

數字電位器很優秀 連這個問題也克服了

特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉

  • <center id="09kry"></center>

  • 主站蜘蛛池模板: 凤凰县| 柳州市| 凌源市| 从江县| 贵州省| 剑河县| 浑源县| 山阳县| 丰都县| 房产| 县级市| 即墨市| 五家渠市| 北川| 谷城县| 安溪县| 莒南县| 夏邑县| 遂昌县| 娄烦县| 钦州市| 都昌县| 平舆县| 朝阳市| 罗江县| 武穴市| 新巴尔虎右旗| 炎陵县| 磐石市| 临海市| 兴义市| 托里县| 浮梁县| 江都市| 西乌珠穆沁旗| 桐城市| 南涧| 临邑县| 新疆| 和平县| 奉贤区|