0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)EM9280與光電編碼器的接口及應(yīng)用簡(jiǎn)介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-16 09:48 ? 次閱讀

增量式光電編碼器是工業(yè)自動(dòng)化領(lǐng)域最常用的轉(zhuǎn)速測(cè)量傳感器。針對(duì)轉(zhuǎn)速測(cè)量的應(yīng)用需求,我們?cè)贓M9280的硬件基礎(chǔ)上,設(shè)計(jì)了相應(yīng)的驅(qū)動(dòng)程序并提供標(biāo)準(zhǔn)的流式驅(qū)動(dòng)程序API,為客戶應(yīng)用程序增加轉(zhuǎn)速測(cè)量功能提供了一種快速低成本的實(shí)現(xiàn)途徑。本文主要介紹英創(chuàng)工控主板EM9280與增量式光電旋轉(zhuǎn)編碼器的軟硬件接口。

接口硬件說明

鑒于本應(yīng)用主要是監(jiān)測(cè)轉(zhuǎn)速信號(hào),因此只需要接入增量式光電旋轉(zhuǎn)編碼器的A、B兩相脈沖信號(hào)即可。典型的A、B相信號(hào)的關(guān)系如下圖所示:

上圖的左面是A、B相在電機(jī)順時(shí)針方向旋轉(zhuǎn)時(shí)的波形,其特點(diǎn)是A相脈沖超前B相脈沖90o相位。而圖的右邊是點(diǎn)擊逆時(shí)針旋轉(zhuǎn)時(shí)的波形,此時(shí)B相超前A相90o相位。

一般說來,光電編碼器的A、B相信號(hào)需要經(jīng)過隔離及電平轉(zhuǎn)換電路,方可接入EM9280的相應(yīng)管腳。隔離整形后的A、B相輸出信號(hào)必須是3.3V的TTL信號(hào),與EM9280連接如下表所示:

光電編碼器 EM9280管腳 簡(jiǎn)要說明
A相信號(hào) GPIO23 3.3V TTL電平信號(hào)
B相信號(hào) GPIO22 3.3V TTL電平信號(hào)

由于內(nèi)部電路對(duì)A、B相信號(hào)進(jìn)一步做了去抖動(dòng)處理,因此要求輸入信號(hào)頻率不能高于5KHz,方能保證后續(xù)計(jì)數(shù)結(jié)果的正確。

從應(yīng)用編程的角度看,光電編碼器的基本指標(biāo)包括:(1)每分鐘最大轉(zhuǎn)速,(2)每轉(zhuǎn)輸出的脈沖數(shù),也就是光電編碼器的分辨率。

接口軟件說明

光電編碼轉(zhuǎn)速測(cè)量的驅(qū)動(dòng)程序已內(nèi)置在EM9280的內(nèi)核中,其設(shè)備文件名為”ROT1:”。當(dāng)打開該設(shè)備文件后,EM9280的對(duì)應(yīng)管腳(GPIO23和GPIO22)將自動(dòng)轉(zhuǎn)為相應(yīng)的脈沖輸入狀態(tài)。當(dāng)然這兩個(gè)管腳不能再作為通用GPIO或I2C接口使用。

當(dāng)調(diào)用CreateFile(_T(”ROT1:”), ….)打開設(shè)備文件后,可通過WriteFile設(shè)置光電編碼器的參數(shù),參數(shù)包含在以下數(shù)據(jù)結(jié)構(gòu):

typedef struct _ROTARY_ENCODER_INFO
{
BYTE ucSize; // 填入本結(jié)構(gòu)的字節(jié)數(shù) = 21
DWORD dwMaxRotary; // 正常工況每分鐘旋轉(zhuǎn)圈數(shù),單位為rpm
DWORD dwResolution; // 每轉(zhuǎn)輸出的脈沖數(shù)
DWORD dwAlarmRotaryHigh; // 轉(zhuǎn)速報(bào)警高限值,單位rpm,= 0: 禁止該功能
DWORD dwAlarmRotaryLow; // 轉(zhuǎn)速報(bào)警低限值,單位rpm,= 0: 禁止該功能
DWORD dwPeriod; // 采樣周期,單位為ms,= 0:自動(dòng)設(shè)置采樣周期
} ROTARY_ENCODER_INFO, *PROTARY_ENCODER_INFO;

在上述數(shù)據(jù)結(jié)構(gòu)中,dwMaxRotary設(shè)置的上限是編碼器的最高轉(zhuǎn)速,也可根據(jù)實(shí)際應(yīng)用設(shè)置為正常工況的最高轉(zhuǎn)速。本驅(qū)動(dòng)程序支持的采樣間隔共10檔,分別為1ms、2ms、5ms、10ms、20ms、50ms、100ms、200ms、500ms、1000ms。采樣周期與編碼器參數(shù)的關(guān)系為:

N =(dwMaxRotary×dwResolution / 60)× dwPeriod / 1000

上式中N表示在一個(gè)采樣間隔所采集的脈沖數(shù),當(dāng)N為正時(shí),表示順時(shí)針旋轉(zhuǎn),N為負(fù)數(shù)時(shí),表示逆時(shí)針旋轉(zhuǎn)。在本驅(qū)動(dòng)程序中,采集輸出的數(shù)據(jù)即為N,數(shù)據(jù)類型為帶符號(hào)的16-bit整型量。具體設(shè)置并啟動(dòng)測(cè)量的API調(diào)用為:

ROTARY_ENCODER_INFO Info; //定義結(jié)構(gòu)對(duì)象
DWORD dwReturnWritten; //實(shí)際寫入的字節(jié)數(shù)
//填寫數(shù)據(jù)結(jié)構(gòu)參數(shù)
Info.ucSize = sizeof(ROTARY_ENCODER_INFO);
// … …
WriteFile(hROT, &Info, sizeof(ROTARY_ENCODER_INFO), &dwReturnWritten, 0);

上面調(diào)用中的hROT是CreateFile返回的文件句柄。若dwPeriod設(shè)置為自動(dòng)(= 0),則可通過以下API讀取驅(qū)動(dòng)實(shí)際使用的采樣周期:

ReadFile(hROT, &Info, sizeof(ROTARY_ENCODER_INFO), &dwReturnRead, 0);

若應(yīng)用程序設(shè)置自動(dòng)采樣周期,驅(qū)動(dòng)程序?qū)⒏鶕?jù)光電編碼器的基本參數(shù)(轉(zhuǎn)速和分辨率),選取滿足一定精度的最小采樣周期。

當(dāng)通過WriteFile設(shè)置并啟動(dòng)了轉(zhuǎn)速測(cè)量后,還可通過ReadFile隨時(shí)讀取當(dāng)前轉(zhuǎn)速或截止當(dāng)前時(shí)刻的轉(zhuǎn)速數(shù)據(jù)序列(即轉(zhuǎn)速曲線),具體調(diào)用方式為:

int short DBuf[1024]; // 16-bit 帶符號(hào)整型量數(shù)據(jù)buffer
DWORD dwBufLen; // buffer長(zhǎng)度,必須兩字節(jié)對(duì)齊
DWORD dwReturnRead; // 返回的字節(jié)數(shù)
DWORD dwNbSamples;
dwBufLen = 20 * sizeof(int short); // 采集20個(gè)樣點(diǎn)
dwReturnRead = 0; // 必須置0
ReadFile(hROT, DBuf, dwBufLen, &dwReturnRead, 0);
dwNbSamples = dwReturnRead / sizeof(int short);

注意實(shí)際采集的點(diǎn)數(shù)有可能小于希望采集的點(diǎn)數(shù)。在驅(qū)動(dòng)程序內(nèi)部緩沖的最大數(shù)據(jù)點(diǎn)數(shù)為32K,即32768個(gè)樣點(diǎn)。上面調(diào)用中特別要注意的是dwBufLen必須為兩字節(jié)對(duì)齊,這是因?yàn)?6-bit 帶符號(hào)整型量占用2個(gè)字節(jié)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6081

    瀏覽量

    34942
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    光電編碼器的結(jié)構(gòu)和類型

    光電編碼器,作為一種高精度的傳感,主要通過光電轉(zhuǎn)換原理將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量。它廣泛應(yīng)用于工業(yè)自動(dòng)化、機(jī)器人技術(shù)、數(shù)
    的頭像 發(fā)表于 09-03 10:53 ?146次閱讀

    模塊式編碼器原理 精度與分辨率

    。 模塊式編碼器一般采用光電或磁電原理進(jìn)行工作。在光電編碼器中,光根據(jù)光柵盤的縫隙照射到光電傳感器上,產(chǎn)生脈沖信號(hào);而磁電
    的頭像 發(fā)表于 08-12 11:13 ?157次閱讀
    模塊式<b class='flag-5'>編碼器</b>原理 精度與分辨率

    光電編碼器是什么?它具有什么特征?

    數(shù)字信號(hào)輸出。光柵刻痕一般采用光學(xué)加工技術(shù)進(jìn)行制造,其刻痕數(shù)目越多,測(cè)量時(shí)精度就越高。 光電編碼器主要應(yīng)用在工業(yè)自動(dòng)化,機(jī)床控制等方面,用于測(cè)量轉(zhuǎn)速、角度、位置和位置誤差等重要參數(shù),可以實(shí)現(xiàn)高精度和高速度的測(cè)量。
    的頭像 發(fā)表于 07-26 18:00 ?561次閱讀
    <b class='flag-5'>光電</b><b class='flag-5'>編碼器</b>是什么?它具有什么特征?

    怎么用編碼器控制變頻速度?

    和步驟。 1、編碼器的工作原理 編碼器是一種將機(jī)械位置轉(zhuǎn)換為電信號(hào)的傳感,它能夠?qū)崟r(shí)監(jiān)測(cè)電機(jī)的轉(zhuǎn)速、位置等信息。編碼器的工作原理是利用
    的頭像 發(fā)表于 06-23 15:22 ?1407次閱讀
    怎么用<b class='flag-5'>編碼器</b>控制變頻<b class='flag-5'>器</b>速度?

    怎么用編碼器控制變頻速度

    和步驟。 編碼器的工作原理 編碼器是一種將機(jī)械位置轉(zhuǎn)換為電信號(hào)的傳感,它能夠?qū)崟r(shí)監(jiān)測(cè)電機(jī)的轉(zhuǎn)速、位置等信息。編碼器的工作原理是利用
    的頭像 發(fā)表于 06-17 15:11 ?779次閱讀

    絕對(duì)值編碼器結(jié)構(gòu)簡(jiǎn)介

    絕對(duì)值編碼器結(jié)構(gòu)簡(jiǎn)介 絕對(duì)值編碼器由一個(gè)帶有光柵的碼盤構(gòu)成,碼盤能夠自由旋轉(zhuǎn)。當(dāng)碼盤旋轉(zhuǎn)時(shí),由光電檢測(cè)系統(tǒng)檢測(cè)到的光柵信號(hào)會(huì)發(fā)生變化,這些變化轉(zhuǎn)化為電信號(hào),根據(jù)信號(hào)處理后,可以獲得與碼
    的頭像 發(fā)表于 03-14 09:33 ?736次閱讀
    絕對(duì)值<b class='flag-5'>編碼器</b>結(jié)構(gòu)<b class='flag-5'>簡(jiǎn)介</b>

    編碼器好壞怎么判斷,編碼器原理

    編碼器(Encoder)是將輸入數(shù)據(jù)轉(zhuǎn)化為特定編碼表示的一種技術(shù)。對(duì)于不同類型的編碼器,評(píng)判其好壞可以從多個(gè)方面進(jìn)行考量,包括編碼質(zhì)量、速度
    的頭像 發(fā)表于 01-23 10:58 ?1471次閱讀

    光電編碼器的工作原理 光電編碼器分為哪兩種

    光電編碼器是一種用于測(cè)量和探測(cè)位置、速度和角度的裝置。它利用了光電傳感器編碼盤之間的相互作用,將物理位置轉(zhuǎn)化為數(shù)字信號(hào)。光電
    的頭像 發(fā)表于 01-22 15:39 ?1830次閱讀

    磁性編碼器光電編碼器的比較

    伺服電機(jī)編碼器是一種關(guān)鍵的反饋裝置,用于測(cè)量和控制電機(jī)的轉(zhuǎn)速和位置。在選擇伺服電機(jī)編碼器時(shí),常常面臨一個(gè)選擇:使用磁電編碼器還是光電編碼器。
    的頭像 發(fā)表于 01-18 10:29 ?2411次閱讀

    編碼器種類及原理

    的轉(zhuǎn)速和轉(zhuǎn)向。 霍爾編碼器一般是13線的,就是轉(zhuǎn)一圈每項(xiàng)會(huì)輸出13個(gè)脈沖,這個(gè)精度基本能夠滿足大部分使用場(chǎng)景的要求。 1.2 光電編碼器 打孔碼盤隨電機(jī)進(jìn)行旋轉(zhuǎn)。每當(dāng)光線穿過圓孔,輸出電平就會(huì)改變,如此產(chǎn)生方波,測(cè)量方波的頻率即
    的頭像 發(fā)表于 11-10 15:21 ?2141次閱讀
    <b class='flag-5'>編碼器</b>種類及原理

    磁性編碼器光電編碼器的區(qū)別、特性、優(yōu)勢(shì)

    光電編碼器由光源、碼盤和光電接收組成,其中碼盤是編碼器的重要部分。光電
    發(fā)表于 10-24 10:55 ?2623次閱讀
    磁性<b class='flag-5'>編碼器</b>與<b class='flag-5'>光電</b><b class='flag-5'>編碼器</b>的區(qū)別、特性、優(yōu)勢(shì)

    多圈編碼器和單圈編碼器區(qū)別

    多圈編碼器和單圈編碼器區(qū)別:多圈編碼器一般由兩個(gè)或更多個(gè)同心環(huán)構(gòu)成,每一個(gè)環(huán)上都有一個(gè)光電傳感器和一個(gè)光柵盤。當(dāng)軸旋轉(zhuǎn)時(shí),每一個(gè)光柵盤也會(huì)隨之旋轉(zhuǎn),并且通過
    的頭像 發(fā)表于 10-23 14:14 ?4444次閱讀
    多圈<b class='flag-5'>編碼器</b>和單圈<b class='flag-5'>編碼器</b>區(qū)別

    一體式伺服中的編碼器起什么作用?什么時(shí)候使用多圈絕對(duì)值編碼器?

    在一體式伺服系統(tǒng)中,編碼器起著關(guān)鍵的作用。 它用于測(cè)量伺服電機(jī)的轉(zhuǎn)動(dòng)位置和速度,并將這些信息傳遞給控制編碼器通常采用光電或磁性原理,將
    的頭像 發(fā)表于 10-23 09:50 ?1488次閱讀
    一體式伺服中的<b class='flag-5'>編碼器</b>起什么作用?什么時(shí)候使用多圈絕對(duì)值<b class='flag-5'>編碼器</b>?

    霍爾編碼器光電編碼器有什么區(qū)別?

    霍爾編碼器光電編碼器有什么區(qū)別
    發(fā)表于 10-12 08:04

    編碼器光電編碼器的未來

    15年左右行業(yè)內(nèi)開始掀起風(fēng)磁編碼器替代光電編碼器,而且在22年的時(shí)候國(guó)內(nèi)幾家磁編發(fā)展迅速取得了很大的成績(jī),可是23年開始隨著光電編碼成本的下
    發(fā)表于 09-26 13:03