專利名稱:一種通過gpio口讀寫t卡的方法、系統(tǒng)和手機(jī)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種手機(jī),尤其涉及一種手機(jī)中T卡讀寫方法、系統(tǒng)和手機(jī)。
背景技術(shù):
目前微型安全凄t碼卡(Micro Secure Digital Memory Card, Micro SD 卡),簡稱SD卡或T卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備, 它被廣泛地使用于^f更攜式裝置上,也是手機(jī)上應(yīng)用廣泛的一種移動存儲卡。 同一張SD卡可以應(yīng)用在不同型號的移動電話內(nèi),讓移動電話制造商不用再 為插卡式的研發(fā)設(shè)計(jì)而傷腦筋。
根據(jù)SD卡協(xié)議,所述T卡的數(shù)據(jù)傳輸可支持兩種總線模式 一種是帶 循環(huán)冗余碼校驗(yàn)(Cyclical Redundancy Check, CRC)的SD總線模式,另 一種是同步串行通訊接口 ( Serial Peripheral Interface, SPI)總線模式,即 SPI接口模式。SPI接口是以主從方式工作的,通常有一個(gè)主器件和一個(gè)或多 個(gè)從器件,其接口包括以下四種信號(l)主器件數(shù)據(jù)輸出、從器件數(shù)據(jù) 輸入信號;(2)主器件數(shù)據(jù)輸入、從器件數(shù)據(jù)輸出信號;(3)時(shí)鐘信號, 由主器件產(chǎn)生;(4)從器件使能信號,由主器件控制。
一般支持T卡的手機(jī)都是通過其基帶芯片內(nèi)置的T卡控制器模塊來實(shí) 現(xiàn)對T卡上數(shù)據(jù)的存取,但也有不少相對低端的基帶芯片,因沒有內(nèi)置T 卡控制器模塊而不能支持T卡操作,給用戶帶來了不便。
同時(shí), 一般手機(jī)中處理器芯片上帶有大量的通用輸入輸出口 (General Purpose Input Output, GPIO),方便開發(fā)商擴(kuò)展手機(jī)的功能,實(shí)際上大量GPIO 口處于閑置的狀態(tài)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種用于無內(nèi)置T卡讀取控制器模塊的手機(jī)讀 寫T卡的方法、系統(tǒng)和手機(jī)。 本發(fā)明技術(shù)方案如下
一種通過GPIO 口讀寫T卡的系統(tǒng),包括上層文件系統(tǒng)、處理器芯片 和T卡,其中,所述系統(tǒng)還包括一用于模擬SPI總線時(shí)序的接口控制模塊, 其接收所述上層文件系統(tǒng)對所述T卡的數(shù)據(jù)操作命令,并通過所述處理器 芯片的GPIO 口與所述T卡相連,以讀寫所述T卡。
本發(fā)明所述的系統(tǒng),其中,所述接口控制模塊具體包括 控制單元,用于接收所述上層文件系統(tǒng)發(fā)送的操作指令,并控制讀數(shù) 據(jù)單元、寫數(shù)據(jù)單元、時(shí)鐘信號產(chǎn)生單元和片選信號產(chǎn)生單元工作;
讀數(shù)據(jù)單元,通過第一 GPIO 口與所述T卡上的寫數(shù)據(jù)接口相連,用 于讀取所述T卡上存儲的數(shù)據(jù);
寫數(shù)據(jù)單元,通過第二 GPIO 口與所述T卡上的讀數(shù)據(jù)接口相連,用 于將外部數(shù)據(jù)寫入所述T卡;
時(shí)鐘信號產(chǎn)生單元,通過第三GPIO 口與所述T卡上的時(shí)鐘接口相連, 用于產(chǎn)生與SPI總線同步的時(shí)鐘信號;
片選信號產(chǎn)生單元,通過第四GPIO 口與所述T卡上的使能端相連, 用于啟動所述T卡工作。
本發(fā)明還提供了一種通過GPIO 口讀寫T卡的方法,所述方法包括以 下步驟
A、 上層文件系統(tǒng)向接口控制模塊發(fā)送數(shù)據(jù)操作命令;
B、 所述接口控制模塊接收所述數(shù)據(jù)操作命令,其中的片選信號產(chǎn)生單 元產(chǎn)生有效的片選信號,并通過第四GPIO 口發(fā)送給T卡的使能端;C、 所述接口控制^t塊中的時(shí)鐘信號產(chǎn)生單元產(chǎn)生與SPI總線同步的時(shí)
鐘信號,并通過第三GPIO 口發(fā)送給所述T卡的時(shí)鐘接口;
D、 所述接口控制模塊讀寫所述T卡。 本發(fā)明所述的方法,其中,所述步驟D還包括以下步驟
Dl、當(dāng)所述數(shù)據(jù)操作命令為寫數(shù)據(jù)命令時(shí),寫數(shù)據(jù)單元通過第二GPIO
口向所述T卡上寫數(shù)據(jù)。
本發(fā)明所述的方法,其中,所述步驟D還包括以下步驟
D2、當(dāng)所述數(shù)據(jù)操作命令為讀數(shù)據(jù)命令時(shí),讀數(shù)據(jù)單元通過第一GPIO
口讀取所述T卡上的數(shù)據(jù)。
本發(fā)明所述的方法,其中,所述步驟D1具體包括以下步驟
Dl 1 、所述接口控制模塊從上層文件系統(tǒng)中獲得數(shù)據(jù)塊的個(gè)數(shù)和起始數(shù)
據(jù)塊的編號;
D12、所述接口控制模塊設(shè)置每次需要寫入所述T卡的數(shù)據(jù)塊長度為預(yù) 定字節(jié);
D13、所述接口控制模塊向所述T卡發(fā)送單個(gè)塊寫入指令、數(shù)據(jù)塊開始 令牌及數(shù)據(jù)塊;
D16、所述T卡向所述接口控制模塊反饋寫入結(jié)束信號,所述接口控制
模塊將所述片選信號設(shè)為無效。
本發(fā)明所述的方法,其中,所述步驟D2具體包括以下步驟
D21、所述讀數(shù)據(jù)單元向所述T卡發(fā)送復(fù)位命令,并啟動所述T卡內(nèi)
部初始化;
D22、所述讀數(shù)據(jù)單元向所述T卡發(fā)送單個(gè)塊讀取指令; D23、所述T卡響應(yīng)所述單個(gè)塊讀取指令,并向所述接口控制模塊發(fā)送 單個(gè)數(shù)據(jù)塊;
D24、所述接口控制模塊接收所述單個(gè)數(shù)據(jù)塊,并將該單個(gè)數(shù)據(jù)塊發(fā)送 到上層文件系統(tǒng);
7D25、所述接口控制模塊正確讀取預(yù)定字節(jié)的數(shù)據(jù)塊后,將所述片選信 號設(shè)為無效。
本發(fā)明所述的方法,其中,所述步驟D23還包括以下步驟
D231、當(dāng)所述T卡響應(yīng)所述單個(gè)塊讀取指令出錯(cuò)時(shí),向所述接口控制 模塊反饋一出錯(cuò)信號,所述接口控制模塊接收該出錯(cuò)信號后,停止當(dāng)前數(shù) 據(jù)塊讀取,向所述T卡發(fā)送下一單個(gè)數(shù)據(jù)塊讀取指令。
本發(fā)明所述的方法,其中,所述讀取的數(shù)據(jù)塊中包括所述T卡的容量、 最大可讀寫塊長度及最大傳輸速率信息。
本發(fā)明還提供了一種包括前面所述的通過GPIO 口讀取T卡的系統(tǒng)的 手機(jī)。
本發(fā)明通過用軟件通過處理器芯片的GPIO 口來模擬SPI總線時(shí)序,實(shí) 現(xiàn)對T卡的各種數(shù)據(jù)操作,不僅可以讓較低端芯片的手機(jī)可以支持T卡的 讀寫,即使有內(nèi)置T卡控制器的芯片,也可以通過此方式來實(shí)現(xiàn)雙T卡讀 寫操作。
圖1為本發(fā)明實(shí)施例的通過GPIO 口讀取T卡的控制系統(tǒng)框圖2為本發(fā)明實(shí)施例的通過GPI0 口讀取T卡的方法流程圖3為本發(fā)明實(shí)施例的單個(gè)數(shù)據(jù)塊的數(shù)據(jù)讀取操作數(shù)據(jù)傳輸流程圖4為本發(fā)明實(shí)施例的讀取錯(cuò)誤數(shù)據(jù)傳輸流程圖5為本發(fā)明實(shí)施例的單個(gè)數(shù)據(jù)塊寫入操作數(shù)據(jù)傳輸流程圖。
具體實(shí)施例方式
以下結(jié)合附圖,對本發(fā)明的較佳實(shí)施例加以詳細(xì)說明。 本發(fā)明實(shí)施例的通過GPIO 口讀取T卡的系統(tǒng)控制結(jié)構(gòu)圖如圖1所示。
圖1中的上層文件系統(tǒng)主要是指手機(jī)中基帶芯片的系統(tǒng),接口控制模塊采用軟件模擬SPI總線時(shí)序,其向上與所述上層文件系統(tǒng)接口,向下與手機(jī)
中處理器芯片中的GPIO 口接口,再通過所述GPIO 口與T卡連接,實(shí)現(xiàn)上 層文件系統(tǒng)對T卡的讀寫操作。即該系統(tǒng)中的接口控制模塊和GPIO 口結(jié) 合實(shí)現(xiàn)現(xiàn)有技術(shù)中的T卡控制器的功能,由于是采用軟件模擬SPI總線的 時(shí)序,硬件上復(fù)用了手機(jī)中處理器芯片上的GPIO 口 ,基本上不用增加手機(jī) 的硬件成本。
本發(fā)明實(shí)施例中的系統(tǒng)中的接口控制模塊進(jìn)一步包括控制單元、讀數(shù)據(jù) 單元、寫數(shù)據(jù)單元、時(shí)鐘信號產(chǎn)生單元和片選信號產(chǎn)生單元。其中的控制 單元主要用于與上層文件系統(tǒng)交互信息,包括接收上層文件系統(tǒng)發(fā)送給接 口控制模塊的操作信號和需要寫入T卡的寫入數(shù)據(jù)塊,以及接口控制模塊 從T卡讀到的讀出數(shù)據(jù)塊也通過該控制單元發(fā)送給上層文件系統(tǒng)。所述控 制單元還用于控制接口控制模塊其余四個(gè)單元的工作,包括根據(jù)上層文件 系統(tǒng)發(fā)來的讀取數(shù)據(jù)命令控制所述讀數(shù)據(jù)單元從T卡中讀取數(shù)據(jù),根據(jù)上 層文件系統(tǒng)發(fā)來的寫入數(shù)據(jù)命令將外部數(shù)據(jù)寫入T卡。其中讀數(shù)據(jù)單元通 過處理器芯片的第一 GPIO 口與T卡的寫數(shù)據(jù)端相連,寫數(shù)據(jù)單元通過處 理器芯片的第二GPIO 口與T卡的讀數(shù)據(jù)端相連。
本發(fā)明所述接口控制模塊中的時(shí)鐘信號產(chǎn)生單元主要是采用軟件模擬 SPI總線時(shí)鐘,為讀數(shù)據(jù)單元、寫數(shù)據(jù)單元和T卡提供時(shí)鐘信號,其通過處 理器芯片的第三GPIO 口與T卡的時(shí)鐘信號相連。所述的片選信號產(chǎn)生單 元主要是根據(jù)上層文件系統(tǒng)中的啟動信號來啟動作為從器件的T卡開始工 作,其通過處理器芯片的第四GPIO 口與T卡的使能端相連。
前面所述的處理器芯片的第一、第二、第三和第四GPIO 口是指處理器 芯片上的任何四個(gè)未和手機(jī)系統(tǒng)已用功能重復(fù)的通用輸入/輸出管腳。
本發(fā)明中的通過GPIO 口讀寫T卡的方法流程圖如圖2所示,其實(shí)現(xiàn)步 驟如下
步驟S201 ,上層文件系統(tǒng)向接口控制模塊發(fā)送數(shù)據(jù)操作命令;步驟S202,所述接口控制^t塊中的控制單元控制所述時(shí)鐘信號產(chǎn)生單 元與SPI總線相同的時(shí)鐘信號,通過所述第三GPIO 口發(fā)送給所述T卡的時(shí) 鐘接口;
步驟S203,所述接口控制模塊中的控制單元控制所述片選信號產(chǎn)生單 元產(chǎn)生低電平的片選信號,并通過所述第四GPIO 口發(fā)送給所述T卡的使 能端.,
步驟S204,所述接口控制模塊接收所述數(shù)據(jù)操作命令,通過所述處理 器芯片的GPIO 口讀取所述T卡上的數(shù)據(jù)。
本發(fā)明所述方法更具體描述為上層文件系統(tǒng)向接口控制模塊發(fā)送的數(shù) 據(jù)操作命令是讀數(shù)據(jù)命令或?qū)憯?shù)據(jù)命令,所述控制單元接收該數(shù)據(jù)操作命
令,并發(fā)送給相應(yīng)的數(shù)據(jù)操作模塊,如果是讀數(shù)據(jù)命令,則讀數(shù)據(jù)模塊接 收該讀數(shù)據(jù)命令,依據(jù)時(shí)鐘信號產(chǎn)生單元的時(shí)鐘信號CLK,通過第一GPIO 口向T卡的寫數(shù)據(jù)端讀取該T卡上存儲的數(shù)據(jù)。此時(shí),T卡寫數(shù)據(jù)端也依 據(jù)同一時(shí)鐘信號CLK將讀取到的數(shù)據(jù)通過第一 GPIO 口和讀數(shù)據(jù)單元寫入 上層文件系統(tǒng)。如果上層文件系統(tǒng)發(fā)送的數(shù)據(jù)操作命令是寫數(shù)據(jù)命令,則 寫數(shù)據(jù)模塊接收該命令,同時(shí)上層文件系統(tǒng)會向該接口控制模塊發(fā)送需要 寫入的數(shù)據(jù)塊的個(gè)數(shù)和起始塊的編號,寫數(shù)據(jù)模塊依據(jù)時(shí)鐘信號產(chǎn)生單元 的時(shí)鐘信號CLK,通過第二 GPIO 口向T卡的讀數(shù)據(jù)端寫入需要存儲的數(shù) 據(jù)。
接口控制模塊實(shí)現(xiàn)讀取T卡上數(shù)據(jù)的時(shí)序示意圖如圖3所示,具體步 驟描述如下
a、 所述讀數(shù)據(jù)單元向所述T卡發(fā)送復(fù)位命令,并啟動所述T卡內(nèi)部初 始化;
b、 所述讀數(shù)據(jù)單元向所述T卡發(fā)送單個(gè)塊讀取指令;
c、 所述T卡響應(yīng)所述單個(gè)塊讀取指令,并向所述接口控制模塊發(fā)送單 個(gè)數(shù)據(jù)塊;
10d、 所述接口控制模塊接收所述單個(gè)數(shù)據(jù)塊,并將該單個(gè)數(shù)據(jù)塊發(fā)送到
上層文件系統(tǒng);
e、 所述接口控制模塊正確讀取521字節(jié)的數(shù)據(jù)塊后,將所述片選信號 拉高。
當(dāng)步驟c中T卡響應(yīng)單個(gè)塊讀取指令出錯(cuò)時(shí),T卡會向接口控制模塊 反饋出錯(cuò)信息,如圖4所示。
接口控制模塊實(shí)現(xiàn)向T卡寫入數(shù)據(jù)的時(shí)序示意圖如圖5所示,具體步 驟包括
al、所述接口控制模塊從上層文件系統(tǒng)中獲得數(shù)據(jù)塊的個(gè)數(shù)和起始數(shù) 據(jù)塊的編號;
bl、所述接口控制模塊設(shè)置每次需要寫入所述T卡的數(shù)據(jù)塊長度為512 字節(jié);
cl、所述接口控制模塊向所述T卡發(fā)送單個(gè)塊寫入指令、數(shù)據(jù)塊開始 令牌及數(shù)據(jù)塊;
dl、所述T卡向所述接口控制模塊反^t寫入結(jié)束信號,所述接口控制 模塊將所述片選信號拉高。
本發(fā)明實(shí)施例中所述的通過軟件模擬GPIO 口讀取T卡上數(shù)據(jù),包括 讀取T卡自身的屬性信息,包括T卡的容量、最大可讀寫塊長度及最大傳 輸速率等信息。
本發(fā)明所述的通過GPIO 口讀寫T卡的手機(jī)采用本發(fā)明所述的通過 GPIO 口讀寫T卡的方法或系統(tǒng)。所述手機(jī)可以是內(nèi)置一塊T卡的手機(jī),也 可以是內(nèi)置兩塊T卡的手機(jī)。如果是兩塊T卡,可以通過在GPIO口端設(shè) 置一模擬開關(guān)選擇需要讀寫的T卡。所述手機(jī)可以是帶有T卡控制器模塊 的,也可以是不帶有T卡控制器模塊的。
綜上所述,本發(fā)明主要針對無法支持T卡讀取的手機(jī),考慮到手機(jī)處 理器芯片中的GPIO 口數(shù)量多,且其中許多GPIO 口處于閑置狀態(tài),通過軟件模擬SPI總線時(shí)序來配置GPIO 口的讀寫時(shí)序及時(shí)鐘信號,使沒有T卡控 制器模塊的手機(jī)也能支持T卡讀寫,即使有內(nèi)置T卡控制器模塊的手機(jī), 也可以通過此方式來實(shí)現(xiàn)雙T卡,因此本發(fā)明方案的可擴(kuò)展性極強(qiáng),突破 芯片硬件功能的制約,對節(jié)約成本,增加產(chǎn)品附加值都有一定作用,其應(yīng) 用場合非常廣泛。
應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以 改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù) 范圍。
權(quán)利要求
1、一種通過GPIO口讀寫T卡的系統(tǒng),包括上層文件系統(tǒng)、處理器芯片和T卡,其特征在于,所述系統(tǒng)還包括一用于模擬SPI總線時(shí)序的接口控制模塊,其接收所述上層文件系統(tǒng)對所述T卡的數(shù)據(jù)操作命令,并通過所述處理器芯片上的GPIO口與所述T卡相連,以讀寫所述T卡。
2、 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述接口控制模塊具體 包括控制單元,用于接收所述上層文件系統(tǒng)發(fā)送的操作指令,并控制讀數(shù) 據(jù)單元、寫數(shù)據(jù)單元、時(shí)鐘信號產(chǎn)生單元和片選信號產(chǎn)生單元工作;讀數(shù)據(jù)單元,通過第一 GPIO 口與所述T卡上的寫數(shù)據(jù)接口相連,用 于讀取所述T卡上存儲的數(shù)據(jù);寫數(shù)據(jù)單元,通過第二 GPIO 口與所述T卡上的讀數(shù)據(jù)接口相連,用 于將外部數(shù)據(jù)寫入所述T卡;時(shí)鐘信號產(chǎn)生單元,通過第三GPIO 口與所述T卡上的時(shí)鐘接口相連, 用于產(chǎn)生與SPI總線同步的時(shí)鐘信號;片選信號產(chǎn)生單元,通過第四GPIO 口與所述T卡上的使能端相連, 用于啟動所述T卡工作。
3、 一種通過GPIO 口讀寫T卡的方法,所述方法包括以下步驟A、 上層文件系統(tǒng)向接口控制模塊發(fā)送數(shù)據(jù)操作命令;B、 所述接口控制模塊接收數(shù)據(jù)操作命令,其中的片選信號產(chǎn)生單元產(chǎn) 生有效的片選信號,并通過第四GPIO 口發(fā)送給T卡的使能端;C、 所述接口控制模塊中的時(shí)鐘信號產(chǎn)生單元產(chǎn)生與SPI總線同步的時(shí) 鐘信號,并通過第三GPIO 口發(fā)送給所述T卡的時(shí)鐘接口;D、 所述接口控制模塊讀寫所述T卡。
4、 如權(quán)利要求3所述的方法,其特征在于,所述步驟D還包括以下 步驟Dl、當(dāng)所述數(shù)據(jù)操作命令為寫數(shù)據(jù)命令時(shí),寫數(shù)據(jù)單元通過第二GPIO 口向所述T卡上寫數(shù)據(jù)。
5、 如權(quán)利要求3所述的方法,其特征在于,所述步驟D還包括以下 步驟D2、當(dāng)所述數(shù)據(jù)操作命令為讀數(shù)據(jù)命令時(shí),讀數(shù)據(jù)單元通過第一GPIO 口讀取所述T卡上的數(shù)據(jù)。
6、 如權(quán)利要求4所述的方法,其特征在于,所述步驟D1具體包括 以下步驟Dl 1 、所述接口控制模塊從上層文件系統(tǒng)中獲得數(shù)據(jù)塊的個(gè)數(shù)和起始數(shù) 據(jù)塊的編號;D12、所述接口控制模塊設(shè)置每次需要寫入所述T卡的數(shù)據(jù)塊長度為預(yù) 定字節(jié);D13、所述接口控制模塊向所述T卡發(fā)送單個(gè)塊寫入指令、數(shù)據(jù)塊開始 令牌及數(shù)據(jù)塊;D16、所述T卡向所述接口控制模塊反饋寫入結(jié)束信號,所述接口控制 模塊將所述片選信號設(shè)為無效。
7、 如權(quán)利要求5所述的方法,其特征在于,所述步驟D2具體包括 以下步驟D21、所述讀數(shù)據(jù)單元向所述T卡發(fā)送復(fù)位命令,并啟動所述T卡內(nèi) 部初始化;D22、所述讀數(shù)據(jù)單元向所述T卡發(fā)送單個(gè)塊讀取指令; D23、所述T卡響應(yīng)所述單個(gè)塊讀取指令,并向所述接口控制模塊發(fā)送 單個(gè)數(shù)據(jù)塊;D24、所述接口控制模塊接收所述單個(gè)數(shù)據(jù)塊,并將該單個(gè)數(shù)據(jù)塊發(fā)送到上層文件系統(tǒng);D25、所述接口控制模塊正確讀取預(yù)定字節(jié)的數(shù)據(jù)塊后,將所述片選信 號設(shè)為無效。
8、 如權(quán)利要求7所述的方法,其特征在于,所述步驟D23還包括以 下步驟D231、當(dāng)所述T卡響應(yīng)所述單個(gè)塊讀取指令出錯(cuò)時(shí),向所述接口控制 模塊反饋一出錯(cuò)信號,所述接口控制模塊接收該出錯(cuò)信號后,停止當(dāng)前數(shù) 據(jù)塊讀取,向所述T卡發(fā)送下一單個(gè)數(shù)據(jù)塊讀取指令。
9、 如權(quán)利要求8所述的方法,其特征在于,所述讀取的數(shù)據(jù)塊中包 括所述T卡的容量、最大可讀寫塊長度及最大傳輸速率信息。
10、 一種通過GPIO 口讀取T卡的手機(jī),其特征在于,包括如權(quán)利要 求1所述的系統(tǒng)。
全文摘要
本發(fā)明公開了一種通過GPIO口讀寫T卡的方法、系統(tǒng)和手機(jī),所述系統(tǒng)包括上層文件系統(tǒng)、處理器芯片和T卡,其中,所述系統(tǒng)還包括一用于模擬SPI總線時(shí)序的接口控制模塊,其接收所述上層文件系統(tǒng)對所述T卡的數(shù)據(jù)操作命令,并通過所述處理器芯片上的GPIO口與所述T卡相連,以讀寫所述T卡。本發(fā)明使沒有T卡控制器模塊的手機(jī)也能支持T卡讀寫,而且即使有內(nèi)置T卡控制器模塊的手機(jī),也可以通過此方式來實(shí)現(xiàn)雙T卡,因此本發(fā)明方案的可擴(kuò)展性極強(qiáng),突破芯片硬件功能的制約,其應(yīng)用場合非常廣泛。
文檔編號G06F13/38GK101521956SQ20081024165
公開日2009年9月2日 申請日期2008年12月19日 優(yōu)先權(quán)日2008年12月19日
發(fā)明者符樂安 申請人:康佳集團(tuán)股份有限公司