涂傳亮
摘? ?要:文章主要介紹了Altera公司的PCI接口IP核的關(guān)鍵要點,闡述視頻采集卡的核心技術(shù)。由于SDI信號的高速性和實時性,需要傳輸模塊有較高的數(shù)據(jù)處理能力和較高的控制效率才能保證數(shù)據(jù)的完整性。該設(shè)計采用Altera公司的EP2C20Q240C8芯片和PCI IP核,利用片內(nèi)雙口RAM作為數(shù)據(jù)緩沖器,通過DMA控制器實現(xiàn)DMA傳輸控制功能,同時利用SOPC Builder開發(fā)平臺簡單有效地實現(xiàn)了FPGA核心部分的設(shè)計,實現(xiàn)上位機對SDI視頻信號的接收。
關(guān)鍵詞:可編程片上系統(tǒng);Avalon總線;直接內(nèi)存存取
由于人們對生活品質(zhì)的高追求,數(shù)字化廣播電視技術(shù)發(fā)展迅速,大容量信息處理成為關(guān)鍵技術(shù),數(shù)字電視信號已經(jīng)普及,要實現(xiàn)這個技術(shù),通過PC接收串行數(shù)字接口(Serial Digital Interface,SDI)碼流信息,已經(jīng)成為主流的多媒體數(shù)據(jù)接收技術(shù)。因此,設(shè)計基于快速處理平臺的SDI碼流接收卡設(shè)計尤為關(guān)鍵。SDI信號的平均傳輸速率為270 Mbps,對傳輸實時性及穩(wěn)定性要求高,因此本文選擇了外設(shè)部件互連標(biāo)準(Peripheral Component Interconnect,PCI)總線進行傳輸。PCI總線擁有32 bit寬度和33 MH帶寬,傳輸速率最高可達133 Mbps,可很好實現(xiàn)高速和穩(wěn)定傳輸。設(shè)計選擇可編程片上系統(tǒng)(System-on-a-Programmable-Chip,SOPC)Builder(Altera公司內(nèi)核)來實現(xiàn)PCI接口控制電路。SOPC Builder為PCI接口提供了一個完整的解決辦法,內(nèi)容涵蓋了PCI控制電路的全部功能。用戶可以利用該平臺將各Avalon總線上的設(shè)備進行配置,結(jié)合直接內(nèi)存存取(Direct Memory Access,DMA)控制器實現(xiàn)DMA方式的傳輸,設(shè)計外部設(shè)備接口邏輯,實現(xiàn)現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)硬件模塊功能[1]。
1? ? 系統(tǒng)硬件模塊設(shè)計
系統(tǒng)的硬件電路設(shè)計性能要求傳輸速率為270 Mbps的串行SDI碼流,穩(wěn)定、實時、無損地通過PCI接口傳輸?shù)焦ぷ髡?,以供工作站上的?yīng)用程序作進一步處理。在操作和使用上要方便,在設(shè)計上要求緊湊、簡單、可靠、便于升級。系統(tǒng)硬件框架如圖1所示。核心部件如下:電纜均衡和時鐘提取芯片分別選用GS9074A和CLC016,F(xiàn)PGA芯片EP2C20Q240C8是核心處理器,利用SOPC Builder平臺構(gòu)建基于Avalon總線的SOPC系統(tǒng)結(jié)構(gòu)。另外,F(xiàn)PGA芯片中還包括SDI信號的解碼解擾模塊、串并轉(zhuǎn)換模塊等SDI信號的預(yù)處理模塊,將串行的SDI信號轉(zhuǎn)換為30 bit的并行信號存入緩存(32 bit PCI總線高兩位置零)。
1.1? PCI_MT32功能模塊
本設(shè)計選定PCI接口模塊時,采用了來自Altera的PCI編譯器軟件包,利用SOPC Builder的調(diào)用,可以參數(shù)化設(shè)置PCI接口的IP核。這個可編譯和綜合的IP核有以下4種宏功能模塊:PCI_MT64,PCI_MT32,PCI_T64和PCI_T32,主要功能是完成總線協(xié)議的轉(zhuǎn)換,目的是轉(zhuǎn)換為易于操作的本地接口邏輯,手段是通過復(fù)雜的電氣和時序要求高的PCI總線邏輯轉(zhuǎn)換,遵循協(xié)議2.2版(PCI總線),經(jīng)過復(fù)雜、詳實的工業(yè)級驗證,最終支持多款優(yōu)化FPGA。其中,PCI_MT32是支持工作頻率達到33/66 MHz、最寬達到32 bit PCI總線,在工作模式上支持主/從模式的PCI IP功能模塊。考慮到市場的需求,市面通用的工作站主板都支持32 bit PCI,為保障在主模式下DMA控制器工作,該設(shè)計選擇了PCI_MT32[2]。
1.2? DMA模塊
DMA全稱是直接存儲器訪問。在實現(xiàn)DMA傳輸時,由DMA控制器直接控制PCI總線,CPU將總線控制權(quán)交給DMA控制器,這種工作模式下,CPU可以并行、高效地進行其他操作。在非實時操作系統(tǒng)中,DMA工作模式可以極大減輕CPU的壓力,提高設(shè)備的性能。
本設(shè)計使用的是Altera的DMA Controller SOFT IP核。該DMA Controller SOFT IP,通過Avalon總線接口實現(xiàn)批量數(shù)據(jù)傳輸,從head地址范圍讀數(shù)據(jù)然后向goal地址范圍寫數(shù)據(jù)。此DMA控制器有兩個Avalon-MM主端口,一個read主端口和一個write主端口,另外還有一個Avalon-MM從端口供系統(tǒng)使用,通過該端口來控制DMA操作。
標(biāo)準的DMA傳輸過程包含下列步驟:
(1)系統(tǒng)的CPU通過向DMA的Controller端口write數(shù)據(jù)來通知DMA Controller準備啟動傳輸。
(2)CPU使能DMA Controller,DMA Controller開始在無需CPU操作的情況下進行數(shù)據(jù)傳輸。DMA主write端口從外設(shè)或內(nèi)存head地址中read數(shù)據(jù),主write端口向外設(shè)或內(nèi)存的goal地址中write數(shù)據(jù)。
(3)傳輸固定寬度的數(shù)據(jù),DMA以一個特殊數(shù)據(jù)作為結(jié)束標(biāo)志。對于可變長度的傳輸,DMA收到固定的結(jié)束包作為數(shù)據(jù)終點。在傳輸結(jié)束后,如果CPU配置允許,則DMA Controler產(chǎn)生一個中斷請求(Interrupt Request,IRQ)。
(4)在傳輸過程中或傳輸結(jié)束后,CPU檢測DMA控制器的狀態(tài)寄存器來判斷此次傳輸是否在進行或已結(jié)束。
對于DMA傳輸?shù)脑O(shè)置,Avalon-MM主外設(shè)通過控制端口改寫DMA內(nèi)置的寄存器來建立和初始化DMA傳輸。外設(shè)可配置項主要有如下幾個方面:(1)Read addrss地址設(shè)置。(2)Write addrss地址設(shè)置。(3)單次傳輸單位設(shè)置:字節(jié)(8-bit),半字(16-bit),字(32-bit),雙字(64-bit),4字(128-bit)。
1.3? 緩存模塊
在設(shè)計緩存模塊時,由于PCI總線上的時鐘是66 MHz,而輸入的SDI信號是270 Mbps,這就要求對兩個頻率不同的時鐘進行同步。本設(shè)計選擇雙端口隨機存取存儲器(Dual Port Random Access Memory,DPRAM)作為系統(tǒng)的異步FIFO使用,使其數(shù)據(jù)輸入和輸出分別使用不同的時鐘,從而實現(xiàn)時鐘的隔離和信號的無縫拼接。
不過,SOPC Builder的組件庫中并沒有支持DPRAM的組件,要在該平臺應(yīng)用DPRAM就必須編寫自定義組件。這里的DPRAM接口的一端要連接到Avalon總線上,另一端要作為數(shù)據(jù)輸入接口,且必須作為外部接口使用。DMA控制器是通過Avalon總線與DPRAM進行通信的,DPRAM與DMA控制器通過Avalon總線連接如圖2所示。
配置自定義組件各接口信號圖。前兩項為Avalon總線上的時鐘,所不同的是slave_clk66是通過直接掛在Avalon總線上的時鐘得到,ex_clk27則是由外接管腳提供,接口類型屬于slave型的信號是連接Avalon總線端的DPRAM接口;接口類型屬于ex_export型的信號是連接到外接管腳的DPRAM接口[3-4]。
2? ? 設(shè)計結(jié)果
對生產(chǎn)的SOPC系統(tǒng)進行測試。用通過DMA方式將從外部輸入緩存中的信號讀入上位機內(nèi)存。外部輸入的信號是彩條SDI信號,而程序中顯示接收到的數(shù)據(jù),如第一組10 bit數(shù)據(jù)154-131-3ff-131對應(yīng)的是第一個彩條的顏色Cb-Y-Cr-Y,對應(yīng)為紅色。再根據(jù)其他各組數(shù)據(jù)與對應(yīng)的顏色數(shù)據(jù)進行對比,確定所接收到的數(shù)據(jù)是彩條信號的數(shù)據(jù)。
可見,上位機接收到的數(shù)據(jù)與SDI輸入的數(shù)據(jù)相同,實現(xiàn)了將SDI信號通過PCI總線與PC進行DMA方式傳輸數(shù)據(jù)的目的。
3? ? 結(jié)語
本設(shè)計通過在FPGA芯片中構(gòu)建基于PCI核的SOPC系統(tǒng),實現(xiàn)對高速、大容量SDI傳輸流的實時傳輸,實現(xiàn)了系統(tǒng)設(shè)計的目標(biāo)。采用DMA方式的傳輸解放了上位機CPU,極大提高了傳輸速度。通過自定義組件實現(xiàn)DPRAM在系統(tǒng)中的應(yīng)用,有效地解決了時鐘同步的問題。該FPGA的應(yīng)用易于在線升級電路,有擴充平臺的功能。SOPC系統(tǒng)的使用使硬件電路更為簡潔、可靠。經(jīng)過驗證,本系統(tǒng)可以很好地實現(xiàn)SDI信號的接收功能,同時,也可以作為其他信號應(yīng)用的基礎(chǔ)平臺,有著良好的應(yīng)用前景。
[參考文獻]
[1]聯(lián)合開發(fā)網(wǎng).PCI compiler user guide[EB/OL].(2016-03-08)[2019-08-11].http://www.pudn.com/Download/item/id/2927515.html.
[2]李貴山,戚德虎.PCI局部總線開發(fā)者指南[M].西安:西安電子科技大學(xué)出版社,1997.
[3]紀獻永,黃皆雨,馮穗力,等. DVB-ASI信號接收與發(fā)送系統(tǒng)的研究[J].電視技術(shù),2004(11):87-88.
[4]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,2003.
Abstract:This paper mainly introduces the hardware design scheme and design points of the video capture card of Alteras PCI interface IP core. Due to the high speed and real-time performance of SDI signals, the transmission module needs higher data processing capability and higher control efficiency to ensure data integrity. The design uses Alteras EP2C20Q240C8 chip and PCI IP core, uses on-chip dual-port RAM as data buffer, realizes DMA transfer control function through DMA controller, and realizes the design of FPGA core part simply and effectively by SOPC Builder development platform, to achieve the reception of the SDI video signal by the host computer.
Key words:system-on-a-programmable-chip; Avalon bus; direct memory access