本期,我們將探討CANopen協(xié)議中TPDO的三種觸發(fā)條件,并解釋如何通過訪問特定的SDO參數(shù)來查詢TPDO映射到的資源。這將幫助您更好地理解TPDO的工作原理及其在CANopen網(wǎng)絡(luò)中的應用。
?TPDO觸發(fā)條件
在上一期中,我們了解到TPDO(傳輸過程數(shù)據(jù)對象)的傳輸類型有很多種:同步周期性傳輸、RTR(遠程傳輸請求)以及異步制造商特定事件等。這些類型的觸發(fā)條件主要分為三種:同步(SYNC)、遠程請求(RTR)和事件(Event)。
同步報文(SYNC):這是一種周期性的傳輸方式,要求主站定期發(fā)送ID為0x80的數(shù)據(jù)幀,且數(shù)據(jù)段長度為0字節(jié)。
遠程傳輸請求(RTR):在這種模式下,主站只需發(fā)送一個遠程幀,指定TPDO的ID,從站就會響應并上傳相應的TPDO。
事件(Event):當從站的TPDO映射區(qū)間內(nèi)的數(shù)值發(fā)生變化時,從站會主動觸發(fā)事件并進行數(shù)據(jù)傳輸。
理解了這些觸發(fā)條件后,我們可能會好奇:如何確定當前TPDO映射的具體資源呢?
?TPDO映射資源
在CANopen協(xié)議中,TPDO的映射參數(shù)存儲在0x1A00~0x1BFF的索引區(qū)間內(nèi),我們可以通過SDO訪問TPDO1的映射參數(shù)0x1A00,如下圖:
0x00子索引存放TPDO1的映射數(shù)量,從0x01子索引開始會告訴我們,它映射到0x2000以后的索引區(qū)中哪一條子索引,并且會注明存放對象的長度。舉個例子:
假設(shè)0x1A00的01子索引的值為0x20000108,這意味著:
- TPDO1映射到0x2000索引的子索引01。
- 這個子索引的資源長度為一個字節(jié)(8位)。
由于CAN幀的數(shù)據(jù)段最大為8個字節(jié),因此每條TPDO映射的索引對象總長度不能超過8個字節(jié)。當這些映射的資源區(qū)發(fā)生任何數(shù)據(jù)變化時,就會觸發(fā)一個事件。
想要深入了解CANopen協(xié)議和TPDO映射的更多細節(jié),請繼續(xù)關(guān)注我們。
? 2路CANFD
?DB9接口形式
? 13萬幀緩沖不丟幀
參考價格:2300元
-
CAN
+關(guān)注
關(guān)注
57文章
2747瀏覽量
463674 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7565瀏覽量
88765 -
CANopen
+關(guān)注
關(guān)注
8文章
253瀏覽量
43585
發(fā)布評論請先 登錄
相關(guān)推薦
評論