2007年9月8日 星期六

一個另類的USB Controller 故事

   來講一個關於USB Controller 的故事。

這不只是一個平鋪直述的簡單故事而已,這裡面也存在許多工程技術觀點及產品觀念在裡面...

故事我們就從一個簡單的網路討論談起:

http://chipware.myvnc.com/phpbb/viewtopic.php?t=278


林老師是版主多年好友,也算是我的良師益友,

他公司的論壇網站大家有空可以多逛逛,相信老師有空時,也會很樂意的回答各位的問題。

這週我就去書店買了這本關於邏輯分析儀與VB的書。

(「基礎邏輯分析儀設計-以Visual Basic 及 MCS-51 實作」--全華科技圖書)

我也想瞭解一下別人的想法與作法,工程的東西沒有永遠的訣竅或是優劣點...

多看多觀摩別人的想法,有時自己本身再多思考,您會獲得許多好的創意與工程以外的東西。

這本書是今年年初才第一版。

以這樣的內容我想跟時下一些相關的書籍來說,主要還是以傳統的方式來討論:

MCS-51 我們就不用說了...傳輸介面與應用軟體平台還是VB 搭配 RS-232...

這種方式若以產品觀點來說:應該說是比較傾向是學習性質吧...

不過,作者以儀器設備的設計觀點來切入,這種拋磚引玉的方式,

也是值得我們激賞的...至少,人家願意用手上既有的資源來探討一個完整的產品基本觀念...

(但如果拿來作一些簡單學生型的儀器似乎也蠻可行的...)

----
  首先我們來看:這種所謂PC based 的儀器設備,這幾年來也蠻大行其道的...

主要原因是因為目前PC實在是太普遍了,而且PC的功能強大,儲存與資源豐富。

所以,相對也可以無形中降低使用者的成本,故然就得到他們所專注的市場定位。

此書中所用的介面是RS232,以他的傳輸速率來說:他已經先天上限制了他儀器本身的取樣能力了。

因為就算您取樣快(單位時間的資料量也大),您也未必傳得到PC端...

要不然就要增加本身的儲存Buffer的容量...否則終究還是會造成Overflow結果。

(套一句俗話說:總有一天我還是會等到您...buffer爆掉的...)

所以,書中的取樣頻率就是定義在 : 2Hz ~ 100KHz 之間而已。

讓大家猜一下 Why ? ...很簡單:MCS-51 搭配 RS232 能做到 115200 bps時,已經很不錯了喔。

所以,這是這一類儀器設備所必須考量的重要因素。

不過,大家都一定會去思考增加儀器本身資料儲存能力,譬如增加記憶體容量...

但是,這些儲存在記憶體的東西,畢竟還是得傳到PC 端才能處理啊。

不像一些脫機(stand-alone) 產品本身就是一個資料處理器。

我們不要討論這種Stand-alone 產品,因為這本來就是以一種成本堆積的產品啊。

我們還是專注說明這種PC-based的應用吧。

--------------------------------------------------------------
    所以,以上的簡單分析,大家是否思考到一點:若是我的傳輸介面夠快的話,

是不是在一定的取樣速率下,我不但不用增加機器本身的buffer 外,

我還可以縮小Buffer 容量以降低成本?!....

當初我們設計這顆USB Controller時(其實就是一棵Scanner SOC)。

我們當初就是有點想顛覆一般傳統電路上的 Buffer 的設計觀念。

(主要的想法不是源自於我,那時我也只是一個小小的工程師....)

如此的設計我們就可以大大的縮小Memory Buffer的使用量,

甚至只留一點點以致於可以直接做到SOC (IC) 內就好了。

不用再外掛Memory...因為影像的東西,資料畢竟還是得回到PC 上去處理是比較恰當的...

所以,當初當年這一棵SOC 還算是蠻有特色的晶片...

(我還是要強調一下這個"當初當年"這種時代久遠的用詞...)

或許,對於時下一些電子產品是有點落伍了,但當初因為少了Buffer 零件,

大大的縮小PCB 版面積,以一個影像掃描器晶片來說:他只要在外掛一個步進馬達驅動IC

可以完成一台掃描器了。而且若是支援CIS sensor 的話,還可以縮到 44 Pins 即可。

剛好無意間就做到類似名片掃瞄機這一類產品上就很合適了...

而歷久不衰,也算是另一類的奇蹟吧---這也是我們當初始料未及的。
  
   -------                            ------

    不過,大家一定很好奇了,既然有這麼好的想法與成績,那應該"趁勝追擊",

再出一棵 USB 2.0 的Controller ,那不是更好嗎?!

答案是:大家都沒看到這一棵 USB 2.0 版本的。所以結果大家都很清楚了。

-------------------------------------------------------
   
     這是一種存在設計人員與系統應用人員對於產品應用的不同觀點。

當初我們也都同意PC本身功能會一直強化,傳輸介面效能也會一直提升。

所以,有些周邊裝置的成本可以一部份藉由PC本身來降低。

但是,最終到底要不要支援追加外掛Memory buffer 介面,就成了最大爭議點...

還扯出所謂:市場產品地位是由哪一方面人員決定呢或主導?!

---這是一時很難決定的,也不一定誰是最後贏家,最終還是得由市場決定。

但無論由誰主導這樣的產品,最終還是得協調雙方合作的機制,

產品開發很難單靠某單方面人員就可以獨力完成,尤其是這種Firmware Based產品。

但很不幸的,不管雙方所使用的藉口理由是何等的神聖與冠冕堂皇...

結果就是:系統應用端的主其事者「陣亡」....

後來,的確也是由設計人員主導著產品開發設計,出了好幾套設計光罩,

也延續了好幾年...終究還是以一代拳王的宿命收場。

----這是一種以人為本的行業。只要人員不對,就已經決定產品的成敗宿命。

尤其是這種延續改版的產品。因為很簡單,這是一種對於產品的情感與熱情。

產品接班人絕對無法如開創者的熱情與無悔的付出...但往往都是幾年後才會有感觸吧...

這跟人文歷史一般的...所有皇位繼承人都不會體會到創業維艱的,

也不會說有立即滅亡的危機,但就是看每個朝代的造化來決定朝代的年限吧。

---------------
    好吧,我們就回到技術本身觀點。我們發現以當初若要外加支援外掛Memory,

則 44 pins 包裝是鐵定不可行(第一代產品優勢喪失)。

當初也沒有多少標準的SRAM 可以用,所以就改成DRAM 介面,

整顆IC 設計成本就提升,系統成本更不用說。

對於客戶來說:我都還沒有享受到新一代產品性能提升,卻要付出製造成本。

所以啊,原本忠心耿耿的客戶就開始信心動搖了...(也給競爭對手可趁之機了)

   其實,當傳輸介面速率增加提升時,資料留在IC 本身Buffer 的機會就變少了...

的確是有降低Buffer 使用量的機會。

但是對於USB 這種傳輸介面又很難說,因為,USB 的介面上又不只是您一家而已。

萬一有外掛另一個USB 裝置來搶USB 傳輸頻寬時,就很難擔保資料傳輸的流暢度。

這就回到我們本文開端所提的產品宿命--- PC based 的產品風險。

雖然RS232 是一個比較慢的介面,但是人家是專用傳輸介面,一個裝置一個專屬的專用介面啊...

您不可能賣USB 產品給客戶時,說只能限制USB PORT專用吧...

所以,您如果是想用USB拿來作「及時」資料處理的傳輸介面時,

您就得考慮到這一層問題。

    好吧...那提到另一個觀點:若拿目前這顆USB Controller 是不是也有機會作一台簡單的邏輯分析儀呢?

或是示波器...因為這顆USB Controller 裡面是有支援CCD SENSOR介面。

取樣速度絕對可以達到MHz 等級的...所以,好像有那麼一回事喔...好玩吧...

但還是老話一句:USB 驅動程式與傳輸效能的完全發揮是一項重要指標。

我也不敢保證,這還沒有牽涉到上層應用程式的資料處理與畫面處理效能等等因素呢。

所以啊...您也不要再笑人家為何還在用RS232 呢?至少人家也完完整整的完成一項觀念產品設計啊。

不用像當初咱們一樣,原本只是產品規格的爭議,搞到最後:雙方各執一詞,

弄得像是宮廷爭寵謀位戲碼一樣。---再多的研發資金,再好的技術團隊,又如何?!

對於產品的憧憬又如何?!以人為本的設計行業來說,人與時機就是那麼一瞬間的機緣。

當人一不對味,時機(Timing)一流失...再多的想法與人員補充都很難在建立當初團對工作默契。

如果,各位看倌您們目前在工作上也遇到類似的問題時,或許本文也可以提供諸位一點經驗吧。

謝謝各位。

PS:因為最近比較沒時間整理一些USB的實驗數據,下回再發表一些更技術性的文章吧。

 

 

沒有留言:

張貼留言