應(yīng)用背景:
隨著生活水平提升,越來越多的車進去用戶家庭,車輛在保養(yǎng)健康維護過程中好多隱藏的問題不便于拆卸和查看,比如hud模塊,是否有遇到過高壓沖擊,是否有點擊、led、屏、間斷性失去通訊等一些列隱藏故障以及版本是否較老,有新版本軟件更新迭代是否可以升級等等。針對這一類問題,車身模塊本身有版本定義、故障碼診斷反饋以及uds測試模式調(diào)圖等功能,這時候需要有一定的診斷設(shè)備發(fā)特定報文與模塊通訊才能請求到uds診斷信息。
于是就有了這個便攜診斷工具設(shè)計。為了方便4S店以及維修人員對車輛的健康狀態(tài)的維護和保養(yǎng),快捷的獲取車輛狀態(tài)等信息,該診斷儀當(dāng)前可用于對汽車的診斷模塊版本信息,uds診斷調(diào)節(jié)基本功能檢查是否有故障,部分模塊切換測試圖查看顯示效果是否異常,讀取故障狀態(tài)等,最終聯(lián)網(wǎng)數(shù)據(jù)儲存服務(wù)器,便于后續(xù)統(tǒng)計車輛維護狀態(tài),歷史故障情況
另外該診斷工具小巧,便于攜帶,一些不便于攜帶大件行李情況下可以方便攜帶,裝口袋即可;未來對于一些有一定專業(yè)技能的人士可以添加診斷報文用戶定義編譯,可以指定報文發(fā)送請求,這樣對于使用的廣泛性得以擴大。
實現(xiàn)功能:
通過按鍵以及調(diào)節(jié)滑塊等操作發(fā)出指定uds診斷報文,請求對應(yīng)診斷模塊的故障狀態(tài)顯示出來。另外可以連接網(wǎng)絡(luò)上報服務(wù)器此次診斷具體信息,用于服務(wù)器統(tǒng)計記錄該車歷史排查維修記錄,方便排查歷史記錄
正文:
1.效果展示
設(shè)計操作頁面如下,通過點擊按鈕可發(fā)出can診斷報文,等待回應(yīng)狀態(tài)顯示到診斷儀上。最終連接網(wǎng)絡(luò),上傳診斷數(shù)據(jù)信息。整體ui效果頁面如下:

2.硬件框架
硬件結(jié)構(gòu)上比較簡單,框架設(shè)計如下,芯片的can 口通過OBD連接車身can網(wǎng),wifi模塊連接在服務(wù)器局域網(wǎng)內(nèi)(當(dāng)然在不方便聯(lián)網(wǎng)情況下可以先進行診斷,后面將數(shù)據(jù)存儲診斷儀flash中,待有網(wǎng)絡(luò)下聯(lián)網(wǎng)上報診斷數(shù)據(jù))

3.軟件框架
軟件結(jié)構(gòu)上主要是上電啟動后注冊驅(qū)動,初始化完can wifi等外設(shè)后加載ui,隨后子線程中信號阻塞監(jiān)聽can報文,直到接收到了can報文,單片機中斷,發(fā)出信號量,子線程讀取can報文內(nèi)容。
Ui任務(wù)中按鈕以及滑塊等用戶交互接口會觸發(fā)對應(yīng)點擊事件,收到按鈕點擊后組包發(fā)出一條can診斷報文,等待can回應(yīng)信息后,解析回應(yīng)內(nèi)容存儲對應(yīng)buffer中,并更新ui顯示內(nèi)容。
Tcp連接按鈕按下會在子線程創(chuàng)建socket任務(wù),等待上傳任務(wù)或者再次點下按鈕終止任務(wù)。上傳按鈕按下會將診斷信息從buffer中取出,重新組包,按字符串形式存儲,之后調(diào)用先前創(chuàng)建的socket中send指令發(fā)出

4.軟件邏輯
a) Ui使用SquareLine工具設(shè)計,開機后加載ui,如下是繪制的ui效果

b) 配置can數(shù)據(jù)波特率500kbit/s,初始化設(shè)備驅(qū)動后打開設(shè)備,創(chuàng)建線程不斷監(jiān)聽can信息

子線程中通過阻塞監(jiān)聽信號量,而信號量是由can收到數(shù)據(jù)中斷發(fā)出信號量,配置驅(qū)動中Every Message觸發(fā)can中斷,再讀取can數(shù)據(jù)解析打印出來。

開機后點擊按鈕,可以看到can接受線程打印的log,can發(fā)送接受數(shù)據(jù)正常

c) Wifi使用板子上rw007模塊,使能ifconfig等工具方便調(diào)試,在加載ui后配置了wifi名字和密碼3次請求連接

復(fù)位開機后串口中也可以看到wifi連接是成功的

d) Can診斷統(tǒng)一封裝到can_port_req_uds_cmd接口請求和第四個參數(shù)為返回結(jié)構(gòu)體指針,void*類型可按個人需求封裝數(shù)據(jù)結(jié)構(gòu),最終返回了id,len長度以及data指針,最終數(shù)據(jù)按對應(yīng)格式調(diào)整顯示

e) Tcp客戶端在按鈕connect點擊后創(chuàng)建新線程連接,連接后保持等待,直到提交數(shù)據(jù)按鈕按下時

診斷到的信息打包成對應(yīng)格式按字符串方式傳遞,通過socket實例發(fā)送出去給服務(wù)器端

通過tcp上位機監(jiān)聽和串口打印信息,可以看到診斷信息上傳ok

-
上位機
+關(guān)注
關(guān)注
27文章
1001瀏覽量
56868 -
診斷儀
+關(guān)注
關(guān)注
1文章
82瀏覽量
9426 -
TCP通信
+關(guān)注
關(guān)注
0文章
146瀏覽量
4797 -
RTThread
+關(guān)注
關(guān)注
8文章
132瀏覽量
42634 -
LVGL
+關(guān)注
關(guān)注
2文章
119瀏覽量
4378
發(fā)布評論請先 登錄
如何利用CMOS圖像通道設(shè)計超聲診斷儀?
如何利用SOPC設(shè)計一款便攜式邊界掃描故障診斷儀?
如何設(shè)計一款基于2.4G射頻的車栽CAN總線故障診斷儀?
便攜式柴油機診斷儀的研制
基于車載CAN總線故障診斷儀設(shè)計方案
基于汽車CAN總線在線診斷儀的應(yīng)用
基于CAN總線結(jié)合射頻和USB實現(xiàn)車載故障診斷儀的設(shè)計方案
?植物營養(yǎng)診斷儀的特點介紹
植物營養(yǎng)診斷儀的詳細介紹
植物營養(yǎng)診斷儀的使用方法
汽車故障診斷儀的原理與作用詳解
基于IMX8MPlus SMARC核心板的便攜式床旁超聲診斷儀應(yīng)用解決方案
基于RTT-LVGL便攜Can診斷儀系統(tǒng)設(shè)計案例
評論