基于CPCI總線(xiàn)的一體化數(shù)據(jù)處理中心的研究與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了滿(mǎn)足工業(yè)控制系統(tǒng)多功能和數(shù)據(jù)處理能力的需求,設(shè)計(jì)了基于CPCI總線(xiàn)的一體化數(shù)據(jù)處理中心。系統(tǒng)以FPGA芯片為硬件控制核心,利用硬件描述語(yǔ)言Verilog進(jìn)行編程,采用自頂向下和模塊化的設(shè)計(jì)方法,實(shí)現(xiàn)了在同一嵌入式產(chǎn)品上集成光纖通信、A/D、D/A、CPCI總線(xiàn)、SDRAM存儲(chǔ)等功能,實(shí)現(xiàn)了系統(tǒng)的一體化、小型化。實(shí)際應(yīng)用表明本系統(tǒng)穩(wěn)定可靠、易于維護(hù),滿(mǎn)足工業(yè)控制領(lǐng)域的需求。
關(guān)鍵詞:CPCI;FPGA;一體化;數(shù)據(jù)處理中心
近年來(lái),隨著工業(yè)控制技術(shù)的發(fā)展,在工業(yè)控制領(lǐng)域中,對(duì)控制系統(tǒng)的功能、靈活性和數(shù)據(jù)處理能力提出了更高的需求,本文從實(shí)際工程應(yīng)用出發(fā),研究并實(shí)現(xiàn)了一種基于CPCI總線(xiàn)的一體化可配置數(shù)據(jù)處理系統(tǒng)。
本設(shè)計(jì)利用可配置的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)與具有高可靠性、高密度性的CPCI總線(xiàn)相結(jié)合的方法,將眾多數(shù)據(jù)處理功能集成在同一個(gè)嵌入式系統(tǒng)板卡上,實(shí)現(xiàn)了系統(tǒng)的一體化、小型化。
1 系統(tǒng)總體結(jié)構(gòu)
本系統(tǒng)主要由上位機(jī)管理子系統(tǒng)、遠(yuǎn)程監(jiān)控子系統(tǒng)和數(shù)據(jù)處理子系統(tǒng)組成,總體結(jié)構(gòu)如圖1所示。
上位機(jī)管理系統(tǒng)主要用于顯示系統(tǒng)工作狀態(tài)并提供人機(jī)交互界面。遠(yuǎn)程監(jiān)控系統(tǒng)通過(guò)光纖連接到距離系統(tǒng)1 km以外的位置,實(shí)現(xiàn)系統(tǒng)的遠(yuǎn)程監(jiān)控。數(shù)據(jù)處理子系統(tǒng)包括CPCI-6020單板計(jì)算機(jī)和FTC-9110數(shù)據(jù)處理單板兩部分,CPCI-6020單板計(jì)算機(jī)用于解釋上位機(jī)發(fā)送的命令并對(duì)數(shù)據(jù)處理中心進(jìn)行控制。FTC-9110數(shù)據(jù)處理單板是數(shù)據(jù)處理的核心部分,也是文中介紹的重點(diǎn),其整體實(shí)現(xiàn)結(jié)構(gòu)如圖2所示。
FTC-9110數(shù)據(jù)處理中心以FPGA為硬件處理核心,通過(guò)內(nèi)部構(gòu)建的ADC控制模塊、DAC控制模塊、FLASH模塊、SDRAM存儲(chǔ)模塊、光纖通信模塊、PCI總線(xiàn)模塊實(shí)現(xiàn)對(duì)外圍設(shè)計(jì)的A/D數(shù)據(jù)采集電路、D/A數(shù)據(jù)輸出電路、FLASH存儲(chǔ)電路、SDRAM數(shù)據(jù)存儲(chǔ)電路、光纖通信電路以及CPCI總線(xiàn)接口電路的控制,通過(guò)與單板計(jì)算機(jī)的靈活配合,實(shí)現(xiàn)對(duì)數(shù)據(jù)的實(shí)時(shí)處理、高速傳輸。
2 數(shù)據(jù)處理流程
系統(tǒng)的數(shù)據(jù)處理主要以FTC-9110為中心,利用單板計(jì)算機(jī)對(duì)FPGA內(nèi)部構(gòu)建的各個(gè)模塊的靈活控制,實(shí)現(xiàn)數(shù)據(jù)的處理,其數(shù)據(jù)處理流程如下:
1)利用ADC芯片前端設(shè)計(jì)的信號(hào)調(diào)理電路,將輸入的單端模擬信號(hào)轉(zhuǎn)換為差分信號(hào)送入芯片的差分輸入端。
2)ADC芯片對(duì)輸入的信號(hào)進(jìn)行采樣,并將采樣所得數(shù)字信號(hào)傳送至FFT算法模塊。
3)利用FFT算法模塊對(duì)采集數(shù)據(jù)進(jìn)行頻域分析,分析數(shù)據(jù)的結(jié)果傳送至FIR濾波模塊作為濾波輸入信號(hào),濾波后輸出數(shù)據(jù)傳送至光纖通信模塊。
4)光纖通信模塊通過(guò)高速并串轉(zhuǎn)換模塊對(duì)濾波輸出數(shù)據(jù)進(jìn)行8B/10B編碼,將16位的數(shù)據(jù)轉(zhuǎn)換為20位的串行數(shù)據(jù),輸出速率最高可達(dá)1.5 Gbps,然后該高速串行數(shù)據(jù)進(jìn)入光電轉(zhuǎn)換模塊,傳送至遠(yuǎn)程監(jiān)控系統(tǒng)。
5)單板計(jì)算機(jī)控制PCI9656工作在DMA傳輸模式,通過(guò)PCI總線(xiàn)模塊和SDRAM存儲(chǔ)模塊將DAC輸入數(shù)據(jù)寫(xiě)入SDRAM芯片。
6)讀取SDRAM芯片數(shù)據(jù)傳送至DAC控制模塊,DAC芯片對(duì)輸入數(shù)據(jù)進(jìn)行數(shù)模轉(zhuǎn)換,并通過(guò)后端設(shè)計(jì)的調(diào)理電路,使信號(hào)最終以電壓形式輸出。
3 硬件設(shè)計(jì)
硬件設(shè)計(jì)將重點(diǎn)介紹DAC電路及控制模塊、PCI接口控制模塊、光纖通信電路及控制模塊的設(shè)計(jì)。
3.1 DAC電路及控制模塊設(shè)計(jì)
DAC電路由D/A轉(zhuǎn)換電路和信號(hào)調(diào)理電路兩部分組成。D/A轉(zhuǎn)換電路采用了ADI公司的電流輸出型芯片AD9717,在芯片輸出后端設(shè)計(jì)的調(diào)理電路,將電流輸出轉(zhuǎn)換為電壓信號(hào)輸出。
FPGA通過(guò)SPI接口對(duì)DAC內(nèi)部寄存器進(jìn)行配置,控制其工作方式。為了方便對(duì)內(nèi)部寄存器配置,F(xiàn)PGA內(nèi)部設(shè)計(jì)了相應(yīng)的寄存器,上位機(jī)可以通過(guò)對(duì)相應(yīng)的寄存器設(shè)置進(jìn)而改變內(nèi)部寄存器的值。
SPI接口由串行時(shí)鐘(SCLK)、串行數(shù)據(jù)輸入/輸出(SDIO)、芯片選擇(CSB)3個(gè)配置引腳組成,配置時(shí)序如圖3所示。
SPI接口配置時(shí)序由指令周期和數(shù)據(jù)周期兩部分組成,發(fā)送的前8個(gè)數(shù)據(jù)(R/W、N1NO、A4-A0)為指令周期,R/W為數(shù)據(jù)讀寫(xiě)控制位,N1NO為數(shù)據(jù)字節(jié)個(gè)數(shù)控制位,A4-A0為數(shù)據(jù)地址控制位。指令周期發(fā)送結(jié)束后是數(shù)據(jù)周期,數(shù)據(jù)方向由R/W決定,數(shù)據(jù)量由N1NO決定.寫(xiě)數(shù)據(jù)在SCLK上升沿有效,讀數(shù)據(jù)在SCLK下降沿有效。本模塊設(shè)計(jì)的關(guān)鍵代碼如下:
3.2 PCI接口控制模塊設(shè)計(jì)
PCI橋芯片主要用于解釋單板計(jì)算機(jī)發(fā)送的指令,實(shí)現(xiàn)相互間數(shù)據(jù)通信。本系統(tǒng)采用PLX公司的PCI9656芯片,工作在C模式下,局部總線(xiàn)時(shí)序如圖4所示。
其中LHOLD、BLAST、LA[31:2]、ADS、LW/R等信號(hào)由PCI9656驅(qū)動(dòng),LHOLDA、LBE[3:0]、READY信號(hào)由FPGA驅(qū)動(dòng)。通過(guò)模塊內(nèi)部設(shè)計(jì)的狀態(tài)機(jī)實(shí)現(xiàn)對(duì)局部總線(xiàn)的控制,具體實(shí)現(xiàn)過(guò)程如圖5所示。
1)IDLE狀態(tài) 系統(tǒng)上電或復(fù)位后,處于IDLE狀態(tài)。在IDLE狀態(tài)時(shí),F(xiàn)PGA監(jiān)測(cè)LHOLD信號(hào),當(dāng)單板計(jì)算機(jī)訪(fǎng)問(wèn)FPGA時(shí),LHOLD信號(hào)變?yōu)楦?strong>電平。FPGA監(jiān)測(cè)到該高電平后,立即使LHOLDA信號(hào)為高電平,轉(zhuǎn)入ADDR_S狀態(tài)。
2)ADDR_S狀態(tài) 在此狀態(tài)下,F(xiàn)PGA監(jiān)測(cè)ADS信號(hào),當(dāng)ADS信號(hào)變?yōu)榈碗娖剑刂沸盘?hào)LA[31:2]有效,同時(shí)對(duì)輸入的讀寫(xiě)信號(hào)進(jìn)行判斷,若為讀操作,轉(zhuǎn)入READ狀態(tài),若為寫(xiě)操作,轉(zhuǎn)入WRITE狀態(tài)。
3)WRITE狀態(tài) FPGA控制READY信號(hào)為低電平,以使總線(xiàn)上的數(shù)據(jù)有效,F(xiàn)PGA可以控制LBE[3:0]信號(hào),以對(duì)傳輸?shù)臄?shù)據(jù)字節(jié)進(jìn)行選取。并監(jiān)測(cè)BLAST信號(hào),當(dāng)監(jiān)測(cè)到BLAST信號(hào)為低電平時(shí),表示傳輸最后一個(gè)數(shù)據(jù),轉(zhuǎn)入THE_END狀態(tài)。
4)READ狀態(tài) 同WRITE狀態(tài)相似。
5)THE_END狀態(tài) 數(shù)據(jù)傳輸結(jié)束,F(xiàn)PGA監(jiān)測(cè)BLAST信號(hào)變?yōu)楦唠娖酵瑫r(shí)將READY信號(hào)變?yōu)楦唠娖?。?dāng)LHOLD信號(hào)變?yōu)榈碗娖胶?,LHOLDA信號(hào)變?yōu)榈?strong>電平,轉(zhuǎn)入IDLE狀態(tài),等待下一次傳輸。
3.3 光纖通信電路和控制模塊設(shè)計(jì)
本設(shè)計(jì)中的光纖通信電路由并串轉(zhuǎn)換電路和光傳輸電路組成。并串轉(zhuǎn)換電路采用了TI公司的TLK1501芯片,通過(guò)內(nèi)部的8B/10B編碼,將16位并行數(shù)據(jù)分成2個(gè)8位數(shù)據(jù)進(jìn)行編碼,編碼后的數(shù)據(jù)為20位,再通過(guò)并串轉(zhuǎn)換發(fā)送出去;光傳輸電路采用FINISAR公司推出的FTLF1321SIM TL光模塊,將串行數(shù)據(jù)進(jìn)行光電轉(zhuǎn)換輸出。
光纖通信模塊內(nèi)部有一個(gè)狀態(tài)機(jī),上電或復(fù)位后,處于IDLE狀態(tài)。模塊對(duì)傳送標(biāo)志信號(hào)(TX_FLAG)監(jiān)測(cè),如果有傳送標(biāo)志(TX_FLAG=1),轉(zhuǎn)入TX_READY狀態(tài)。在正常傳送數(shù)據(jù)前,需要對(duì)芯片進(jìn)行同步操作,模塊控制信號(hào)TX-EN、TX-ER為00,連續(xù)發(fā)送3個(gè)空閑碼,使TLK1501進(jìn)入
同步模式,狀態(tài)機(jī)轉(zhuǎn)入TX_S狀態(tài)。在TX_S狀態(tài)下,如果發(fā)送有效數(shù)據(jù),模塊控制TX_EN、TX-ER為10,進(jìn)行數(shù)據(jù)的正常發(fā)送,發(fā)送數(shù)據(jù)結(jié)束后,轉(zhuǎn)入IDLE狀態(tài),等待下一次傳輸。在接收數(shù)據(jù)時(shí),模塊監(jiān)測(cè)RX-DV,RX-ER信號(hào),如果RX-DV,RX-ER為10,正常接收數(shù)據(jù)。模塊設(shè)計(jì)的關(guān)鍵代碼如下:
4 結(jié)論
本文通過(guò)對(duì)多種功能接口電路進(jìn)行研究分析,最終實(shí)現(xiàn)了在同一塊嵌入式板卡上集成光纖通信、A/D、D/A、CPCI總線(xiàn)、SDRAM存儲(chǔ)、FLASH存儲(chǔ)等功能。系統(tǒng)以FPGA芯片為處理核心,利用模塊化的思想進(jìn)行設(shè)計(jì),使系統(tǒng)方便擴(kuò)展、易于維護(hù)和升級(jí)。經(jīng)過(guò)長(zhǎng)期的工程實(shí)踐驗(yàn)證,本系統(tǒng)運(yùn)行可靠穩(wěn)定,能夠?qū)崿F(xiàn)在復(fù)雜工業(yè)控制系統(tǒng)中對(duì)數(shù)據(jù)靈活控制、實(shí)時(shí)處理和高效傳輸。