基于FPGA和DSP的1394b雙向數(shù)據(jù)傳輸系統(tǒng)
FPGA作為整個(gè)系統(tǒng)的控制管理模塊,主要完成以下任務(wù):
(1)對(duì)SPI端口、UART端口和AD/DA端口數(shù)據(jù)的發(fā)送和接收;
(2)將待發(fā)送的數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換和數(shù)據(jù)拼接;
(3)將數(shù)據(jù)進(jìn)行打包、解包處理并通過SRAM進(jìn)行數(shù)據(jù)的緩存;
(4)與PCI9054芯片進(jìn)行通信,以完成數(shù)據(jù)的傳送。
本系統(tǒng)中DSP的主要功能是:
(1)與PCI9054芯片和1394b鏈路層芯片通信實(shí)現(xiàn)設(shè)備的自舉和身份的確認(rèn);
(2)發(fā)送和接收一些控制命令,控制數(shù)據(jù)的傳輸;
(3)實(shí)現(xiàn)異步數(shù)據(jù)的發(fā)送和接收功能,根據(jù)異步請(qǐng)求數(shù)據(jù)的類型對(duì)其進(jìn)行相應(yīng)的處理;
(4)為等時(shí)傳輸申請(qǐng)等時(shí)信道和帶寬,傳輸后釋放所申請(qǐng)的信道和帶寬。本文引用地址:http://www.ex-cimer.com/article/190437.htm
圖3所示是系統(tǒng)中FPGA的內(nèi)部框圖,由于數(shù)據(jù)傳輸速率較快,數(shù)據(jù)的處理需要一定的時(shí)間,不能將每一組數(shù)據(jù)無間斷的傳輸,且FPGA內(nèi)部FIFO容量有限,采用SRAM與FPGA相結(jié)合完成輸入輸出數(shù)據(jù)的緩存;DSP實(shí)現(xiàn)一些輔助的操作如對(duì)異步數(shù)據(jù)的處理、配置PCI9054芯片的內(nèi)部寄存器和1394b鏈路層寄存器等操作以及PCI的傳輸控制、設(shè)備識(shí)別、為等時(shí)傳輸申請(qǐng)信道和帶寬等;EPCS串行配置芯片實(shí)現(xiàn)配置數(shù)據(jù)的存儲(chǔ),使系統(tǒng)上電后將配置數(shù)據(jù)自動(dòng)下載到FPGA內(nèi)部,同時(shí)可以用FLASH存儲(chǔ)器存放DSP用戶代碼,在DSP上電工作后,利用DSP提供的boot機(jī)制,再將程序下載到DSP RAM中,使本系統(tǒng)實(shí)現(xiàn)脫機(jī)工作。
4 1394b的系統(tǒng)工作流程
1394b總線的配置是自動(dòng)進(jìn)行的,它不受任何設(shè)備和主機(jī)的干擾??偩€配置過程主要有三個(gè)步驟:
(1)總線初始化;
(2)自標(biāo)識(shí);
(3)樹標(biāo)識(shí)。
在這三個(gè)過程之后,整個(gè)系統(tǒng)在邏輯上形成了樹狀拓?fù)浣Y(jié)構(gòu),每個(gè)節(jié)點(diǎn)都被賦予了一個(gè)節(jié)點(diǎn)號(hào)并都發(fā)出節(jié)點(diǎn)說明信息??偩€的初始化過程如下:
(1)設(shè)備識(shí)別:設(shè)備識(shí)別可通過E2PROM來完成;
(2)分配I/O空間和Memory空間;
(3)配置PCI9054的DMA寄存器;
(4)對(duì)1394b鏈路層和物理層芯片進(jìn)行配置。
由于1394b OHCI(Open Host Control Interface Specification)協(xié)議是1394b串行總線鏈路層協(xié)議的一種實(shí)現(xiàn)方式。1394bOHCI協(xié)議規(guī)定1394b的等時(shí)傳輸和異步傳輸均為DMA方式,所以需要對(duì)PCI9054的DMA寄存器進(jìn)行配置。PCI9054中有兩個(gè)獨(dú)立的通道采用DMA方式傳輸數(shù)據(jù)可以不受主機(jī)的干預(yù),同時(shí)采用突發(fā)方式傳輸數(shù)據(jù)可以提高數(shù)據(jù)的傳輸速率,同時(shí)也可以充分發(fā)揮PCI總線的性能。
評(píng)論