1. 程式人生 > >CANopen系列文章【1】--SYNC【2】

CANopen系列文章【1】--SYNC【2】

1】

【遠方】同步RPDO是由主站傳送給從站的PDO,主站在傳送SYNC之前,將所有從站的RPDO傳送給從站,然後再發SYNC,此時所有從站同時處理此RPDO。

每個從站可以有不同的RPDO,以COB-ID來區分,所有的RPDO都要在一個同步週期處理完成。

2】

【遠方】CAN主站在所有從站的PDO傳輸前,要對PDO進行配置和對映,當PDO的配置和對映做完後,主站即切換從站的狀態為執行,開始PDO傳送,一般主站會傳送廣播的NMT控制所有從站同時執行,但這之前SYNC可能就已經在發送了,不過因為從站是預執行狀態所以都不會響應SYNC。  

【zzhhll】就是說 在預執行狀態 主站傳送SYNC的話,從站不會響應的,只有當從站處於執行狀態時,收到主站的SYNC後,才會進行同步PDO的動作。是這個意思嗎 

【遠方】是的,PDO只有在執行狀態才會有效,協議上有一張矩陣圖,說明各種服務在各種狀態下是否有效

3】

遠方認為如下觀點是正確的:

對於同步TPDO,我的理解是,當收到一個同步物件後,立即取樣,並在時間窗的前半段將取樣的資料用TPDO發給主機;
對於同步RPDO,我的理解是,當收到一個同步物件後,在時間窗的前半段執行上一個同步週期內收到的RPDO的內容,同時在時間窗後半段接收一個新的RPDO,然後在下一同步週期執行,依次類推。

4】

問:用canFestival做主站,下面掛了5個第三方的從站,如果使用SYNC同步互動PDO資料會不會出現衝突問題,因為無法修改從站(比如通過對SYNC計數從而避開多個從站同時傳送),這種情況下主站這頭還有什麼方法可以使用?  

遠方答案:使用同步PDO,你要對每個從站的PDO做配置,做對映的嘛,多個從站同時傳送有什麼問題?CAN本來就可以多個從站同時傳送,非同步模式也是可能多個從站同時傳送啊,CAN有碰撞檢測和優先順序機制的