網(wǎng)絡(luò)和現(xiàn)場總線模塊-CANopen
CANopen是針對第7層(ISO/OSI模型中的用戶層)的通信協(xié)議,配置具有高度的靈活性,可以使用CAN作為第2層傳輸介質(zhì)。它最初是專為運動控制應(yīng)用而開發(fā)的,現(xiàn)在已成為廣泛應(yīng)用于醫(yī)學(xué)工程,海事導(dǎo)航,鐵路,甚至樓宇自動化領(lǐng)域的通信協(xié)議。 |
CANopen并非是一個典型的主從系統(tǒng),它運行客戶端 - 服務(wù)器服務(wù)并遵循生產(chǎn)者-消費者機制。
它可以提供標準化的通信對象:配置對象目錄項的服務(wù)數(shù)據(jù)對象(SDO),傳輸實時數(shù)據(jù)的過程數(shù)據(jù)對象(PDO),控制與監(jiān)控節(jié)點的網(wǎng)絡(luò)管理對象(NMT)以及其它對象如同步對象,時間戳和緊急報文。
CAN的報文格式
- 圖顯示了CAN的報文格式。報文起始由的顯性位發(fā)送,緊接著是11位標識符以及區(qū)分數(shù)據(jù)報文和數(shù)據(jù)請求報文(遠程幀)的更遠一位。借助遠程幀,網(wǎng)絡(luò)節(jié)點可以觸發(fā)系統(tǒng)中另一個節(jié)點的報文傳輸??刂谱侄瘟艘粋€報文的發(fā)送格式(標準/擴展)以及隨后數(shù)據(jù)的字節(jié)數(shù)。
- CAN報文的數(shù)據(jù)場范圍為0至8個字節(jié)。數(shù)據(jù)場之后是15位的CRC場。該場用于接收器檢查接收到的報文。在應(yīng)答場中,報文發(fā)送器期望從至少一個接收的網(wǎng)絡(luò)節(jié)點處獲得所傳送報文的無差錯接收的應(yīng)答信號。網(wǎng)絡(luò)中所有接收到無差錯報文的節(jié)點給出此應(yīng)答,并在應(yīng)答間隙中發(fā)送一個顯性位。此應(yīng)答專門用于傳輸側(cè)的故障排除。
- 最后,幀結(jié)束場顯示完整的無差錯CAN報文。
在ISO 11898標準中,從OSI數(shù)據(jù)通信模型的角度來看,CAN協(xié)議定義了第1層和第2層。然而,更廣泛的功能對于實現(xiàn)網(wǎng)絡(luò)相當必要。針對嵌入式系統(tǒng)和工業(yè)自動化應(yīng)用,有兩個標準可選:CANopen和DeviceNet。
高效的錯誤檢測和故障排除
,CAN協(xié)議的特點之一是它能夠檢測傳輸錯誤。因此這可以滿足的要求,例如針對機動車輛中的控制設(shè)備網(wǎng)絡(luò)。的錯誤檢測能力是由不同的錯誤檢測措施的組合實現(xiàn)的。這方面的措施之一是由能檢測所有全局有效錯誤的報文發(fā)送器監(jiān)控總線電平。此外,每個報文接收器都會檢查每個接收到的報文,它們基于已定義的格式元素和CRC場。以這種方式檢測錯誤只有局部有效。除了檢測傳輸錯誤之外,CAN協(xié)議還包含一種檢測并關(guān)閉有缺陷的網(wǎng)絡(luò)節(jié)點的機制。這將確保有缺陷的網(wǎng)絡(luò)節(jié)點無法持續(xù)干擾報文傳輸。