李曉杰
(煙臺汽車工程職業(yè)學院 車輛運用工程系,煙臺 265500)
目前汽車技術行業(yè)發(fā)展速度越來越快,針對客觀因素和主觀因素的影響,其可靠性、安全性也隨駕駛里程的增加而急速下降,汽車故障的維修問題難度也越來越大。目前,對汽車故障診斷的方法較為繁多,例如萬用表診斷、人工檢查、示波器診斷等[1]。隨著汽車電子診斷技術的發(fā)展與應用,電控系統(tǒng)變得越來越復雜,ECU被廣泛采用,所以本文在此基礎上面向嵌入式系統(tǒng)對汽車故障進行診斷。
嵌入式系統(tǒng)一般在特定的應用中進行使用,功耗低、集成度高、體積小,能夠把所需完成的任務直接集成到芯片中。嵌入式系統(tǒng)主要把計算機技術、電子技術、半導體技術等結(jié)合在一起,不斷創(chuàng)新知識集成系統(tǒng)。一定要精心設計嵌入式系統(tǒng)的硬件與軟件系統(tǒng),盡量在最小的面積上實現(xiàn)更多的性能,軟件一般會固化在存儲器芯片或者單片機本身中。嵌入式系統(tǒng)自身并不具備自主開發(fā)的能力,一定要與計算機系統(tǒng)相連接才能進行開發(fā)與更改。
本文設計的診斷儀主要目的是為了節(jié)約診斷的成本和人力資源,從而提高診斷效率,所以應該滿足以下幾種特性:1)通用性;2)便攜性;3)易用性;4)擴展性。為了充分體現(xiàn)出診斷儀的所有特性,本次設計核心處理器選擇ARM嵌入式微處理器,該處理器具有低電壓、低功耗與低集成度的優(yōu)點,通過OBD-Ⅱ系統(tǒng)對診斷儀硬件進行設計,Linux作為軟件設計提供了穩(wěn)定性較高的工作環(huán)境。綜上所述,將該診斷儀系統(tǒng)分為3個模塊,協(xié)議轉(zhuǎn)換接口電路作為前端,無線傳輸電路作為后端來發(fā)送故障信息到遠端。由S3C2410X作為CPU核心芯片主控CPU完成接受到的數(shù)據(jù)的處理、擴展按鍵、顯示、實現(xiàn)人機交互,從而給出如下所示的總體框圖如圖1所示。
圖1 故障診斷儀總體框圖
在對電路接口進行設計時,需要完成以下數(shù)據(jù)鏈路層操作:網(wǎng)絡中信號格式的轉(zhuǎn)換 、報文的拆解幀 以及對差錯的控制。
所以選擇TL718芯片作為協(xié)議轉(zhuǎn)換芯片進行接口單元設計,主要作用是實現(xiàn)數(shù)據(jù)鏈路層的各種工作。TL718芯片是一款專用協(xié)議轉(zhuǎn)換芯片,能夠支持多種通信協(xié)議并且可以對通信協(xié)議進行自動匹配,與此同時,需要添加外圍電路,TL718芯片的使用對環(huán)境沒有具體要求,工作命令包括內(nèi)部命令與OBD命令。當發(fā)送以16進制數(shù)開頭的ASCII碼的指令時,TL718會認為是OBD命令,會將成對的ASCII碼16進制數(shù)轉(zhuǎn)換成單個字節(jié)向汽車電腦數(shù)據(jù)總線發(fā)送。在命令發(fā)送之后,如果能夠接收到信息而且地質(zhì)吻合,那么 TL718會通過RS232把數(shù)據(jù)發(fā)送到遠端。反之忽略該信息。在等待時間結(jié)束之前沒有收到匹配地址數(shù)據(jù),TL71 8將發(fā)送“NO DATA”指令,反之則復位時間,繼續(xù)等待到等待時間溢出為止[2]。TL718的接口電路圖如圖2所示。
圖2 TL718接口電路圖
TL718的芯片內(nèi)部會集成CAN控制器, 需要在外部搭配一個CAN收發(fā)器來完成對CAN報文的收發(fā)。CAN總線是由兩個或兩個以上的CAN節(jié)點并聯(lián)在一起的通信網(wǎng)絡,具有抗電磁干擾性強、高位速率通信距離遠、檢測通信錯誤的特點[4]。在汽車電子、自動控制中有很強的應用。本文選用MCP2551芯片作為CAN收發(fā)器,該芯片具有高速差分收發(fā)、可設置三種工作模式、熱關斷等優(yōu)點,但存在靜態(tài)電流大的不足[3]。CAN收發(fā)器引腳功能說明如表1所示。
表1 MCP2551引腳說明
3.3.1 存儲器
嵌入式系統(tǒng)的存儲器大致可以分為SDRAM與FLASH兩種:1)SDRAM存儲器,在嵌入式系統(tǒng)中經(jīng)常用作內(nèi)存,其優(yōu)點是單位空間存儲容量大且價格低廉;2)FLASH存儲器,是一種可電擦寫存儲器,在掉電時信息不會丟失,通過內(nèi)部嵌入算法對芯片進行操作,其優(yōu)點在于低功耗、容量大、擦寫速度快。
3.3.2 按鍵模塊
該診斷儀設計了4個按鍵功能:k1表示讀取故障代碼 、k2表示查詢汽車基本信息 、k3表示清除OBD-II故障代碼、k4表示發(fā)送診斷儀中信息到遠端計算機。按鍵驅(qū)動的流程圖如圖3所示。
圖3 按鍵驅(qū)動的流程圖
首先初始化,再等待按鍵,然后進入中斷處理,等待延時,判斷是否處于按下狀態(tài),最后確認按鍵事件發(fā)生。鍵盤鍵值功能如表2:
表2 鍵盤鍵值功能表
3.3.3串行接口
UART(通用異步收發(fā)器)被廣泛應用到串行數(shù)據(jù)傳輸中。串行通信一般采用異步通信來完成串行通信功能。串口只需要RXD、TXD和GND即可。本文使用MAX3232進行RS232C信號和S3C410X系統(tǒng)的TTL電路信號的電平轉(zhuǎn)換。串口電平轉(zhuǎn)換電路如圖4所示。
圖4 串口電平轉(zhuǎn)換電路
本文采用GPRS(通用無線分組業(yè)務)進行遠程無線傳輸技術,該技術能夠?qū)崿F(xiàn)數(shù)據(jù)的遠程傳輸, GPRS具有高效、成本低的優(yōu)點,而且覆蓋范圍廣,即在有手機信號的地方都可以使用GPRS,在小數(shù)量的數(shù)據(jù)傳輸中有很廣泛的應用[5]。
嵌入式系統(tǒng)是一種以應用為中心的計算機系統(tǒng), 具有靈活性強、可靠性高、成本低、體積小、易移植性、低功耗等特點。嵌入式Linux系統(tǒng)軟件被劃分為四層:引導加載程序、內(nèi)核、文件系統(tǒng)、用戶應用程序。嵌入式操作系統(tǒng)主要對智能芯片進行操作并且可以對各種部件的裝置進行統(tǒng)一調(diào)控。嵌入式軟件的開發(fā),通常選用宿主機(PC機)和目標機將開發(fā)環(huán)境和目標運行環(huán)境分離。本文在宿主機上運行的交叉開發(fā)軟件是基于ARM920T的S3C2410X的ARM交叉編譯器[6]。
嵌入式Linux的移植主要分為Bootloader、Linux內(nèi)核以及文件系統(tǒng)的移植三種。1)Bootloader具備初始化處理器、初始化必要硬件、設置處理器的寄存器以及內(nèi)存、從特定位置把操作系統(tǒng)和文件系統(tǒng)調(diào)入內(nèi)存的功能。在啟動模式的第一個階段完成硬件設備初始化;第二階段會對硬件設備進行初始化并且對內(nèi)存進行診斷,將文件系統(tǒng)從FLASH讀到RAM中、為內(nèi)核進行參數(shù)設置、調(diào)用內(nèi)核文件運行五項任務。2)Linux內(nèi)核移植具有成本低、開發(fā)前景好、容易獲得開發(fā)工具的優(yōu)點,其移植過程分為四步:Linux源代碼的獲取、Linux內(nèi)核源代碼的修改、內(nèi)核生成內(nèi)核映像文件的交叉編譯、內(nèi)核映像到目標平臺的燒寫。3)文件系統(tǒng)是操作系統(tǒng)用于明確磁盤或分區(qū)上文件組織的方法 ,在構(gòu)建時一定要注意文件系統(tǒng)類型和內(nèi)容的選擇。
通過驅(qū)動軟件來對設備的行為進行控制,設備驅(qū)動是硬件與內(nèi)核之間的橋梁,所以需要對程序設計工作進行簡化。Linux操作系統(tǒng)下的設備分為塊設備、字符設備、網(wǎng)絡接口三種類型。程序的驅(qū)動需要對設備進行初始化與釋放,將數(shù)據(jù)進行讀取并且傳送到相應硬件,對錯誤進行診斷并且處理。Linux驅(qū)動程序主要被換分為自動配置和初始化子程序、對I/O請求的子程序進行服務以及中斷服務子程三部分[7]。一般Linux驅(qū)動程序主要用來中斷處理以及系統(tǒng)調(diào)用。
關于汽車故障診斷儀軟件的設計主要包括設計應用程序以及硬件驅(qū)動。當診斷儀通電之后,進行裝置初始化,判斷用戶的等待按鍵,當接收到用戶按鍵之后,執(zhí)行相應的命令。診斷儀開機之后會連接OBD-Ⅱ,通過while(1)等待按鍵, 一旦檢測到按鍵, 程序會向總線發(fā)起初始化命令,通過中斷號來確定用戶所按下的鍵,最后輸入相應代碼執(zhí)行。診斷儀工作流程圖如圖5所示:
圖5 診斷儀工作流程圖
本文對國內(nèi)外汽車故障診斷的研發(fā)現(xiàn)狀進行分析,在汽車故障診斷儀設計過程中引進當前比較熱門的嵌入式技術,設計了一種基于嵌入式Linux汽車故障診斷儀。在未來的社會發(fā)展過程中,嵌入式系統(tǒng)會被廣泛應用到多個領域,小到掌上數(shù)字產(chǎn)品,大到汽車、航天飛機。
本文完成了如下幾項工作:
(1)根據(jù)課題背景,提出了故障診斷儀的設計方案;
(2)結(jié)合設計方案,對核心處理器進行選擇并對外圍電路進行擴展,完成了故障診斷儀的硬件電路設計。
(3)對故障診斷儀的軟硬件進行了仿真調(diào)試。
在汽車制造領域中汽車故障診斷是一個熱門課題,本文從協(xié)議轉(zhuǎn)換、控制處理、遠程傳輸三個模塊對故障診斷儀進行設計,并綜合遠程通訊技術嵌入式Linux開發(fā)環(huán)境,設計實現(xiàn)了便攜式故障診斷儀,對于提升汽車故障診斷與維修領域具有促進作用。