91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

玩轉單片機與嵌入式
認證:VIP會員
所在專題目錄 查看專題
《跟我學CANopen》之一:CANopen介紹2:CANopen在OSI中的位置
《跟我學CANopen》之一:CANopen介紹3:CANopen的設備結構
《跟我學CANopen》之一:CANopen介紹4:CANopen的網絡結構(主站設備/從站設備是什么?)
《跟我學CANopen》之二:對象字典1:概述
《跟我學CANopen》之二:對象字典2:通用通訊對象詳解1
《跟我學CANopen》之二:對象字典3:通用通訊對象詳解2
作者動態 更多
【硬件】深入淺出講解MOS管的柵極電阻
2022-07-28 09:00
【軟件】實現STM32軟件精確延時的方法(附源碼)
2022-07-28 08:51
嵌入式操作系統三問:what?when?how?
2022-06-11 14:55
做降本或國產替代時,替換原來的晶振,都需要測試哪些內容?
2022-06-11 14:51
深入淺出,明明白白的搞清楚RS-485總線!
2022-06-11 14:48

《跟我學CANopen》之二:對象字典2:通用通訊對象詳解1

近期小編開發了【跟我學CANopen】系列課程,會陸陸續續連載更新完畢,相關目錄如下(由于內容較多導致文字太小,下圖請放大后查看)。

對象字典索引區域定義中,0x1000h~0x9FFFh是通信對象子協議區和制造商特定子協議區。

01:通訊對象子協議區

通訊對象子協議區(Communication profile area)定義了所有和通信有關的對象參數。如下圖所示。

標綠色底紋的索引范圍1000h ~1029h為通用通訊對象,所有CANopen節點都必須具備這些索引,否則將無法加入CANopen網絡。其他索引根據實際情況進行分配與定義。

02、通用通訊對象

由于通用通訊對象十分重要,NMT主站(CANopen主站)在啟動時,通常都全部或者部分讀取所有從站中通用通訊對象中的索引,所以所有的通用通訊對象都必須在CANopen從站中實現,使用者也必須熟知這些索引地址與其含義。

03、用于設備描述的對象(索引1000h、1008h、1009、100A、1018)

設備類型參數的結構(設備類型索引0x1000h)可用來描述所使用的設備子協議或應用規范,如下圖所示“設備子協議編號”字段中包含CiA規定的子協議編號(如401表示I/O。設備子協議)。如果不是標準化的子協議,則子協議編號為0。

附加信息”字段對子協議執行的功能進行詳細說明,這些信息在相應的子協議中有規定。如果設備中含有多個邏輯設備,則“附加信息”為FFFFh。第一個邏輯設備的 子協議編號保存在對象67FFh中。下表所列為內置電機驅動器、編碼器和I/O模塊3個邏輯設備的對象字典。

以下對象也可用來描述設備屬性:

  • 索引1008h:制造商設備名稱;
  • 索引1009h:制造商硬件版本;
  • 索引100Ah:制造商軟件版本。

上面這3個固定不變的對象的數據類型均為Visible String,用戶可以讀取索引中的信息, 同時還可以用它們對設備進行更詳細的描述, 或告知用戶當前使用的設備版本。

此外,還有一個可以詳細描述設備的對象——相同對象(索引I018h)。它屬于一種結構(索引0023h),包含(最多)4個數據類型為unsigned32的條目。4.0版本以后的CANopen協議中,這個對象都規定為必選項,至少制造商ID(子索引01h)必須設置。

制造商ID是每一個制造商在全球的唯一標識,而且必須向CiA提出申請方可使用,禁止使用自行創建的制造商ID。此外,協議軟件或CANopen接口卡的供應商可能會提供制造商ID為0的產品,這種制造商ID是無效的, OEM(原始設備制造商)必須自己申請一個有效的ID。

04、用于錯誤顯示的對象(索引1001h和1003h)

錯誤寄存器(索引1001h) 包含錯誤類型信息,這些錯誤是內部設備經常出現的,如下圖所示。每一個錯誤都必須設有一個常規錯誤位,而特殊的錯誤位可以選擇性地設置。當錯誤排除后,相應的位復位。如果所有錯誤都排除了,常規錯誤位也會復位。錯誤寄存器是一個8位寄存器,其中所含的錯誤信息可以通過緊急報文來發送。

錯誤存儲器(預定義錯誤場,索引1003h) 是一個包含多達254個基本單元的數據場。這些基本單元提供近期引發緊急報文的錯誤列表。子索引00h表示錯誤存儲器中錯誤的個數,而基本單元的個數卻沒有硬性規定,但至少要有一個錯誤存儲單元,這樣才能保存最近一次出現的錯誤。

當設備出現新的錯誤時,通常會將錯誤保存在索引01h中。預定義錯誤場會招之前的錯誤依次向下移動,也就是升高一個子索引。這也可以算是一種堆棧,即在開頭添加新的單元。如果所有子索引都被占用,則刪除最早出現的錯誤。讀子索引00h的值會返回所存儲的錯誤的數量。如果所有錯誤都被排除了,子索引01h的值變為0。外,向子索引00h寫入0還可以將預定義錯誤場清零。

本文小部分內容引用自網絡,若有侵權請聯系刪除。

End

成功沒有捷徑,只有通過不斷的學習、學習再學習才能離成功更近一點點;想要學習的同學歡迎加入我們的技術交流群,共同學習,共同成長,讓我們離成功更近一步。

歡迎轉發

每篇原創內容都是我們用心血換來的知識精華,如果您覺得本文有價值,歡迎轉載分享;

歡迎加入

如果您對單片機及嵌入式設計感興趣,歡迎加入我們的辯論探討,加我微信【xyzn3333】

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 2
關注 51
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 南召县| 伊川县| 越西县| 当涂县| 茂名市| 花莲县| 定陶县| 武宣县| 苍溪县| 黔东| 钟山县| 吉木乃县| 饶河县| 大关县| 尼玛县| 北宁市| 辽阳县| 容城县| 聊城市| 阜康市| 丰宁| 神木县| 宕昌县| 九台市| 灯塔市| 扎鲁特旗| 广南县| 孝昌县| 容城县| 萨嘎县| 库尔勒市| 桂阳县| 廊坊市| 玉溪市| 耿马| 九龙城区| 深水埗区| 松原市| 商水县| 北海市| 海淀区|