2007年12月7日 星期五

USB 系統應用範例

 我們還是來講一點有關USB 系統應用的技術問題好了。

我記得在我以前在介紹有關USB 的基本概念時,有提到一個在USB 系統應用上,

有關USB 連接PC (USB Host)時的一個在硬體上的小技巧 :

http://chamberplus.myweb.hinet.net/usb_diy4.htm

...

或許大家對於這樣的應用可能不是非常體會到這樣的作法有什麼意義?!

當然,如果您是一般USB  Device 來說,當您USB Device 直接接到PC 端來說,

只是一個非常單純的USB 裝置,而且只是作一件非常單純的  USB 傳輸功能來說,

就照一般USB 的硬體規格作就沒錯。

但是現在含有USB 介面之 USB Device 的系統架構是越來越複雜了,

也有可能他的USB 介面也如同我們早期那種UART 或是SPI /I2C 那般的一樣普通了。

簡單來說: 這個USB Device 裝置他本身也可能是一個Embedded System 了,

最有名的就是以ARM 為基礎的一個系統裝置東西....他的USB 介面就不是他簡單而單純的功能了。

所以,當這種USB裝置要插到PC Host 端時,他在連接系統上就比PC 端「矮」上一截了...

故在此USB 裝置要插到HOST端時,就要有相當的"心理準備" 。

什麼是"心理準備" ?! 就是當USB 一插到PC HOST 時,PC 端USB HOST就會一直下 USB Token...

萬一此USB 裝置可能還被Sink 在某一個程式迴圈中,而無法及時處理這些USB Token 時,

可能就會發生USB 連接錯誤的現象。

話說雖然這些Embedded system 也有可能是一個Embedded OS ,

但是相對來說:在怎麼快速反應的OS 應該也比不上USB 硬體的動作吧 !

 所以,就會有我之前所提的硬體解決之道。

----
最近,剛好有機會也拿到一片 以ARM 9 的基礎發展版。這一棵 ARM 9 當然也有USB Slave 介面。

呵....檢查一下應用電路 ,哈~哈~果然也驗證了我上述的說法:

他也是利用本身的一根I/O 來決定何時來連接USB HOST ...

(圖)


注意:這個圖裡的Vcc 是3.3V 喔 !!

這個觀念在早期DSC(數位相機啊, MP3等裝置)就已經出現了,而大家也一定都發現:當這些裝置

插到PC Host 時,他本身的某些功能就會 Inhibit(禁能)了,

這就是因為整個系統幾乎都要留給USB HOST,而且也會擔心PC HOST 也會干擾USB Device 本身之系統 !

而版主最近在我本身所使用的USB Controller -- GT6816 也有需要這種使用條件,所以也如法炮製:

(圖)

因為:USB 這個pull-high 1.5K 是需要 3.0~3.6 V 的規格,所以,我用了最簡單的降壓方式。

如此一來,我的USB Device 就可以在使用上利用USB BUS供電,卻又不需要去處理 PC Host 的

USB Token 的 Request 的干擾,又等到我在系統上需要跟PC 連線時,又可以隨時連接到PC HOST上。

(我指的意思是說 : USB 裝置本身可以自行決定在適當的時機來跟PC HOST 連線,

我想以USB device 這麼屬於Slave 被動條件下, 唯一比較可以自行決定的一件事吧 !)

這樣子不是很好的系統應用方式嗎?!

如果您的USB 裝置本身在沒有PC HOST 之下可以做很多事時,

然後他又需要跟PC 連線作一些譬如說系統設定啊, 資料傳輸啊等功能時,

這樣的系統應用條件是蠻不錯的....

--------------------------------------------
-------------------------------------------------
 在此就順便一題有關這片ARM9 的Development Board...

其他細節就不必說了,我們就看一下人家所附的範例程式:

(圖)

不知大家看到了什麼?!

呵~呵~幾乎多是版主這幾年來所寫的文章內容。...

尤其USB 的東西也蠻多的....大家也發現這些USB 裝置都是走標準的USB Class介面。

另外一個是MP3 的範例程式,不過,他的程式是沒附MP3 decoder 程式,

(相信以目前ARM 9 的功力要解MP3 也不難吧!)

因為這個DECODER程式是有版權的...不過,在這個範例中,比較值得一提的是:

他有附 MMC/SD 及DOS FAT 的範例程式。這一部份過去對我們作MP3的人來說也是一項大工程。

沒想到,現在也是俯拾即是的東西了....

由此我們可以瞭解:這些過去或是現在我們所從事的技術開發。

不用幾年後,他們都會成為"顯學"了。到處都是的...

還是老話一句:會懂得什麼技術或是您的產品有多新穎的技術,真的不是那麼重要!!

重要的是:您要拿您所懂得技術,來作什麼產品?

或整合出怎樣的產品才是比較重要的!!

---- 這跟人家路邊擺攤子賣什麼上海烤饅頭一樣, 不出幾年就會退流行,

剩下的是您的運氣好不好 ?! 人家多久會把您做的東西給複製出來 ?!

不過, 現在網路資訊發達....您就不必存在太僥倖的心態吧 !!

------

後記 : 這個跑96MHz 的ARM9 真的蠻強的...以前版主認為在單晶片有些介面的處理能力不足的地方,

就憑藉著他這個高速處理能力來說...還是綽綽有餘...而且真的蠻省電的...

而且他的 ESD 也可以達到  2KV(HBM) ... 也有支援三相無刷馬達的控制介面....

都已經跳脫我過去的一般想法了,

況且人家所提供的許多參考用程式(幾乎都是C語言), 真的在短短的幾天內就可以完成

過去在單晶片時代.那種辛苦摸索的技術瓶頸....

這種對於現在作電子產品來說 : Time to Market 來說,

真的有他利害與優勢的地方...單價又在夾著其大量使用市場而降價中...

難怪要做單晶片的市場壓力會那麼大...也難怪真的比王子麵還便宜...

應該說比王子面還難賣...小學生可以賣,....但單晶片不能賣小學生...

然後王子面拆開吃完就好了...但單晶片還要寫程式...還要客訴...燒錄不良...

服務態度不佳...要求降價...技術支援,參考資料不足....產品不穩, 有Bug ...

$#*&.... #*%$......

----

 




 

沒有留言:

張貼留言