TMS320VC5509與CameraLink相機的接口技術(shù)
摘 要:本文在分析DSP片上多通道緩沖串行口(MCBSP)與直接存儲器訪問(DMA)的基礎(chǔ)上,提出了一種非常靈活的接口技術(shù),并設(shè)計調(diào)試了DSP與相機接口電路和程序。利用本文提出的DMA接口方式,接收數(shù)據(jù)率可以達到36Mbps, 完全滿足激光的實時測量。
關(guān)鍵詞:TMS320VC5509;多通道緩沖串口 ;直接存儲器訪問;接口
引言
在激光波長測量系統(tǒng)中,激光信號從CCD相機輸出到信號處理器的時間是實時測量激光波長的關(guān)鍵。即使采用高速單片機也無法滿足實時測量的需要,而將DSP用于相機數(shù)據(jù)采集和信號處理使這一難題的解決成為了可能。
接口設(shè)計
本設(shè)計采用ATMEL公司的AViiVA M2 CL相機,該相機采用CameraLink接口。DSP選用了TMS320VC5509,與TMS320C54x相比,該定點DSP通過增強功能單元,提高了DSP的運算能力。相機工作方式的設(shè)置通過與DSP的串行通信來實現(xiàn),采用全雙工方式,波特率固定在9.6kHz,每幀數(shù)據(jù)由一個起始位、8個數(shù)據(jù)位,以及一個停止位組成。
DSP與相機的通信
TMS320C5509 芯片只有同步串口,通常只能用于與具有同步通信接口的外設(shè)進行通信。當其構(gòu)成一個獨立的處理單元需要和帶有異步通信接口的外設(shè)交換數(shù)據(jù)時,常用的方式有兩種:一種是利用DSP 的通用I/O 口線XF和BIO 構(gòu)成串口,由軟件來設(shè)定通信波特率和握手方式。這種方式編程復雜,并且會大量占用CPU 時間。另一種方式是通過專用的異步通信芯片來實現(xiàn),這雖然能實現(xiàn)DSP高速數(shù)據(jù)通信,但是增加了硬件電路的復雜性。
本設(shè)計直接利用DSP的MCBSP與相機通信。TMS320VC5509有3個MCBSP,依靠數(shù)據(jù)線D(R/X)、幀同步線FS(R/X)和移位時鐘線CLK(R/X)實現(xiàn)數(shù)據(jù)的發(fā)送和接收。由CLKX、CLKR、FSX、FSR 實現(xiàn)時鐘和幀同步的控制。
數(shù)據(jù)格式的統(tǒng)一
要實現(xiàn)相機與DSP的串行通信首先要解決這兩種不同通信方式之間的數(shù)據(jù)格式統(tǒng)一問題。相機接收的每幀數(shù)據(jù)是十位,所以DSP字長要選擇16位。由于這種字長是高位先出,因此,在DSP發(fā)送數(shù)據(jù)前要對數(shù)據(jù)進行編碼:先把要發(fā)送的數(shù)據(jù)位反轉(zhuǎn),然后加上起始位和停止位。
波特率匹配
MCBSP采樣率發(fā)生器的輸出時鐘CLKG由如下等式?jīng)Q定:
FCLKG=FclockSource/(CLKDV+1)
CLKDV是個8位的字段,如果輸入的參考時鐘FclockSource來自CPU,而為了實現(xiàn)高速采集,CPU要工作在144MHz,所以MCBSP采樣率發(fā)生器不可能工作在相機需要的波特率9.6kHz。因此,本設(shè)計中利用DSP定時器為串口提供時鐘。定時器的計數(shù)器分為兩個:4位的預定標器(TDDR)和16位的主計數(shù)器(PRD)。定時器的時鐘頻率利用公式:Ftimer=FclockSource/[(PRD+1)(TDDR+1)]計算。此時設(shè)置:PRD=0, TDDR=14999,定時器就可以輸出頻率為9.6kHz的時鐘信號。
TMS320VC5509與相機的串行通信接口電路中,要利用DS90LV047A把TTL電平轉(zhuǎn)換為LVDS格式。此外,在MCBSP設(shè)置中要選擇來自CLKR腳上的時鐘作為參考時鐘。
數(shù)據(jù)采樣
DSP對數(shù)據(jù)的采樣通常采用中斷的方法實現(xiàn),而DMA不僅可以操作內(nèi)部存儲器的數(shù)據(jù),而且可以操作片內(nèi)外設(shè)、外部設(shè)備以及擴展存儲器的數(shù)據(jù)。所以應(yīng)用DMA功能可實現(xiàn)在沒有CPU 的干預下直接對內(nèi)存映射區(qū)域進行數(shù)據(jù)傳輸。
TMS320VC5509提供了6個DMA通道,每個通道均可單獨設(shè)置所要傳送數(shù)據(jù)的源地址、目的地址、傳送數(shù)據(jù)的長度、數(shù)據(jù)傳送的同步方式以及數(shù)據(jù)傳送完成后是否向CPU發(fā)出中斷信號等。
DMA的工作方式
傳統(tǒng)上,為了保證采樣時不丟失數(shù)據(jù),往往在DSP與相機間加FIFO來緩沖。數(shù)據(jù)首先從相機采集到緩沖區(qū)FIFO里,然后再從FIFO讀入到DSP內(nèi)存,這樣從相機采集到DSP就要一定的附加時間,無法實現(xiàn)高速數(shù)據(jù)采集和信號處理,而且需要額外的FIFO。本文提出了一種新的DMA采集方法,無需FIFO卻能實現(xiàn)數(shù)據(jù)的高速采集。
DS90CR286的主要功能是把CCD相機輸出的LVDS信號轉(zhuǎn)換為TTL信號,本設(shè)計中把DS90CR286輸出的數(shù)據(jù)直接接到DSP的外部存儲器接口(EMIF)數(shù)據(jù)總線上,然后DMA 把源地址設(shè)置為外部存儲器的地址,這個地址要初始化,但又不能是真正存在的外部存儲器的地址,這樣DSP每次所采集的數(shù)據(jù),正是相機輸出的數(shù)據(jù)。在圖1中給出了DMA方式數(shù)據(jù)采集原理,其中R1~R6都是100W的電阻。
要實現(xiàn)測量的實時性,必須實行數(shù)據(jù)采集和數(shù)據(jù)處理流水線作業(yè)。本設(shè)計中在DSP片上數(shù)據(jù)存儲區(qū)設(shè)立了兩個交替工作的存儲緩沖區(qū),通過在軟件上設(shè)立標志位實現(xiàn)對存儲區(qū)間的切換。DMA的數(shù)據(jù)長度設(shè)置為相機一幀數(shù)據(jù)的長度,目的起始地址在數(shù)據(jù)空間上有兩個,分別設(shè)置為4000h與4400h。假如在DSP芯片上的數(shù)據(jù)區(qū)設(shè)置兩塊1KB的數(shù)據(jù)緩沖區(qū)A和B,分別代表目的地址為4000h和4400h的數(shù)據(jù)緩沖區(qū),進行數(shù)據(jù)存儲和數(shù)據(jù)處理,當DSP用A區(qū)進行采集數(shù)據(jù)的第i幀時,同時B區(qū)進行第i-1幀數(shù)據(jù)的處理。當兩者同時結(jié)束后,接著又用B區(qū)進行第i+1幀數(shù)據(jù)的采集, 同時A區(qū)進行第i幀數(shù)據(jù)的處理,這樣交替工作,形成流水線作業(yè)。數(shù)據(jù)傳送的同步信號由DS90CR286的INT2引腳產(chǎn)生,當數(shù)據(jù)在一個數(shù)據(jù)區(qū)存滿時,通過INT3通知CPU轉(zhuǎn)到另一數(shù)據(jù)存儲區(qū)。圖2給出了DMA功能對數(shù)據(jù)采集的時序圖。
高速數(shù)據(jù)采集的程序設(shè)計
DMA方式高速采集的程序由EMIF初始化、DMA控制器設(shè)置和中斷服務(wù)程序組成。EMIF初始化主要用來設(shè)置外部存儲器的工作頻率和類型。其中,對工作頻率的設(shè)置非常重要,它直接影響到數(shù)據(jù)采集的頻率。在DMA方式下,數(shù)據(jù)采集的速率等于EMIF工作頻率的四分之一。DMA控制器設(shè)置是數(shù)據(jù)采集的關(guān)鍵,由于DMA有兩個目的地址,為了使程序簡單,同時也為了避免數(shù)據(jù)的沖突,本設(shè)計采用兩個DMA通道:通道1與通道2。下面給出了DMA設(shè)置的程序以及詳細的說明。
DMA通道1的設(shè)置程序:
MOV #0x0004,PORT (#0x0E00);設(shè)置DMA_GCR為共享模式
MOV #0x0405,PORT (#0x0C20);設(shè)置DMA_CSDP1的目的為DARAM,源為EMIF
;數(shù)據(jù)單元長度為16位,不打包
MOV #0x0000,PORT (#0x0C22);關(guān)閉DMA_CICR中的所有中斷
MOV #0x2005,PORT (#0x0c24);源地址為外部SDRAM的442005h
MOV #0x0044,PORT(#0x0c25)
MOV #0x4000,PORT (#0x0c26);目的地址為DARAM的4000h
MOV #0x0000,PORT(#0x0c27)
MOV #0x0400,PORT (#0x0c28);每幀1024個數(shù)據(jù)單元
MOV #0x0001,PORT (#0x0c29);每塊1幀
MOV #0x4011,PORT (#0x0c21);源地址固定,目的地址采用自動遞增方式修改地址,外部中斷2作為同步事件
DMA通道2的設(shè)置和通道1只有目的地址不同,其他都相同,下面給出了DMA通道2目的地址設(shè)置程序:
MOV #0x4400,PORT (#0x0c46);通道2目的地址為DARAM的4400h
MOV #0x0000,PORT(#0x0c27)
程序的中斷服務(wù)程序主要功能是當一幀數(shù)據(jù)采集結(jié)束后,對標志位進行設(shè)置,讓CPU來處理這幀數(shù)據(jù),同時把下一幀要采集的數(shù)據(jù)用另一個DMA通道采集并存儲到另一塊存儲區(qū)。
結(jié)語
本文利用DMA接口方式從EMIF的數(shù)據(jù)總線上直接采集數(shù)據(jù),實現(xiàn)了高速并行數(shù)據(jù)采集,且結(jié)構(gòu)簡單,經(jīng)過實踐檢驗,最高采集速率達36Mbps,不僅能夠?qū)崟r測量激光波長,而且在其他需要實時的數(shù)字視頻系統(tǒng)應(yīng)用中也有很好的應(yīng)用前景?!?/p>
參考文獻
1 應(yīng)俊,徐盛,陳健. C5400系列DSP與AC97 Codec的接口. 電子設(shè)計應(yīng)用. 2003
2 申敏,鄧矣兵. DSP原理及其在移動通信中的應(yīng)用. 北京:人民郵電出版社,2001
評論