ESP32(10) CAN Logger功能驗收
插在OBD2上的樣本二號像是平安符,注意,第三片小板子上去了。這篇是這系列的最後一篇了,我們來看看它的功能 [Put them together,功能確認] 先前比較少著墨軟體,這裡聊一下軟體設計 驗證部分我使用Linux的的 CAN-Utils 套件,他是Volkswagen Group Electronic Research編寫的( 版權宣告 ),這一系列工具非常方便。下面的命令會間隔1ms灌包,封包數值會遞增,方便檢查有無掉封包 cangen can1 -g1 -L8 -Di 實驗完成,真的有檔案跑出來 第一個封包序號0x114,最後序號0x15934F,一共1413961封包,和圖二編輯器行號吻合,沒掉封包。連續錄送1500秒,大約1秒942發。CAN本身會塞一些stuffing bit,這大概125K CAN極速 本來在一個task收CAN和寫資料,加深CAN queue還會掉封包。開出專門寫SD卡的task,並且入口的queue放深一點,從此不掉封包 如 前一篇 所述,電源供應元件有發熱問題,跑上面實驗會熱當,上車會掛。改buck不知道要多久,靈機一動:如果一枚LDO太燙,那就放兩顆吧。我果然是天才啊,立刻過關 [Configuration As Service] 這次編寫軟體有個新嘗試,把設定和RTOS相關資料結構塞入structure,取代一堆#define和全域變數。過往他們散在軟體裡不容易看出關聯,現在這樣是要花點記憶體,我感覺還不錯。既然能讀SD卡,也有機會開機讀取設定後,動態修改組態 [上車吧] 趁晚上涼快開車出來實驗,要搞車子,地下室有蚊子,白天又很熱,還是晚上好 很快發現不合用的地方:要等車子CAN封包停止,軟體才關檔。一輪實驗要10分鐘,直接關電檔案大小都是0什麼都沒有。在書桌上寫那麼爽,一出來立刻踩坑 果斷修改機制:檔案寫滿16000筆記錄,關檔開下一個檔案,搭配一顆LED,開新檔切換亮暗,用眼睛能判斷是否斷電。回去再多補上一顆按鈕,做完實驗按下立刻關檔 [CAN封包分析指南] 假如想分析CAN log,找到駕駛座車門打開或關閉的封包要怎麼做?想30秒再繼續看 我錄了一份log包含以下操作,用寫好的分析工具把log轉成 報告 ,報告對所有封包作圖。比起閱讀log file,看圖舒服很多吧 門開著,開始實驗 (關門1秒,開門3秒)* 5