久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡

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

基于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 域控制器構建多攝像頭視覺感知系統?


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

關閉

?

關閉

久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡
最新国产精品| 欧洲激情综合| 99精品综合| 久久激情一区| 国产成人调教视频在线观看| 在线 亚洲欧美在线综合一区| 亚洲成人免费| 日韩国产网站| 亚洲aa在线| 色综合视频一区二区三区日韩 | 视频国产精品| 黄色aa久久| 欧美一区成人| 久久国产精品久久w女人spa| 日韩不卡免费高清视频| 蜜桃久久久久| 黄色网一区二区| 日韩激情av在线| 欧美日韩a区| 国产视频一区欧美| 亚洲欧美综合| 中文亚洲免费| 只有精品亚洲| 亚洲欧美久久精品| 免费在线观看日韩欧美| 蜜臀国产一区| 国产亚洲一级| 日韩欧美三区| 日韩av二区| 日韩电影免费在线观看| 精品国产亚洲一区二区三区大结局 | 蜜桃视频在线观看一区| 日韩一区电影| 亚洲欧洲一区| 久久国产生活片100| 欧美日本一区| 成人国产精品一区二区网站| 激情久久久久久| 亚洲五月综合| 精品伊人久久| 一区二区亚洲精品| 国产日韩欧美一区二区三区在线观看| 久久精品国产亚洲aⅴ| 999久久久免费精品国产| 日韩**一区毛片| 天堂√中文最新版在线| 日韩中文字幕麻豆| 国产精品片aa在线观看| 成人精品视频| 蜜桃一区二区三区在线观看| 国产精品色在线网站| 欧美色图一区| 日韩精品1区2区3区| 涩涩av在线| 日韩国产欧美视频| 欧美一区二区三区高清视频| 国产精品亲子伦av一区二区三区 | 精品亚洲自拍| 日韩毛片网站| 红桃视频国产一区| 青青青国产精品| 日韩av专区| 日本一区二区三区视频在线看| 精品中国亚洲| 中文一区一区三区免费在线观| 久久这里只有| 亚洲深夜福利在线观看| 欧美一区二区三区高清视频| 国产在线不卡一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 蜜桃国内精品久久久久软件9| 色婷婷狠狠五月综合天色拍| 国产精品草草| 中文在线资源| 久久五月天小说| 国产亚洲精品自拍| 中文字幕日韩高清在线| 日本不卡视频在线观看| 亚洲青青久久| 欧美精品中文字幕亚洲专区| 麻豆精品少妇| 国产伊人精品| 日本免费新一区视频| 精品三级av| 国产一区成人| 国产精品入口久久| 麻豆精品蜜桃| 在线视频亚洲| 久久不卡国产精品一区二区| 国产精品毛片久久| 丝袜美腿一区二区三区| 国产精品一二| 欧美日韩国产精品一区二区亚洲| 蜜臀av在线播放一区二区三区| 欧美日韩亚洲一区二区三区在线| 国内一区二区三区| 蜜臀久久久99精品久久久久久| 国产一区日韩| 日韩在线网址| 少妇精品导航| 欧美精品三级在线| 亚洲国产一区二区三区在线播放 | 香蕉人人精品| 精品一区视频| 日韩高清在线观看一区二区| 久久久夜精品| 国产视频一区二区在线播放| 在线日韩欧美| 欧美黑人做爰爽爽爽| 免费日本视频一区| 久久精品伊人| 国产视频一区二| 午夜久久黄色| 国产粉嫩在线观看| 日本vs亚洲vs韩国一区三区二区| 日韩一区自拍| 国产一区二区三区日韩精品| 亚洲18在线| 午夜一级久久| 激情91久久| 久久婷婷一区| 精品欧美一区二区三区在线观看| 欧美日韩va| 国产毛片久久久| 欧美伊人影院| 国产精品一区二区三区av| 日韩二区三区四区| 亚洲日产国产精品| 日韩高清一区在线 | 日韩激情一二三区| 国产精品极品| 国产精品极品在线观看| 97久久亚洲| 国产欧美日韩| 麻豆久久久久久| 精品淫伦v久久水蜜桃| 精品三级av| 久久三级福利| 伊人久久亚洲美女图片| 久久国产88| 日本成人在线一区| 国产精品视频3p| 国产一区二区三区四区| 免费亚洲一区| 国产精品精品| 欧美不卡视频| 亚洲精品大全| 国产极品模特精品一二| 国产精品99视频| 亚洲精品极品少妇16p| 在线精品亚洲| 国产探花在线精品| 国产不卡一区| 亚洲欧美日韩专区| 国产精品毛片久久久| 中文字幕在线免费观看视频| 夜夜嗨网站十八久久| 国产精品igao视频网网址不卡日韩 | 成人在线视频中文字幕| 日韩午夜在线| 成人午夜亚洲| 日韩精品第一| 亚洲成人日韩| 麻豆网站免费在线观看| 中文日韩欧美| 女生影院久久| 国产精品高潮呻吟久久久久| 亚洲韩日在线| 麻豆久久一区| 亚洲欧美网站在线观看| 日韩电影免费网址| 一级欧美视频| 好看的av在线不卡观看| 国产精品久久久久久久免费观看 | 久久激情婷婷| 精品五月天堂| 日韩成人av影视| 一本色道久久精品| 久久精品1区| 色一区二区三区四区| 日本欧美在线| 蜜臀久久久久久久| 在线视频精品| 国产精品蜜芽在线观看| 日韩一区二区三区高清在线观看| 成人免费电影网址| 国产精品久久久久久久久久10秀| 亚洲精品九九| 亚洲精品在线国产| 视频在线观看国产精品| 中文在线不卡| 蜜桃视频第一区免费观看| 亚洲精品在线观看91| 蜜桃视频欧美| 日韩午夜在线| 日精品一区二区三区| 日韩手机在线| 欧美精品二区| 国产精品黄色片| 久久wwww|