通常我們拿到某個ecu的通訊矩陣資料庫檔案,.dbc字尾名的檔案。 直接使用candb++ editor開啟,可以很直觀的讀懂訊號矩陣的資訊,例如下圖:
現在要把上圖呈現的訊號從.dbc檔案中解析出來,供實現自動化**匯流排訊號使用,比如使用python+支援can收發的硬體即可替代canoe實現訊號**(效能上不夠用,可滿足功能測試所需)。
乙個標準can幀中包含的資訊有,訊息id、報文傳送週期、 報文長度、訊號資訊等。
開始解析前,先了解一下報文幀。下表體現了摩托羅拉位元組位序的報文傳送時的位元組序和bit序,一會兒可以幫助我們理解dbc中的定義
1)motorola格式與intel格式
這個決定了訊號起始bit, 生成報文計算訊號值時的大小端演算法。
motorola格式:
訊號以高位元組低位起始,此處佔了12bit, 以第二位元組的低bit 12位算起,計12個bit總長度,訊號是連續的(此處連續針對低位元組在前的位元組傳送序,參看lsb與msb)。
比如我設定續航里程998km, 它的訊號值在整條報文中表現為 3e,60,00,00,00,00,00,00
intel格式:
訊號以低位元組低位起始,此處佔了12bit, 以第一位元組的低bit 0位算起,計12個bit總長度,訊號是非連續的(傳送的位元組序體現出的訊號值非連續,但是bit位是由低到高連續的)。
比如我設定續航里程998km, 訊號值在報文中為 e6,03,00,00,00,00,00,00
DBC檔案解析 基於DBCView工具
關於dbc最全的文章在這裡 最新的dbcview的使用方法在 一 最新的dbcview的使用方法在 一 免費的dbc和excel相互轉換方法 dbc檔案解析 基於dbcview工具 1 dbc解析 網路節點 2 dbc解析 節點收發msg dbc檔案中會為每個節點定義傳送訊息和接收訊息 例如下圖所示...
DBC檔案的閱讀方法
最近為apollo適配新的線控的底盤,部分線控底盤的 商會給三個檔案 dbc檔案,協議說明書和協議的詳細檔案 一般都是excel檔案 第乙個檔案就是apollo官方可以通過工具直接生成protocol檔案的,第二個檔案主要是說明如何使用這個協議的,第三個檔案是第乙個檔案的延展,具體到每個位或位元組代...
車聯網隨筆
車聯網隨筆 網際網路時代讓事物充滿無限的可能 2g 3g 4g時代 以tbox為代表的一系列具備聯網功能的車載智慧型硬體 遠端控制 遠端啟動 資料採集 自定義場景 落水或碰撞熄火後自動開啟車窗解鎖車門 行車記錄儀 語音助手 5g時代 車聯網產品形態變得更為豐富 can匯流排向乙太網公升級 v2x產生...