基于FPGA的可編程電阻的設計
摘要:現在市場上的各種電阻和電阻箱有不足之處,不能滿足一些研發(fā)場所的要求,為了解決這一問題,本文介紹一種基于FPGA的可直接輸入阻值提供不同電阻的設計方法。FPGA通過控制繼電器的吸合,從而確定與其并聯的電阻的接入與否,最后通過電阻的疊加得到不同阻值。介紹了該設計的工作原理及軟件設計思想,并有部分仿真結果。這種設計使用8421編碼原則和硬件描述語言,減少了一些元器件的使用。相比于市場上的產品,其穩(wěn)定性更高,抗干擾性更強,體積也更小,同時,它的操作更簡便,顯示更直觀。
關鍵詞:現場可編程門陣列;可編程;任意電阻
0 引言
電阻幾乎是所有電路中必不可少的部分,常見的也有很多不同阻值的電阻,然而在一些電路中同一位置不同時刻還需要不同阻值,在一些精度要求不高的場合,可用滑動變阻器來實現,但是我們不能確定其具體阻值。隨著技術的進一步發(fā)展,為了滿足教學研某些場合的需要,阻值確定并可調的電阻箱應運而生。電阻箱提供阻值的原理是通過電阻的串并聯得到的不同阻值,因而用到的電阻數量較多,精度也不夠高,而且還需要對所需電阻的每一位數選擇相應的檔位,比較麻煩,也不夠直觀。而在一些生產應用中(如產品校驗)需同時提供幾組不同電阻,且要重復提供(如做產品老化檢測實驗),這就需要將該阻值記錄下來,而以前的電阻箱都不具備記憶功能,不能滿足要求。
本文介紹了用FPGA來實現控制電阻的提供,用軟件的方式來設計硬件,設計過程中可用有關軟件進行各種仿真,同時整個系統可集成在一個芯片上,體積小、功耗低,可靠性高,又因為其內部有存儲單元,所以能夠滿足上述的“記憶”功能。
1 硬件電路
基于FPOA的可編程電阻系統的硬件系統(如圖1所示)主要由以下幾個功能模塊組成:
1.1 主控制器FPGA
FPGA(本設計中選用的是CyeloneII系列)控制中心是整個設計的核心,主要控制實現對系統的鍵盤輸入進行處理,并根據輸入的信息轉換成輸出數據,控制對應的繼電器的吸合,從而得到不同的阻值。
以往可編程網絡的主控制器有采用數字電路控制的,也有采用單片機控制的,本電路采用FPGA控制。EPGA是近幾年來出現并被廣泛應用的大規(guī)模集成電路器件,它的特點是直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測試和實現快捷,開發(fā)效率高,成本低,上市時間短,技術維護簡單,工作可靠性好等。因而用來設計可編程電阻其靈活性更好。
目前市場上主要生產FPGA產品的公司有Lattice、Xilinx、Altera。在教學過程中,一般使用Altera公司生產的FLEX系列和 Cyclone系列較多。鑒于產品的成本和通用性考慮,本實驗中采用CycloneII,它是第二代低成本FPGA系列,它所擁有的獨特性能有:NiosII嵌入式處理
器支持,嵌入式18*18數字信號處理乘法器,中等容量的片內存儲器(能夠滿足本設計的要求)中等速度的I/O引腳和存儲器接口。在性價比上更適合本設計,所以在本設計中選用此系列。
1.2 鍵盤輸入電路
鍵盤輸入電路主要實現輸出電阻值大小的設定,本設計中采用的4*4簡易鍵盤輸入即可滿足要求,可提供簡單明了的數字鍵和功能鍵共16個鍵,包括:數字輸入鍵:數字鍵0~9,按下數字鍵,輸入一個數字,就可在對應的數碼管上顯示。
功能鍵:“電阻1”、“電阻2”本設計可以同時提供兩組電阻,可以選擇電阻1,也可以選擇電阻2,提供一組電阻,也可以電阻1、電阻2同時選擇提供兩組電阻。
“存儲”:每輸入完一個數字后按一下存儲鍵,以便能夠將幾個數據存儲下來,運行后將按數據存儲的先后順序及預置的時間工作,循環(huán)提供數據。
“運行”:此鍵作為存儲完數據后的啟動鍵。
“停止”:停止提供電阻。
“復位”:可作為修改數據時用,按此鍵后可以使以前存儲的數據都清零,然后重置一組數據。
1.3 繼電器電阻網絡
電阻網絡。其原理圖如圖2所示,從圖中可以看出,開關的閉合決定與其對應的電阻的接入與否,本設計中采用8421編碼原理控制提各阻值。
本設計所供用的電阻要精確到0.1 Ω,所以,此電阻網絡所使用的電阻都是精密電阻。這里我們以提供電阻阻值在1500Ω以內的電阻為例來說明。此電阻網絡采用串聯的方式來實現,8421編碼方式只要控制相應的繼電器,將其對應的精密電阻短接就可以實現。以1500 Ω以內電阻為例,只需16個電阻就可以滿足要求。通過控制繼電器J1至J16的斷開或閉合,其對應的電阻就會接入或斷開,最后接入的電阻串聯相加就得輸出的電阻值。
如通過鍵盤輸入一個預置值,如果輸入的數值為545.7Ω, 輸出的阻值大小就可以表示R=400+100+40+4+1+0.4+0.2+0.1。即只需將這些電阻需要接入,相應的繼電器J1、J2、J3、J5、 J7、J11、J13、J15要斷開,其余的繼電器則閉合,對應的二進制代碼則為(0101 0100 0101 0111)B,通過此列可以看出用16個電阻就可以實現1500Ω以內的精度可達到O.1 Ω的任何電阻,使用電阻數量小,通過程序來控制電阻的接入,體積更小,同時,維護起來也更加方便,如果需要大于1500Ω的電阻,同樣可以根據此原理來增加電阻(如8000、4000、2000、1000等),因為此設計中同時提供兩個電阻,因而還要16個同樣的電阻,原理同上(根據不同場合如要提供三組或三組以上的電阻只需相應增加即可)。
評論