王秀蓮 葉 偉, 呂 巖
(1.沈陽(yáng)理工大學(xué)信息科學(xué)與工程學(xué)院,沈陽(yáng) 110159;2.中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所,沈陽(yáng) 110016)
隨著電子工業(yè)和計(jì)算機(jī)工業(yè)的飛速發(fā)展,數(shù)據(jù)采集系統(tǒng)在網(wǎng)絡(luò)、通信及工業(yè)控制等領(lǐng)域得到了廣泛的應(yīng)用。同時(shí)對(duì)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)要求越來(lái)越高,不僅要求接口簡(jiǎn)單靈活、實(shí)時(shí)性高,而且要求有較高的傳輸率[1]。在具有Profibus-DP總線運(yùn)行監(jiān)測(cè)、故障診斷、協(xié)議分析,更高級(jí)的協(xié)議認(rèn)證測(cè)試功能的總線分析器中就需要對(duì)總線上的狀態(tài)數(shù)據(jù)進(jìn)行實(shí)時(shí)采集。面向工業(yè)現(xiàn)場(chǎng)總線Profibus-DP分析器主要用于Profibus-DP現(xiàn)場(chǎng)總線的診斷分析與維護(hù)。Profibus-DP總線分析器用于連接PC終端到Profibus-DP總線,其主要功能是完成Profibus-DP總線通信數(shù)據(jù)傳輸、通信服務(wù)映射、通信協(xié)議映射和行規(guī)映射[2]。Profibus-DP總線分析器具有主站的功能,DP主站側(cè)重控制和通信,總線分析器側(cè)重主站監(jiān)測(cè)和配置。
筆者設(shè)計(jì)了一種基于FPGA和USB2.0的高速數(shù)據(jù)采集系統(tǒng),采用FPGA作主控制器,通過(guò)AD控制模塊接收來(lái)自現(xiàn)場(chǎng)總線上工作狀態(tài)的信息數(shù)據(jù),并根據(jù)需要對(duì)這些數(shù)據(jù)進(jìn)行處理,然后通過(guò)USB接口模塊將采集的數(shù)據(jù)經(jīng)USB總線送入計(jì)算機(jī)顯示,通過(guò)采集的數(shù)據(jù)波形分析總線上的運(yùn)行狀態(tài),為Profibus-DP總線分析器實(shí)現(xiàn)高級(jí)功能提供可靠的基礎(chǔ)。FPGA具有高時(shí)鐘頻率、運(yùn)行速度快、效率高及組成形式靈活等優(yōu)點(diǎn),因此利用FPGA作主控制器對(duì)現(xiàn)場(chǎng)總線上的數(shù)據(jù)進(jìn)行采集具有重要的價(jià)值。
目前具有類似功能的Profibus-DP主站設(shè)備中的控制器、緩存和通信控制器基本都是采用ARM+ASPC2協(xié)議芯片[3,4]和ARM+赫優(yōu)通信模塊[5,6]的解決方案。采用上述方案不能實(shí)現(xiàn)總線分析器的功能,因?yàn)椴捎脜f(xié)議芯片會(huì)屏蔽掉總線的部分信息,不能完全獲取總線的工作信息和狀態(tài),必須采用FPGA定制化的通信控制器來(lái)實(shí)現(xiàn)分析器的功能需求和實(shí)時(shí)性要求[7]。筆者設(shè)計(jì)的系統(tǒng)采用FPGA硬件電路實(shí)現(xiàn),使通信數(shù)據(jù)延遲最小,提高了處理性能,降低PC機(jī)的處理器負(fù)荷。Profibus-DP總線分析器應(yīng)用模式如圖1所示。
圖1 Profibus-DP總線分析器應(yīng)用模式
Profibus-DP現(xiàn)場(chǎng)總線分析器包括4部分:USB 2.0控制器用于實(shí)現(xiàn)計(jì)算機(jī)的通信功能;FPGA模塊用于實(shí)現(xiàn)計(jì)算機(jī)的通信服務(wù)到Profibus-DP現(xiàn)場(chǎng)總線的映射,同時(shí)實(shí)現(xiàn)Profibus-DP通信編/解碼處理;信號(hào)隔離實(shí)現(xiàn)PC端到Profibus-DP現(xiàn)場(chǎng)總線的數(shù)據(jù)信號(hào)隔離;高速信號(hào)采集和Profibus物理通用異步收發(fā)器用于實(shí)現(xiàn)信號(hào)的采集和Profibus-DP物理層通信。
整個(gè)系統(tǒng)以高速數(shù)據(jù)采集模塊為核心,配備符合物理層標(biāo)準(zhǔn)的接口電路、滿足標(biāo)準(zhǔn)要求的信號(hào)隔離模塊、USB 2.0全速通信模塊和FPGA的信號(hào)處理模塊。整個(gè)系統(tǒng)存在3條數(shù)據(jù)通路:
a. 高速數(shù)據(jù)采集→FPGA→USB 2.0→PC;
b. DP RS-485→FPGA→USB 2.0→PC;
c. PC→USB 2.0→FPGA→DP RS-485。
高速數(shù)據(jù)采集板用到的芯片有:FPGA芯片、高速AD芯片、SDRAM芯片、USB2.0芯片及RS-485驅(qū)動(dòng)器芯片等。高速數(shù)據(jù)采集板的結(jié)構(gòu)框圖如圖2所示。
圖2 高速數(shù)據(jù)采集板結(jié)構(gòu)框圖
硬件電路有模擬信號(hào)調(diào)理電路、AD接口電路、SDRAM接口電路、Profibus-DP通信電路及USB接口電路等。
模擬信號(hào)調(diào)理電路設(shè)計(jì)。模擬信號(hào)調(diào)理電路的主要芯片是LMH6702。LMH6702是雙電源供電,設(shè)計(jì)電源時(shí)就要設(shè)計(jì)出-5V電源,通過(guò)電路負(fù)載能力的計(jì)算采用CRZ0505NC能滿足-5V的負(fù)載要求。整個(gè)調(diào)理電路的目的是將總線上采集的-9~9V電壓信號(hào)調(diào)理到ADC08200能轉(zhuǎn)換的0.0~2.1V范圍內(nèi)。調(diào)理電路如圖3所示,利用分壓電阻得到0.9V基準(zhǔn)電壓,在分壓電路中使用2.5V的穩(wěn)壓器,使其輸入到運(yùn)放正相輸入端的電壓更穩(wěn)定,同時(shí)在AD轉(zhuǎn)換電壓范圍的電路中也使用同樣的2.5V穩(wěn)壓器保證電壓一致、穩(wěn)定。分壓之后利用運(yùn)放LMH6702來(lái)構(gòu)成電壓跟隨器提供直流偏置[8]。B-line的調(diào)理電路采用同樣的設(shè)計(jì)。
AD接口電路設(shè)計(jì)。AD芯片使用TI公司的ADC08200,ADC08200是單通道、低功耗、高速8位模數(shù)轉(zhuǎn)換器,它具有成本低、體積小及易于使用等優(yōu)點(diǎn),最高采樣率達(dá)200MS/s。為了滿足高速采集的要求,采用A-line、B-line兩路同時(shí)采集。AD接口電路如圖4所示。
兩路AD同時(shí)采集A-line、B-line模擬信號(hào),通過(guò)FIFO存儲(chǔ)到SDRAM,然后對(duì)數(shù)據(jù)進(jìn)行必要的處理。AD1_CLK、AD2_CLK是兩個(gè)AD轉(zhuǎn)換器的時(shí)鐘,AD1_PD、AD2_PD是兩個(gè)AD轉(zhuǎn)換器的PD(PD為掉電保護(hù)),當(dāng)PD為低時(shí)D0~D7正常輸出,當(dāng)PD為高時(shí)D0~D7輸出保持,AD1_DATA[0:7]、AD2_DATA[0:7]是兩個(gè)AD轉(zhuǎn)換器的數(shù)據(jù)線。
Profibus-DP通信電路設(shè)計(jì)。RS-485的驅(qū)動(dòng)器采用集成芯片SN65HVD1176。Profibus-DP通信電路如圖5所示。電隔離模塊采用NVE公司的IL614,該芯片內(nèi)部集成三通道線性GMR傳感器隔離通道,輸入采用線圈結(jié)構(gòu),只要提供5mA電流即可使輸入電平通過(guò)隔離柵。IL614具有高速、低延遲、低功耗、長(zhǎng)壽命、小體積及高可靠性等特點(diǎn),非常適合Profibus-DP的隔離應(yīng)用,滿足設(shè)計(jì)要求。
圖3 模擬信號(hào)調(diào)理電路
圖4 高速AD接口電路
圖5 Profibus-DP通信電路
USB接口電路設(shè)計(jì)。該電路采用Cypress公司推出的EZ-USBFX2系列芯片CY7C68013A[9]。EZ-USB FX2系列芯片是世界上第一款集成USB2.0協(xié)議的微處理器,它集成了USB2.0收發(fā)器、串行接口引擎(SIE)、增強(qiáng)的8051微控制器和可編程的外圍接口,并且提供了完善的固件和主機(jī)程序開(kāi)發(fā)包。該微處理器的CPU采用的是增強(qiáng)型805l內(nèi)核,比標(biāo)準(zhǔn)的8051速度快,硬件資源也更為豐富,功能更強(qiáng)大。它支持12Mbit/s的全速傳輸模式和480Mbit/s的高速傳輸模式。USB接口電路的主要功能是把處理后的數(shù)據(jù)送到USB2.0芯片中,通過(guò)USB總線送到上位機(jī)中。USB2.0芯片通過(guò)I2C總線外擴(kuò)一片128KByte的EEPROM,用來(lái)存儲(chǔ)USB固件程序及重要的數(shù)據(jù)等。
系統(tǒng)的主控制芯片采用Xilinx公司Spartan-6系列的FPGA,型號(hào)為XC6SLX25。在Xilinx ISE 開(kāi)發(fā)環(huán)境下,用Verilog HDL硬件語(yǔ)言開(kāi)發(fā),完成數(shù)據(jù)采集控制、數(shù)據(jù)存儲(chǔ)控制及USB控制等模塊的設(shè)計(jì)。整個(gè)數(shù)據(jù)采集系統(tǒng)的工作流程如圖6所示。
圖6 數(shù)據(jù)采集系統(tǒng)的工作流程
采集過(guò)程:
a. 初始化FPGA——FPGA邏輯控制AD采集開(kāi)啟和SDRAM數(shù)據(jù)存儲(chǔ)。其中包括AD及SDRAM等時(shí)鐘的產(chǎn)生。在Xilinx Spartan-6系列的FPGA芯片中,不再使用分立的DCM或者PLL核來(lái)調(diào)用底層資源,而是通過(guò)統(tǒng)一的“Clock Wizard” IP核來(lái)完成各個(gè)控制模塊的時(shí)鐘,使設(shè)計(jì)更加方便。
b. 將儲(chǔ)存的數(shù)據(jù)進(jìn)行必要的處理后,通過(guò)USB總線進(jìn)行數(shù)據(jù)傳輸,由上位機(jī)發(fā)出傳輸命令,通過(guò)FPGA內(nèi)部的邏輯控制將數(shù)據(jù)傳輸?shù)缴衔粰C(jī)。FPGA只需要利用FX2做一個(gè)USB 2.0接口而實(shí)現(xiàn)與主機(jī)的高速通信,而它本身又能夠提供滿足Slave FIFO要求的傳輸時(shí)序,可以做Slave FIFO主控制器。Slave FIFO模式是FX2最常用的模式。在這種方式下,F(xiàn)X2內(nèi)嵌的8051固件的功能只是配置Slave FIFO相關(guān)的寄存器和控制FX2工作在Slave FIFO模式下的時(shí)間。一旦8051固件將相關(guān)的寄存器配置完畢,且使自身工作在Slave FIFO模式下后,F(xiàn)PGA可按照Slave FIFO的傳輸時(shí)序,與主機(jī)進(jìn)行高速通信,而在通信過(guò)程中不需要8051固件的參與。
搭建了一個(gè)小型測(cè)試驗(yàn)證系統(tǒng),系統(tǒng)由西門(mén)子PLC作為主站,采用已有的模塊設(shè)計(jì)了8個(gè)測(cè)試節(jié)點(diǎn),用以模擬總線工作狀態(tài)和故障現(xiàn)象。實(shí)驗(yàn)系統(tǒng)如圖7所示。
為了實(shí)現(xiàn)Profibus-DP總線分析工具對(duì)Profibus-DP總線運(yùn)行監(jiān)測(cè)、故障診斷和協(xié)議分析,提供更高級(jí)的協(xié)議認(rèn)證測(cè)試功能,筆者設(shè)計(jì)了一個(gè)基于Profibus-DP總線分析器的高速數(shù)據(jù)采集系統(tǒng)。給出了高速硬件電路及FPGA程序設(shè)計(jì)等,同時(shí)在搭建的實(shí)驗(yàn)測(cè)試環(huán)境下進(jìn)行測(cè)試,該系統(tǒng)能很好地完成數(shù)據(jù)采集任務(wù)。與傳統(tǒng)的高速數(shù)據(jù)采集系統(tǒng)相比,該系統(tǒng)具有特殊定制性和更強(qiáng)的抗干擾能力。
圖7 Profibus-DP現(xiàn)場(chǎng)總線實(shí)驗(yàn)系統(tǒng)
[1] 孫東輝,胡輝,郭云波.基于FPGA的高速多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009,25(8):209~210,258.
[2] 周侗,胡靜濤,楊志家.Profibus協(xié)議分析軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].化工自動(dòng)化及儀表,2012,39(10):1300~1301,1364.
[3] 黃治文.基于ARM的Profibus-DP主站設(shè)計(jì)與研究[D].南京:南京理工大學(xué),2009.
[4] 胡建中,李開(kāi)成.基于ASPC2的Profibus-DP主站的研究[J].計(jì)算機(jī)測(cè)量與控制,2004,(12):1185~1187,1194.
[5] 張曉剛,鄧梧鵬.基于赫優(yōu)訊嵌入式模塊的Profibus-DP主站系統(tǒng)的設(shè)計(jì)[C]. 中國(guó)儀器儀表學(xué)會(huì)2008學(xué)術(shù)年會(huì)第二屆智能檢測(cè)控制技術(shù)及儀表裝置發(fā)展研討會(huì)論文集.北京:中國(guó)儀器儀表學(xué)會(huì)過(guò)程檢測(cè)控制儀表分會(huì),2008:22~29.
[6] 高娣.Profibus-DP主站模塊的開(kāi)發(fā)[D].北京:北方工業(yè)大學(xué),2012.
[7] 孫倩華,滿慶豐,夏繼強(qiáng).FPGA和ARM的Profibus-DP主站通信平臺(tái)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010,(2):65~67.
[8] 康華光,陳大欽,張林.電子技術(shù)基礎(chǔ):模擬部分[M].北京:高等教育出版社,2006.
[9] 熊俊俏,劉崢.基于CY7C68013的高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2010,(7):73~75.