新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA技術高頻疲勞試驗機控制器的設計

        基于FPGA技術高頻疲勞試驗機控制器的設計

        作者: 時間:2017-06-04 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201706/348102.htm

        1簡介

        現場可編程門陣列(FieldProgrammable Gate Array)是美國Xilinx公司于1984年首先開發的一種通用型用戶可編程器件。既具有門陣列器件的高集成度和通用性,又有可編程邏輯器件用戶可編程的靈活性。

        由可編程邏輯單元陣列、布線資源和可編程的I/O單元陣列構成,一個FPGA包含豐富的邏輯門、寄存器和I/O資源。一片FPGA芯片就可以實現數百片甚至更多個標準數字集成電路所實現的系統。

        FPGA的結構靈活,其邏輯單元、可編程內部連線和I/O單元都可以由用戶編程,可以實現任何邏輯功能,滿足各種設計需求。其速度快,功耗低,通用性強,特別適用于復雜系統的設計。使用FPGA還可以實現動態配置、在線系統重構(可以在系統運行的不同時刻,按需要改變電路的功能,使系統具備多種空間相關或時間相關的任務)及硬件軟化、軟件硬化等功能。

        鑒于控制規模比較大,功能復雜,故我們在研制過程中,在傳統試驗機的基礎上,通過FPGA技術及微機技術兩者的結合,來全面提升系統的性能,使整機的工作效率、控制精度和電氣系統可靠性得到了提高,且操作方便而又不乏技術的先進性。

        2控制器結構及內容

        本控制系統的總體結構,下位機是整個控制器的核心。用于實現產生控制試驗機的控制信號和數據,反饋信號的處理,以及和上位機進行數據通信。其控制功能強弱也直接影響著整個控制器性能的好壞。圖中波形發生器是用于激勵和保持電磁激振器的振動。在此,波形發生器應輸出正弦波。

        3系統采取的技術路線

        系統在實現技術參數、功能要求的基礎上,結合目前微機及FPGA等微電子技術,采取了以下主要技術路線:

        (1)下位機是系統控制的核心。由于本系統控制規模相對比較復雜,控制對象具一定特殊性(如高頻率,高負荷等),且牽涉到控制電機,故不采用傳統的8位機,而是考慮采用功能相對更強大,速度更快的16位機—87C196系列。

        (2)激振器要求輸入波形為正弦波,試驗的頻率范圍為80~250Hz.另外,系統還應該能夠進行掃頻試驗。在掃頻試驗中,系統以1Hz為步長進行掃頻(粗調),再在粗調的基礎上進行微調(以0.1Hz為步長),以確定系統的共振點。可以看出,能產生精度為0.1Hz波形的電路模塊是整個系統設計中很關鍵的一部分,也是設計難點之一。這部分如通過或其它專用芯片則不能或很難實現。系統采用FPGA作波形發生器,見圖1中虛線框所示部分。這樣做的優點是:高速(一般芯片頻率至少幾十兆,甚至上百兆)且能滿足上述精度要求;采用數字電路實現,抗干擾性好;能把其它邏輯電路也集成至該芯片中,省掉了許多分立元件,同時也減少了體積;能夠按需改變波形。

        (3)直流調速通過變壓實現,而變壓則通過采用晶閘管的可控整流器來完成。通過輸出可變電壓給移相觸發器,觸發器輸出可控導通角給可控整流器,實現電機速度的調整。有利于提高系統的可靠性。

        (4)系統部分重要信號用數字濾波器濾波,該數字濾波器用FPGA實現。與軟件濾波相比,此方法有利于改善信號的濾波效果,且濾波速度得到很大提高。

        4部分模塊設計

        FPGA部分可劃分成兩個模塊,其中正弦波發生器模塊又可細分成幾個小模塊,如圖2所示。

        4.1鎖存器設計

        鎖存器用來將送來的頻率數據鎖存穩定在FPGA中,可以用片內的鎖存器資源(或用觸發器)來構成。

        4.2運算器設計

        運算器是用來將頻率數據轉換成正弦波點與點之間的定時數據。該運算器實際上最終可轉換成一除法器。該除法器描述如下:

        —VECTOR(WIDTH—R-1 DOWNTO 0));

        END COMPONENT;

        上述描述實際上是調用了Altera公司的參數化模塊庫(LPM)中的一個元件。元件描述后,只要在程序中用Generic map和port map語句映射該元件即可。所要注意的是,上述口信號remainder是numerator和denominator模運算的結果,所以應將remainder與denominator/2相比較,實際結果應在比較的基礎上決定加1還是不加1.

        4.3設計

        根據運算器傳來的定時數據定時。它可以通過對基準時鐘計數來實現,當定時時間一到,就觸發波形的輸出。

        設計中采用了兩個計數模塊來同時計數,一個模塊計數時鐘的上邊沿,而另一模塊則計數時鐘的下邊沿。這樣相當于使系統時鐘頻率提高了一倍,充分利用了系統資源。

        4.4波形輸出

        波形輸出是當滿足定時要求觸發后就輸出此時的正弦值,多個點的觸發輸出就形成了一個正弦波。

        為節省芯片資源,這部分求某時正弦值的功能不采用構造運算器來算出正弦值,而是利用查表結構。象Xilinx公司FPGA芯片則可以利用CLB塊來配置RAM或直接利用Logiblox來生成。還有象Altera公司的Flex10k系列就用查找表結構(LUT)來構建片內ROM或RAM.在工程文件中創建RAM或ROM塊以后,可以通過將各時刻的正弦值(以ASCII字符表示)寫進MIF文件(初始化文件)中,從而存儲在RAM或ROM塊中。在定時器觸發后生成該時的地址,通過查詢該RAM或ROM塊就可輸出該時得正弦值。


        5芯片的具體實現

        本系統的FPGA采用Altera公司的Flex10k系列芯片。芯片利用開發軟件Max+plusII將各個模塊(圖1虛線框部分)用VHDL語言描述并輸入,由軟件自動編譯、綜合、布局和布線,生成編程用的數據文件,加載到FPGA的配置存儲單元。對FPGA芯片進行配置可有多種模式,由于本系統中有單片機,所以采用串行從模式,省掉了用一片EPROM來存儲編程數據。當系統上電時,單片機自動將存在其內部的配置數據送到FPGA內部存儲單元中。

        這個技術基本上多運用于電路方面。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 静宁县| 北票市| 河间市| 东丰县| 鞍山市| 台东县| 天长市| 宁夏| 诏安县| 石柱| 永定县| 江口县| 琼结县| 汾阳市| 通化市| 南通市| 安徽省| 鄂尔多斯市| 遂川县| 克东县| 鲜城| 定州市| 乌拉特后旗| 赤城县| 民乐县| 南丹县| 洪泽县| 东乌珠穆沁旗| 山阴县| 武隆县| 津南区| 徐闻县| 六安市| 砚山县| 崇文区| 徐州市| 兰考县| 岳池县| 古浪县| 台中市| 杭锦后旗|