CAN匯流排之通俗易懂 報文2

2021-09-22 16:25:23 字數 1326 閱讀 3580

遠端幀與資料幀十分相似,但是有兩個重要的區別:

遠端幀的預期目的是徵求傳輸相應的資料幀。例如,如果節點a傳輸乙個仲裁字段設定為234的遠端幀,那麼節點b(如果已經正確初始化)可能通過乙個仲裁欄位也設定為234的資料幀進行響應。

遠端幀可以用來實現匯流排通訊管理的請求-響應型別。但是,遠端幀在實踐中很少使用。還有一點值得注意的是,can標準沒有規定這裡列出的特性。大部分can控制器都可以進行程式設計自動響應遠端幀或通知本地cpu。

關於遠端幀的乙個注意事項:資料長度**必須設定成預期響應報文的長度。否則仲裁將不起作用。

有時據稱響應遠端幀的節點會在識別識別符號後立即開始傳輸,從而「填充」空的遠端幀。但是事實並非如此。

遠端幀(2.0a型別):

簡單地說,錯誤幀是一種違背can報文幀規則的特殊報文。乙個節點咋在檢測到故障時傳送錯誤幀,這將導致所有其它節點也檢測到故障,它們也將傳送錯誤幀。然後傳送節點將自動嘗試重傳報文。有一種精準的錯誤計數器方案,可以確保節點無法通過重複傳輸錯誤幀來破壞匯流排通訊。

錯誤幀包含乙個錯誤標誌。這個錯誤標誌是6位長的相同值(因此違背位填充規則)和乙個錯誤定界符(8個隱性位)。錯誤定界符提供一些空間,以便匯流排上其它節點在檢測到第乙個錯誤標誌時可以傳送它們的錯誤標誌。

錯誤幀圖示如下:

這裡,我們僅僅出於知識完整性目的而提及過載幀。在格式方面,過載幀與錯誤幀非常相似,並且由會變得重荷的節點傳送。過載幀並不常用,因為當今的can控制器會非常智慧型化地避免使用過載幀。事實上,會生成過載幀的唯一一種控制器是現在已經過時。

最初,can標準把仲裁欄位中識別符號的長度定義為11位。後來,客戶的需求推動了該標準得延伸。新格式通常稱為擴充套件can,識別符號不允許少於29位。為了區分這兩種幀型別,在控制欄位中使用了乙個保留位。

標準的正式名稱是

1.x表示初始規範及其修訂版。

如今的新型can控制器通常是2.0b型別。1.x或2.0a型別的控制器如果接收到29個仲裁位的報文會很麻煩。2.0b被動型控制器容許這些報文,如果它們正確的話會進行應答,然後拋棄這些報文。2.0b主動型控制器既可傳送也可接收這些報文。

實現2.0b和2.0a(和1.x)的控制器相互相容,並且可以在同一匯流排上使用它們,則只要實現2.0b的控制器不傳送擴充套件幀即可!

有時候人們說標準can「優於」擴充套件can,因為擴充套件can報文會產生更多的間接費用。這種說法未必正確。如果您使用仲裁欄位來傳送資料,那麼擴充套件can實際上的發生的間接費用可能比標準can少。

通俗易懂之Ajax

在網頁載入的時候,載入的都是靜態的資源,你寫的每一句話,每乙個結構都是固定的,比如在哪個區域顯示哪張,頁面渲染之後都無法在改變,想要改變就只有改 然後在重新整理頁面。而ajax可以讓我們在 執行的時候,去請求其他地方的資源或者介面,然後把請求來的資料,根據我們寫好的方法渲染到頁面上,多次進行ajax...

通俗易懂之Ajax 二

我們常用的請求方式有get請求和post請求,其中get請求一般是用來獲取資料的,post請求一般是上傳資料的。function get url,callback 上面的if 也可以簡寫成邏輯運算子的短路操作 callback callback xhr.responsetext function p...

CAN匯流排之CAN的報文格式

來自部落格 一 幀can協議的報文傳輸主要由下面的4種幀來實現 資料幀 從傳送端攜帶資料到接收端。遠端幀 匯流排單元發出遠端幀,請求傳送具有同一識別符的資料幀。錯誤幀 任何單元檢測到一匯流排錯誤就發出錯誤幀。過載幀 過載幀用以在先行的和後續的資料幀 或遠端幀 之間提供一附加的延時。同時幀間空間用來間...