• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于國產FPGA的增量式光電編碼器測速電路研究

      2016-09-07 05:52:23馬玲芝
      計算機測量與控制 2016年1期
      關鍵詞:浮點差值增量

      馬玲芝,李 鴻

      (長沙理工大學 電氣與信息工程學院,長沙 410114)

      ?

      基于國產FPGA的增量式光電編碼器測速電路研究

      馬玲芝,李鴻

      (長沙理工大學 電氣與信息工程學院,長沙410114)

      利用增量式光電編碼器測量電機轉速對伺服控制有著至關重要的作用;針對于目前測速系統(tǒng)對頻率、實時性等方面的要求,并結合國產FPGA(field-programmable gate array可編程邏輯器件)芯片的優(yōu)勢,提出利用嵌有ARM(acorn rISC machine)內核的國產FPGA芯片CME_M7作為硬件開發(fā)平臺,并采用Verilog HDL(HDL: hardware description language硬件描述語言)語言編程的方法,設計了一種基于國產FPGA的增量式光電編碼器測量電機轉速的測速電路;經過實驗驗證,證明了所設計的測速電路精度高、測速范圍寬、實時性好、抗干擾能力強。

      國產FPGA;增量式光電編碼器;轉速;硬件描述語言

      0 引言

      在伺服運動控制系統(tǒng)中,一般都采用增量式光電編碼器測量電機轉速。隨著增量式光電編碼器技術的不斷發(fā)展,采用增量式編碼器測量電機轉速的方法日新月異。現(xiàn)今各種伺服控制系統(tǒng)對速度精度、速度平穩(wěn)性、時間延遲等性能指標要求不斷提高,使得設計精度高、分辨率高、響應快的測速系統(tǒng)十分迫切。增量式光電編碼器測速原理比較簡單,現(xiàn)一般有以下幾種常用的辦法:M法、T法和M/T法。M法在高速區(qū)域測量效果好,低速測量區(qū)域效果差。與之相反,T法是低速區(qū)域測量效果好,高速區(qū)域測量效果差。M/T法則是結合了T法和M法的優(yōu)點,測速范圍寬,但是其檢測時間過于固定,不夠靈活[1]。在此基礎之上,提出了變M/T法的測速方法,該法測量時間和所測光電脈沖個數(shù)均隨轉速的變化而變化,但測量時間一直等于整數(shù)個所測光電脈沖數(shù)。隨著FPGA技術的不斷更新,我國自主研發(fā)生產的FPGA在低端應用領域有著性價比高、自主性強等優(yōu)勢,因此使得利用硬件描述語言在國產FPGA上實現(xiàn)電機測速電路成為可能,所以本文采用國產FPGA+ARM的片上系統(tǒng)架構,通過改進的變M/T法,并用Verilog HDL語言進行片上編程,來實現(xiàn)在國產FPGA芯片上對電機轉速進行測量的電路設計。

      1 測速原理

      利用增量式光電編碼器對電機的轉速進行測量,需要求得在時間t內所發(fā)生相應的光電脈沖個數(shù)n,通過編碼器的刻線數(shù)N,就能計算出編碼器的轉速r(°/s),計算公式為式(1):

      (1)

      要想計算電機轉速,必須得知道在一段具體的時間t內所發(fā)生的脈沖個數(shù)n。由于不同的轉速r下,所發(fā)生的脈沖個數(shù)n在固定的時間t內是不一樣的。當時間t太短,而轉速r過慢,則在時間t內有可能不會發(fā)生脈沖,自然就測不出轉速;如果將時間t拉長,雖然能測量更低的轉速,但是會嚴重影響系統(tǒng)的響應程度。因此必須得依據(jù)轉速的快慢,來自動調整時間t,使時間t在電機轉速快時短,在電機轉速慢時適當?shù)拈L一些(由相對性可知,轉速慢時,轉速變化率小,響應時間適當加長并不會對系統(tǒng)的快速響應性產生太大的影響),這樣既可以測量較寬范圍的轉速,也滿足了系統(tǒng)的快速響應性,這就需要使用變M/T法,具體見圖1所示的變M/T法,當中光電脈沖個數(shù)m1和時間Ta成反比例,這是因為高速時,在短時間內已經發(fā)生了足夠的光電脈沖數(shù)來計算轉速,而低速時,為了盡可能的縮短時間Ta,則盡量在能測得轉速的情況下減少測量的脈沖數(shù),整個測速過程中將光電編碼器的A、B兩相脈沖進行四倍頻計數(shù),這樣在所能測的最慢轉速情況下,可以將時間Ta縮短為原來的1/4,既能對電機進行低速狀態(tài)的測量,也節(jié)約了時間,同時對編碼器的A、B兩相脈沖進行四倍頻計數(shù)也提高了測速精度。

      圖1 變M/T法原理圖

      2 硬件構成

      2.1國產FPGA

      設計中采用的國產FPGA芯片是北京京微雅格公司的山系列芯片CME-M7,CME-M7集成了主流的ARM Cortex-M3內核和高性能FPGA,F(xiàn)PGA的運行頻率最高可達200 MHz,它的邏輯單元高達12 K,ARM Cortex-M3內核最大頻率可達300 MHz,此款芯片的處理器采用嵌入ARM硬核處理器的方式,與其他嵌軟核處理器方式的FPGA芯片相比,可以節(jié)約大量的FPGA邏輯單元。該M7芯片的編程軟件是Primace,Primace是京微雅格公司獨立開發(fā)的一款專門針對于該公司FPGA芯片的編程軟件,自主性強,編程語言可以使用較為易學易用的、簡潔靈活的Verilog HDL語言,同時在芯片內部FPGA邏輯和ARM邏輯共享存儲器的地址,這使得FPGA和ARM進行數(shù)據(jù)交流更為直接方便。

      2.2測速系統(tǒng)硬件結構

      整體測速電路的編程思路是在FPGA里面進行光電脈沖的采集、脈沖邊沿計數(shù)和時間的提取、數(shù)據(jù)轉換和運算,以及位置和轉速等信息的存儲,利用ARM內核調用所存儲的轉速等信息數(shù)據(jù)以供后續(xù)控制程序使用,具體的整體硬件構成如圖2所示,電機帶動增量編碼器轉動,增量編碼器產生的光電脈沖被M7內部的增量編碼器接口所采集,經過FPGA的內部邏輯計算,將增量式編碼器的位置和轉速等信息存入EMB (Embedded Memory Block嵌入式存儲塊)中,ARM內核通過對EMB進行讀操作,將增量編碼器的位置和轉速讀出以供使用,同時可將位置和轉速通過串口在PC機打印出來進行觀察。

      圖2 增量式編碼器測速電路硬件結構圖

      3 程序算法

      3.1FPGA程序模塊介紹

      FPGA程序設計采用分模塊的設計方法,具體模塊劃分如圖3所示。

      1)采集脈沖邊沿、獲取脈沖邊沿差值和時間模塊:

      此模塊用于采集A、B兩相的脈沖的上升沿和下降沿并計算沿數(shù)和判斷方向,并依據(jù)改進的變M/T法取得脈沖邊沿的差值和相應差值所花的時鐘計數(shù)值。

      2)采集脈沖邊沿、獲取脈沖邊沿差值和時鐘計數(shù)值模塊頂層:

      此模塊為采集脈沖邊沿、獲取脈沖邊沿差值和時鐘計數(shù)值模塊的頂層,方便其他模塊調用。

      3)時鐘計數(shù)值和差值浮點格式轉換和轉速計算模塊:

      此模塊先將采集脈沖邊沿、獲取脈沖邊沿差值和時鐘計數(shù)值模塊所發(fā)來的脈沖邊沿差值和相應差值所花的時鐘計數(shù)值按照IEEE(Institute of Electrical and Electronics Engineers國際電子電器工程師協(xié)會)轉換成浮點格式的數(shù)據(jù),然后調用浮點乘法計算模塊和浮點除法計算模塊進行浮點格式的轉速計算。

      圖3 增量式編碼器FPGA測速電路模塊組成

      4)EMB存儲數(shù)據(jù)模塊:

      此模塊通過例化的EMB模塊,將前面模塊所采集到的脈沖邊沿個數(shù)、脈沖邊沿差值、相應差值所花的時鐘計數(shù)值和計算出的轉速(脈沖/秒)存入不同的地址當中,之后ARM可在相應的地址當中讀取。

      5)例化模塊:

      此模塊是從軟件平臺primace里面直接例化的模塊,包括例化ARM內核、例化系統(tǒng)時鐘模塊(此程序為ARM內核配置200 MHz的時鐘,為FPGA配置了20 MHz的時鐘)、例化浮點除法計算模塊和浮點乘法計算模塊。

      6)整體程序綜合頂層模塊:

      此模塊是整個工程的綜合模塊,聯(lián)系工程中不同文件,并處理FPGA芯片內部和外界的連接。

      3.2程序流程

      步驟1:判斷方向。

      程序中將采集的A相和B相分別表示為變量phase_A和phase_B,分別檢測phase_A的上升沿L2H_Sig_A和下降沿H2L_Sig_A,以及phase_B的上升沿L2H_Sig_B和下降沿H2L_Sig_B,用來判斷電機轉動的方向direction。

      步驟2:脈沖邊沿計數(shù)。

      通過變量L2H_Sig_A、H2L_Sig_A、L2H_Sig_B、H2L_Sig_B來對編碼器光電脈沖進行四倍頻計數(shù),同時判斷direction的值來確定count_edge的計數(shù)方向,正轉則加,反轉則減。此四倍頻計數(shù)方法可在一定范圍內消除電機低速轉動時的干擾脈沖[2],因為干擾脈沖一般出現(xiàn)在A相或是B相的同一電平之下,這樣程序會分別判斷一次正轉和一次反轉,脈沖邊沿計數(shù)值會一加一減從而抵消。

      步驟3:脈沖邊沿差值和時鐘計數(shù)值的提取。

      依據(jù)電機轉速的快慢,提取脈沖邊沿差值和相對應的時鐘計數(shù)值,并提供給后續(xù)模塊使用。

      步驟4:脈沖邊沿差值和時鐘計數(shù)值的浮點格式轉換。

      由于需要在FPGA里面將轉速計算出來,這就涉及到了FPGA的浮點計算問題,本設計采用的編程軟件Primace7.0帶有Floating Point IP核,調用此核能夠進行浮點數(shù)的算術運算,但是其傳進去的參數(shù)必須得是32位的浮點數(shù)格式的形式,所以得先將脈沖邊沿差值和時鐘計數(shù)值轉換成浮點格式后再送入Floating Point IP核進行計算,從而算出轉速。按照IEEE制定的IEEE浮點數(shù)表示法可以將一個整數(shù)轉換為32位的單精度浮點數(shù)格式,如圖4所示。

      圖4 IEEE浮點數(shù)表示法

      其中符號位為第31位,當脈沖邊沿差值小于0則為1,反之則為0;階碼則為需轉換數(shù)據(jù)data的指數(shù)域;尾數(shù)則為需轉換數(shù)據(jù)data的二進制形式并去掉除符號位的最左側的1之后所剩下的數(shù)[3]。即可以總結下面的公式(2)。

      (2)

      其中:1.M表示在M的二進制數(shù)據(jù)形式的最左側補上一個1后的數(shù)。通過上述方法在FPGA編程實現(xiàn)脈沖邊沿差值和相對應的時鐘計數(shù)值的單精度浮點格式轉換。

      步驟5:轉速計算。

      通過調用Floating Point IP核中的浮點乘法模塊和浮點除法模塊來進行浮點乘除法,再依據(jù)脈沖邊沿差值、時鐘計數(shù)值,最終就可以FPGA中算出電機轉速speed(脈沖/秒)。

      圖5 程序流程圖

      步驟6:數(shù)據(jù)的存儲與傳出。

      首先調用存儲單元EMB的IP核,然后可將脈沖邊沿計數(shù)值和轉速speed等存儲起來。由于在芯片CME-M7里面ARM和FPGA共享EMB的地址,所以ARM可以很方便的對FPGA存儲在EMB里的數(shù)據(jù)進行讀取,并將轉速乘以當量轉換成度每秒(°/s),并通過串口傳出至PC機顯示。整體程序流程圖見圖5。

      4 實驗驗證與分析

      為了驗證所設計的測速電路,本文使用多功能脈沖信號源來產生模擬每圈60 000線束的增量式光電編碼器的相位相差90°的A相脈沖和B相脈沖,并將多功能脈沖信號源接入所設計的基于國產FPGA 的增量式光電編碼器測速電路系統(tǒng)中進行對比測速驗證。表1記錄了在不同的轉速下進行對比測速驗證的實驗數(shù)據(jù)。表1中,p/s表示每秒發(fā)生的脈沖數(shù),即等同于單位Hz;實際值表示多功能脈沖信號源發(fā)出的模擬的A相脈沖和B相脈沖的頻率;測量值表示的是所設計的測速電路所測量的脈沖頻率;測量時間表示不同轉速下測量速度所需的測量時間。

      從表1的數(shù)據(jù)可以知道,實驗時分別在250 kHz~5 Hz的脈沖頻率之間取了17組不同的頻率進行測量,并從正反轉兩個方向進行了實驗驗證。當給所設計的測速電路輸入不同的脈沖頻率時,測速時間隨著脈沖頻率的增加而縮短,隨著脈沖頻率的減小而加長,當脈沖頻率在250 kHz~5 Hz之間變動時,對應的測速時間范圍為100 μs~50 ms之間變動,其中測速時間可以依據(jù)具體伺服控制系統(tǒng)進行調整,以滿足響應時間的要求;測速誤差的最大值為0.443 1%,最小值為0%;上述結果說明本文設計的測速電路得到了實現(xiàn),同時也證明了測速電路測速范圍寬、測量精度高等特點。

      5 結束語

      本設計研究針對于目前伺服測速系統(tǒng)的發(fā)展方向--更高的采樣頻率、更簡潔的算法和更強的實時性,采用了一種改進的變M/T測速方法,并利用該方法在國產FPGA上實現(xiàn)了基于增量式光電編碼器的測量電機轉速的電路,同時,在國產FPGA里面也實現(xiàn)了浮點運算,使得可以直接從FPGA里面得到編碼器的轉速,這在很大程度上提高了測速電路的抗干擾能力,同時整個測速電路都是設計在FPGA邏輯里面的方式也大大提高了測速的實時性,而且所使用的FPGA芯片和FPGA編程軟件完全是我國自主研發(fā)生產的,這增強了測速系統(tǒng)的自主性。經實驗驗證,所設計的測速電路能夠滿足現(xiàn)今伺服系統(tǒng)的對于測速方面的精度和動態(tài)響應速度的要求。

      表1 實驗對比結果

      [1]文曉艷,等.增量式編碼器測速的典型問題分析及應對策略[J].電工技術學報,2012,27(2):185-189.

      [2] 李漢.一種光電編碼器抗振動測速的方法[J] .電氣傳動,2010,40(6):78-80.

      [3] 符茂松.32 位 IEEE 和 IBM 浮點數(shù)結構及其轉換方法[J] .工程地球物理學報,2011,8(6):759-766.

      [4] 李大英.基于FPGA的電機測速電路設計與實現(xiàn)[J] .機械設計與制造,2011,12(3):78-80.

      [5] 梅榮軍,等.基于FPGA的增量式編碼器信號采集系統(tǒng)[J] .測控技術,2014,33(7):54-60.

      [6] 王俊山,等.基于FPGA的增量型光電編碼器抗抖動二倍頻電路設計[J] .現(xiàn)代電子技術2010,9:157-159.

      [7] 夏宇聞,等.Verilog數(shù)字系統(tǒng)設計教程[M] .北京:北京航天航空大學出版社,2005.

      Research of Speed Measuring Circuit of Incremental Photoelectric Encoder Based on Domestic FPGA

      Ma Lingzhi,Li Hong

      (College of Electrical and Information Engineering, Changsha University of Science & Technology,Changsha410114, China)

      It is very important to measure the speed of motor by using the incremental photoelectric encoder for the servo motion system. According to the requirement of frequency and real-time of the speed measuring system and combining with China’s own production of FPGA(Field-Programmable Gate Array)chip, it proposed a method by using domestic FPGA chip-CME M7 which embed ARM kernel as the developing platform of the hardware and Verilog HDL to programme to design a speed measuring circuit of motor of incremental photoelectric encoder based on domestic FPGA. Through the verification of the experiment, it is proved that the design of the speed measuring circuit is high precision, wide speed range, good real-time performance and strong anti-interference ability.

      domestic FPGA; incremental photoelectric encoder; speed; verilog HDL

      2015-07-18;

      2015-08-27。

      國家自然科學基金2010年資助項目(61074018)。

      馬玲芝(1989-),女,湖南郴州人,碩士研究生,主要從事電路與系統(tǒng)、測量與控制、FPGA應用方向的研究。

      李鴻(1962-),男,浙江人,教授,博士,主要從事非電量電測和機電一體化、儀表及數(shù)控領域方向的研究。

      1671-4598(2016)01-0233-04

      10.16526/j.cnki.11-4762/tp.2016.01.064

      TP274.2

      A

      猜你喜歡
      浮點差值增量
      提質和增量之間的“辯證”
      當代陜西(2022年6期)2022-04-19 12:12:22
      LEO星座增強GNSS PPP模糊度浮點解與固定解性能評估
      差值法巧求剛體轉動慣量
      “價增量減”型應用題點撥
      基于浮點DSP的鐵路FSK信號檢測
      枳殼及其炮制品色差值與化學成分的相關性
      中成藥(2017年6期)2017-06-13 07:30:35
      基于均衡增量近鄰查詢的位置隱私保護方法
      電信科學(2016年9期)2016-06-15 20:27:25
      基于FPGA的浮點FIR濾波器設計
      德州儀器(TI)發(fā)布了一對32位增量-累加模數(shù)轉換器(ADC):ADS1262和ADS126
      改進的Goldschmidt雙精度浮點除法器
      南郑县| 江华| 远安县| 灌阳县| 合作市| 汕头市| 昂仁县| 平舆县| 盐津县| 辽宁省| 绍兴县| 稻城县| 黄冈市| 巫溪县| 宁城县| 德阳市| 集贤县| 万宁市| 确山县| 调兵山市| 资兴市| 合山市| 尉氏县| 克什克腾旗| 永嘉县| 抚州市| 胶州市| 南充市| 名山县| 石渠县| 土默特左旗| 石门县| 大同市| 健康| 吉木萨尔县| 文成县| 呼玛县| 宣化县| 万山特区| 罗定市| 神木县|