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