canopen部分 5 pdo指令


進(jìn)行pdo通信,需要配置兩個(gè)部分:通訊參數(shù)和映射參數(shù).
pdo類似于"暗號"通信,在進(jìn)行通信前,需要配置.
pdo的通道建立就是靠配置通訊參數(shù)和映射參數(shù)實(shí)現(xiàn)的,所以這里是重點(diǎn).
這些配置信息,是記錄在字典里面的.
某款驅(qū)動器上位機(jī)的界面,用于配置通訊參數(shù)和映射參數(shù),
rpdo的通訊參數(shù):

rpdo的映射參數(shù):

上面兩張圖可以表達(dá)為:
RPDO1綁定的通訊參數(shù),索引為1400h 綁定的映射參數(shù),索引為1600h
RPDO2綁定的通訊參數(shù),索引為1401h 綁定的映射參數(shù),索引為1601h
RPDO3綁定的通訊參數(shù),索引為1402h 綁定的映射參數(shù),索引為1602h
RPDO4綁定的通訊參數(shù),索引為1403h 綁定的映射參數(shù),索引為1603h
上面是接收rpdo,也有發(fā)送pdo即tpdo:
tpdo通訊參數(shù):

tpdo映射參數(shù):

上面兩張圖可以表達(dá)為:
TPDO1綁定的通訊參數(shù),索引為1800h 綁定的映射參數(shù),索引為1A00h
TPDO2綁定的通訊參數(shù),索引為1801h 綁定的映射參數(shù),索引為1A01h
TPDO3綁定的通訊參數(shù),索引為1802h 綁定的映射參數(shù),索引為1A02h
TPDO4綁定的通訊參數(shù),索引為1803h 綁定的映射參數(shù),索引為1A03h
pdo的發(fā)送方式是通信參數(shù)決定的.映射參數(shù)決定了發(fā)送的內(nèi)容解析.

上面映射參數(shù)和通訊參數(shù)是存在字典中的內(nèi)容,具體存在哪里,要看索引.
索引就是字典上的"門牌號".
下面解說ID,也就是can報(bào)文的id,在canopen中又叫做cob-id.
這個(gè)ID決定了報(bào)文的角色.
(即sdo,pdo,nmt報(bào)文的分類依靠id).
這里的id也是在cia301中規(guī)定好的.
下面還是以驅(qū)動器為例,cia301中規(guī)定

TPDO的指令是181h,281h,381h,481h.見到這幾個(gè)開頭的報(bào)文,就知道它是驅(qū)動器發(fā)送的TPDO
RPDO的指令是201h,301h,401h,501h.見到這幾個(gè)開頭的報(bào)文,就知道它是驅(qū)動器接收的RPDO
注:單片機(jī)和驅(qū)動器的接收發(fā)送id是相反的.
舉例:
通過can分析儀接收到總線上有報(bào)文201,e8 03
注意報(bào)文都是十六進(jìn)制的.
但是由于id是201,所以可以確定是pdo報(bào)文,后面的數(shù)據(jù)必須按照pdo的格式去解析.
又因?yàn)?/span>201,可以知道,是驅(qū)動器要接收的報(bào)文.(那一定就是單片機(jī)發(fā)送的了.)
因?yàn)槭?/span>201,可以解讀為200+1,這個(gè)1是1號節(jié)點(diǎn),即是控制線上1號驅(qū)動器的.
這個(gè)時(shí)候是不知道哪個(gè)pdo通道發(fā)送的.
這個(gè)時(shí)候也不知道e8 03這個(gè)數(shù)據(jù)代表什么,因?yàn)槲覀儾恢雷值?/span>
(字典是存儲在驅(qū)動器里的,可以去讀,然后就知道e8 03 代表什么了).
?
PDO相當(dāng)于通道.一般驅(qū)動器里面有4個(gè)通道(這個(gè)是廠家決定的).
比如:
PDO1是第一個(gè)通道,至于里面?zhèn)鬏數(shù)膬?nèi)容(索引,字典決定).
可以是1,2,3,4,…中任意節(jié)點(diǎn)中的一個(gè)(id / cob-id 決定).
就是單片機(jī)的TPDO1可以配置線上任意驅(qū)動器中的一個(gè).

在使用PDO這種通信之前,要按照需求配置通信雙方的字典,從而引導(dǎo)數(shù)據(jù)的流動.以TPDO1配置為例:





用sdo配置pdo的過程是固定的:
????失能, 使能pdo(失能通訊參數(shù)1800h的01h子索引)
????類型,(傳輸類型的配置,通訊參數(shù)1800h的02h子索引)
????消數(shù),(消去映射參數(shù)1A00h里面的個(gè)數(shù))
????寫入數(shù)據(jù),(寫入映射參數(shù)1A00h里面的數(shù)據(jù)6072h)
????寫入個(gè)數(shù),(寫入映射參數(shù)1A00h里面的個(gè)數(shù))
????失能,(失能通訊參數(shù)1800h的01h子索引)
????(在進(jìn)行pdo操作之前,要先讓can總線進(jìn)入操作模式,可以發(fā)送000,01 00)
實(shí)例如下:
