CANopen模塊的服務(wù)數據對象SDO協(xié)議是什么?
CANOPEN的SDO協(xié)議用于設置和從遠程設備的對象字典中讀取值。訪(fǎng)問(wèn)對象字典的設備是SDO服務(wù)器,訪(fǎng)問(wèn)遠程設備的設備是SDO客戶(hù)端。通訊始終由SDO客戶(hù)端啟動(dòng)。下面由CANOPEN模塊廠(chǎng)家無(wú)錫凌科自動(dòng)化為大家介紹一下服務(wù)數據對象SDO協(xié)議。
在CANopen術(shù)語(yǔ)中,從SDO服務(wù)器查看通信,以便從對象字典中進(jìn)行讀取會(huì )導致SDO上傳,而對字典條目的寫(xiě)入即是SDO下載。
因為對象字典值可以大于CAN幀的八個(gè)字節限制,所以SDO協(xié)議實(shí)現了對較長(cháng)消息的分段和反分段。實(shí)際上,有兩種協(xié)議:SDO下載/上傳和SDO塊下載/上傳。SDO塊傳輸是標準的更新版本,它允許以較少的協(xié)議開(kāi)銷(xiāo)傳輸大量數據。
可以在對象字典中設置從客戶(hù)端到服務(wù)器以及從服務(wù)器到客戶(hù)端的各個(gè)SDO傳輸消息的COB-ID。在對象字典中可以在地址0x1200-0x127F上最多設置128個(gè)SDO服務(wù)器。同樣,可以使用變量0x1280-0x12FF來(lái)配置設備的SDO客戶(hù)端連接。但是,預定義的連接集定義了一個(gè)SDO通道,即使在啟動(dòng)后(處于預操作狀態(tài))也可以使用該SDO通道來(lái)配置設備。該通道的COB-ID為0x600 +用于接收的節點(diǎn)ID和0x580 +用于發(fā)送的節點(diǎn)ID。
要啟動(dòng)下載,SDO客戶(hù)端會(huì )在CAN消息中使用SDO通道的“接收” COB-ID發(fā)送以下數據。
字節1 | 字節2-3 | 字節4 | 字節5-8 | ||||
3位元 | 1位元 | 2位元 | 1位元 | 1位元 | 2字節 | 1個(gè)字節 | 4字節 |
ccs = 1 | 保留(= 0) | n | e | s | 索引 | 子索引 | 數據 |
ccs是SDO傳輸的客戶(hù)端命令說(shuō)明符,對于SDO段下載為0,對于SDO段下載為1,對于啟動(dòng)下載為2,對于啟動(dòng)SDO段上傳,為3為SDO段上傳,4為中止SDO傳輸,5為SDO塊上傳,6 SDO塊下載
n是消息的數據部分中不包含數據的字節數,僅當設置了e和s時(shí)有效
e(如果已設置)表示加急傳輸,即,所有交換的數據都包含在消息中。如果清除此位元,則消息是分段傳輸,其中數據不適合一條消息,而使用多條消息。
s(如果已設置)表示在n(如果已設置e)或消息的數據部分中指定了數據大小
index是要訪(fǎng)問(wèn)的數據的對象字典索引
subindex是對象字典變量的子索引
數據包含在快速傳輸(設置為e)的情況下要上傳的數據,或要上傳的數據的大?。ㄔO置為s,未設置e)
以上便是CANopen模塊的SDO協(xié)議的介紹,了解更多關(guān)于CANOPEN模塊、DEVICENET模塊作用等等現場(chǎng)總線(xiàn)知識,歡迎大家前往CANOPEN主站模塊廠(chǎng)家無(wú)錫凌科自動(dòng)化公司。