新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 現(xiàn)場總線CANopen學(xué)習(xí)總結(jié)筆記三---基本原理和通信對象

現(xiàn)場總線CANopen學(xué)習(xí)總結(jié)筆記三---基本原理和通信對象

作者: 時間:2016-12-14 來源:網(wǎng)絡(luò) 收藏
第四章,應(yīng)用層,為重點(diǎn)章。

主要包含知識點(diǎn)基本原理、通信對象、對象字典、網(wǎng)絡(luò)管理系統(tǒng)、CAN標(biāo)識符分配、節(jié)點(diǎn)ID分配。

本文引用地址:http://m.butianyuan.cn/article/201612/329854.htm

這篇筆記主要是先記錄基本原理和通信對象。

4.1基本原理

為了便于統(tǒng)一觀察CANopen設(shè)備,我們引入一種基本的設(shè)備模型,其包含:通信單元、應(yīng)用過程、對象字典。

通信單元由CAN收發(fā)器、CAN控制器和CANopen協(xié)議棧組成,協(xié)議棧中包括通信對象(PDO和SDO)和狀態(tài)機(jī)。

對象字典是應(yīng)用單元與通信單元之間的接口,實(shí)際上是設(shè)備的所有參數(shù)列表。

CANopen協(xié)議中定義了3種不同類型的通信關(guān)系:分別為主機(jī)-從機(jī)模型、客戶端-服務(wù)端模型以及生產(chǎn)者-消費(fèi)者模型。

主機(jī)-從機(jī)模型僅用于網(wǎng)絡(luò)管理(NMT),每組主機(jī)-從機(jī)模型都需要一個CAN標(biāo)識符。

客戶端-服務(wù)器描述的是兩個設(shè)備之間的通信關(guān)系。需要兩個CAN標(biāo)識符,只用于SDO通信。

生產(chǎn)者-消費(fèi)者模型描述一個生產(chǎn)者和一個或多個消費(fèi)者的一對多通信關(guān)系,只需要一個CAN標(biāo)識符。

4.2通信對象

CANopen應(yīng)用層詳細(xì)描述了各種不同類型的通信對象(COB),分4種類型:

過程數(shù)據(jù)對象(PDO)

服務(wù)數(shù)據(jù)對象(SDO)

預(yù)定義對象

網(wǎng)絡(luò)管理對象

過程數(shù)據(jù)對象(PDO):

1.通信參數(shù)

通信參數(shù)用來描述PDO特性。通信參數(shù)按照定義好的地址保存在設(shè)備對象,用戶可以通過服務(wù)數(shù)據(jù)對象對通信參數(shù)進(jìn)行訪問。

通信參數(shù)記錄有5個可用的子條目:COB標(biāo)識符、傳輸類型、禁止時間、事件計(jì)數(shù)器和同步初始值。前兩項(xiàng)為必選。

2.PDO的CAN標(biāo)識符

COB標(biāo)識符(COB-ID)位于通信參數(shù)的子索引01h上,COB標(biāo)識符是一個32位值,0~10位是CAN標(biāo)準(zhǔn)幀標(biāo)識符。只有在預(yù)操作狀態(tài)下才能對PDO的COB標(biāo)識符進(jìn)行訪問。

3.PDO鏈路

如果使用生產(chǎn)者-消費(fèi)者模型在不可編程的NMT從機(jī)之間直接進(jìn)行數(shù)據(jù)交換,用戶還必須為這些從機(jī)配置適當(dāng)?shù)腃AN標(biāo)識符,使生產(chǎn)者的CAN標(biāo)識符和消費(fèi)者的CAN標(biāo)識符一致,這種方法叫做PDO鏈路。

4.PDO的通信類型

PDO的通信類型有事件驅(qū)動、遠(yuǎn)程請求或輪詢、同步傳輸。

事件驅(qū)動是當(dāng)輸入值發(fā)生改變的時候,數(shù)據(jù)立即被發(fā)送出去。

PDO通信參數(shù)索引02h為PDO傳輸類型,其定義了觸發(fā)TPDO傳輸或處理收到的RPDO的方法。

傳輸類型有0,1~240,241~251,252,253,254、255。書中的表4.2PDO傳輸類型“×”表示選中的類型,而并非是不支持的意思。

5.禁止時間和事件計(jì)時器

禁止時間(子索引03h)的功能相當(dāng)于PDO發(fā)送過濾器,在PDO輸入數(shù)據(jù)第一次變化時,無等待地直接發(fā)送該P(yáng)DO數(shù)據(jù),之后PDO輸入數(shù)據(jù)再發(fā)生變化時就不會立即觸發(fā)PDO發(fā)送。禁止時間可以避免PDO占用全部總線帶寬,從而妨礙發(fā)送最低優(yōu)先級的PDO。

子索引(05h)為異步PDO傳輸設(shè)置一個事件計(jì)時器。

子索引06h(同步初始值)定義了同步計(jì)數(shù)器的初始值,在傳輸同步信息時,同步計(jì)數(shù)器不斷遞增以進(jìn)行同步。

6.PDO通信的優(yōu)化

在優(yōu)化中具有決定性意義的是保留足夠的總線帶寬可供其他功能使用。

需要注意PDO通信的優(yōu)缺點(diǎn),總線負(fù)載,“浪涌”的概念,其中總線負(fù)載是指多個循環(huán)范圍內(nèi)的CAN總線占有率的平均值。

另外,還有一個相當(dāng)重要的PDO通信參數(shù)---PDO映射參數(shù)。PDO映射參數(shù)包含指向PDO需要發(fā)送的過程數(shù)據(jù)的指針(利用索引和子索引表示)。那么說明索引與子索引的組合就是一個指針,應(yīng)該可以這樣理解。

PDO映射參數(shù)的子索引00h表示的是映射對象的數(shù)量。

所有映射過程參數(shù)的最大長度都不能超過8字節(jié),分為靜態(tài)PDO映射、可變PDO映射、動態(tài)PDO映射。其中靜態(tài)PDO無法修改,可變PDO可以修改,不過要遵守修改方法。

而動態(tài)PDO映射是指設(shè)備處于操作狀態(tài)時,對其進(jìn)行PDO配置。

7.復(fù)用PDO

MPDO融合了PDO和SDO的主要特性,其指定了地址(索引和子索引)的過程數(shù)據(jù)將通過一個獨(dú)有的CAN消息以高速廣播的方式傳播。

(11.28)

其中有兩個尋址方式,一個是源模式尋址,一個是目標(biāo)模式尋址。主要應(yīng)用領(lǐng)域一是通過傳輸過程數(shù)據(jù)地址實(shí)現(xiàn)傳輸任意數(shù)量的數(shù)據(jù),無需設(shè)置PDO。二是群發(fā)消息。

優(yōu)點(diǎn):MPDO映射記錄子索引值為255,而普通PDO在0~64之間。

缺點(diǎn):需要更多的帶寬。

總結(jié)一個:PDO是用來傳輸實(shí)時數(shù)據(jù)。

4.2.2服務(wù)數(shù)據(jù)對象SDO

CANopen設(shè)備為用戶提供了一種訪問內(nèi)部設(shè)備數(shù)據(jù)的標(biāo)準(zhǔn)途徑,設(shè)備由一種固定的結(jié)構(gòu)(對象字典)管理。對象字典的條目可以通過服務(wù)數(shù)據(jù)對象(SDO)來訪問,由此需要成對的SDO服務(wù)器和客戶端。SDO之間的數(shù)據(jù)交換通常都是由SDO客戶端發(fā)起的,這好比是對象字典是在一間房子里面的管家,SDO服務(wù)器是門禁系統(tǒng),SDO客戶端是郵遞員,當(dāng)有郵遞員來的時候,會發(fā)起門鈴以告訴門禁要來送信(數(shù)據(jù))。

SDO之間交換至少需要兩個CAN報(bào)文才能實(shí)現(xiàn),而且兩個CAN報(bào)文的CAN標(biāo)識符不能一樣。一個CAN標(biāo)識符為節(jié)點(diǎn)地址(有服務(wù)器的設(shè)備)+1536(600h)的CAN報(bào)文用于確定的協(xié)議信息。一個CAN標(biāo)識符為節(jié)點(diǎn)地址(有服務(wù)器的設(shè)備)+1408(580h)的CAN報(bào)文來應(yīng)答。

SDO傳輸有三個類型:加速SDO傳輸、分段SDO傳輸、塊傳輸。

加速SDO傳輸適用于:傳輸數(shù)據(jù)不超過4字節(jié),所以整個傳輸過程只需要2條CAN報(bào)文。傳輸效率為0.0625~0.25。

分段SDO傳輸適用于:超過4字節(jié)的傳輸數(shù)據(jù)。傳輸效率為0.218~0.432。

為了彌補(bǔ)這一不足,引入一種擴(kuò)展SDO傳輸方式,效率更高,速度更快,傳輸量更大------塊傳輸。其中塊傳輸進(jìn)行寫操作和讀操作有所不同,不過兩者都要求有較高的緩沖能力,否則會發(fā)生溢出。在傳輸發(fā)生溢出時,寫操作和讀操作可以不需要重新發(fā)新之前發(fā)送過的塊段,而是重新安排塊大小以適合傳輸。塊傳輸?shù)男蕿?.142~0.836。

4.2.3同步

在通過網(wǎng)絡(luò)進(jìn)行通信的應(yīng)用中,發(fā)送和接收之間必須相互協(xié)調(diào)和同步。CANopen便引入同步對象。同步對象是指不含數(shù)據(jù)字節(jié)或只含有一個數(shù)據(jù)字節(jié)的CAN報(bào)文。

同步對象的CAN標(biāo)識符為80h,用戶可通過“循環(huán)周期”和“同步窗口長度”來對同步機(jī)制進(jìn)行參數(shù)設(shè)置。循環(huán)周期是指同步對象通過總線發(fā)送的這段時間。同步PDO必須在同步對象發(fā)送完畢之后的同步時間窗口范圍內(nèi)發(fā)送。

同步對象只適用于已經(jīng)工作在同步模式的PDO。如果只將發(fā)送方的TPDO配置成同步傳輸,且把接收方的RPDO定義為事件驅(qū)動,可以大大改變時間特性。

如果使用了同步計(jì)數(shù)器,還可以在PDO通信參數(shù)中配置同步初始值。

4.2.4發(fā)送設(shè)備錯誤信號

CANopen網(wǎng)絡(luò)設(shè)備中出現(xiàn)的錯誤大致分為兩類:一是通信錯誤,二是應(yīng)用錯誤。其中緊急報(bào)文由標(biāo)準(zhǔn)化機(jī)制發(fā)送。緊急報(bào)文包含以下信息:緊急錯誤代碼、索引1001h(錯誤寄存器)和協(xié)議或制造商定義信息。緊急錯誤代碼中有不同的代碼值,代表不同的錯誤




評論


技術(shù)專區(qū)

關(guān)閉