亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于第二代車載診斷系統(tǒng)接口的汽車嵌入式診斷儀設(shè)計(jì)

        2023-08-14 10:36:04秦穎頎陳雪峰
        汽車工程師 2023年8期

        秦穎頎 陳雪峰

        (上海蔚來(lái)汽車有限公司,上海 201800)

        1 前言

        第二代車載診斷系統(tǒng)(On Board Diagnostics Ⅱ,OBD Ⅱ)將汽車排放和駕駛相關(guān)故障的診斷標(biāo)準(zhǔn)化,使不同制造商生產(chǎn)的車輛具有相同的故障代碼[1-7]。目前,大多數(shù)整車制造商采用OBD Ⅱ標(biāo)準(zhǔn)+ISO 14229 統(tǒng)一診斷服務(wù)(Unified Diagnostic Services,UDS)協(xié)議[8]開發(fā)車載電子控制單元(Electric Control Unit,ECU),車載診斷功能逐步擴(kuò)展為支持多種車載ECU 的診斷。但汽車診斷儀的種類繁多,體積和質(zhì)量通常較大,成本較高,且不支持二次開發(fā)或者二次開發(fā)比較困難,難以滿足整車制造商的特殊使用需求,如軟件定制化更改、研發(fā)階段大量的診斷工具需求、無(wú)網(wǎng)絡(luò)覆蓋的離線場(chǎng)景等。

        為此,本文開發(fā)一種嵌入式診斷儀,通過(guò)連接整車OBD Ⅱ接口與整車診斷控制器局域網(wǎng)(Controller Area Network,CAN)總線通信,并設(shè)計(jì)3種工作模式,即與外部手機(jī)等藍(lán)牙設(shè)備通信、與外部計(jì)算機(jī)等串行接口設(shè)備通信、自行記憶上一次的指令,快速執(zhí)行各項(xiàng)診斷任務(wù),如診斷故障碼(Diagnostic Trouble Code,DTC)刪除與讀取、開關(guān)運(yùn)輸模式、執(zhí)行器標(biāo)定等。診斷儀硬件基于STM32 單片機(jī)開發(fā),并設(shè)計(jì)電源模塊、快閃存儲(chǔ)(Trans Flash,TF)卡存儲(chǔ)模塊、藍(lán)牙模塊、CAN 驅(qū)動(dòng)模塊、發(fā)光二極管(Light Emitting Diode,LED)顯示模塊、蜂鳴器發(fā)聲模塊以及通用串行總線(Universal Serial Bus,USB)接口模塊等外設(shè)擴(kuò)展模塊;診斷儀軟件基于C語(yǔ)言進(jìn)行嵌入式開發(fā)。

        2 診斷儀基本工作原理

        OBD Ⅱ接口一般采用標(biāo)準(zhǔn)尺寸的16 針梯形母接頭,診斷儀通過(guò)OBD Ⅱ接口與車輛網(wǎng)關(guān)的診斷CAN 總線 連接,進(jìn) 而接入整 車ECU 的CAN/LIN 網(wǎng)絡(luò),與整車ECU 進(jìn)行診斷通信,引腳及其定義如圖1和表1所示。本文主要使用6個(gè)引腳,即Pin1、Pin4、Pin5、Pin6、Pin14、Pin16:Pin4、Pin5、Pin16 用于獲取12 V 電源,為診斷儀供電;Pin6、Pin14 是診斷CAN總線引腳,診斷儀通過(guò)一路CAN(500 kbit/s)與網(wǎng)關(guān)通信,支持CAN 2.0A/B 數(shù)據(jù)傳輸協(xié)議和UDS 協(xié)議,支持各種中斷服務(wù),保證信息及時(shí)處理;Pin1 為點(diǎn)火信號(hào)端子KL15,用于獲取車輛點(diǎn)火/上電狀態(tài)。

        表1 OBD Ⅱ接口引腳定義

        圖1 OBD Ⅱ接口引腳排布

        該診斷儀支持BLE 4.0協(xié)議,可通過(guò)藍(lán)牙接口與外部手機(jī)連接,也可通過(guò)USB 2.0接口與外部計(jì)算機(jī)設(shè)備連接。在線模式下,手機(jī)和計(jì)算機(jī)可以發(fā)出不同的診斷指令,同時(shí)顯示診斷結(jié)果。離線模式適用于執(zhí)行單一指令操作,如打開運(yùn)輸模式,診斷儀通過(guò)記憶之前的指令,每次上電時(shí)均執(zhí)行同一指令。

        診斷儀支持TF卡存儲(chǔ),可將所有診斷過(guò)程信息存儲(chǔ)到TF卡上,用于測(cè)試結(jié)果追溯。診斷儀的系統(tǒng)原理如圖2所示。

        圖2 診斷儀的系統(tǒng)框圖

        3 電路結(jié)構(gòu)

        3.1 MCU最小系統(tǒng)電路

        主控制器選擇STM32F103 系列微控制單元(Micro Controller Unit,MCU),采用ARM Cortex-M內(nèi)核的32 位微控制器,供電電壓為2.0~3.6 V(一般選擇3.3 V),最高工作頻率為72 MHz,片上集成256 KB的閃存(Flash Memory),48 KB 的靜態(tài)隨機(jī)存取存儲(chǔ)器(Static Random-Access Memory,SRAM),可滿足中等復(fù)雜度的程序要求[9]。該MCU具有豐富的硬件接口,如CAN 2.0B 接口、安全數(shù)字輸入輸出(Secure Digital Input and Output,SDIO)接口、通用同步/異步收 發(fā) 器(Universal Synchronous/Asynchronous Receiver/Transmitter,USART)接口,非常適合作為OBD診斷儀的主控制器,最小系統(tǒng)電路如圖3所示。

        圖3 主控制器最小系統(tǒng)電路

        3.2 電源電路

        診斷儀的輸入電壓為12 V,從OBD 引腳直接取電,通過(guò)兩級(jí)降壓:一級(jí)降壓芯片選擇78M05 三端正線性穩(wěn)壓器,將電壓降至5 V,用于CAN 收發(fā)器的供電,78M05 具有芯片體積小、輸出電流大(峰值電流為700 mA)、輸出電壓噪聲低(40 μV)、工作溫度范圍大(-65~150 ℃)的優(yōu)點(diǎn)[2],無(wú)需使用散熱片;二級(jí)降壓芯片選擇AMS1117-3.3 三端正向低壓降穩(wěn)壓器,將電壓降至3.3 V,用于MCU系統(tǒng)、SD卡、藍(lán)牙、串行接口等模塊的供電,AMS1117-3.3芯片體積小、輸出電流大(峰值電流為1 A)、工作溫度范圍大(-40~125 ℃)、工作壓差低(最低為1 V),同樣無(wú)需使用散熱片[10]。電源模塊電路如圖4所示。

        圖4 電源模塊電路

        3.3 CAN收發(fā)器電路

        MCU 的CAN 接口無(wú)法直接發(fā)送和接收符合CAN 總線物理層協(xié)議的差分信號(hào),需要通過(guò)CAN 收發(fā)器進(jìn)行電平轉(zhuǎn)換,本文選擇TJA1050 作為CAN 收發(fā)器。TJA1050 的供電電壓為4.75~5.25 V(一般選擇5 V),電磁兼容性(Electromagnetic Compatibility,EMC)斜率控制較好,無(wú)源特性良好(不上電時(shí)總線引腳漏電流為0 μA),總線傳輸速率最高支持1 Mbit/s,輸入電平兼容3.3 V MCU 電平,與GB/T 41588.1—2022《道路車輛 控制器局域網(wǎng)(CAN) 第1 部分:數(shù)據(jù)鏈路層和物理信令》完全兼容,具有總線引腳短路保護(hù)功能[11],其電路如圖5所示。

        圖5 CAN收發(fā)器電路

        3.4 藍(lán)牙模塊接口電路

        根據(jù)診斷儀的實(shí)際使用場(chǎng)景,人機(jī)交互均在近距離條件下進(jìn)行,故選擇藍(lán)牙作為無(wú)線通信方式。選用HC-05 藍(lán)牙模塊,通過(guò)MCU 的USART 串行接口驅(qū)動(dòng),可以與手機(jī)等外部藍(lán)牙設(shè)備進(jìn)行無(wú)線通信。HC-05 藍(lán)牙模塊體積較小,適合直接焊接在印刷電路板(Printed Circuit Board,PCB)上,支持主、從模式(診斷儀選擇從模式),供電電壓為3.3~3.6 V(一般選擇3.3 V,完全兼容MCU TTL 電平),指令集豐富,通信距離可達(dá)8 m,工作穩(wěn)定,其與MCU 的接口電路如圖6所示。

        圖6 藍(lán)牙模塊接口電路

        3.5 數(shù)據(jù)存儲(chǔ)模塊接口電路

        選擇TF 卡作為數(shù)據(jù)存儲(chǔ)模塊,TF 卡相對(duì)SD 卡體積較小,適用于PCB 空間有限的場(chǎng)景。通過(guò)MCU自帶的SD/TF 卡驅(qū)動(dòng)接口SDIO 模塊進(jìn)行控制,很容易實(shí)現(xiàn)文件分配表(File Allocation Table,F(xiàn)AT)文件系統(tǒng)的創(chuàng)建和編輯,存儲(chǔ)數(shù)據(jù)穩(wěn)定,診斷結(jié)果可以實(shí)時(shí)備份在TF卡中,存儲(chǔ)模塊電路如圖7所示。

        圖7 TF卡存儲(chǔ)模塊電路

        3.6 串行接口模塊電路

        為實(shí)現(xiàn)診斷儀與計(jì)算機(jī)等設(shè)備的有線通信,選擇CH340 作為USB 轉(zhuǎn)通用異步收發(fā)器(Universal Asynchronous Receiver Transmitter,UART)芯 片。CH340 完全兼容USB 2.0,與Windows 的串行接口應(yīng)用程序也完全兼容,供電電壓支持3.3 V 和5 V,支持50 bit/s~2 Mbit/s 傳 輸 速 率[12]。選 擇MCU 的USART1 模塊接口用于串行接口通信,同時(shí)作為STM32 的程序燒寫口,串行接口電路如圖8 所示,PCB 上也同時(shí)預(yù)留了串行線調(diào)試(Serial Wire Debug,SWD)+燒寫接口。

        圖8 串口模塊電路

        3.7 其他輔助電路

        其他的輔助電路包括:

        a.聲光指示模塊電路。使用一支蜂鳴器發(fā)聲,使用RGB混色LED發(fā)光,電路如圖9所示。

        圖9 聲光指示模塊電路

        b. KL15 光耦隔離電路。使用EL357 光耦實(shí)現(xiàn)電氣隔離和降壓,電路如圖10所示。

        圖10 KL15光耦隔離電路

        c. 離線時(shí)鐘電源模塊電路。使用紐扣電池方案,在不連接實(shí)車時(shí)保持診斷儀的時(shí)鐘正常運(yùn)行,保證診斷結(jié)果可追溯,電路如圖11所示。

        圖11 離線時(shí)鐘電源模塊電路

        d.OBD Ⅱ接口電路。選擇標(biāo)準(zhǔn)尺寸的OBD Ⅱ公頭作為主接插件與車端對(duì)接,實(shí)現(xiàn)診斷通信,電路如圖12所示。

        圖12 OBD Ⅱ接口電路

        4 軟件實(shí)現(xiàn)方法

        使用C 語(yǔ)言進(jìn)行嵌入式程序開發(fā),在Keil 集成開發(fā)環(huán)境(Integrated Development Environment,IDE)下進(jìn)行編譯和調(diào)試,編程的主體思路是軟件配合硬件,即先完成電路設(shè)計(jì)、PCB布線,再進(jìn)行軟件開發(fā),因?yàn)橄鄬?duì)于硬件更改,軟件調(diào)整的靈活度更高。目前,STM32編程一般分為3個(gè)層級(jí),即底層硬件抽象層(Hardware Abstraction Layer,HAL)、中間驅(qū)動(dòng)層、上層應(yīng)用層,為提高程序的可讀性和簡(jiǎn)潔性,本文未采用HAL 編程,采用中間驅(qū)動(dòng)層+上層應(yīng)用層的編程方式。

        驅(qū)動(dòng)層采用STM32官方固件庫(kù)函數(shù)作為應(yīng)用程序接口(Application Programming Interface,API),取代傳統(tǒng)的直接寄存器配置方案,以提高編程效率和代碼的可讀性。具體功能包括通用輸入輸出(General Purpose Input Output,GPIO)端口初始化、CAN模塊初始化、USART模塊初始化、SDIO模塊初始化、中斷初始化等,使用的典型固件庫(kù)函數(shù)集合如表2所示[13]。

        表2 主要使用的固件庫(kù)函數(shù)集

        上層應(yīng)用層通過(guò)調(diào)用中間驅(qū)動(dòng)層API封裝具體功能需求。應(yīng)用層函數(shù)主要包括2 類:一是實(shí)現(xiàn)基礎(chǔ)通信功能的函數(shù),包括CAN 信號(hào)發(fā)送和接收、藍(lán)牙/串行接口消息的發(fā)送和接收、TF 卡的讀寫操作、聲光邏輯控制等;二是實(shí)現(xiàn)具體應(yīng)用,包括各種UDS診斷控制流等。

        診斷儀總體的軟件工作流程如圖13所示。

        圖13 診斷儀軟件流程

        5 應(yīng)用與測(cè)試

        診斷儀不主動(dòng)向手機(jī)推送藍(lán)牙信息(除自動(dòng)發(fā)送“AT+INQC”連接信息外,直接忽略該信號(hào)即可),任何信息的調(diào)取,都需要手機(jī)APP 先發(fā)送指令,避免誤操作,主要功能如表3所示。

        表3 診斷功能

        針對(duì)表3 所示的功能,設(shè)計(jì)了功能測(cè)試和性能測(cè)試:功能測(cè)試主要包含藍(lán)牙通信、診斷指令執(zhí)行、診斷結(jié)果讀取、測(cè)試結(jié)果日志打?。恍阅軠y(cè)試主要包含長(zhǎng)時(shí)間開機(jī)(大于10 h)、反復(fù)上下電(5 000次)、循環(huán)執(zhí)行指令功能。測(cè)試中發(fā)現(xiàn)的一些嚴(yán)重軟件錯(cuò)誤(Bug),如數(shù)組越界導(dǎo)致異常重啟、壓力測(cè)試下程序跑飛,進(jìn)行了代碼修復(fù),可以實(shí)現(xiàn)連續(xù)開機(jī)超過(guò)10 h和上下電5 000次無(wú)異常。

        6 結(jié)束語(yǔ)

        本文設(shè)計(jì)了一種基于OBD II 接口的診斷儀,采用汽車行業(yè)標(biāo)準(zhǔn)的軟、硬件接口(軟件采用CAN 2.0/UDS 協(xié)議接口,硬件采用OBD II 接口),設(shè)計(jì)了電源模塊、TF 卡存儲(chǔ)模塊、藍(lán)牙模塊、CAN 驅(qū)動(dòng)模塊、LED顯示模塊、蜂鳴器發(fā)聲模塊、USB接口模塊等外設(shè)擴(kuò)展模塊,采用分層架構(gòu)進(jìn)行了嵌入式軟件開發(fā),對(duì)于UDS 的基本功能,均提前封裝為中間層API,作為原子能力供上層APP 調(diào)用,降低了軟件開發(fā)的難度,提高了功能迭代的效率。

        在线永久看片免费的视频| 中文字幕人成人乱码亚洲av| 一女被多男玩喷潮视频| 制服丝袜人妻中文字幕在线| 99久久精品一区二区三区蜜臀| 日韩亚洲国产中文字幕| 少妇激情av一区二区三区| av一区二区三区人妻少妇| 国产成人啪精品午夜网站| 色哟哟精品中文字幕乱码| 大奶白浆视频在线观看| 无套内射无矿码免费看黄| 久久精品国产亚洲5555| 亚洲精品中文字幕乱码3| 精品人妻一区二区三区四区在线| 老熟妻内射精品一区| 亚洲九九夜夜| 日本老熟妇五十路一区二区三区| 亚洲国产欧美在线观看| 又爽又黄无遮挡高潮视频网站| 亚洲国产综合精品久久av| 国产精品国产av一区二区三区| 亚洲av日韩av无码污污网站| 在线精品无码一区二区三区| 99国语激情对白在线观看| 午夜精品久久久久久久| 国产成人无码精品午夜福利a| 日韩肥熟妇无码一区二区三区| 日本视频一区二区三区在线观看| 无码av一区二区大桥久未| 国产精品日韩欧美一区二区区 | 国内专区一区二区三区| 草草影院发布页| 搡老熟女老女人一区二区| 国产欧美久久久精品影院| 国产无套一区二区三区久久| 国产真实乱对白精彩| 自拍 另类 综合 欧美小说| 国产在线一区二区三区不卡| 黄桃av无码免费一区二区三区| 亚洲福利视频一区|