李小文,劉偉良,劉麗君
(株洲南車時代電氣股份有限公司 技術中心,湖南株洲412001)
目前工業領域包括機車車輛領域所使用的壓力傳感器、溫度傳感器多采用電阻式傳感器,傳感器的阻值隨著壓力、溫度的變化而變化。而與這些傳感器相連的控制器或指示器在研發調試或生產測試過程中采用阻值和檔位固定的標準電阻來模擬這些傳感器。這樣,在需要更換一種型號的傳感器時必須更換一組標準電阻,因而可操作性差,費工費時。而在某些生產測試中需要同時提供幾組不同阻值的電阻,且需要重復提供使用,這就需要人工不停的調節阻值或不停的切換連線,工作強度大且容易出錯。
針對這些問題,研發一種受計算機控制的可調電阻裝置將變得不可或缺。本文將介紹一種可編程電阻裝置,其通過并行總線或以太網接收來自計算機的指令,然后通過FPGA控制電阻網絡并最終給出期望的電阻值。
可編程電阻裝置主要技術參數見表1。

表1 可編程電阻裝置主要技術參數
可編程電阻裝置系統如圖1所示,包括FPGA控制電路、繼電器電阻網絡、繼電器驅動電路、電平轉換電路、以太網接口電路、LED顯示電路、電源轉換電路等功能電路。

圖1 可編程電阻裝置系統方框圖
FPGA控制電路是整個系統的核心,利用FPGA眾多的GPIO接口控制相應繼電器的開合并最終得到不同的電阻值。另外,還可以在FPGA中嵌入一個MicroBlaze處理器實現并行總線通訊和以太網通訊功能以及控制LED顯示電路。一般數字電路的主控器多采用單片機、DSP、ARM進行控制,本系統中采用FPGA作為主控器具有如下明顯優勢:①擁有眾多I/O管腳,且每個管腳可以任意配置,非常適合多繼電器控制的場合;②使用硬件編程語言(HDL)將直接面對底層硬件,具有極大的靈活性和通用性;③擁有豐富的邏輯資源對并行總線的地址解碼具有顯而易見的優勢;④FPGA遵循IEEE 1149.1標準,具有邊界掃描的功能,極大方便了硬件測試并減少了測試成本、降低維護難度。
現階段市場上主要生產FPGA的廠家有Xilinx、Altera和Lattice,本系統采用Xilinx公司Spartan3AN系列的器件,型號為XC3S700AN-4FG484I。該FPGA器件資源豐富,有372個I/O管腳并內置8M的FLASH,適合本設計。
繼電器電阻網絡是設計的關鍵部分之一,組成此網絡的方法有二進制編碼方式、8421BCD編碼方式等;電阻的連接方式有串聯方式、并聯方式、串并結合方式。本文的繼電器電阻網絡采用電阻串聯方式和8421編碼,即用16個(一個字)精密電阻串聯,再在每個電阻上并聯一個繼電器開關,通過繼電器開關的開合來選擇對應電阻從而實現任意阻值的組合。繼電器電阻網絡的連接如圖2所示。

圖2 繼電器電阻網絡
在圖2中,一共有16個電阻進行串聯連接組成一路電阻輸出通道,且電路中的電阻值符合如下規則:按照十進制數每一位數為一級;每級由4個二進制數組成;每4個二進制數對應的電阻值遵從8421的編碼規則。圖2中K0~K15是和16個電阻一一對應的繼電器開關,當K0~K15全部閉合時,輸出的電阻值為0Ω;當K0~K15全部斷開時,輸出的電阻值為16個電阻值之和。
可編程電阻裝置的控制過程為:通過通訊接口接收每一路輸出電阻的設定值,FPGA處理后生成相應的8421碼,經繼電器驅動電路控制繼電器開關,最終得到符合設定值的電阻。例如通過并行總線通訊收到第一路輸出電阻設定值為9 630Ω,繼電器開關閉合和斷開的狀態分別對應“1”和“0”。那么經FPGA變換成8421碼后,千位上的數值“9”對應的4個二進制數為“0110”;百位上的數值“6”對應的4個二進制數為“1001”;十位上的數值“3”對應的4個二進制數為“1100”;個位上的數值“0”對應的4個二進制數為“1111”。那么9630對應的二進制數為“0110,1001,1100,1111”,即閉合K14,K13,K11,K8,K7,K6,K3,K2,K2,K0將對應的電阻切除出電路,剩下的電阻串聯形成最終的電阻值為9 630Ω。通過上述原理可以看出基于FPGA的可編程電阻網絡具有數字化、可編程制、電阻值任意組合等特點。
另外,由于輸出電阻的精度要達到1%,因此在選擇電阻時一定要選擇精密電阻,精度在0.1%以上。繼電器的選型也很重要,其接觸電阻小于等于10mΩ的為佳。
本系統采用繼電器開關對電阻進行切除,但繼電器的控制需要一定的電流驅動能力,而FPGA的I/O口一般比較小,僅幾個毫安無法直接驅動,必須在FPGA和繼電器中間加入驅動電路。繼電器驅動電路如圖3所示,其采用基于達林頓電路的驅動方式,而達林頓電路是用兩個晶體管接成一個復合型晶體管,其電流放大倍數是兩個晶體管的電流放大倍數的乘積。因此,通過此驅動電路可以達到用很小的電流來控制較大電流的目的。

圖3 繼電器驅動電路
以太網接口電路為以太網通訊提供物理層接口,與MicroBlaze處理器內部自帶的MAC(數據鏈路層)控制器一起完成一路10/100Mb/s自適應全雙工網口功能。該電路包括以太網接口芯片、時鐘電路、脈沖變壓器、ESD防護電路構成。PHY芯片采用KSZ8721BLI,為該電路的核心,芯片的配置由FPGA控制單元完成。時鐘電路為以太網口提供基準時鐘,采用25M有源晶振。脈沖變壓器用于數據收發信號的電氣隔離。ESD防護電路則采用TVS二極管陣列實現,為以太網口提供ESD保護。
電平轉換電路作為FPGA與并行總線之間的橋梁,完成5V電平與3.3V電平信號之間的相互轉換。一般外部測試系統使用的并行總線為5V的TTL電平或COMS電平和裝置內部的LVTTL(3.3V)電平不能兼容,所以外部測試系統和內部系統之間需要增加此電平轉換電路。
可編程電阻裝置系統需要5V、3.3V和1.2V3種電源,但是外部輸入電源僅提供5V一種電源,所以必須在系統內部進行電源轉換。考慮到系統電源效率,先用DC-DC電源模塊將5V轉換成3.3V,然后用LDO電源芯片將3.3V轉換成1.2V。其中5V供給繼電器和電平轉換芯片使用,3.3V供給以太網接口電路和FPGA使用,1.2V作為FPGA的核電源。
另外,可編程電阻裝置作為一種產品必須提供良好的人機接口,將裝置的工作狀態通過LED顯示出來不可或缺。LED顯示電路將指示系統電源狀態、FPGA工作狀態、以太網工作狀態等信息。
軟件開發通過Xilinx公司的嵌入式開發套件(EDK)來實現。根據電阻裝置的功能需求,需要在FPGA上嵌入MicroBlaze軟核,搭建處理器系統。MicroBlaze是一個基于哈佛結構的RISC高性能32位微處理器,可方便地使用EDK開發環境生成,包括處理器功能單元、系統外圍總線結構、終端外設以及相應的地址映射和默認驅動等基本架構的定制,如圖4所示。

圖4 FPGA內部功能模塊框圖
系統內部結構搭建完成后,即可在EDK自帶的軟件開發環境SDK中進行應用程序開發。應用程序要實現的主要功能是接受來自并行總線或以太網接口的指令,通過內部解析,然后控制繼電器的觸點動作,從而改變電阻網絡輸出值。軟件的主要流程如圖5所示。

圖5 程序流程圖
可編程電阻裝置的試驗是為了驗證產品能否滿足技術規格要求所進行的試驗。它是新產品鑒定中必不可少的一個環節,只有通過全面的試驗驗證后產品才能投入應用。
在試驗過程中利用計算機控制界面輸入16個通道的設定電阻值并通過以太網通訊傳到可編程電阻裝置,然后用電阻測量儀分別測試16個通道的實際電阻值,最后比較實際電阻值和設定電阻值并計算相應精度。表2僅為通道1的一組試驗數據,其他通道類似。
為精確測量可編程電阻裝置的精度,試驗必須使用高精度的儀器進行測量而不能使用普通的萬用表。本試驗使用了Agilent的34401A六位半的臺式萬用表進行測量,通過計算可知輸出電阻的精度控制在規定的范圍內。試驗全面考核了可編程電阻裝置的各種功能和各項性能,對其能力、可靠性、穩定性進行了有效的評估。

表2 第1通道輸出電阻值試驗數據
系統通過引進FPGA來實現提供各種標準阻值的可編程電阻裝置并將外圍的數字電路都集成在該芯片之中,極大簡化了硬件設計、提高了系統的可靠性。該裝置已經在沈陽地鐵二號線逆變器試驗設備和深圳地鐵5號線VVVF逆變器測試裝置上成功運行。該裝置能作為一個子系統方便應用在大測試系統中,特別適合鐵路產品、地鐵產品以及其他工業領域的測試系統,應用前景廣泛。
[1]陳永煌.可編程標準電阻發生器[J].安徽電機學院學報,2000,15(6):65-67.
[2]陳 慧.單片機控制的可編程標準電阻發生器[J].安徽電機學院學報,2007(2):32-33.
[3]楊曉慧,楊永健.基于FPGA的EDA/SOPC技術與VHDL[M].北京:國防工業出版社,2007.
[4]IEEE Std 1149.1-2001,IEEE Standard Test Access Port and Boundary-Scan Architecture[S].New York.USA:IEEE.2001.