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