專(zhuān)利名稱(chēng):將sim卡電話簿導(dǎo)入智能終端的方法和所用的智能終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及固網(wǎng)終端,尤其涉及一種將SIM(用戶(hù)識(shí)別模塊)卡電話簿導(dǎo)入智能終端的方法及相應(yīng)的裝置。
背景技術(shù):
我國(guó)目前的固定電話網(wǎng)建設(shè)非常完善,是世界最大、最先進(jìn)的固定電話通信網(wǎng)絡(luò)。但是目前我國(guó)的固網(wǎng)終端大多數(shù)是模擬電話,其主要缺點(diǎn)是只能提供模擬語(yǔ)音業(yè)務(wù),沒(méi)有承載復(fù)雜數(shù)字業(yè)務(wù)的能力,也無(wú)法提供像無(wú)線終端一樣靈活的電話簿功能?;趶?qiáng)大的數(shù)據(jù)存儲(chǔ)和處理能力以及豐富多樣的數(shù)據(jù)傳輸手段,固網(wǎng)智能終端具有承載復(fù)雜的數(shù)字業(yè)務(wù)的能力,可以向用戶(hù)提供靈活的增值業(yè)務(wù),因而受到越來(lái)越多的用戶(hù)的喜愛(ài)。智能終端SIM卡是一種基于微處理器的非無(wú)源、安全的數(shù)據(jù)存儲(chǔ)媒體,被用于許多數(shù)據(jù)消息的存儲(chǔ)。因?yàn)楸阌跀y帶和管理,非常多的用戶(hù)都把自己的電話簿保存在SIM卡中,一個(gè)SIM卡中有時(shí)存儲(chǔ)了幾百及至上千條的電話記錄。
用戶(hù)采用智能終端后,會(huì)希望將SIM卡電話簿導(dǎo)入到智能終端中,不必費(fèi)時(shí)費(fèi)力地去一條條輸入,但現(xiàn)有的固網(wǎng)智能終端還沒(méi)有提供這個(gè)功能。同時(shí),現(xiàn)有固網(wǎng)智能終端也沒(méi)有對(duì)電話簿進(jìn)行電話號(hào)碼瀏覽、查詢(xún)等本地管理的功能。
因此,為了滿足消費(fèi)者的需求,需要提供一種可以將SIM卡電話簿導(dǎo)入智能終端的方法及相應(yīng)的智能終端。這也可以成為固網(wǎng)終端業(yè)務(wù)的新的增值點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種將SIM卡電話簿導(dǎo)入智能終端的方法。本發(fā)明還要提供一種實(shí)現(xiàn)該方法的智能終端。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種將SIM卡電話簿導(dǎo)入智能終端的方法,應(yīng)用于智能終端通過(guò)SIM卡接口控制器與SIM卡相連的系統(tǒng),包括以下步驟(a)用戶(hù)在智能終端輸入讀取SIM卡電話簿的指令后,智能終端對(duì)所述SIM卡接口控制器進(jìn)行初始化并使能中斷;(b)所述智能終端如果在復(fù)位響應(yīng)等待時(shí)間內(nèi)收到SIM卡的正確的復(fù)位響應(yīng),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c)所述智能終端向SIM卡依次發(fā)送進(jìn)行選擇電話簿目錄文件、選擇電話簿數(shù)據(jù)文件、讀取所述數(shù)據(jù)文件頭及獲取電話記錄的操作的相關(guān)指令,每次發(fā)送指令后,如果在響應(yīng)等待時(shí)間內(nèi)產(chǎn)生的中斷次數(shù)和接收字節(jié)正確,說(shuō)明該步操作成功,再進(jìn)行下一步操作,否則系統(tǒng)出錯(cuò),結(jié)束;(d)所述智能終端將讀取的電話記錄保存到存儲(chǔ)器中,在保存了要導(dǎo)入的所有電話記錄后,結(jié)束。
進(jìn)一步地,上述導(dǎo)入方法還可具有以下特點(diǎn)所述智能終端在初始化時(shí)還設(shè)置一個(gè)系統(tǒng)初始狀態(tài),由一中斷處理單元根據(jù)中斷響應(yīng)判斷SIM卡響應(yīng)正常與否或者操作成功與否,如SIM卡正常或操作成功,將系統(tǒng)狀態(tài)轉(zhuǎn)換為SIM卡正常或該步操作成功狀態(tài),如失敗,則置為出錯(cuò)狀態(tài),再由一驅(qū)動(dòng)單元根據(jù)系統(tǒng)當(dāng)前狀態(tài)進(jìn)行相應(yīng)的下一步操作,兩個(gè)單元交互完成SIM卡電話簿的讀取過(guò)程。
進(jìn)一步地,上述導(dǎo)入方法還可具有以下特點(diǎn)所述智能終端發(fā)送指令后,會(huì)等待因接收FIFO有未讀字節(jié)產(chǎn)生的RFD中斷,如果在預(yù)設(shè)的一次字符等待時(shí)間內(nèi)沒(méi)有RFD中斷產(chǎn)生,就會(huì)產(chǎn)生一個(gè)通用寄存器中斷,如果又過(guò)了一個(gè)字符等待時(shí)間還沒(méi)有RFD中斷產(chǎn)生就會(huì)再產(chǎn)生一個(gè)通用寄存器中斷,預(yù)設(shè)的通用寄存器中斷的最大次數(shù)決定了所述智能終端的響應(yīng)等待時(shí)間,當(dāng)通用寄存器中斷次數(shù)達(dá)到預(yù)設(shè)值后,即認(rèn)為系統(tǒng)出錯(cuò)。
進(jìn)一步地,上述導(dǎo)入方法還可具有以下特點(diǎn)所述步驟(b)中,如果智能終端在預(yù)設(shè)次數(shù)的復(fù)位響應(yīng)等待時(shí)間內(nèi)收到正確的響應(yīng)字節(jié),則認(rèn)為SIM卡做出了正確的復(fù)位響應(yīng)。
進(jìn)一步地,上述導(dǎo)入方法還可具有以下特點(diǎn)所述步驟(c)進(jìn)一步包括以下步驟(c1)所述智能終端向SIM卡發(fā)送“選擇”命令,判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到字節(jié)“A4”,如果是,將系統(tǒng)狀態(tài)設(shè)為成功選擇目錄文件狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c2)所述智能終端向SIM卡發(fā)送SIM卡電話簿所在目錄文件標(biāo)識(shí),判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到字節(jié)’9F,XX’,如果是,將系統(tǒng)狀態(tài)設(shè)為成功發(fā)送目錄文件標(biāo)識(shí)狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c3)所述智能終端向SIM卡發(fā)送“選擇”命令,判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到字節(jié)“A4”,如果是,將系統(tǒng)狀態(tài)設(shè)為成功選擇數(shù)據(jù)文件狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c4)所述智能終端向SIM卡發(fā)送SIM卡電話簿所在數(shù)據(jù)文件標(biāo)識(shí),判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到字節(jié)’9F,len’,如果是,保存len(文件頭信息長(zhǎng)度),將系統(tǒng)狀態(tài)設(shè)為成功發(fā)送數(shù)據(jù)文件標(biāo)識(shí)狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c5)所述智能終端向SIM卡發(fā)送“獲取響應(yīng)”命令,判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到正確的響應(yīng)字節(jié),如果是,保存代表電話記錄長(zhǎng)度的字節(jié),將系統(tǒng)狀態(tài)設(shè)為成功獲取文件頭狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c6)所述智能終端向SIM卡發(fā)送“獲取記錄”命令,攜帶要讀取的記錄號(hào)和記錄長(zhǎng)度,然后判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到電話記錄字節(jié)數(shù)加3個(gè)字節(jié),如果是,將該條電話記錄中的有效數(shù)據(jù)保存到緩存,并將系統(tǒng)狀態(tài)設(shè)為成功讀取電話記錄狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束。
進(jìn)一步地,上述導(dǎo)入方法還可具有以下特點(diǎn)所述步驟(d)中,所述存儲(chǔ)器為閃存,智能終端是逐條讀取要導(dǎo)入的電話記錄數(shù)據(jù)并寫(xiě)入緩存,然后將緩存中的數(shù)據(jù)一次寫(xiě)入該閃存。
本發(fā)明提供的可導(dǎo)入SIM卡電話簿的智能終端包括人機(jī)接口模塊、與SIM卡連接的SIM卡接口控制器、SIM卡驅(qū)動(dòng)模塊、存儲(chǔ)器及文件管理模塊,其中所述人機(jī)接口模塊,用于維護(hù)用戶(hù)和所述智能終端間的人機(jī)界面,根據(jù)用戶(hù)指令,激活SIM卡驅(qū)動(dòng)模塊啟動(dòng)導(dǎo)入過(guò)程,以及顯示提示信息;所述SIM卡接口控制器,用于將總線發(fā)來(lái)的數(shù)據(jù)保存在發(fā)送緩存器中,并以符合接口標(biāo)準(zhǔn)的信號(hào)形式放到外部端口,同時(shí)接收SIM卡返回的數(shù)據(jù)存于內(nèi)部緩存器中;所述SIM卡驅(qū)動(dòng)模塊,用于在收到用戶(hù)指令后,初始化配置SIM卡接口控制器,進(jìn)行工作狀態(tài)設(shè)置并根據(jù)當(dāng)前狀態(tài)通過(guò)所述SIM卡接口控制器向SIM卡發(fā)送相應(yīng)控制命令,將所述SIM卡接口控制器緩存的電話記錄數(shù)據(jù)交給所述文件管理模塊處理;所述文件管理模塊,用于將讀取的電話記錄保存在所述存儲(chǔ)器中。
進(jìn)一步地,上述智能終端還可具有以下特點(diǎn)所述SIM卡驅(qū)動(dòng)模塊進(jìn)一步包括初始化單元、中斷處理單元及電話簿讀取單元。其中所述初始化單元,用于初始化SIM卡接口控制器,設(shè)置SIM卡接口控制器工作狀態(tài)機(jī)的初始狀態(tài)并使能中斷;所述中斷處理單元,用于根據(jù)當(dāng)前工作狀態(tài)和SIM卡的中斷響應(yīng),轉(zhuǎn)換SIM卡工作狀態(tài)機(jī)的工作狀態(tài);所述電話簿讀取單元,用于根據(jù)當(dāng)前工作狀態(tài),依次向SIM卡發(fā)送“選擇”、“獲取響應(yīng)”及“獲取記錄”指令,完成對(duì)SIM卡電話簿的讀取,并將讀取到的電話記錄交給所述文件管理模塊處理。
進(jìn)一步地,上述智能終端還可具有以下特點(diǎn)所述SIM卡接口控制器通過(guò)標(biāo)準(zhǔn)的ISO7816接口與SIM卡相連接。
進(jìn)一步地,上述智能終端還可具有以下特點(diǎn)所述智能終端采用包含SIM卡接口控制器的芯片,所述存儲(chǔ)器采用閃存。
本發(fā)明要解決的另一技術(shù)問(wèn)題是提供一種將SIM卡電話簿導(dǎo)入智能終端并在本地管理的方法。本發(fā)明還要提供一種實(shí)現(xiàn)該方法的智能終端。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種將SIM卡電話簿導(dǎo)入智能終端并在本地管理的方法,應(yīng)用于智能終端通過(guò)SIM卡接口控制器與SIM卡相連的系統(tǒng),包括以下步驟(a)用戶(hù)在智能終端輸入讀取SIM卡電話簿的指令后,智能終端對(duì)所述SIM卡接口控制器進(jìn)行初始化并使能中斷;(b)所述智能終端如果在復(fù)位響應(yīng)等待時(shí)間內(nèi)收到SIM卡的正確的復(fù)位響應(yīng),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c)所述智能終端向SIM卡依次發(fā)送進(jìn)行選擇電話簿目錄文件、選擇電話簿數(shù)據(jù)文件、讀取所述數(shù)據(jù)文件頭及獲取電話記錄的操作的相關(guān)指令,每次發(fā)送指令后,如果在響應(yīng)等待時(shí)間內(nèi)產(chǎn)生的中斷次數(shù)和接收字節(jié)正確,說(shuō)明該步操作成功,再進(jìn)行下一步操作,否則系統(tǒng)出錯(cuò),結(jié)束;(d)所述智能終端將讀取的電話記錄保存到存儲(chǔ)器中,在保存了要導(dǎo)入的所有電話記錄后,結(jié)束。
(e)用戶(hù)要在所述智能終端瀏覽電話簿時(shí),所述智能終端將存儲(chǔ)的電話號(hào)碼和人名讀到緩存中,將電話記錄中的標(biāo)識(shí)符部分從Unicode編碼轉(zhuǎn)換為GB2312的編碼,排序后顯示,對(duì)應(yīng)的電話號(hào)碼數(shù)據(jù)直接利用ASCII碼庫(kù)顯示;(f)所述智能終端接收到來(lái)電號(hào)碼后,按照數(shù)字號(hào)碼到存儲(chǔ)的電話簿中查詢(xún)是否有相同電話號(hào)碼,如果有,將相應(yīng)的人名數(shù)據(jù)讀出,從Unicode編碼轉(zhuǎn)換成GB2312編碼后和電話號(hào)碼一起顯示;如果沒(méi)有,只顯示電話號(hào)碼。
進(jìn)一步地,上述導(dǎo)入管理方法還可具有以下特點(diǎn)所述智能終端中預(yù)存有Unicode編碼庫(kù)和GB2312編碼庫(kù),該兩個(gè)編碼庫(kù)的編碼存在一一對(duì)應(yīng)關(guān)系且按照Unicode編碼由小到大排序,所述智能終端在瀏覽或查詢(xún)時(shí),是根據(jù)緩存中的Unicode編碼數(shù)據(jù)在Unicode編碼庫(kù)中按照對(duì)分法進(jìn)行查找,得到該數(shù)據(jù)在Unicode編碼庫(kù)中的索引號(hào),再利用該索引號(hào)到GB2312編碼庫(kù)中找到該數(shù)據(jù)相應(yīng)的GB2312編碼。
本發(fā)明提供的可導(dǎo)入SIM卡電話簿并在本地管理的智能終端包括人機(jī)接口模塊、與SIM卡連接的SIM卡接口控制器、SIM卡驅(qū)動(dòng)模塊、存儲(chǔ)器及文件管理模塊,電話簿瀏覽模塊、電話簿查詢(xún)模塊、ASIC編碼庫(kù)、Unicode編碼庫(kù)、GB2312編碼庫(kù)以及編碼轉(zhuǎn)換模塊,其中所述人機(jī)接口模塊,用于維護(hù)用戶(hù)和所述智能終端間的人機(jī)界面,根據(jù)用戶(hù)指令,激活SIM卡驅(qū)動(dòng)模塊啟動(dòng)導(dǎo)入過(guò)程,以及顯示提示信息;所述SIM卡接口控制器,用于將總線發(fā)來(lái)的數(shù)據(jù)保存在發(fā)送緩存器中,并以符合接口標(biāo)準(zhǔn)的信號(hào)形式放到外部端口,同時(shí)接收SIM卡返回的數(shù)據(jù)存于內(nèi)部緩存器中;所述SIM卡驅(qū)動(dòng)模塊,用于在收到用戶(hù)指令后,初始化配置SIM卡接口控制器,進(jìn)行工作狀態(tài)設(shè)置并根據(jù)當(dāng)前狀態(tài)通過(guò)所述SIM卡接口控制器向SIM卡發(fā)送相應(yīng)控制命令,將所述SIM卡接口控制器緩存的電話記錄數(shù)據(jù)交給所述文件管理模塊處理;所述文件管理模塊,用于將讀取的電話記錄保存在所述存儲(chǔ)器中;所述電話簿瀏覽模塊,用于在收到用戶(hù)瀏覽電話簿的指令后,將存儲(chǔ)的電話號(hào)碼和人名讀到緩存中,并調(diào)用所述編碼轉(zhuǎn)換模塊將電話記錄中的標(biāo)識(shí)符部分從Unicode編碼轉(zhuǎn)換為GB2312的編碼,排序后顯示,對(duì)應(yīng)的電話號(hào)碼數(shù)據(jù)直接利用ASIC碼庫(kù)顯示;所述編碼轉(zhuǎn)換模塊,用于將電話記錄中的標(biāo)識(shí)符部分從Unicode編碼轉(zhuǎn)換為GB2312的編碼。
所述電話號(hào)碼查詢(xún)模塊,用于在接收到來(lái)電號(hào)碼后,按照數(shù)字號(hào)碼到存儲(chǔ)的電話簿中查詢(xún)是否有相同電話號(hào)碼,如果有,將相應(yīng)的人名數(shù)據(jù)讀出,調(diào)用所述編碼轉(zhuǎn)換模塊將其從Unicode編碼轉(zhuǎn)換成GB2312編碼后和電話號(hào)碼一起顯示;如果沒(méi)有,只顯示電話號(hào)碼。
由上可知,本發(fā)明利用智能終端強(qiáng)大的數(shù)據(jù)存儲(chǔ)和處理能力,以及SIM卡的標(biāo)準(zhǔn)接口,實(shí)現(xiàn)了SIM卡電話簿向智能終端的導(dǎo)入。特別適用于智能終端等設(shè)備中,極大地方便了用戶(hù),也可以成為固網(wǎng)終端業(yè)務(wù)的新增值點(diǎn)。
圖1是本發(fā)明實(shí)施例SIM卡接口硬件原理圖。
圖2是本發(fā)明實(shí)施例的功能框圖。
圖3是圖2中SIM卡驅(qū)動(dòng)模塊的功能框圖。
圖4是電話簿在SIM卡中目錄結(jié)構(gòu)的示意圖。
圖5是本發(fā)明實(shí)施例電話簿導(dǎo)入流程及工作狀態(tài)轉(zhuǎn)換圖。
圖6是本發(fā)明實(shí)施例智能終端電話號(hào)碼瀏覽的流程圖。
圖7是本發(fā)明實(shí)施例智能終端電話號(hào)碼查詢(xún)的流程圖。
具體實(shí)施例方式
本實(shí)施例以具有SIM卡接口控制器(ISO7816)的芯片的智能終端為例,但芯片上沒(méi)有集成SIM卡控制器接口,而是在主板上具有SIM卡接口的智能終端也能實(shí)現(xiàn)本發(fā)明。該SIM卡接口控制器與SIM卡及外接電源連接而成的SIM卡接口的硬件原理如圖1所示。
本實(shí)施例中芯片內(nèi)部集成有SIM卡接口控制器(SIM),可以將MCU(微處理控制器)通過(guò)總線發(fā)來(lái)的數(shù)據(jù)保存在發(fā)送緩存器中,并以符合ISO7816標(biāo)準(zhǔn)的信號(hào)形式放到外部端口,同時(shí)接收SIM卡返回的數(shù)據(jù)存于內(nèi)部緩存器中。該芯片基于ISO7816協(xié)議標(biāo)準(zhǔn),提供SIM卡接口標(biāo)準(zhǔn)信號(hào),其SIMCK管腳、SIMRST管腳和SIMIO管腳分別與SIM卡CLK管腳、RST管腳和DAT管腳連接,SIMV管腳用于VCC控制。其內(nèi)部具有10個(gè)32位用戶(hù)可讀取寄存器、2個(gè)16位內(nèi)部寄存器以及2個(gè)內(nèi)部FIFO,用戶(hù)可以通過(guò)配置寄存器發(fā)出RST信號(hào)、配置接口速率等參數(shù),以及接收ATR(復(fù)位響應(yīng))。
本實(shí)施例的SIM卡通過(guò)標(biāo)準(zhǔn)的ISO7816接口與智能終端通訊,接收芯片SIM卡接口發(fā)來(lái)的認(rèn)證、卡內(nèi)信息讀取等指令,完成相應(yīng)操作并返回響應(yīng)。
在上述接口硬件的基礎(chǔ)上,還需要在智能終端內(nèi)用軟件模塊控制SIM卡內(nèi)電話簿到智能終端內(nèi)Flash的導(dǎo)入,如圖2所示,該導(dǎo)入控制系統(tǒng)包括SIM卡和智能終端上的人機(jī)接口模塊、SIM卡接口控制器(已在上文介紹)、SIM卡驅(qū)動(dòng)模塊、Flash文件管理模塊和Flash。其中人機(jī)接口模塊,用于維護(hù)用戶(hù)和所述智能終端間的人機(jī)界面,根據(jù)用戶(hù)指令,激活SIM卡驅(qū)動(dòng)模塊啟動(dòng)導(dǎo)入過(guò)程,以及顯示提示信息。
SIM卡驅(qū)動(dòng)模塊(圖中將其與SIM卡接口控制器放在一個(gè)框內(nèi)),用于在收到用戶(hù)指令后,初始化配置SIM卡接口控制器,進(jìn)行工作狀態(tài)設(shè)置并根據(jù)狀態(tài)向SIM卡發(fā)送相應(yīng)控制命令,讀取到的電話記錄交給Flash文件管理模塊處理。該模塊進(jìn)一步包括初始化單元、中斷處理單元及電話簿讀取單元。其中初始化單元,用于初始化SIM卡接口控制器,設(shè)置SIM卡接口控制器工作狀態(tài)機(jī)的初始狀態(tài)并使能中斷。
中斷處理單元,用于根據(jù)當(dāng)前工作狀態(tài)和SIM卡的中斷響應(yīng),改變SIM卡工作狀態(tài)機(jī)的工作狀態(tài)。
電話簿讀取單元,用于根據(jù)當(dāng)前工作狀態(tài),向SIM卡發(fā)送“選擇”、“獲取響應(yīng)”、“獲取記錄”等指令,完成對(duì)SIM卡電話簿的讀取,并將讀取到的電話記錄交給Flash文件管理模塊處理。
Flash文件管理模塊,用于對(duì)Flash進(jìn)行擦除、寫(xiě)入等操作,將電話記錄保存在Flash中。
下面將詳細(xì)介紹本實(shí)施例導(dǎo)入方法的步驟,為了便于理解,先介紹一下ISO7816標(biāo)準(zhǔn)和GSM11.11標(biāo)準(zhǔn)中電話簿在SIM卡中的目錄結(jié)構(gòu)。如圖4所示,其中,MF(Main File)為最頂層目錄,文件ID為3F00,是SIM卡上電后的默認(rèn)目錄;DF(Dedicated File)為MF下一層功能目錄,電話簿在DFTELECOM中,該目錄文件ID(標(biāo)識(shí))為7F10;EF(Elementary File)為數(shù)據(jù)文件,電話簿文件為EFADN,該數(shù)據(jù)文件ID為6F3A。
成功選擇EF文件后返回的文件頭信息長(zhǎng)度(len)大于等于15個(gè)字節(jié),其中第15個(gè)字節(jié)為記錄長(zhǎng)度(record_len),對(duì)于EFADN文件,記錄長(zhǎng)度表示一條電話記錄所包含的所有信息的長(zhǎng)度。本實(shí)施例EFADN文件最多包含255條電話記錄。
一條電話記錄所需的字節(jié)數(shù)record_len=X+14不定長(zhǎng),其中1to X字節(jié)為Alpha標(biāo)示符,如姓名等對(duì)電話號(hào)碼的標(biāo)示,如果Alpha標(biāo)示符為漢字或漢字和英文的混和編碼形式,那么第一個(gè)字節(jié)為0x80或0x81或0x82,從第二個(gè)字節(jié)開(kāi)始代表漢字或英文、數(shù)字,為Unicode雙字節(jié)編碼;如果Alpha標(biāo)示符只是數(shù)字或英文,只采用單字節(jié)ASCII編碼。X為可以顯示的最大長(zhǎng)度,不足最大長(zhǎng)度的字節(jié)為FF;X+2字節(jié)為電話號(hào)碼的編碼方式,區(qū)分國(guó)際(0x91)和國(guó)內(nèi)(0x81或0xA1)電話號(hào)碼;X+3 to X+12存放BCD碼形式的電話號(hào)碼,每個(gè)字節(jié)為倒序排列,最多可存放20位數(shù)字,沒(méi)有號(hào)碼的字節(jié)為0xFF;X+1字節(jié)表示上述兩類(lèi)信息的實(shí)際數(shù)據(jù)所占的字節(jié)個(gè)數(shù)。下面給出了SIM卡電話記錄的存儲(chǔ)實(shí)例例1國(guó)內(nèi)電話號(hào)碼01062302218的存儲(chǔ)方式X+2 X+3 X+8 X+12
例2國(guó)際電話號(hào)碼+8601062302218的存儲(chǔ)方式X+2 X+3 X+9 X+12
本實(shí)施例要用到的對(duì)SIM卡操作的指令為1)SELECT,即選擇指令;2)GET_RESPONSE,即獲取響應(yīng)指令;3)READ_RECORD,即讀取記錄指令。要從SIM卡讀取一次數(shù)據(jù),需要發(fā)出SELECT和GET_RESPONSE兩次指令,而SELECT指令也包括向SIM發(fā)送SELECT指令的操作符并等待響應(yīng),以及發(fā)送所選文件ID并等待響應(yīng)兩步操作。命令格式和響應(yīng)格式參見(jiàn)ISO7816標(biāo)準(zhǔn)和GSM11.11,這里不再贅述。
將SIM卡電話簿導(dǎo)入智能終端的流程包括以下步驟,請(qǐng)同時(shí)參照?qǐng)D5。
步驟一,用戶(hù)通過(guò)人機(jī)接口模塊輸入讀取SIM卡電話簿的指令,假定是要讀取所有記錄,初始化單元對(duì)SIM卡接口控制器進(jìn)行初始化,設(shè)置其工作狀態(tài)機(jī)的初始狀態(tài)(SIM_INIT)并使能中斷;其中包括復(fù)位整個(gè)SIM卡接口控制器,包括內(nèi)部的接收機(jī)和發(fā)送機(jī);使能SIM卡接口控制器,包括內(nèi)部的接收機(jī);使能SIM卡VCC電源,設(shè)置SIM卡自動(dòng)斷電功能無(wú)效;設(shè)置T=0模式、設(shè)置SIM發(fā)送機(jī)發(fā)送字符額外等待時(shí)間為2ETU;選擇時(shí)鐘的異步波特率約數(shù)為372、設(shè)置自動(dòng)NACK(指要求發(fā)方重發(fā))有效和設(shè)置初始字符模式有效;設(shè)置GPCNT(通用計(jì)數(shù)器)計(jì)數(shù)值為40000,對(duì)應(yīng)40000個(gè)SIM卡接口控制器時(shí)鐘;設(shè)置字符等待時(shí)間計(jì)數(shù)器為9600ETU(ETU比特單位傳輸時(shí)間);使能通用計(jì)數(shù)器開(kāi)始計(jì)數(shù)、使能字符等待時(shí)間計(jì)數(shù)器開(kāi)始計(jì)數(shù);開(kāi)放RFD(接收FIFO有未讀數(shù)據(jù))中斷、開(kāi)放GPCNT中斷;設(shè)置系統(tǒng)狀態(tài)為SIM_INIT(即系統(tǒng)的初始狀態(tài));使能SIM卡時(shí)鐘、復(fù)位SIM卡RST管腳。
SIM卡驅(qū)動(dòng)模塊發(fā)送指令后,會(huì)等待MCU產(chǎn)生RFD中斷返回字符,按上述配置,一次字符等待時(shí)間為9600ETU,如果沒(méi)有產(chǎn)生RFD中斷,在該等待時(shí)間到達(dá)后會(huì)產(chǎn)生一個(gè)GPCNT中斷,如果又過(guò)了一個(gè)字符等待時(shí)間還沒(méi)有響應(yīng)就會(huì)再產(chǎn)生一個(gè)GPCNT中斷,當(dāng)GPCNT中斷達(dá)到一定次數(shù)(如50次),則認(rèn)為SIM卡工作不正常,系統(tǒng)出錯(cuò),為了說(shuō)明方便,下面將產(chǎn)生一定次數(shù)(如50次)GPCNT中斷的時(shí)間稱(chēng)為響應(yīng)等待時(shí)間。如果在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)產(chǎn)生了RFD中斷且中斷次數(shù)和接收的字節(jié)正確,則中斷處理單元會(huì)將GPCNT中斷屏蔽(在中斷處理結(jié)束前再將其開(kāi)啟),并將系統(tǒng)狀態(tài)設(shè)為相應(yīng)的操作成功狀態(tài)。
需要說(shuō)明的是,上述設(shè)置是在采用帶有SIM卡控制接口芯片(如DTT6C01A芯片)時(shí)做的示例,但本發(fā)明并不局限于此,在采用其它芯片或有不同需要時(shí)其初始化設(shè)置也可相應(yīng)地變化。
步驟二,中斷處理單元判斷是否在40000個(gè)SIM卡接口控制器時(shí)鐘之內(nèi)(即一次復(fù)位響應(yīng)等待時(shí)間)收到SIM卡發(fā)出的正確ATR響應(yīng)(響應(yīng)字節(jié)個(gè)數(shù)根據(jù)SIM卡生產(chǎn)廠商不同而不同,具體參見(jiàn)GSM11.11),如果是,設(shè)系統(tǒng)狀態(tài)為SIM卡響應(yīng)正常狀態(tài)(SIM_ATR_OK),執(zhí)行下一步;否則,等到40000個(gè)SIM卡接口控制器時(shí)鐘過(guò)后產(chǎn)生GPCNT中斷,將系統(tǒng)狀態(tài)設(shè)置為再次等待響應(yīng)狀態(tài)(SIM_ATR_AGAIN),如果在下一個(gè)一次復(fù)位響應(yīng)等待時(shí)間內(nèi)收到SIM卡發(fā)出的正確的ATR響應(yīng),設(shè)系統(tǒng)狀態(tài)為SIM_ATR_OK,執(zhí)行下一步,否則再次等待;如果產(chǎn)生了一定次數(shù)(如50次)GPCNT中斷,表明沒(méi)有插入SIM卡或SIM卡識(shí)別失敗,將系統(tǒng)狀態(tài)設(shè)為SIM卡出錯(cuò)(SIM_ERROR),結(jié)束;步驟三,電話簿讀取單元判斷到系統(tǒng)狀態(tài)為SIM_ATR_OK時(shí),對(duì)SIM卡發(fā)送SELECT命令,為連續(xù)的’A0,A4,00,00,02’五個(gè)字節(jié)數(shù)據(jù)。然后,中斷處理單元判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)MCU產(chǎn)生RFD中斷且接收的字節(jié)是’A4’,如果是,將系統(tǒng)狀態(tài)設(shè)為成功選擇DF文件狀態(tài)(SIM_SEL_DF_OK),執(zhí)行下一步;否則,將系統(tǒng)狀態(tài)設(shè)為SIM_ERROR,結(jié)束;步驟四,電話簿讀取單元判斷到系統(tǒng)狀態(tài)為SIM_SEL_DF_OK時(shí),向SIM卡發(fā)送DFTELECOM文件ID’7F,10’兩個(gè)字節(jié)的數(shù)據(jù)。然后,中斷處理單元判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)MCU產(chǎn)生2次RFD中斷且返回的狀態(tài)參數(shù)為’9F,XX’,如果是,接收這2個(gè)狀態(tài)字節(jié),設(shè)系統(tǒng)狀態(tài)為成功發(fā)送DF文件ID狀態(tài)(SIM_SEND_DFID_OK),執(zhí)行下一步;否則,將系統(tǒng)狀態(tài)設(shè)為SIM_ERROR,結(jié)束;步驟五,電話簿讀取單元判斷到系統(tǒng)狀態(tài)為SIM_SEND_DFID_OK時(shí),對(duì)SIM卡發(fā)送SELECT命令,為連續(xù)的’A0,A4,00,00,02’五個(gè)字節(jié)數(shù)據(jù)。然后,中斷處理單元判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)MCU產(chǎn)生RFD中斷且接收的字節(jié)是’A4’,如果是,將系統(tǒng)狀態(tài)設(shè)為成功選擇EF文件狀態(tài)(SIM_SEL_EF_OK),執(zhí)行下一步;否則,將系統(tǒng)狀態(tài)設(shè)為SIM_ERROR,結(jié)束;步驟六,電話簿讀取單元判斷到系統(tǒng)狀態(tài)為SIM_SEL_EF_OK時(shí),向SIM卡發(fā)送EFADN文件ID’6F,3A’兩個(gè)字節(jié)的數(shù)據(jù)。然后,中斷處理單元判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)MCU產(chǎn)生2次RFD中斷且返回狀態(tài)參數(shù)’9F,len’(其中l(wèi)en為EFADN文件信息頭長(zhǎng)度),如果是,接收這2個(gè)狀態(tài)字節(jié)并保存’len’,設(shè)置成功發(fā)送EF文件ID狀態(tài)(SIM_SEND_EFID_OK),執(zhí)行下一步;否則,將系統(tǒng)狀態(tài)設(shè)為SIM_ERROR,結(jié)束;步驟七,電話簿讀取單元判斷到系統(tǒng)狀態(tài)為SIM_SEND_EFID_OK時(shí),向SIM卡發(fā)送GET RESPONSE命令,為連續(xù)的’A0,C0,00,00,len’五個(gè)字節(jié)數(shù)據(jù)。然后,中斷處理單元判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)MCU產(chǎn)生大于等于18次RFD中斷,返回響應(yīng)數(shù)據(jù)和狀態(tài)參數(shù)為連續(xù)的’C0,info1,...,info15,infooption1,...,infooptionX,90,00’(info1,...,infooptionX為EFADN文件頭信息,其中infooption1,...,infooptionX可選,不同廠家的SIM卡,該值不同,但是第15個(gè)字節(jié)info15保存的均為電話記錄長(zhǎng)度),如果是,接收這字節(jié)并保存info15,將系統(tǒng)狀態(tài)設(shè)為成功獲取文件頭狀態(tài)(SIM_GET_HEADER_OK),執(zhí)行下一步;否則,將系統(tǒng)狀態(tài)設(shè)為SIM_ERROR,結(jié)束;步驟八,電話簿讀取單元判斷到系統(tǒng)狀態(tài)為SIM_GET_HEADER_OK時(shí),向SIM卡發(fā)送READ_RECORD命令,為連續(xù)的’A0,B2,recNo,04,record_len’五個(gè)字節(jié)數(shù)據(jù),其中recNo為要讀取的記錄號(hào)(這里從最小值開(kāi)始,也可根據(jù)用戶(hù)輸入確定);’04’為按絕對(duì)地址讀取數(shù)據(jù),record_len為已獲取的電話記錄長(zhǎng)度。然后,中斷處理單元判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)MCU產(chǎn)生1+record_len+2次RFD中斷,返回響應(yīng)的數(shù)據(jù)和狀態(tài)參數(shù)為連續(xù)的’B2,dat1,...,datX,...,datX+14,90,00’,共X+17個(gè)字節(jié),(其中dat1,...,datX為Alpha標(biāo)識(shí)符,datX+2為電話記錄的編碼方式;datX+3-datX+12為電話號(hào)碼),如果是,接收這X+17個(gè)字節(jié)并保存dat1,...,datX中非’FF’的字節(jié)數(shù)n1和數(shù)據(jù),datX+2,以及datX+3-datX+12中非’FF’的字節(jié)數(shù)n2和數(shù)據(jù)到緩存中(同時(shí)要為每條記錄加上記錄頭、索引號(hào)等),系統(tǒng)狀態(tài)設(shè)為成功讀取電話記錄狀態(tài)(SIM_READ_RECORD_OK),執(zhí)行下一步;否則,將系統(tǒng)狀態(tài)設(shè)為SIM_ERROR,結(jié)束;步驟九,電話簿讀取單元判斷系統(tǒng)狀態(tài)為SIM_READ_RECORD_OK時(shí),檢查已讀取的電話記錄數(shù)是否大于255,或者記錄數(shù)小于等于255且datX+3-datX+12的值為0xFFFFFFFFFF,如果否,將recNo加1,返回步驟八繼續(xù)讀取電話記錄;如果是,表明電話簿讀取完畢,系統(tǒng)狀態(tài)設(shè)為成功保存記錄狀態(tài)(RECORD_SAVE_OK)執(zhí)行下一步;(如果用戶(hù)選擇輸入單條記錄,則不必執(zhí)行該步驟)步驟十,電話簿讀取單元判斷系統(tǒng)狀態(tài)為RECORD_SAVE_OK時(shí),調(diào)用Flash文件管理模塊將緩存中的全部電話記錄信息寫(xiě)入Flash,寫(xiě)入成功后,將系統(tǒng)狀態(tài)設(shè)為成功導(dǎo)入記錄狀態(tài)(RECORD_TRANSIT_OK),人機(jī)接口模塊在LCD顯示相應(yīng)提示信息。這樣在就成功實(shí)現(xiàn)了SIM卡電話簿數(shù)據(jù)向智能終端的轉(zhuǎn)移。本實(shí)施例先讀完所有電話記錄后再一次寫(xiě)入Flash,可以避免Flash頻繁的擦除操作。
電話記錄在Flash中存儲(chǔ)的格式如下1 n1 1n2
其中,F(xiàn)F為一條記錄的起始標(biāo)志;n為電話記錄的索引號(hào);n1為Alphia標(biāo)識(shí)符的長(zhǎng)度;n2為電話號(hào)碼的長(zhǎng)度;dat1一datn1為Alphia標(biāo)識(shí)符;datX+2為電話記錄的編碼方式;datX+3-datX+12為電話號(hào)碼電話簿的本地管理主要包括電話號(hào)碼瀏覽、電話號(hào)碼查詢(xún)功能。
因?yàn)槭謾C(jī)內(nèi)部帶有ASIC碼庫(kù)和Unicode字庫(kù),SIM卡中的數(shù)字和字母是以ASIC碼形式存儲(chǔ)、漢字是以Unicode編碼形式存儲(chǔ)的;而智能終端液晶屏的漢字顯示需要以點(diǎn)陣形式點(diǎn)亮,所以智能終端用的漢字庫(kù)為GB2312。從SIM卡導(dǎo)入到智能終端中的電話號(hào)碼簿,漢字也是以Unicode編碼存儲(chǔ)的,所以要能將導(dǎo)入的SIM卡電話簿漢字顯示出來(lái),必須將Unicode編碼轉(zhuǎn)換成GB2312編碼,而在進(jìn)行號(hào)碼檢索時(shí)還要進(jìn)行電話號(hào)碼的全檢索,才能到存儲(chǔ)區(qū)中查找號(hào)碼對(duì)應(yīng)的人名。其中電話號(hào)碼瀏覽由人機(jī)接口模塊、電話簿瀏覽模塊、AScII編碼庫(kù)、Unicode編碼庫(kù)、GB2312編碼庫(kù)以及編碼轉(zhuǎn)換模塊共同完成,其實(shí)現(xiàn)流程如圖6所示,包括以下步驟
步驟610,用戶(hù)在智能終端菜單項(xiàng)中選擇“電話簿瀏覽”選項(xiàng),啟動(dòng)電話簿瀏覽模塊;步驟620,電話簿瀏覽模塊將存儲(chǔ)到智能終端Flash中的電話號(hào)碼和人名全部讀到緩存中;步驟630,編碼轉(zhuǎn)換模塊對(duì)電話記錄中的Alpha標(biāo)識(shí)符部分進(jìn)行Unicode到GB2312模塊的轉(zhuǎn)換,將Unicode編碼數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的GB2312編碼數(shù)據(jù),然后按照人名拼音排序,顯示在LCD屏上,對(duì)應(yīng)的電話號(hào)碼數(shù)據(jù)則直接利用智能終端內(nèi)部的ASIC碼庫(kù)顯示在LCD上,實(shí)現(xiàn)電話簿的瀏覽顯示。
其中,Unicode編碼庫(kù)和GB2312編碼庫(kù)預(yù)存在智能終端Flash中。預(yù)存的兩編碼庫(kù)的編碼要存在一一對(duì)應(yīng)的關(guān)系,并且是按照Unicode編碼由小到大排過(guò)序的。編碼轉(zhuǎn)換模塊根據(jù)緩存中的Unicode編碼數(shù)據(jù)在Unicode編碼庫(kù)中按照對(duì)分法進(jìn)行查找,得到該數(shù)據(jù)在Unicode編碼庫(kù)中的索引號(hào),利用該索引號(hào)到GB2312編碼庫(kù)中找到該數(shù)據(jù)相應(yīng)的GB2312編碼。
電話號(hào)碼查詢(xún)由人機(jī)接口模塊、電話號(hào)碼查詢(xún)模塊、ASCII編碼庫(kù)、Unicode編碼庫(kù)、GB2312編碼庫(kù)以及編碼轉(zhuǎn)換模塊共同完成,其實(shí)現(xiàn)流程如圖7所示,包括以下步驟步驟710,智能終端接收到來(lái)電號(hào)碼后,啟動(dòng)電話號(hào)碼查詢(xún)模塊;步驟720,電話號(hào)碼查詢(xún)模塊按照數(shù)字號(hào)碼到存儲(chǔ)在Flash中的電話簿中查詢(xún)是否有相同電話號(hào)碼,如果有,執(zhí)行下一步,否則執(zhí)行步驟740;步驟730,將相應(yīng)的人名數(shù)據(jù)讀出,經(jīng)過(guò)編碼轉(zhuǎn)換模塊轉(zhuǎn)換成GB2312編碼,和電話號(hào)碼一起顯示在LCD屏上,結(jié)束;步驟740,只在屏上顯示電話號(hào)碼,結(jié)束。
顯然地,對(duì)于其他的智能終端來(lái)說(shuō),只要使用本實(shí)施例智能終端所用的DTT6C01A芯片或者實(shí)現(xiàn)相似功能的芯片,就可以采用本發(fā)明的方法將SIM卡內(nèi)的電話簿導(dǎo)入到智能終端中。另外,對(duì)于SIM卡的正確響應(yīng),主要根據(jù)所執(zhí)行的標(biāo)準(zhǔn)來(lái)決定,也不局限在實(shí)施例中的具體數(shù)據(jù)。
綜上所述,本發(fā)明實(shí)現(xiàn)了手機(jī)SIM卡與智能終端的接口和SIM卡電話簿數(shù)據(jù)向智能終端的轉(zhuǎn)移,進(jìn)一步還提供了在智能終端中對(duì)電話簿進(jìn)行管理的方法,實(shí)現(xiàn)了無(wú)線設(shè)備和固網(wǎng)終端設(shè)備之間的數(shù)據(jù)共享,將固網(wǎng)智能終端升級(jí)為一個(gè)開(kāi)放的平臺(tái)。
權(quán)利要求
1.一種將SIM卡電話簿導(dǎo)入智能終端的方法,應(yīng)用于智能終端通過(guò)SIM卡接口控制器與SIM卡相連的系統(tǒng),包括以下步驟(a)用戶(hù)在智能終端輸入讀取SIM卡電話簿的指令后,智能終端對(duì)所述SIM卡接口控制器進(jìn)行初始化并使能中斷;(b)所述智能終端如果在復(fù)位響應(yīng)等待時(shí)間內(nèi)收到SIM卡的正確的復(fù)位響應(yīng),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c)所述智能終端向SIM卡依次發(fā)送進(jìn)行選擇電話簿目錄文件、選擇電話簿數(shù)據(jù)文件、讀取所述數(shù)據(jù)文件頭及獲取電話記錄的操作的相關(guān)指令,每次發(fā)送指令后,如果在響應(yīng)等待時(shí)間內(nèi)產(chǎn)生的中斷次數(shù)和接收字節(jié)正確,說(shuō)明該步操作成功,再進(jìn)行下一步操作,否則系統(tǒng)出錯(cuò),結(jié)束;(d)所述智能終端將讀取的電話記錄保存到存儲(chǔ)器中,在保存了要導(dǎo)入的所有電話記錄后,結(jié)束。
2.如權(quán)利要求1所述的方法,其特征在于,所述智能終端在初始化時(shí)還設(shè)置一個(gè)系統(tǒng)初始狀態(tài),由一中斷處理單元根據(jù)中斷響應(yīng)判斷SIM卡響應(yīng)正常與否或者操作成功與否,如SIM卡正?;虿僮鞒晒?,將系統(tǒng)狀態(tài)轉(zhuǎn)換為SIM卡正?;蛟摬讲僮鞒晒顟B(tài),如失敗,則置為出錯(cuò)狀態(tài),再由一驅(qū)動(dòng)單元根據(jù)系統(tǒng)當(dāng)前狀態(tài)進(jìn)行相應(yīng)的下一步操作,兩個(gè)單元交互完成SIM卡電話簿的讀取過(guò)程。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述智能終端發(fā)送指令后,會(huì)等待因接收FIFO有未讀字節(jié)產(chǎn)生的RFD中斷,如果在預(yù)設(shè)的一次字符等待時(shí)間內(nèi)沒(méi)有RFD中斷產(chǎn)生,就會(huì)產(chǎn)生一個(gè)通用寄存器中斷,如果又過(guò)了一個(gè)字符等待時(shí)間還沒(méi)有RFD中斷產(chǎn)生就會(huì)再產(chǎn)生一個(gè)通用寄存器中斷,預(yù)設(shè)的通用寄存器中斷的最大次數(shù)決定了所述智能終端的響應(yīng)等待時(shí)間,當(dāng)通用寄存器中斷次數(shù)達(dá)到預(yù)設(shè)值后,即認(rèn)為系統(tǒng)出錯(cuò)。
4.如權(quán)利要求3所述的方法,其特征在于,所述步驟(b)中,如果智能終端在預(yù)設(shè)次數(shù)的復(fù)位響應(yīng)等待時(shí)間內(nèi)收到正確的響應(yīng)字節(jié)(不同公司的SIM卡響應(yīng)字節(jié)個(gè)數(shù)也不同,具體參見(jiàn)GSM11.11),則認(rèn)為SIM卡做出了正確的復(fù)位響應(yīng)。
5.如權(quán)利要求3所述的方法,其特征在于,所述步驟(c)進(jìn)一步包括以下步驟(c1)所述智能終端向SIM卡發(fā)送“選擇”命令,判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到字節(jié)“A4”,如果是,將系統(tǒng)狀態(tài)設(shè)為成功選擇目錄文件狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c2)所述智能終端向SIM卡發(fā)送SIM卡電話簿所在目錄文件標(biāo)識(shí),判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到字節(jié)’9F,XX’,如果是,將系統(tǒng)狀態(tài)設(shè)為成功發(fā)送目錄文件標(biāo)識(shí)狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c3)所述智能終端向SIM卡發(fā)送“選擇”命令,判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到字節(jié)“A4”,如果是,將系統(tǒng)狀態(tài)設(shè)為成功選擇數(shù)據(jù)文件狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c4)所述智能終端向SIM卡發(fā)送SIM卡電話簿所在數(shù)據(jù)文件標(biāo)識(shí),判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到字節(jié)’9F,len’,如果是,保存len,將系統(tǒng)狀態(tài)設(shè)為成功發(fā)送數(shù)據(jù)文件標(biāo)識(shí)狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c5)所述智能終端向SIM卡發(fā)送“獲取響應(yīng)”命令,判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到正確的響應(yīng)字節(jié),如果是,保存代表電話記錄長(zhǎng)度的字節(jié),將系統(tǒng)狀態(tài)設(shè)為成功獲取文件頭狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c6)所述智能終端向SIM卡發(fā)送“獲取記錄”命令,攜帶要讀取的記錄號(hào)和記錄長(zhǎng)度,然后判斷是否在響應(yīng)等待時(shí)間內(nèi)的一次字符等待時(shí)間內(nèi)微處理控制器產(chǎn)生RFD中斷且收到電話記錄字節(jié)數(shù)加3個(gè)字節(jié),如果是,將該條電話記錄中的有效數(shù)據(jù)保存到緩存并加上記錄頭和索引號(hào),將系統(tǒng)狀態(tài)設(shè)為成功讀取電話記錄狀態(tài),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束。
6.如權(quán)利要求1所述的方法,其特征在于,所述步驟(d)中,所述存儲(chǔ)器為閃存,智能終端是逐條讀取要導(dǎo)入的電話記錄數(shù)據(jù)并寫(xiě)入緩存,然后將緩存中的數(shù)據(jù)一次寫(xiě)入該閃存。
7.一種可導(dǎo)入SIM卡電話簿的智能終端,其特征在于,包括人機(jī)接口模塊、與SIM卡連接的SIM卡接口控制器、SIM卡驅(qū)動(dòng)模塊、存儲(chǔ)器及文件管理模塊,其中所述人機(jī)接口模塊,用于維護(hù)用戶(hù)和所述智能終端間的人機(jī)界面,根據(jù)用戶(hù)指令,激活SIM卡驅(qū)動(dòng)模塊啟動(dòng)導(dǎo)入過(guò)程,以及顯示提示信息;所述SIM卡接口控制器,用于將總線發(fā)來(lái)的數(shù)據(jù)保存在發(fā)送緩存器中,并以符合接口標(biāo)準(zhǔn)的信號(hào)形式放到外部端口,同時(shí)接收SIM卡返回的數(shù)據(jù)存于內(nèi)部緩存器中;所述SIM卡驅(qū)動(dòng)模塊,用于在收到用戶(hù)指令后,初始化配置SIM卡接口控制器,進(jìn)行工作狀態(tài)設(shè)置并根據(jù)當(dāng)前狀態(tài)通過(guò)所述SIM卡接口控制器向SIM卡發(fā)送相應(yīng)控制命令,將所述SIM卡接口控制器緩存的電話記錄數(shù)據(jù)交給所述文件管理模塊處理;所述文件管理模塊,用于將讀取的電話記錄保存在所述存儲(chǔ)器中。
8.如權(quán)利要求7所述的智能終端,其特征在于,所述SIM卡驅(qū)動(dòng)模塊進(jìn)一步包括初始化單元、中斷處理單元及電話簿讀取單元。其中所述初始化單元,用于初始化SIM卡接口控制器,設(shè)置SIM卡接口控制器工作狀態(tài)機(jī)的初始狀態(tài)并使能中斷;所述中斷處理單元,用于根據(jù)當(dāng)前工作狀態(tài)和SIM卡的中斷響應(yīng),轉(zhuǎn)換SIM卡工作狀態(tài)機(jī)的工作狀態(tài);所述電話簿讀取單元,用于根據(jù)當(dāng)前工作狀態(tài),依次向SIM卡發(fā)送“選擇”、“獲取響應(yīng)”及“獲取記錄”指令,完成對(duì)SIM卡電話簿的讀取,并將讀取到的電話記錄交給所述文件管理模塊處理。
9.如權(quán)利要求7所述的智能終端,其特征在于,所述SIM卡接口控制器通過(guò)標(biāo)準(zhǔn)的ISO7816接口與SIM卡相連接。
10.如權(quán)利要求7所述的智能終端,其特征在于,所述智能終端包括包含SIM卡接口控制器的芯片,所述存儲(chǔ)器采用閃存。
11.一種將SIM卡電話簿導(dǎo)入智能終端并在本地管理的方法,應(yīng)用于智能終端通過(guò)SIM卡接口控制器與SIM卡相連的系統(tǒng),包括以下步驟(a)用戶(hù)在智能終端輸入讀取SIM卡電話簿的指令后,智能終端對(duì)所述SIM卡接口控制器進(jìn)行初始化并使能中斷;(b)所述智能終端如果在復(fù)位響應(yīng)等待時(shí)間內(nèi)收到SIM卡的正確的復(fù)位響應(yīng),執(zhí)行下一步,否則系統(tǒng)出錯(cuò),結(jié)束;(c)所述智能終端向SIM卡依次發(fā)送進(jìn)行選擇電話簿目錄文件、選擇電話簿數(shù)據(jù)文件、讀取所述數(shù)據(jù)文件頭及獲取電話記錄的操作的相關(guān)指令,每次發(fā)送指令后,如果在響應(yīng)等待時(shí)間內(nèi)產(chǎn)生的中斷次數(shù)和接收字節(jié)正確,說(shuō)明該步操作成功,再進(jìn)行下一步操作,否則系統(tǒng)出錯(cuò),結(jié)束;(d)所述智能終端將讀取的電話記錄保存到存儲(chǔ)器中,在保存了要導(dǎo)入的所有電話記錄后,結(jié)束。(e)用戶(hù)要在所述智能終端瀏覽電話簿時(shí),所述智能終端將存儲(chǔ)的電話號(hào)碼和人名讀到緩存中,將電話記錄中的標(biāo)識(shí)符部分從Unicode編碼轉(zhuǎn)換為GB2312的編碼,排序后顯示,對(duì)應(yīng)的電話號(hào)碼數(shù)據(jù)直接利用ASIC碼庫(kù)顯示;(f)所述智能終端接收到來(lái)電號(hào)碼后,按照數(shù)字號(hào)碼到存儲(chǔ)的電話簿中查詢(xún)是否有相同電話號(hào)碼,如果有,將相應(yīng)的人名數(shù)據(jù)讀出,從Unicode編碼轉(zhuǎn)換成GB2312編碼后和電話號(hào)碼一起顯示;如果沒(méi)有,只顯示電話號(hào)碼。
12.如權(quán)利要求11所述的方法,其特征在于,所述智能終端中預(yù)存有Unicode編碼庫(kù)和GB2312編碼庫(kù),該兩個(gè)編碼庫(kù)的編碼存在一一對(duì)應(yīng)關(guān)系且按照Unicode編碼由小到大排序,所述智能終端在瀏覽或查詢(xún)時(shí),是根據(jù)緩存中的Unicode編碼數(shù)據(jù)在Unicode編碼庫(kù)中按照對(duì)分法進(jìn)行查找,得到該數(shù)據(jù)在Unicode編碼庫(kù)中的索引號(hào),再利用該索引號(hào)到GB2312編碼庫(kù)中找到該數(shù)據(jù)相應(yīng)的GB2312編碼。
13.一種可導(dǎo)入SIM卡電話簿并在本地管理的智能終端,其特征在于,包括人機(jī)接口模塊、與SIM卡連接的SIM卡接口控制器、SIM卡驅(qū)動(dòng)模塊、存儲(chǔ)器及文件管理模塊,電話簿瀏覽模塊、電話簿查詢(xún)模塊、ASIC編碼庫(kù)、Unicode編碼庫(kù)、GB2312編碼庫(kù)以及編碼轉(zhuǎn)換模塊,其中所述人機(jī)接口模塊,用于維護(hù)用戶(hù)和所述智能終端間的人機(jī)界面,根據(jù)用戶(hù)指令,激活SIM卡驅(qū)動(dòng)模塊啟動(dòng)導(dǎo)入過(guò)程,以及顯示提示信息;所述SIM卡接口控制器,用于將總線發(fā)來(lái)的數(shù)據(jù)保存在發(fā)送緩存器中,并以符合接口標(biāo)準(zhǔn)的信號(hào)形式放到外部端口,同時(shí)接收SIM卡返回的數(shù)據(jù)存于內(nèi)部緩存器中;所述SIM卡驅(qū)動(dòng)模塊,用于在收到用戶(hù)指令后,初始化配置SIM卡接口控制器,進(jìn)行工作狀態(tài)設(shè)置并根據(jù)當(dāng)前狀態(tài)通過(guò)所述SIM卡接口控制器向SIM卡發(fā)送相應(yīng)控制命令,將所述SIM卡接口控制器緩存的電話記錄數(shù)據(jù)交給所述文件管理模塊處理;所述文件管理模塊,用于將讀取的電話記錄保存在所述存儲(chǔ)器中;所述電話簿瀏覽模塊,用于在收到用戶(hù)瀏覽電話簿的指令后,將存儲(chǔ)的電話號(hào)碼和人名讀到緩存中,并調(diào)用所述編碼轉(zhuǎn)換模塊將電話記錄中的標(biāo)識(shí)符部分從Unicode編碼轉(zhuǎn)換為GB2312的編碼,排序后顯示,對(duì)應(yīng)的電話號(hào)碼數(shù)據(jù)直接利用ASCII碼庫(kù)顯示;所述編碼轉(zhuǎn)換模塊,用于將電話記錄中的標(biāo)識(shí)符部分從Unicode編碼轉(zhuǎn)換為GB2312的編碼;所述電話號(hào)碼查詢(xún)模塊,用于在接收到來(lái)電號(hào)碼后,按照數(shù)字號(hào)碼到存儲(chǔ)的電話簿中查詢(xún)是否有相同電話號(hào)碼,如果有,將相應(yīng)的人名數(shù)據(jù)讀出,調(diào)用所述編碼轉(zhuǎn)換模塊將其從Unicode編碼轉(zhuǎn)換成GB2312編碼后和電話號(hào)碼一起顯示;如果沒(méi)有,只顯示電話號(hào)碼。
全文摘要
本發(fā)明公開(kāi)了一種將SIM卡電話簿導(dǎo)入智能終端的方法和所用的智能終端,用戶(hù)在智能終端輸入讀取SIM卡電話簿的指令后,智能終端對(duì)SIM卡接口控制器進(jìn)行初始化并使能中斷;如果在復(fù)位響應(yīng)等待時(shí)間內(nèi)收到SIM卡的正確的復(fù)位響應(yīng),則向SIM卡依次發(fā)送進(jìn)行選擇電話簿目錄文件、選擇電話簿數(shù)據(jù)文件、讀取所述數(shù)據(jù)文件頭及獲取電話記錄的操作的相關(guān)指令,每次發(fā)送指令后,如果在響應(yīng)等待時(shí)間內(nèi)產(chǎn)生的中斷次數(shù)和接收字節(jié)正確,說(shuō)明該步操作成功,再進(jìn)行下一步操作,讀取成功后,將電話記錄保存到存儲(chǔ)器中完成導(dǎo)入過(guò)程,進(jìn)一步地,還可在智能終端對(duì)電話簿進(jìn)行本地管理。本發(fā)明方法極大地方便了用戶(hù),也可以成為固網(wǎng)終端業(yè)務(wù)的新增值點(diǎn)。
文檔編號(hào)H04M1/725GK1633141SQ20051000224
公開(kāi)日2005年6月29日 申請(qǐng)日期2005年1月18日 優(yōu)先權(quán)日2005年1月18日
發(fā)明者魏少軍, 楊延輝, 龐潼川, 尹娜, 李作為 申請(qǐng)人:大唐微電子技術(shù)有限公司