driver  

今天工作,跟同事聊起Driver的內容,忽然想起前陣子發生的趣事...

 

前陣子朋友問我,我在做什麼工作,我只跟他簡單說:「Driver」,他立刻回應:「那你開的是哪種車?公車還是計程車?

因此我就以這個笑話為出發,把故事說完吧!

 

聽到我差點笑倒,解釋說:「是驅動程式的Driver!不是開車的Driver啊!」

當然,我又被繼續追問,什麼是Driver了?

 

我解釋說,一個Chip,他可能有很多Reg要調,可能有一些Timing問題。而我們就是要負責去解決....

好吧,這對非本行的人來講簡直就像瘋子在講話一樣。於是我只好再舉實例了,我知道他喜歡玩四輪驅動車,因此就問....

「如果你想要設計出一台會跑的小車子,你需要什麼?」

「至少需要馬達、輪子吧?」

「好,我們有了馬達,四個輪子,那我們至少能做出台會往前跑的車子了。但是只會往前跑,遲早會撞山吧?」

「當然了」

 

「所以,我們要一個Sensor,來辨別車子前面的障礙物,這樣你還能理解嗎?」

「當然,但不夠吧?」

 

「接著當然是教車子怎麼自己轉彎囉!」

 「那怎麼教呢?」

 

我就告訴他:所以我們需要Driver嘛!(雙關,司機、驅動程式)

 

這可勾起他的興趣了,他要我進一步解釋~

「我們可以放一台電腦到車子裡面,電腦會根據Sensor辨別出的障礙物,來判別什麼時候需要轉彎,這能理解吧」

「可以~可是,電腦這麼大台,你要怎麼裝進去」

「SOC你總該聽過吧?電腦說穿了,就是各種邏輯電路的組合,而現在我們已經可以把這些功能,都給裝進一個小小電腦-Chip裡」

 

「恩....這還能理解,假設電腦裝進去了,也有電池供電了~接著勒?」

「有了電腦,當然就要有軟體,這個軟體,就是所謂的Driver,他會根據電腦(晶片)有的功能,來教會這台車子怎麼開車囉!」

 

朋友大感不解:「這樣講太快了吧!能說的更具體嗎?」

我說:「這樣問吧,要怎麼控制車子轉彎?」

「可能需要輪軸之類的控制裝置?」

 

「是的,用最簡單解釋就是,Sensor那邊發現前面有障礙物了,他會把有障礙物的訊息通知給晶片。晶片裡有一套演算法,會算出轉彎路徑。最後把怎麼轉彎的方法,告訴輪軸」

「更精確來說,Sensor所感應到的資料,可能是一連串的RAW,類似0101...的訊號,當然,我們晶片內會有硬體去處理這些訊號,將之轉成如YUV之類更有意義訊息,在繼續經過一連串的轉換,最後得到向左轉、向右轉,當然也是類似0101之類訊息,最後就由邏輯電路來控制步進馬達,完成我們需要的轉彎動作」

「這一連串傳遞訊息給晶片、控制輪軸的動作,就是由Driver來完成!」

 

「果然就是個稱職的司機(Driver)嘛!」朋友笑著說

「是的,這就是Driver,我現在工作就是在設計這名司機....」

 

 

 

 

 

 

 

 

文章標籤

天使 發表在 痞客邦 留言(1) 人氣()