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

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

3天內不再提示

ADI兩個電機同步控制方案 實現同步控制兩個或更多步進電機的遠程主機系統

analog_devices ? 來源:亞德諾半導體 ? 作者:亞德諾半導體 ? 2023-07-27 16:23 ? 次閱讀

工業4.0為遠距離實現邊緣智能帶來了曙光,而10BASE-T1L以太網的數據線供電(PoDL)功能、高數據傳輸速率以及與以太網協議兼容也為未來發展鋪平了道路。本文介紹如何在自動化和工業場景中集成新的10BASE-T1L以太網物理層標準,將控制器和用戶界面與端點(例如多個傳感器和執行器)連接起來,所有器件均使用標準以太網接口進行雙向通信。

10BASE-T1L是針對工業連接的物理層標準。它使用標準雙絞線電纜,數據速率高達10 Mbps,電力傳輸距離長達1000米。低延遲和PoDL功能有助于實現對傳感器或執行器等器件的遠程控制。本文介紹如何實現一個能夠同步控制兩個或更多步進電機的遠程主機系統,借此展示遠距離實時通信的能力。

系統概述

圖1是系統級應用的示意圖。在主機端,由 ADIN1100和 ADIN1200以太網PHY負責管理標準鏈路和10BASE-T1L鏈路之間的轉換,而在遠程端,控制器通過 ADIN1110以太網MAC-PHY與鏈路接口,只需要一個SPI外設來交換數據和命令。準確的同步運動控制利用Trinamic TMC5160步進電機控制器和驅動器來實現,這些器件可生成六點斜坡用于定位,而無需在控制器上進行任何計算。選擇這些元器件還能降低對微控制器所用外設、計算能力和代碼大小的要求,從而支持使用更廣泛的商用產品。此外,在不超過預定功耗限制的情況下,整個遠程子系統可以直接由數據線供電;因此,只有媒介轉換器板需要提供本地電

56ff4d06-2ba4-11ee-a368-dac502259ad0.png

圖1.系統概覽。

系統硬件

該系統由四個不同的板組成:

  • EVAL-ADIN1100板具有ADIN1200 10BASE-T/100BASE-T PHY,與ADIN1100 10BASE-T1L PHY搭配使用,可以將消息從一種物理標準轉換為另一種物理標準。它可以針對不同的工作模式進行配置。本項目使用標準模式15(媒介轉換器)。EVAL-ADIN1100板還集成了微控制器,用于執行媒介轉換所需的基本配置和讀取診斷信息。但是,它不能與發送和接收的消息交互;該板對通信完全透明。

  • EVAL-ADIN1110是遠程器件控制器的核心。ADIN1110 10BASE-T1L MAC-PHY通過10BASE-T1L鏈路接收數據,并通過SPI接口將數據傳輸到板載Cortex-M4微控制器進行處理。該板還提供與Arduino Uno兼容的接頭,可利用這些接頭安裝擴展板以添加更多功能。

  • TMC5160擴展板是一款基于Arduino擴展板外形尺寸定制的開發板。單個擴展板最多支持兩個TMC5160 SilentStepStick板,多個擴展板可以堆疊在一起以增加可控電機的最大數量。所有驅動器共享相同的SPI時鐘和數據信號,但片選線保持獨立。這種配置支持兩種通信模式:如果片選線各自置為有效,則微控制器可以與單個控制器通信——例如配置運動參數。相反,如果同時將多條片選線置為有效,則所有選定的驅動器同時接收相同的命令。后一種模式主要用于運動同步。該板還為StepStick提供了一些額外的輸入電容,以降低電機啟動時的電流峰值,并使正常工作期間的電流曲線更加平滑。它允許使用PoDL為最多配有兩個NEMA17電機的整個系統供電(默認設置下,24 V時的最大傳輸功率為12 W)。該板還支持使用螺絲端子來簡化與步進電機的連接,使控制器的相位輸出更容易訪問。

  • 兩個EVAL-ADIN11X0EBZ板用于向系統添加PoDL功能,其中一個板用于媒介轉換器,另一個用于EVAL-ADIN1110EBZ。該板是一個插件模塊,可以安裝在評估板的MDI原型接頭上,并且可以配置為通過數據線提供和接收電力。

570e8d16-2ba4-11ee-a368-dac502259ad0.png

圖2.裝配好的EVAL-ADIN1110、EVAL-ADIN11X0EBZ和TMC5160擴展板。

軟件

軟件代碼可供下載:利用10Base-T1L以太網進行遠程運動控制 - 代碼。

為了保持代碼的輕量化并有效減少通信開銷,沒有在數據鏈路層之上實現標準通信協議。所有消息都是通過預定義固定格式的以太網幀的有效載荷字段進行交換。數據被組織成46字節的數據段,一個數據段由2字節的固定報頭和44字節的數據字段組成。報頭包括:一個8位器件類型字段,用于確定如何處理接收的數據;以及一個8位器件ID字段,如果存在多個相同類型的器件,可以通過ID來選擇單個物理器件。

572d377a-2ba4-11ee-a368-dac502259ad0.png

圖3.通信協議格式。

主機接口采用Python編寫,以確保與Windows和Linux主機兼容。以太網通信通過Scapy模塊進行管理,該模塊允許在堆棧的每一層(包括以太網數據鏈路)創建、發送、接收和操作數據包。協議中定義的每種器件都有一個相應的類,其中包括用于存儲要交換的數據的屬性,以及一組可用于修改這些屬性而不必直接編輯變量的方法。例如,若要在運動控制器的速度模式下更改運動方向,可以使用已定義的方法"setDirectionCW()"和"setDirectionCCW()",而不必手動為方向標志賦值0或1。每個類還包括一個"packSegment()"方法,該方法根據所考慮的設備器件的預定義格式,以字節數組的形式打包并返回與受控器件對應的數據段。

固件利用ChibiOS環境以C語言編寫,其中包括實時操作系統(RTOS)、硬件抽象層(HAL)、外設驅動程序等工具,使代碼可以在相似的微控制器之間輕松移植。項目基于三個自定義模塊:

  • ADIN1110.c是驅動程序,用于支持通過SPI接口與ADIN1110交換數據和命令。它包括用于從器件寄存器讀取和寫入數據的低級通信函數,以及用于發送和接收以太網幀的高級函數。它還包括用于在10BASE-T1L收發器之間建立通信的函數。通知是否出現新幀的引腳在中斷時讀取,以盡量減少延遲。

  • TMC5160.c實現了控制TMC5160運動控制器所需的全部函數,配置為以全功能運動控制器模式運行。它實現了恒速和位置控制兩種模式,允許使用六點斜坡進行平滑準確的定位。與多個運動控制器的通信通過單條SPI總線和多條獨立的片選線實現。它還提供了一組函數和類型定義來簡化運動同步。

  • Devices.c是從T1L鏈路接收的數據與連接到控制器的物理器件之間的接口。它包括與主機接口中定義的結構體類似的結構體,并且具有在每次接收到帶有效數據的新幀時更新結構體的函數。此模塊還用于確定每次更新結構體時執行哪些操作,例如,哪個物理運動控制器與在特定器件地址接收到的命令相關。

574a9338-2ba4-11ee-a368-dac502259ad0.png

圖4.固件流程圖。

系統亮點和驗證

該項目旨在演示如何在自動化和工業場景中集成新的10BASE-T1L以太網物理層標準,將控制器和用戶界面與端點(例如多個傳感器和執行器)連接起來。此應用針對多個步進電機的遠程實時控制,廣泛用于工業中的低功耗自動化任務,但也可用于輕型機器人數控機床,例如臺式3D打印機、臺式銑床和其他類型的笛卡爾繪圖儀。此外,它還能擴展用于其他類型的執行器和遠程控制器件。與具有類似用途的現有接口相比,其主要優點包括:

  • 布線簡單,只需要一根雙絞線。由于支持通過數據線供電,低功耗器件(如傳感器)可以直接借助此連接供電,從而進一步減少所需的布線和連接器數量,并降低整體系統的復雜性、成本和重量。

  • 使用PoDL標準的電力傳輸方式,通過數據線上疊加的直流電壓為連接到網絡的設備供電。這種耦合只需要使用無源元件就可以實現,接收端的電壓經過濾波后,可以直接給器件或DC-DC轉換器供電,不需要整流。只要適當確定用于此類耦合的元件大小,就可以實現一個高效率系統。本項目中使用評估板上安裝的標準元件,整體效率約為93%(采用24 V電源,總負載電流為200 mA)。然而,這一結果還有很大的改進余地,事實上,大部分損耗是電源路徑上無源元件的電阻壓降造成的。

  • 用途廣泛,既可用于最后一公里連接,也可用于端點連接。ADI 10BASE-T1L器件針對長達1.7公里的距離進行了測試。它們還支持菊花鏈連接,這對系統復雜性的影響很小。例如,使用 ADIN2111 雙端口低復雜度交換芯片可以設計集成菊花鏈功能的器件,使鏈路也適用于端點網絡。

  • 易于與已集成以太網控制器的現有設備連接,包括個人電腦和筆記本電腦。數據幀遵循以太網數據鏈路標準,所有與以太網兼容的協議都可以在其之上實現,因此只需要一個媒介轉換器作為橋接器與標準以太網鏈路連接。例如,本項目中使用的評估板EVAL-ADIN1100可用作透明媒介轉換器的參考設計,它僅需要兩個以太網PHY和一個可選微控制器用于配置和調試。

  • 高達10 Mbps的高數據速率,全雙工。此特性與菊花鏈拓撲(在其上可以實現基于工業以太網的協議)相結合,使其可用于需要確定性傳輸延遲的實時應用。

  • 根據應用的安全性和穩健性要求,收發器和媒介之間的隔離可以通過容性耦合或磁耦合實現。

我們對該系統進行了多次測量以評估其性能。所有用于與ADIN1110收發器和TMC5160控制器通信的外設,都配置為使用標準硬件配置可達到的最大可能速度??紤]到微控制器具有80 MHz系統時鐘,對于運動控制器和ADIN1110收發器,SPI外設的數據速率分別設置為2.5 MHz和20 MHz。對于TMC5160,通過調整微控制器時鐘配置并向IC提供外部時鐘信號,SPI頻率可進一步提高至8 MHz,而對于ADIN1110,數據手冊規定的上限值為25 MHz。

對延遲進行評估,請求數據和收到應答幀之間的總時間大約為4 ms(500個樣本的平均值,使用Wireshark協議分析儀計算數據請求和相應應答的時間戳之間的差值測得)。我們還進行了其他評估,以確定系統的哪些部分是導致此延遲的原因。結果表明,主要原因是RTOS的延時函數,其預留的最小延遲為1 ms,用于設置TMC5160的讀寫操作間隔,而所需的延遲約為幾十納秒。這可以通過定義基于定時器的其他延遲函數來改進,使延遲間隔可以更短。

導致延遲的第二個原因是用于接收幀的Scapy函數,調用此函數后至少需要3 ms的設置時間。在實際應用中,直接使用操作系統的網絡適配器驅動程序來開發接口,而不借助Scapy等第三方工具也能有所改進。然而,這樣做也有一些缺點,包括會失去與不同操作系統的兼容性并增加代碼復雜度。

575d9e60-2ba4-11ee-a368-dac502259ad0.png

圖5.電源路徑的簡化方案。

通過切換GPIO并使用示波器測量高電平周期,可測得微控制器上實現回調的準確執行時間。實測執行時間包括讀取和解析接收到的幀以及向運動控制器發送命令的函數執行時間。

577ba63a-2ba4-11ee-a368-dac502259ad0.png

表1.實測執行時間

第二組測量旨在評估使用PoDL為遠程器件供電時傳輸路徑上的功率損耗。我們用設置為不同電流的電子負載代替運動控制器擴展板進行測試,從0.1 A到0.5 A,步長為100 mA,以確定哪些元件對功率損耗有較大影響,進而確定如何改進設計以實現更高的額定電流。

578ad132-2ba4-11ee-a368-dac502259ad0.png

表2.系統效率

579b55e8-2ba4-11ee-a368-dac502259ad0.png

圖6.每個無源元件的功率損耗與電流的關系。

結果表明,橋式整流器肖特基二極管D2是造成損耗的主要因素,兩者均用于極性反接保護。兩個元件可以用基于MOSFET晶體管和理想二極管控制器的類似電路代替,以獲得更高的效率,同時也不會失去上述保護能力。在較高電流下,用于輸入和輸出電源濾波的耦合電感的直流電阻占主導地位,因此為了提高電流能力,還需使用具有更高額定電流的類似電感。

結論

工業4.0正在推動智能自動化的發展。ADI Trinamic技術與ADIN1100、ADIN1110、10BASE-T1L收發器配合使用,有助于控制器對遠至1700米的傳感器和執行器實現遠程控制,而無需邊緣供電。通過可靠的遠程控制方法,可以輕松地在更遠距離實時控制步進電機,而不必犧牲任何性能或速度。這些系統解決方案將助力工業轉型,有望進一步縮短響應時間,充分提高性能。


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

    關注

    144

    文章

    45778

    瀏覽量

    242252
  • 電機控制
    +關注

    關注

    3484

    文章

    1740

    瀏覽量

    265352
  • 以太網
    +關注

    關注

    40

    文章

    5135

    瀏覽量

    166727
  • 步進電機
    +關注

    關注

    149

    文章

    2945

    瀏覽量

    146326
  • 遠程控制
    +關注

    關注

    4

    文章

    556

    瀏覽量

    34584
  • 亞德諾
    +關注

    關注

    6

    文章

    4680

    瀏覽量

    15794
  • 工業4.0
    +關注

    關注

    48

    文章

    1956

    瀏覽量

    117692

原文標題:如何實現能夠同步控制兩個或更多步進電機的遠程主機系統?

文章出處:【微信號:analog_devices,微信公眾號:analog_devices】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    89C52驅動兩個步進電機的問題

    思路兩個步進電機模擬兩個輪子使二驅車能夠實現加速 減速 轉向 既做到勻速加速減速左右轉其中非轉向時
    發表于 04-14 14:48

    單片機控制兩個舵機和一步進電機

    想用STC89C52單片機控制兩個MG995舵機和一24V相四線步進電機同時轉動,菜鳥一
    發表于 04-13 18:59

    高性能伺服控制FMC板電機控制解決方案

    概述AD-FMCMotcon1-EBZ提供有效的電機控制解決方案,用于不同類型的電機中。每個FPGA接口(FMC)可驅動一
    發表于 10-16 19:39

    單片機能否同時控制兩個步進電機轉動?

    如題做的板子要控制電機,現在是分時控制,一轉的時候,另一不轉。如果把
    發表于 03-25 15:55

    ARDUINO:控制兩臺步進電機同步運轉 相關資料下載

    *v2, 才能保證以上的同步結果。本文程序是在太極創客程序的基礎上對其修改后的,接線方式完全保持不變。主要的修改如下:1, data(電機指令參數)和 stepperNum(控制電機
    發表于 07-08 08:29

    如何用FPGA通過兩個按鍵控制步進電機的啟動和停止?

    一、工程簡介1、本工程實現的功能:用FPGA通過兩個按鍵控制步進電機的啟動和停止,硬件包括:黑金開發板、
    發表于 07-08 07:41

    如何去控制42與57兩個步進電機?

    功夫不負有心人,終于把這個做出來了,本項目為控制42,57兩個步進電機,帶動齒輪,進行上下左右轉動,四限位金屬傳感器限制位置。傳感器配置過
    發表于 07-08 08:34

    電機的力矩控制當前存在的兩個主要流派

    電機的力矩控制當前存在的兩個主要流派是磁場定向控制FOC和直接轉矩控制DTC,當然這
    發表于 08-27 07:59

    用arduino和步進電機控制器驅動兩個步進電機

    Arduino 2560控制兩個步進電機用arduino和步進電機
    發表于 08-31 06:13

    如何利用PI控制算法去實現保持兩個電機轉速的同步

    如何運用STM32F407定時器的PWM功能分別驅動兩個直流電機的運動?如何利用PI控制算法去實現保持兩個
    發表于 09-18 09:27

    如何去實現兩個步進電機獨立控制互不干擾呢

    如何去實現兩個步進電機獨立控制互不干擾呢?怎樣用數碼管去顯示步進
    發表于 10-15 08:26

    怎樣通過運動懸掛系統控制兩個步進電機

    怎樣通過運動懸掛系統控制兩個步進電機呢?其具體代碼該如何去實現呢?
    發表于 12-21 07:43

    兩個直流24伏3420有刷電機怎么實現同步呢?

    兩個直流24伏3420有刷電機怎么實現同步,就是不接電源的情況下用手轉動一另一也跟著轉,現有
    發表于 03-20 14:16

    ADI電機控制開發平臺控制兩個電機同步運動

    演示由一款ADI電機控制開發平臺驅動的兩個電機同步運動,該平臺通過一個Fieldbus網絡連接
    的頭像 發表于 06-21 06:00 ?1925次閱讀

    如何使用一個PLC控制兩個或多個伺服電機同步運行

    如何用一個PLC控制兩個或多個伺服電機同步運行主電機速度改變時,其它伺服電機也跟著
    發表于 07-18 08:00 ?21次下載
    如何使用一個PLC<b class='flag-5'>控制</b><b class='flag-5'>兩個</b>或多個伺服<b class='flag-5'>電機</b><b class='flag-5'>同步</b>運行
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>