《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業界動態 > 車載CAN總線故障診斷儀設計方案

車載CAN總線故障診斷儀設計方案

2020-04-16
來源:與非網

設計一款基于 2.4G 射頻的車載 CAN 總線故障診斷儀,詳細介紹其工作原理及系統硬件電路,最后分別闡述接收端、發射端和 PC 端的軟件模塊。

 

該方案采用自動跳頻的 2.4G 空中協議,經測試統計誤碼率保持在有效范圍之內,在 14m 內仍能正常工作。采用 USB 作為接收端和 PC 接口,保證了系統的即插即用及數據的高速傳輸。


控制器局域網絡 CAN(Controller Area Network)為汽車內部各種復雜的電子設備、控制器、測量儀器等提供了統一數據交換渠道,已得到廣泛的應用。目前,太多數汽車部件都提供了 CAN 總線通信接口。

 

在當今的中高檔汽車中,都采用了 CAN 總線技術。針對車載 CAN 總線會出現的故障.結合射頻和 USB 的優點,依靠 KWP2000 應用層規定的故障代碼,本文提出了一種基于車載 CAN 總線故障診斷儀設計方案。本方案成本低廉,攜帶方便,具有很強的靈活性與適應性。

 

1 、方案設計

由于采用射頻技術,使汽車 CAN 總線數據采集部分和 CAN 總線數據診斷部分得以分離,無需連線,不受空間場地限制,安裝攜帶方便。按照 ISO 有關標準,CAN 總線傳輸速率最高可達 1 Mbps;但由于汽車內部特殊環境,車載 CAN 總線速率一般在 250 kbps。本系統中射頻速率最高可達 l Mbps,可以很好地滿足數據傳輸要求。

 

5e9670d861822-thumb.png

 

發射端采用 USB 作為接收模塊和 PC 接口。USB 與 RS232 或 PCI 接口相比,具有用戶使用方便,設備自動識別,自動安裝驅動程序和配置,支持動態接入和動態配置等優點;其傳輸速率可達幾十 Mbps,并且支持同步和異步傳輸方式,保證帶寬,傳輸失真小。

 

PC 端應用層軟件整合 KWP2000 的應用層協議。KWP2000 是由瑞典制定的一種車載故障診斷協議,已在微機控制的自動變速器、防抱死制動系統、安全氣囊、巡航系統中得到廣泛應用。它基于 OSI 七層協議,符合 IS07498 標準。其中第 1~6 層實現通信服務的功能,第 7 層實現診斷服務的功能。其應用層提出了一套完整和標準化的診斷代碼,本系統利用 KWP2000 的應用層協議,對采集到的 CAN 總線數據進行分析,以實現故障診斷的功能。

 

2、 硬件實現

2.1 系統所用芯片簡介

2.1.1 nRF2401 芯片

nRF240l 是單片射頻收發芯片,工作在 2.4~2.5GHz ISM 頻段;內置頻率合成器、功率放大器、晶體振蕩器、調制器和標準 SPI 等功能模塊;輸出功率和通信頻道可通過軟件進行配置,共有 125 個頻道可使用,而且最高速率可達 l Mbps。芯片具有 1.9~3.6 V 寬工作電壓,工作能耗非常低。當以一 5 dBm 的功率發射時,工作電流只有 10.5 mA;接收時,工作電流只有 18 mA。


5e9670d86be2e-thumb.png

 

 

nRF240l 有 4 種工作模式:收發模式、配置模式、空閑模式、關機模式。其工作模式由 PWR_UP、CE、CS 三個引腳和配置字節最低位 TX_EN 來決定。

 

收發模式分為 DirectMode 和 ShockBurst。前者在片內對信號不加任何處理,與其他射頻收發器相同。后者使用片內 FIFO 堆棧,數據從 MCU 低速送入,但高速發射,而且與射頻協議相關的所有高速信號處理都在片內進行。例如,nRF240l 在 ShockBurst 收發模式下自動處理字頭和 CRC 校驗碼,在接收時自動把包頭和 CRC 校驗碼移去;在發送數據時自動加上字頭和 CRC 校驗碼。

 

2.1.2 TMU3100 芯片

TMU3100 是臺灣 Tenx 公司 2005 年推出的 RISC 內核的單片機。它嵌入了完全兼容 USBl.1 協議的 USB 控制器,并且提供了低速 USB 接口和 3 個端點,其中 1 個控制輸入/輸出端點和 2 個中斷輸入端點。

 

TMU3100 可以配置為標準的 HID 類,可以使用 Windows 操作系統自帶的 HID 類驅動程序。這樣可以省去開發設備驅動程序的工作,縮短開發周期。TMU3100 芯片結構框罔如圖 2 所示。

 

2.1.3 PICl8F2682 芯片

PICl8F2682 是 Microchip 公司新推出的 8 位低功耗 CAN 微控制器,主要資源有:內置標準 CAN 模組、80KB 閃存程序存儲器、1 KB 數據 E2PROM、3.3 KBRAM 存儲器、8 通道 ADC、1 個 8 位和 3 個 16 位 T1MER、1 個 SPI 和 I2C 串行通信端口和可編程欠壓復位功能及低電壓檢測電路。

 

5e9670d8d0027-thumb.png

 

PIC18F2682 內置增強型的 CAN 總線模塊,該模塊包含 CAN 協議引擎、信息緩沖和信息控制。CAN 協議引擎自動處理 CAN 總線上所有接收和發送的消息,它可以在接收或發送信息時對數據幀進行解析。只需要首先設置適當的寄存器就可以發送信息,通過相關的寄存器即可得到信息傳輸的狀態。

 

2.2 硬件電路

2.2.1 發射端電路原理

是系統發射端電路原理。CAN 總線接口使用 Microchip 公司內置 CAN 模塊的 PIC18F2682 單片機,并由光耦 6N137 進行總線隔離;CAN 總線收發器采用 MCP2551。

 

PIC18F2682 與射頻芯片 nRF2401 之間通過標準 SPI 接口 SCK、SDI、SDO 來完成,這樣可以大大提高發送速率。對 nRF2401 配置控制使能 CS 和接收、發送使能 CE 分別由 RB4 和 RB5 進行控制。當 nRF240l 接收到數據包時,DRl 將被置高電平,因此 PICl8F2682 通過查詢 INT0 的狀態可以判斷是否接收到數據。

 

2.2.2 接收端電路原理

由于 TMU3100 由 PC 供電,而 PC 機 USB 接口所提供的電壓 VDD 干擾較大,故對 VDD 進行了π濾波。

 

由于 TMU3100 沒有 SPI 模塊,故可以通過 PB[1]、PB[0]按照 SPI 協議與 nRF2401 的 SPI 口來進行通信。對 nRF2401 配置控制使能 CS 和接收、發送使能 CE 分別由 KSO[3]和 KSO[13]控制。nRF2401 接收到數據包后,DRl 將被置高電平,因此 TMU3100 可以通過查詢 KSl6 的狀態判斷足否接收到數據。

 

3、 軟件設計

系統的軟件設計包括發射端軟件設計、接收端軟件設計和 PC 端軟件設計。

 

5e9670d8d8c5f-thumb.png

 

3.1 發射端軟件設計

發射端流程如圖 5 所示。軟件設計主要實現兩項功能:第一是實現 CAN 總線上數據的采集;第二是實現將采集后的數據通過射頻進行發射。

 

上電后,首先對 CAN 模塊進行初始化。然后初始化 nRF2101,并與接收端建立連接。當發送完 CAN 數據后沒有收到 ACK 信號時,就跳頻;然后通知發送端準備接收重發的 CAN 數據,直到接收到 ACK 信號。

 

為了防止空中干擾,采用了自動跳頻的空中協議,即無論是否接收到 ACK 信號都進行跳頻,因此可以防止某個頻段的強干擾,進而降低誤碼率。

 

3.2 接收端軟件設計

接收端軟件流程如圖 6 所示。軟件設計主要實現兩項功能:第一是實現枚舉;第二是實現將接收到的數據通過 USB 上傳到 PC。上電后,首先完成對 TMU3100 的配置,并與 PC 機枚舉;枚舉成功后就對 nRF2401 進行配置,并與發射端建立連接。當接收到數據包后,首先判斷是 CAN 數據還是重傳數據命令。如果是 CAN 數據包,則向發射端返回 ACK 信號并跳頻,然后將接收到的數據通過 USB 傳至 PC;如果是重傳命令,則先跳頻,然后置重傳標志,表示下個數據包是重傳的數據包。

 

 

5e9670d90a99c-thumb.png


TMU3100 被配置為標準 HID 類,這樣就不用為設備開發驅動程序,而是使用 Windows 提供的標準 HID 類驅動程序。

 

3.3 PC 端軟件設計

PC 端軟件由應用程序和設備驅動程序組成。Windows 為標準 USB 沒備提供了完善的內置驅動,本系統采用 Windows 自帶的 HID 類驅動,只要將 TMU3100 配置為 HID 類,即可完成與 PC 機的通信。這省去了開發設備的驅動程序,極大地簡化了上位機軟件的開發。

 

上位機的應用程序首要實現的功能是,要實現對 TMU3100 端點的讀寫,用 VC++語言編寫,可以把 USB 設備當成文件來操作。用 CreateFiile()函數獲得 USB 句柄,為讀訪問或寫訪問打開指定端點。用 DeviceControl()來進行控制操作,用 ReadFile()從指定端點讀取數據,用 WriteFile()向端點寫入數據。

 

當 CAN 總線上的數據被采集到 PC 后,就可以進行故障診斷了。故障診斷代碼是依照 KWP2000 應用層規定的故障代碼設計的,是目前國際上通用的,現將其應用于 CAN 的應用層,將來可以用全新的 CAN 上層協議取代。故障診斷代碼定義在 SSF14230 中。SAE J1979 中,由車輛制造商或系統供應者定義的服務標志符數值的不同范圍,如表 1 所列。

 

5e9670d979274-thumb.png

 

此表中以十六進制數表示的服務標志符,同數據鏈路層中數據字節內的 SID 服務識別字節對應。不同的 SID 值代表不同的服務請求,故障診斷程序必須符合此應用層標準,才能識別不同的十六進制代碼所代表的不同的故障信息。

 

4、 結論

本文設計的 2.4G 無線車載 CAN 總線故障診斷儀,由于采用了自動跳頻的空中協議,所以誤碼率幾乎接近零,在 14 m 內仍能進行可靠的工作。系統使用國際上通用的診斷代碼,使程序具有通用性和實用性;以 PC 作為硬件平臺,無需專門開發硬件平臺,可大大降低開發成本并且易于實現設備的升級和維護;使用 USB 接口和 2.4G 無線通信,具有即插即用、不受空間限制、數據傳輸實時性強的特點。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]。
主站蜘蛛池模板: 成人影院人人免费 | 免费狼人久久香蕉网 | 欧美激情精品久久久久久久九九九 | 91亚洲精品久久91综合 | 午夜私人影院免费体验区 | 国产麻豆入在线观看 | 国产成人艳妇在线观看 | 日韩一级片免费在线观看 | 亚洲欧美精品中文字幕 | 一区国严二区亚洲三区 | 国产一级片免费看 | 日本免费三级网站 | 日本高清无吗免费播放 | 欧美色黄毛片 | 久久久国产精品免费看 | 一区二区成人国产精品 | 中文字幕咪咪网 | 精品九九久久 | 国产在线视频h | 成人免费视频一区二区 | 黄色在线不卡 | 国产va精品网站精品网站精品 | 欧美大片一区二区三区 | 久久高清一级毛片 | 国产午夜精品久久久久免费视 | 精品毛片免费看 | 国产成人教育视频在线观看 | 波多野结衣在线免费视频 | 国产精品成人免费观看 | 一本久道在线 | 欧美成人综合在线观看视频 | 亚洲男人的天堂网 | 国产成人a视频在线观看 | 国产美女一区二区在线观看 | 亚洲第一视频在线观看 | 我们2018在线完整免费观看 | 日韩欧美综合 | 久久精品视频91 | 欧美在线一区二区三区欧美 | 久久综合久久精品 | 欧美一线免费http |