朱國鐘
【摘要】便攜小音箱一般包括模擬音頻輸入AUX、外放喇叭、SD卡接口、USB接口和按鍵。在實際使用中,一般不會同時進行USB和SD通信,如果能夠將USB接口和SD接口的引腳復用起來,節(jié)省2個引腳,那么用8pin封裝的主控來實現(xiàn)便攜小音箱功能,將會是一個非常有價值的解決方案。
【關鍵詞】USB;SD卡;分時復用;插入檢測
1.引言
隨著電子技術的發(fā)展,應用需求的迅速膨脹,終端芯片的集成功能越來越多,導致芯片引出管腳不斷增加。另一方面,為減少封裝成本和制造成本,生產(chǎn)商對封裝成本和應用成本的控制是越來越嚴格,這就要求減少封裝引腳數(shù)目。顯然人們的需求和成本是矛盾的。
在消費電子領域,便攜小音箱因為體積小、音效好、功能全、使用方便等特點,廣受消費者的歡迎。便攜小音箱一般包括模擬音頻輸入AUX、外放喇叭、SD卡接口、USB接口和按鍵。為了支持這些功能,便攜小音箱的主控芯片一般包括1個AUX輸入引腳、3個SD卡接口引腳、2個USB接口引腳、1個DAC輸出引腳、1個按鍵檢測引腳,2個電源引腳,共10個引腳。常見的16pin封裝對這種功能需求,顯得冗余。為了節(jié)省主控芯片成本,去選擇8pin封裝時候,又無法完全實現(xiàn)便攜小音箱的功能需求。
當前消費電子產(chǎn)品的USB接口和SD接口與MCU的連接關系如圖1所示。
圖1 現(xiàn)有USB/SD接口結構示意圖
便攜小音箱在實際使用中,一般不會同時進行USB和SD通信,如果能夠將USB接口和SD接口的引腳復用起來,節(jié)省2個引腳,那么用8pin封裝的主控來實現(xiàn)便攜小音箱功能,將會是一個非常有價值的解決方案。
2.USB和SD接口復用硬件電路
如圖2所示,本文以便攜小音箱的應用方案為例,描述一種USB和SD接口復用電路設計,包括MCU主控芯片,USB接口和SD接口。MCU主控芯片包括CPU,SD模塊,USB模塊,定時器,電平檢測模塊,通用輸入輸出引腳IOA、IOB、IOC和IOD,復用控制模塊;USB接口包括第一數(shù)據(jù)引腳USB_DM和第二數(shù)據(jù)引腳USB_DP;SD接口包括命令引腳SD_CMD、時鐘引腳SD_CLK、數(shù)據(jù)引腳SD_DATA、插入檢測引腳SD_DET;SD_CLK引腳和IOA引腳連接,SD_DAT引腳和IOB引腳連接,SD_CMD引腳和IOC引腳連接,SD_DET引腳與IOD引腳連接;USB_DM和USB_DP分別與IOA和IOB兩個引腳連接。
復用控制模塊用于控制SD模塊、USB模塊、電平檢測模塊和通用輸入輸出引腳IOA、IOB、IOC、IOD的連接關系;SD模塊通過復用控制模塊,和通用輸入輸出引腳IOA、IOB、IOC連接; USB模塊通過復用控制模塊,和通用輸入輸出引腳IOA、IOB連接;電平檢測模塊通過服用控制模塊,和通用輸入輸出引腳IOA、IOB、IOD連接。
3.USB和SD接口復用軟件控制流程
為了實現(xiàn)USB和SD接口復用方法,MCU軟件需要設置6個USB接口狀態(tài),6個SD接口狀態(tài)和3個工作流程。接口狀態(tài)如圖3所示。
6個USB接口狀態(tài):USB離線狀態(tài)、USB在線狀態(tài)、USB掛起狀態(tài)、USB激活狀態(tài)、USB空閑狀態(tài)、USB通信狀態(tài)。USB離線狀態(tài)和USB在線狀態(tài)同一時間只有一個狀態(tài)有效,USB在線狀態(tài)為USB掛起狀態(tài)和USB激活狀態(tài)的前提條件。USB掛起狀態(tài)和USB激活狀態(tài)同一時間最多只有一個狀態(tài)有效,USB激活狀態(tài)為USB空閑狀態(tài)和USB通信狀態(tài)的前提條件。USB空閑狀態(tài)和USB通信狀態(tài)同一時間最多只有一個狀態(tài)有效。
圖3 USB/SD 工作狀態(tài)示意圖
6個SD接口狀態(tài):SD離線狀態(tài)、SD在線狀態(tài)、SD掛起狀態(tài)、SD激活狀態(tài)、SD空閑狀態(tài)、SD通信狀態(tài)。SD離線狀態(tài)和USB在線狀態(tài)同一時間只有一個狀態(tài)有效,SD在線狀態(tài)為SD掛起狀態(tài)和SD激活狀態(tài)的前提條件。SD掛起狀態(tài)和SD激活狀態(tài)同一時間最多只有一個狀態(tài)有效,SD激活狀態(tài)為SD空閑狀態(tài)和SD通信狀態(tài)的前提條件。SD空閑狀態(tài)和SD通信狀態(tài)同一時間最多只有一個狀態(tài)有效。
USB激活狀態(tài)和SD激活狀態(tài)同一時間最多只有一個狀態(tài)有效。
利用CPU,SD模塊,USB模塊,定時器,電平檢測模塊,通用輸入輸出引腳IOA、IOB、IOC和IOD,復用控制模塊等硬件結構,配合軟件操作流程,實現(xiàn)USB和SD接口檢測切換流程。
下面舉例說明具體實現(xiàn)檢測切換的過程及步驟。
假設通電開機時,沒有插入SD卡和U盤,開機后先插入SD卡播放,再插入U盤播放。
開機后,USB接口和SD接口均處于離線狀態(tài)。軟件設置使能定時器每50ms產(chǎn)生一次中斷。CPU進入定時中斷子程序后,按既定流程檢測USB接口和SD接口的連接情況。根據(jù)檢測的結果,設置USB接口和SD接口的狀態(tài)。
插入SD卡后,定時器產(chǎn)生定時中斷,CPU執(zhí)行如下檢測和設置步驟:(1)流程a檢測“USB是否處于通信狀態(tài)”。USB不在通信狀態(tài),進入流程b;(2)流程b檢測“SD是否處于通信狀態(tài)”。SD卡不在通信狀態(tài),進入流程c;(3)流程c檢測“USB是否處于空閑狀態(tài)”。USB不在空閑狀態(tài),進入流程d;(4)流程d檢測“SD是否處于空閑狀態(tài)”。SD不在空閑狀態(tài),進入流程e;(5)流程e檢測“SD是否處于掛起狀態(tài)”。SD不在掛起狀態(tài),進入流程o;(6)流程o檢測“SD是否在線”。此時已經(jīng)插入SD卡,SD卡在線,進入流程p;(7)流程p里面,CPU配置復用控制模塊,建立SD模塊和IOA、IOB、IOC的連接。設置SD接口為激活狀態(tài),進入流程s;(8)退出中斷子程序后,根據(jù)音箱系統(tǒng)的需要,進行SD通信。
此后,再插入U盤。定時器產(chǎn)生定時中斷,CPU執(zhí)行如下檢測和設置步驟:(1)流程a檢測“USB是否處于通信狀態(tài)”,USB不在通信狀態(tài),進入流程b;(2)流程b檢測“SD是否處于通信狀態(tài)”,如果SD卡處于通信狀態(tài),則退出中斷子程序,等待定時器再次中斷,如果SD卡不處于通信狀態(tài),因為SD接口已經(jīng)被激活,則必然處于空閑狀態(tài),進入流程c;(3)流程c檢測“USB是否處于空閑狀態(tài)”,USB不在空閑狀態(tài),進入流程d;(4)流程d檢測“SD是否處于空閑狀態(tài)”,SD接口處于空閑狀態(tài),進入流程k;(5)流程k檢測“USB是否處于掛起狀態(tài)”,USB不在掛起狀態(tài),進入流程l;(6)流程l里面,為了避免USB檢測動作影響SD模塊和SD卡,將SD設置為掛起狀態(tài),再檢測“USB是否在線”,此時U盤已經(jīng)插入在線,進入流程m;(7)流程m將USB設置為激活狀態(tài)后,進入流程s;(8)退出中斷子程序后,根據(jù)音箱系統(tǒng)的需要,進行USB通信。
對于先插入U盤,再插入SD卡的情況,可以參考上述過程,實現(xiàn)在線檢測和狀態(tài)設置。
如果SD接口正處于激活狀態(tài),SD卡也仍然連接在線,系統(tǒng)需要進行SD通信時,CPU執(zhí)行如下步驟:(1)流程a檢測SD卡是否在線。因為SD沒有被拔出,進入流程b;(2)流程b里面,將SD接口設置為通信狀態(tài)。然后進入流程c,開始SD通信;(3)SD通信結束后,進入流程d;(4)流程d將SD接口設置為空閑狀態(tài)后,進入流程f,退出SD通信流程。
如果USB接口正處于激活狀態(tài),但U盤已經(jīng)被拔出。當系統(tǒng)嘗試再進行USB通信時,CPU執(zhí)行如下步驟:(1)流程a檢測USB盤是否在線,因為U盤已經(jīng)被拔出離線,進入流程e;(2)流程e將USB接口設置為離線狀態(tài)后,進入流程f,退出USB通信流程。
結合上述硬件電路和軟件流程,即可實現(xiàn)USB接口和SD卡接口的分時復用功能。
4.總結
本文所述的USB和SD接口復用電路,通過配置MCU主控芯片內復用控制模塊控制設定和通用輸入輸出接口狀態(tài),配合軟件的處理流程,分時復用IOA、IOB、IOC、IOD引腳,進行USB通信或SD通信。SD設備和USB設備插拔動作和連線狀態(tài),都不會干擾當前正在使用的USB設備或者SD設備。與現(xiàn)有設計相比,在不影響MCU主控芯片應用功能的同時減少了引腳數(shù)量需求,降低產(chǎn)品的生產(chǎn)成本。
參考文獻
[1]單片機接口技術.
[2]SD Specifications Part 1 Physical Layer Specification Revision3.01.
[3]Universal Serial Bus Specification Revision 2.0.
[4]USB開發(fā)大全(第4版).
[5]新概念51單片機C語言教程.