【正文】
DDR2控制引腳及其功能Pin Type DescriptionDDR_CLKODDR_CLKOO/Z 差分時(shí)鐘輸出DDR_CKE O/Z 時(shí)鐘使能(高電平有效)DDR_CS O/Z 芯片選擇(低電平有效)DDR_WE O/Z 寫使能(低電平有效)DDR_RAS O/Z 行地址鎖存(低電平有效)DDR_CAS O/Z 列地址鎖存(低電平有效)DDR_DQM[3:0] O/Z 數(shù)據(jù)掩碼(寫數(shù)據(jù)時(shí)輸出掩碼信號(hào))21 / 48DDR_DQS[3:0] I/O/Z 數(shù)據(jù)鎖存(高電平有效,寫數(shù)據(jù)時(shí)輸出,讀數(shù)據(jù)時(shí)輸入)DDR_BS[2:0] O/Z Bank選擇(定義執(zhí)行當(dāng)前命令的Bank)DDR_A[12:0] O/Z 地址總線DDR_D[31:0] I/O/Z 雙向數(shù)據(jù)線(讀時(shí)輸入,寫時(shí)輸出)DDR_ZNDDR_ZPO 輸出阻抗控制(設(shè)置DDR2輸出阻抗,通過電阻上拉至電源或下拉至地)TMS320DM6446 總共分配 256MByte 的地址空間給 DDR2,它的 DDR2 總線控制器總共有 13 根地址線,另外還有三根 Bank 選擇信號(hào)線。選擇芯片需要經(jīng)過綜合考慮,例如所選 DDR2 芯片最起碼需要有能夠與DM6446 的 DDR2 控制實(shí)現(xiàn)引腳間的完全兼容的 16 位字長(zhǎng)的數(shù)據(jù)總線接口,經(jīng)過各方面的評(píng)價(jià)考慮,Micron 的 MT47H64M16BT 型號(hào)的 DDR2 芯片為設(shè)計(jì)所用,并且采用 2 片(一片作為數(shù)據(jù)總線的低 16 位,一片作為高 16 位)MT47H64M16BT 型號(hào)的 DDR2 芯片來實(shí)現(xiàn) 32 位字長(zhǎng)、256MByte 的 DDR2 設(shè)計(jì),此芯片能夠與TMS320DM6446 的地址信號(hào)線、控制信號(hào)線、數(shù)據(jù)信號(hào)線等全部相連,連接示意圖如圖 所示 ????。D D R _ A [ 0 : 1 2 ]D D R _ D [ 1 6 : 3 1 ]D M 6 4 4 6M T 4 7 H 6 4 M 1 6B D D R _ D [ 0 : 1 5 ]B D D R _ A [ 0 : 1 2 ]M T 4 7 H 6 4 M 1 6D D R _ D [ 0 : 1 5 ]B D D R _ A [ 0 : 1 2 ]B D D R _ D [ 1 6 : 3 1 ] DDR2內(nèi)存連接示意圖作為 DDR 內(nèi)存技術(shù)革新的產(chǎn)物,DDR2 SDRAM 具有由 JEDEC(電子設(shè)備工程聯(lián)合委員會(huì))開發(fā)的內(nèi)存技術(shù)標(biāo)準(zhǔn),即可以在時(shí)鐘的上升沿和下降沿同時(shí)傳輸數(shù)據(jù),DDR2 的優(yōu)點(diǎn)不止于此,它還具有更低的功耗(采用 電壓邏輯設(shè)計(jì)),更低的發(fā)熱量和更大的封裝容量。DDR2 DARAM 內(nèi)的每一個(gè)時(shí)鐘都具有 4 倍于外部總線的讀/寫數(shù)據(jù)的速度,DDR2 可以支持 400MHz,533MHz,667MHz 的數(shù)據(jù)傳輸率,能夠?qū)崿F(xiàn)更高的運(yùn)行頻率與系統(tǒng)帶寬。在保證高速運(yùn)行的情況下,DDR2 的電路可以準(zhǔn)確的鎖存總線上22 / 48的數(shù)據(jù),增加了系統(tǒng)的穩(wěn)定性及可靠性。DDR2 高速的外部存儲(chǔ)器可以完成以下功能:(1)對(duì)輸入的視頻圖像數(shù)據(jù)進(jìn)行存放(2)對(duì)視頻處理前端(VPFE)中數(shù)據(jù)的過程存儲(chǔ)進(jìn)行處理和恢復(fù)(3)對(duì)視頻編解碼算法執(zhí)行過程中的中間數(shù)據(jù)起緩沖作用(4)對(duì) ARM 和 DSP 兩邊的可執(zhí)行代碼進(jìn)行存儲(chǔ)。 FLASH 模塊TMS320DM6446 的 HPI、 ATA/CF、EMIFA 和 NAND 接口都復(fù)用它的異步EMIFA 口提供的相關(guān)的控制信號(hào),另外 TMS320DM6446 處理器還提供 8/16 位的數(shù)據(jù)總線,4 個(gè)獨(dú)立的片選(獨(dú)立配置 NAND 接口)和 14 位的地址總線。NAND Flash 主要用于存儲(chǔ)系統(tǒng)中數(shù)據(jù)和啟動(dòng)代碼的存儲(chǔ),TMS320DM6446 的 ARM 內(nèi)核在 ARM ROM 的支持下從 NAND Flash 的片選 2 啟動(dòng)。1 . 8 V 至 3 . 3 V電平K 9 K 8 G 0 8 U O C T M S 3 2 0 D M 6 4 4 6E M / [ 0 : 7 ]R / BR EW EC EC L EA L ER E A D / B U S YR E A D _ O EW R I T E _ W EC S 2A 2 ( C L E )A 1 ( A L E )3 . 3 V1 . 8 VE M / [ 0 : 7 ] NAND FLASH的連接示意圖設(shè)計(jì)選用容量為 64MB 的 K9K1208UOC 芯片作為 NAND Flash。由于多個(gè)模塊的共用特性, NAND Flash 的命令鎖存使能信號(hào)(CLE)和地址鎖存使能信號(hào)(ALE)由 EMIFA 口選用的未復(fù)用的地址信號(hào)(EMIFA 的 A2 和 A1)來充當(dāng),這樣就可以避免系統(tǒng)從 NAND Flash 啟動(dòng)時(shí) Boot loader 影響到其他模塊。NAND Flash 接口需要的是 的電平標(biāo)準(zhǔn),而 TMS320DM6446 的 EMIFA 接口是 的電平標(biāo)準(zhǔn),所以它們之間不能進(jìn)行直接連接,設(shè)計(jì)在其之間加了一個(gè) 至 的雙向電平轉(zhuǎn)換芯片使其能夠順利工作,連接圖如圖 所示。23 / 48 音頻模塊音頻模塊可以說是嵌入式視頻系統(tǒng)必須要具備的組件塊,采用由 TI 生產(chǎn)的立體聲編解碼芯片 TLV320AIC33 來完成音頻信號(hào)的采集及播放功能,該芯片具有多個(gè)輸入和可編程輸出端口,TLV320AIC33 的功耗也比較低,特別適合在嵌入式系統(tǒng)中應(yīng)用。音頻解碼芯片 TLV320AIC33 輸入端有很多強(qiáng)大的功能,例如數(shù)控立體聲麥克風(fēng)前置放大、對(duì)多路輸入混音處理和自動(dòng)增益控制,而輸出端不僅具有 4 路普通輸出還有 3 路差分輸出。另外它的數(shù)??刂破鳎―AC)和模數(shù)控制器(ADC)支持8KHz96KHz 的多頻率采樣,AIC33 芯片不止于使用一種電壓,有各種各樣的電壓,包括 到 的模擬電壓, 和 的數(shù)字內(nèi)核電壓以及 和 的數(shù)字 I/O 電壓。TLV320AIC33 工作在全雙工串行通信模式,它與TMS320DM6446 處理器的連接方式是,與在 DSP 上的音頻端接口(AsP)相連 ????。由于設(shè)計(jì)之中大多數(shù)模塊都是基于 I2C 總線的,所以本音頻處理模塊的用于寄存器配置的串行總線控制也采用 I2C(支持 100KHz 的標(biāo)準(zhǔn)速率和 400KHz 的高速速率)總線控制并支持 12C 協(xié)議,表 為 ASP 接口的管腳定義。 ASP接口的管腳定義引腳名稱 信號(hào)方向 功能描述DR 輸入 接收串行數(shù)據(jù)DX 輸出/高阻 發(fā)送串行數(shù)據(jù)FSR 輸入/輸出/高阻 接收幀同步FSX 輸入/輸出/高阻 發(fā)送幀同步CLKR 輸入/輸出/高阻 接收時(shí)鐘CLKX 輸入/輸出/高阻 發(fā)送時(shí)鐘當(dāng)然在音頻模塊中 TMS320DM6446 仍為 I2C 總線的主設(shè)備,音頻處理芯片A1C33 是 I2C 的從設(shè)備(AIC33 的 12C 地址為 0x1B),視頻處理芯片 AIC33 的MPF0 和 MPF1(通過 10K 電阻上拉)決定從設(shè)備的低兩位地址,高五位地址一直定位為 00110b,具體的對(duì)應(yīng)關(guān)系如表 所示。 AIC33I2C 從設(shè)備地址與MPF0 ,MPF1的對(duì)應(yīng)關(guān)系MPF0 MPF1 AIC33設(shè)備地址24 / 480 0 00110000 1 00110011 0 00110101 1 0011011 其他模塊 電源管理整個(gè)系統(tǒng)所需要的電源有以下四種:(1)外部輸入的系統(tǒng)電壓 5V,此電壓還需要轉(zhuǎn)換為其他電壓供其他設(shè)備用電;(2)TMS320DM6446 處理器的內(nèi)核電壓 (電流消耗最多為 875mA);(3)外設(shè) I/0 接口電壓和 DDR2 內(nèi)存電壓 (電流需求最多為 600mA);(4)其他外設(shè)電壓 ?????;谝陨系木C合分析考慮,設(shè)計(jì)中采用了一款效率高達(dá) 95%多通道的電源管理芯片 TPS54310(由 TI 官方推薦)。一個(gè)線性控制器(LDO)能提供 300mA 電流,輸出電壓也具有可調(diào)節(jié)性(),它的這種特性很適合給低功率系統(tǒng)供電 ????。采用 20 引腳 QFN 方式小尺寸封裝的電源管理芯片 TPS54310 和 DM6446 的連接方式如圖 所示:T P S 5 4 3 1 0 ( C o r e )V i nR TS S / E NP HP W R G DP G N DT P S 5 4 3 1 0( 3 . 3 V I / O )V i nR TS S / E NP HP W R G DP G N DT P S 5 4 3 1 0( 1 . 8 V I / O )V i nR TS S / E NP HP W R G DP G N D5 V1 . 2 V3 . 3 V1 . 8 V7 1 . 5 7 1 . 57 1 . 5 TPS54310連接圖 USB 接口USB接口的主要目的是讓前面經(jīng)過視頻處理器進(jìn)行壓縮處理后輸出的數(shù)據(jù)流。本系統(tǒng)設(shè)計(jì)了兩個(gè)USB接口(主口和從口),但是主口和從口不能同時(shí)工作(TMS320DM6446處理器只設(shè)計(jì)了一個(gè) USB控制器),所以需要有選擇設(shè)備——ID信號(hào)。TMS320DM6446 USB控制25 / 48器主要有兩種工作模式,即主模式和從模式,至于USB具體是工作在主模式還是從模式由ID(DM6446芯片獨(dú)有設(shè)計(jì))4 圖 像 終 端 軟 件 設(shè) 計(jì)基于 3G 的遠(yuǎn)程督導(dǎo)系統(tǒng)作為一個(gè)嵌入式系統(tǒng)其軟件的設(shè)計(jì)包括設(shè)備驅(qū)動(dòng)的設(shè)計(jì)和應(yīng)用軟件的設(shè)計(jì),系統(tǒng)應(yīng)用涉及到的驅(qū)動(dòng)包括 USB 驅(qū)動(dòng)、攝像頭驅(qū)動(dòng)、編解碼器驅(qū)動(dòng)、FLASH 驅(qū)動(dòng)等,這些驅(qū)動(dòng)程序的編寫涉及到眾多內(nèi)核知識(shí),而且驅(qū)動(dòng)的編寫比較困難,如果出現(xiàn)錯(cuò)誤對(duì)系統(tǒng)會(huì)造成未知的破壞。幸而 Linux 作為一個(gè)開源系統(tǒng),不僅內(nèi)核支持眾多設(shè)備驅(qū)動(dòng),而且許多程序愛好者也提供驅(qū)動(dòng)支持,這樣就避免了編寫驅(qū)動(dòng)的大量繁瑣工作。本節(jié)主要針對(duì)應(yīng)用程序設(shè)計(jì)做闡述,其中在視頻處理模塊做了視頻采集驅(qū)動(dòng)的設(shè)計(jì)。 系統(tǒng)整體框架終端圖像采集與處理軟件的設(shè)計(jì)主要有主線程、控制線程、視頻線程和音頻線程幾個(gè)主要模塊。其中視頻線程模塊由于涉及到算法的選擇問題相對(duì)比較復(fù)雜,也是設(shè)計(jì)中的核心部分,在后文中做詳細(xì)介紹。圖 所示為整體流程圖。26 / 48開始開始清除線程環(huán)境清除線程環(huán)境解析命令行創(chuàng)建 U I解析命令行創(chuàng)建 U I初始化 C o d e c E n g i n e初始化 C o d e c E n g i n e設(shè)置線程屬性和優(yōu)先級(jí)設(shè)置線程屬性和優(yōu)先級(jí)語音線程語音線程視頻線程視頻線程控制線程控制線程線程結(jié)束同步線程結(jié)束同步C l e a r u p , 清空堆棧C l e a r u p , 清空堆棧結(jié)束結(jié)束否是圖 軟件實(shí)現(xiàn)整體流程圖 主線程模塊主線程的主要職責(zé)是執(zhí)行必要的初始化任務(wù),解析用戶在命令行所提供的參數(shù),并根據(jù)命令行所提供的參數(shù)值,產(chǎn)生視頻和/或音頻線程,具體的流程圖如圖 所示 ????。首先清除線程環(huán)境是調(diào)用 Dmai_clear()函數(shù)完成,再解析命令行的參數(shù),根據(jù)命令行參數(shù)設(shè)置現(xiàn)成的環(huán)境變量。Codec Engine 及其 TraceUtil 模塊初始化以便跟蹤登錄。用來同步線程初始化的 Rendezvous 目標(biāo)打開,然后根據(jù)命令行所傳遞的參數(shù)建立處理線程,最后是調(diào)用控制線程的主函數(shù) ctrlThrFxn()轉(zhuǎn)入控制線程。27 / 48開始清除線程環(huán)境解析命令行并創(chuàng)建 U I創(chuàng)建 R e n d e z v o u s 和P a u s e 模塊初始化 C o d e c E n g i n e設(shè)置線程屬性和優(yōu)先級(jí)建立視頻線程建立控制線程建立語音線程結(jié)束圖 主線程流程圖 圖像線程模塊 圖像采集驅(qū)動(dòng)通過 Linux 操作系統(tǒng)控制硬件設(shè)備,必須有相應(yīng)的驅(qū)動(dòng)程序?yàn)橐曨l設(shè)備提供接口。達(dá)芬奇處理器 TMS320DM6446 的 Monta Vista Linux 內(nèi)核為視頻硬件接入提供了專門的視頻驅(qū)動(dòng)接口,視頻輸入驅(qū)動(dòng) V4L2(Video for Linux Two)。V4L2 驅(qū)動(dòng)程序的開發(fā)流程也就是視頻采集的流程,進(jìn)行 V4L2 的視頻采集程序開發(fā)過程中常用的控制接口命令標(biāo)識(shí)符有:? VIDIOC_QUERYCAP //取得設(shè)備的功能;? VIDIOC_CROPCAP //檢測(cè)驅(qū)動(dòng)修剪能力;? VIDIOC_S_STD //設(shè)置視頻設(shè)備支持的制式 PAL/NTSC;? VIDIOC_QUERYSTD //獲取視頻設(shè)備支持的制式;? VIDIOC_S_FMT //設(shè)置驅(qū)動(dòng)捕獲的視頻幀格式;? VIDIOC_G_FMT //讀取驅(qū)動(dòng)捕獲的視頻幀格式;? VIDIOC_ENUM_FMT //查詢驅(qū)動(dòng)支持的視頻幀格式;? VIDIOC_TRY_FMT //驗(yàn)證當(dāng)前驅(qū)動(dòng)的視頻顯示格式;? VIDIOC_STREAMON //開始視頻采集函數(shù);? VIDIOC_S_CROP //設(shè)置圖像尺寸;28 / 48? VIDIOC_QBUF /