《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于PCI的高速DSP應用系統設計
基于PCI的高速DSP應用系統設計
來源:微型機與應用2012年第1期
童建中1,童 華2
(1.四川化工職業技術學院 信息工程系,四川 瀘州 646005;2.重慶電子工程職業學院 通信工程
摘要: 結合S5933和TMS320C6000 DSP設計了高速圖像處理硬件平臺,可適應和滿足利用PC機進行高速數據采集與處理設備的技術發展趨勢和應用需求。
Abstract:
Key words :

摘  要: 結合S5933和TMS320C6000 DSP設計了高速圖像處理硬件平臺,可適應和滿足利用PC機進行高速數據采集與處理設備的技術發展趨勢和應用需求。
關鍵詞: 前端數據采集;TMS320C6000系列DSP;PCI總線專用芯片;實時高速數字圖像處理

 當前,在計算機、多媒體、數據通信和網絡技術的發展、應用和融合中,人們對計算機視頻應用的要求越來越高,這使得實時、高速、便捷、智能化、大容量的高性能數字圖像處理設備成為未來視頻設備的發展方向,這必然要求產生與之相適應的新理論、新方法和新算法。為了在利用和實現這些新技術的過程中驗證其可行性,突破高速DSP硬件設備的技術應用瓶頸,本文提出了一種基于PCI總線和TI公司C6000系列高端DSP芯片的高速數字圖像處理平臺設計方案,從硬件和軟件上解決了通過AMCC公司的S5933 PCI總線接口芯片,由CLPD作橋,實現與功能強大的 TMS320C6416 HPI主機接口的高速通信,為做進一步實時音視頻壓縮、圖像檢測、視覺定位、高速處理等算法研究提供了完整的實踐平臺。
1 系統硬件結構
 TMS320C6000系列DSP是基于TMS320C6000平臺的32 bit浮點DSP處理器。它包含兩個子系列:用于定點計算的TMS320C62x系列和用于浮點計算的TMS320C67x系列。TMS320C6000系列時鐘頻率最高可達到250 MHz。該系列DSP包含兩個通用的寄存器組A和B,每組有16個32 bit的寄存器。芯片內含8個運算功能單元:兩個乘法器(M1和M2),6個算術邏輯單元(L1、L2、S1、S2、D1及D2),所有單元都能獨立并行操縱。以TM320C6701為例,其工作頻率最高為167 MHz,最快速度可達8×167=1 336 MIPS。
基于S5933的高速TMS320C6000 DSP圖像處理硬件平臺設計系統框圖如圖1所示。整個系統由前端數據采集、DSP和PCI總線專用芯片組成。

 DSP芯片采用TI公司高性能數字信號處理器TMS320C6416,芯片采用哈佛結構、流水線操作、專用硬件乘法器、快速DSP指令。主頻可高達600 MHz~1 GHz,片內的RAM采用兩級高速緩存結構,程序和數據擁有獨立的緩存空間。片內提供多種集成外設;多通道的EMDA控制器、多信道帶緩沖能力的串口McBSP、32 bit通用計數器和I2C總線主/從模式接口等。
 TMS320C6416的兩個獨立的外部數據總線接口EMIFA(64 bit)和EMIFB(32 bit)具有很高的數據吞吐率(最高能達到1 200 Mb/s),而且可以與目前幾乎所有類型的存儲器直接連接,完成數字圖像處理數據的大容量高速存儲。
 前端采用兩路ADI公司的14 bit數/模轉換器AD6645(80/105 MSPS)通過SMA射頻端子進行高速數據采樣,其具有很高的無雜散動態范圍和過采樣性能,可以降低系統對前端射頻元器件的要求,從而降低系統的復雜性和生產成本。數據經FPGA進行一定緩沖,或是進行FFT、濾波、去噪,再由64 bit的EMIFA接口發送到DSP進行編解碼處理、MPEG4壓縮等。最終,壓縮編碼后的視頻數據流可通過RS422將數據同步輸出或是由PCI總線發送給主機端保存或進行進一步驗證。
 該平臺DSP片外提供大容量高速存儲器空間。用ISSI公司的SBSRAM(128 KB×32 bit)和HYNIX的SDRAM(4 MB×16 bit),外置4 MB的Flash,為預處理或是處理后的圖像數據提供可靠、充裕的暫存空間。SBSRAM和SDRAM均可由EMIFB進行無縫連接,為硬件的實現帶來了很大的便利。
 PCI部分采用目前較常用的AMCC公司S5933接口芯片,它是一種功能強且使用靈活的PCI總線控制器專用芯片。該芯片符合PCI局部總線規范2.1版本,既可作為PCI總線目標設備,實現基本的傳送要求,也可作為PCI總線主控設備,訪問其他PCI總線設備。S5933的峰值傳送速率為132 Mb/s(32 bit PCI數據總線)。
S5933外部提供了3個物理總線:PCI總線接口、外加總線接口(Add_On Bus)和可選的NVRAM接口。用戶可根據需要設計S5933與外加總線接口相連接的邏輯電路和配置空間的初始化,而不必考慮PCI總線規范的眾多協議,從而將復雜的PCI總線接口關系轉化為簡單的8 bit/16 bit/32 bit外加總線接口關系。
    S5933硬件結構及外部連接圖如圖2所示。主機端通過32 bit PCI總線與S5933進行數據傳輸,再由CPLD做內部狀態機,負責DSP端HPI(Host-Port Interface)接口的時序控制,使DSP與主機端進行16 bit/32 bit的數據交互。

 主機接口HPI是TI高性能DSP上配置的與主機進行通信的片內外設。通過HPI接口,主機可以非常方便地訪問DSP的所有地址空間,從而實現對DSP的控制。例如,TMS320C6421的HPI接口是一個16 bit寬的并行端口。主機(Host)對CPU地址空間的訪問是通過EDMA控制器實現的。HPI接口的訪問主要通過HPI控制寄存器(HPIC)、HPI地址寄存器(HPIA)和HPI數據寄存器(HPID)三個專用寄存器來實現。
另一方面,CPLD掛載在EMIFB上,進行DSP端存儲器映射,從而使DSP可以通過Add_On Bus接口實現對S5933內部FIFO或Mailbox的控制,達到與主機端進行命令或狀態信息的通信。
2 系統軟件實現

 


 使用專用DSP芯片進行設計與開發,包括硬件和軟件兩個方面。在軟件方面通常有以下三種軟件設計方式。
 (1)完全用C語言開發。TI公司提供了用于C語言開發的CCS(Code Composer Studio)平臺,該平臺包括優化ANSI C編譯器,從而可以在C源程序級進行開發。這種方式大大提高了軟件的開發速度和可讀性,方便了軟件的修改和移植。但是,在某些情況下,C代碼的效率還是無法與手工編寫的匯編代碼的效率相比,如FFT編程。這是因為即使是最佳的C編譯器也無法在所有的高速下都能最合理地利用DSP芯片所提供的各種資源。此外,用C語言實現DSP芯片的某些硬件控制也不如匯編程序方便,有些甚至無法用C語言實現。
 (2)完全用匯編語言開發。TI公司提供了用于匯編語言開發的針對TMS320C54X的匯編語言,用戶可以用它進行軟件開發。此方式可以更合理地充分利用DSP芯片提供的硬件資源,代碼效率高,程序執行速度快。但是用DSP芯片的匯編語言編寫程序是比較復雜的。一般來說,不同公司的芯片匯編語言是不同的,即使是同一公司的芯片,由于芯片類型的不同(如定點和浮點)和芯片的升級換代,其匯編語言也不同。因此,用匯編語言開發基于某種DSP芯片的產品周期較長,并且軟件的修改和升級較困難,這些都是由匯編語言的可讀性和可移植性較差所致。
 (3)用C語言和匯編語言混合編程開發。為了充分利用DSP芯片的資源,更好地發揮C語言和匯編語言的各自優點,可以將兩者有機結合起來,兼顧兩者的優點,避免其弊端。因此,在很多情況下,采用混合編程方法能更好地達到設計要求,完成設計功能。但是,采用C語言和匯編語言混合編程必須遵循一些有關的規則,否則會遇到一些意想不到的問題,給開發設計帶來許多麻煩。
 TMS320C6000在設計時采用了一種類RISC機的結構,指令集非常簡單,運算速度特別快,實時性較好,但是有時又感覺匯編指令集太小。像DSP算法中常用的乘加指令、循環操作指令等,在C54x和C3x中兩條指令就可以完成的功能,而在C6000中用作處理復雜并發任務時卻需要一個循環體,所以它的程序設計一般比較復雜。要想充分發揮C6000的運算能力,必須從其硬件結構出發,最大限度地利用8個功能單元,使用軟件流水線,盡量讓程序無沖突地并行執行。
 并行處理的長處在于,在處理彼此之間沒有承接關系的運算時,在CPU資源允許的情況下可以并行完成。但對于前后有承接關系或者判斷、跳轉頻繁的情況,就無法發揮并行的優勢。一般循環體都滿足并行處理的條件,并且循環體往往是程序中耗時最長的,因此用C6000進行開發時應將優化重點放在循環體上。為了降低開發難度,C6000提供了很多通過高級語言(如ANSI C)對程序進行優化的方法。在應用滿足實時性處理要求時,應盡量采用該方法。但是這種方法的效率比較低,C語言優化最好的例子是點乘,這種循環使用C語言進行優化的方法可以百分之百地利用CPU資源,使程序的并行性達到最好。但經驗證明,做20點的點乘的耗時是匯編語言程序的3倍,所以如果系統對實時性要求比較高,就不能使用這種優化方法了。基于DSP的C語言和匯編語言混合編程的程序設計方法可以較好地解決以上問題。
 軟件設計包括了兩個部分:主機端對DSP片內片外存儲器的讀寫和DSP端對片外存儲器的讀寫。
主機端和DSP端的軟件流程如圖3所示。


 主機端用Visual C++開發生成,其中利用了WIN32的API函數,封裝在EVM6X.LIB庫中。在應用程序中,需要包含頭文件evm6xdll.h,在這個頭文件中,包含對各個WIN32 API函數的定義,具體定義可以參看參考文獻[4]。
由圖3中可知,主機端通過HPI口把COFF文件加載到DSP片內運行,由S5933的Mailbox做橋梁,實現了與DSP之間消息的通信。從而達到了主機端對DSP片內和片外所有存儲器的高速讀寫,保證了數據處理的實時性和可靠性。
 需要注意的是,在主機端和DSP端之間Mailbox的傳遞,在硬件上是通過DSP芯片的外部管腳EXT_INT4來發起的,并且每次跳出中斷服務程序都應該對S5933的Add_On Bus端的imcoming mailbox實行中斷清零操作。
 例如,實現PC機對DSP攝像系統的攝像控制以及圖像的傳輸,主要使用的API函數是DeviceIOControl()、ReadFile()和WriteFile()。其中DeviceIOControl()用于PC機(主機)向DSP圖像采集系統發送請求;ReadFile()和WriteFile()分別用于從圖像采集系統中讀出數據以及向圖像采集系統中寫入數據。在設計過程中必須注意的問題是,由于USB接口為主-從方式,其一切傳輸過程都必須通過主機向外設發送請求后才可以開始,因此在使用ReadFile()、WriteFile()讀寫數據之前,必須先通過DeviceIOControl()向圖像采集系統發送請求。
 實驗數據表明,DSP數據吞吐率>500 Mb/s,PCI傳送速率>100 Mb/s。采用PCI接口芯片S5933、DSP芯片TMS320C6416設計,再配置視頻輸入處理芯片SAA7113,實現的視頻圖像處理實驗平臺系統可實現圖像的高速連續采集,進行圖像壓縮、圖像處理等算法的驗證,達到了系統設計的目標。本系統具有使用靈活、升級TI更新芯片方便等特點。此外,TMS320C64x系列自帶有PCI橋,HPI接口有16 bit/32 bit兩種數據寬度,可由外部PCI_EN和HD5管腳進行靈活配制。利用TMS320C64x自帶的PCI橋,可更加節省硬件的開發成本,但卻缺少了PCI總線主控操作,主機端與DSP通信靈活性沒有本文提出的方案高,在實際工程應用中根據設計人員的具體要求而定。
參考文獻
[1] TI Inc.. Interfacing the TMS320C6000 EMIF to a PCI bus using the AMCC S5933 PCI controller[Z]. 2001.
[2] TI Inc.. TMS320C6414, TMS320C6415, TMS320C6416 fixed-point digital signal processors[Z]. 2005.
[3] AMCC Inc.. PCI products data book[Z]. 1998.
[4] TI Inc.. TMS320C62016701 evaluation module[Z]. 2004.
[5] TI Inc.. TMS320C6000 optimizing compiler user′s guide([SPRU187L])[Z]. 2004.
[6] TI Inc.. TMS320C6000 programmer′s guide([SPRU198G])[Z]. 2002.
[7] TI Inc.. TMS320C6000 assembly language tools user′s guide([SPRU186N])[Z]. 2004.
[8] 陳利學.微機總線與接口設計[M].成都:電子科技大學出版社,1998.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
黄色精品一区| 欧美一区二区精品在线| 国产精品美女午夜av| 欧美jjzz| 欧美成人国产一区二区| 久久亚洲视频| 久久亚洲综合| 久久综合久色欧美综合狠狠| 久久性天堂网| 老妇喷水一区二区三区| 乱码第一页成人| 老司机成人网| 欧美风情在线观看| 欧美精品观看| 欧美日韩直播| 国产精品成人在线| 国产精品香蕉在线观看| 国产三区精品| 激情欧美一区二区三区| 亚洲国产成人不卡| 日韩午夜一区| 亚洲伊人一本大道中文字幕| 亚洲一区二区黄色| 香蕉成人久久| 亚洲成人中文| 99精品国产在热久久婷婷| 亚洲午夜性刺激影院| 午夜精品久久久久久久男人的天堂 | 欧美在线看片a免费观看| 久久精品视频免费播放| 免费成人av| 欧美日韩免费一区| 国产精品一区二区在线| 精品成人一区二区| 亚洲精品久久久久久久久久久| 国产精品99久久久久久久久久久久| 午夜视频一区二区| 亚洲人成网站在线观看播放| 一本久久综合亚洲鲁鲁五月天| 亚洲欧美三级在线| 久久久亚洲一区| 欧美精品午夜视频| 国产精品爽黄69| 一区二区三区无毛| 99热免费精品在线观看| 香蕉亚洲视频| 一本不卡影院| 欧美一区二区三区视频| 蘑菇福利视频一区播放| 欧美视频四区| 好吊日精品视频| 亚洲卡通欧美制服中文| 午夜精品理论片| 亚洲精品日韩一| 性欧美精品高清| 欧美激情亚洲另类| 国产情人综合久久777777| 亚洲国产日韩一区| 亚洲伊人久久综合| 亚洲美女网站| 欧美中文在线免费| 欧美日韩国产成人在线观看| 国产色婷婷国产综合在线理论片a| 在线精品国精品国产尤物884a| 亚洲视频高清| 亚洲欧洲偷拍精品| 欧美在线播放一区| 欧美日韩精品不卡| 国模私拍一区二区三区| 亚洲精品少妇| 久久精品国产清自在天天线| 亚洲一区二区三区在线播放| 麻豆精品视频在线观看| 国产精品区一区| 亚洲级视频在线观看免费1级| 午夜亚洲伦理| 亚洲先锋成人| 欧美黄色免费| 激情久久一区| 午夜日韩av| 亚洲一区免费视频| 欧美精品videossex性护士| 狠狠色丁香久久综合频道 | 亚洲欧美国内爽妇网| 妖精成人www高清在线观看| 久久婷婷av| 国产精品综合av一区二区国产馆| 亚洲精品一区二| 亚洲国产欧美一区二区三区丁香婷| 性色av一区二区三区| 欧美日韩亚洲系列| 亚洲国产欧美一区| 亚洲国产日韩欧美在线动漫| 久久精品视频在线免费观看| 国产精品色一区二区三区| 亚洲剧情一区二区| 亚洲看片一区| 欧美a级在线| 一区二区在线观看av| 欧美中文字幕视频| 久久av一区二区| 国产精品一区二区欧美| 在线亚洲一区观看| 亚洲先锋成人| 欧美调教视频| 中文久久精品| 亚洲欧美激情视频在线观看一区二区三区| 欧美精品一区三区在线观看| 在线观看欧美精品| 亚洲国内高清视频| 久久亚洲影院| 激情自拍一区| 亚洲福利在线观看| 久久综合一区| 亚洲大胆美女视频| 亚洲精品乱码视频| 欧美激情四色 | 中文av一区二区| 亚洲一区二区精品| 国产精品久久久久久久久久久久| 这里只有精品丝袜| 亚洲欧美精品一区| 国产美女精品视频免费观看| 亚洲欧美日韩国产中文| 久久电影一区| 韩国成人精品a∨在线观看| 久久riav二区三区| 久久先锋资源| 亚洲国产清纯| 在线视频一区观看| 国产精品家教| 午夜日韩在线观看| 久久综合激情| 亚洲黄色大片| 亚洲视频一区在线观看| 国产精品免费视频观看| 香蕉久久夜色精品国产使用方法| 久久精品视频播放| 在线精品高清中文字幕| 一本色道久久综合亚洲二区三区 | 午夜激情一区| 久热re这里精品视频在线6| 亚洲国产精品一区在线观看不卡| 日韩一级黄色av| 国产精品高清网站| 欧美亚洲尤物久久| 免费永久网站黄欧美| 亚洲毛片播放| 欧美亚洲一区| 在线看无码的免费网站| 亚洲视频国产视频| 国产欧美综合在线| 亚洲精品视频在线观看免费| 欧美午夜不卡视频| 欧美亚洲免费| 欧美精品网站| 亚洲免费伊人电影在线观看av| 久久亚裔精品欧美| 日韩午夜在线电影| 久久超碰97人人做人人爱| 伊人狠狠色j香婷婷综合| 这里只有精品视频| 国产日韩精品一区二区| 亚洲人精品午夜| 国产精品久久久久久久9999| 欧美中在线观看| 欧美日韩免费观看一区=区三区 | 久久国产精品亚洲77777| 欧美精品在线视频| 午夜精品区一区二区三| 午夜电影亚洲| 亚洲天堂成人| 夜夜嗨av色综合久久久综合网| 亚洲尤物在线| 欧美成人精品一区二区三区| 亚洲香蕉视频| 欧美黑人国产人伦爽爽爽| 亚洲女同精品视频| 欧美精品国产一区二区| 欧美亚洲视频在线看网址| 欧美日韩精品在线播放| 欧美在线在线| 国产精品久久久久久久久久妞妞 | 篠田优中文在线播放第一区| 亚洲国产精品久久久久婷婷老年 | 一二三四社区欧美黄| 国产一区二区视频在线观看| 亚洲特级片在线| 在线播放精品| 久久高清福利视频| 一区二区三区 在线观看视频| 欧美99久久| 欧美专区第一页| 国产精品久久久久久久久久久久| 亚洲欧洲精品一区二区三区不卡| 国产欧美一区二区三区在线看蜜臀| 一区二区三区毛片| 亚洲高清二区| 久久蜜桃av一区精品变态类天堂| 一区二区三区精品国产|