欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

補償安全數(shù)碼卡的延長線引起的延遲的方法及裝置的制造方法

文檔序號:10725798閱讀:377來源:國知局
補償安全數(shù)碼卡的延長線引起的延遲的方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種補償安全數(shù)碼卡的延長線引起的延遲的方法及裝置。方法包括:經(jīng)由延長線對安全數(shù)碼卡執(zhí)行預設次數(shù)的通信操作,若接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第一數(shù)值,若未接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第二數(shù)值;查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段;將位于最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳延遲值;將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲。通過以上方式,本發(fā)明能夠彌補安全數(shù)碼卡的信號傳輸延時,保證傳輸速率。
【專利說明】
補償安全數(shù)碼卡的延長線引起的延遲的方法及裝置
技術領域
[0001]本發(fā)明涉及通信領域,特別是涉及一種補償安全數(shù)碼卡的延長線引起的延遲的方法及裝置。【背景技術】
[0002]在車機系統(tǒng)中,安全數(shù)碼(Secure Digital,SD)卡的卡槽不放置在主印刷電路板 (Printed Circuit Board,PCB)板上,而是通過延長線引出放置在操作面板上。
[0003]電流在不同導體中傳輸速度會不同,一般情況下傳輸速度在2xl08m/S與3xl08m/S 之間,這樣lm長度的導線引起的delay在4?5ns,信號往返時間x2,這樣比正常情況下會增加8?10ns的延遲時間。而增加這些時間就可能會導致SD卡采樣出現(xiàn)偏差。由于增加延長線后,會增加信號傳輸延遲,還會增加信號被干擾概率,導致SD卡經(jīng)常會出現(xiàn)兼容性問題。有些SD卡能正常工作,而另一些SD卡則傳輸異常?,F(xiàn)有的方案都是采取降頻方案,將SD卡的時鐘頻率從50Mhz降到12Mhz左右。這樣則會導致SD卡的傳輸速度大大降低,進而影響存儲以及系統(tǒng)的性能。
【發(fā)明內(nèi)容】

[0004]本發(fā)明實施例提供了一種補償安全數(shù)碼卡的延長線引起的延遲的方法及裝置,能夠補償安全數(shù)碼卡上的延遲,保證安全數(shù)碼卡的傳輸速率,提高系統(tǒng)的性能。
[0005]本發(fā)明提供一種補償安全數(shù)碼卡的延長線引起的延遲的方法,包括:經(jīng)由延長線與安全數(shù)碼卡進行預設次數(shù)的通信操作,若接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第一數(shù)值,若未接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第二數(shù)值;查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段;將位于最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳延遲值;將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲。
[0006]其中,通信操作包括命令通信操作和數(shù)據(jù)通信操作,最佳延遲值包括最佳命令延遲值和最佳數(shù)據(jù)延遲值,經(jīng)由延長線與安全數(shù)碼卡進行通信操作的步驟包括:經(jīng)由延長線的命令總線與安全數(shù)碼卡進行預設次數(shù)的命令通信操作,分別獲取多個命令通信操作分別對應的多個狀態(tài)值;或經(jīng)由延長線的數(shù)據(jù)總線與安全數(shù)碼卡進行預設次數(shù)的數(shù)據(jù)通信操作,分別獲取多個數(shù)據(jù)通信操作分別對應的多個狀態(tài)值。
[0007]其中,經(jīng)由延長線的命令總線與安全數(shù)碼卡進行預設次數(shù)的命令通信操作,分別獲取多個命令通信操作分別對應的多個狀態(tài)值的步驟包括:設置命令通信操作的初始延遲值為〇;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的命令;如果接收到安全數(shù)碼卡經(jīng)由所述延長線的命令總線返回的未顯示循環(huán)冗余校驗錯誤的響應,則記錄當前的命令通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的命令通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加1,并判斷延遲值是否達到預設值,若否,則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一條命令的操作,若是,則結束本步驟。
[0008]其中,經(jīng)由延長線的數(shù)據(jù)總線與安全數(shù)碼卡進行預設次數(shù)的數(shù)據(jù)通信操作,分別獲取多個數(shù)據(jù)通信操作分別對應的多個狀態(tài)值的步驟包括:設置讀數(shù)據(jù)通信操作的初始延遲值為〇;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的讀數(shù)據(jù)的命令;如果正確接收到安全數(shù)碼卡經(jīng)由所述延長線的數(shù)據(jù)總線返回的未顯示循環(huán)冗余校驗錯誤的數(shù)據(jù),則記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加1,并判斷延遲值是否達到預設值,若否,則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一條讀數(shù)據(jù)的命令操作,若是則結束本步驟。
[0009]其中,經(jīng)由延長線的數(shù)據(jù)總線與安全數(shù)碼卡進行預設次數(shù)的數(shù)據(jù)通信操作,分別獲取多個數(shù)據(jù)通信操作分別對應的多個狀態(tài)值的步驟包括:設置寫數(shù)據(jù)通信操作的初始延遲值為〇;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的寫數(shù)據(jù)的命令,并經(jīng)由延長線的數(shù)據(jù)總線向安全數(shù)碼卡發(fā)送待寫數(shù)據(jù);如果正確接收到安全數(shù)碼卡返回的寫數(shù)據(jù)成功的響應,則記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加1,并判斷延遲值是否達到預設值,若否則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一條寫數(shù)據(jù)的命令的操作,若是則結束本步驟。
[0010]其中,數(shù)據(jù)通信操作包括讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作,查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段的步驟包括:查找對應于讀數(shù)據(jù)通信操作的第一最長數(shù)據(jù)段以及對應于寫數(shù)據(jù)通信操作的第二最長數(shù)據(jù)段;將位于最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳延遲值的步驟包括:將第一最長數(shù)據(jù)段和第二最長數(shù)據(jù)段相重疊部分的數(shù)據(jù)段的中間位置的狀態(tài)值所對應的延遲值作為最佳數(shù)據(jù)延遲值。
[0011]本發(fā)明還提供一種補償安全數(shù)碼卡的延長線引起的延遲的裝置,包括:操作模塊, 用于經(jīng)由延長線與安全數(shù)碼卡進行預設次數(shù)的通信操作,若接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第一數(shù)值,若未接收到安全數(shù)據(jù)卡返回的正確響應, 則記錄通信操作對應的狀態(tài)值為第二數(shù)值;查找模塊,與操作模塊連接,用于查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段;處理模塊,與查找模塊連接,用于將位于最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳延遲值;設置模塊,與處理模塊連接,將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲。
[0012]其中,通信操作包括命令通信操作和數(shù)據(jù)通信操作,最佳延遲值包括最佳命令延遲值和最佳數(shù)據(jù)延遲值,操作模塊用于:經(jīng)由延長線的命令總線與安全數(shù)碼卡進行預設次數(shù)的命令通信操作,分別獲取多個命令通信操作分別對應的多個狀態(tài)值;或經(jīng)由延長線的數(shù)據(jù)總線與安全數(shù)碼卡進行預設次數(shù)的數(shù)據(jù)通信操作,分別獲取多個數(shù)據(jù)通信操作分別對應的多個狀態(tài)值。
[0013]其中,操作模塊還用于:設置命令通信操作的初始延遲值為0;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的命令;如果接收到安全數(shù)碼卡返回的未顯示循環(huán)冗余校驗錯誤的響應,則記錄當前的命令通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的命令通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加1,并判斷延遲值是否達到預設值,若否,則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一條命令的操作,若是,則結束本步驟。
[0014]其中,操作模塊還用于:設置讀數(shù)據(jù)通信操作的初始延遲值為0;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的讀數(shù)據(jù)的命令;如果正確接收到安全數(shù)碼卡經(jīng)由延長線的數(shù)據(jù)總線返回的未顯示循環(huán)冗余校驗錯誤的數(shù)據(jù),則記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加 1,并判斷延遲值是否達到預設值,若否,則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一條讀數(shù)據(jù)的命令操作,若是則結束本步驟。
[0015]其中,操作模塊還用于:設置寫數(shù)據(jù)通信操作的初始延遲值為0;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的寫數(shù)據(jù)的命令,并經(jīng)由延長線的數(shù)據(jù)總線向安全數(shù)碼卡發(fā)送待寫數(shù)據(jù);
[0016]如果正確接收到安全數(shù)碼卡返回的寫數(shù)據(jù)成功的響應,則記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加1,并判斷延遲值是否達到預設值,若否則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一條寫數(shù)據(jù)的命令的操作,若是則結束本步驟。
[0017]其中,數(shù)據(jù)操作包括讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作,查找模塊用于:查找對應于讀數(shù)據(jù)通信操作的第一最長數(shù)據(jù)段以及對應于所述寫數(shù)據(jù)通信操作的第二最長數(shù)據(jù)段; 處理模塊用于:將第一最長數(shù)據(jù)段和第二最長數(shù)據(jù)段相重疊部分的數(shù)據(jù)段的中間位置的狀態(tài)值所對應的延遲值作為最佳數(shù)據(jù)延遲值。
[0018]上述補償安全數(shù)碼卡的延長線引起的延遲的方法及裝置,通過經(jīng)由延長線與安全數(shù)碼卡進行預設次數(shù)的通信操作,若接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第一數(shù)值,若未接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第二數(shù)值;查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段;將位于最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳延遲值;將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲,能夠補償安全數(shù)碼卡的延長線引起的延遲,保證安全數(shù)碼卡的傳輸速度,提高系統(tǒng)的性能?!靖綀D說明】
[0019]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。其中:
[0020]圖1是本發(fā)明實施例的安全數(shù)碼卡的源時鐘和采樣時鐘的相位差示意圖;
[0021]圖2是本發(fā)明實施例的補償安全數(shù)碼卡的延長線引起的延遲的方法的流程示意圖;
[0022]圖3是本發(fā)明經(jīng)由延長線與SD卡進行命令通信操作的方法的流程示意圖;
[0023]圖4是本發(fā)明經(jīng)由延長線與SD卡進行讀數(shù)據(jù)通信操作的方法的流程示意圖;
[0024]圖5是本發(fā)明經(jīng)由延長線與SD卡進行寫數(shù)據(jù)通信操作的方法的流程示意圖;
[0025]圖6是本發(fā)明第二實施例的補償安全數(shù)碼卡的延長線引起的延遲裝置的結構示意圖?!揪唧w實施方式】
[0026]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部實施例。基于本發(fā)明中的實施例,本領域技術人員在沒有做出創(chuàng)造性的勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0027]圖1是本發(fā)明實施例的安全數(shù)碼卡的源時鐘和采樣時鐘的相位差示意圖。如圖1所示,源時鐘的下降沿以及與源時鐘的下降沿相鄰的采樣時鐘的下降沿之間的相位差定義為源時鐘和采樣時鐘的相位差。當然也可以是源時鐘的上升沿以及與源時鐘的下降沿相鄰的采樣時鐘的上升沿之間的相位差定義為源時鐘和采樣時鐘的相位差。
[0028]在本發(fā)明實施例中,經(jīng)由延長線對安全數(shù)碼卡執(zhí)行通信操作時,使用源時鐘做為基準時鐘來發(fā)送命令或數(shù)據(jù)到安全數(shù)碼卡。命令或數(shù)據(jù)會經(jīng)過芯片管腳、印刷電路板 (Printed Circuit Board,PCB)走線、安全數(shù)碼卡延長線到安全數(shù)碼卡上,然后安全數(shù)碼卡會回復相應的響應或數(shù)據(jù)。安全數(shù)碼卡會使用采樣時鐘做為基準時鐘來采樣來接收響應或數(shù)據(jù)。通過調(diào)整源時鐘和采樣時鐘的相位差,可以彌補延長線引起的時序延時。
[0029]圖2是本發(fā)明實施例的補償安全數(shù)碼卡的延長線引起的延遲的方法的流程示意圖。如圖2所示,補償安全數(shù)碼卡的延長線引起的延遲的方法包括:
[0030]步驟S10:經(jīng)由延長線與安全數(shù)碼卡進行預設次數(shù)的通信操作,若接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第一數(shù)值,若未接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第二數(shù)值。
[0031]為了補償因SD卡的延長線而引起的延遲,本發(fā)明實施例中,首先設置測試工具對 SD卡的延長線引起的延遲進行測試。具體地,外部測試工具經(jīng)由延長線與SD卡進行預設次數(shù)的通信操作,該通信操作可以為命令通信操作或數(shù)據(jù)通信操作,外部測試工具可以設置為由SD卡的驅(qū)動器執(zhí)行一段測試程序,用以逐個掃描預先儲存的命令通信操作或數(shù)據(jù)通信操作,以將其經(jīng)由延長線傳輸至SD卡。因此,在步驟S10之前,通常將配置SD卡的驅(qū)動器為掃描模式。若此后接收到SD卡返回的正確響應,則記錄該通信操作所對應的狀態(tài)值為第一數(shù)值,若未接收到SD卡返回的正確響應,則記錄該通信操作對應的狀態(tài)值為第二數(shù)值。該第一數(shù)值和第二數(shù)值例如為〇或1,而在經(jīng)過預設次數(shù)的通信操作及狀態(tài)值記錄后,可得到一段連續(xù)的由〇和1組成的數(shù)據(jù)串。
[0032]步驟S11:查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段。
[0033]步驟S12:將位于最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳延遲值。
[0034]步驟S13:將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲。
[0035]得到一段連續(xù)的數(shù)據(jù)串后,可在此數(shù)據(jù)串中查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段,也就是說,查找通信操作狀態(tài)持續(xù)為“正確傳送-接收-響應”的命令通信操作或數(shù)據(jù)通信操作所對應的狀態(tài)值的最長數(shù)據(jù)段。例如,如果掃描到一組狀態(tài)值如下:
[0036][1,〇,〇,1,1,1,1,1,1,1,〇,〇,〇,〇,1,1,1,〇,〇,〇,1,〇,〇,1,1,〇,〇,1,〇,〇,〇]
[0037]則最長數(shù)據(jù)段為序號為4-10的連續(xù)7個狀態(tài)值為1的數(shù)據(jù)段。
[0038]查找到這段數(shù)據(jù)段后,直接將查找到的最長數(shù)據(jù)段的中間值所對應的通信操作的延遲值作為最佳延遲值,并將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲。例如,對于以上查找到的最長數(shù)據(jù)段,其中間值為最長數(shù)據(jù)段中的第4個狀態(tài)值,在整組數(shù)據(jù)段中為第7個狀態(tài)值,該狀態(tài)值所對應的延遲值則為最佳延遲值。
[0039]在本發(fā)明實施例中,選擇狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段的中間數(shù)值所對應的延遲值為最佳延遲值可以保證所選擇的最佳延遲值有一個較大的誤差浮動范圍。換句話說,即便所選擇的延遲值存在一定的偏差,也能保證在一定偏差范圍內(nèi)所選擇的延遲值對應的通信操作仍然為可以正確“發(fā)送-接收-響應”的狀態(tài),從而可以使得在實際的通信操作過程中,即使環(huán)境發(fā)生變化導致時序存在波動時,也可以確保通信操作不會因外部環(huán)境變化而導致異常。
[0040]本發(fā)明實施例中,上述步驟S10中經(jīng)由延長線與SD卡進行的通信操作可以為命令通信操作或數(shù)據(jù)通信操作,最佳延遲值可以為最佳命令延遲值或最佳數(shù)據(jù)延遲值。圖3是本發(fā)明經(jīng)由延長線與SD卡進行命令通信操作的方法的流程示意圖,如圖3所示,經(jīng)由延長線與 SD卡進行命令通信操作的方法包括:[0041 ]步驟S21:設置命令通信操作的初始延遲值為0;
[0042]步驟S22:經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的命令;[〇〇43]具體地,在執(zhí)行本實施例之前,預先配置SD卡的驅(qū)動器為掃描模式,從而在上述步驟S22中,驅(qū)動器可依序掃描預先儲存設置的多個命令通信操作。需要說明的是,這些命令通信操作均為帶有響應的命令通信操作,即若接收方能成功接收到該命令通信操作,則會返回正確接收的響應。
[0044]步驟S23:判斷是否接收到安全數(shù)碼卡返回的未顯示循環(huán)冗余校驗(CCR)錯誤的響應,若是則跳至步驟S24,若否則跳至步驟S25;
[0045]步驟S24:記錄當前的命令通信操作對應的狀態(tài)值為第一數(shù)值,跳至步驟S26;
[0046]步驟S25:記錄當前的命令通信操作對應的狀態(tài)值為第二數(shù)值,跳至步驟S26;[〇〇47]向SD卡發(fā)送命令通信操作后,判斷是否能接收到SD卡返回的未顯示CCR錯誤的響應,即判斷SD卡是否能經(jīng)由延長線成功接收到命令。若接收到SD卡返回的正確接收的響應, 則記錄當前的命令通信操作對應的狀態(tài)值為第一數(shù)值,反之,則記錄當前的命令通信操作對應的狀態(tài)值為第二數(shù)值。舉例來說,該第一數(shù)值和第二數(shù)值例如為0或1。[〇〇48] 步驟26:將延遲值加1,并判斷延遲值是否達到預設值,若否,則返回步驟S22,若是,則結束本流程。
[0049]記錄下當前命令通信操作對應的狀態(tài)值后,將延遲值加1,并判斷延遲值是否達到預設值,即判斷與SD卡進行的命令通信操作是否已經(jīng)達到預設次數(shù)。若是,則結束本流程, 若否則返回步驟S22,繼續(xù)通過延長線的命令總線向SD卡發(fā)送預存的下一條命令操作,以及繼續(xù)記錄下一條命令操作所對應的狀態(tài)值,直至測試完預設次數(shù)的命令通信操作,以及記錄下所有命令通信操作對應的狀態(tài)值,得到完整的由一組狀態(tài)值組成的數(shù)據(jù)串為止。
[0050]需要說明的是,在本發(fā)明實施例中,各命令通信操作對應的延遲值即為各命令通信操作所對應的序號減1。例如假定第一數(shù)值為1,第二數(shù)值為〇,則在上述狀態(tài)值數(shù)據(jù)串[1, 0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0]中,連續(xù)狀態(tài)值為第一數(shù)值的最長數(shù)據(jù)段為序號4-10的數(shù)據(jù)段,而該最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的延遲值的序號為7,其對應的延遲值為6,因而在此實施例中,6為最佳延遲值。此外還需要說明的是,實際操作中,可配置進行發(fā)送預存的命令時的時鐘頻率為50MHz,為安全數(shù)碼卡的最大時鐘頻率。此外,上述延遲值的預設值通常是根據(jù)經(jīng)驗確定的,一般在0.5個時鐘周期左右。
[0051]此外需要說明的是,在步驟S10中經(jīng)由延長線的命令總線向SD卡發(fā)送帶有響應的命令時,還經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送不帶有響應的命令。并且在向SD卡發(fā)送不帶有響應的命令時,可將發(fā)送不帶有響應的命令的時鐘頻率控制在6-15MHZ之間,具體值可根據(jù)經(jīng)驗確定,同時配置默認的延遲值以保證能正確發(fā)送命令。[〇〇52]對于數(shù)據(jù)通信操作而言,在本發(fā)明實施例中,數(shù)據(jù)通信操作包括讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作。在本發(fā)明實施例中,對于讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作的處理方式有所不同,下面將分別進行說明。圖4是本發(fā)明經(jīng)由延長線與SD卡進行讀數(shù)據(jù)通信操作的方法的流程示意圖,如圖4所示,經(jīng)由延長線與SD卡進行讀數(shù)據(jù)通信操作的方法包括:[〇〇53]步驟S31:設置讀數(shù)據(jù)通信操作的初始延遲值為0;
[0054]步驟S32:經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的讀數(shù)據(jù)的命令;[〇〇55]與上述命令通信操作的實施例類似,在執(zhí)行本實施例之前,預先配置SD卡的驅(qū)動器為掃描模式,從而在上述步驟S32中,驅(qū)動器可依序掃描預先儲存設置的多個讀數(shù)據(jù)的命令通信操作。[〇〇56]步驟S33:判斷是否接收到安全數(shù)碼卡返回的未顯示CCR錯誤的數(shù)據(jù),若是則跳至步驟S34,若否則跳至步驟S35;[〇〇57]S34:記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,跳至步驟S36;[〇〇58]S35:記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值,跳至步驟S36;[〇〇59]向SD卡發(fā)送讀數(shù)據(jù)的命令操作后,判斷是否能接收到SD卡經(jīng)由延長線的數(shù)據(jù)總線返回的未顯示CCR錯誤的數(shù)據(jù),即判斷SD卡是否能正確響應該讀數(shù)據(jù)的命令。若接收到SD卡經(jīng)由延長線的數(shù)據(jù)總線返回的正確的數(shù)據(jù),則記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,反之,則記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值。
[0060]步驟36:將延遲值加1,并判斷延遲值是否達到預設值,若否,則返回步驟S32,若是,則結束本流程。
[0061]圖5是本發(fā)明經(jīng)由延長線與SD卡進行寫數(shù)據(jù)通信操作的方法的流程示意圖,如圖5 所示,經(jīng)由延長線與SD卡進行寫數(shù)據(jù)通信操作的方法包括:[〇〇62]步驟S41:設置寫數(shù)據(jù)通信操作的初始延遲值為0;[〇〇63]步驟S42:經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的寫數(shù)據(jù)的命令,并經(jīng)由延長線的數(shù)據(jù)總線向安全數(shù)據(jù)卡發(fā)送待寫數(shù)據(jù);
[0064]與上述讀數(shù)據(jù)通信操作的做法不同的是,在本實施例中,除了向SD卡發(fā)送寫數(shù)據(jù)的命令之外,還需要緊接著經(jīng)由延長線的數(shù)據(jù)總線向SD卡發(fā)送待寫數(shù)據(jù)。[〇〇65]步驟S43:判斷是否接收到安全數(shù)碼卡返回的寫數(shù)據(jù)成功的響應,若是則跳至步驟 S44,若否則跳至步驟S45;[〇〇66]S44:記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,跳至步驟S46;[〇〇67]S45:記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值,跳至步驟S46;[〇〇68]若SD卡能夠正確接收到待寫數(shù)據(jù),則會返回寫數(shù)據(jù)成功的響應,從而若接收到SD 卡返回的正確響應,則記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,反之,則記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值。
[0069]步驟46:將延遲值加1,并判斷延遲值是否達到預設值,若否,則返回步驟S42,若是,則結束本流程。
[0070]在上述讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作的測試流程中,同樣可配置進行發(fā)送帶有讀數(shù)據(jù)命令和寫數(shù)據(jù)命令時的時鐘頻率為50MHz,即為SD卡在SDR25模式下的最大時鐘頻率。
[0071]需要說明的是,對于數(shù)據(jù)通信操作,由于存在讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作兩種類型,因而在上述執(zhí)行完預設次數(shù)的讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作后,會得到分別與其對應的由多個狀態(tài)值組成的兩組數(shù)據(jù)串,從而在上述步驟S11中,會分別查找到兩個最長數(shù)據(jù)段,即對應讀數(shù)據(jù)通信操作的第一最長數(shù)據(jù)段和對應寫數(shù)據(jù)通信操作的第二最長數(shù)據(jù)段。在實際應用中,雖然這兩組數(shù)據(jù)串不一定完全一致(通常只有些許不同),但是由于操作環(huán)境的一致性,這兩組數(shù)據(jù)串所分別包含的最長數(shù)據(jù)段必然會大致重疊,從而可以從重疊部分選取最佳數(shù)據(jù)延遲值。具體地,在上述步驟S12中,將第一最長數(shù)據(jù)段和第二最長數(shù)據(jù)段相重疊部分的數(shù)據(jù)段的中間位置的狀態(tài)值所對應的延遲值作為最佳數(shù)據(jù)延遲值。
[0072]例如,如果掃描到一組向安全數(shù)碼卡發(fā)送讀數(shù)據(jù)的命令所記錄的狀態(tài)值如下:
[0073][〇,〇,1,1,〇,〇,〇,1,1,1,1,1,1,1,1,〇,〇,〇,〇,〇,1,1,1,1,1,〇,〇,〇,〇,1]
[0074]則第一最長數(shù)據(jù)段為序號為8-15的連續(xù)8個狀態(tài)值為1的數(shù)據(jù)段。
[0075]掃描到一組向安全數(shù)碼卡發(fā)送寫數(shù)據(jù)的命令所記錄的狀態(tài)值如下:
[0076][〇,1,1,〇,〇,〇,〇,〇,1,1,1,1,1,1,1,1,〇,〇,1,〇,〇,1,1,1,1,1,1,〇,〇,1]
[0077]則第二最長數(shù)據(jù)段為序號為9-16的連續(xù)8個狀態(tài)值為1的數(shù)據(jù)段。[〇〇78]以上查找到的第一最長數(shù)據(jù)段和第二最長數(shù)據(jù)段相重疊部分為序號為9-15中間的7個狀態(tài)值組成的數(shù)據(jù)段,對應的中間位置的數(shù)值為序號為12的狀態(tài)值,其對應的通信操作的延遲值為11,即最佳數(shù)據(jù)延遲值為11。[〇〇79]以上描述了如何經(jīng)由延長線與SD卡進行通信操作、記錄每個通信操作對應的狀態(tài)值、以及查找最佳延遲值的方法流程。本發(fā)明實施例通過上述方法選擇最佳延遲值可以保證所選擇的最佳延遲值有一個較大的誤差浮動范圍。換句話說,即便所選擇的延遲值存在一定的偏差,也能保證在一定偏差范圍內(nèi)所選擇的延遲值對應的通信操作仍然為可以正確 “發(fā)送_接收-響應”的狀態(tài),從而可以使得在實際的通信操作過程中,即使環(huán)境發(fā)生變化導致時序存在波動時,也可以在一定范圍內(nèi)確保通信操作不會因外部環(huán)境變化而導致異常。
[0080]而在實際應用中,在經(jīng)由上述參數(shù)配置后,SD卡通常能夠滿足正常的傳輸過程,但是仍然很難避免SD卡的通信操作出現(xiàn)突發(fā)干擾等情況。如此就需要增強通信操作軟件的魯棒性,對通信操作過程中出現(xiàn)的不同錯誤都需要設置解決方案,讓系統(tǒng)能夠正常對SD卡進行通信操作。具體地,在SD卡通信操作過程中,主要會出現(xiàn)的錯誤包括接收到SD卡返回的包含CRC錯誤的響應,以及通信操作超時。
[0081]當接收到SD卡返回的包含CRC錯誤的響應時,本發(fā)明實施例中可以通過動態(tài)調(diào)整命令通信操作或數(shù)據(jù)通信操作對應的最佳延遲值后,再重傳當前命令/數(shù)據(jù),以使系統(tǒng)恢復正常?;蛘咧苯咏档蜁r鐘頻率后重傳當前命令/數(shù)據(jù),以使系統(tǒng)恢復正常。對于前者,可以針對最佳延遲值設置一定的調(diào)整范圍,以在預設范圍內(nèi),對最佳延遲值進行調(diào)整。
[0082]而當遇到SD卡的通信操作超時的情況時,本發(fā)明實施例則可以通過重傳當前命令/數(shù)據(jù)、關閉SD卡硬件電源重啟后再重傳、或者直接降低時鐘頻率后重傳當前命令/數(shù)據(jù),以使系統(tǒng)恢復正常。
[0083]圖6是本發(fā)明第一實施例的補償安全數(shù)碼卡的延長線引起的延遲裝置的結構示意圖。如圖6所示,補償安全數(shù)碼卡的延長線引起的延遲裝置10包括:通信操作模塊11、查找模塊12、處理模塊13以及設置模塊14。
[0084]通信操作模塊11用于經(jīng)由延長線與安全數(shù)碼卡進行預設次數(shù)的通信操作,若接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第一數(shù)值,若未接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第二數(shù)值。
[0085]為了補償因SD卡的延長線而引起的延遲,本發(fā)明實施例中,首先設置測試工具對 SD卡的延長線引起的延遲進行測試。具體地,外部測試工具經(jīng)由延長線與SD卡進行預設次數(shù)的通信操作,該通信操作可以為命令通信操作或數(shù)據(jù)通信操作,外部測試工具可以設置為由SD卡的驅(qū)動器執(zhí)行一段測試程序,用以逐個掃描預先儲存的命令通信操作或數(shù)據(jù)通信操作,以將其經(jīng)由延長線傳輸至SD卡。因此,在步驟S10之前,通常將配置SD卡的驅(qū)動器為掃描模式。若此后接收到SD卡返回的正確響應,則記錄該通信操作所對應的狀態(tài)值為第一數(shù)值,若未接收到SD卡返回的正確響應,則記錄該通信操作對應的狀態(tài)值為第二數(shù)值。該第一數(shù)值和第二數(shù)值例如為〇或1,而在經(jīng)過預設次數(shù)的通信操作及狀態(tài)值記錄后,可得到一段連續(xù)的由〇和1組成的數(shù)據(jù)串。
[0086]查找模塊12與通信操作模塊11連接,用于查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段。處理模塊13與查找模塊12連接,用于將位于最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳延遲值。設置模塊14與處理模塊13連接,將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲。
[0087]得到一段連續(xù)的數(shù)據(jù)串后,查找模塊12可在此數(shù)據(jù)串中查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段,也就是說,查找模塊12查找通信操作狀態(tài)持續(xù)為“正確傳送-接收-響應” 的命令通信操作或數(shù)據(jù)通信操作所對應的狀態(tài)值的最長數(shù)據(jù)段。例如,如果掃描到一組狀態(tài)值如下:
[0088][1,〇,〇,1,1,1,1,1,1,1,〇,〇,〇,〇,1,1,1,〇,〇,〇,1,〇,〇,1,1,〇,〇,1,〇,〇,〇]
[0089]則最長數(shù)據(jù)段為序號為4-10的連續(xù)7個狀態(tài)值為1的數(shù)據(jù)段。
[0090]查找模塊12查找到這段數(shù)據(jù)段后,處理模塊13直接將查找模塊12查找到的最長數(shù)據(jù)段的中間值所對應的通信操作的延遲值作為最佳延遲值,并將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲。例如,對于以上查找到的最長數(shù)據(jù)段,其中間值為最長數(shù)據(jù)段中的第4個狀態(tài)值,在整組數(shù)據(jù)段中為第7個狀態(tài)值,該狀態(tài)值所對應的延遲值則為最佳延遲值。
[0091]在本發(fā)明實施例中,處理模塊13選擇狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段的中間數(shù)值所對應的延遲值為最佳延遲值可以保證所選擇的最佳延遲值有一個較大的誤差浮動范圍。換句話說,即便處理模塊13所選擇的延遲值存在一定的偏差,也能保證在一定偏差范圍內(nèi)所選擇的延遲值對應的通信操作仍然為可以正確“發(fā)送-接收-響應”的狀態(tài),從而可以使得在實際的通信操作過程中,即使環(huán)境發(fā)生變化導致時序存在波動時,也可以確保通信操作不會因外部環(huán)境變化而導致異常。
[0092]在本發(fā)明實施例中,通信操作包括命令通信操作和數(shù)據(jù)通信操作,最佳延遲值包括最佳命令延遲值和最佳數(shù)據(jù)延遲值。通信操作模塊還包括命令通信模塊111和數(shù)據(jù)通信模塊112。命令通信模塊111用于首先配置安全數(shù)碼卡的驅(qū)動器為掃描模式,然后對安全數(shù)碼卡執(zhí)行命令通信操作。需要說明的是,這些命令通信操作均為帶有響應的命令通信操作, 即若接收方能成功接收到該命令通信操作,則會返回正確接收的響應。具體地,命令通信模塊111用于:經(jīng)由延長線的命令總線與安全數(shù)碼卡進行預設次數(shù)的命令通信操作,分別獲取多個命令通信操作分別對應的多個狀態(tài)值;或經(jīng)由延長線的數(shù)據(jù)總線對安全數(shù)碼卡執(zhí)行預設次數(shù)的數(shù)據(jù)通信操作,分別獲取多個數(shù)據(jù)通信操作分別對應的多個狀態(tài)值。
[0093]在本發(fā)明實施例中,對于命令通信操作,命令通信模塊111還用于:設置命令通信操作的初始延遲值為〇;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的命令;如果接收到安全數(shù)碼卡返回的未顯示循環(huán)冗余校驗錯誤的響應,則記錄當前的命令通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的命令通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加1, 并判斷延遲值是否達到預設值,若否,則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一個命令的操作,若是,則結束本步驟。如果返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一個命令的操作,則繼續(xù)記錄下一條命令操作所對應的狀態(tài)值,直至測試完預設次數(shù)的命令通信操作,以及記錄下所有命令通信操作對應的狀態(tài)值,得到完整的由一組狀態(tài)值組成的數(shù)據(jù)串為止。
[0094]需要說明的是,在本發(fā)明實施例中,各命令通信操作對應的延遲值即為各命令通信操作所對應的序號減1。例如假定第一數(shù)值為1,第二數(shù)值為〇,則在上述狀態(tài)值數(shù)據(jù)串[1, 0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0]中,連續(xù)狀態(tài)值為第一數(shù)值的最長數(shù)據(jù)段為序號4-10的數(shù)據(jù)段,而該最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的延遲值的序號為7,其對應的延遲值為6,因而在此實施例中,6為最佳延遲值。此外還需要說明的是,實際操作中,命令通信模塊111發(fā)送預存的命令的時鐘頻率為50MHz,為安全數(shù)碼卡的最大時鐘頻率。此外,上述延遲值的預設值通常是根據(jù)經(jīng)驗確定的,一般在0.5個時鐘周期左右。[〇〇95]此外需要說明的是,命令通信模塊111在經(jīng)由延長線的命令總線向SD卡發(fā)送帶有響應的命令時,還經(jīng)由延長線的命令總線向SD卡發(fā)送不帶有響應的命令。并且在向SD卡發(fā)送不帶有響應的命令時,將發(fā)送不帶有響應的命令的時鐘頻率控制在6-15MHZ之間,具體值可根據(jù)經(jīng)驗確定,同時配置默認的延遲值以保證能正確發(fā)送命令。
[0096]在本發(fā)明實施例中,數(shù)據(jù)通信操作包括讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作,數(shù)據(jù)通信模塊112還包括讀數(shù)據(jù)通信模塊1121和寫數(shù)據(jù)通信模塊1122。在本發(fā)明實施例中,對于讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作的處理方式有所不同,下面將分別進行說明。對于讀數(shù)據(jù)通信操作,與上述命令通信操作的實施例類似,預先配置SD卡的驅(qū)動器為掃描模式,驅(qū)動器可依序掃描預先儲存設置的多個讀數(shù)據(jù)的命令通信操作。讀數(shù)據(jù)通信模塊1121用于:設置讀數(shù)據(jù)通信操作的初始延遲值為〇;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的讀數(shù)據(jù)的命令;如果正確接收到安全數(shù)碼卡經(jīng)由延長線的數(shù)據(jù)總線返回的未顯示循環(huán)冗余校驗錯誤的數(shù)據(jù),則記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的讀數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加1,并判斷延遲值是否達到預設值, 若否,則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一條讀數(shù)據(jù)的命令通信操作,若是則結束本步驟。
[0097]對于寫數(shù)據(jù)通信操作,寫數(shù)據(jù)通信模塊1122還用于:設置寫數(shù)據(jù)操作的初始延遲值為〇;經(jīng)由延長線的命令總線向安全數(shù)碼卡發(fā)送預存的寫數(shù)據(jù)的命令,并經(jīng)由延長線的數(shù)據(jù)總線向安全數(shù)碼卡發(fā)送待寫數(shù)據(jù);如果正確接收到安全數(shù)碼卡返回的寫數(shù)據(jù)成功的響應,則記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的寫數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值;將延遲值加1,并判斷延遲值是否達到預設值,若否則返回執(zhí)行向安全數(shù)碼卡發(fā)送預存的下一條寫數(shù)據(jù)的命令的操作,若是則結束本步驟。
[0098]在本發(fā)明實施例中,優(yōu)選地,第一數(shù)值為1,第二數(shù)值為0。在本發(fā)明的其他實施例中,也可以第一數(shù)值為0,第二數(shù)值為1,在此不作限制。在上述讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作的測試流程中,操作模塊11同樣可配置進行發(fā)送帶有讀數(shù)據(jù)命令和寫數(shù)據(jù)命令時的時鐘頻率為50MHz,即為安全數(shù)碼卡在SDR25模式下的最大時鐘頻率。
[0099]在本發(fā)明實施例中,查找模塊12查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段時,對于命令操作,查找模塊12逐一掃描狀態(tài)值,直接查找向安全數(shù)碼卡發(fā)送帶有響應的命令所記錄的狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段。對應地,處理模塊13直接將查找到的最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳命令延遲值。
[0100]對于數(shù)據(jù)通信操作,由于數(shù)據(jù)通信操作包括讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作, 因而在上述執(zhí)行完預設次數(shù)的讀數(shù)據(jù)通信操作和寫數(shù)據(jù)通信操作后,會得到分別與其對應的由多個狀態(tài)值組成的兩組數(shù)據(jù)串,查找模塊12用于:分別查找到兩個最長數(shù)據(jù)段,即對應讀數(shù)據(jù)通信操作的第一最長數(shù)據(jù)段以及和對應寫數(shù)據(jù)通信操作的第二最長數(shù)據(jù)段。在實際應用中,雖然這兩組數(shù)據(jù)串不一定完全一致(通常只有些許不同),但是由于操作環(huán)境的一致性,這兩組數(shù)據(jù)串所分別包含的最長數(shù)據(jù)段必然會大致重疊,從而可以從重疊部分選取最佳數(shù)據(jù)延遲值。對應地,處理模塊13將第一最長數(shù)據(jù)段和第二最長數(shù)據(jù)段相重疊部分的數(shù)據(jù)段的中間位置的狀態(tài)值所對應的延遲值作為最佳數(shù)據(jù)延遲值。
[0101]以上描述了如何經(jīng)由延長線與SD卡進行通信操作、記錄每個通信操作對應的狀態(tài)值、以及查找最佳延遲值的過程,通過查找模塊12查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段,可以保證選擇的最佳延遲值有一個較大的浮動范圍,換句話說,即便所選擇的延遲值存在一定的偏差,也能保證在一定偏差范圍內(nèi)所選擇的延遲值對應的通信操作仍然為可以正確“發(fā)送-接收-響應”的狀態(tài),使得在實際的通信操作過程中,即使環(huán)境發(fā)生變化導致時序存在波動時,也可以在一定范圍內(nèi)確保通信操作不會因外部環(huán)境變化導致異常。
[0102]本發(fā)明實施例的補償安全數(shù)碼卡的延長線引起的延遲的裝置10通過將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差后,安全數(shù)碼卡能夠滿足正常通信操作過程,但很難避免出現(xiàn)突發(fā)干擾等情況。如此就需要增強通信操作軟件的魯棒性.對通信操作過程中出現(xiàn)的不同錯誤都需要有解決方案,讓系統(tǒng)能夠正常對安全數(shù)碼卡進行通信操作。在安全數(shù)碼卡通信操作過程中,主要會出現(xiàn)的錯誤包括接收到安全數(shù)碼卡返回的CRC錯誤響應,以及通信操作超時。
[0103]當接收到SD卡返回的包含CRC錯誤的響應時,本發(fā)明實施例中可以通過動態(tài)調(diào)整命令通信操作或數(shù)據(jù)通信操作對應的最佳延遲值后,再重傳當前命令/數(shù)據(jù),以使系統(tǒng)恢復正常。或者直接降低時鐘頻率后重傳當前命令/數(shù)據(jù),以使系統(tǒng)恢復正常。對于前者,可以針對最佳延遲值設置一定的調(diào)整范圍,以在預設范圍內(nèi),對最佳延遲值進行調(diào)整。
[0104]而當遇到SD卡的通信操作超時的情況時,本發(fā)明實施例則可以通過重傳當前命令/數(shù)據(jù)、關閉SD卡硬件電源重啟后再重傳、或者直接降低時鐘頻率后重傳當前命令/數(shù)據(jù), 以使系統(tǒng)恢復正常。
[0105]綜上所述,本發(fā)明通過經(jīng)由延長線與安全數(shù)碼卡進行預設次數(shù)的通信操作,若接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第一數(shù)值,若未接收到安全數(shù)據(jù)卡返回的正確響應,則記錄通信操作對應的狀態(tài)值為第二數(shù)值;查找狀態(tài)值連續(xù)為第一數(shù)值的最長數(shù)據(jù)段;將位于最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的通信操作的延遲值作為最佳延遲值;將最佳延遲值設置為安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由安全數(shù)碼卡的延長線所引起的延遲,能夠補償安全數(shù)碼卡的延長線引起的延遲,保證安全數(shù)碼卡的傳輸速度,提高系統(tǒng)的性能。
[0106]以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均應包括在本發(fā)明的專利保護范圍內(nèi)。
【主權項】
1.一種補償安全數(shù)碼卡的延長線引起的延遲的方法,其特征在于,所述方法包括:經(jīng)由所述延長線與所述安全數(shù)碼卡進行預設次數(shù)的通信操作,若接收到所述安全數(shù)據(jù)卡返回的正確響應,則記錄所述通信操作對應的狀態(tài)值為第一數(shù)值,若未接收到所述安全 數(shù)據(jù)卡返回的正確響應,則記錄所述通信操作對應的狀態(tài)值為第二數(shù)值;查找所述狀態(tài)值連續(xù)為所述第一數(shù)值的最長數(shù)據(jù)段;將位于所述最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的所述通信操作的延遲值作為最 佳延遲值;以及將所述最佳延遲值設置為所述安全數(shù)碼卡的源時鐘和采樣時鐘的相位差,以補償由所 述安全數(shù)碼卡的所述延長線所引起的延遲。2.根據(jù)權利要求1所述的方法,其特征在于,所述通信操作包括命令通信操作和數(shù)據(jù)通 信操作,所述最佳延遲值包括最佳命令延遲值和最佳數(shù)據(jù)延遲值,經(jīng)由所述延長線與所述 安全數(shù)碼卡進行所述通信操作的步驟包括:經(jīng)由所述延長線的命令總線與所述安全數(shù)碼卡進行預設次數(shù)的所述命令通信操作,分 別獲取多個所述命令通信操作分別對應的多個狀態(tài)值;或經(jīng)由所述延長線的數(shù)據(jù)總線與所述安全數(shù)碼卡進行預設次數(shù)的所述數(shù)據(jù)通信操作,分 別獲取多個所述數(shù)據(jù)通信操作分別對應的多個狀態(tài)值。3.根據(jù)權利要求2所述的方法,其特征在于,所述經(jīng)由所述延長線的命令總線與所述安 全數(shù)碼卡進行預設次數(shù)的所述命令通信操作,分別獲取多個所述命令通信操作分別對應的 多個狀態(tài)值的步驟包括:設置所述命令通信操作的初始延遲值為〇;經(jīng)由所述延長線的命令總線向所述安全數(shù)碼卡發(fā)送預存的命令;如果接收到所述安全數(shù)碼卡經(jīng)由所述延長線的命令總線返回的未顯示循環(huán)冗余校驗 錯誤的響應,則記錄當前的所述命令通信操作對應的狀態(tài)值為所述第一數(shù)值,否則記錄當 前的所述命令通信操作對應的狀態(tài)值為所述第二數(shù)值;以及將所述延遲值加1,并判斷所述延遲值是否達到預設值,若否,則返回執(zhí)行向所述安全 數(shù)碼卡發(fā)送預存的下一條命令的操作,若是,則結束本步驟。4.根據(jù)權利要求2所述的方法,其特征在于,所述經(jīng)由所述延長線的數(shù)據(jù)總線與所述安 全數(shù)碼卡進行預設次數(shù)的所述數(shù)據(jù)通信操作,分別獲取多個所述數(shù)據(jù)通信操作分別對應的 多個狀態(tài)值的步驟包括:設置所述讀數(shù)據(jù)通信操作的初始延遲值為〇;經(jīng)由所述延長線的命令總線向所述安全數(shù)碼卡發(fā)送預存的讀數(shù)據(jù)的命令;如果正確接收到所述安全數(shù)碼卡經(jīng)由所述延長線的數(shù)據(jù)總線返回的未顯示循環(huán)冗余 校驗錯誤的數(shù)據(jù),則記錄當前的所述讀數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄 當前的所述讀數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值;以及將所述延遲值加1,并判斷所述延遲值是否達到預設值,若否,則返回執(zhí)行向所述安全 數(shù)碼卡發(fā)送預存的下一條讀數(shù)據(jù)的命令的操作,若是則結束本步驟。5.根據(jù)權利要求2所述的方法,其特征在于,所述經(jīng)由所述延長線的數(shù)據(jù)總線與所述安 全數(shù)碼卡進行預設次數(shù)的所述數(shù)據(jù)通信操作,分別獲取多個所述數(shù)據(jù)通信操作分別對應的 多個狀態(tài)值的步驟包括:設置所述寫數(shù)據(jù)通信操作的初始延遲值為0;經(jīng)由所述延長線的命令總線向所述安全數(shù)碼卡發(fā)送預存的寫數(shù)據(jù)的命令,并經(jīng)由所述 延長線的數(shù)據(jù)總線向所述安全數(shù)碼卡發(fā)送待寫數(shù)據(jù);如果正確接收到所述安全數(shù)碼卡返回的寫數(shù)據(jù)成功的響應,則記錄當前的所述寫數(shù)據(jù) 通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的所述寫數(shù)據(jù)通信操作對應的狀態(tài)值為 第二數(shù)值;以及將所述延遲值加1,并判斷所述延遲值是否達到預設值,若否則返回執(zhí)行向所述安全數(shù) 碼卡發(fā)送預存的下一條寫數(shù)據(jù)的命令的操作,若是則結束本步驟。6.根據(jù)權利要求2所述的方法,其特征在于,所述數(shù)據(jù)通信操作包括讀數(shù)據(jù)通信操作和 寫數(shù)據(jù)通信操作,所述查找所述狀態(tài)值連續(xù)為所述第一數(shù)值的最長數(shù)據(jù)段的步驟包括:查找對應于所述 讀數(shù)據(jù)通信操作的第一最長數(shù)據(jù)段以及對應于所述寫數(shù)據(jù)通信操作的第二最長數(shù)據(jù)段; 所述將位于所述最長數(shù)據(jù)段的中間位置的狀態(tài)值所對應的所述通信操作的延遲值作 為最佳延遲值的步驟包括:將所述第一最長數(shù)據(jù)段和所述第二最長數(shù)據(jù)段相重疊部分的數(shù) 據(jù)段的中間位置的狀態(tài)值所對應的延遲值作為最佳數(shù)據(jù)延遲值。7.—種補償安全數(shù)碼卡的延長線引起的延遲的裝置,其特征在于,所述裝置包括: 通信操作模塊,用于經(jīng)由所述延長線與所述安全數(shù)碼卡進行預設次數(shù)的通信操作,若接收到所述安全數(shù)據(jù)卡返回的正確響應,則記錄所述通信操作對應的狀態(tài)值為第一數(shù)值, 若未接收到所述安全數(shù)據(jù)卡返回的正確響應,則記錄所述通信操作對應的狀態(tài)值為第二數(shù) 值;查找模塊,與所述通信操作模塊連接,用于查找所述狀態(tài)值連續(xù)為所述第一數(shù)值的最 長數(shù)據(jù)段;處理模塊,與所述查找模塊連接,用于將位于所述最長數(shù)據(jù)段的中間位置的狀態(tài)值所 對應的所述通信操作的延遲值作為最佳延遲值;以及設置模塊,與所述處理模塊連接,將所述最佳延遲值設置為所述安全數(shù)碼卡的源時鐘 和采樣時鐘的相位差,以補償由所述安全數(shù)碼卡的所述延長線所引起的延遲。8.根據(jù)權利要求7所述的裝置,其特征在于,所述通信操作包括命令通信操作和數(shù)據(jù)通 信操作,所述最佳延遲值包括最佳命令延遲值和最佳數(shù)據(jù)延遲值,所述通信操作模塊包括:命令通信模塊,用于經(jīng)由所述延長線的命令總線與所述安全數(shù)碼卡進行預設次數(shù)的 所述命令通信操作,分別獲取多個所述命令通信操作分別對應的多個狀態(tài)值;以及數(shù)據(jù)通信模塊,用于經(jīng)由所述延長線的數(shù)據(jù)總線與所述安全數(shù)碼卡進行預設次數(shù)的所 述數(shù)據(jù)通信操作,分別獲取多個所述數(shù)據(jù)通信操作分別對應的多個狀態(tài)值。9.根據(jù)權利要求8所述的裝置,其特征在于,所述命令通信模塊還用于:設置所述命令 通信操作的初始延遲值為〇;經(jīng)由所述延長線的命令總線向所述安全數(shù)碼卡發(fā)送預存的命令;如果接收到所述安全數(shù)碼卡經(jīng)由所述延長線的命令總線返回的未顯示循環(huán)冗余校驗 錯誤的響應,則記錄當前的所述命令通信操作對應的狀態(tài)值為所述第一數(shù)值,否則記錄當 前的所述命令通信操作對應的狀態(tài)值為所述第二數(shù)值;以及將所述延遲值加1,并判斷所述延遲值是否達到預設值,若否,則返回執(zhí)行向所述安全數(shù)碼卡發(fā)送預存的下一條命令的操作,若是,則結束本步驟。10.根據(jù)權利要求8所述的裝置,其特征在于,所述數(shù)據(jù)通信模塊包括讀數(shù)據(jù)通信模塊, 所述讀數(shù)據(jù)通信模塊用于:設置所述讀數(shù)據(jù)通信操作的初始延遲值為〇;經(jīng)由所述延長線的命令總線向所述安全數(shù)碼卡發(fā)送預存的讀數(shù)據(jù)的命令;以及如果正確接收到所述安全數(shù)碼卡經(jīng)由所述延長線的數(shù)據(jù)總線返回的未顯示循環(huán)冗余 校驗錯誤的數(shù)據(jù),則記錄當前的所述讀數(shù)據(jù)通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄 當前的所述讀數(shù)據(jù)通信操作對應的狀態(tài)值為第二數(shù)值;將所述延遲值加1,并判斷所述延遲值是否達到預設值,若否,則返回執(zhí)行向所述安全 數(shù)碼卡發(fā)送預存的下一條讀數(shù)據(jù)的命令操作,若是則結束本步驟。11.根據(jù)權利要求8所述的裝置,其特征在于,所述數(shù)據(jù)通信模塊還包括寫數(shù)據(jù)通信模 塊,所述寫數(shù)據(jù)通信模塊用于:設置所述寫數(shù)據(jù)通信操作的初始延遲值為〇;經(jīng)由所述延長線的命令總線向所述安全數(shù)碼卡發(fā)送預存的寫數(shù)據(jù)的命令,并經(jīng)由所述 延長線的數(shù)據(jù)總線向所述安全數(shù)碼卡發(fā)送待寫數(shù)據(jù);如果正確接收到所述安全數(shù)碼卡返回的寫數(shù)據(jù)成功的響應,則記錄當前的所述寫數(shù)據(jù) 通信操作對應的狀態(tài)值為第一數(shù)值,否則記錄當前的所述寫數(shù)據(jù)通信操作對應的狀態(tài)值為 第二數(shù)值;以及將所述延遲值加1,并判斷所述延遲值是否達到預設值,若否則返回執(zhí)行向所述安全數(shù) 碼卡發(fā)送預存的下一條寫數(shù)據(jù)的命令的操作,若是則結束本步驟。12.根據(jù)權利要求8所述的裝置,其特征在于,所述數(shù)據(jù)操作包括讀數(shù)據(jù)通信操作和寫 數(shù)據(jù)通信操作,所述查找模塊還用于:查找對應于所述讀數(shù)據(jù)通信操作的第一最長數(shù)據(jù)段 以及對應于所述寫數(shù)據(jù)通信操作的第二最長數(shù)據(jù)段;所述處理還模塊用于:將所述第一最長數(shù)據(jù)段和所述第二最長數(shù)據(jù)段相重疊部分的數(shù) 據(jù)段的中間位置的狀態(tài)值所對應的延遲值作為最佳數(shù)據(jù)延遲值。
【文檔編號】G06K19/077GK106096702SQ201610339223
【公開日】2016年11月9日
【申請日】2016年5月18日
【發(fā)明人】陳松林
【申請人】杰發(fā)科技(合肥)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
麻阳| 苗栗县| 绥阳县| 怀宁县| 伊吾县| 开远市| 德钦县| 长沙市| 九江县| 勃利县| 休宁县| 桑日县| 广元市| 泗水县| 通海县| 淳安县| 宜章县| 内乡县| 马鞍山市| 陕西省| 汉阴县| 正蓝旗| 永新县| 河源市| 陵水| 花莲市| 嘉禾县| 抚宁县| 正蓝旗| 中宁县| 天镇县| 康平县| 隆尧县| 慈利县| 房山区| 盐山县| 凤凰县| 连云港市| 柘城县| 阳城县| 深水埗区|