文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)06-0039-03
隨著數(shù)字信號處理技術(shù)的發(fā)展,,數(shù)據(jù)傳輸速率越來越高,數(shù)據(jù)量越來越大,。在傳統(tǒng)的測試設(shè)備設(shè)計(jì)中,,大多是通過USB總線與上位機(jī)進(jìn)行通信,。這種通信方式傳輸速率不高,連接也不穩(wěn)固,。采用64 bit,、66 MHz的PCI總線,傳輸速率可達(dá)到528 MB/s,,且基于CPCI總線的通信設(shè)備數(shù)據(jù)傳輸速率比USB總線更快,、更穩(wěn)定,板卡的四周都被牢牢地固定住,,機(jī)械結(jié)構(gòu)也很穩(wěn)固[1]。
1 接口卡功能介紹
接口卡整體結(jié)構(gòu)如圖1所示,。接口卡主要包括CPCI總線接口,、高速數(shù)據(jù)接口和全雙工RS422接口。其中,,CPCI接口實(shí)現(xiàn)接口卡與上位機(jī)之間的通信,,高速數(shù)據(jù)接口接收記錄器下傳的高速數(shù)據(jù),并由FPGA控制通過CPCI總線將數(shù)據(jù)傳輸給上位機(jī)進(jìn)行實(shí)時(shí)顯示與存盤,;RS422接口將上位機(jī)下發(fā)的控制命令轉(zhuǎn)發(fā)給記錄器,,并接收記錄器反饋回來的狀態(tài)信息,試驗(yàn)人員根據(jù)狀態(tài)反饋來監(jiān)測記錄器是否工作正常,。
2 CPCI總線接口設(shè)計(jì)
CPCI完全兼容PCI協(xié)議,,本設(shè)計(jì)通過PCI9054總線控制芯片和FPGA來實(shí)現(xiàn)PCI協(xié)議,代替?zhèn)鹘y(tǒng)的FIFO芯片和串/并轉(zhuǎn)換芯片,,完成對模擬電路的控制功能,,節(jié)約了板卡面積,減少PCB走線,,有效防止了傳輸線之間的串?dāng)_[2],。
2.1 PCI9054工作模式選擇
PCI9054總線控制芯片有3種工作模式,分別為M模式,、C模式,、J模式。其中,,M模式應(yīng)用于MotorolaMPC850/860PowerQUICC和PowerPC80x/82x,;C模式即非多路復(fù)用的32位地址和數(shù)據(jù)總線,應(yīng)用于DSP,、FPGA等,;J模式即多路復(fù)用的32位地址和數(shù)據(jù)總線,應(yīng)用于Intel1960,、IBMPowerPC401,、IDTRC32364,、DSP以及IOP480等[3]。
C模式類似于單片機(jī)的工作方式,,它的地址線和數(shù)據(jù)線分開使用,,可以很方便地控制本地時(shí)序。在使用C模式時(shí),,只需要嚴(yán)格控制好本地端和CPCI 端的各種時(shí)序,,就可以很好地使用PCI9054芯片。因此,,在本設(shè)計(jì)中使PCI9054工作在C模式,。通過設(shè)置MODE0(156引腳)和MODE1(157引腳)的值來實(shí)現(xiàn)其工作模式的配置,將PCI9054的156腳和157腳接地后,,使其工作于C模式,。
2.2 CPCI接口FPGA的邏輯控制
2.2.1 CPCI總線訪問本地總線時(shí)序介紹
PCI9054的訪問方式選擇DMA方式。PCI9054作為主控設(shè)備,,通過其內(nèi)部的DMA控制器來實(shí)現(xiàn)局部總線上的數(shù)據(jù)與CPCI總線上的數(shù)據(jù)之間的傳輸,。DMA訪問方式下,CPCI總線向本地總線傳輸數(shù)據(jù)時(shí),,本地時(shí)序如圖2所示,。
當(dāng)上位機(jī)向接口卡下發(fā)控制命令時(shí),上位機(jī)通過配置DMA控制器的命令/狀態(tài)寄存器來啟動(dòng)DMA訪問,。此時(shí),,DMA控制器通過發(fā)出LHOLD信號來向本地總線申請總線的主控權(quán),本地FPGA收到LHOLD請求信號后,,反饋一個(gè)信號LHOLDA來響應(yīng)請求,,DMA控制器收到此響應(yīng)信號之后,便獲得主控本地總線的權(quán)利,。當(dāng)DMA控制器獲得主控權(quán)之后,,ADS#信號變低,意味著地址總線LA上的地址為有效地址,。BLAST#變低,,單周期訪問開啟,只有收到本地總線反饋的READY#信號有效(低)時(shí),,才能真正開啟訪問,。LW/R#為高代表寫操作,為低代表讀操作,,如圖2所示,,當(dāng)上位機(jī)下發(fā)命令時(shí)為寫操作,LW/R#為高。當(dāng)所有時(shí)序滿足之后,,F(xiàn)PGA從地址LA上獲得數(shù)據(jù)信號LD,。
當(dāng)接口卡向上位機(jī)傳輸數(shù)據(jù)時(shí),本地總線時(shí)序與圖2所示時(shí)序相似,,只是LW/R#為低,,進(jìn)行讀操作。DMA控制器從地址LA將數(shù)據(jù)讀入其內(nèi)部的緩存FIFO中,,在不占用CPU資源的情況下,,將數(shù)據(jù)存儲(chǔ)下來。如果ADS#處于高狀態(tài),,則代表開啟一次突發(fā)訪問,,F(xiàn)PGA無條件向CPCI總線上傳數(shù)據(jù)。
2.2.2 FPGA控制本地時(shí)序
用VHDL語言編程來實(shí)現(xiàn)本地時(shí)序地控制,。按照上一節(jié)介紹的時(shí)序控制接口卡與CPCI總線之間進(jìn)行通信,。FPGA內(nèi)部調(diào)用一個(gè)FIFO,記錄器上傳的LVDS數(shù)據(jù)緩存于此FIFO中,,當(dāng)FIFO內(nèi)數(shù)據(jù)達(dá)到2 KB時(shí),,其FIFO可編程半滿信號有效,。當(dāng)處于單周期讀訪問時(shí),,一旦FIFO可編程半滿則啟動(dòng)一次DMA訪問。當(dāng)處于單周期寫訪問時(shí),,F(xiàn)PGA從命令地址讀取上位機(jī)下發(fā)的命令數(shù)據(jù),。VHDL程序的流程圖如圖3所示。
3 高速數(shù)據(jù)接口設(shè)計(jì)
3.1 高速數(shù)據(jù)傳輸方式選擇
數(shù)據(jù)傳輸有并行和串行兩種方式,。在傳輸速率要求不高,、傳輸距離較短的電路中,并行傳輸方式是首選,。但是,,隨著數(shù)據(jù)傳輸速率以及時(shí)鐘頻率的提高,很容易發(fā)生數(shù)據(jù)和時(shí)鐘不同步的現(xiàn)象,,造成數(shù)據(jù)接收錯(cuò)誤的結(jié)果,,較高的傳輸速率還會(huì)使信號線之間產(chǎn)生干擾。差分信號以其功耗低,、串?dāng)_小和輻射低等特點(diǎn),,在各種高速總線中得到了應(yīng)用。因此,,這里采取LVDS串行通信技術(shù),。這種技術(shù)通過一對差分PCB走線或平衡電纜來傳輸幅度非常低的信號(約350 mV),傳輸速率可以達(dá)到100 Mb/s,甚至超過1 Gb/s,,且其信號連線較少,,帶寬較高,抗干擾能力較強(qiáng)[4],,可以保證本設(shè)計(jì)中高速數(shù)據(jù)傳輸?shù)恼_性,。
3.2 LVDS接口設(shè)計(jì)
由于趨膚效應(yīng)和介質(zhì)損耗[5],高速信號在傳輸過程中會(huì)發(fā)生衰減,。因此,,當(dāng)傳輸距離較長時(shí),往往要使用電纜驅(qū)動(dòng)器和均衡器來保證高速數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,。電纜驅(qū)動(dòng)器將信號以最大功率耦合到電纜上,,可以延長高速數(shù)據(jù)的傳輸距離;電纜均衡器可以對傳輸?shù)男盘栠M(jìn)行高頻補(bǔ)償,。
本設(shè)計(jì)中,,LVDS串行器/解串器分別選用TI公司的SN65LV1203和SN65LV1224,這組芯片的數(shù)據(jù)傳輸速率最大可以達(dá)到660 Mb/s,;信號驅(qū)動(dòng)器/電纜均衡器分別選用NS公司的CLC001和CLC014,,這組芯片的數(shù)據(jù)傳輸速率最大可以達(dá)到662 Mb/s。LVDS接口電路結(jié)構(gòu)如圖4所示,,記錄器的FPGA控制LVDS串行器將10 bit并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),,再通過電纜驅(qū)動(dòng)器將信號耦合到電纜上。接口卡的電纜均衡器對接收到的信號進(jìn)行高頻補(bǔ)償之后傳送給解串器,,解串器根據(jù)參考時(shí)鐘將串行數(shù)據(jù)轉(zhuǎn)換成10 bit的并行數(shù)據(jù),,由FPGA進(jìn)行后續(xù)的處理。
為串行器提供一個(gè)頻率為18.432 MHz的時(shí)鐘,,在時(shí)鐘上升沿時(shí),,串行器SN65LV1203將I/O口上的10 bit并行數(shù)據(jù)存入鎖存寄存器中,再轉(zhuǎn)換成串行數(shù)據(jù)傳輸給驅(qū)動(dòng)器CLC001,。串行器在發(fā)送數(shù)據(jù)時(shí),,會(huì)自動(dòng)附加起始位和停止位,其中,,起始位為“1”,,停止位為“0”,起始位和停止位是串行數(shù)據(jù)流內(nèi)嵌的同步標(biāo)志,。驅(qū)動(dòng)器的外圍電路按照NS公司的CLC001芯片的典型應(yīng)用電路進(jìn)行配置,。為了降低信號反射,在發(fā)送端要放置阻抗匹配電阻,,在電纜均衡器的外圍電路配置中,,接收端也要放置終端匹配電阻,。
與串行器時(shí)鐘頻率保持一致,給解串器也提供一個(gè)相同頻率的時(shí)鐘REFCLK,,且RCLK_R/F置高,,即在時(shí)鐘的上升沿時(shí)刻,解串器將LVDS輸入端的串行信號轉(zhuǎn)換成10 bit并行信號,,由FPGA控制通過CPCI總線上傳給上位機(jī),。
3.3 FPGA控制LVDS接收
為了解決LVDS數(shù)據(jù)接收時(shí)鐘與CPCI接口數(shù)據(jù)傳輸時(shí)鐘不同步的問題,F(xiàn)PGA調(diào)用一個(gè)異步時(shí)鐘控制的FIFO來進(jìn)行數(shù)據(jù)緩存,,當(dāng)FIFO內(nèi)數(shù)據(jù)達(dá)到一次DMA傳輸?shù)臄?shù)據(jù)量時(shí),,其可編程FIFO半滿信號有效。為了防止FIFO內(nèi)數(shù)據(jù)溢出,,F(xiàn)IFO深度要大于一次DMA傳輸?shù)臄?shù)據(jù)量,。
4 全雙工RS422接口設(shè)計(jì)
4.1 全雙工RS422硬件電路設(shè)計(jì)
為了提高接口卡的抗干擾能力,需要采取隔離措施,,以達(dá)到接口卡與記錄器之間電氣隔離,、記錄器不受接口卡影響的目的。光電隔離是一種應(yīng)用較為廣泛的隔離方法,,常用于實(shí)現(xiàn)電氣隔離[6],。本設(shè)計(jì)要求RS422數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿?15.2 kb/s,選用HCPL-063L光耦進(jìn)行隔離,,它是一種高速兼容LVTTL 3.3 V電平的光耦合器,,輸出上升沿時(shí)間為45 ns,下降沿時(shí)間為20 ns,,可以滿足波特率要求,。由于HCPL-063L內(nèi)部輸出端的三極管的集電極開路,,所以在設(shè)計(jì)電路時(shí)需要外接上拉電阻,。
光耦隔離需要注意的是,輸入/輸出的供電電源要進(jìn)行隔離,,否則就失去了隔離的意義,。本設(shè)計(jì)采用DC-DC芯片RO3.33.3S隔離前后的3.3 V電源。RS422接口芯片選用應(yīng)用比較廣泛的MAX3490,,在接口處都有上拉,、下拉電阻,即使接口短路也不會(huì)損壞電路,。
4.2 RS422接口FPGA邏輯控制
本設(shè)計(jì)中RS422接口遵循UART協(xié)議,,先發(fā)低位,再發(fā)高位,,其中包括1 bit起始位,、8 bit數(shù)據(jù)位和1 bit停止位,總共10 bit,無奇偶校驗(yàn)位,。接口卡的系統(tǒng)時(shí)鐘為36.864 MHz,,傳輸1 bit二進(jìn)制位需要經(jīng)歷36 864 000/115 200=320個(gè)時(shí)鐘周期,傳輸1 B的數(shù)據(jù)則需要經(jīng)歷320×10=3 200個(gè)時(shí)鐘周期,。
在接收數(shù)據(jù)時(shí),,存在毛刺和干擾,為避免引起接收數(shù)據(jù)出現(xiàn)錯(cuò)誤,,以每位傳輸?shù)闹虚g態(tài)時(shí)鐘作為接收的時(shí)間,,如起始位接收時(shí)鐘為第160個(gè)時(shí)鐘,第1位數(shù)據(jù)位為第480個(gè)時(shí)鐘,,第2位數(shù)據(jù)位為第800個(gè)時(shí)鐘,,以此類推,如圖5所示,。
發(fā)送數(shù)據(jù)與接收數(shù)據(jù)的方法類似,,是以每位傳輸?shù)钠鹗紤B(tài)時(shí)鐘作為發(fā)送的時(shí)間,起始位發(fā)送時(shí)鐘為第0個(gè)時(shí)鐘,,第1位數(shù)據(jù)位為第320個(gè)時(shí)鐘,,第2位數(shù)據(jù)位為第640個(gè)時(shí)鐘,以此類推,。
5 設(shè)計(jì)驗(yàn)證
給記錄器提供一個(gè)頻率為3 Hz,、幅值為0.5 V~4.5 V的正弦模擬信號供其采集,接口卡接收記錄器下傳的數(shù)字量信號,,并通過CPCI總線將數(shù)據(jù)上傳給上位機(jī),。用上位機(jī)畫圖軟件依據(jù)接收到的數(shù)據(jù)文件繪制波形,得到如圖6所示圖形,。
如圖6所示,,根據(jù)接口卡接收的數(shù)據(jù)繪制出的波形為光滑連續(xù)的正弦波,與信號源波形一致,。根據(jù)圖中2點(diǎn)的橫坐標(biāo)可以看出,,2.5個(gè)正弦周期的長度間隔大約為0.836 s,可以計(jì)算出正弦波頻率為3 Hz,,與信號源頻率一致,。記錄器的ADC為16 bit,最大可測電壓值為5 V,,即每個(gè)分層值約代表0.076 mV,,圖中分層值的最小值約為6 724,最大值約為57 147,,可以計(jì)算出上圖正弦波的幅值約為0.5 V~4.5 V,,與信號源幅值一致,。
上述驗(yàn)證結(jié)果表明,接口卡能夠正確接收記錄器下發(fā)的高速數(shù)據(jù)并通過CPCI總線將數(shù)據(jù)上傳給上位機(jī)進(jìn)行處理,,具有很高的可靠性,。
參考文獻(xiàn)
[1] 張華,胡修林,,馬若飛.超高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與優(yōu)化策略研究[J].電子技術(shù)應(yīng)用,,2010,36(12):86-90.
[2] 孫國良.基于FPGA的cPCI接口數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].北京:北京郵電大學(xué),,2009.
[3] 王旭.PCI9054局部總線三種工作模式的具體應(yīng)用[J].電子與封裝,,2005,12(5):27-28.
[4] 儲(chǔ)成群.基于LVDS接口的高速數(shù)據(jù)記錄器的設(shè)計(jì)[D].太原:中北大學(xué),,2011.
[5] 孟青.多通道數(shù)據(jù)采集記錄器的設(shè)計(jì)與研究[D].太原:中北大學(xué),,2013.
[6] 謝子青.光電隔離抗干擾技術(shù)及應(yīng)用[J].現(xiàn)代電子技術(shù),2003(13):33-34.