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