今天工作,跟同事聊起Driver的內容,忽然想起前陣子發生的趣事...
前陣子朋友問我,我在做什麼工作,我只跟他簡單說:「Driver」,他立刻回應:「那你開的是哪種車?公車還是計程車?」
因此我就以這個笑話為出發,把故事說完吧!
聽到我差點笑倒,解釋說:「是驅動程式的Driver!不是開車的Driver啊!」
當然,我又被繼續追問,什麼是Driver了?
我解釋說,一個Chip,他可能有很多Reg要調,可能有一些Timing問題。而我們就是要負責去解決....
好吧,這對非本行的人來講簡直就像瘋子在講話一樣。於是我只好再舉實例了,我知道他喜歡玩四輪驅動車,因此就問....
「如果你想要設計出一台會跑的小車子,你需要什麼?」
「至少需要馬達、輪子吧?」
「好,我們有了馬達,四個輪子,那我們至少能做出台會往前跑的車子了。但是只會往前跑,遲早會撞山吧?」
「當然了」
「所以,我們要一個Sensor,來辨別車子前面的障礙物,這樣你還能理解嗎?」
「當然,但不夠吧?」
「接著當然是教車子怎麼自己轉彎囉!」
「那怎麼教呢?」
我就告訴他:所以我們需要Driver嘛!(雙關,司機、驅動程式)
這可勾起他的興趣了,他要我進一步解釋~
「我們可以放一台電腦到車子裡面,電腦會根據Sensor辨別出的障礙物,來判別什麼時候需要轉彎,這能理解吧」
「可以~可是,電腦這麼大台,你要怎麼裝進去」
「SOC你總該聽過吧?電腦說穿了,就是各種邏輯電路的組合,而現在我們已經可以把這些功能,都給裝進一個小小電腦-Chip裡」
「恩....這還能理解,假設電腦裝進去了,也有電池供電了~接著勒?」
「有了電腦,當然就要有軟體,這個軟體,就是所謂的Driver,他會根據電腦(晶片)有的功能,來教會這台車子怎麼開車囉!」
朋友大感不解:「這樣講太快了吧!能說的更具體嗎?」
我說:「這樣問吧,要怎麼控制車子轉彎?」
「可能需要輪軸之類的控制裝置?」
「是的,用最簡單解釋就是,Sensor那邊發現前面有障礙物了,他會把有障礙物的訊息通知給晶片。晶片裡有一套演算法,會算出轉彎路徑。最後把怎麼轉彎的方法,告訴輪軸」
「更精確來說,Sensor所感應到的資料,可能是一連串的RAW,類似0101...的訊號,當然,我們晶片內會有硬體去處理這些訊號,將之轉成如YUV之類更有意義訊息,在繼續經過一連串的轉換,最後得到向左轉、向右轉,當然也是類似0101之類訊息,最後就由邏輯電路來控制步進馬達,完成我們需要的轉彎動作」
「這一連串傳遞訊息給晶片、控制輪軸的動作,就是由Driver來完成!」
「果然就是個稱職的司機(Driver)嘛!」朋友笑著說
「是的,這就是Driver,我現在工作就是在設計這名司機....」

尊敬的部落格主人,您好 我們發現您的部落格裡有特別多美味食譜,我們想把您的部落格推薦到我們的網站www.mytaste.tw。 我們的網址每天的瀏覽量有數萬人次,並且已經有很多個食譜部落格和網站。此外,我們創建了部落格排行榜,那裡已經有幾百個博主的加入了。我們在我們的網站上推薦了您的博客,用戶就能通過我們瀏覽器找到您的部落格。 myTaste.tw是另一種使您的部落格獲得更多訪問流量的方式。許多用戶皆習慣直接通myTaste.tw搜索網站和部落格的食譜。 將您的部落格添加到食譜部落格排行榜,自動發表您的食譜在我們的網站。請按照以下步驟操作:www.mytaste.tw/jiarubuluogepaihangbeng 另外,費用問題您完全不用擔心,因為我們是一個完全免費的網站,目前我們已經在瑞典、巴西、德國、英國、美國、法國等國家有了推廣。您想加入我們嗎?我們靜候佳音。 誠摯的問候 myTaste.tw