實(shí)時(shí)時(shí)鐘DS1302與超級電容
引言
tigersharc 128-bit數(shù)字信號處理器是繼高性能dsp——adsp-2106x sharc之后的新一代產(chǎn)品,tigersharc將數(shù)字信號處理器性能提升到了一個新的高度。2001年,美國adi公司發(fā)布了其高性能tigersharc系列dsp的新成員,adsp-ts101s的有關(guān)技術(shù)文件。從2002年下半年起,在國內(nèi)市場上可以訂購到adsp-ts101s的正版芯片。adsp-ts101s
tiger sharc dsp是一款性能極高的靜態(tài)超標(biāo)量處理器專為大的信號處理任務(wù)和通訊結(jié)構(gòu)進(jìn)行了優(yōu)化。該處理器,將非常寬的存儲器寬度和雙運(yùn)算模塊組合在一起,建立了數(shù)字信號處理器新標(biāo)準(zhǔn)。
adsp-ts101s主要性能特點(diǎn):
·300mhz的運(yùn)行速度,3.3ns指令周期;
·6m bits片內(nèi)saram;
·雙運(yùn)算模塊——每個包含一個alu,一個乘法器,一個移位器和一個寄存器組;
·雙整數(shù)alu,提供數(shù)據(jù)尋址和指針操作功能;
·集成i/o包括14通道的dma控制器,外部端口,4個鏈路口,sdram控制器,可編程標(biāo)志引腳,2個定時(shí)器和定時(shí)器計(jì)滿引腳等用于系統(tǒng);
·ieee 1149.1兼容的jtag端口用于片上仿真;
·片上仲裁通過共享總線可無縫連接多達(dá)8個tigersharc dsp。
系統(tǒng)設(shè)計(jì)要求
該高速圖像處理系統(tǒng)主要完成的功能是:實(shí)時(shí)處理ccd(charge coupled device)連續(xù)采集輸入的圖像數(shù)據(jù),并從每一幀圖像中提取出其中最長的一條直線。具體要求指標(biāo)如下: 1)為達(dá)到與ccd同步的實(shí)時(shí)處理,每秒處理25幀圖像;
2)圖像為320 240陣列,像素為16位精度定點(diǎn)數(shù);
3)從每幀圖像中提取其中的直線信息,并給出最長直線的坐標(biāo);
adsp-ts101s的應(yīng)用分析
該系統(tǒng)的設(shè)計(jì)難點(diǎn)主要是在數(shù)據(jù)量大,時(shí)間要求短的情況下如何實(shí)現(xiàn)圖像數(shù)據(jù)的高速處理。每幀圖像的數(shù)據(jù)量大小為320 240=76.8 kbit,而按照系統(tǒng)的設(shè)計(jì)要求,處理每幀圖像數(shù)據(jù)僅有40ms的時(shí)間,除去由fpga中fifo(輸入輸出緩存單元)緩存由ccd進(jìn)入的圖像數(shù)據(jù)時(shí)間(20ms),留給系統(tǒng)處理數(shù)據(jù)的時(shí)間僅有20ms。選用時(shí)鐘為300mhz的ts101芯片,即每個指令周期為3.3ns。結(jié)合數(shù)據(jù)運(yùn)算量的大小以及整個系統(tǒng)成本的考慮,選用4片dsp組成主處理系統(tǒng)(為提高運(yùn)算速度及精度,可選用6片甚至8片dsp完成系統(tǒng)功能)。此外,由于數(shù)據(jù)量大,增加一片64m的sdram補(bǔ)充dsp內(nèi)部存儲單元的不足。
硬件應(yīng)用設(shè)計(jì)
adsp-ts101s有兩套獨(dú)立的電源1.2v和3.3v,內(nèi)部邏輯和模擬電路電源必須滿足1.2v的要求,i/o緩沖電源必須滿足3.3v的要求。而且需要注意的是dsp供電的順序是先提供1.2v,然后是3.3v。由于系統(tǒng)芯片引腳復(fù)雜性及電路的龐大,本文不再給出詳細(xì)的電路原理圖。系統(tǒng)硬件原理框圖如圖1所示。
系統(tǒng)加電后,fpga從fpga -flash加載程序代碼;四片dsp(dsp0~dsp3)上電后分別從 flash加載程序,等待圖像數(shù)據(jù)的輸入。ccd每隔20ms輸入一幀數(shù)據(jù)(76.8k)至fpga的fifo緩存,通過外部dma方式由dsp0傳送至sdram,之后通過總線仲裁,數(shù)據(jù)流平均分成四部分由dsp0~dsp3并行執(zhí)行。最后計(jì)算結(jié)果由dsp3通過fpga送回,由串口輸出至顯示屏。系統(tǒng)調(diào)試過程中,通過jtag測試訪問端口對系統(tǒng)進(jìn)行調(diào)試與仿真。
軟件應(yīng)用設(shè)計(jì)
為了實(shí)現(xiàn)系統(tǒng)的高速性,節(jié)省系統(tǒng)的運(yùn)算時(shí)間,如何實(shí)現(xiàn)各dsp之間算法執(zhí)行的并行性是軟件設(shè)計(jì)中應(yīng)考慮的首要問題。由于圖像數(shù)據(jù)是通過fifo依次輸入的,并非一次性讀入,要實(shí)現(xiàn)算法的并行執(zhí)行就轉(zhuǎn)化為數(shù)據(jù)流如何分配的問題。借助sdram,本系統(tǒng)數(shù)據(jù)流分配圖如圖2所示。
主程序設(shè)計(jì)
軟件設(shè)計(jì)采用模塊化結(jié)構(gòu),算法采用現(xiàn)已相當(dāng)成熟、使用最多的圖像處理算法。主程序模塊主要有初始化模塊、數(shù)據(jù)接收模塊、中值濾波模塊、邊緣增強(qiáng)模塊、邊緣細(xì)化模塊和直線提取模塊。系統(tǒng)上電后,對系統(tǒng)進(jìn)行初始化,初始化主要完成dsp專用寄存器的設(shè)定,特別是各中斷寄存器的設(shè)置以及相關(guān)存儲單元的清零。主程序流程圖如圖3所示。
中斷服務(wù)程序設(shè)計(jì)
系統(tǒng)程序設(shè)計(jì)中,中斷服務(wù)程序是控制程序執(zhí)行的一種重要方式。tigersharc dsp支持多種類型的中斷,它們中的一部分由內(nèi)部產(chǎn)生,另外一些則由外部產(chǎn)生。tigersharc dsp的大多數(shù)中斷都是專用的,但也有四個外部中斷和一個中斷寄存器。
在該系統(tǒng)的設(shè)計(jì)中,dsp接收fifo輸入的圖像數(shù)據(jù),就是通過檢測外部irq0中斷引腳來實(shí)現(xiàn)的。該中斷采用的是邊沿觸發(fā)方式:數(shù)據(jù)準(zhǔn)備好,則fpga給dsp0的irq0引腳一個下降沿,觸發(fā)外部irq中斷,進(jìn)入中斷服務(wù)程序,并在中斷服務(wù)程序中設(shè)置下一步需要的外部口dma寄存器,設(shè)置完畢進(jìn)入外部dma中斷服務(wù)程序;反之dsp0繼續(xù)等待,直到有外部中斷產(chǎn)生為止。
由于出現(xiàn)中斷嵌套,因此服務(wù)程序的第一條指令必須專門用來保存狀態(tài)機(jī)的當(dāng)前狀態(tài),所有在中斷服務(wù)程序中可能用到的寄存器必須入棧保存。由于irq0-3中斷優(yōu)先級高于dma通道0-13中斷,因此總是先響應(yīng)irq0中斷,再響應(yīng)外部dma中斷。
外部irq中斷服務(wù)程序如圖4所示。
dma程序設(shè)計(jì)
dma(直接存儲器訪問)方式是不需要處理器核干預(yù)的數(shù)據(jù)傳輸機(jī)制。tigersharc片內(nèi)的dma控制器允許將數(shù)據(jù)傳輸作為一個后臺任務(wù)執(zhí)行,從而將處理器核釋放出來,進(jìn)行其他數(shù)字信號處理操作。在該系統(tǒng)設(shè)計(jì)中,主要用到了兩種dma傳輸方式:片間鏈路口dma和外部口dma。鏈路口主要用于4片dsp之間傳送批量數(shù)據(jù),而外部口dma主要用于dsp與sdram之間批量數(shù)據(jù)的傳輸。無論何種dma方式,編程的關(guān)鍵是設(shè)置相應(yīng)的接收tcb寄存器和發(fā)送tcb寄存器。下面分別給出兩種方式下用tiger sharc dsp匯編語言編寫的dma 中斷寄存器設(shè)置方式:
1)鏈路口dma
程序段實(shí)現(xiàn)功能:用鏈路口3完成數(shù)據(jù)的dma接收。
.section program;
……
xr0=0x90010000;;
xr1=0x00000000;;
imaskh=xr0;;
//使能全局中斷和矢量中斷
imaskl=xr1;;
//關(guān)閉所有dma通道中斷
xr0 = imaskh;;
xr1 = 0x00000001;;
xr0 = r0 or r1;;
//使能dma11(鏈路口3dma的 接收通道)中斷
imaskh = xr0;;
j0 = j31 + dma11_int;;
//設(shè)置dma中斷向量
ivdma11 = j0;;
xr8 = n;;
//數(shù)據(jù)量
xr9 = lshift r8 by 16;; xr10 = 2;;
//修正值
xr4 = rx_data;;
//接收目的地址
xr5 = r9 or r10;;
//00000000010000000000000000000100
xr6 = 0x00000000;;
xr7 = 0x45000000;;
//01000111000000000000000000000000
xr0 = 0x000004da;;
lctl3 = xr0;;
//link3控制設(shè)置
dc11 = xr7:4;;
//開啟link3接收dma
idle;;
2)外部口dma
程序段實(shí)現(xiàn)功能:通過外部口1完成數(shù)據(jù)從sdram到dsp內(nèi)存單元的傳送。
.section program;
……
xr0 = imaskl;;
xr1 = 0x0000c000;;
xr0 = r0 or r1;;
imaskl = xr0;;
// 使能 dma0和 dma1
xr4 = n;
// 數(shù)據(jù)量
xr5 = lshift r4 by 16;;
xr6 = 1;;
// 修正值
xr1 = r6 or r5;;
// 00000000010000000000000000000100
xr2 = 0x00000000;;
xr3 = 0x43000000;;
//01000111000000000000000000000000
xr8 = sdram_data;;
//源地址
xr9 = xr1;;
xr10 = 0x00000000;;
xr11 = 0x83000000;;
xr0 = rx_data;;
//目的地址
dcs1 = xr11:8;;
// 加載源 tcb
dcd1 = xr3:0;
//加載目的tcb
idle;;
結(jié)論
本文結(jié)合tigersharc芯片adsp-ts101s的主要性能特點(diǎn),詳細(xì)介紹了該芯片在高速圖像處理系統(tǒng)中的應(yīng)用,并給出了較詳細(xì)的軟硬件設(shè)計(jì)原理。通過使用4片adsp-ts101s的并行處理,該系統(tǒng)很好的完成了系統(tǒng)要求的高速性能。adsp-ts101s tigersharc dsp芯片以其特有的高性能結(jié)構(gòu)和優(yōu)化簡潔的指令系統(tǒng),有著非常廣闊的應(yīng)用前景。
評論