在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用SPI總線設計正交編碼器計數器

科技觀察員 ? 來源:allaboutcircuits ? 作者:Muhammad Shahbaz ? 2022-04-27 16:26 ? 次閱讀

本應用筆記描述了一個SLG46140V設計,該設計實現了一個帶有正交編碼器輸入的16位加/減計數器。GreenPAK設備減輕了主機的實時輸入要求,并允許輕松連接多個編碼器。

旋轉編碼器廣泛用于感測軸和機器零件的方向,以及作為用戶界面輸入設備。大多數旋轉編碼器輸出一對正交信號,將軸運動編碼為一系列脈沖。

為了跟蹤編碼器位置,必須對每個脈沖進行計數。通常,中斷引腳用于此目的,計數在軟件中實現。許多微控制器包括專門的外設來讀取正交信號。然而,基于中斷的計數限制了最大脈沖速率并占用了CPU時間,而專用外設限制了可連接到單個微控制器的編碼器數量。此外,在非實時平臺(例如PC)上,這兩個選項都不可用。

本應用筆記演示了SLG46140VGreenPAK器件如何實現具有16位向上/向下計數器和SPI總線接口的正交編碼器接口。主機應用程序可以按所需的時間間隔讀取編碼器的當前位置,而輔助設備會跟蹤每個輸入脈沖。此外,SPI總線允許鏈接多個設備以將靈活數量的編碼器連接到單個處理器。

高級設計

本應用筆記設計具有來自編碼器的三個輸入信號:A、B和Z。信號A和B是正交信號,它們以00、10、11、01格雷碼序列交替切換狀態。信號Z是一個可選的編碼器零索引輸入,它將計數器復位到零位置。

poYBAGJo_iyAfjXeAAB7cnRmg04561.png

圖1.一個編碼器設備的系統連接。

所描述的SPI由nCS片選信號、SCK串行時鐘和MISO(主機輸入,從機輸出)串行輸出組成。片選低電平有效,當nCS為高電平時,總線可以被其他SPI設備使用。本應用筆記中使用的SPI傳輸格式為CPOL=0,CPHA=1,這意味著SCK在空閑時處于低電平狀態,并且在下降沿采樣數據。

pYYBAGJo_i2APfX4AADSSbvoKJA103.png

圖2.具有多個編碼器的系統連接。

使用Chain_IN和Chain_OUT信號可以將多個設備鏈接在同一總線上,這些信號在內部延遲16個SCK時鐘周期的數據。因此,主機接收的前16位將來自第一個編碼器,接下來的16位來自第二個編碼器,依此類推。所有編碼器將在第一個SCK時鐘沿同時進行采樣。

GreenPAK設備內部的實現由三部分組成:

正交編碼器輸入模塊:將正交信號轉換為計數器的KEEP/UP信號對,并將信號與內部時鐘同步。

16位向上/向下計數器:兩個鏈接的8位計數器對編碼器脈沖進行計數并向SPI模塊提供并行數據。

SPI總線:SPI鎖存并行數據,并在nCS有效時串行輸出。

正交輸入模塊和計數器由內部環形振蕩器時鐘運行,而SPI由SPI主控從外部提供時鐘。以下部分包含每個組件的詳細說明。

正交編碼器輸入模塊

來自編碼器的信號最初進入一對延遲塊。它們既可用作毛刺濾波器又可用作同步器,確保其輸出信號僅在時鐘上升沿發生變化。延遲值設置為最小值,給出2個時鐘周期的延遲??蛇x地,對于噪聲信號,可以增加延遲以濾除來自輸入的任何毛刺脈沖,但這種過濾也會限制最大脈沖速率。

延遲塊的輸出被傳遞到一對D觸發器,它們保留前一個時鐘周期的信號狀態。然后將當前狀態和先前狀態與4輸入XNOR門進行比較。如果任一信號發生變化,XNOR門將為KEEP信號輸出0值,使計數器模塊開始計數。

poYBAGJo_i6ARezBAADxXBty2og786.png

圖3.正交信號輸入模塊

通過比較當前狀態At和Bt與先前狀態Bt-1來檢測編碼器方向,如表1所示。檢測邏輯已編程到3位LUT0組件,該組件向計數器輸出UP信號。

表1.信號狀態的方向檢測

pYYBAGJo_i-AOUyZAAA1CUE0gkY373.jpg

一些編碼器有一個額外的零位傳感器,可用于在重新啟動后找到系統的絕對位置。此Z信號上的高電平會將計數器重置為零。如果不需要此功能,可以不連接信號,因為輸入引腳已配置下拉電阻

16位加/減計數器

SLG46140V器件包含兩個計數器/有限狀態機模塊,具有與SPI模塊的并行數據連接。它們中的每一個都可以輸出一個8位的計數,并且通過鏈接兩個計數器可以制成一個16位的計數器。計數器在任一方向從0x0000環繞到0xFFFF。

pYYBAGJo_jCAVbHjAAA59EcQTJE418.png

圖4.Z輸入信號的邏輯

默認情況下,CNT3塊從可配置的起始值向下計數到0或向上到255,然后以配置的值重新啟動。通過將起始值設置為255可以實現向下計數的回繞,但要同時獲得向上計數的回繞,則需要額外的邏輯。

pYYBAGJo_jGAHqsOAADC4PiM2BU515.png

圖5.低8位計數器的執行和環繞邏輯

當計數器處于其極值時,計數器的OUT信號激活。當KEEP=0和OUT=1時,LUT0輸出一個進位脈沖到下一個計數器以增加它的計數。同時,如果UP=1,LUT1將激活復位信號。DFF2對復位信號進行采樣,以便計數器在時鐘上升沿同步復位。

來自編碼器Z輸入的CLEAR信號連接到DFF2的異步置位輸入,這會導致計數器立即復位。計數器在下一個時鐘上升沿繼續計數。

poYBAGJo_jKAXXBQAACxfw-m41Q007.png

圖6.高8位計數器的環繞邏輯

第二個計數器級的連接方式類似,因為該級不需要單獨的進位信號。這三個信號都連接到一個LUT組件。當UP=1、KEEP=0和OUT=1時,它將計數器重置為零。

SPI總線

SLG46140和SLG46620中的并串轉換器接口作為現成的功能塊提供。在nCS變低后,該塊在第一個SCK邊沿鎖存來自兩個計數器的并行數據,然后逐位移出數據。

外部產生的SCK信號與計數器使用的內部時鐘不同步,因此兩個模塊需要以某種方式同步,以便在它們之間可靠地傳輸數據。SPI模塊提供了一個內置選擇,用于在發生數據傳輸時將FSM時鐘門控兩個時鐘周期。在此應用中,不希望對FSM時鐘進行門控,因為它可能會在時鐘被禁用時導致脈沖丟失。相反,DFF5用于將外部SCK信號與內部環形振蕩器時鐘同步。這確保了當FSM數據穩定時,SPI模塊看到的SCK時鐘沿發生在環形振蕩器時鐘沿。

在本應用筆記中,基本SPI通過數據鏈接邏輯進行了擴展。這允許在同一SPI總線上輕松連接多個編碼器,并同時對它們的計數器值進行采樣。

鏈接功能基于管道延遲功能塊。這個塊有一個由16個觸發器組成的鏈,它們將在時鐘信號的每個上升沿移入和移出一位。來自鏈中前一個設備的MISO信號連接到輸入,輸出到下一個設備。

由于MISO信號直接連接到硬件的12號引腳,Chain_OUT必須在外部與其并聯。輸出使能邏輯確保一次只有一個引腳處于活動狀態。

pYYBAGJo_jOAK0djAADx_WWwxSk367.png

圖7.SPI和數據鏈邏輯

對于前16個時鐘周期,在nCS變為低電平后,每個設備保持MISO啟用并輸出其計數器值。同時,管道延遲模塊存儲從鏈中第N-1個設備接收到的信號。

16個時鐘周期后,SPIINTR輸出變為高電平以指示傳輸結束。LUT2或門然后使DFF4觸發器變高,禁用PIN12并啟用PIN13。PipeDelay模塊移出第N-1個值,同時移入第N-2個值。這一直持續到所有值都被讀取并且主機產生一個nCS信號,這將DFF4重置回其初始狀態。

poYBAGJo_jSAHBv2AACqbtJqilg389.png

圖8.使用兩個設備捕獲SPI信號

圖8顯示了一個SPI通信示例,其中設備首先發送自己的16位數據值,然后從鏈中的下一個設備轉發16位值。

時鐘速率限制

延遲和計數器模塊由內部環形振蕩器提供時鐘,該振蕩器以大約27MHz的頻率運行,具有1、4、8或16的可選分頻器。最大時鐘速率取決于邏輯元件的延遲,并隨電源電壓。

設計中最長的邏輯鏈從輸入DLY0/1塊通過4位LUT0變化檢測器、2位LUT0執行邏輯和3位LUT1環繞邏輯到FSM塊。這些模塊的延遲值在SLG46140數據表中定義,并在表2中進行了總結。由于布線延遲和部件差異,理論上可能的6.8MHz頻率不適用于GreenPAK輸入電壓范圍的最低端(VDD=1.8V),而使用3.4MHz時鐘。

表2.模塊延遲和最大工作頻率

pYYBAGJo_jWAY4u-AABtdiMOCI8533.jpg

工作頻率將限制正交輸入的最小脈沖寬度。輸入毛刺濾波器通過至少三個時鐘周期長的脈沖并過濾掉任何低于兩個時鐘周期的脈沖。

測試結果

以兩種方式測試功能。使用AMT203旋轉編碼器的正交輸出進行手動測試,以驗證兩個方向的計數是否按預期工作并跟隨編碼器運動。

使用模擬正交信號的微控制器生成的信號源驗證了最大脈沖率和計數可靠性。微控制器被配置為以給定的步進頻率輸出8000步。正交信號中的脈沖寬度是步距的兩倍,因為一次只有一個信號改變狀態。當通過SPI總線讀取數據時,該步驟系列重復了幾次。僅當每次都正確計算所有步驟時,才將測試用例標記為成功。

表3總結了測試結果。正如預期的那樣,短于兩個時鐘周期的脈沖會被毛刺濾波器拒絕并導致計數為零。當在每個電壓下接近最小脈沖寬度工作時,會有一些丟失的步驟。這可能是由不對稱的上升/下降延遲引起的,這可能會在某些脈沖通過邏輯時稍微縮短一些脈沖。

結論

介紹了一種將正交編碼器連接到SPI總線的設計。該設計可以按原樣使用,也可以將各個組件重新用于不同的應用。正交輸入部分可以修改為直接輸出適合不同設備的信號,例如步進驅動器。16位加/減計數器模塊為測量多種脈沖源提供了有用的工具。可鏈接的SPI可用于同時從多個GreenPAK設備進行采樣和讀取,數據源可以來自計數器或ADC。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計數器
    +關注

    關注

    32

    文章

    2281

    瀏覽量

    95782
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1743

    瀏覽量

    93863
  • SPI總線
    +關注

    關注

    4

    文章

    104

    瀏覽量

    27876
收藏 人收藏

    評論

    相關推薦

    請問有沒有計數器輸出的計數值是串行數據(最好是SCI總線

    我要用計數器計數編碼器的脈沖,單片機的IO口不夠,但有還有SCI或SPI總線接口!
    發表于 02-07 11:06

    基于dsPIC單片機的正交計數器設計 求大神給思路

    本設計利用dsPIC單片機技術和正交編碼技術,設計一個正交計數器。實現對光柵尺、光電編碼器等傳感
    發表于 03-26 09:51

    【數據采集分享】怎樣將正交編碼器和數據采集卡配合使用

    完整地旋轉一圈。這個值以脈沖/轉表示。有兩種不同的正交編碼器,在操作上稍有不同。下面我們就來講述如何使用NI數據采集板卡上的計數器從差分以及單端的正交
    發表于 12-05 10:43

    LS7366R 32 位正交編碼脈沖計數器模塊

    完整的開箱即用體驗和快速發展。該模塊與硬件板直接兼容。它卸載所有的計算跟蹤編碼器和接口直接與 Arduino 板通過 SPI 和 IOs。特點:?6 通道板載正交編碼脈沖
    發表于 04-17 16:06

    正交編碼器原理碼盤

    。方向:A相和B相相差一個相位,一般來說是90°。A相信號在前表示正轉,B相信號在前表示反轉。計數:在每個上升沿或者下降沿檢測,檢測到計數器就加+1。線數和脈沖數的關系:假如一個編碼器是102...
    發表于 08-12 07:10

    正交編碼器原理什么是正交

    1.正交編碼器原理什么是正交?如果兩個信號相位相差90度,則這兩個信號稱為正交。由于兩個信號相差90度,因此可以根據兩個信號哪個先哪個后來判斷方向。如下圖所示。
    發表于 01-10 08:04

    正交編碼器測速的方法

    1.正交編碼器的原理通常,光電式編碼器的輸出信號有A信號和B信號,部分還會有Z信號,也叫做零點信號,本平臺使用的電機只有A/B信號,當電機旋轉時,A/B兩路信號輸出正交脈沖信號,這是測
    發表于 01-10 06:00

    基于VHDL的正交編碼脈沖電路解碼計數器設計

    針對正交編碼脈沖電路脈沖(quadratureencoderpulse,QEP)的解碼和計數的問題,給出了QEP解碼計數器的解決方案.本方案在復雜可編程邏輯
    發表于 03-01 16:36 ?98次下載

    編碼器正交編碼工作原理

    正交編碼器(又名雙通道增量式編碼器),用于將線性移位轉換為脈沖信號。
    發表于 08-02 08:50 ?3.3w次閱讀

    STM32的正交編碼器模式讀取編碼器的角度數據和速度

    STM32的正交編碼器模式讀取編碼器的角度數據和速度
    發表于 12-08 17:06 ?144次下載
    STM32的<b class='flag-5'>正交</b><b class='flag-5'>編碼器</b>模式讀取<b class='flag-5'>編碼器</b>的角度數據和速度

    開關高速脈沖計數器Modbus RTU編碼器模塊IBF150

    ? 產品特點: ●?編碼器解碼轉換成標準Modbus RTU協議 ●?可用作編碼器計數器或者轉速測量 ●?支持編碼器計數,可識別正反轉 ●?
    的頭像 發表于 07-11 11:42 ?2200次閱讀
    開關高速脈沖<b class='flag-5'>計數器</b>Modbus RTU<b class='flag-5'>編碼器</b>模塊IBF150

    轉速DI計數器編碼器AB解碼轉換rs485/232ModbusRTU

    編碼器解碼轉換成標準Modbus RTU協議 ● 可用作編碼器計數器或者轉速測量 ● 支持8個編碼器同時計數,可識別正反轉 ● 也可以設
    的頭像 發表于 12-28 15:31 ?1483次閱讀
    轉速DI<b class='flag-5'>計數器</b><b class='flag-5'>編碼器</b>AB解碼轉換rs485/232ModbusRTU

    1路編碼器脈沖計數器或2路DI高速計數器,Modbus RTU模塊 YL150

    產品特點:● 編碼器解碼轉換成標準Modbus RTU協議● 可用作編碼器計數器或者轉速測量● 支持編碼器計數,可識別正反轉● 也可以設置作
    發表于 10-31 09:17 ?0次下載

    1路編碼器脈沖計數器或2路DI高速計數器,Modbus RTU模塊 YL150

    1路編碼器脈沖計數器或2路DI高速計數器,ModbusRTU模塊YL150產品特點:●編碼器解碼轉換成標準ModbusRTU協議●可用作編碼器
    發表于 11-03 14:19 ?0次下載

    正交解碼計數器

    正交解碼計數器
    發表于 09-06 11:41 ?0次下載
    主站蜘蛛池模板: 色婷婷色综合激情国产日韩 | 高清不卡免费一区二区三区 | www.热| 黄色有码视频 | 三级国产在线观看 | 久久精品亚洲精品国产色婷 | 成人深夜视频 | 亚洲日本一区二区三区在线不卡 | 一级片在线免费观看 | 国产黄色大片网站 | 成人精品一区二区三区电影 | 色香蕉色香蕉在线视频 | 国产91久久最新观看地址 | 色偷偷综合 | 午夜啪啪片 | 噜噜色小说 | 欧美在线不卡视频 | 亚洲色图综合 | 国产黄在线观看 | 亚洲网站www | 欧美精品一区视频 | 天天干天天操天天拍 | 乱人伦小说短篇 | 五月激情综合 | 在线观看高清视频 | 免费黄色大片 | 丁香花高清在线观看 | 不卡免费在线视频 | 五月天色婷婷丁香 | 国产乱码精品一区二区 | 国内在线观看精品免费视频 | 日韩网| 欧美特黄一免在线观看 | 五月婷婷六月天 | 日本3级视频| 色女仆影院 | 手机看片1024福利 | 日本加勒比一区 | 色播丁香| 天天插天天干 | 欧美午夜免费观看福利片 |