ChamberPlus System Level Studio

  首頁 | Contact to us

 

News
Products
FAQ
Technicality
Links
OldNews

互動區:

留下您的足跡

想討論嗎?

 

Question :

版主你好,我是XX科技大學 機電所的學生。目前與業界科專合作計劃,內容為CAN介面ECU診斷功能模擬器。其架構是在PC上以VC/++ 造出
模擬引擎的ECU 其內部須包含ISO 15765與ISO14229之功能。而網路7層狀架構為 實體層與資料連結層使用USB轉CAN,從電腦(server)輸出與診斷器(client)連結。而網路層、傳輸層、應用層需要以VC造出來。而我已經看完ISO15765的SPEC了。之前讀過版主的單晶片與引擎控制,想請教版主幾可問題:

(1) 請問版主當初作完引擎控制,後來有做到引擎診斷這塊嗎?
(2) 我大概將要做的區分為: PC-base引擎ECU模擬介面、傳輸介面USB-CAN、與診斷部份。請問版主,目前要做出診斷部份的網路層、傳輸層與應用層,需要學習VC裡面的哪些單元? (我已看完繼承、多型)

 

Answer :

  (1)  有沒有作引擎診斷這一塊?!嘻∼嘻 ∼在版主的一篇文章中的圖片

(http://chamberplus.myweb.hinet.net/fppa_ems/ECUViewx.jpg) 這個東西算不算是簡單型的診斷系統?!

         其實,引擎控制系統的診斷系統原本就是從寫韌體的 Debug 介面延伸出來的。當初版主所研讀的國外原廠的韌體程式來說:基本上,他就是利用單晶片的UART 介面來完成基本的診斷系統。至於,那種傳輸理論的七層理論,版主說過,要講出一套漂漂亮亮的專有名詞,大家都會,但是大家真的可以體會他們所隱含的意義嗎?!

            這種專有名詞或是那種繁雜的數學理論,無非都是在幫助我們瞭解工程問題,個人覺得不應本末倒置。搞到最後,連基本的工程問題或現象都套不到您的專有名詞上時,就空有一身理論了!

        就以佔版主網頁最大篇幅的USB來說:他基本上也是網路通訊協定的一種,但有多少人會知道他是屬於七層理論的哪一層?!

這七層由上而下分類如下:

1. Application Layer :就是我們一般使用者直接面對的東西,應該就是最後結果!

2. Presentation Layer :像我們聽到的MPEG (MP3) 或是什麼 JPG、GIF  圖檔就是這一層啊。

3. Session Layer :像作業系統中常見的NetBios 啊∼ Security 的東西,就是這一層。

4. Transport Layer :像我們常聽到的TCP/IP 啊∼或是一些 Control flow 的東西。

5. Network Layer :像我們在USB 裡所見到 Packet 啊∼Addressing 觀念,就是屬於這一層。

6. Data Link Layer :喔∼USB裡面還有所謂  Frame 的觀念啊∼或是CRC Check 機制啊∼乃至於您所提到的 CAN Bus 裡面的東西,就是有涵蓋至這一層。

7. Physical Layer :這一層就是我們在硬體上的那一層規範,像是 UART 延伸出去的 RS232/ RS485 或是USB 裡面的那個 D+/D- 就是啊。

        您看,版主也可以講得頭頭是道,結果呢?!大家碰到USB 問題還是卡在那。

所以,有時版主還是得說:盡信書,不如不讀書!大家在研讀課本理論時,還是要有實務的感覺才行。

    以前在讀工程數學時,在解那些偏微分方程式時,都不知道所以然?!學校老師也是拿起課本拼命往前教,反正考試題目就是有他標準解法,補習班會教您,保證把您送進研究所。然後呢?!針到碰到工程問題都不知如何套用?!那又該如何成為一位出色的工程師。

    舉幾個簡單的範例好了:我們都知道一般偏微分方程式的種類型態有所謂的拋物線型、雙曲線型或是橢圓線型等三大類。所以,若我們要解一個在封閉空間內的工程問題時,他是屬於哪一類?!想像一下,像是汽缸內的流場分析或模擬汽缸內的燃燒特性。答案是橢圓線型的方程式,這一類問題就是需要『邊界條件』(boundary condition)。因為橢圓形的東西他就是有邊界!熟悉吧?!

     至於外流場的分析呢(像是汽車外形的空氣阻力現象)?!他就是屬於其他兩類之一(還需要進一步相關條件才能進一步分類),而無論是拋物線型或是雙曲線型,他們的特性是什麼?!就是看不到末端點,但是他們有起始點,所以,這一類東西就是需要所謂的初始條件(Initial condition)∼對不對?!

     在電子電機裡也有類似的東西喔!譬如,版主最近有作一個隨音樂節奏的RGB LED燈光控制(可惜的是:網頁沒空間可以發表了!),而人對於聲音的特性就是自然對數特性(就是分貝DB的觀念啊),所以您只要抓到自然對數的特性,您自然就可以抓到音樂的節奏性,再來作LED PWM控制就很漂亮了。

    好了。不說教了∼直接回答您第二個問題,版主直接給您看一張圖好了:

    不知您看到什麼?或是看得懂他其中的含意嗎?!所謂P-Code 就是一般在OBD-II 中所常見的引擎診斷的故障碼,這個東西絕對不是什麼SAE 或ISO 規範出來後才有的東西。而是早在工程師們在寫引擎控制程式時,所用到 Debug 檢視碼。所以重點就在這裡,如果您不清楚每一家引擎控制系統的傳輸介面的通訊協定時?您又該如何去分類或作任何判斷呢?!

        至於您所說的VC ++ 的程式,也不過是您要用什麼平台來作您的Application Layer 來讓一般維修技師好一目了然。我可以用同樣的檢查故障碼∼把他做成自我診斷型的診斷器∼也可以做成PDA 掌上型的診斷器∼甚至如您所述的:在個人電腦上用VB/VC 等程式寫一個美美的畫面作一個圖控程式診斷器。

        這樣子,您知道最後答案嗎?!答案就是您該如何去定義一個完整、分類清楚的診斷碼或一個值得所有引擎工程師或維修技師所看得懂得工程數據。然後,又能保證這個資料傳輸可以穩定,及時的忠實反應引擎特性。這才是這些所有所謂CAN Bus / ISO /SAE 等一切規範所努力的基本精髓。

    這個答案也完全適用於像USB使用介面者的一切。所以,版主常鼓勵人家,懂介面不難,去訂定一個規範或是創造一個實質應用介面才是玩通訊或是作工程的最高境界。

    也分享給各位。謝謝指教。

首頁 | News | Products | FAQ | Technicality | Links | OldNews

Telephone : 886-3-5439918    FAX : 886-3-5437632

Copyright(C) 2005 . ChamberPlus System Level Studio All rights reserved.  Last Update: 2008年01月18日。