ChamberPlus System Level Studio

  首頁 | Contact to us

 

News
Products
FAQ
Technicality
Links
OldNews

互動區:

留下您的足跡

想討論嗎?

 

                                        文章主題: MP3 系統應用簡介(三)-- USB 篇 part1
------------------------------------------------------------------------------------------------------------------------------------------------




 

首先,這張圖片說明了:MP3 系統內的音樂檔案的資料介面。

            雖然是講有關 MP3 相關的USB觀念,但其實就是一般人用USB常會碰到的問題,我想很多人在論壇上POST USB 問題時,大多屬於我要講的部分居多: 就是透過USB來傳輸個人電腦上面的資料到 Embedded system 上,尤其是8051 系統。就讓我來慢慢說明 :


                透過USB 跟PC連線,用來傳輸或下載MP3 檔案到 MP3 播放器上。 MP3一般使用者,則是利用 User Interface 來操作檔案,這張圖片說明了一件很好玩的事: 之前我不是說,會做隨身碟不去做MP3 會對不起股東嗎?問題就出在:圖中那塊 File System (DOS)。


            因為做隨身碟或讀卡機的業者,大多只會做圖中那條綠線的路徑。 沒有經過 File System∼∼所以,您就知道隨身碟的IC是蠻好做的。只要您下載速度不要差強人意,您大概就可以玩隨身碟的系統了。(但好像光要瞭解這個簡單的傳輸介面就得好好的努力用功一點,好像很多人就卡在這裡,這部分我會以另文說明。)

            話又說回來: File System 很難嗎? 就是寫個簡易的DOS 程式!

            以前可能還不會很難, 因為您只要做 FAT12 and FAT16 就可以,但現在還得追加 FAT32 ,
在加個長檔名支援∼喔∼那還要不要支援中文檔名?!當然,若您要做單純播放MP3 的話,那您也只要寫 Read File 功能就可以了。但萬一,很不幸,您還要加錄音功能的話,就就是代表還要寫 Write File 功能,您就可能就沒辦法用 組合語言寫 8051 Code 。那延伸的問題就是我第一張圖片中說明的。您還要有 8051 Code Banking 的方法,讓8051 的程式能跨越 64KBytes 的限制了。
(註:光是我起頭講的這些東西時,您就可以瞭解作 MP3可以練功練到什麼地步了。而且這些基本功,對於作許多系統應用來說,都是蠻好用的。)

        另外,對於八位元的 8051 要去處理FAT32 這種32 位元的 FAT , 的確是蠻辛苦的,每一筆資料都要分四次存取,萬一,很不幸您還在用那種傳統 12 Clock 才完成一個 instruction 的8051 ,那您的 8051 會操得很凶喔,如此又會再延伸另一個問題:8051 要跑高 MIPS (高頻),就是耗電。隨身聽耗電就是賣產品的致命傷:不是不能賣∼是您會被砍價錢砍得很凶!! 然後,很好玩的是:客戶會跑去跟另一家IC設計公司說:人家價錢這麼便宜,為什麼,您還賣這麼貴?!

            所以,既然要做錄音,又考慮到說,DOS寫檔案過程,一直找空的 FAT,是很辛苦的,又怕來不及處理DSP所產生的資料。所以,一般錄音功能就又不得不採取較高壓縮比的錄音方式, 如ADPCM 乃至CLEP 。至於MP3 錄音來說,我是覺得用MP3 來錄一般語音是蠻不智的。畢竟人講話不會像音樂會 一直有背景聲音(伴奏),所以, Sample Rate 或 Bitrate 就不必太高,否則是蠻沒效率,而且,一不小心您的NAND 就被擠爆了。而且,像這些ADPCM 或是 G723/G729 這種本來就是針對語音壓縮所發展出來的演算法,對語音錄音來說,效果真的很不錯。

(再註:萬一,您的客戶在錄音功能之後,又來個刪檔,再錄音、再來個刪檔、錄音...您的檔案表格:FAT 就體無完膚了,那您要不要支援檔案重整功能?再加個錄音突然斷電:沒有完成Close File 動作。下次開機要不要Recover File ?否則,儲存空氣就會莫名其妙的愈來愈小?!,開機時,又不能太慢,
否則又會被客戶抱怨。)

        不過,看到此∼您不要又興起說那就 ARM 來做啊!! 唉∼∼您又不是不知道人家客戶對您IC的單價多在意啊。人家的機器又不能像 iPOD 那麼有賣相。所以啊∼當市面上有一家可以用八位元的IC做到的功能時,您就又要好好的被檢討了。為什麼,我上班會上得這麼累啊?!

        至於8051 寫DOS的技巧,我改天在另闢專欄來講好了, 為什麼?人家 Microsoft 就靠 DOS 起家的,人家都這麼大了∼一個小小的專欄又算什麼?!更氣人的是:當這些 MP3 量一做起來時, 已經很想將DOS這包袱棄之如敝屣的 MicroSoft ,突然又宣布說:他擁有 DOS 的專利權,希望這些做 MP3 有支援 DOS 格式的業者, 要繳權利金喔∼ 那您就知道,若您能在8051 的平台上寫個簡單的DOS 檔案處理程式就有多值錢了。

         其實,用8051 寫 DOS 還是有某些限制的,譬如說:可不可以一次開兩個檔案,像是 COPY File 啊∼或是要不要做磁碟重整啊!(這裡說的是系統本身去做喔∼而不是您將USB插在PC上,將USB 插在PC上時,File System就由 Windows 接手了,這樣您就懂了我上面那張圖的意思了吧!)

        您別鬧了啊∼不過,偷偷告訴您們,這些某些 COPY 或開多重檔案,還是有辦法的。先賣的關子!

        還沒開始講USB 呢?!

        先起個USB 的頭,下回再一一討論:

        為什麼,寫USB介面的東西,不能像寫 RS232 這麼簡單呢? 因為 RS232 的規格只定義到 Physical Layer 而已嘛!但討厭的是:USB 是一種電器上的傳輸規格,但又都管到您傳輸內容的格式。
厲害的是:他又慢慢的一直追加Class 規格,包山包海包到讓您都不能隨便寫控制程式。最另大家困惑的是:明明只是簡單的取代原來的RS232 + Parallel 的東西,又號稱plug and play ,怎麼反而搞得大家都不簡單了呢?

        簡單來說:作USB 就得寫 USB端的系統程式,因為要符合規格啊。就像以前您要Parallel 傳東西一樣,這部分還算難不倒各位高手。一般USB Controller 大多8051 based 的。而且也沒幾個顆可以玩。

        然後,PC 端也要寫收發程式。最不幸的應該是:現在的Windows 的程式,不像我們『古代』那種DOS 環境的程式了。動輒什麼物件導向,MFC 拉拉雜雜的東西,是啊∼寫起來是比以前程是漂亮多了,
但一個簡簡單單的程式要看得懂他的來龍去脈,就把您給搞死了。

(註:寫MFC 程式的經驗告訴我們:您會寫C或C++沒什麼,但到您會用MFC的程式庫寫到駕就熟輕時,需要幾個月的撞牆期∼到那時,您的USB又要涼掉了。找人作也是一樣的!)

        更令人洩氣的是:Microsoft 現在把底層有關周邊硬體裝置的東西(稱為驅動程式)一一嚴加控管,更加深了我們這些喜歡DIY 的人士們的惡夢了。當然您就很難搞的懂了。

        那您們就想好奇問一下:我這些是學多久呢?!(有沒有出師?我不知道)一來是環境所迫,領薪水過日子,開始接觸時,剛好是Windows 98SE 出現,主機板南橋還沒有USB,抱著還熱的USB 1.1 規格開始作。還邊作邊摸索,連問都沒得問的時候開始作。二來很幸運的是,走在國內作技術開發的最前線,
歷經數位相機、讀卡機,隨身碟∼MP3 一路走來,差不多快十年!主要我想也不是時間的關係,應該大環境的時間點的因素,就像您現在想學DOS的東西一樣,主要可能沒什麼發揮的機會吧。

        下回我再進一步簡單說明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日。