楊皓宇,薛雙苓,王 磊,郭寶強,葛曼玲
(1.河北工業(yè)大學 電氣工程學院 天津 300130;2.廊坊職業(yè)技術學院 電氣工程系,廊坊 065000)
近年來隨著人們對數(shù)據(jù)的信息量、處理效率和系統(tǒng)實時控制精確度的要求不斷提高,對由數(shù)字信號處理器(Digital Signal Processor)簡稱DSP為中心處理單元的系統(tǒng)要求越來越高。它是一類為高速處理數(shù)字信號和算法而設計的處理器, 其系統(tǒng)架構和控制策略會影響整個系統(tǒng)的數(shù)據(jù)處理能力和運行速度。而現(xiàn)場可編程邏輯門陣列(FPGA)可以實時地對外部或內置的RAM、ROM編程,靈活改變邏輯器件的功能,從而實現(xiàn)不同的控制要求。采用基于FPGA的雙DM 642并行處理器的結構,可以使系統(tǒng)開發(fā)周期縮短,容易維護和擴展,大大拓展了單片DSP芯片性能,從而提高了系統(tǒng)的整體性能。
基于FPGA的雙DM 642通信系統(tǒng)由CMOS圖像傳感器、兩個DM 642芯片、FPGA以及SDRAM和FLASH存儲器組成。系統(tǒng)總體結構如圖1所示。可編程邏輯門陣列(FPGA)作為連接兩個DM 642之間的橋梁,在系統(tǒng)中擔負管理、接口和通信的功能;其中DM 642的SPI是由M cbsp擴展而成,兩個DM 642分為主從處理器,主DM 642的SPI配置成為主接收,用于接收來自從DM 642接收的數(shù)據(jù)信息,從DM 642的SPI用于向主處理器發(fā)送通信協(xié)議信息,同DM 642的GPIO中斷一起完成兩個DSP的兩次握手,兩個處理器間的圖像數(shù)據(jù)和通信協(xié)議是通過其自帶的VP口進行數(shù)據(jù)傳輸?shù)摹?/p>
圖1 系統(tǒng)總體結構圖
目前市場上主流的圖像傳感器主要分為CMOS(Complementary Metal-Oxide Sem iconductor)型,中文稱“互補金屬氧化物半導體”和CCD(Charge-Coupled Device)器件,中文稱“電荷耦合器件”兩種。
隨著CMOS技術的發(fā)展,CMOS由于其成本低、功耗低、單一工作電壓、集成AD轉換器、數(shù)字形式數(shù)據(jù)輸出、圖像大小可編程控制等優(yōu)點,在攝像頭、微型數(shù)碼相機、掃描儀、可視電話等領域中得到越來越多的應用;本系統(tǒng)的CMOS圖像傳感器采用的是M icron 公司的CMOS彩色圖像傳感器MT9T001,它采用Digital Clarity Image Sensor Technology技術,具有300萬像素(2048 x 1536)、43dB信噪比、簡單的接口和功能寄存器,可以將窗口在水平和垂直方向隨意變動、圖像坐標原點任意定義、幀速率可調、隔行或列輸出等。
DSP 芯片選用的是T I公司2003年推出的TMS320DM 642,它是一款32位定點DSP芯片,屬于C6000系列處理器,它采用第2代高性能增強型超長指令字(VelociTI.2)結構的DSP核及增強的并行機制,保留了C64x原有的內核結構,工作頻率由內部倍頻器設置,當工作在720MHz的時鐘頻率下,其處理性能最高可達5760M I/s。它的EM IFA接口數(shù)據(jù)總線寬度為64位,最高數(shù)據(jù)存取頻率達133 MHz,可直接與大容量、低成本的SDRAM 芯片無縫連接。DM 642片上帶有3個雙通道(VP0、VP1、VP2)數(shù)字視頻口,可同時處理多路數(shù)字視頻流,集成了諸如SPI,IIC,VP,EMAC等豐富的接口,為進行視頻圖像采集和數(shù)據(jù)交換提供了很好的解決方案。
根據(jù)FPGA要實現(xiàn)的數(shù)字信號處理功能以及存儲容量和時序控制邏輯的規(guī)模,評估了所需要要FPGA的邏輯資源、管腳數(shù)量、片內存儲資源等因素,最終選取了A ltera公司Cyclone III系列的EP3C80F484C8。Cyclone 系列的FPGA 是A ltera 公司針對低成本高性能的應用而推出, 具有很高的性價比。EP3C16F484C8的最大可用IO數(shù)量347,片內504Kbit的RAM可以配為單雙口RAM,ROM,FIFO等各式存儲模塊;四個高精度的鎖相環(huán),方便地為片內的各個模塊提供所需要的時鐘;15408個LE(邏輯單元)為接口電路的實現(xiàn)提供豐富的邏輯資源。FPGA系統(tǒng)時鐘50MHz,采用主動串行(AS)配置方式,配置芯片選擇EPCS16。A ltera公司的QuartusⅡ集成開發(fā)環(huán)境簡便易用,內含大量IP核,其內嵌的Signal TapⅡ邏輯分析儀更是為用戶的調試提供了很大方便。
1.5.1 主DSP配置方法
1)主DSP利用M cbsp口配置成SPI,擴展引腳與FPGA相連,模式為從接收。
2)主DSP利用VP1作為視頻顯示,VP2作為視頻采集,擴展引腳與FPGA相連。
3)主DSP的EM IF總線與FPGA相連完成對圖像傳感器參數(shù)的配置。
4)主DSP利用GPIO通知從DSP發(fā)送的協(xié)議還是圖像。擴展引腳與FPGA。1.5.2 從DSP配置方法
1)從DSP利用M cbsp口,配置成SPI,擴展引腳與FPGA相連,模式為主發(fā)送。
2)從DSP利用VP0作為視頻顯示,VP2視頻采集,擴展引腳與FPGA相連。
3)從DSP通過GPIO與主DSP通信,實現(xiàn)握手,擴展引腳與FPGA相連。
1.5.3 FPGA IO和中斷管理配置方法
當有數(shù)據(jù)需要傳輸?shù)紻SP時,IO管理模塊發(fā)出中斷信號給DSP。DSP接收到中斷信號后,查看FPGA內部狀態(tài)寄存器中具體發(fā)生中斷位。(狀態(tài)寄存器位詳見表1)DSP根據(jù)所判斷的位尋找對應的數(shù)據(jù),并從接口中將數(shù)據(jù)讀走。DSP完成數(shù)據(jù)的讀取后,將清除寄存器中對應位賦值為0,結束一次讀取任務。
此協(xié)議為主DSP與FPGA之間的通訊協(xié)議。該協(xié)議的數(shù)據(jù)位寬為32位,對應所需要配置的數(shù)據(jù),配置地址是基地址和偏移地址之和。
表1 主DSP與FPGA之間通信協(xié)議
本系統(tǒng)采用TI公司針對C6000系列芯片開發(fā)的DSP/BIOS操作系統(tǒng)進行軟件設計,采用多線程技術進行多任務間同步通信;對硬件的訪問是通過DSP/BIOS架構的M iniDriver方式進行的,這就保證了系統(tǒng)的穩(wěn)定性和可靠性。
TI公司為設備驅動開發(fā)者提供了一種類/微型驅動模型(class/m inidriver model)。該模型在功能上將設備驅動程序分為依賴硬件層和不依賴硬件層兩層, 兩層之間使用通用接口。如圖2所示, 類/微型驅動模型中的微型驅動直接控制外部設備。只要微型驅動創(chuàng)建了規(guī)定的函數(shù),應用程序就可以方便地通過GIO類驅動進行調用。這些規(guī)定的函數(shù)包括:通道綁定函數(shù)(mdBindDev)、通道創(chuàng)建/刪除函數(shù)(mdCreateChan/mdDeleteChan)、I/O請求發(fā)送函數(shù)(mdSubmitChan)、中斷服務函數(shù)(ISRs)和設備控制函數(shù)(mdControlChan)。這些規(guī)定的函數(shù)將放入微型驅動的函數(shù)接口表(IOM_Fxns)中的相應位置,供應用程序通過適配模塊或GIO類驅動調用。
圖2 DSP/BIOS驅動分層模型
對硬件的訪問都封裝成對應的驅動模塊,并且需要用到TI的DDK和NDK開放包,主要包括:1)對VP1和VP2的驅動設計,在DDK中TI為了降低設計難度,已經(jīng)針對VP口提供了常用編碼器和解碼器的驅動模塊,因此可以在其提供的庫文件中進行修改,具體來說就是修改VPORT_CAP_Params和VPORTDIS_Params結構中位寬定義字段修改為需要的位寬格式,然后把相關函數(shù)中參數(shù)和實際用到的變量對應修改即可。修改后要重新編譯工程,并將生成的庫文件加入系統(tǒng)工程。2)對SPI的驅動設計,可以在DDK中的視頻口驅動的基礎上,根據(jù)GIO驅動模型,將M cbsp配置成SPI主發(fā)從接,SPI從發(fā)主接二種模式,并且配置相應參數(shù)重新編譯工程,將庫文件加入即可。3) 對以太網(wǎng)口驅動設計,TI已經(jīng)在NDK中提供了TCP/IP協(xié)議棧的支持,但NDK要在自己的設計板子上運行,還需要在用戶板級驅動包中添加對EMAC和MDIO初始化操作。這里在BIOS的全局初始化函數(shù)中首先對物理層芯片進行復位,然后實現(xiàn)兩個回調函數(shù)_getConfig和_linkStatus,分別實現(xiàn)對MAC地址配置和以太網(wǎng)鏈路狀態(tài)信息的讀取。
主程序設計流程如圖3所示。開始上電,完成主DSP和從DSP上電自啟功能,實現(xiàn)兩個DSP處理器的兩次握手。從DSP初使化完成后通過SPI進行通知主DSP已經(jīng)完成初始化。主DSP進行系統(tǒng)初始化參數(shù)配置后,進行通過SPI接收從DSP的協(xié)議;如果從DSP接收到主DSP觸發(fā)GPIO到來的中斷,開始啟動圖像采集線程,完成第一次握手。然后主DSP通過VP1發(fā)送一數(shù)據(jù)幀協(xié)議進行初始化從DSP視頻口通道,從DSP通過VP2視頻口接收數(shù)據(jù)幀進行采集一幅圖像。通過協(xié)議解析,若判斷其為一協(xié)議,則完成從DSP參數(shù)的配置,然后刪除,創(chuàng)建視頻口通道;最后通過SPI發(fā)送從DSP視頻口創(chuàng)建完成協(xié)議,實現(xiàn)雙DSP的第二次握手。主DSP發(fā)送開始采集信號,打開圖像傳感器,從而進行正常的工作,從DSP完成算法處理,然后通過VP1發(fā)送算法處理后的圖像數(shù)據(jù)到主DSP的VP2口,最終通過以太網(wǎng)口傳輸?shù)缴衔粰C進行圖像顯示。
圖3 主程序流程圖
實驗使用A lte ra公司提供的Quartus下的signalTap為調試工具,主DSP發(fā)送給從DSP握手協(xié)議格式包括前導碼、數(shù)據(jù)長度,命令字和數(shù)據(jù),其中前導碼是進行兩個DSP發(fā)送數(shù)據(jù)之間的同步;數(shù)據(jù)長度為命令字和數(shù)據(jù)長度的總和,如表2所示。FPGA配置主從DSP的VP口,SPI、GPIO如圖4、圖5所示。通過Signal Tap II下觀測所傳輸?shù)臄?shù)據(jù),啟動從DSP的SPI在幀下降沿發(fā)送數(shù)據(jù),主DSP的VP1口時鐘上升沿使能。主從DSP接收的數(shù)據(jù)分別如圖4、圖5所示,分別對應表2的三個協(xié)議數(shù)據(jù)。實驗中我們處理了300幀大小為320x240的視頻圖像數(shù)據(jù),通過統(tǒng)計得出,每幀圖像的平均算法處理時間約為15ms,視頻圖像傳輸流暢,并且通過時序仿真波形圖也可以看出:基于FPGA架構的雙DM 642通信系統(tǒng)能夠進行實時、準確的數(shù)據(jù)通信。
圖4 VP口數(shù)據(jù)交換接口設置
圖5 SPI和GPIO接口設置
表2 協(xié)議數(shù)據(jù)格式
圖6 主DSP接收到的從DSP的SPI通信協(xié)議
圖7 從DSP接收到主DSP的GPIO中斷
圖8 從DSP接收的主DSP發(fā)送的圖像數(shù)據(jù)
采用FPGA實現(xiàn)雙DM 642耦合互聯(lián)進行數(shù)據(jù)交換,適合于數(shù)據(jù)吞吐量大,實時性、穩(wěn)定性要求高的系統(tǒng),以此架構的雙DM 642處理器系統(tǒng)已經(jīng)應用在工業(yè)瓷磚生產(chǎn)質量檢測中,系統(tǒng)的運行速度與先前單個DSP處理器有了很大的提高,系統(tǒng)的穩(wěn)定高速運行使生產(chǎn)的效率大大提高。與傳統(tǒng)的單DSP系統(tǒng)相比,該系統(tǒng)還能夠實現(xiàn)系統(tǒng)在線模擬,即可以保持現(xiàn)場環(huán)境不變的情況下,重新將采集出來的圖像數(shù)據(jù)下載到雙DSP系統(tǒng)中進行分析,為系統(tǒng)級測試提供了很好的解決方案。該系統(tǒng)可進行升級和擴展,性價比較高,具有廣泛的應用前景。
[1] TMS320DM 642 Video/Imaging Fixed-Point Digital Signal Processor(Literature Number:SPRS200J)[Z].Texas Instruments,2005.
[2] TM S320DM 642 DSP Genera l-Pu rpose Inpu t/Ou tp u t(GPIO) Re f e r en c e Gu id e(L ite ra tu r e Number:SPRS584A)[Z].Texas Instruments,2004.
[3] TM S320DM 642 DSP M u ltichanne l Bu f f ered Serial Port(M c BSP) Reference Guide(L iterature Number:SPRS580D)[Z].Texas Instruments, 2004.
[4] ZHOU Y ,W EI P.A real-tim e im age correlating speedometer based on FPGA parallel processing[J].Optical Technique.2006,32(1):108-110.
[5] 張雄偉,陳亮,徐光輝.DSP芯片的原理與開發(fā)應用[M].北京:電子工業(yè)出版社.2004.
[6] 徐欣,于紅旗,盧啟中,易凡.基于FPGA的嵌入式系統(tǒng)設計[M].北京:電子工業(yè)出版社,2004.
[7] 鄭燕,郝建國,黨劍華.基于VHDL語言與QuartusII軟件的可編程邏輯器件應用與開發(fā)[M].北京:國防工業(yè)出版社,2007.
[8] 王誠,蔡海寧,吳繼華.A ltera FPGA/CPLD設計(基礎篇)[M].北京:人民郵電出版社,2011.
[9] 吳繼華,蔡海寧,王誠. A ltera FPGA/CPLD設計(高級篇)[M].北京:人民郵電出版社,2011.
[10] M T 9T 001 3-M EGAPIXEL D IG ITA L IM AGE SENSOR[Z].M ickon. 2009.
[11] 楊莉珺,劉鐵根.基于CMOS圖像傳感器的嵌入式圖像采集與格式轉化[J].電子產(chǎn)品世界,2008(6):96-98.
[12] 鄭燕,郝建國,黨劍華.基于VHDL語言與QuartusII軟件的可編程邏輯器件應用與開發(fā)[M].北京:國防工業(yè)出版社,2007.