国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

經驗分享 | SEI同步通訊—BISS-C/ENDAT協議解讀

先楫半導體HPMicro ? 2025-11-24 09:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SEI(Serial Encoder Interface)串行編碼器接口,是先楫半導體創新性設計的一個針對串行絕對值編碼器通信的外設。SEI支持同步通信模式與異步通信模式,既能做主機——從編碼器獲取數據,又能做從機——將位置信息以主機需要的串行協議發出。在電機類應用中大大的降低了編碼器相關開發任務的難度,同時以硬件編解碼的方式降低了CPU負載率,讓CPU有更多算力處理其他任務。

先楫半導體SDK1.10.0提供了諸多SEI應用的實例,包括Biss-c、Endat、Hiperface、Nikon、SSI、Tamagawa等串行協議的主站、從站配置源碼,開發者在sample實例的基礎上,簡單的進行修改即可應用到項目中。

本文以Biss-c和Endat協議為例,對SEI在同步通信中用法進行講解,使讀者對SEI的用法有進一步的認識與了解。

本文中,命令指協議中主站向從站發送的命令,從站需要根據命令內容進行回復或執行某些操作;指令指SEI引擎執行的動作。

1、SEI關鍵概念

1.1 數據寄存器

數據寄存器是SEI收發數據的數據存放單元。在通信的接收過程中,接收到的數據會被存放于數據寄存器中;在通信的發送過程中,需要向外發送的數據同樣存放在數據寄存器中。

SEI共有17組數據寄存器,每個寄存器寬度為32bit。當SEI工作在同步模式時,數據線上連續出現的數據會根據clock信號進行采樣,并將采樣后的數據按照SEI配置依次保存到數據寄存器中,不超過32bit的圈數/位置數據可以使用1個數據寄存器進行保存,超過32bit的數據使用2個數據寄存器進行保存——不過單圈精度超過32位以及圈數超過32位的編碼器比較少見,32bit寄存器可滿足絕大部分使用場景。

數據寄存器0用于忽略接收到的數據——某些通信協議的數據字段,如果開發者不關心,可以使用數據數據寄存器0進行接收;其概念與Linux系統下黑洞文件類似。

數據寄存器2~數據寄存器17為通用數據寄存器。可以工作在3種模式下:

數據模式:僅用于存儲數據。

檢查模式:可設定期待值,例如用戶期待接收到0x17,當接收到的寫入該數據寄存器的值不為0x17時,可產生傳輸錯誤提示。

CRC模式:用于收發數據過程中實時計算CRC值,可通過設置CRC多項式與CRC初始值來設計CRC算法,當接收數據的CRC計算結果與實時計算結果不符時,可產生錯誤傳輸提示。

1.2 命令寄存器

用于收發串行編碼器協議中的命令數據。例如ENDAT協議中Mode Command字段為命令,其含義如下圖:

8ac2a792-c8d6-11f0-8ce9-92fbcf53809c.jpg

可以看到,Mode Command字段內的M0~M3決定了通信的內容,根據該字段的不同,主機可以從編碼器中讀取位置數據、收發配置參數、復位等。


1.3 命令匹配表

命令寄存器接收到命令后,SEI引擎接收JUMP跳轉指令,會根據命令內容在命令匹配表內進行檢索。找到符合命令的表項后,則跳轉至該命令匹配表指向的指令開始執行。SEI共支持8張命令匹配表,SEI引擎會以順序方式對每張命令匹配表的命令進行對比,如果命令匹配表0~命令匹配表6都匹配失敗,則無條件執行命令匹配表7的預設指令(回復/不回復)。命令匹配表一般在做從機時使用。


1.4 指令

SEI引擎共支持8種指令,分為停止、等待、接收、發送、跳轉5大類指令,根據是否有超時保護拓展為8種指令。例如接收指令可分為時限內接收與無限時接收,時限內接收在規定的時間內未收到數據會進行報錯處理,無限時接收則會永遠等待下去。其它時限內發送與無限時發送等概念,請讀者自行理解。

SEI共支持預設128條指令。


1.5 狀態機

SEI狀態機包括4個狀態,狀態的切換只能以0-->1-->2-->3-->0的順序進行,每種狀態的切換條件可由開發者自行定義,例如設置執行完第10條指令后狀態機從狀態0切換到狀態1。狀態切換可向外發送事件信號,開發者可將該信號拉到其它外設進行觸發,實現硬件同步;或簡單的產生一次中斷或DMA事件,使用中斷或DMA進行一定的數據處理工作。

理解SEI工作的關鍵就在于以上5個概念的掌握。其它更多的技術細節需要讀者自行查閱UM手冊進行理解。


2、BISSC指令表解析


下面對SEI工作的流程進行直觀的舉例描述,時序如下圖所示,代碼參考samples\drivers\sei\master\bissc\src\sei.c:

8ae1d7f2-c8d6-11f0-8ce9-92fbcf53809c.png8aea590e-c8d6-11f0-8ce9-92fbcf53809c.png

1)主機SEI引擎使能后,對外發送clock信號,同時開始以指令0“等待”數據線上的ACK信號,ACK信號由編碼器發出(編碼器收到clock信號后會發出ACK表示應答),拉低數據總線電平,因此SEI收到ACK信號后會跳轉到指令1;


2)按照協議,ACK響應后編碼器發送1 bit高電平,代表開始數據傳輸,指令1“等待”數據線上的START信號,如SEI收到START信號,將繼續接收CDS數據,跳轉到指令2;


3)CDS和CDM是BISSC協議中用于主機與編碼器進行一些控制指令交互的手段,主機每一幀數據傳送1 bit CDM數據給編碼器,編碼器每幀數據傳輸1 bit CDS數據給主機完成交互。例程使用的編碼器型號,不存在控制數據交互功能,因此1 bit的CDS數據沒有意義,接收到數據后將其保存到數據寄存器0中,跳轉到指令3;


4)主機SEI引擎接收12bit多圈數據保存在DATA_2中,跳轉到指令4


5)主機SEI引擎接收12bit單圈數據保存在DATA_3中,跳轉到指令5


6)WARN和ERROR是BISSC協議中用于表示編碼器狀態的數據bit,當故障時會通過這兩個數據bit通知主機數據無效,例程使用DATA_4保存后,跳轉到指令6


7)接下來6個bit的數據是用于數據完整性校驗的CRC,CRC校驗正確數據才有效,否則會觸發SEI TRX中斷,接收完6 bit CRC數據后會跳轉到指令7


8)當數據發送完成后,Data 保持小于 10us 的低電平,這段時間被稱為 Timeout。該信號一直維持到 Data 被拉高,表明當前幀通信結束,可以開始下一幀通信。在此期間,SEI主機不再向外發送clock信號,并維持CLK數據線為高電平。當編碼器準備好下一幀數據傳輸,會釋放數據線將其拉高為高電平,即指令8配置的等待數據線為1


9)完成整個通信過程后,主機執行HALT指令,準備下一幀數據的傳輸,重新從指令0開始數據傳輸


可以看到,通過以上工作流程的描述,SEI就依靠硬件自動完成了clock的發送,從編碼器讀回來了數據。CPU只要在數據寄存器中讀取位置值和圈數值即可。


3、ENDAT指令表解析


與SEI類似,下面對ENDAT協議進行解析,時序如下圖所示,代碼參考samples\drivers\sei\master\endat\src\sei.c:

8af3e5b4-c8d6-11f0-8ce9-92fbcf53809c.png

由以上時序圖可以看到,ENDAT協議,由以下幾個階段組成:

1)由主機發送2個周期的clock信號

2)由主機發送Mode command(參見1.2章節),Mode command共6 bit,后3 bit與前3 bit按位取反

3)由主機再發送2個周期的clock信號

4)主機持續輸出clock信號,開始等編碼器給出start信號,start信號即編碼器拉高數據線,

5)編碼器傳輸1 bit Error數據

6)編碼器傳輸n bit位置數據(n取決于編碼器規格)

7)編碼器傳輸5 bit CRC數據

8)一段時間的timeout,其概念與BISSC相似,區別在于編碼器會拉低數據線表示timeout結束,即可以開始下一幀數據傳輸。

參照以上對ENDAT編碼器協議的解讀,理解下圖所示例程的指令表設計,應該是毫無難度了。

8b00aca4-c8d6-11f0-8ce9-92fbcf53809c.png


4、同步通信其它技術點解析


4.1 采樣點

細心的讀者會注意到,SDK中BISSC與ENDAT兩個master例程,采樣點的設置不同,下面介紹一下采樣點的設置。

BISSC例程如下,接收采樣點為ck0 point,發送點為ck1 point:

8b0e97e2-c8d6-11f0-8ce9-92fbcf53809c.png

ck0是指一個clock周期的第一個邊沿,ck1是指一個clock周期的第二個邊沿。結合BISSC協議的規定,idle狀態下clock為高電平,那么第一個邊沿就是下降沿,第二個邊沿就是上升沿。

即意味著,SEI引擎會在下降沿采樣接收信號線上的數據,在上升沿發送要發出的數據。BISSC協議主機不發送數據,只關注接收即可。

如下圖為BISSC標準協議,可以看到,數據確實在clock的下降沿采樣,上升沿數據發生變化。

8b2d71c6-c8d6-11f0-8ce9-92fbcf53809c.png

ENDAT波形如下圖,可以看到發送Mode command時,數據在下降沿發送;接收數據時,數據在下降沿采樣:

8b382058-c8d6-11f0-8ce9-92fbcf53809c.png8b4159a2-c8d6-11f0-8ce9-92fbcf53809c.png

所以ENDAT例程采樣點配置如上圖所示,clock信號線idle電平為高電平,那么接收采樣點為ck0 point,發送點也為ck0 point。


4.2 采樣點調整

當編碼器線纜長度比較長,電信號的傳輸時間會對信號的相位發生影響,當影響無法忽略時,需要對采樣點進行調整。


如下圖ENDAT協議中所示,主機發出的clock在信號線上傳輸到達編碼器,編碼器根據clock信號發送位置數據,位置數據傳輸到主機時,如果主機仍然在下降沿采樣,那么就會發生錯誤。

8b4c2620-c8d6-11f0-8ce9-92fbcf53809c.png

先楫SDK例程開發時充分考慮以上情況的發生,在SEI最初的通信過程中,會測量主機主動發出的clock信號下降沿與從機回復信號的start上升沿之間的時間差,來判斷電信號在線纜中傳輸造成的相位偏移影響,對采樣點進行調整,如下圖代碼:

8b5627a6-c8d6-11f0-8ce9-92fbcf53809c.png

調整的邏輯較簡單,請讀者自行分析,以便更好的理解整個通信過程。


5、小結


相信通過以上針對SEI的講解,及對BISSC、ENDAT例程代碼的分析,讀者對SEI有了更深的認識,希望開發者可以用好SEI模塊,加速項目開發與落地。

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

    關注

    45

    文章

    3953

    瀏覽量

    142617
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

    129968
  • 接口
    +關注

    關注

    33

    文章

    9519

    瀏覽量

    157020
  • 絕對值編碼器

    關注

    3

    文章

    71

    瀏覽量

    10620
  • 先楫半導體
    +關注

    關注

    12

    文章

    284

    瀏覽量

    3297
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    SEI異步通訊—多摩川協議支持

    1、SEI簡介SEI(SerialEncoderInterface)串行編碼器接口,是先楫半導體創新性設計的一個針對串行絕對值編碼器通信的外設。SEI支持同步通信模式與異步通信模式,既
    的頭像 發表于 06-14 08:17 ?4399次閱讀
    <b class='flag-5'>SEI</b>異步<b class='flag-5'>通訊</b>—多摩川<b class='flag-5'>協議</b>支持

    用SPI模擬BISS-C協議,可以用定時器捕獲時鐘高電平持續時間判斷biss幀的開始嗎?

    用SPI模擬BISS-C協議 可以用定時器捕獲時鐘高電平持續時間判斷biss幀的開始嗎
    發表于 04-02 07:42

    SEI實現BiSS-C從機協議,發送TIMEOUT期間CDM如何接收?

    SEI實現BiSS-C從機協議,發送TIMEOUT期間CDM如何接收?
    發表于 04-07 11:09

    一個到電機位置編碼器的EMC兼容接口設計

    設計使用AM437x主機處理器來運行所有這三個編碼器協議。與TIDA-00179硬件將針對EnDat 2.2 (TIDA-00172)、BiSS C (TIDA-00175) 和 HI
    發表于 09-04 14:48

    電磁兼容(EMC)標準的電機位置編碼器接口講解

    iC-Haus公司的開源協議。它定義了適用于致動器和傳感器(如旋轉編碼器或位置編碼器)的數字雙向串行接口。BiSS允許單向或雙向模式(被稱為BiSS-C連續模式)下的串行同步數據通信。
    發表于 09-05 16:07

    請問tms320f28377d連接多個ENDAT絕對值編碼器是否需要4個硬件SPI接口才行?

    3個。是否用1個SPI接口能復用?2、是否普通IO口模擬SP時序,也能實現讀取?I3、不同廠家的電機控制器芯片都宣傳支持ENDATBISS編碼器接口,是否能認為只要用SPI總線讀回數據,剩下的工作就是軟件解析數據的工作了,對嗎?還是C
    發表于 09-13 09:51

    C2000 MCU的BiSS-C絕對編碼器主接口參考設計

    (通過 LaunchPad 開發套件)配合使用,以實現集成式 BiSS-C 數字協議解決方案可通過軟件驅動程序函數和數據結構輕松執行連接 BiSS-C 的命令C28x 優化 CRC 算
    發表于 10-22 10:02

    PRU-ICSS的另一個應用概述

    就在于根據編碼器和電機供應商選擇和集成正確的數字編碼器協議標準。三個最常用的位置編碼器協議標準為EnDat 2.2, BiSS C和高性能接
    發表于 08-05 04:45

    最近在使用TMS320F28379D用其CLB功能實現ENDAT2.2協議時與海德漢的編碼器進行通訊。程序初始化一直不成功?

    各位大俠好,最近在使用TMS320F28379D用其CLB功能實現ENDAT2.2協議時與海德漢的編碼器進行通訊。程序初始化一直不成功,有哪位大俠做過相關的研究啊?下面是初始化程序
    發表于 05-16 17:36

    基于FPGA的BISS-C協議編碼器的解碼實現

    有沒有大佬弄過 基于FPGA的BISS-C協議編碼器解碼,想問一下該怎么搞,有償,或者有沒有現成的產品可以幫忙解碼?
    發表于 05-23 17:17

    詳解雙向/串行/同步BiSS)位置編碼器的接口

    。)BiSS允許單向或雙向模式(被稱為BiSS-C連續模式)下的串行同步數據通信。BiSS接口與串行同步接口(SSI)硬件兼容。
    發表于 11-17 01:55 ?2.3w次閱讀
    詳解雙向/串行/<b class='flag-5'>同步</b>(<b class='flag-5'>BiSS</b>)位置編碼器的接口

    DesignDRIVE軟件:關于位置管理器BiSS-C的介紹

    C2000DesignDRIVE?位置管理器BiSS-C介紹
    的頭像 發表于 08-13 03:40 ?4674次閱讀

    C2000位置管理器技術的BiSS-C解決方案介紹

    C2000DesignDRIVE位置管理器BiSS-C解決方案
    的頭像 發表于 04-12 07:13 ?5263次閱讀

    解讀Modbus通訊協議

    作為工控人,Modbus 通訊協議想必都不陌生,Modbus 通訊協議可以說是工業自動化領域應用最為廣泛的通訊
    的頭像 發表于 11-09 16:39 ?3501次閱讀

    C2000位置管理器BISS-C庫用戶指南

    電子發燒友網站提供《C2000位置管理器BISS-C庫用戶指南.pdf》資料免費下載
    發表于 11-09 15:19 ?5次下載
    <b class='flag-5'>C</b>2000位置管理器<b class='flag-5'>BISS-C</b>庫用戶指南