《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于Verilog HDL的一種絕對值編碼器實時讀出算法
基于Verilog HDL的一種絕對值編碼器實時讀出算法
來源:微型機與應用2013年第3期
岳 振,顧海峰,李范鳴
(中國科學院上海技術物理研究所,上海 200083)
摘要: 針對所設計的絕對值編碼器讀出電路板,用Verilog HDL設計了一種絕對值編碼器實時讀出程序??梢詫⒕幋a器數據讀入FPGA,并將編碼器輸出的普通二進制數據轉換為角度值,最后驅動液晶顯示屏實時讀出角度值。經過測試,該程序能夠穩定運行在電路板上,完全滿足編碼器數據在液晶顯示屏上的實時讀出。本程序基于模塊化設計,易于移植。
Abstract:
Key words :

摘  要: 針對所設計的絕對值編碼器讀出電路板,用Verilog HDL設計了一種絕對值編碼器實時讀出程序。可以將編碼器數據讀入FPGA,并將編碼器輸出的普通二進制數據轉換為角度值,最后驅動液晶顯示屏實時讀出角度值。經過測試,該程序能夠穩定運行在電路板上,完全滿足編碼器數據在液晶顯示屏上的實時讀出。本程序基于模塊化設計,易于移植。
關鍵詞: 線性變換;編碼器;液晶顯示屏驅動;Verilog HDL

 光電編碼器是通過光電轉換將輸出軸上的機械幾何位移量轉換成一串脈沖或數字量的傳感器。在電機伺服控制系統中,它與電機同軸連接,常用來測量電機轉子的速度和位置[1]。近年來,隨著研究室小批量軍工生產的開展,需要批量采購部分絕對值編碼器等外協器件。為方便檢驗采購的編碼器,保障生產任務的按時完成,設計了一個單圈絕對值編碼器實時讀出電路板,其結構如圖1所示。基于此電路板,開發出了一個程序,它能夠實現將絕對值編碼器的數據讀入FPGA,并將數據轉換為角度值,最終驅動液晶顯示屏實時輸出角度值。這使得不需要將編碼器數據輸入到計算機就可以處理轉化為角度值,使用更加方便。程序中用到了線性變換思想,可以應用到其他程序中。電路板中用到的絕對值編碼器是BEI-IDEACOD公司的CHO5系列。液晶顯示屏為3.3 V供電的1602型LCD,FPGA采用的是Xilinx的Spartan-6系列。

1 數據讀入及去抖動
 本文所采用的絕對值編碼器是BEI-IDEACOD公司的CHO5系列,它采用并行輸出模式,有13 bit數據(Data[0]~Data[12]),讀出速度快。由于電動機的旋轉或機械設備的震動,會使編碼器輸出脈沖抖動[2],因此首先對編碼器脈沖進行了去抖動處理。下面的程序實現了數據讀入,并在去抖動后被鎖存在Gray_data中。
 always@(posedge clk_50M)
 begin
 D0<={D0[1:0],Data[0]};
 D1<={D1[1:0],Data[1]};
  ......
 D11<={D11[1:0],Data[11]};
 D12<={D12[1:0],Data[12]};
 end
 always@(posedge clk_50M)
 begin
 Gray_data[0]<=D0[2]&D[1]&D[0];
 Gray_data[1]<=D1[2]&D[1]&D[0];
 ......
 Gray_data[11]<=D11[2]&D[1]&D[0];
 Gray_data[12]<=D12[2]&D[1]&D[0];
 end
2 二進制格雷碼轉普通格雷碼
 上面得到數據Gray_data還是格雷碼,因為絕對值編碼器(并行輸出)采用的是格雷碼二進制輸出。格雷碼的特點是任意兩個相鄰位其輸出格雷碼值只有一位不同[3],這提高了數據輸出的穩定性。假設二進制格雷碼為Gn-1 Gn-2…G2G1G0,其所對應的普通二進制為Bn-1Bn-2…B2B1B0。那么它們最高位之間的對應關系如式(1)所示,其他各位的對應關系如式(2)所示。
 Bn-1=Gn-1(1)
 Bi-1=Gi-1^Bi, i=1,2,…,n-1(2)
 根據式(1)和式(2),格雷碼二進制轉化為普通二進制的Verilog HDL代碼如下:
 always@(posedge Clk_50M)
  begin
  Binary_data[12]=Gray_data[12];
  Binary_data[11]=Binary_data[12]^Gray_data[11];
  Binary_data[10]=Binary_data[11]^Gray_data[10];
   ......
  Binary_data[1]=Binary_data[2]^Gray_data[1];
  Binary_data[0]=Binary_data[1]^Gray_data[0];
  end
 該程序實現了由格雷碼二進制Gray_data向普通二進制Binary_data的轉換。
3 將二進制轉為角度值
 絕對值編碼器的最小精度是由最低位決定的。因為所用的絕對值器是13 bit數據輸出,絕對值編碼器的最低位為1時,對應的角度值如式(3)所示:

 因此,絕對值編碼器的最小精度為min=0.043 945 312 5°。也就是說二進制編碼每加1,度數就應該增加0.043 945 312 5°。為方便在Verilog HDL中進行處理,對這種十進制數進行一個線性變換,將其最小精度值對應二進制min_degree=2′b000000000000011010001100011000010111000101,其實就是十進制數439 453 125對應的二進制數。相對于編碼器輸出的二進制數,將這個二進制數稱為編碼二進制。這樣就對每一個編碼器輸出的13 bit二進制進行了一個線性變化,轉化為對應的編碼二進制Now_degree。其對應關系如式(4)所示,其中的“<<”是左移位運算符。
 Now_degree=Binary_data[0]min_degree+Binary_data[1](min_degree<<1)++Binary_data[11](min_degree<<11)+  Binary_data[12](min_degree<<12)    (4)
 為了得出在每一數據位(百位、十位、一直到小數點后10位)上需要輸出什么數據,需要求出每個數據位權值(即次位數據為1時的值)對應的編碼二進制,數據位權值對應的編碼二進制如表1所示。其中Decimal10_degree指的是小數點后第10位權值所對應的編碼二進制,以此類推,Hundred_degree是百位上權值所對應的編碼二進制。

 通過將Now_degree與各位對應的編碼二進制一一比較,使用狀態機得出具體實現各數據位上的數值:Decimal1Decimal1、Single、Ten、Hundred。具體Verilog HDL代碼如下所示:
always@(posedge Clk_50M)
begin
 4′b0000:
 begin
  if(Buf_degree>=Hundred_degree)
  begin
   Buf_degree=Buf_degree-Hundred_degree;
   Temp_Hundred=Temp_Hundred+1;
   Sta=4′b0000;
    end
  else
  begin
   Sta=4′b0010;
  end
 end
4′b0001:
begin
 if(Buf_degree>=Ten_degree)
 begin
  Buf_degree=Buf_degree-Ten_degree;
  Temp_Ten=Temp_Ten+1;
  Sta=4′b0001;
 end
 else
 begin
  Sta=4′b0010;
 end
end
4′b1100:
begin
 if(Buf_degree>=Decimal10_degree)
 begin
 Buf_degree=Buf_degree-Decimal10_degree;
 Temp_Decimal10=Temp_Decimal10+1;
 Sta=4′b1101;
 end
 else
 begin
 Sta=4′b1101;
 end
  end
4′b1101:begin
  Hundred=Temp_Hundred;
  Ten=Temp_Ten;
  Single=Temp_Single;
  Decimal1=Temp_Decimal1;
  Decimal2=Temp_Decimal2;
  Decimal3=Temp_Decimal3;
  Decimal4=Temp_Decimal4;
  Decimal5=Temp_Decimal5;
  Decimal6=Temp_Decimal6;
  Decimal7=Temp_Decimal7;
  Decimal8=Temp_Decimal8;
  Decimal9=Temp_Decimal9;
  Decimal10=Temp_Decimal10;
  Sta=4′b0000;
  end  
 default:begin
 Sta=4′b0000;
 end
  endcase
 end
 該程序最終實現了將絕對值編碼器輸出的普通二進制數轉化為角度值。例如,一個普通二進制數0100100110010先通過式(3)運算,轉化為Now_degree,然后再通過上述代碼就可以被轉化為103447265625(依次為從百位上的值到小數點后第10位上的值)。這樣就得到了角度值103.447 265 625°。
4 液晶顯示屏驅動
 LCD1602是一個16行2列的液晶顯示屏,因為所需要的數據位(算上小數點)總共14位,所以完全滿足角度值輸出要求。LCD1602內置192種字符,顯示字符時,要先輸入顯示字符地址,即告訴模塊在哪里顯示字符[4]。由于只需要顯示角度,因此只需要知道數字0~9和小數點(.)的地址就可以了,如表2所示。從表2中可以看出,數字地址的前4位都是0011,而后4位正好是數字的二進制表示,這給編寫驅動液晶屏的編碼帶來了很大方便,可以直接采用類似下面的語句輸出:
 Lcd_data<={4′b0011,Hundred};
 這樣就將從百位上的值Hundred到小數點后10位上的值Decimal10依次輸到液晶顯示屏上了。其中的Lcd_data是接LCD1602的8 bit數據位。上面并不是程序中的真正代碼,因為液晶顯示屏驅動需要初始化,且需要嚴格時序控制,程序較長,這里就不給出具體代碼了。

 

 

 把程序下載到開發板后,程序運行正常,角度值被寫到了液晶顯示屏第一行上,如圖3所示。液晶屏動態刷新顯示,程序中設計每隔900 ns讀入一個字符,讀入16個字符共需0.014 4 ms。顯示所有的8 192個狀態(即旋轉一周)最短需要117.964 8 ms,因此能夠實現實時顯示。通過檢驗,該系統運行穩定,能夠獲得穩定的角度值輸出。
 本文用Verilog HDL設計了一種絕對值編碼器實時讀出程序,仿真和在電路板上的測試表明,該絕對值編碼器運行正常。程序采用模塊化編程,一致性較好。其中,在二進制數轉角度值時用到了線性變換的思想,解決了在用Verilog HDL處理角度值輸出問題。使編碼器數據不傳入計算機也可以得到處理,具有較大實用性。
參考文獻
[1] 陳赟,趙興國.基于PCI總線的單圈絕對式光電軸角編碼器實時數據采集系統[J].光子學報,2007,36(3):421-424.
[2] 夏冬梅,孫林.基于CPLD的增量式旋轉編碼器接口電路模塊設計[J].機械制造與自動化,2009(5):156-157,160.
[3] 周政,李菊芬.絕對值編碼器在高爐料車控制中的應用[J].南鋼科技與管理,2006(2):47-48.
[4] 于志贛,劉國平,張旭斌.液晶LCD1602模塊的應用[J].機電技術,2009(3):58-59.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          在线一区日本视频| 香蕉精品999视频一区二区| 亚洲精品美女久久久久| 亚洲娇小video精品| 午夜精品福利在线| 夜夜爽www精品| 久久久水蜜桃av免费网站| 欧美日韩午夜激情| 亚洲国产欧美不卡在线观看| 亚洲电影在线| 亚洲人屁股眼子交8| 亚洲破处大片| 国产偷国产偷亚洲高清97cao| 亚洲美女精品一区| 久久久久久夜精品精品免费| 欧美精品成人| 这里只有精品在线播放| 一区二区三区日韩在线观看| 欧美精品少妇一区二区三区| 亚洲黄色免费| 欧美日韩国产区一| 国产精品视频精品| 美女黄色成人网| 久久资源在线| 欧美在线视频观看免费网站| 欧美日韩国产区| 亚洲小视频在线观看| 国产伦精品一区二区三区视频孕妇| 欧美一区二区精美| 亚洲午夜电影在线观看| 欧美色图首页| 欧美一区二区三区视频| 欧美日本免费一区二区三区| 国产欧美va欧美va香蕉在| 国产欧美日韩在线播放| 一色屋精品视频在线看| 亚洲国产裸拍裸体视频在线观看乱了中文| 中文欧美日韩| 老色鬼久久亚洲一区二区| 一本一本久久a久久精品牛牛影视| 欧美精品一区在线播放| 亚洲国产成人av好男人在线观看| 99精品欧美一区二区三区| 欧美a一区二区| 欧美精品一区二区三区在线播放| 米奇777在线欧美播放| 欧美精品久久久久久| 一区久久精品| 欧美午夜一区二区| 国产精品久久影院| 欧美三级电影精品| 国产婷婷成人久久av免费高清| 久久影视三级福利片| 亚洲午夜激情网页| 亚洲手机在线| 亚洲一区自拍| 欧美日一区二区三区在线观看国产免| 一区二区在线观看av| 欧美性一二三区| 欧美精品九九| 在线观看亚洲一区| 国产亚洲精品bv在线观看| 牛牛精品成人免费视频| 韩国欧美国产1区| 亚洲日韩成人| 看片网站欧美日韩| 亚洲制服丝袜在线| 亚洲第一色在线| 亚洲午夜一区| 在线一区亚洲| 亚洲欧美综合| 欧美精品在线极品| 久久全国免费视频| 国产乱码精品一区二区三区五月婷| 久久天天狠狠| 亚洲国产日韩美| 国产精品国产福利国产秒拍| 欧美吻胸吃奶大尺度电影| 欧美日韩国产页| 欧美区二区三区| 亚洲高清久久| 欧美日韩视频一区二区| 日韩亚洲一区二区| 国产在线乱码一区二区三区| 国产精品高精视频免费| 在线观看欧美视频| 国产午夜精品一区理论片飘花| 韩国美女久久| 亚洲精品在线免费| 136国产福利精品导航| 国产自产v一区二区三区c| 欧美一区深夜视频| 伊人成人开心激情综合网| 在线一区观看| 韩国三级电影久久久久久| 久久久亚洲国产美女国产盗摄| 国产美女精品人人做人人爽| 一区免费观看视频| 久久久久国产一区二区三区| 女女同性女同一区二区三区91| 国产一区导航| 欧美视频免费在线观看| 欧美精品一区二区三区在线看午夜| 国产精品五月天| 欧美日韩在线观看一区二区| 欧美国产第二页| 午夜精品福利一区二区三区av| 亚洲精品黄网在线观看| 久久国产手机看片| 国产精品影院在线观看| 久久久久久久综合色一本| 亚洲一区尤物| 中文av一区特黄| 欧美激情一区二区久久久| 国产欧美欧洲在线观看| 久久av二区| 日韩五码在线| 美女网站在线免费欧美精品| 国产一区在线观看视频| 亚洲午夜激情网页| 欧美激情va永久在线播放| 欧美日韩国产二区| 国产精品视频你懂的| 一区二区毛片| 亚洲一区在线观看免费观看电影高清| 亚洲一区二区三区久久| 亚洲一区日本| 欧美日韩免费观看中文| 亚洲精品国产精品久久清纯直播| 欧美在线免费观看| 国内免费精品永久在线视频| 国产欧美一区二区精品性| 狠狠久久亚洲欧美专区| 欧美影院午夜播放| 久久精品日产第一区二区| 国产一区二区三区黄视频| 欧美亚洲网站| 久久久久国产精品麻豆ai换脸| 欧美精品一区在线发布| 欧美日韩日韩| 国内外成人在线视频| 黄色亚洲大片免费在线观看| 国产精品捆绑调教| 欧美亚洲视频在线观看| 中文精品一区二区三区| 久久久精品一区二区三区| 亚洲三级观看| 国产亚洲一区精品| 亚洲欧美视频在线| 国产亚洲精品福利| 亚洲尤物精选| 国产精品青草久久| 国产精品色网| 久久精品视频一| 一区二区三区波多野结衣在线观看| 一区二区三区回区在观看免费视频| 欧美亚洲综合另类| 免费看av成人| 国产午夜精品麻豆| 黄色成人在线观看| 在线欧美影院| 亚洲日本精品国产第一区| 亚洲国产三级在线| 狠狠色综合播放一区二区| 亚洲欧美bt| 亚洲综合色自拍一区| 欧美夜福利tv在线| 欧美麻豆久久久久久中文| 欧美性理论片在线观看片免费| 亚洲一区二区综合| 欧美一级久久久久久久大片| 在线日韩av| 欧美日韩亚洲免费| 欧美在线黄色| 欧美裸体一区二区三区| 一区二区免费看| 日韩亚洲综合在线| 亚洲愉拍自拍另类高清精品| 欧美久久久久久久久| 久久久久综合网| 欧美日韩免费高清一区色橹橹| 久久免费偷拍视频| 国产精品五区| 欧美日本一道本在线视频| 欧美色欧美亚洲高清在线视频| 欧美aⅴ99久久黑人专区| 亚洲男人影院| 国产日本欧美一区二区三区| 欧美一级在线亚洲天堂| 欧美精品在欧美一区二区少妇| 国产精品午夜电影| 亚洲高清不卡一区| 国语自产偷拍精品视频偷| 国产日韩欧美制服另类| 免费在线观看一区二区| 在线观看一区视频| 亚洲国产精品一区二区www在线| 国产精品久久久久久av福利软件| 欧美黄在线观看| 国产视频亚洲| 欧美sm极限捆绑bd| 国产色产综合产在线视频| 正在播放欧美一区| 国产精品嫩草影院一区二区| 亚洲精品欧美专区| 国产精品jizz在线观看美国| 久久久久国产精品www| 国产精品白丝av嫩草影院| 欧美日韩妖精视频| 欧美精品性视频| 国产一区二区三区四区| 国产午夜精品一区理论片飘花| 亚洲国产乱码最新视频| 国产精品有限公司| 久久xxxx精品视频| 野花国产精品入口| 免费在线看成人av| 国产精品五月天| 国产又爽又黄的激情精品视频| 精品成人a区在线观看| 国产欧美日韩亚洲| 亚洲一区二区三区中文字幕| 国产一区二区三区久久久| 欧美精品18| 久久久成人网| 久久三级福利| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲天堂av图片| 国产精品久久一区二区三区| 亚洲高清视频一区二区| 亚洲欧美一区二区三区在线| 亚洲激情在线观看视频免费| 国产麻豆日韩欧美久久| 国产久一道中文一区| 香蕉成人伊视频在线观看| 国产精品一区在线观看你懂的| 国产精品久久一卡二卡| 国产精品资源在线观看| 香蕉久久夜色精品国产使用方法| 国产一区二区激情| 久久精品在线免费观看| 欧美极品在线视频| 亚洲黄色成人久久久| 国产精品一区二区久久| 国产精品海角社区在线观看| 国外精品视频| 黄色成人av网站| 日韩视频在线观看国产| 亚洲一区二区黄| 国产日韩1区| 欧美性大战久久久久久久蜜臀| 最新亚洲一区| 亚洲视频视频在线| 亚洲国产精品一区二区三区| 亚洲欧美成人综合| 国产日韩欧美综合一区| 欧美另类专区| 欧美久久综合| 午夜亚洲福利在线老司机| 欧美精品啪啪| 国产欧美69| 欧美日韩免费观看一区| 美女免费视频一区| 亚洲欧美另类综合偷拍| 99精品视频免费在线观看| 亚洲视频你懂的| 国产精品日韩欧美| 欧美高清不卡在线| 国产精品欧美日韩一区| 麻豆成人小视频| 欧美一级播放| 亚洲视频每日更新| 性欧美办公室18xxxxhd| 久久精品麻豆| 欧美一级黄色网| 亚洲午夜视频在线| 欧美视频一区二区三区…| 欧美在线播放一区二区| 亚洲国产女人aaa毛片在线| 国产日韩欧美一区二区三区四区| 亚洲一区二区视频在线| 亚洲国产一区二区三区a毛片| 国产精品一级久久久| 欧美日韩亚洲一区| 国产精品二区在线观看| 亚洲制服av| 国产一区二区精品久久| 亚洲国产精品www| 在线成人h网| 一区二区三区欧美成人| 西西裸体人体做爰大胆久久久| 一区二区av在线| 久久不射2019中文字幕| 亚洲夫妻自拍| 亚洲激情小视频| 欧美在线观看视频一区二区三区| 欧美一区二区| 亚洲乱码国产乱码精品精可以看| 欧美成黄导航| 久久久精品一区二区三区| 激情懂色av一区av二区av| 亚洲青色在线| 国产亚洲精品久久久久久| 亚洲手机成人高清视频| 男女av一区三区二区色多| 国产目拍亚洲精品99久久精品| 午夜一区二区三区不卡视频| 国产欧美一区二区三区沐欲| 亚洲精品在线一区二区| 一区视频在线看| 国产精品私拍pans大尺度在线| 欧美高清在线一区| 欧美日本中文| 亚洲日本精品国产第一区| 欧美日韩精品是欧美日韩精品| 久久www免费人成看片高清| 国产精品久久久久毛片软件| 亚洲国产激情| 免费在线播放第一区高清av| 亚洲一区二区三区视频播放| 日韩亚洲成人av在线| 亚洲国产视频a| 国产精品另类一区| 可以看av的网站久久看| 欧美日韩国产色综合一二三四| 精品电影在线观看| 欧美一区视频| 韩国一区电影|