lx_can 協議採用靈活的通訊模式,支援主從方式通訊模式和事件觸發通訊模式。生產者消費者通訊模式用於 lx_can 網路中的生產者對於消費者的訪問。
lx_can協議的
生產者消費者模式在lx_can協議中有三種方式:
1.廣播方式
所有的消費者必須接受廣播方式命令幀。位址0xff用於識別廣播通訊。在廣播報文中目標節點位址為
0xff
,如下:
2.組位址(一對多)
lx_can協議中,組位址方式是一種一對多的模式,即乙個組位址多個不同的位址號和通訊物件。如下圖:
3.實體地址(點對點)
lx_can協議中,生產者消費之模式下的實體地址的方式是一對一的點對點方式。如下圖:
生產者根據應用軟體所需要的操作確定消費者源位址、功能碼、以及所要的操作資源節點和資料引數,按lx_can報文格式封裝傳送到
lx_can
網路節點上。
消費者接收到生產者的報文後,需要根據報文中的目標節點、功能碼、資源節點以及資料引數進行判斷,以決定該報文是否為合法的報文。如果為合法的報文則執行相應的操作,並返回正常的響應報文;如果為非法的報文,則丟棄接收的報文,返回異常響應報文,並根據錯誤在異常響應報文中指明錯誤**,以供消費者決定下乙個操作。lx_can協議報文處理過程,如下:
1.命令幀
優先順序源位址
目的位址
ack=0
重複位保留
分段碼0-7個資料
ack表示需要目標節點應答,當目的位址
=0xff
時命令幀為廣播幀時,廣播幀可以設定
ack=1
。2.正常響應幀
如果lx_can的網路節點收到命令幀,並成功處理後,目標節點傳送「正常響應幀」至網路。
正常響應幀格式如下:
優先順序源位址
目的位址
ack=1
重複位保留
分段碼0-7個資料
ack=1 表示為響應幀,無需應答。功能碼 與「命令幀」的 功能碼 相同,表示本幀為正常響應。
3.異常響應幀
如果 lx_can 網路的目標節點在收到「命令幀」後,無法對該命令幀進行處理(例如功能碼不支援、引數錯誤時等) ,則傳送「異常響應幀」至網路。
異常響應幀的格式如下:
優先順序源位址
目的位址
ack=1
重複位保留
分段=0x00
0-7個資料
ack=1 表示為響應幀,無需應答。分段碼
=0x0f
表示本幀為回應錯誤**。錯誤碼如下:
錯誤碼描述
01功能碼不存在
02資源不存在
03命令不支援
04引數非法
05操作無效
在lx_can命令
/響應幀中,最多傳送
7位元組資料,為了實現更多位元組資料地傳輸,
lx_can
協議規範定義了分段傳輸協議。
1.lx_can分段幀格式
「命令幀」格式:
優先順序源位址
目的位址
ack=0
重複位保留
分段碼0-7個資料
「響應幀」格式:
優先順序源位址
目的位址
ack=1
重複位保留
分段碼0-7個資料
lx_can 協議使用
can
報文資料部分的第
1 位元組用於指示分段傳輸,該位元組的格式定義如下:
分段碼bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
segpolo
segnum
segpolo 表示分段標誌,
segnum
表示分段編號
,segpolo
的位定義如下:
dd含義
00未分段
01分段資料第一段
10分段資料中間段
11分段資料結尾段
採用分段傳輸時,第 1 分段的
segflag=0x40
,最後的分段
segflag=0xc0
值。當報文分段傳輸時,接收節點
(目標節點
)只在接收完最後分段後才做出響應。
2.lx_can分段傳輸規則
在傳送大於 7 個位元組長度的資料時, 需要採用分段傳輸報文的方法。 當命令報文使用分段傳輸時,從站在接收完所有的分幀報文後才向主站回送響應報文。
CAN匯流排協議 CAN訊息之「報文型別」
can有四種不同的報文型別 資料幀 遠端幀 錯誤指示幀和超載幀。1 資料幀 can協議有兩種資料幀型別 標準can和擴充套件can 見上文 乙個資料幀中包括7個主要的域 幀起始域 標誌資料幀的開始,由乙個顯性位組成。仲裁域 內容由標示符和遠端傳輸請求位 rtr 組成,rtr用以表明此資訊幀是資料幀還...
CAN協議簡介
硬體設計好了,在進行軟體程式設計之前我們最好對 can匯流排的協議有個了解。一 報文傳送由以下四種幀型別 1 資料幀 資料幀攜帶資料從傳送器至接收器。2 遠端幀 匯流排單元發出遠端幀,請求傳送具有同一識別符的資料幀。3 錯誤幀 任何單元檢測到一匯流排錯誤時就傳送錯誤幀。4 超載幀 用來在先行的和後續...
CAN匯流排協議
can control controller area network 是控制 器 區域網的簡稱 can是一種有效支援分布式控制或實時控制的序列通訊網路,最初由德國bosch公司80年代用於汽車內部測試和控制儀器之間的資料通訊。目前can 匯流排規範已被國際標準化組織iso制訂為國際標準iso118...