0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

應(yīng)用筆記 | STM32 DCMI 的帶寬與性能介紹

STM32單片機 ? 來源:未知 ? 2023-08-01 17:40 ? 次閱讀

關(guān)鍵字:DCMI,最大像素時鐘,Overrun

目錄預(yù)覽

1 引言2 STM32 DCMI3 小結(jié)

1. 引言

隨著市場對更高圖像質(zhì)量的需求不斷增加,成像技術(shù)持續(xù)發(fā)展,各種新興技術(shù)(例如3D、計算、運動和紅外線)的不斷涌現(xiàn)。如今的成像應(yīng)用對高質(zhì)量、易用性、能耗效率、高集成度、快速上市和成本效益提出了全面要求。為了滿足這些要求,STM32 MCU 內(nèi)置的數(shù)字照相機接口(DCMI),能夠高效連接并行照相機模塊。 對于使用STM32 DCMI 開發(fā)相機應(yīng)用的客戶,經(jīng)常有以下問題:STM32 DCMI 最大支持的像素時鐘是多少?STM32F4/F7/H7/U5 能支持1280×720 的相機分辨率嗎?最大的幀率是多少?如何判斷所設(shè)計的應(yīng)用產(chǎn)生的帶寬是否能充足?相機輸出是選擇8 位、10位、12 位、還是14 位? 針對這些問題,本文檔從DCMI 使用的幾個方面,介紹了STM32 DCMI 在連續(xù)抓取模式下帶寬的估算,以及提升性能需要注意的事項。客戶在設(shè)計相機應(yīng)用時可以參考。

2.STM32 DCMI

STM32 數(shù)字照相機接口(DCMI)采用同步并行數(shù)據(jù)總線。它可以輕松集成并適應(yīng)相機的特殊應(yīng)用要求。DCMI 可連接8、10、12 和14 位CMOS 照相機模塊,并支持多種數(shù)據(jù)格式:8/10/12/14 位逐行視頻、YCbCr42 逐行視頻、RGB565 逐行視頻、JPEG 等。像素最大支持16 位色深。 2.1. STM32 智能架構(gòu)中的DCMI DCMI 應(yīng)用需要用幀緩沖區(qū)來存儲采集的圖像。必須根據(jù)圖像大小和傳輸速度使用合適的目標(biāo)存儲區(qū)。在某些應(yīng)用中,必須連接外部存儲器(SDRAM),以便提供較大的數(shù)據(jù)存儲空間。對于支持DMA2D(Chrom-ART Accelerator控制器)的STM32 系列,也可以用它做色彩空間轉(zhuǎn)換(例如RGB565 至ARGB8888),或使用DMA 從一個存儲區(qū)到另一個存儲區(qū)的數(shù)據(jù)轉(zhuǎn)移。 下面圖1 是STM32F2x7 系列智能架構(gòu)中DCMI 的例子。這里DCMI 通過AHB2 外設(shè)總線連接到AHB 總線矩陣。DMA2 主控訪問DCMI,將DCMI 接收到的圖像數(shù)據(jù)傳輸?shù)絻?nèi)部RAM 或外部SDRAM 中,具體目標(biāo)位置取決于應(yīng)用。 aac5bf84-304e-11ee-9e74-dac502259ad0.png圖1. STM32F2x7系列智能架構(gòu)中的DCMI從設(shè)備AHB2外設(shè)2.2. DCMI 最大像素時鐘頻率STM32 DCMI支持的像素時鐘頻率,與AHB時鐘頻率比值必須小于0.4。具體的像素時鐘頻率最大值要查詢所用STM32的數(shù)據(jù)手冊。下面表1中列出了部分STM32系列DCMI最大像素時鐘頻率及相關(guān)可用資源的信息。如需更詳細(xì)信息,請參考相應(yīng)的參考手冊/數(shù)據(jù)手冊。aaec131e-304e-11ee-9e74-dac502259ad0.png表1. DCMI及相關(guān)可用資源2.3. DCMI 支持的圖像分辨率STM32 DCMI僅對輸入像素時鐘頻率有硬件限制(DCMI_PCLK / fHCLK 最大0.4),對圖像的分辨率沒有限制。DCMI連續(xù)抓取模式下,圖像分辨率會影響幀率(幀率的大小會影響視頻的流暢度)。在固定的像素時鐘頻率下,高分辨率圖像的帶寬需求較高,對應(yīng)的幀率則會下降?;蛘哒f,在相同的圖像分辨率下,提高幀率需要相應(yīng)地提高像素時鐘頻率。例如下表2(摘自三星S5K5CAGA CMOS Image Sensor的數(shù)據(jù)手冊)所示,大家可以從中了解S5K5CAGA的像素頻率、圖像分辨率、幀率的關(guān)系(非RGB888,16位色深)。另外,圖像分辨率主要通過設(shè)置相機的輸出格式進行修改。ab17376a-304e-11ee-9e74-dac502259ad0.png表2. S5K5CAGA YUV/RGB565像素時鐘頻率與幀率對于中高分辨率的圖像,一般采用雙緩沖區(qū)或多緩沖區(qū)模式。這個主要原因是因為DCMI使用的DMA計數(shù)寄存器SxNDTR使用了16位用于計數(shù)。最大0xFFFF,即 65535 ,單位為32位Word,當(dāng)圖像分辨率超過65535 Words(262140字節(jié))時,則要使用雙緩沖區(qū)或多緩沖區(qū)模式。雙緩沖區(qū)地址由DMA_SxM0AR/DMA_SxM1AR設(shè)定。多緩沖區(qū)時,則需要動態(tài)交替DMA_SxM0AR/DMA_SxM1AR,使之指向圖像緩沖區(qū)的不同存儲位置,相當(dāng)于分塊存儲。2.4. DCMI 帶寬與性能使用DCMI的相機應(yīng)用,使用連續(xù)抓取模式,功能往往是由相機連續(xù)輸出所攝圖像數(shù)據(jù)流到STM32,STM32 DCMI捕獲視頻流后,再輸出到屏幕顯示(如監(jiān)控)或做圖像數(shù)據(jù)處理、傳輸?shù)?。如果相機輸出的是高像素高色深高幀率的視頻流,DCMI在接收過程中,如不能及時處理,DCMI FIFO即會產(chǎn)生溢出錯誤(Overrun),進而導(dǎo)致圖像數(shù)據(jù)丟失,幀率下降等問題。2.4.1. DCMI 帶寬與性能DCMI帶寬計算公式為:帶寬 = 分辨率 * 色深 * 幀率。以三星S5K5CAGA為例,如表2中第1行數(shù)據(jù)(這里相機采用RGB565,16位/像素,8位輸出格式),則QXGA輸出的帶寬需求 =(2048 * 1536)* 2 * 6 ≈ 38MBps。像素時鐘為40MHz,8位輸出,每2個CLK傳輸1個像素數(shù)據(jù),對應(yīng)的最大輸出能力為40 MBps。則QXGA在40MHz的像素時鐘頻率下是可以以6幀/秒的幀率輸入到DCMI的。DCMI捕獲圖像數(shù)據(jù)流,再由DMA傳輸?shù)綀D像緩沖區(qū),該例中,圖像緩沖區(qū)(幀緩沖區(qū))的大小為:2048 * 1546 * 2 ≈ 6.3 MByte高像素高色深的圖像,對應(yīng)的圖像緩沖區(qū)較大。當(dāng)MCU內(nèi)置的SRAM不能滿足DCMI圖像緩沖區(qū)需求時,則需要用外部SDRAM來存儲。例如STM32F469 MCU(見表1,第6行數(shù)據(jù)),其FSMC支持的最大頻率為90MHz,寬度32位,則SDRAM的帶寬 = 90 * 4 = 360 MBps,能夠滿足DCMI帶寬的需求。一般,DCMI圖像緩沖區(qū)中的數(shù)據(jù)是需要再次傳輸或由CPU進行計算處理的,理論上DCMI輸入的帶寬需求最大不應(yīng)超過SDRAM的帶寬的50%。這里需要注意SDRAM可能存在多個主控(如CPU、DMA、LTDC等)的訪問,如遇到SDRAM性能瓶頸問題,可考慮下列方面進行優(yōu)化:(1)將各主控設(shè)備訪問的存儲器盡量分開,以減少競爭訪問;(2)將CPU訪問的SDRAM Bank 與DCMI圖像緩沖區(qū)的Bank分開;(3)將DCMI圖像緩沖區(qū)區(qū)域設(shè)為不可緩沖,CPU 訪問的區(qū)域則可以設(shè)為可緩沖。對于性能,另外一個重要因素是總線競爭問題。DCMI DMA申請的AHB總線訪問(即使在使用FIFO的情況下)并非長Burst的訪問。如果AHB總線上存在其它長Burst訪問(最大1KByte),會造成DMA延遲訪問DCMI,令其不能及時將DCMI FIFO中的數(shù)據(jù)傳輸出去。可以認(rèn)定:DCMI需要傳輸數(shù)據(jù)時的總線繁忙是造成 其FIFO 溢出錯誤的根源。解決辦法除了直接為設(shè)備分配不同SDRAM之外(將長Burst訪問放在其他SDRAM),還可以考慮在內(nèi)部SRAM增設(shè)DCMI LineBuffer,化零為整,巧妙避開AHB 長Burst 訪問造成的DCMI延遲問題。數(shù)據(jù)流如下:(1)DCMI(經(jīng)DMA)=> 內(nèi)部SRAM(LineBuffer) ;(2)內(nèi)部SRAM(LineBuffer)=> 外部SDRAM(圖像Buffer)。由LineBuffer 到SDRAM的數(shù)據(jù)中轉(zhuǎn)傳輸請求,可使用DCMI IT_LINE 中斷(行結(jié)束)觸發(fā)。這里MCU如果是STM32F7/H7系列,還可使用MDMA 充分發(fā)揮AXI總線的優(yōu)勢,但要注意LineBuffer 最好是8字節(jié)的倍數(shù)(64位總線)。2.4.2. DCMI 圖像大小調(diào)整功能當(dāng)考慮了上面的措施,仍無法滿足應(yīng)用對高分辨率需求時,用戶可以通過設(shè)置相機,修改相機輸出分辨率,配合DCMI調(diào)整圖像大小功能,找到合適的折中方案。DCMI提供的相關(guān)功能如下:(1)窗口裁剪:使用寄存器DCMI_CWSTRT指定起始坐標(biāo);使用寄存器DCMI_CWSIZE指定窗口大小。(2)圖像數(shù)據(jù)調(diào)整(詳見寄存器DCMI_CS中LSM/BSM等位域):- 行選擇:可選擇2選1,行數(shù)減半;- 數(shù)據(jù)選擇:字節(jié)流上可進行2選1、4選1已經(jīng)4選2 (注意:對于RGB565格式, 只能4選2可選,2選1及4選1會造成色彩數(shù)據(jù)錯亂)。

2.5. DCMI 10/12/14數(shù)據(jù)線輸入

DCMI 支持最多14條數(shù)據(jù)線(D13 - D0),如果將DCMI配置為接收10、12或14位數(shù)據(jù),DCMI將用2個像素時鐘周期捕獲一個32位數(shù)據(jù)。以12位數(shù)據(jù)寬度為例,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位輸出。具體情況則由應(yīng)用決定。

3.小結(jié)

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

完整內(nèi)容請點擊“閱讀原文”下載原文檔。

ab341cf4-304e-11ee-9e74-dac502259ad0.png

長按掃碼關(guān)注公眾號

更多資訊,盡在STM32

點擊“閱讀原文”,可下載原文檔


原文標(biāo)題:應(yīng)用筆記 | STM32 DCMI 的帶寬與性能介紹

文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628345
  • STM32
    +關(guān)注

    關(guān)注

    2257

    文章

    10828

    瀏覽量

    352468

原文標(biāo)題:應(yīng)用筆記 | STM32 DCMI 的帶寬與性能介紹

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    芯海CS32F0XXTIMER外設(shè)模塊應(yīng)用筆記

    本應(yīng)用筆記旨在展示使用CS32FOxx微控器,針對定時器外設(shè)的應(yīng)用。幫助用戶了解CS32FOxx定時器的基本特性、操作模式及相關(guān)應(yīng)用的示例代碼。提供的一些高級應(yīng)用以便縮短用戶開發(fā)周期。對所介紹的特定
    發(fā)表于 05-16 15:02

    芯海CS32F0XXADC外設(shè)模塊應(yīng)用筆記

    本應(yīng)用筆記旨在展示使用CS32FOxx微控器,提高A/D轉(zhuǎn)化精度的應(yīng)用。幫助ADC模塊用戶了解 CS32微控器提供的一些高級應(yīng)用并加快開發(fā)周期。所介紹的每種模式都提供一個應(yīng)用示例,以方便用戶快速移植
    發(fā)表于 05-16 14:58

    芯海應(yīng)用筆記:CPW3101入門指南

    ??萍?CPW3101 SOC 應(yīng)用產(chǎn)品的設(shè)計、開發(fā)和調(diào)試。*附件:應(yīng)用筆記:CPW3101入門指南.pdf
    發(fā)表于 05-16 14:39

    芯海科技應(yīng)用筆記:CS32F0XX TIMER外設(shè)模塊指導(dǎo)

    紹的特定用戶示例做了工作原理與相關(guān)代碼介紹, 以方便用戶快速移。本應(yīng)用筆記分為四部分:定時器特性概述、基本定時器功能介紹、高級定時器功能介紹、特定場景應(yīng)用示例。*附件:應(yīng)
    發(fā)表于 05-16 10:52

    芯海應(yīng)用筆記:CS32F0XX ADC外設(shè)模塊指導(dǎo)

    本應(yīng)用筆記旨在展示使用 CS32F0xx 微控器,提高 A/D 轉(zhuǎn)化精度的應(yīng)用。幫助 ADC 模塊用戶了解CS32 微控器提供的一些高級應(yīng)用并加快開發(fā)周期。所介紹的每種模式都提供一個應(yīng)用示例,以方
    發(fā)表于 05-16 10:49

    芯海CSU18P88應(yīng)用筆記

    本應(yīng)用筆記旨在為用戶提供關(guān)于CSU18P88的詳細(xì)信息和使用指南,幫助用戶快速開發(fā)基于CSU18P88的應(yīng)用。*附件:CSU18P88應(yīng)用筆記V1.5.pdf
    發(fā)表于 05-16 10:24

    CSU18MX86應(yīng)用筆記

    本應(yīng)用筆記旨在為用戶提供關(guān)于CSU18MX86的詳細(xì)信息和使用指南,幫助用戶快速開發(fā)基于CSU18MX86的應(yīng)用。*附件:CSU18MX86應(yīng)用筆記_V1.0.pdf
    發(fā)表于 05-16 10:21

    遠(yuǎn)程信號源應(yīng)用筆記介紹

    電子發(fā)燒友網(wǎng)站提供《遠(yuǎn)程信號源應(yīng)用筆記介紹.pdf》資料免費下載
    發(fā)表于 11-28 11:52 ?0次下載
    遠(yuǎn)程信號源應(yīng)<b class='flag-5'>用筆記</b><b class='flag-5'>介紹</b>

    STM32 DCMI帶寬性能介紹

    STM32 DCMI帶寬性能介紹
    的頭像 發(fā)表于 10-25 17:34 ?1079次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>DCMI</b> 的<b class='flag-5'>帶寬</b>與<b class='flag-5'>性能</b><b class='flag-5'>介紹</b>

    AT32 PWC應(yīng)用筆記

    AT32 PWC應(yīng)用筆記主要以低功耗為基礎(chǔ)進行講解和案例解析。
    發(fā)表于 10-25 06:45

    識別AT32 MCU的應(yīng)用筆記

    本應(yīng)用筆記介紹了在AT32微控制器上如何實現(xiàn)當(dāng)前使用內(nèi)核版本、MCU廠商及型號的識別
    發(fā)表于 10-24 06:37

    【應(yīng)用筆記】觸摸按鍵設(shè)計要點

    【應(yīng)用筆記】觸摸按鍵設(shè)計要點
    的頭像 發(fā)表于 10-19 17:58 ?1718次閱讀
    【應(yīng)<b class='flag-5'>用筆記</b>】觸摸按鍵設(shè)計要點

    AN2784應(yīng)用筆記

    這個應(yīng)用筆記說明了如何使用大容量的STM32F10xxx的FSMC(靈活的靜態(tài)存儲器控制器)驅(qū)動一組外部的存儲器。文中首先簡要地介紹STM32F10xxx的FSMC控制器,然后給出了
    發(fā)表于 10-10 07:45

    應(yīng)用筆記 | STM32U575/585 MCU 硬件開發(fā)入門

    應(yīng)用筆記 | STM32U575/585 MCU 硬件開發(fā)入門
    的頭像 發(fā)表于 09-28 18:13 ?3142次閱讀
    應(yīng)<b class='flag-5'>用筆記</b> | <b class='flag-5'>STM32</b>U575/585 MCU 硬件開發(fā)入門

    STM32F1移植到STM32F0的應(yīng)用筆記分享

    需要將應(yīng)用程序移植到其它微控制器。另一方面,為了降低成本,用戶可能被迫轉(zhuǎn)換為更小的元件并縮減 PCB 面積。本應(yīng)用筆記旨在幫助您分析從現(xiàn)有的 STM32F1 器件移植到 STM32F0 器件所需的步驟
    發(fā)表于 09-22 07:23