實(shí)時(shí)時(shí)鐘DS1302與超級電容
引言
tigersharc 128-bit數字信號處理器是繼高性能dsp——adsp-2106x sharc之后的新一代產(chǎn)品,tigersharc將數字信號處理器性能提升到了一個(gè)新的高度。2001年,美國adi公司發(fā)布了其高性能tigersharc系列dsp的新成員,adsp-ts101s的有關(guān)技術(shù)文件。從2002年下半年起,在國內市場(chǎng)上可以訂購到adsp-ts101s的正版芯片。adsp-ts101s
tiger sharc dsp是一款性能極高的靜態(tài)超標量處理器專(zhuān)為大的信號處理任務(wù)和通訊結構進(jìn)行了優(yōu)化。該處理器,將非常寬的存儲器寬度和雙運算模塊組合在一起,建立了數字信號處理器新標準。
adsp-ts101s主要性能特點(diǎn):
·300mhz的運行速度,3.3ns指令周期;
·6m bits片內saram;
·雙運算模塊——每個(gè)包含一個(gè)alu,一個(gè)乘法器,一個(gè)移位器和一個(gè)寄存器組;
·雙整數alu,提供數據尋址和指針操作功能;
·集成i/o包括14通道的dma控制器,外部端口,4個(gè)鏈路口,sdram控制器,可編程標志引腳,2個(gè)定時(shí)器和定時(shí)器計滿(mǎn)引腳等用于系統;
·ieee 1149.1兼容的jtag端口用于片上仿真;
·片上仲裁通過(guò)共享總線(xiàn)可無(wú)縫連接多達8個(gè)tigersharc dsp。
系統設計要求
該高速圖像處理系統主要完成的功能是:實(shí)時(shí)處理ccd(charge coupled device)連續采集輸入的圖像數據,并從每一幀圖像中提取出其中最長(cháng)的一條直線(xiàn)。具體要求指標如下: 1)為達到與ccd同步的實(shí)時(shí)處理,每秒處理25幀圖像;
2)圖像為320 240陣列,像素為16位精度定點(diǎn)數;
3)從每幀圖像中提取其中的直線(xiàn)信息,并給出最長(cháng)直線(xiàn)的坐標;
adsp-ts101s的應用分析
該系統的設計難點(diǎn)主要是在數據量大,時(shí)間要求短的情況下如何實(shí)現圖像數據的高速處理。每幀圖像的數據量大小為320 240=76.8 kbit,而按照系統的設計要求,處理每幀圖像數據僅有40ms的時(shí)間,除去由fpga中fifo(輸入輸出緩存單元)緩存由ccd進(jìn)入的圖像數據時(shí)間(20ms),留給系統處理數據的時(shí)間僅有20ms。選用時(shí)鐘為300mhz的ts101芯片,即每個(gè)指令周期為3.3ns。結合數據運算量的大小以及整個(gè)系統成本的考慮,選用4片dsp組成主處理系統(為提高運算速度及精度,可選用6片甚至8片dsp完成系統功能)。此外,由于數據量大,增加一片64m的sdram補充dsp內部存儲單元的不足。
硬件應用設計
adsp-ts101s有兩套獨立的電源1.2v和3.3v,內部邏輯和模擬電路電源必須滿(mǎn)足1.2v的要求,i/o緩沖電源必須滿(mǎn)足3.3v的要求。而且需要注意的是dsp供電的順序是先提供1.2v,然后是3.3v。由于系統芯片引腳復雜性及電路的龐大,本文不再給出詳細的電路原理圖。系統硬件原理框圖如圖1所示。

系統加電后,fpga從fpga -flash加載程序代碼;四片dsp(dsp0~dsp3)上電后分別從 flash加載程序,等待圖像數據的輸入。ccd每隔20ms輸入一幀數據(76.8k)至fpga的fifo緩存,通過(guò)外部dma方式由dsp0傳送至sdram,之后通過(guò)總線(xiàn)仲裁,數據流平均分成四部分由dsp0~dsp3并行執行。最后計算結果由dsp3通過(guò)fpga送回,由串口輸出至顯示屏。系統調試過(guò)程中,通過(guò)jtag測試訪(fǎng)問(wèn)端口對系統進(jìn)行調試與仿真。
軟件應用設計
為了實(shí)現系統的高速性,節省系統的運算時(shí)間,如何實(shí)現各dsp之間算法執行的并行性是軟件設計中應考慮的首要問(wèn)題。由于圖像數據是通過(guò)fifo依次輸入的,并非一次性讀入,要實(shí)現算法的并行執行就轉化為數據流如何分配的問(wèn)題。借助sdram,本系統數據流分配圖如圖2所示。

主程序設計
軟件設計采用模塊化結構,算法采用現已相當成熟、使用最多的圖像處理算法。主程序模塊主要有初始化模塊、數據接收模塊、中值濾波模塊、邊緣增強模塊、邊緣細化模塊和直線(xiàn)提取模塊。系統上電后,對系統進(jìn)行初始化,初始化主要完成dsp專(zhuān)用寄存器的設定,特別是各中斷寄存器的設置以及相關(guān)存儲單元的清零。主程序流程圖如圖3所示。

中斷服務(wù)程序設計
系統程序設計中,中斷服務(wù)程序是控制程序執行的一種重要方式。tigersharc dsp支持多種類(lèi)型的中斷,它們中的一部分由內部產(chǎn)生,另外一些則由外部產(chǎn)生。tigersharc dsp的大多數中斷都是專(zhuān)用的,但也有四個(gè)外部中斷和一個(gè)中斷寄存器。
在該系統的設計中,dsp接收f(shuō)ifo輸入的圖像數據,就是通過(guò)檢測外部irq0中斷引腳來(lái)實(shí)現的。該中斷采用的是邊沿觸發(fā)方式:數據準備好,則fpga給dsp0的irq0引腳一個(gè)下降沿,觸發(fā)外部irq中斷,進(jìn)入中斷服務(wù)程序,并在中斷服務(wù)程序中設置下一步需要的外部口dma寄存器,設置完畢進(jìn)入外部dma中斷服務(wù)程序;反之dsp0繼續等待,直到有外部中斷產(chǎn)生為止。
由于出現中斷嵌套,因此服務(wù)程序的第一條指令必須專(zhuān)門(mén)用來(lái)保存狀態(tài)機的當前狀態(tài),所有在中斷服務(wù)程序中可能用到的寄存器必須入棧保存。由于irq0-3中斷優(yōu)先級高于dma通道0-13中斷,因此總是先響應irq0中斷,再響應外部dma中斷。
外部irq中斷服務(wù)程序如圖4所示。

dma程序設計
dma(直接存儲器訪(fǎng)問(wèn))方式是不需要處理器核干預的數據傳輸機制。tigersharc片內的dma控制器允許將數據傳輸作為一個(gè)后臺任務(wù)執行,從而將處理器核釋放出來(lái),進(jìn)行其他數字信號處理操作。在該系統設計中,主要用到了兩種dma傳輸方式:片間鏈路口dma和外部口dma。鏈路口主要用于4片dsp之間傳送批量數據,而外部口dma主要用于dsp與sdram之間批量數據的傳輸。無(wú)論何種dma方式,編程的關(guān)鍵是設置相應的接收tcb寄存器和發(fā)送tcb寄存器。下面分別給出兩種方式下用tiger sharc dsp匯編語(yǔ)言編寫(xiě)的dma 中斷寄存器設置方式:
1)鏈路口dma
程序段實(shí)現功能:用鏈路口3完成數據的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;;
//設置dma中斷向量
ivdma11 = j0;;
xr8 = n;;
//數據量
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控制設置
dc11 = xr7:4;;
//開(kāi)啟link3接收dma
idle;;
2)外部口dma
程序段實(shí)現功能:通過(guò)外部口1完成數據從sdram到dsp內存單元的傳送。
.section program;
……
xr0 = imaskl;;
xr1 = 0x0000c000;;
xr0 = r0 or r1;;
imaskl = xr0;;
// 使能 dma0和 dma1
xr4 = n;
// 數據量
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;;
結論
本文結合tigersharc芯片adsp-ts101s的主要性能特點(diǎn),詳細介紹了該芯片在高速圖像處理系統中的應用,并給出了較詳細的軟硬件設計原理。通過(guò)使用4片adsp-ts101s的并行處理,該系統很好的完成了系統要求的高速性能。adsp-ts101s tigersharc dsp芯片以其特有的高性能結構和優(yōu)化簡(jiǎn)潔的指令系統,有著(zhù)非常廣闊的應用前景。
評論