ChamberPlus System Level Studio

  首頁 | Contact to us

 

News
Products
FAQ
Technicality
Links
OldNews

互動區:

留下您的足跡

想討論嗎?

 

USB DIY 講座 (七) ---  USB 控制器

----------------------------------------------------------------------------------------------------------------------------------------

        我再進一步解釋一下有關USB  Controller,因為還是有人不是很清楚我所用的USB Controller 的東西。或許,真的我在USB DIY 講座(四) 中,收尾收得有點太快,有人不是很清楚,在此我用一張圖來解釋一下我寫這些應用的詳細流程:

    在USB DIY 講座(四) 的圖 或許真的不是很清楚,所以,我就把他稍微改寫了一下如上圖,我想這樣子就很清楚了。

        對於這樣一棵的USB Controller 大家就不要太苛求了,因為她是幾乎是十年前設計的東西了。當然,我也可以順便講一下她的故事囉。既然是十年前的東西,以IC設計這種幾乎是十倍速的產業來說,我想應該也不會有人想去設計這樣的IC了。他當初就是設計給掃描器用的IC,說真的,當初是已經初步設計完了,才想到要加USB的介面,畢竟當時USB的東西還算是新的東西。也根本不知道什麼是 SOC ?!但此IC幾乎也是SOC了。對作一些CCD/CIS掃描器或名片掃描器來說,根本不需要任何外部IC(除了步進馬達驅動IC),連memory 都免了。還是先講技術的東西吧!

        首先,大家看到是中間那顆跑 48MHz 的 RISC 8051 ,跑48MHz 是什麼意思?就是他執行一個NOP 是 20.833 nSec,不過,因為在性能及架構有作一些調整,所以,他只能用 AD2500 的組譯器組譯而已。至於高階的C來說,就謝謝惠顧了。既然只能寫 8KBytes 的程式來說,組語就好了。您說,用組語的程式很難維護?說真的,真正會賺大錢的程式,您覺得您一輩子要寫幾個?!哪來那麼多模組化的東西可以維護。真正是您親自操刀的程式,改寫起來都很快的∼您覺的我講的有沒有道理?!有時,我們還真的得冷靜下來想一想:寫這麼多程式,為什麼我還賺不到錢?!是不是不夠努力而已嗎?!工程師們!有時也要抬起頭來看一看!!那您一定很好奇我有沒有賺到錢?!答案不告訴您:因為大家都喜歡從別人身上拿到東西,卻都不曾想回饋過∼自然至少老天爺就不會給您快樂!

        程式要跑 48MHz 也只能在內部的 SRAM 跑,這種觀念跟 CPU 的cache 是一樣的。所以,系統開機 Reset 後,硬體會自然的從 Boot Code 載入 Code Buffer 去執行。而當我們要更新程式時,我們可以從 USB 或 EPP 等介面,甚至從外部位置下載程式到 Data Buffer ,再請內部的 8051 啟動 DMA 1 『自廢武功』把自己給韌體更新∼並同時 Reset 重跑。簡單吧!但基本上只能跑 8KBytes 的程式。但講到這,您有沒有發現一個很好用的作法?!我的應用程式只能跑 8KBytes 嗎?!答案是錯的!因為在USB 的應用裡,既然程式可以隨時更新,所以我就可以因應不同的需求來更新韌體。譬如說:我做一條 JTAG Download Cable ,當我發現是 Xilinx 時,我可以要求 HOST 把程式更新為 Xlinix 的應用介面。同理,當我發現是 Altera 時,也同理可以把應用介面轉成Altera !說到這,您想一想:MicroChip 的 ICD2 就是在選不同的IC 編號時,他有時也會更新一下Device System ?!厲害吧。

        皆下來是他的 Data Buffer 是 16 KBytes ,我想對許多應用來說是綽綽有餘的,為何是 16 KBytes ?要不要猜一下?您既然是系統工程師,應該不是只會寫寫程式而已吧?重要的是您會不會開規格?!這是您工程能力的提升喔。答案是:當初掃描器的規格是 600 DPI ,以 A4 的寬度來算是:6000 個點左右,而以 AFE 產生的資料速度來說:她是 6MHz 的ADC ,而USB 全開的速度是 ~8 Mpbs 所以,以AFE產生的速度是追不上USB要資料的速度,所以, Buffer  就不必太大,但至少也要把一條線給掃進來,所以就抓兩條線的裕度,也保留給 EPP 的速度瓶頸。這一點要說明什麼?您真的很多東西需要 USB 2.0 嗎?!您還是得認清您的物理特性的瓶頸在哪?! 後來我們發現,若要作純粹 USB 2.0 介面的話,我的 Data Buffer 還可以再小(說真的要 Cost Down 我也會啊∼只是您能不能掌握真正的關鍵技術而已吧)!只不過,CCD 或 CIS Sensor 支不支援了?!

        當然,為了保險起見,或未來系統的需要,他還是保留可以外接BUFFER 的空間,就是左邊經由 內部Latch 之後,就可以直接外接記憶體了。16 條 Address ,所以是 64 KBytes ,注意喔∼對 8051 來說,這64 KBytes 跟內部的 16 KBytes 是不同的Bank ,他都可以看得到的喔!!最厲害的還是:他可以直接從USB 下載到外部的 資料空間,根本不用經由內部任何CPU的介入,所以,我做的 USB ROM Emulator 的下載速度,我想以USB 1.1 的規格來說:應該沒有人可以超越我了。

        另外,他還有基本的 I/O 及 8051 的 P1 Port 。

        最後我要說明一下是:他的 EPP/ECP/SPP 介面,是相容於標準 parallel 的介面的喔∼是硬體直接作掉的,而不是用程式去造出來的,不信的話,您看他包裝上那些PIN 腳的定義:有AFD(Auto LineFeed)、SLC(Select) 等喔,當EPP或ECP 傳完一些資料後,也會發中斷通知 8051 的喔。只不過,當初整個市場很快的被 USB 給席捲了,他的 EPP 介面根本沒有客戶願意拿來用。所以,我最近就興起想把這兩個介面拿出來作一個橋接器。只是真的有時忙到沒時間洗PCB 版。

        最後提供一下這顆IC的訊息:他除了 128 Pins 的包裝外也有 44 Pins 的包裝,兩者的價錢是一樣的,所以,為了避免我的庫存水位,我只有進 128 pins 的包裝。至少他的應用面或擴充性比較好吧。

 


 

 

 

 

 

 

 

 

 

        至於,44 Pins 的包裝就沒有EPP 或擴充介面了,就看每個人的需求囉。當然,他一些基本的IO也有啊。只是我不是很懂  BarCode掃描器,不知道這樣的規格適不適合拿來作 BarCode 掃描器?若有人懂這一塊的應用的話,能否給我一點訊息呢?!(我在想,BarCode 用的 IC 應該更便宜吧∼也不需要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日。