李小文,劉偉良,劉麗君
(株洲南車時代電氣股份有限公司 技術(shù)中心,湖南株洲412001)
目前工業(yè)領(lǐng)域包括機車車輛領(lǐng)域所使用的壓力傳感器、溫度傳感器多采用電阻式傳感器,傳感器的阻值隨著壓力、溫度的變化而變化。而與這些傳感器相連的控制器或指示器在研發(fā)調(diào)試或生產(chǎn)測試過程中采用阻值和檔位固定的標準電阻來模擬這些傳感器。這樣,在需要更換一種型號的傳感器時必須更換一組標準電阻,因而可操作性差,費工費時。而在某些生產(chǎn)測試中需要同時提供幾組不同阻值的電阻,且需要重復(fù)提供使用,這就需要人工不停的調(diào)節(jié)阻值或不停的切換連線,工作強度大且容易出錯。
針對這些問題,研發(fā)一種受計算機控制的可調(diào)電阻裝置將變得不可或缺。本文將介紹一種可編程電阻裝置,其通過并行總線或以太網(wǎng)接收來自計算機的指令,然后通過FPGA控制電阻網(wǎng)絡(luò)并最終給出期望的電阻值。
可編程電阻裝置主要技術(shù)參數(shù)見表1。
表1 可編程電阻裝置主要技術(shù)參數(shù)
可編程電阻裝置系統(tǒng)如圖1所示,包括FPGA控制電路、繼電器電阻網(wǎng)絡(luò)、繼電器驅(qū)動電路、電平轉(zhuǎn)換電路、以太網(wǎng)接口電路、LED顯示電路、電源轉(zhuǎn)換電路等功能電路。
圖1 可編程電阻裝置系統(tǒng)方框圖
FPGA控制電路是整個系統(tǒng)的核心,利用FPGA眾多的GPIO接口控制相應(yīng)繼電器的開合并最終得到不同的電阻值。另外,還可以在FPGA中嵌入一個MicroBlaze處理器實現(xiàn)并行總線通訊和以太網(wǎng)通訊功能以及控制LED顯示電路。一般數(shù)字電路的主控器多采用單片機、DSP、ARM進行控制,本系統(tǒng)中采用FPGA作為主控器具有如下明顯優(yōu)勢:①擁有眾多I/O管腳,且每個管腳可以任意配置,非常適合多繼電器控制的場合;②使用硬件編程語言(HDL)將直接面對底層硬件,具有極大的靈活性和通用性;③擁有豐富的邏輯資源對并行總線的地址解碼具有顯而易見的優(yōu)勢;④FPGA遵循IEEE 1149.1標準,具有邊界掃描的功能,極大方便了硬件測試并減少了測試成本、降低維護難度。
現(xiàn)階段市場上主要生產(chǎn)FPGA的廠家有Xilinx、Altera和Lattice,本系統(tǒng)采用Xilinx公司Spartan3AN系列的器件,型號為XC3S700AN-4FG484I。該FPGA器件資源豐富,有372個I/O管腳并內(nèi)置8M的FLASH,適合本設(shè)計。
繼電器電阻網(wǎng)絡(luò)是設(shè)計的關(guān)鍵部分之一,組成此網(wǎng)絡(luò)的方法有二進制編碼方式、8421BCD編碼方式等;電阻的連接方式有串聯(lián)方式、并聯(lián)方式、串并結(jié)合方式。本文的繼電器電阻網(wǎng)絡(luò)采用電阻串聯(lián)方式和8421編碼,即用16個(一個字)精密電阻串聯(lián),再在每個電阻上并聯(lián)一個繼電器開關(guān),通過繼電器開關(guān)的開合來選擇對應(yīng)電阻從而實現(xiàn)任意阻值的組合。繼電器電阻網(wǎng)絡(luò)的連接如圖2所示。
圖2 繼電器電阻網(wǎng)絡(luò)
在圖2中,一共有16個電阻進行串聯(lián)連接組成一路電阻輸出通道,且電路中的電阻值符合如下規(guī)則:按照十進制數(shù)每一位數(shù)為一級;每級由4個二進制數(shù)組成;每4個二進制數(shù)對應(yīng)的電阻值遵從8421的編碼規(guī)則。圖2中K0~K15是和16個電阻一一對應(yīng)的繼電器開關(guān),當K0~K15全部閉合時,輸出的電阻值為0Ω;當K0~K15全部斷開時,輸出的電阻值為16個電阻值之和。
可編程電阻裝置的控制過程為:通過通訊接口接收每一路輸出電阻的設(shè)定值,F(xiàn)PGA處理后生成相應(yīng)的8421碼,經(jīng)繼電器驅(qū)動電路控制繼電器開關(guān),最終得到符合設(shè)定值的電阻。例如通過并行總線通訊收到第一路輸出電阻設(shè)定值為9 630Ω,繼電器開關(guān)閉合和斷開的狀態(tài)分別對應(yīng)“1”和“0”。那么經(jīng)FPGA變換成8421碼后,千位上的數(shù)值“9”對應(yīng)的4個二進制數(shù)為“0110”;百位上的數(shù)值“6”對應(yīng)的4個二進制數(shù)為“1001”;十位上的數(shù)值“3”對應(yīng)的4個二進制數(shù)為“1100”;個位上的數(shù)值“0”對應(yīng)的4個二進制數(shù)為“1111”。那么9630對應(yīng)的二進制數(shù)為“0110,1001,1100,1111”,即閉合K14,K13,K11,K8,K7,K6,K3,K2,K2,K0將對應(yīng)的電阻切除出電路,剩下的電阻串聯(lián)形成最終的電阻值為9 630Ω。通過上述原理可以看出基于FPGA的可編程電阻網(wǎng)絡(luò)具有數(shù)字化、可編程制、電阻值任意組合等特點。
另外,由于輸出電阻的精度要達到1%,因此在選擇電阻時一定要選擇精密電阻,精度在0.1%以上。繼電器的選型也很重要,其接觸電阻小于等于10mΩ的為佳。
本系統(tǒng)采用繼電器開關(guān)對電阻進行切除,但繼電器的控制需要一定的電流驅(qū)動能力,而FPGA的I/O口一般比較小,僅幾個毫安無法直接驅(qū)動,必須在FPGA和繼電器中間加入驅(qū)動電路。繼電器驅(qū)動電路如圖3所示,其采用基于達林頓電路的驅(qū)動方式,而達林頓電路是用兩個晶體管接成一個復(fù)合型晶體管,其電流放大倍數(shù)是兩個晶體管的電流放大倍數(shù)的乘積。因此,通過此驅(qū)動電路可以達到用很小的電流來控制較大電流的目的。
圖3 繼電器驅(qū)動電路
以太網(wǎng)接口電路為以太網(wǎng)通訊提供物理層接口,與MicroBlaze處理器內(nèi)部自帶的MAC(數(shù)據(jù)鏈路層)控制器一起完成一路10/100Mb/s自適應(yīng)全雙工網(wǎng)口功能。該電路包括以太網(wǎng)接口芯片、時鐘電路、脈沖變壓器、ESD防護電路構(gòu)成。PHY芯片采用KSZ8721BLI,為該電路的核心,芯片的配置由FPGA控制單元完成。時鐘電路為以太網(wǎng)口提供基準時鐘,采用25M有源晶振。脈沖變壓器用于數(shù)據(jù)收發(fā)信號的電氣隔離。ESD防護電路則采用TVS二極管陣列實現(xiàn),為以太網(wǎng)口提供ESD保護。
電平轉(zhuǎn)換電路作為FPGA與并行總線之間的橋梁,完成5V電平與3.3V電平信號之間的相互轉(zhuǎn)換。一般外部測試系統(tǒng)使用的并行總線為5V的TTL電平或COMS電平和裝置內(nèi)部的LVTTL(3.3V)電平不能兼容,所以外部測試系統(tǒng)和內(nèi)部系統(tǒng)之間需要增加此電平轉(zhuǎn)換電路。
可編程電阻裝置系統(tǒng)需要5V、3.3V和1.2V3種電源,但是外部輸入電源僅提供5V一種電源,所以必須在系統(tǒng)內(nèi)部進行電源轉(zhuǎn)換??紤]到系統(tǒng)電源效率,先用DC-DC電源模塊將5V轉(zhuǎn)換成3.3V,然后用LDO電源芯片將3.3V轉(zhuǎn)換成1.2V。其中5V供給繼電器和電平轉(zhuǎn)換芯片使用,3.3V供給以太網(wǎng)接口電路和FPGA使用,1.2V作為FPGA的核電源。
另外,可編程電阻裝置作為一種產(chǎn)品必須提供良好的人機接口,將裝置的工作狀態(tài)通過LED顯示出來不可或缺。LED顯示電路將指示系統(tǒng)電源狀態(tài)、FPGA工作狀態(tài)、以太網(wǎng)工作狀態(tài)等信息。
軟件開發(fā)通過Xilinx公司的嵌入式開發(fā)套件(EDK)來實現(xiàn)。根據(jù)電阻裝置的功能需求,需要在FPGA上嵌入MicroBlaze軟核,搭建處理器系統(tǒng)。MicroBlaze是一個基于哈佛結(jié)構(gòu)的RISC高性能32位微處理器,可方便地使用EDK開發(fā)環(huán)境生成,包括處理器功能單元、系統(tǒng)外圍總線結(jié)構(gòu)、終端外設(shè)以及相應(yīng)的地址映射和默認驅(qū)動等基本架構(gòu)的定制,如圖4所示。
圖4 FPGA內(nèi)部功能模塊框圖
系統(tǒng)內(nèi)部結(jié)構(gòu)搭建完成后,即可在EDK自帶的軟件開發(fā)環(huán)境SDK中進行應(yīng)用程序開發(fā)。應(yīng)用程序要實現(xiàn)的主要功能是接受來自并行總線或以太網(wǎng)接口的指令,通過內(nèi)部解析,然后控制繼電器的觸點動作,從而改變電阻網(wǎng)絡(luò)輸出值。軟件的主要流程如圖5所示。
圖5 程序流程圖
可編程電阻裝置的試驗是為了驗證產(chǎn)品能否滿足技術(shù)規(guī)格要求所進行的試驗。它是新產(chǎn)品鑒定中必不可少的一個環(huán)節(jié),只有通過全面的試驗驗證后產(chǎn)品才能投入應(yīng)用。
在試驗過程中利用計算機控制界面輸入16個通道的設(shè)定電阻值并通過以太網(wǎng)通訊傳到可編程電阻裝置,然后用電阻測量儀分別測試16個通道的實際電阻值,最后比較實際電阻值和設(shè)定電阻值并計算相應(yīng)精度。表2僅為通道1的一組試驗數(shù)據(jù),其他通道類似。
為精確測量可編程電阻裝置的精度,試驗必須使用高精度的儀器進行測量而不能使用普通的萬用表。本試驗使用了Agilent的34401A六位半的臺式萬用表進行測量,通過計算可知輸出電阻的精度控制在規(guī)定的范圍內(nèi)。試驗全面考核了可編程電阻裝置的各種功能和各項性能,對其能力、可靠性、穩(wěn)定性進行了有效的評估。
表2 第1通道輸出電阻值試驗數(shù)據(jù)
系統(tǒng)通過引進FPGA來實現(xiàn)提供各種標準阻值的可編程電阻裝置并將外圍的數(shù)字電路都集成在該芯片之中,極大簡化了硬件設(shè)計、提高了系統(tǒng)的可靠性。該裝置已經(jīng)在沈陽地鐵二號線逆變器試驗設(shè)備和深圳地鐵5號線VVVF逆變器測試裝置上成功運行。該裝置能作為一個子系統(tǒng)方便應(yīng)用在大測試系統(tǒng)中,特別適合鐵路產(chǎn)品、地鐵產(chǎn)品以及其他工業(yè)領(lǐng)域的測試系統(tǒng),應(yīng)用前景廣泛。
[1]陳永煌.可編程標準電阻發(fā)生器[J].安徽電機學院學報,2000,15(6):65-67.
[2]陳 慧.單片機控制的可編程標準電阻發(fā)生器[J].安徽電機學院學報,2007(2):32-33.
[3]楊曉慧,楊永健.基于FPGA的EDA/SOPC技術(shù)與VHDL[M].北京:國防工業(yè)出版社,2007.
[4]IEEE Std 1149.1-2001,IEEE Standard Test Access Port and Boundary-Scan Architecture[S].New York.USA:IEEE.2001.