涂傳亮


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