基于FPGA技術(shù)高頻疲勞試驗機控制器的設計
1簡(jiǎn)介
現場(chǎng)可編程門(mén)陣列FPGA(FieldProgrammable Gate Array)是美國Xilinx公司于1984年首先開(kāi)發(fā)的一種通用型用戶(hù)可編程器件。FPGA既具有門(mén)陣列器件的高集成度和通用性,又有可編程邏輯器件用戶(hù)可編程的靈活性。
FPGA由可編程邏輯單元陣列、布線(xiàn)資源和可編程的I/O單元陣列構成,一個(gè)FPGA包含豐富的邏輯門(mén)、寄存器和I/O資源。一片FPGA芯片就可以實(shí)現數百片甚至更多個(gè)標準數字集成電路所實(shí)現的系統。
FPGA的結構靈活,其邏輯單元、可編程內部連線(xiàn)和I/O單元都可以由用戶(hù)編程,可以實(shí)現任何邏輯功能,滿(mǎn)足各種設計需求。其速度快,功耗低,通用性強,特別適用于復雜系統的設計。使用FPGA還可以實(shí)現動(dòng)態(tài)配置、在線(xiàn)系統重構(可以在系統運行的不同時(shí)刻,按需要改變電路的功能,使系統具備多種空間相關(guān)或時(shí)間相關(guān)的任務(wù))及硬件軟化、軟件硬化等功能。
鑒于高頻疲勞試驗機控制器控制規模比較大,功能復雜,故我們在研制過(guò)程中,在傳統試驗機控制器的基礎上,通過(guò)FPGA技術(shù)及微機技術(shù)兩者的結合,來(lái)全面提升控制器系統的性能,使整機的工作效率、控制精度和電氣系統可靠性得到了提高,且操作方便而又不乏技術(shù)的先進(jìn)性。
2控制器結構及內容
本控制系統的總體結構,下位機是整個(gè)高頻疲勞試驗機控制器的核心。用于實(shí)現產(chǎn)生控制試驗機的控制信號和數據,反饋信號的處理,以及和上位機進(jìn)行數據通信。其控制功能強弱也直接影響著(zhù)整個(gè)控制器性能的好壞。圖中波形發(fā)生器是用于激勵和保持電磁激振器的振動(dòng)。在此,波形發(fā)生器應輸出正弦波。
3系統采取的技術(shù)路線(xiàn)
系統在實(shí)現技術(shù)參數、功能要求的基礎上,結合目前微機及FPGA等微電子技術(shù),采取了以下主要技術(shù)路線(xiàn):
(1)下位機是系統控制的核心。由于本系統控制規模相對比較復雜,控制對象具一定特殊性(如高頻率,高負荷等),且牽涉到控制電機,故不采用傳統的8位機,而是考慮采用功能相對更強大,速度更快的16位機—87C196系列。
(2)激振器要求輸入波形為正弦波,試驗的頻率范圍為80~250Hz.另外,系統還應該能夠進(jìn)行掃頻試驗。在掃頻試驗中,系統以1Hz為步長(cháng)進(jìn)行掃頻(粗調),再在粗調的基礎上進(jìn)行微調(以0.1Hz為步長(cháng)),以確定系統的共振點(diǎn)??梢钥闯?,能產(chǎn)生精度為0.1Hz波形的電路模塊是整個(gè)系統設計中很關(guān)鍵的一部分,也是設計難點(diǎn)之一。這部分如通過(guò)單片機或其它專(zhuān)用芯片則不能或很難實(shí)現。系統采用FPGA作波形發(fā)生器,見(jiàn)圖1中虛線(xiàn)框所示部分。這樣做的優(yōu)點(diǎn)是:高速(一般芯片頻率至少幾十兆,甚至上百兆)且能滿(mǎn)足上述精度要求;采用數字電路實(shí)現,抗干擾性好;能把其它邏輯電路也集成至該芯片中,省掉了許多分立元件,同時(shí)也減少了體積;能夠按需改變波形。
(3)直流調速通過(guò)變壓實(shí)現,而變壓則通過(guò)采用晶閘管的可控整流器來(lái)完成。通過(guò)單片機輸出可變電壓給移相觸發(fā)器,觸發(fā)器輸出可控導通角給可控整流器,實(shí)現電機速度的調整。有利于提高系統的可靠性。
(4)系統部分重要信號用數字濾波器濾波,該數字濾波器用FPGA實(shí)現。與軟件濾波相比,此方法有利于改善信號的濾波效果,且濾波速度得到很大提高。
4部分模塊設計
FPGA部分可劃分成兩個(gè)模塊,其中正弦波發(fā)生器模塊又可細分成幾個(gè)小模塊,如圖2所示。
4.1鎖存器設計
鎖存器用來(lái)將單片機送來(lái)的頻率數據鎖存穩定在FPGA中,可以用片內的鎖存器資源(或用觸發(fā)器)來(lái)構成。
4.2運算器設計
運算器是用來(lái)將頻率數據轉換成正弦波點(diǎn)與點(diǎn)之間的定時(shí)數據。該運算器實(shí)際上最終可轉換成一除法器。該除法器描述如下:
—VECTOR(WIDTH—R-1 DOWNTO 0));
END COMPONENT;
上述描述實(shí)際上是調用了Altera公司的參數化模塊庫(LPM)中的一個(gè)元件。元件描述后,只要在程序中用Generic map和port map語(yǔ)句映射該元件即可。所要注意的是,上述口信號remainder是numerator和denominator模運算的結果,所以應將remainder與denominator/2相比較,實(shí)際結果應在比較的基礎上決定加1還是不加1.
4.3定時(shí)器設計
定時(shí)器根據運算器傳來(lái)的定時(shí)數據定時(shí)。它可以通過(guò)對基準時(shí)鐘計數來(lái)實(shí)現,當定時(shí)時(shí)間一到,就觸發(fā)波形的輸出。
設計中采用了兩個(gè)計數模塊來(lái)同時(shí)計數,一個(gè)模塊計數時(shí)鐘的上邊沿,而另一模塊則計數時(shí)鐘的下邊沿。這樣相當于使系統時(shí)鐘頻率提高了一倍,充分利用了系統資源。
4.4波形輸出
波形輸出是當定時(shí)器滿(mǎn)足定時(shí)要求觸發(fā)后就輸出此時(shí)的正弦值,多個(gè)點(diǎn)的觸發(fā)輸出就形成了一個(gè)正弦波。
為節省芯片資源,這部分求某時(shí)正弦值的功能不采用構造運算器來(lái)算出正弦值,而是利用查表結構。象Xilinx公司FPGA芯片則可以利用CLB塊來(lái)配置RAM或直接利用Logiblox來(lái)生成。還有象Altera公司的Flex10k系列就用查找表結構(LUT)來(lái)構建片內ROM或RAM.在工程文件中創(chuàng )建RAM或ROM塊以后,可以通過(guò)將各時(shí)刻的正弦值(以ASCII字符表示)寫(xiě)進(jìn)MIF文件(初始化文件)中,從而存儲在RAM或ROM塊中。在定時(shí)器觸發(fā)后生成該時(shí)的地址,通過(guò)查詢(xún)該RAM或ROM塊就可輸出該時(shí)得正弦值。
5芯片的具體實(shí)現
本系統的FPGA采用Altera公司的Flex10k系列芯片。芯片利用開(kāi)發(fā)軟件Max+plusII將各個(gè)模塊(圖1虛線(xiàn)框部分)用VHDL語(yǔ)言描述并輸入,由軟件自動(dòng)編譯、綜合、布局和布線(xiàn),生成編程用的數據文件,加載到FPGA的配置存儲單元。對FPGA芯片進(jìn)行配置可有多種模式,由于本系統中有單片機,所以采用串行從模式,省掉了用一片EPROM來(lái)存儲編程數據。當系統上電時(shí),單片機自動(dòng)將存在其內部的配置數據送到FPGA內部存儲單元中。
這個(gè)技術(shù)基本上多運用于電路方面。
評論