USB OTG 應用於可攜式 KTV 系統之實作
An investigation on applying USB OTG to mobile KTV system
鄭任翔 黃玄煒 李政宏 詹景裕 國立台灣海洋大學
電機工程研究所
國立台北大學 電機工程研究所
e-mail: {M94530077, B0136, D93530006} @mail.ntou.edu.tw
e-mail: [email protected]
摘要
本 文 最 主 要 的 目 的 是 使 用 SOC (System On Chip)的嵌入式可攜 KTV 系 統,藉由 USB OTG 的連接,以及使用者操 作界面與檔案管理功能的輔助,可以直接 從 USB 隨身碟中讀取歌曲資料,以更新系 統中的音樂資訊。
關鍵詞:KTV,SOC,USB OTG。
Abstract
An embedded KTV system is proposed in this paper. USB OTG is used to connect with the USB device which contains the music information. The user can update the music information with the help of user interface and file management capabilities。
Keyword: KTV, SOC, USB OTG.
一、前言
USB (Universal Serial Bus) [1]傳輸規 格於 1995 年被提出,由 Compaq、Digital Equipment Corp. 、 IBM 、 Intel Corp. 、 Microsoft Corp.、NEC、Northern Telecom 所組成的 USB Implementer Forum (USB-IF) [2]聯盟來定義及推廣,於 1998 年 9 月 23 號完成 USB 1.1 [3]協定的制訂,頻寬為 12 Mbps;可用在 Webcam、外接式硬碟、外 接式燒錄機、數位相機(Digital Camera)、
PDA (Personal Digital Assistant)、掃描機 (Scanner),以及影像裝置應用中,惟因無 法提供較高傳輸頻寬的缺點,而造成 USB
發展的限制。USB 2.0 協定[4]於 2000 年完 成 制 訂 , 新 增 了 高 速 模 式 (high-speed mode),傳輸頻寬最高可達 480 Mbps,有 效的解決了 USB 1.x 的傳輸瓶頸;在存取 高速大型儲存裝置,例如 DVD 和硬碟,
USB 2.0 更可發揮其傳輸效能。USB 2.0 採 向下相容的作法,所以舊有的 USB 1.x 傳 輸線、集線器均可以沿用,不會有使用上 的衝突。
USB 的成本低、穩定、易使用且效能 高,電腦可經由其連接滑鼠、鍵盤等簡單 配備,也可連接印表機、MP3 播放機等較 複雜的配備。但 USB 是一種主從架構的通 訊協定,原先是設計給一個主控端搭配多 個週邊配備的應用方式,因此 USB 連線的 操控管理,多半是仰賴主控端,這個主控 端通常是個人電腦。如果要將整套 USB 規 格的主控端控管子系統,全部建構在一個 可攜式裝置中,對於一個可攜式裝置而 言,可能是個很大的負擔。如果把一份儲 存在週邊配備的資料,傳輸到另一個週邊 配備,唯一的方法是透過主控端來中介傳 輸;舉個例子來說,如果我們想要將數位 相機的照片列印出來,通常必須先將相片 上傳到主控端,再從主控端傳送到印表
圖 1 個人電腦與印表機、相機、PDA 連線
圖 2 匯流排拓樸[4]
圖 3 虛擬管線的概念 [6]
機,如圖 1 所示。
以可攜式裝置而言,有時候必須擔任 主控端的角色,而有時候則必須擔任週邊 配備的角色,雖然 USB 的專用接頭體積不 大,但建構於小巧的可攜式裝置之中,可 能還是過於龐大。又 USB 架構的主控端具 備有充足的電源,可以提供週邊配備電 力,對於一些電力有限的小型可攜式裝置 而言,會造成難以管理的負擔。故我們需 要的是一種能讓可攜式裝置直接互連的連 線方式,將數位相機直接連線到印表機,
不需要透過電腦主機,即可直接列印相片。
2001 年發表的 USB 2.0 補充規範 USB OTG (On-The-Go) [5],制訂體積較小的接 頭規格,並新增了雙重角色裝置(Dual-role Device) 及 HNP (Host Negotiation Protocol)、SRP (Session Request Protocol) 兩種協定,使 USB 可以任意替換主控端 (Host)和周邊端(Peripheral)的角色。新規格 的供電需求量較低,電源節約模式的功能 也有所改良。其主要的目標是使設備以主 機的身分和另外特定的一組設備直接做傳 輸,以解決可攜式裝置的供電與連接問題。
由於傳統的 KTV 系統是屬於 Device 端,不具備有 Host 的功能;也就是說要用 到額外的電腦設備,才能將歌曲植入 KTV 系統。本論文將應用 USB OTG 的技術優 點,其中,硬體平台選用整合 CSM6X51 與 OTG Module 的 8 位 元 微 處 理 器 CSC3800,搭配 Wolfson 8731 ADC/DAC 與 LCD Module,以建構成一嵌入式的 KTV 系 統主體。將之設置於卡拉 OK 或 KTV 系統 上,用戶只需普通的隨身碟即可讓卡拉 OK
或 KTV 系統自動擷取隨身碟的資料,以達 到音樂資訊之更新或補充。
本文共有五節,第二節將介紹目前 USB 相關知識與本論文所使用硬體平台上的硬 體架構、相關暫存器位址,第三節將說明 USB host 端所必須執行的動作以及系統功 能整合測試 MP3 格式音樂播放與麥克風 混音之應用,第四節將利用 UART 來做 debug 測試系統的正常,第五節將本文做個 總結以及未來的展望 。
二 、 USB 技術與系統架構 由於 USB 介面具備隨插即用以及諸多 的特性與優點,所以不管是在 PC 或是消費 性電子產品,已經成為了不可或缺的重要 介面,本章將介紹 USB 相關知識,以及本 文所使用硬體平台的架構。
2.1 USB 相關技術 2.1.1 USB 匯流排拓樸
圖 2 所示為 USB 匯流排的拓樸[4],最 頂層為 USB Host 包含一個 Root Hub,接 下來的各層可直接連接 USB 裝置,或再連 接 Hub 來擴充裝置的數量。Node 表示 USB 裝置。理論上最多可連接 127 個裝 置,Hub 也屬於裝置的一種,必須佔用一 個裝置位址;但 Root Hub 不須佔用裝置位 址。
MP3/WMA
Decode KeyScan Hub Host Usb
Device LCD UART
MassStorage MassStorage AudioSystem FileSystem
Main (Player)
MP3/WMA
Decode KeyScan Hub Host Usb
Device LCD UART
Software
Hardware
圖 5 系統架構圖
圖 4 硬體架構圖
2.1.2 USB 資料流的模式與管線的概念
每個 USB 週邊裝置都有端點(Endpoint) 位址,Host 端經由虛擬管線(virtual pipe) 與 Endpoint 通訊,每個 Endpoint 會回傳描 述元(descriptor)給 Host,描述元中包含了周 邊裝置的重要資訊,包括通訊頻寬、傳輸 方向、封包及緩衝區大小等。
USB 的通訊是一種管線的概念,整個 USB Bus 為一條大的管線,其中包含有許 多小管線,可視為 USB Device,小管線中 又 有 許 多 微 管 線 , 視 為 Device 的 Endpoint,如圖 3 所示[6]。Endpoint 是 Device 中的 FIFO 或記憶體區塊,不管是 Host 端要傳資料給 Device 端或接收從 Device 端回傳的資料,都會先將資料放在 Device 專屬的記憶體區塊,也就是個別的 Endpoint。
2.2 硬體平台
巨盛公司所生產的 CSC3800 整合型晶 片,為一核心處理器,它可方便的當作 Device 和 USB OTG 微 控 制 器 使 用 。 CSC3800 全面支援 USB 2.0,USB OTG 2.0 協定,搭配 Wolfson 8731 為音頻 DAC 與 麥克風的 ADC 轉換,系統可透過 USB OTG 介面來讀取隨身碟的 MP3 歌曲資訊,從而 實現歌曲播放與麥克風輸入。輔以按鍵輸 入控制和 LCD 顯示歌名與播放狀態,進而 產生嵌入式卡拉 OK 功能,整體硬體結構 如圖 4 所示。
其中 CSC3800 的內核有一個 8-bits 高效 能 的 micro-controller (CSM6X51) , 兩 個 USB 2.0 On-The -Go high (480Mbps)/full (12Mbps)/low speed 介面,並支援 HNP 跟 SRP,每個 USB module 提供 6 個端點 (endpoint 1/2/3/4/5/6),包含 2 個只傳送端 點,2 個只接收端點,2 個功能端點,端點 1/2/3/4/5 可支援即時巨量傳輸,並且有 Inter IC Interface (I2C),Serial Parallel Interface (SPI) 跟 MP3/WMA decoder , 4 channel 12-bit ADC。
三、 系統架構
電腦的周邊以及消費性電子產品都會 見的到 USB 介面,而 USB 也從傳統的 Device 演進成具有 Host 端的功能不需依附 電腦就可達到具備點對點資料傳輸的功 能,以下將介紹 USB Host 的相關處理流 程。
3.1 系統軟體架構
圖 5 為本文可攜式 KTV 系統的架構 圖,可分為軟體層與硬體層;圖的下層為 硬體周邊裝置;包括 Audio DAC 音效晶 片、Keyboard 按鍵、USB OTG 傳輸介面、
LCD 畫面輸出元件與 UART 介面。圖的上 層為系統軟體架構,系統之軟體部分利用 USB OTG 介面當做資料交換的介面,讓使 用者可以利用其 USB Host 具有主控端的 資料即時讀取,並透過 File System 讀取 USB 隨身碟的 MP3、WMA 格式音樂資訊 (歌曲)、檔案系統管理、MP3 處理、WMA 音樂檔案解碼、LCD 資訊顯示、按鍵與選
曲播放的功能,提供使用者簡單的操作介 面,讓使用者可以輕鬆享受輕巧可攜式 KTV 的多媒體播放功能,在播放的同時混 入人聲,並具備同步顯示歌名功能及播放 狀態之功能,以達到可攜式的 KTV 系統之 目的。
下面將說明藉由 MP3、WMA 音樂的 解碼,配合歌名的顯示,達到 KTV 播放多 媒體的方式。
z MP3 解碼
本系統所使用的 CSC3800 晶片,是一 顆 8051 (CSM6X51)加 DSP 的整合型晶 片,藉由它所提供的 MP3 解碼功能,在 8051 與 DSP 的共用記憶體區,載入解碼命 令,再以外部中斷將 DSP 喚醒,以執行解 碼的工作。
z 按鍵功能
本系統以八顆按鍵的設計,作為使用 者與系統互動的介面,藉由設定計時器之 方式,輪詢(Polling)是否有按鍵被使用者按 下。Timer 每秒產生 100 次之中斷訊號,藉 由中斷服務程式偵測與擷取按鍵資訊。有 了按鍵裝置,使用者便可以透過畫面的顯 示與按鈕的動作,與程式互動,以進入播 放選項。為了防止按鍵之機械速度比 CPU 速度慢而造成訊號跳動之問題,我們設定 反彈跳(Debounce)值為持續 25 次讀到同一 按鍵值,才認定此按鍵被使用者按下。
z USB Host
當我們要更新KTV的MP3、WMA音樂 檔時,都需要透過傳輸介面將其載入KTV 播放主機中。當本系統與USB隨身碟連接 時,透過USB OTG傳輸介面,使用USB巨 量儲存裝置的協定以將USB隨身碟資料讀 取到系統,完成擴充或更新的動作。
z LCD
顯示在畫面的歌曲名稱,使用者可以 利用按鍵來選擇所要播放的歌;並可利用 LCD,在畫面上顯示其他類別的資訊,做 為視覺上的輔助,達成選曲播放的服務。
Initial
USB OTG Port 有隨身碟 Host模式 並進入媒體播放模式
圖 6 模式切換圖
z File system
本系統架構內的檔案系統格式使用檔案配 置表(File-Allocation Table,FAT)。本系統 平台的檔案系統具備開啟、關閉、讀取、
寫入、查詢檔案、建立目錄與寫入磁區等 檔案系統基本功能。
總括而言,當本系統與USB隨身碟完 成USB巨量傳輸協定後,此時系統就可以 直接讀取USB隨身碟裡面的資料,並可以 播放存在隨身碟裡面的檔案了。使用者可 以透過按鍵向本系統要求MP3與WMA的 多媒體播放服務,系統由USB OTG透過 File system輔助,將使用者選擇的多媒體類 別檔案名稱,顯示在畫面上,讓使用者選 取要播放的檔案,當使用者選擇了某個檔 名後,就會透過File system讀取在USB隨身 碟裡面的檔案資料,並且將讀取的資料,
交給Audio system解碼,最後透過喇叭,播 出使用者所點播的多媒體檔案。
3.2 USB 之運作功能 3.2.1 模式切換
系統在開機時會做所有軟硬體的初始 設定,並檢查系統上的 USB OTG port 是否 有跟 USB 裝置連接,如果有的話,系統的 模式就會切換到 Host mode,然後進入媒體 播放模式,如圖 6 所示。
3.2.2 媒體播放模式
當進入媒體播放模式時,系統會週期 性偵測 USB OTG port,檢查是否有 USB 裝置插入。使用者將 USB 隨身碟插入系統 時,系統就會開始對此裝置做識別的動 作,讀取裝置的各種描述元,並規劃裝置 的電源與頻寬,使 Host 可以與 USB 隨身 碟做通訊的動作。
媒體的播放是經由播放按鍵的操作,啟動 系統透過 File system 來讀取 USB Mass
圖 7 系統流程圖
storage 裝置裡面的 MP3 檔案,擷取未解碼 的 MP3 檔 案 (bitstream) , 並 經 由 MP3 Decoder 解碼後,再存入 RAM 中。然後再 把該資料傳送到 DAC 完成混音處理。整個 系統的流程圖如圖 7 所示。
3.2.3 USB HOST 處理流程
本系統為當裝置插入本系統時,系統 會對裝置做 USB HOST 相關的處理動作,
以下將說明 USB HOST 相關處理程序,其 流程如圖 8 所示。
3.3 系統功能整合測試
於上一個節說明 USB HOST 相關動作 後,即可完成一個可攜式的 KTV 嵌入式系 統,進行系統平台之 I/O 驅動、任務溝通 等功能測試。將在本節說明 MP3 處理的流 程。
3.3.1 測試程式架構
在MP3/WMA格式音樂播放應用程式 之系統架構,如圖5所示,上層的應用程式 軟體為MP3 播放器;FileSystem 可對USB 隨身碟做SCSI Read,SCSI Write的動作;
下層硬體之規劃為CSC3800處理器執行周 邊控制與音效資料處理工作,Key Scan 接 收使用者之按鍵輸入、LCD 輸出顯示、
USB OTG 用 來 對 USB 隨 身 碟 裡 面 的 MP3/WMA格式之音樂或歌曲檔案來做交
換、UART 則用來作開發階段之Debug的 輔助工具。
Main function裡面的Player的任務在於 處理USB隨身碟內MP3 檔案讀取、按鍵輸 入、播放器之間的溝通,LCD 的任務為顯 示歌名之功能。Player接收使用者按下按鍵 所輸入之命令,LCD根據目前所播放的狀 態輸出畫面。例如,使用者按下播放按鍵 後,LCD收到Player所傳送之播放命令,便 即時將目前所播放的狀態及歌名,輸出到 LCD。
圖 8 USB HOST 處理流程圖
圖 9 MP3 處理示意圖
Player與LCD都要先向系統要求配置 資源,Player要求使用按鍵、LCD要求使用 狀態輸出資源。若任何一方無法順利取得 資源,MP3 應用程式之流程設計為等待至 資源齊全為止。
3.3.2 播放器
MP3 播放器必須事先向系統要求按鍵 的使用權,播放器的運作將等待至資源獲
圖 10 UART 初始化設定
圖 11 從 UART 傳送一個字元
圖 12 從 UART 接收一個字元 得為止。
3.3.3 MP3解碼
MP3播放流程示意如圖9所示,當使用 者按下Play 按鍵使MP3應用程式進入播放 狀態,系統將下載負責解壓縮MP3格式檔 案的程式到與Audio系統共用之記憶體。
Host端利用檔案系統讀取存在USB隨身碟 中的MP3檔案,並寫入三個位於SDRAM 的緩衝區(Buffer)的其中兩個緩衝區,接著 對Audio系統下播放命令,此時系統會一面 輪詢(Polling)使用者是否按下按鍵又一面 檢查Decoder是否將系統寫入SDRAM緩衝 區之資料傳送至Audio系統的緩衝區,如果 DMA傳送完畢,系統會將資料寫入空的緩 衝區。系統以3個32 Kbytes Buffer提供作解 碼資料源,而且隨時保持著有2個32 Kbytes Buffer的資料量,當完成Buffer 1的解碼 後,尚有Buffer 2與Buffer 3的資料可供播 放,此時將再去讀取下1筆32 Kbytes資料,
存放在Buffer 1,以此類推的方式,供應解 碼資料源,DMA (Direct Memory Access)將 會 把 解 碼 後 的 資 料 送 至 McBSP (Multichannel Buffered Serial Ports),將解碼 後的並列資料轉成串列資料,最後由數位 類比轉換晶片Wolfson 8731將聲音輸出,並 且同時處理麥克風輸入的功能。
在 MP3 應用程式裡,系統對 Audio
系統所下的控制命令包含播放、暫停、上 一首、下一首、快轉、停止等。
四、 測試 4.1 UART 偵錯介面
我們利用 CSC3800 與 PC 共同製作一 個 UART 偵錯介面,用以了解我們所寫的 程式是否有問題,也對發生的問題提供除 錯的能力。
4.1.1 UART 初始化設定
UART 介面的初始化過程如圖 10 所 示,首先將模式設定暫存器的中斷情況清 除,然後再將接收以及傳送的 FIFO 清除,
接著將控制暫存器的 break 情況清除,並設 定鮑率、接收中斷致能、傳送接收的資料 位元數為 8 位元/無同位檢查,最後將 UART 的中斷服務副程式的中斷向量加入
圖 13 系統開機狀態
圖 14 USB 隨身碟插入系統狀態
圖 15 播放狀態 中斷觸發,即可完成 UART 的初始化。
4.1.2 從 UART 傳送一個字元
透過 UART 傳送一個字元給 PC 的流 程如圖 11 所示,首先必須要先等待傳輸用 的暫存器已經是空的,這表示前一個要傳 送的字元已經傳送給 PC,然後才可以把要 傳送的字元寫到傳送用的暫存器,讓內建 在晶片內部的 UART 控制器把資料傳送給 PC。
4.1.3 從 UART 接收一個字元
從 PC 接收一個字元的流程如圖 12 所 示,一開始先檢查接收字元計數暫存器是 否為 0,這表示上一個接收的流程已經把指 定要接收的字數接收完了,才可以從 PC 接 收資料,否則會誤收到上一個流程的資 料,造成資料的誤判與資料傳輸錯誤的困 擾。然後就是等待 PC 從 UART 把資料傳 給裝置的暫存器被設定,再到資料接收暫 存器去把接收到的資料接收下來。
4.2 系統畫面 4.2.1 系統開機
系統ㄧ開機時的狀態如圖 13 所示。
4.2.2 USB 插入系統
一個普通的 USB 隨身碟插入系統的狀 態如圖 14 所示,系統ㄧ開始偵測到有裝置 插入,接著會對裝置做識別的動作就是裝
置列舉,判斷是 Mass storage 類的裝置,並 切換到 Host Mode,然後進入媒體撥放模 式。
4.2.3 播放狀態
當使用者按下播放鍵時,系統開始透 過 File system 來讀取 USB 隨身碟裡面的資 料,並顯示目前播放的狀態,如圖 15 所顯 示。
五、結論
本文提出了一個可攜式的嵌入式KTV 系統,讓使用者可以利用簡單的介面操作 本系統,以及透過USB OTG介面讀取隨身 碟的裡面的音樂資訊,以達到不須使用PC 的情況下,就可以交換音樂資訊。目前可 以 播 放 MP3 檔 以 及 WMA 檔 的 的 音 樂 格 式,讓使用者可以隨時隨地帶著輕巧的 KTV系統來歡唱。本系統平台還提供開發 不同多媒體檔播放的架構,其中檔案系統
與USB巨量儲存裝置協定的處理功能,可 用來解決儲存空間與多媒體資料的交換與 分享的問題,該些問題為影像或者聲音的 系統時最容易遇到的問題。
目前本系統只能播放 MP3 以及 WMA 音樂檔的功能,而螢幕目前也只有文字型 的黑白 LCD,未來希望能夠有影像播放的 能力以及彩色的螢幕,只要藉由撰寫各式 多媒體播放的程式來搭配本系統,就可增 加各式各樣的多媒體能力,例如撰寫播放 RM 格式媒體檔的解碼器,再套用在本系 統之上,就會有播放 RM 媒體檔的功能。
參 考 資 料
[1] USB Implementers Forum web page at http:// www. usb.org/
[2] USB-IF Device Class Documents.
[Online]. Available: http://www.usb.org /developers/devcalss.html/
[3] USB Spec., Rev. 1.1. [Online].
Available: http:// www.usb.org/
[4] USB Spec., Rev. 2.0. [Online].
Available: http:// www.usb.org/
[5] On-The-Go Supplement to the USB 2.0 Spec., Rev. 1.0a. [Online]. Available:
http://www.usb. org/
[6] 劉玟佑,“嵌入式控制系統介面設計與 應用”,國立台灣海洋大學電機工程學 系碩士論文,2004
[7] 許永和,“微處理機與USB主從介面之 設計與應用”,2005
[8] 王 振 榮 , “ 高 速 傳 輸 介 面 新 指 標 USB2.0”,Cypress Corporation, Kosta Koeman, Stuart Allman,2002
[9] On-The-Go Supplement to the USB 2.0 Spec., Rev. 1.0a. [Online]. Available:
http://www.usb. org/
[10] 賈少華,“USB 2.0設計與應用”,2005