《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于CPCI總線的接口卡設(shè)計
基于CPCI總線的接口卡設(shè)計
2014年電子技術(shù)應(yīng)用第6期
任勇峰,劉占峰,彭巧君,李輝景,周 濤,王淑琴
中北大學(xué) 儀器科學(xué)與動態(tài)測試教育部重點(diǎn)實(shí)驗室,山西 太原030051
摘要: 針對某彈上記錄器的性能測試設(shè)計了地面測試設(shè)備。由于數(shù)據(jù)傳輸速率較快、數(shù)據(jù)量較大,為了提高測試設(shè)備接收、處理數(shù)據(jù)的能力,研究了基于CPCI總線的接口卡設(shè)計,既能實(shí)現(xiàn)準(zhǔn)確接收,又能高效處理記錄器下傳的高速數(shù)據(jù)。經(jīng)過實(shí)際驗證,接口卡能夠準(zhǔn)確接收大量的高速數(shù)據(jù),并能通過CPCI總線實(shí)時地上傳給上位機(jī)進(jìn)行顯示和存盤,具有很高的可靠性。
中圖分類號: TP274.2
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)06-0039-03
Design of interface card based on CPCI bus
Ren Yongfeng,Liu Zhanfeng,Peng Qiaojun,Li Huijing,Zhou Tao,Wang Shuqin
The Ministry of Education Key Laboratory for Instrument Science and Dynamic Test,North University of China,Taiyuan 030051,China
Abstract: For the performance tests of a recorder on the missile, a ground test equipment is designed. Due to the rapid data transmission rate and large amount of data, in order to improve the test equipment receiving and data processing ability,a research on the design of interface card based on CPCI bus has been given, by which the high-speed data from receiving recorder can be transmitted accurately and processed efficiently. Through the actual verification, interface card can receive a large number of high-speed data, and upload data to the epigynous machine for display and save by CPCI bus in real time. It has very high reliability.
Key words : CPCI bus;LVDS;RS422

        隨著數(shù)字信號處理技術(shù)的發(fā)展,數(shù)據(jù)傳輸速率越來越高,數(shù)據(jù)量越來越大。在傳統(tǒng)的測試設(shè)備設(shè)計中,大多是通過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í)時顯示與存盤;RS422接口將上位機(jī)下發(fā)的控制命令轉(zhuǎn)發(fā)給記錄器,并接收記錄器反饋回來的狀態(tài)信息,試驗人員根據(jù)狀態(tài)反饋來監(jiān)測記錄器是否工作正常。

2 CPCI總線接口設(shè)計

        CPCI完全兼容PCI協(xié)議,本設(shè)計通過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ù)線分開使用,可以很方便地控制本地時序。在使用C模式時,只需要嚴(yán)格控制好本地端和CPCI 端的各種時序,就可以很好地使用PCI9054芯片。因此,在本設(shè)計中使PCI9054工作在C模式。通過設(shè)置MODE0(156引腳)和MODE1(157引腳)的值來實(shí)現(xiàn)其工作模式的配置,將PCI9054的156腳和157腳接地后,使其工作于C模式。

2.2 CPCI接口FPGA的邏輯控制

2.2.1 CPCI總線訪問本地總線時序介紹

        PCI9054的訪問方式選擇DMA方式。PCI9054作為主控設(shè)備,通過其內(nèi)部的DMA控制器來實(shí)現(xiàn)局部總線上的數(shù)據(jù)與CPCI總線上的數(shù)據(jù)之間的傳輸。DMA訪問方式下,CPCI總線向本地總線傳輸數(shù)據(jù)時,本地時序如圖2所示。

        當(dāng)上位機(jī)向接口卡下發(fā)控制命令時,上位機(jī)通過配置DMA控制器的命令/狀態(tài)寄存器來啟動DMA訪問。此時,DMA控制器通過發(fā)出LHOLD信號來向本地總線申請總線的主控權(quán),本地FPGA收到LHOLD請求信號后,反饋一個信號LHOLDA來響應(yīng)請求,DMA控制器收到此響應(yīng)信號之后,便獲得主控本地總線的權(quán)利。當(dāng)DMA控制器獲得主控權(quán)之后,ADS#信號變低,意味著地址總線LA上的地址為有效地址。BLAST#變低,單周期訪問開啟,只有收到本地總線反饋的READY#信號有效(低)時,才能真正開啟訪問。LW/R#為高代表寫操作,為低代表讀操作,如圖2所示,當(dāng)上位機(jī)下發(fā)命令時為寫操作,LW/R#為高。當(dāng)所有時序滿足之后,F(xiàn)PGA從地址LA上獲得數(shù)據(jù)信號LD。

        當(dāng)接口卡向上位機(jī)傳輸數(shù)據(jù)時,本地總線時序與圖2所示時序相似,只是LW/R#為低,進(jìn)行讀操作。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語言編程來實(shí)現(xiàn)本地時序地控制。按照上一節(jié)介紹的時序控制接口卡與CPCI總線之間進(jìn)行通信。FPGA內(nèi)部調(diào)用一個FIFO,記錄器上傳的LVDS數(shù)據(jù)緩存于此FIFO中,當(dāng)FIFO內(nèi)數(shù)據(jù)達(dá)到2 KB時,其FIFO可編程半滿信號有效。當(dāng)處于單周期讀訪問時,一旦FIFO可編程半滿則啟動一次DMA訪問。當(dāng)處于單周期寫訪問時,F(xiàn)PGA從命令地址讀取上位機(jī)下發(fā)的命令數(shù)據(jù)。VHDL程序的流程圖如圖3所示。

3 高速數(shù)據(jù)接口設(shè)計

3.1 高速數(shù)據(jù)傳輸方式選擇

        數(shù)據(jù)傳輸有并行和串行兩種方式。在傳輸速率要求不高、傳輸距離較短的電路中,并行傳輸方式是首選。但是,隨著數(shù)據(jù)傳輸速率以及時鐘頻率的提高,很容易發(fā)生數(shù)據(jù)和時鐘不同步的現(xiàn)象,造成數(shù)據(jù)接收錯誤的結(jié)果,較高的傳輸速率還會使信號線之間產(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è)計中高速數(shù)據(jù)傳輸?shù)恼_性。

3.2 LVDS接口設(shè)計

        由于趨膚效應(yīng)和介質(zhì)損耗[5],高速信號在傳輸過程中會發(fā)生衰減。因此,當(dāng)傳輸距離較長時,往往要使用電纜驅(qū)動器和均衡器來保證高速數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。電纜驅(qū)動器將信號以最大功率耦合到電纜上,可以延長高速數(shù)據(jù)的傳輸距離;電纜均衡器可以對傳輸?shù)男盘栠M(jìn)行高頻補(bǔ)償。

        本設(shè)計中,LVDS串行器/解串器分別選用TI公司的SN65LV1203和SN65LV1224,這組芯片的數(shù)據(jù)傳輸速率最大可以達(dá)到660 Mb/s;信號驅(qū)動器/電纜均衡器分別選用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ū)動器將信號耦合到電纜上。接口卡的電纜均衡器對接收到的信號進(jìn)行高頻補(bǔ)償之后傳送給解串器,解串器根據(jù)參考時鐘將串行數(shù)據(jù)轉(zhuǎn)換成10 bit的并行數(shù)據(jù),由FPGA進(jìn)行后續(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)嵌的同步標(biāo)志。驅(qū)動器的外圍電路按照NS公司的CLC001芯片的典型應(yīng)用電路進(jìn)行配置。為了降低信號反射,在發(fā)送端要放置阻抗匹配電阻,在電纜均衡器的外圍電路配置中,接收端也要放置終端匹配電阻。

        與串行器時鐘頻率保持一致,給解串器也提供一個相同頻率的時鐘REFCLK,且RCLK_R/F置高,即在時鐘的上升沿時刻,解串器將LVDS輸入端的串行信號轉(zhuǎn)換成10 bit并行信號,由FPGA控制通過CPCI總線上傳給上位機(jī)。

3.3 FPGA控制LVDS接收

        為了解決LVDS數(shù)據(jù)接收時鐘與CPCI接口數(shù)據(jù)傳輸時鐘不同步的問題,F(xiàn)PGA調(diào)用一個異步時鐘控制的FIFO來進(jìn)行數(shù)據(jù)緩存,當(dāng)FIFO內(nèi)數(shù)據(jù)達(dá)到一次DMA傳輸?shù)臄?shù)據(jù)量時,其可編程FIFO半滿信號有效。為了防止FIFO內(nèi)數(shù)據(jù)溢出,F(xiàn)IFO深度要大于一次DMA傳輸?shù)臄?shù)據(jù)量。

4 全雙工RS422接口設(shè)計

4.1 全雙工RS422硬件電路設(shè)計

        為了提高接口卡的抗干擾能力,需要采取隔離措施,以達(dá)到接口卡與記錄器之間電氣隔離、記錄器不受接口卡影響的目的。光電隔離是一種應(yīng)用較為廣泛的隔離方法,常用于實(shí)現(xiàn)電氣隔離[6]。本設(shè)計要求RS422數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿?15.2 kb/s,選用HCPL-063L光耦進(jìn)行隔離,它是一種高速兼容LVTTL 3.3 V電平的光耦合器,輸出上升沿時間為45 ns,下降沿時間為20 ns,可以滿足波特率要求。由于HCPL-063L內(nèi)部輸出端的三極管的集電極開路,所以在設(shè)計電路時需要外接上拉電阻。

        光耦隔離需要注意的是,輸入/輸出的供電電源要進(jìn)行隔離,否則就失去了隔離的意義。本設(shè)計采用DC-DC芯片RO3.33.3S隔離前后的3.3 V電源。RS422接口芯片選用應(yīng)用比較廣泛的MAX3490,在接口處都有上拉、下拉電阻,即使接口短路也不會損壞電路。

4.2 RS422接口FPGA邏輯控制

        本設(shè)計中RS422接口遵循UART協(xié)議,先發(fā)低位,再發(fā)高位,其中包括1 bit起始位、8 bit數(shù)據(jù)位和1 bit停止位,總共10 bit,無奇偶校驗位。接口卡的系統(tǒng)時鐘為36.864 MHz,傳輸1 bit二進(jìn)制位需要經(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 設(shè)計驗證

        給記錄器提供一個頻率為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個正弦周期的長度間隔大約為0.836 s,可以計算出正弦波頻率為3 Hz,與信號源頻率一致。記錄器的ADC為16 bit,最大可測電壓值為5 V,即每個分層值約代表0.076 mV,圖中分層值的最小值約為6 724,最大值約為57 147,可以計算出上圖正弦波的幅值約為0.5 V~4.5 V,與信號源幅值一致。

        上述驗證結(jié)果表明,接口卡能夠正確接收記錄器下發(fā)的高速數(shù)據(jù)并通過CPCI總線將數(shù)據(jù)上傳給上位機(jī)進(jìn)行處理,具有很高的可靠性。

參考文獻(xiàn)

[1] 張華,胡修林,馬若飛.超高速數(shù)據(jù)采集系統(tǒng)設(shè)計與優(yōu)化策略研究[J].電子技術(shù)應(yīng)用,2010,36(12):86-90.

[2] 孫國良.基于FPGA的cPCI接口數(shù)據(jù)采集系統(tǒng)設(shè)計[D].北京:北京郵電大學(xué),2009.

[3] 王旭.PCI9054局部總線三種工作模式的具體應(yīng)用[J].電子與封裝,2005,12(5):27-28.

[4] 儲成群.基于LVDS接口的高速數(shù)據(jù)記錄器的設(shè)計[D].太原:中北大學(xué),2011.

[5] 孟青.多通道數(shù)據(jù)采集記錄器的設(shè)計與研究[D].太原:中北大學(xué),2013.

[6] 謝子青.光電隔離抗干擾技術(shù)及應(yīng)用[J].現(xiàn)代電子技術(shù),2003(13):33-34.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。