楊皓宇,薛雙苓,王 磊,郭寶強,葛曼玲
(1.河北工業大學 電氣工程學院 天津 300130;2.廊坊職業技術學院 電氣工程系,廊坊 065000)
近年來隨著人們對數據的信息量、處理效率和系統實時控制精確度的要求不斷提高,對由數字信號處理器(Digital Signal Processor)簡稱DSP為中心處理單元的系統要求越來越高。它是一類為高速處理數字信號和算法而設計的處理器, 其系統架構和控制策略會影響整個系統的數據處理能力和運行速度。而現場可編程邏輯門陣列(FPGA)可以實時地對外部或內置的RAM、ROM編程,靈活改變邏輯器件的功能,從而實現不同的控制要求。采用基于FPGA的雙DM 642并行處理器的結構,可以使系統開發周期縮短,容易維護和擴展,大大拓展了單片DSP芯片性能,從而提高了系統的整體性能。
基于FPGA的雙DM 642通信系統由CMOS圖像傳感器、兩個DM 642芯片、FPGA以及SDRAM和FLASH存儲器組成。系統總體結構如圖1所示。可編程邏輯門陣列(FPGA)作為連接兩個DM 642之間的橋梁,在系統中擔負管理、接口和通信的功能;其中DM 642的SPI是由M cbsp擴展而成,兩個DM 642分為主從處理器,主DM 642的SPI配置成為主接收,用于接收來自從DM 642接收的數據信息,從DM 642的SPI用于向主處理器發送通信協議信息,同DM 642的GPIO中斷一起完成兩個DSP的兩次握手,兩個處理器間的圖像數據和通信協議是通過其自帶的VP口進行數據傳輸的。

圖1 系統總體結構圖
目前市場上主流的圖像傳感器主要分為CMOS(Complementary Metal-Oxide Sem iconductor)型,中文稱“互補金屬氧化物半導體”和CCD(Charge-Coupled Device)器件,中文稱“電荷耦合器件”兩種。
隨著CMOS技術的發展,CMOS由于其成本低、功耗低、單一工作電壓、集成AD轉換器、數字形式數據輸出、圖像大小可編程控制等優點,在攝像頭、微型數碼相機、掃描儀、可視電話等領域中得到越來越多的應用;本系統的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接口數據總線寬度為64位,最高數據存取頻率達133 MHz,可直接與大容量、低成本的SDRAM 芯片無縫連接。DM 642片上帶有3個雙通道(VP0、VP1、VP2)數字視頻口,可同時處理多路數字視頻流,集成了諸如SPI,IIC,VP,EMAC等豐富的接口,為進行視頻圖像采集和數據交換提供了很好的解決方案。
根據FPGA要實現的數字信號處理功能以及存儲容量和時序控制邏輯的規模,評估了所需要要FPGA的邏輯資源、管腳數量、片內存儲資源等因素,最終選取了A ltera公司Cyclone III系列的EP3C80F484C8。Cyclone 系列的FPGA 是A ltera 公司針對低成本高性能的應用而推出, 具有很高的性價比。EP3C16F484C8的最大可用IO數量347,片內504Kbit的RAM可以配為單雙口RAM,ROM,FIFO等各式存儲模塊;四個高精度的鎖相環,方便地為片內的各個模塊提供所需要的時鐘;15408個LE(邏輯單元)為接口電路的實現提供豐富的邏輯資源。FPGA系統時鐘50MHz,采用主動串行(AS)配置方式,配置芯片選擇EPCS16。A ltera公司的QuartusⅡ集成開發環境簡便易用,內含大量IP核,其內嵌的Signal TapⅡ邏輯分析儀更是為用戶的調試提供了很大方便。
1.5.1 主DSP配置方法
1)主DSP利用M cbsp口配置成SPI,擴展引腳與FPGA相連,模式為從接收。
2)主DSP利用VP1作為視頻顯示,VP2作為視頻采集,擴展引腳與FPGA相連。
3)主DSP的EM IF總線與FPGA相連完成對圖像傳感器參數的配置。
4)主DSP利用GPIO通知從DSP發送的協議還是圖像。擴展引腳與FPGA。1.5.2 從DSP配置方法
1)從DSP利用M cbsp口,配置成SPI,擴展引腳與FPGA相連,模式為主發送。
2)從DSP利用VP0作為視頻顯示,VP2視頻采集,擴展引腳與FPGA相連。
3)從DSP通過GPIO與主DSP通信,實現握手,擴展引腳與FPGA相連。
1.5.3 FPGA IO和中斷管理配置方法
當有數據需要傳輸到DSP時,IO管理模塊發出中斷信號給DSP。DSP接收到中斷信號后,查看FPGA內部狀態寄存器中具體發生中斷位。(狀態寄存器位詳見表1)DSP根據所判斷的位尋找對應的數據,并從接口中將數據讀走。DSP完成數據的讀取后,將清除寄存器中對應位賦值為0,結束一次讀取任務。
此協議為主DSP與FPGA之間的通訊協議。該協議的數據位寬為32位,對應所需要配置的數據,配置地址是基地址和偏移地址之和。

表1 主DSP與FPGA之間通信協議
本系統采用TI公司針對C6000系列芯片開發的DSP/BIOS操作系統進行軟件設計,采用多線程技術進行多任務間同步通信;對硬件的訪問是通過DSP/BIOS架構的M iniDriver方式進行的,這就保證了系統的穩定性和可靠性。
TI公司為設備驅動開發者提供了一種類/微型驅動模型(class/m inidriver model)。該模型在功能上將設備驅動程序分為依賴硬件層和不依賴硬件層兩層, 兩層之間使用通用接口。如圖2所示, 類/微型驅動模型中的微型驅動直接控制外部設備。只要微型驅動創建了規定的函數,應用程序就可以方便地通過GIO類驅動進行調用。這些規定的函數包括:通道綁定函數(mdBindDev)、通道創建/刪除函數(mdCreateChan/mdDeleteChan)、I/O請求發送函數(mdSubmitChan)、中斷服務函數(ISRs)和設備控制函數(mdControlChan)。這些規定的函數將放入微型驅動的函數接口表(IOM_Fxns)中的相應位置,供應用程序通過適配模塊或GIO類驅動調用。

圖2 DSP/BIOS驅動分層模型
對硬件的訪問都封裝成對應的驅動模塊,并且需要用到TI的DDK和NDK開放包,主要包括:1)對VP1和VP2的驅動設計,在DDK中TI為了降低設計難度,已經針對VP口提供了常用編碼器和解碼器的驅動模塊,因此可以在其提供的庫文件中進行修改,具體來說就是修改VPORT_CAP_Params和VPORTDIS_Params結構中位寬定義字段修改為需要的位寬格式,然后把相關函數中參數和實際用到的變量對應修改即可。修改后要重新編譯工程,并將生成的庫文件加入系統工程。2)對SPI的驅動設計,可以在DDK中的視頻口驅動的基礎上,根據GIO驅動模型,將M cbsp配置成SPI主發從接,SPI從發主接二種模式,并且配置相應參數重新編譯工程,將庫文件加入即可。3) 對以太網口驅動設計,TI已經在NDK中提供了TCP/IP協議棧的支持,但NDK要在自己的設計板子上運行,還需要在用戶板級驅動包中添加對EMAC和MDIO初始化操作。這里在BIOS的全局初始化函數中首先對物理層芯片進行復位,然后實現兩個回調函數_getConfig和_linkStatus,分別實現對MAC地址配置和以太網鏈路狀態信息的讀取。
主程序設計流程如圖3所示。開始上電,完成主DSP和從DSP上電自啟功能,實現兩個DSP處理器的兩次握手。從DSP初使化完成后通過SPI進行通知主DSP已經完成初始化。主DSP進行系統初始化參數配置后,進行通過SPI接收從DSP的協議;如果從DSP接收到主DSP觸發GPIO到來的中斷,開始啟動圖像采集線程,完成第一次握手。然后主DSP通過VP1發送一數據幀協議進行初始化從DSP視頻口通道,從DSP通過VP2視頻口接收數據幀進行采集一幅圖像。通過協議解析,若判斷其為一協議,則完成從DSP參數的配置,然后刪除,創建視頻口通道;最后通過SPI發送從DSP視頻口創建完成協議,實現雙DSP的第二次握手。主DSP發送開始采集信號,打開圖像傳感器,從而進行正常的工作,從DSP完成算法處理,然后通過VP1發送算法處理后的圖像數據到主DSP的VP2口,最終通過以太網口傳輸到上位機進行圖像顯示。

圖3 主程序流程圖
實驗使用A lte ra公司提供的Quartus下的signalTap為調試工具,主DSP發送給從DSP握手協議格式包括前導碼、數據長度,命令字和數據,其中前導碼是進行兩個DSP發送數據之間的同步;數據長度為命令字和數據長度的總和,如表2所示。FPGA配置主從DSP的VP口,SPI、GPIO如圖4、圖5所示。通過Signal Tap II下觀測所傳輸的數據,啟動從DSP的SPI在幀下降沿發送數據,主DSP的VP1口時鐘上升沿使能。主從DSP接收的數據分別如圖4、圖5所示,分別對應表2的三個協議數據。實驗中我們處理了300幀大小為320x240的視頻圖像數據,通過統計得出,每幀圖像的平均算法處理時間約為15ms,視頻圖像傳輸流暢,并且通過時序仿真波形圖也可以看出:基于FPGA架構的雙DM 642通信系統能夠進行實時、準確的數據通信。

圖4 VP口數據交換接口設置

圖5 SPI和GPIO接口設置

表2 協議數據格式

圖6 主DSP接收到的從DSP的SPI通信協議

圖7 從DSP接收到主DSP的GPIO中斷

圖8 從DSP接收的主DSP發送的圖像數據
采用FPGA實現雙DM 642耦合互聯進行數據交換,適合于數據吞吐量大,實時性、穩定性要求高的系統,以此架構的雙DM 642處理器系統已經應用在工業瓷磚生產質量檢測中,系統的運行速度與先前單個DSP處理器有了很大的提高,系統的穩定高速運行使生產的效率大大提高。與傳統的單DSP系統相比,該系統還能夠實現系統在線模擬,即可以保持現場環境不變的情況下,重新將采集出來的圖像數據下載到雙DSP系統中進行分析,為系統級測試提供了很好的解決方案。該系統可進行升級和擴展,性價比較高,具有廣泛的應用前景。
[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芯片的原理與開發應用[M].北京:電子工業出版社.2004.
[6] 徐欣,于紅旗,盧啟中,易凡.基于FPGA的嵌入式系統設計[M].北京:電子工業出版社,2004.
[7] 鄭燕,郝建國,黨劍華.基于VHDL語言與QuartusII軟件的可編程邏輯器件應用與開發[M].北京:國防工業出版社,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].電子產品世界,2008(6):96-98.
[12] 鄭燕,郝建國,黨劍華.基于VHDL語言與QuartusII軟件的可編程邏輯器件應用與開發[M].北京:國防工業出版社,2007.