亚洲美女爱爱-夜夜添夜夜添夜夜摸夜夜摸-97碰成人国产免费公开视频-国产午夜大片-www黄av-国产94在线 | 亚洲-亚洲午夜久久久精品一区二区三剧-精品视频亚洲-久久久久国色av∨免费看-黄色片一区二区-69福利视频-国产老头和老头xxxxx免费-99精品视频一区在线观看-日韩三级黄色毛片-亚洲激情图片区-黄色a一级-99re6在线-91九色视频-日本欧美久久久-成人国产精品免费观看

你的位置:首頁 > 電路保護 > 正文

基于STEP FPGA的旋轉編碼器電路驅動

發布時間:2023-11-29 責任編輯:lina

【導讀】旋轉編碼器是用來測量轉速的裝置,因其人性化的操作被用于越來越多的電子設備中,旋轉編碼器有多種分類:以編碼器工作原理可分為:光電式、磁電式和觸點電刷式。以碼盤刻孔方式不同分為:增量式和絕對式兩類。


硬件說明

旋轉編碼器是用來測量轉速的裝置,因其人性化的操作被用于越來越多的電子設備中,旋轉編碼器有多種分類:


以編碼器工作原理可分為:光電式、磁電式和觸點電刷式。

以碼盤刻孔方式不同分為:增量式和絕對式兩類。


關于以上各類編碼器的區別,大家自行查閱資料,這里就不多做介紹了。


我們STEP-BaseBoard底板上集成的EC11的旋轉編碼器就屬于增量式觸電電刷編碼器,其工作原理如下:



如上圖所示,當順時針旋轉時A信號提前B信號90度相位,當逆時針旋轉時B信號提前A信號90度相位,FPGA接收到旋轉編碼器的A、B信號時,可以根據A、B的狀態組合判定編碼器的旋轉方向。


程序設計中我們可以對A、B信號檢測,檢測A信號的邊沿及B信號的狀態,


當A信號上升沿時B信號為低電平,或當A信號下降沿時B信號為高電平,證明當前編碼器為順時針轉動

當A信號上升沿時B信號為高電平,或當A信號下降沿時B信號為低電平,證明當前編碼器為逆時針轉動


本設計實際電路連接如下:


Verilog代碼


// --------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// --------------------------------------------------------------------
// Module: Encoder
// 
// Author: Step
// 
// Description: Driver for rotary encoder

// --------------------------------------------------------------------
// Code Revision History :
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2016/04/20   |Initial ver
// --------------------------------------------------------------------
module Encoder
(
input					clk_in,			//系統時鐘
input					rst_n_in,		//系統復位,低有效
input					key_a,			//旋轉編碼器A管腳
input					key_b,			//旋轉編碼器B管腳
input					key_ok,			//旋轉編碼器D管腳
output	reg				Left_pulse,		//左旋轉脈沖輸出
output	reg				Right_pulse,	//右旋轉脈沖輸出
output					OK_pulse		//按動脈沖輸出
); 
localparam				NUM_500US	=	6_000;	 
reg				[12:0]	cnt;//計數器周期為500us,控制鍵值采樣頻率
always@(posedge clk_in or negedge rst_n_in) begin
	if(!rst_n_in) cnt <= 0;
	else if(cnt >= NUM_500US-1) cnt <= 1'b0;
	else cnt <= cnt + 1'b1;
	end 
	reg				[5:0]	cnt_20ms;
	reg						key_a_r,key_a_r1;
	reg						key_b_r,key_b_r1;
	reg						key_ok_r; 
	//針對A、B、D管腳分別做簡單去抖操作,
	//如果對旋轉編碼器的要求比較高,建議現對旋轉編碼器的輸出做嚴格的消抖處理后再來做旋轉編碼器的驅動
	//對旋轉編碼器的輸入緩存,消除亞穩態同時延時鎖存
	always@(posedge clk_in or negedge rst_n_in) begin
	if(!rst_n_in) begin
		key_a_r		<=	1'b1;
		key_a_r1	<=	1'b1;
		key_b_r		<=	1'b1;
		key_b_r1	<=	1'b1;
		cnt_20ms	<=	1'b1;
		key_ok_r	<=	1'b1;
	end else if(cnt == NUM_500US-1) begin
		key_a_r		<=	key_a;
		key_a_r1	<=	key_a_r;
		key_b_r		<=	key_b;
		key_b_r1	<=	key_b_r;
		if(cnt_20ms >= 6'd40) begin	//對于按鍵D信號還是采用20ms周期采樣的方法,40*500us = 20ms
			cnt_20ms <= 6'd0;
			key_ok_r <= key_ok;
		end else begin 
			cnt_20ms <= cnt_20ms + 1'b1;
			key_ok_r <=	key_ok_r;
		end
	end
	end 
	reg						key_ok_r1;//對按鍵D信號進行延時鎖存
	always@(posedge clk_in or negedge rst_n_in) begin
	if(!rst_n_in) key_ok_r1 <= 1'b1;
	else key_ok_r1 <= key_ok_r;
	end 
	wire	A_state		= key_a_r1 && key_a_r && key_a;	//旋轉編碼器A信號高電平狀態檢測
	wire	B_state		= key_b_r1 && key_b_r && key_b;	//旋轉編碼器B信號高電平狀態檢測
	assign	OK_pulse	= key_ok_r1 && (!key_ok_r);		//旋轉編碼器D信號下降沿檢測 
	reg						A_state_reg;//延時鎖存
	always@(posedge clk_in or negedge rst_n_in) begin
	if(!rst_n_in) A_state_reg <= 1'b1;
	else A_state_reg <= A_state;
	end 
	//旋轉編碼器A信號的上升沿和下降沿檢測
	wire	A_pos	= (!A_state_reg) && A_state;
	wire	A_neg	= A_state_reg && (!A_state); 
	//通過旋轉編碼器A信號的邊沿和B信號的電平狀態的組合判斷旋轉編碼器的操作,并輸出對應的脈沖信號
	always@(posedge clk_in or negedge rst_n_in)begin
	if(!rst_n_in)begin
		Right_pulse <= 1'b0;
		Left_pulse <= 1'b0;
	end else begin
		if(A_pos && B_state) Left_pulse <= 1'b1;	
		else if(A_neg && B_state) Right_pulse <= 1'b1;
		else begin
			Right_pulse <= 1'b0;
			Left_pulse <= 1'b0;
		end
	end
	end 
	endmodule

小結

本節主要為大家講解了旋轉編碼器的工作原理及軟件設計,需要大家掌握的同時自己創建工程,通過整個設計流程,生成FPGA配置文件加載測試。



免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。


推薦閱讀:

有關Matter的十個關鍵問題,你知道正確的答案嗎?

炬芯科技周正宇博士:存內計算是突破AI芯片算力和功耗矛盾的關鍵

如何設計電池充電速度快4倍的安全可穿戴設備

電池冷卻系統對電動汽車如何重要?

如何為ADAS 域控制器構建多攝像頭視覺感知系統?


特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索

關閉

?

關閉

主站蜘蛛池模板: 国产精品久久久久久久竹霞 | 69热国产视频 | 天堂在线免费视频 | 在线丨暗呦小u女国产精品 久久久久欧美国产高潮 | 免费激情片| 欧美人与禽zozzo性伦交 | 99久久精品国产自在首页 | 亚洲精品国产一区二区三区在线观看 | 免费人妻无码不卡中文18禁 | 欧美亚洲综合视频 | 日本老熟妇乱子伦精品 | 免费一二三区 | 欧美高清hd18日本 | 日本aa大片在线播放免费看 | 亚洲va韩国va欧美va | 六姐妹在线观看 | 五月伊人婷婷 | 麻豆精品国产精华精华液好用吗 | jlzzjlzz欧美大全 | 色播av| 国产网红福利视频一区二区 | 肉丝美足丝袜一区二区三区四 | 午夜无码片在线观看影视 | 九九热国产 | 四虎国产精品永久免费观看视频 | 久久久久国精品产熟女久色 | 国产不卡a | 久久99国产乱子伦精品免费 | 国内毛片毛片毛片毛片毛片 | 超碰97在线人人 | 亚洲国产成人久久综合三区 | 女人爽到高潮的免费视频 | 国产超碰人人模人人爽人人喊 | 天堂av一区二区 | 男女晚上黄羞羞视频播放 | 久久婷婷五月综合色国产免费观看 | 国产精品久久久久久日本 | 久久久久88色偷偷 | 亚洲区综合区小说区激情区 | 那里有毛片看 | 国产日韩视频在线观看 | 久久爱水蜜桃69 | 成人亚洲欧美久久久久 | 动漫精品专区一区二区三区 | 久久精品国产首页027007 | 成人字幕网zmw | 伊伊人成亚洲综合人网7777 | 国产精品污www在线观看 | 色一情一乱一伦视频 | 初尝性事后的女的 | 国产久色在线拍揄自揄拍 | 欧美激情猛片xxxⅹ大3 | 亚洲va中文字幕无码久久 | 亚洲国产在一区二区三区 | 99久久国产露脸精品竹菊传媒 | 亚州综合视频 | 亚洲国产成人av人片久久 | 又大又粗又爽免费视频a片 国产999精品成人网站 | 国产老熟女伦老熟妇视频 | 狠狠色噜噜狠狠狠狠av不卡 | 中文人妻av高清一区二区 | 午夜久久久久久 | 国产成人不卡无码免费视频 | 免费看小12萝裸体视频国产 | 国产日产欧产精品精品首页 | 大明星(双性产乳) h | 中文字幕免费不卡二区 | 亚洲色欲色欲天天天www | 又硬又粗进去好爽免费 | 97超碰在线免费观看 | 欧美性性性性性色大片免费的 | 伊人资源 | 中文字幕乱码熟妇五十中出色欲 | 九九久久九九久久 | 无码av中文一区二区三区桃花岛 | 免费色网| 漂亮人妻被黑人久久精品 | 久热这里只有精品6 | 亚洲嫩| 自偷自拍亚洲综合精品 | 日韩专区av | 少妇人妻无码专区视频 | 国产免费一区二区三区在线能观看 | 日本在线视频一区 | 免费丰满少妇毛片高清视频 | 国产超碰97人人做人人爱 | 久久免费网 | 男女啪啪做爰高潮www成人福利 | 天天射天天 | 亚洲精品国产高清一线久久 | 看成年女人午夜毛片免费 | 夜夜嗨av禁果av粉嫩av懂色av | 四川50岁熟妇大白屁股真爽 | 精品乱人码一区二区二区 | 国产精品久久久久一区二区国产 | 少妇的肉体k8经典 | 在线岛国 | 国产成人亚洲综合无码品善网 | 一区二区三区日韩欧美 |