專利名稱::一種雙存儲卡手機的設計方法
技術領域:
:本發明涉及手機的設計方法,特別是一種雙存儲卡手機的設計方法。用MCU(微控制器)的GPIO口模擬SD卡的SPI(SerialPeripheralInterface串行外設接口)模式接口,使手機可同時使用兩個存儲卡的的方法。
背景技術:
:目前,一般手機基本上只支持一張T-Flash(即microSD)存儲卡,(插入了T-Flash的SD卡轉接器均可在支持SD卡的裝置內使用),隨著GPS地圖、MP4、電影等功能的日益普及,對存儲卡的容量需求越來越高;而大容量T卡價格昂貴,容量增加一倍,價格往往增加2倍以上;因此,用戶在購置新卡后通常不愿意放棄原來的小容量卡,希望手機能同時支持兩個或多個存儲卡。目前市場上很多MCU都配有現成的SPI接口電路,但只有一個,只能支持一張T卡。要同時支持兩個存儲卡,需有兩個SD卡(SecureDigitalMemoryCard)接口,需再增加一個。怎么加呢?增加硬件會帶來成本增加、空間更加擁擠等諸多問題。SPI硬件接口用于MCU與各種外圍器件進行全雙工、同步串行通訊。可以同時發出和接收串行數據。它只需四條線串行時鐘線、主機輸入/從機輸出數據線、主機輸出/從機輸入數據線、低電平有效從機選擇線。這些外圍器件可以SD卡,LCM,數模轉換或其他的MCU。當SPI工作時,在移位寄存器中的數據逐位從輸出引腳輸出(高位在前),同時從輸入引腳接收的數據逐位移到移位寄存器(高位在前)。發送一個字節后,從另一個外圍器件接收的字節數據進入移位寄存器中。主SPI的時鐘信號使傳輸同步。
發明內容本發明的目的是提供一種雙存儲卡手機的設計方法。使一部手機能同時支持2張甚至多張存儲卡。為此,采用了一種簡單實用的方法,用MCU的4個GPI0口模擬SD口的SPI模式,以此增加MCU的SD卡接口數量,達到能同時支持多張T-Flash存儲卡的目的。—種雙存儲卡手機的設計方法,其特征在于用MCU的4個GPIO口模擬SD卡的SPI模式接口,相當于給MCU額外增加了一個SD卡的SPI模式接口,使手機可同時支持2張存儲卡。如表1所示,SD卡的SPI模式接口有4根信號線SDI(數據輸入),SDO(數據輸出),SCK(時鐘),CS(片選)。可用4根GPI0口模擬,使MCU擁有雙T-Flash卡接口,電路如圖l所示。電平匹配多數MCU的GPIO口的電壓是2.8V,T-Flash卡的VDD也需要是2.8V,故電平是匹配的。軟件設計通過本發明模擬的SPI接口對T卡進行初始化,首先發送硬件初始化命令,將T卡電源打開,SPI接口初始化,時鐘設置,然后將片選信號(CS)拉低使能,發送CMDO命令來使T卡復位,接著發送CMD1命令查詢T卡的狀態,有卡則激活卡進入初始化過程,發送CMD58命令讀取OCR寄存器,查詢T卡支持的電壓值,發送CMD59命令使能CRC校驗,發3送CMD16命令設置讀取接收塊的長度,最后發送CMD9命令獲取包括T卡大小,制造商等等T卡相關信息,到此,T卡初始化完成。收發數據時,根據所設置的塊的長度,劃分成3、4個字節數據來發送接收,發送接收以及命令執行接口在下面敘述。本發明模擬的SPI口,速度可做到1MB/S,SD標準是最大25MB/S。速度雖慢了些,但播放T卡里面的MP3、MP4等沒有問題,足夠用了。手機MCU芯片的內核通常是ARM7、ARM9,有50-60個GPIO口,設計分配時,除去必備的功能占用外(如LCM接口),至少還有20個左右空閑,可供使用,例如MTK的MT6225芯片。每4個GPI0口就可以模擬成一個SPIT-Flash卡接口。單從能力的角度來看,一部手機完全可以支持5-6張T-Flash卡!只要手機尺寸足夠大、能放得下。本發明的方法不受手機硬件平臺的限制,MTK、TI、高通等平臺都可以使用,只要有足夠多的GPIO口;也不分手機制式,GSM、CDMA、WCDMA、TD等手機平臺都可以使用。對于其他便攜式產品也同樣有參考性。圖1雙T-Flash卡接口電路。圖2接收一個字節數據流程圖。圖3發送一個字節數據流程圖。圖432位命令發送接口設計流程。圖5讀寫T-Flash卡內數據時序圖。具體實施例方式SMCOM在HI01項目上,為增加GPS、電子地圖功能,采用了雙T-Flash卡功能設計。采用的MTK的MT6225芯片只有一個標準SD卡接口,可支持一張T-Flash卡;但有54個GPIO口,除去控制LCM、BT、GPS等功能占用的,還剩13個GPI0口閑置。考慮到手機空間有限,僅用4個GPI0口模擬成一個SPIT-Flash卡接口,以支持另外一張T-Flash卡,構成雙T卡功能。該模擬接口速度可達1MB/S,播放MP3、電影很流暢,完全滿足普通手機用戶的性能要求。此產品已經穩定量產、表明在手機中實現多個存儲卡是可行的。圖2為模擬SPI口接收一個字節數據的流程圖。過程是設置一個八位的臨時接收變量,設置CLK引腳為低并延時,將臨時變量左移一位,接收數據開始,讀取數據10口,并將讀取的數據加上臨時變量,設置CLK引腳為高,延時;循環讀取數據10口,直到讀完一個字節的數據,返回讀出的數據。圖3為模擬SPI口發送一個字節數據的流程圖。過程是設置循環變量i=O,將發送的數據右移7-i位,先發送最高位,將右移的數據與0x01位與,如果得出的數據為1,則往數據接口寫1,否則寫0,設置CLK為低,延時,設置CLK為高,延時,i++,一個比特發送成功后,再循環發送剩余7位,發送成功設置數據10口為高,等待發送下一個字節數據。圖4為32位命令發送接口流程圖,調用接口,設置片選信號為低,可以發送接收數據,將32位命令數據拆分為4個字節的八位數據,發送命令頭,分4次發送32位命令數據,發送校驗數據;循環等待接收此次響應的命令數據,響應的開始位為O,如果沒有接收到響應開始位0,而且等待時間大于設定的超時時間,則返回失敗,此次命令發送失敗,如果接收4到響應開始位0,則開始接收響應數據,發送此次命令成功,將片選信號拉高。表一SPImodeT-Flash卡的引腳定義<table>tableseeoriginaldocumentpage5</column></row><table>權利要求一種雙存儲卡手機的設計方法,其特征在于用MCU的4個GPIO口模擬SD卡的SPI模式接口,相當于給MCU額外增加了一個SD卡的SPI模式接口,使手機可同時支持2張存儲卡。2.跟據權利要l所述一種雙存儲卡手機的設計方法,其特征在于通過本發明模擬的SPI接口對T卡進行初始化,首先發送硬件初始化命令,將T卡電源打開,SPI接口初始化,時鐘設置,然后將片選信號(CS)拉低使能,發送CMDO命令來使T卡復位,接著發送CMDl命令查詢T卡的狀態,有卡則激活卡進入初始化過程,發送CMD58命令讀取OCR寄存器,查詢T卡支持的電壓值,發送CMD59命令使能CRC校驗,發送CMD16命令設置讀取接收塊的長度,最后發送CMD9命令獲取包括T卡大小,制造商等等T卡相關信息,到此,T卡初始化完成。全文摘要本發明公開了一種雙存儲卡手機的設計方法,用MCU的4個GPIO口模擬SD卡的SPI模式接口,將這4個GPIO口轉用于操作T-Flash卡。相當于給MCU額外增加了一個SD卡的SPI模式接口,使得一部手機可同時支持2張存儲卡(T-Flash卡),并可以同時使用。依此方法,可根據需要適當增加模擬SPI模式接口的個數,使手機能支持更多的存儲卡。文檔編號H04B1/40GK101789803SQ20091018837公開日2010年7月28日申請日期2009年11月3日優先權日2009年11月3日發明者孫偉清申請人:沈陽晨訊希姆通科技有限公司