//Logo Image
作者:徐業良(2007-09-13);推薦:徐業良(2007-09-13)
附註:本文發表於汽車購買指南雜誌,2007年十月號,史丹福專欄。

無所不在的汽車電腦

學術研究上有一個最近頗熱門的新領域,叫做“Ubiquitous Computing”,直接翻譯成中文就是「無所不在的計算」。大抵的想法是說,將各式各樣的感測器和微電腦嵌入在居家環境中所有地方,緊密地結合人們日常生活活動,無所不在地感測人的各種活動、生理訊號,經過運算之後判斷使用者的狀況及需求,環境便可配合做出適當的調整或反應,像是啟動空調、開關電器之類的,或者是察覺到緊急狀況時自動通知特定照護者等等。

這種像是智慧屋(smart house)之類的概念,想起來其實還怪恐怖的。佈滿了感測器和微電腦的家,不是完全沒有隱私了嗎?

不過您知道,“Ubiquitous Computing”的概念,倒是早就充分實現在您第二個生活空間─汽車上了。現代汽車上的微電腦,或者叫做微處理器(microprocessor),真的是無所不在,隨便算算一部汽車可能就有五六十個。感覺起來似乎汽車越來越複雜,然而不容否認的,汽車上大量應用微處理器,對汽車來說是一項革命性、結構性的改變,包括汽車的性能、設計與生產,診斷與維修,以及安全性、舒適性等等,都有很大的影響。

這個月我這個機械系教授就改行冒充一下電機、資訊系教授,和大家談一下汽車上無所不在的微處理器。

微處理器在汽車上最早的應用,是用來執行複雜的引擎控制。汽車廢氣排放標準越來越嚴格,需要更複雜的控制規則在不同行車狀況下隨時調整引擎火星塞點火時間、汽缸內的空氣燃油混合比等,觸媒轉換器才能從汽車排放廢氣中移走大量的污染物,沒有微處理器幫忙絕對搞不定、通不過廢氣排放標準。控制引擎的微處理器還擁有一個專門的名字,叫做「引擎控制單元(Engine Control Unit, ECU)」,到現在為止,ECU還是大部分汽車上功能最強大的微電腦,負擔最沈重的計算工作。

ECU控制引擎的方式在控制學上的專有名詞叫做「閉迴路控制」,簡單的說就是持續不斷地監測系統輸出,如果和設定的輸出值有差異時,便將訊號迴授回來調整系統輸入。ECU從十幾個不同的感測器讀取感測數據,從冷卻水水溫到引擎排放的廢氣含氧量等等,有了這些數據,ECU每秒鐘可以執行上百萬計的計算,由長串長串的理論公式計算出最佳的點火時間、噴油嘴開放時間長度等等,然後發出指令調整這些引擎參數,以確保引擎運作維持在最低廢氣排放以及最省油的狀態。

現代汽車的ECU基本規格是一個32位元,40MHz的微處理器。所謂40MHz的意思是說微處理器每秒鐘運算40百萬(Mega)次,聽起來不特別厲害,跟您個人電腦動輒2GHz,每秒鐘運算二十億次的微處理器相比的話,計算速度只有五十分之一而已。但是ECU的計算工作比個人電腦單純許多,就只作引擎控制這麼一件事而已,運算的程式也比較小、比較有效率,這個等級的微處理器就很夠用了。

更仔細一些討論的話,ECU不是只有在作計算而已,整個模組還作了好幾件其他工作。前面提到首先ECU得要讀進汽車感測器的量測訊號,比如說量測汽車廢氣含氧量的感測器。含氧感測器的輸出是一個在01.1伏特之間的一個「類比(analog)」電壓值,但是微處理器只能讀進數字,更確切地說,只讀得懂0-1組成的二進位數字,所以先要有一個「類比數位轉換器」把這個類比電壓轉換成一個10 bit的數字,也就是改由100-1組成的數字來表達這個電壓值。ECU讀進了這些輸入數據,才能作後續的長串計算,計算出結果之後又要發出指令,控制火星塞點火、噴射供油嘴的開闔、冷卻風扇開關等元件,有時候這些元件需要的控制訊號又是類比電壓,ECU又得把數位訊號轉換成類比電壓輸出。

轉來轉去,聽起來挺麻煩的。更麻煩的是,從ECU運作過程的例子,看起來有許多訊號要在車子上到處傳來傳去,來自汽車各個位置的感測器要將感測訊號傳給ECUECU計算完畢後又要發出控制訊號,傳給各個元件。這些訊號要靠什麼傳呢?如果傳輸一個訊號就要拉一條訊號線的話,整部汽車上上下下得要拉多少條線呢?

幸好工程師們有很巧妙的解決方法,就是模仿電腦網路,把整部汽車布置一個小小的微處理器區域網路,英文叫做CAN (Controller-Area Networking),在這個區域網路負責傳輸的線路就叫做CAN bus,就是兩條訊號傳輸線而已,CAN bus比較專業的中文名稱叫做微處理器區域網路「匯流排」。

我還是比較喜歡英文bus這個字,一班一班川流不息的公共汽車,滿滿載著資訊「封包(packet)」,在感測器、ECU、汽車元件之間跑來跑去。

現代的ECU上便有一塊通訊晶片,專門負責收發這些資訊封包。資訊封包內容的格式大家得先談好,感測器、ECU、汽車元件才能互相溝通,CAN bus就是目前主流的汽車車內通訊標準CAN bus這個通訊標準可以提供500Kbps的通訊速度,意思是每秒鐘(ps, per second)可以傳輸500K bit的資料量,比您家裡的ADSL要慢許多,但是比CAN bus之前的幾個汽車車內通訊標準都要快速得多了。

在汽車內建立資訊網路的概念,讓許多事情簡化許多,一個好例子是汽車儀表版的簡化。基本上汽車儀表版必須從汽車各個部分蒐集各種數據然後顯示出來,和前面提到引擎ECU運作的概念類似,如果車速、水箱、水溫、機油等等每一個感測器都拉一條線到儀表版,線路可能會複雜得不得了,此外其車上其他控制模組也需要知道這些感測器的資料,舉例來說,ECU得知道冷卻水的溫度和引擎速度,傳動系統控制器必須知道汽車行駛速度,ABS煞車控制器要知道ABS煞車是否有問題,同樣的訊號要拉兩三條線給不同的模組,也不是好辦法。

汽車內有這麼一個小小的資訊網路的話,所有感測器只是將自己量到的感測數據包裝成一個資訊封包,丟上CAN bus。一個資訊封包基本上包含標頭(header)和數據本身兩個部分,標頭也只是一組大家先前規定好的數字代碼,標示這組資訊是車行速度、溫度讀數、或是其他東西,後面接著的數據就是速度或溫度讀數的數值。一個感測器可能每秒鐘丟好幾次資訊封包上CAN bus,隨時update自己的狀況,儀表版上的通訊晶片則隨時在CAN bus上檢視這些資訊封包,每當找到一個自己想要的資訊封包,便會自動更新儀表版上相對應指示錶的數值。

汽車製造廠許多元件都要委託下游廠商製作,在這樣的CAN bus架構下,汽車製造廠和元件供應廠商的溝通整合都簡化許多,大家可以各管各的,比如說設計儀表版的供應商不需要知道速度信號是如何產生、或是從哪裡傳來的,汽車廠也不需要擔心每一個儀表或指示燈要如何驅動,大家只要講好哪些資訊要被丟到CAN bus上,儀表版、ECU或其他控制模組也只要持續監測CAN bus,撈出自己需要的資訊封包就可以了。

很棒的概念對不對?在這種概念之下,所有的感測器也都要升級成為「智慧型感測器」-也要搭上一個微處理器。

舉例來說,一個傳統的壓力感測器能夠根據施加在感測器上的壓力不同而輸出不同的電壓。通常來說,這個電壓輸出還會因為溫度等因素而產生變化,而且通常電壓很小,需要放大才能夠被讀取。所謂「智慧型感測器」,就是在感測器外加一個微處理器,可以讀到電壓、轉換成數字,再用溫度補償曲線校正得到準確的壓力數值之後,再把這個數字丟上CAN bus。儀表版、ECU不需要接到感測器電壓還要類比數位轉換在計算成壓力數字,提供精確感測數據完全是感測器廠商的責任-這很合理-感測器廠商原本也就是最瞭解細節的感測器專家。智慧型感測器另一個優勢,是數位訊號在通訊匯流排上傳輸,受到電氣雜訊的影響較小。一個類比電壓在傳輸線上傳輸,當流經某些電路元件時,可能電壓值會改變,或者被加入很多雜訊。

甚至在汽車的操控開關上,都可以利用到微處理器和CAN bus。除了儀表版之外,汽車上最多操控開關的區域,應該是駕駛座側的門把部位,電動窗、電動後視鏡、中央門鎖的控制全部集中在這兒。老問題,如果每一個控制裝置都要接上一條傳輸線連接到所要控制的電動窗或電動後視鏡,線路將會多得不得了。您想到了,把駕駛人的這些控制指令轉換成資訊封包,丟上CAN bus就成了。

現代汽車駕駛座車側門把整體是一個控制模組,如果駕駛人按下開關調整汽車後視鏡,車門模組的微處理器將這個指令轉換成一個資訊封包,送上CAN bus,電動後視鏡模組在CAN bus上撈到這個資訊封包,接受指令開啟電源來驅動電動後視鏡馬達。如此一來,所有駕駛人、乘客的操作控制,都變成資訊封包都進入兩根傳輸線路形成的CAN bus,甚至汽車聲控系統也可以作相同的規劃,汽車上的線路自然大大簡化許多。

汽車各個模組上都有微處理器,利用CAN bus互相溝通,也讓汽車維修保養的方式變得完全不同。汽車上個別模組發生問題時可以和一個中央模組溝通錯誤訊息,中央模組便可以儲存這個錯誤訊息,汽車診斷時只要將這些錯誤訊息傳輸到一個診斷工具上,技師馬上知道汽車哪裡有問題。特別是汽車有些毛病是間斷性發生的問題,您開車的時候問題不斷,把汽車帶到工廠檢修時問題又消失了,這樣的狀況中央模組都會把錯誤訊息記錄下來。

汽車上不斷增加的新的安全系統和提升方便性的配備,也增加了汽車上微處理器的數目,像是ABS煞車、氣囊、循跡控制和穩定控制系統都已經逐漸成為汽車上十分普遍的設備。每增加一個新系統、新功能,都會增加好幾個感測器和微處理器,不過您可以想像,在CAN bus的架構下,汽車配備的擴充其實也並不特別困難,許許多多的新科技都會持續被加入到汽車裡。第一個撐不住的反而是汽車電瓶,事實上汽車廠積極地要把汽車上14伏特的電瓶升壓到42伏特,來應付這些不斷增加模組所需。

老黑手車主可能會挺感嘆的,現代汽車真是越來越高科技了,從前一些您可以自己動手DIY檢查維修的部分,現在似乎都得靠修車廠技師的電腦工具了。機械系的教授大概也會感嘆,汽車這項和人類生活關係最密切的機械產品,逐漸要變成電子產品了…