两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種具有程序內(nèi)容對外保密功能的芯片及程序下載方法

文檔序號:6564556閱讀:307來源:國知局
專利名稱:一種具有程序內(nèi)容對外保密功能的芯片及程序下載方法
技術(shù)領(lǐng)域
本發(fā)明涉及芯片的設(shè)計方法,特別涉及一種具有程序內(nèi)容對外保密功能的芯片 及相應(yīng)的程序下載方法。
背景技術(shù)
目前,在處理器芯片內(nèi)集成程序存儲器、內(nèi)存以及其他模塊的做法在單片機以 及嵌入式系統(tǒng)領(lǐng)域非常普遍。但是目前大多數(shù)這樣的芯片在下載程序時需要用到專 門的下載器,使用不方便。另外,更重要的是,當前這些芯片為了方便校驗和應(yīng)用, 沒有對外進行程序存儲器設(shè)計,下載器或其他設(shè)備通過特定邏輯可以讀取出程序存 儲器的內(nèi)容,這就難以滿足某些需要程序存儲器內(nèi)容對外保密的應(yīng)用領(lǐng)域,例如無 線傳感器網(wǎng)絡(luò)對于軍事和其他一些方面的應(yīng)用。
無線傳感器網(wǎng)絡(luò)是由大量密集部署在監(jiān)控區(qū)域的自治節(jié)點構(gòu)成的一種自組織網(wǎng) 絡(luò)應(yīng)用系統(tǒng)。它綜合了傳感器技術(shù)、嵌入式計算技術(shù)、現(xiàn)代網(wǎng)絡(luò)及無線通信技術(shù)、 分布式信息處理技術(shù)等,既是多學(xué)科高度交叉的具有高度挑戰(zhàn)性的前沿研究領(lǐng)域, 也是國內(nèi)外公認的具有廣闊發(fā)展前景的高技術(shù)產(chǎn)業(yè)。
由于無線傳感器網(wǎng)絡(luò)節(jié)點是自治節(jié)點,無人值守,如果應(yīng)用于軍事領(lǐng)域,它的 節(jié)點很容易被敵方得到,節(jié)點中的程序內(nèi)容包含了無線通訊加密和解密方式,如果 敵方能夠從芯片中讀出程序內(nèi)容,通過反編譯就能夠得知這些加密和解密的方式, 進而竊聽或破壞我方的無線傳感器網(wǎng)絡(luò)系統(tǒng)。對于這方面的應(yīng)用,程序內(nèi)容對外保 密顯得非常重要。因此,需要一種能夠使得芯片中的具有程序內(nèi)容對外保密功能的 芯片設(shè)計。

發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有的處理器芯片在下載程序時需要專門的下載器,以及 芯片中的程序內(nèi)容可以被外部讀取,容易造成泄密的缺陷,從而提供一種具有程序
內(nèi)容對外保密功能的芯片。
為了實現(xiàn)上述目的,本發(fā)明提供了一種具有程序內(nèi)容對外保密功能的芯片,包 括處理器l、程序存儲器2,還包括程序下載控制器3、選通器4和一個"或門", 所述的程序下載控制器3采用不可逆方式進行校驗;其中,所述的處理器l與所述 的程序下載控制器3通過所述的連通器4分別連接到所述的程序存儲器2上,芯片 外接的復(fù)位線與所述的程序下載控制器3以及所述"或門"的輸入端相連,所述的 程序下載控制器3的處理器復(fù)位控制線與所述"或門"的另一個輸入端相連,所述 "或門"的輸出端連接所述處理器1的復(fù)位線上,所述程序下載控制器3通過通用 接口設(shè)備與芯片外的設(shè)備連接,所述處理器1還連接到芯片內(nèi)的總線上。
上述技術(shù)方案中,所述的處理器1采用現(xiàn)有的IP模塊或開放源代碼實現(xiàn)。
上述技術(shù)方案中,所述的程序下載控制器3具有兩種工作模式,分別為非下載 模式和下載模式。
所述的程序下載控制器3工作在所述的非下載模式時
所述的程序下載控制器3通過對所述選通器4的控制將所述的處理器1與所述 的程序存儲器2相連,并清除所述的處理器1的復(fù)位狀態(tài),使所述的處理器l處于 工作狀態(tài);所述程序下載控制器3接收到程序下載開始命令后,所述程序下載控制 器3斷開所述處理器1與所述程序存儲器2的連接,同時保持所述處理器1處于復(fù) 位狀態(tài),然后擦除所述程序存儲器2上的所有數(shù)據(jù),應(yīng)答所述的程序下載開始的命 令,進入下載模式。
所述的程序下載控制器3工作在所述的下載模式時
所述的程序下載控制器3通過所述的選通器4斷開所述的處理器1同所述的程 序存儲器2的連接,同時保持所述的處理器1為復(fù)位狀態(tài);所述的程序下載控制器 3響應(yīng)外來的控制命令,并按照命令對所述程序存儲器2的相應(yīng)區(qū)域進行下載或擦 除操作,并發(fā)送應(yīng)答;所述的程序下載控制器3接收到程序下載結(jié)束命令后進入非 下載模式。
上述技術(shù)方案中,所述的程序下載控制器3采用不可逆方式進行校驗時,所述 的不可逆方式包括CRC編碼方式。
本發(fā)明還提供了一種應(yīng)用于所述的具有程序內(nèi)容對外保密功能的芯片中的程序 下載方法,包括以下步驟
步驟a)、所述的程序下載控制器3讀取所要下載程序的文件內(nèi)容,根據(jù)所述程
序存儲器2中所劃分的區(qū)域大小,將文件內(nèi)容分為若干區(qū)域,并將程序下載控制器 3的寄存器中所保存的錯誤次數(shù)清零,同時設(shè)定允許錯誤的次數(shù);
步驟b)、所述的程序下載控制器3發(fā)送下載開始命令,設(shè)定超時時間,并等待
應(yīng)答;
步驟c)、若超時無應(yīng)答或應(yīng)答錯誤,則累加錯誤次數(shù),并執(zhí)行下一步,若在 規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟e);
步驟d)、判斷累加后的錯誤次數(shù)是否小于步驟a)中設(shè)定的允許錯誤的次數(shù)值, 若小于,則執(zhí)行步驟b),否則,報錯并退出下載流程;
步驟e)、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲器2 的區(qū)域分區(qū)發(fā)送,并對下載后的數(shù)據(jù)作校驗操作,直至所要下載的程序文件下載完 畢;
步驟f)、發(fā)送下載結(jié)束命令,設(shè)定超時時間,并等待應(yīng)答;
步驟g)、若超時無應(yīng)答或應(yīng)答錯誤,則累加錯誤次數(shù),并執(zhí)行下一步,若在 規(guī)定的時間內(nèi)應(yīng)答正確,則顯示下載成功并退出下載流程。
步驟h)、判斷累加后的錯誤次數(shù)是否小于步驟a)中設(shè)定的允許錯誤的次數(shù)值, 若小于,則執(zhí)行步驟f),否則報錯,并退出下載流程。
上述技術(shù)方案中,所述的步驟e)具體包括以下步驟
步驟el-l)、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲 器2的區(qū)域發(fā)送,發(fā)送完一個區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答的校 驗數(shù)據(jù);
步驟el-2)、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟 el-5),若超時無應(yīng)答或應(yīng)答的校驗數(shù)據(jù)錯誤,則累加錯誤次數(shù),執(zhí)行下一步;
步驟el-3)、判斷錯誤次數(shù)是否小于步驟a)中設(shè)定的允許錯誤的次數(shù)值,若 小于,則對當前下載區(qū)域發(fā)送擦除數(shù)據(jù)命令,并等待應(yīng)答,執(zhí)行下一步;否則,報 錯并退出下載流程;
步驟el-4)、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則重新執(zhí)行步 驟el-1),否則累加錯誤次數(shù)后執(zhí)行步驟el-3);
步驟el-5)、發(fā)送程序存儲器2的下一個區(qū)域的下載數(shù)據(jù)包,直到數(shù)據(jù)完全下 載結(jié)束。
上述技術(shù)方案中,所述的步驟e)包括以下步驟
步驟e2-1)、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲 器2的區(qū)域發(fā)送,發(fā)送區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答;
步驟e2-2)、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟 e2-4),若超時無應(yīng)答,則累加錯誤次數(shù),并執(zhí)行下一步;
步驟e2-3)、若錯誤次數(shù)小于步驟a)中設(shè)定的允許錯誤的次數(shù)值,則重新執(zhí) 行步驟e2-1),對區(qū)域的數(shù)據(jù)重新進行下載,否則報錯并退出;
步驟e2-4)、繼續(xù)下載下一個區(qū)域的數(shù)據(jù)包,直到完成對所有區(qū)域數(shù)據(jù)包的下
載;
步驟e2-5)、程序下載控制器3發(fā)出校驗命令,校驗第一個區(qū)域的數(shù)據(jù);
步驟e2-6)、校驗成功后繼續(xù)發(fā)送校驗命令校驗下一個區(qū)域數(shù)據(jù),直到校驗完 全部數(shù)據(jù),執(zhí)行步驟f);若校驗失敗就報錯退出。
上述技術(shù)方案中,在所述的步驟e)中,對區(qū)域數(shù)據(jù)的下載和校驗的順序采用 組合方式,具體包含以下步驟
步驟e3-1)、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲 器2的區(qū)域發(fā)送,發(fā)送區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答;
步驟e3-2)、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟 e3-4),若超時無應(yīng)答,則累加錯誤次數(shù),并執(zhí)行下一步;
步驟e3-3)、若錯誤次數(shù)小于步驟a)中設(shè)定的允許錯誤的次數(shù)值,則重新執(zhí) 行步驟e3-1),對區(qū)域的數(shù)據(jù)重新進行下載,否則報錯并退出;
步驟e3-4)、繼續(xù)下載還未下載的區(qū)域的數(shù)據(jù)包,或者對已經(jīng)下載的區(qū)域的數(shù) 據(jù)進行校驗;
步驟e3-5)、重復(fù)執(zhí)行步驟e3-4),直到下載并校驗完全部數(shù)據(jù),執(zhí)行步驟f); 若在步驟e3-4)中出現(xiàn)校驗失敗就報錯退出。 本發(fā)明的優(yōu)點在于
1、 本發(fā)明有別于傳統(tǒng)采用各種密鑰對數(shù)據(jù)加密的方法,針對程序數(shù)據(jù)的特殊性 以及程序存儲器與處理器在一個芯片中的特點,采用不可逆的編碼校驗方式,在保 證的校驗的可靠性的同時,不為程序在芯片外被讀取留出任何邏輯方法,從而從根 本實現(xiàn)程序數(shù)據(jù)的保密。
2、 與傳統(tǒng)密鑰加密的方法相比,本發(fā)明不需要復(fù)雜的加密過程,方法簡單。 同時傳統(tǒng)密鑰加密的方法中, 一旦密鑰丟失,數(shù)據(jù)內(nèi)容就可能泄漏;而本發(fā)明中的
芯片,本身就不具備被從芯片外讀取程序內(nèi)容的邏輯功能,從而從根本上實現(xiàn)了對 程序數(shù)據(jù)的保密。


圖1為本發(fā)明的具有程序內(nèi)容對外保密功能的芯片的結(jié)構(gòu)圖; 圖2為本發(fā)明的程序下載方法的流程圖。 圖面說明
1 處理器 2 程序存儲器
3 程序下載控制器 4. 選通器
具體實施例方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步的說明。 實施例h
如圖1所示,在一個實施例中,本發(fā)明的具有程序內(nèi)容對外保密功能的芯片包 括處理器l、程序存儲器2、程序下載控制器3和選通器4。其中,處理器l與程序 下載控制器3通過連通器4分別連接到程序存儲器2上,芯片外接的復(fù)位線連接到 程序下載控制器3上以及一個或門的輸入端上,程序下載控制器3的處理器復(fù)位控 制線與前述或門的另一個輸入端上相連,所述或門的輸出端連接處理器復(fù)位線,該
復(fù)位線連接到處理器l上。程序下載控制器3通過串口與芯片外的設(shè)備連接。處理 器1還連接到一條總線上,該總線與芯片中所集成的其他功能模塊相連接。
處理器1是根據(jù)程序存儲器中的程序代碼完成相應(yīng)操作的邏輯器件,可選擇現(xiàn) 有的IP模塊或開放源代碼實現(xiàn)。例如Oregano Systems的MC8051處理器源代碼、 ARM系列的處理器模塊等。
程序存儲器2存儲芯片中所要用到的程序,程序存儲器2可采用FLASH或 EEPROM等成熟的工藝設(shè)計方法實現(xiàn)。在本實施例中,程序存儲器2可劃分為256 個區(qū)域,由于目前單片機或嵌入式系統(tǒng)的程序地址線大都為64KByte或更多,因此 每個區(qū)域?qū)⒂?56Byte或者更多數(shù)據(jù)。程序存儲器2劃分區(qū)域后,在程序下載時按 區(qū)域作分區(qū)下載。每個程序下載命令包中包含所要下載的區(qū)域地址以及該區(qū)域中所 有要存儲的數(shù)據(jù),當程序下載控制器3收到程序下載命令包后,將下載程序中的數(shù) 據(jù)寫入程序存儲器2的相應(yīng)區(qū)域,然后讀取該區(qū)域中的數(shù)據(jù),從而計算CRC校驗數(shù)或其他不可逆的校驗數(shù)據(jù),并將區(qū)域地址和校驗數(shù)據(jù)封裝成包后作為應(yīng)答發(fā)送出去。
程序下載控制器3起到程序下載時的控制作用。程序下載控制器3通過選通器 4控制程序存儲器2與處理器1或程序下載控制器3間的連接。程序下載控制3還 與芯片外接的復(fù)位線一起控制處理器1的復(fù)位。由于芯片外接的復(fù)位線與程序下載 控制3的處理器復(fù)位控制線都連接到或門上,當芯片外接的復(fù)位線發(fā)出復(fù)位信號時, 處理器1將被復(fù)位,而程序下載控制3也能通過處理器復(fù)位控制線控制處理器1的 復(fù)位。程序下載控制器3的校驗?zāi)J绞怯貌豢赡娴姆绞綄Τ绦虼鎯ζ?的內(nèi)容進行 編碼后,再發(fā)送到芯片外進行校驗。其中,不可逆的校驗?zāi)J绞侵感r灁?shù)據(jù)是原數(shù) 據(jù)的一種不可逆的映射,根據(jù)校驗數(shù)據(jù)內(nèi)容并不能還原出原數(shù)據(jù)內(nèi)容的校驗方法, 如CRC的編碼方式。
通過本發(fā)明的具有程序內(nèi)容對外保密功能的芯片實現(xiàn)程序下載等操作時,需要 設(shè)定相應(yīng)的命令。在程序下載過程中用到四種命令下載開始、下載數(shù)據(jù)、擦除數(shù) 據(jù)、下載結(jié)束;對于每種命令,程序下載控制器3必須回應(yīng)以相應(yīng)的應(yīng)答包,四種 應(yīng)答命令分別為應(yīng)答下載開始命令、應(yīng)答下載數(shù)據(jù)命令、應(yīng)答擦除數(shù)據(jù)命令、應(yīng)
答下載結(jié)束命令。
程序下載控制器3具有兩種工作模式, 一種為非下載模式,另一種為下載模式。 兩種工作模式下,程序下載控制器3有不同的控制操作。
非下載模式非下載模式是程序下載控制器3的初始工作模式,當程序下載控 制器3被復(fù)位后進入該模式。在這個工作模式中,程序下載控制器3通過對選通器 4的控制將處理器1與程序存儲器2相連,并清除處理器1的復(fù)位狀態(tài),使處理器1 處于工作狀態(tài)。在非下載模式中,程序下載控制器3不響應(yīng)除了程序下載開始命令 以外的命令,如果程序下載控制器3接收到程序下載開始的命令,則程序下載控制 器3將斷開處理器1與程序存儲器2的連接,同時保持處理器1處于復(fù)位狀態(tài),然 后擦除程序存儲器2上的所有數(shù)據(jù),接著應(yīng)答程序下載開始這個命令,并進入下載 模式。
下載模式在下載模式中,程序下載控制器3將通過選通器4斷開處理器1同 程序存儲器2的連接,以取得對程序存儲器2的控制權(quán),同時保持處理器l為復(fù)位
狀態(tài)。此模式中,處理器1 一直處于復(fù)位狀態(tài),不工作。在該工作模式中,程序下 載控制器3將響應(yīng)所有外來的控制命令,并按照命令對程序存儲器2的相應(yīng)區(qū)域進 行下載或擦除操作,并發(fā)送相應(yīng)的應(yīng)答。如果程序下載控制器3接收到程序下載結(jié)
束命令,就應(yīng)答該命令后進入非下載模式。
芯片的上述結(jié)構(gòu)結(jié)合相應(yīng)的程序下載方法,可實現(xiàn)芯片中程序內(nèi)容的對外保密。 所述程序下載方法的具體實現(xiàn)過程如下
步驟IO、程序下載控制器3讀取所要下載程序的文件內(nèi)容,根據(jù)程序存儲器2 中所劃分的區(qū)域大小,將文件內(nèi)容分為若干區(qū)域,并將程序下載控制器3的寄存器 中所保存的錯誤次數(shù)清零,同時設(shè)定允許錯誤的次數(shù)。
步驟20、程序下載控制器3發(fā)送下載開始命令,設(shè)定超時時間,并等待應(yīng)答;
步驟30、若超時無應(yīng)答或應(yīng)答錯誤,則累加錯誤次數(shù),并執(zhí)行下一步,若在規(guī) 定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟50;
步驟40、判斷累加后的錯誤次數(shù)是否小于步驟10中設(shè)定的允許錯誤的次數(shù)值, 若小于,則執(zhí)行步驟20,否則報錯并退出下載流程;
步驟50、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照程序存儲器2的區(qū) 域發(fā)送,發(fā)送完一個區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答的校驗數(shù)據(jù);
步驟60、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟90,若 超時無應(yīng)答或應(yīng)答的校驗數(shù)據(jù)錯誤,則累加錯誤次數(shù),執(zhí)行下一步;
步驟70、判斷錯誤次數(shù)是否小于步驟10中設(shè)定的允許錯誤的次數(shù)值,若小于, 則對當前下載區(qū)域發(fā)送擦除數(shù)據(jù)命令,并等待應(yīng)答,執(zhí)行下一步;否則,報錯并退 出下載流程;
步驟80、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則重新執(zhí)行步驟50, 否則累加錯誤次數(shù)后執(zhí)行步驟70;
步驟90、發(fā)送程序存儲器2的下一個區(qū)域的下載數(shù)據(jù)包,直到數(shù)據(jù)完全下載結(jié)
束;
步驟IOO、發(fā)送下載結(jié)束命令,設(shè)定超時時間,并等待應(yīng)答;
步驟110、若超時無應(yīng)答或應(yīng)答錯誤,則累加錯誤次數(shù),并執(zhí)行下一步,若在 規(guī)定的時間內(nèi)應(yīng)答正確,則顯示下載成功并退出下載流程。
步驟120、判斷累加后的錯誤次數(shù)是否小于步驟10中設(shè)定的允許錯誤的次數(shù)值, 若小于,則執(zhí)行步驟IOO,否則報錯,并退出下載流程。
在上述的程序下載方法中,步驟50的操作是下載完一個區(qū)域的數(shù)據(jù)包后立即校 驗,在校驗結(jié)果正確的前提下對程序存儲器2中的其他區(qū)域作進一步的數(shù)據(jù)下載, 即本實施例中所采用的數(shù)據(jù)下載方法是"邊下載邊校驗"。
實施例2:
在本發(fā)明的另一個實施例中,在下載數(shù)據(jù)包時,可首先將數(shù)據(jù)按區(qū)域全部下載, 然后把下載后的所有區(qū)域中的數(shù)據(jù)作校驗操作,對校驗結(jié)果有誤的下載區(qū)域重新作
下載操作,直至所有數(shù)據(jù)下載成功為止。例如,對上實施例1的步驟50到步驟90
的程序下載和校驗過程,也可以用下面所描述的方法實現(xiàn)
步驟200、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲器2 的區(qū)域發(fā)送,發(fā)送區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答;
步驟210、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟230, 若超時無應(yīng)答,則累加錯誤次數(shù),并執(zhí)行下一步;
步驟220、若錯誤次數(shù)小于步驟10中設(shè)定的允許錯誤的次數(shù)值,則重新執(zhí)行步 驟200,對區(qū)域的數(shù)據(jù)重新進行下載,否則報錯并退出;
步驟230、繼續(xù)下載下一個區(qū)域的數(shù)據(jù)包,直到完成對所有區(qū)域數(shù)據(jù)包的下載;
步驟240、程序下載控制器3發(fā)出校驗命令,校驗第一個區(qū)域的數(shù)據(jù);
步驟250、校驗成功后繼續(xù)發(fā)送校驗命令校驗下一個區(qū)域數(shù)據(jù),直到校驗完全 部數(shù)據(jù);若校驗失敗就報錯退出。
實施例3:
在本發(fā)明的再一個實施例中,在下載程序數(shù)據(jù)包的過程中,還可以采用各種下 載和校驗組合的方式,例如,在程序存儲器2中可以分為5個區(qū)域,分別用A、 B、 C、 D、 E表示。在下載和校驗時,可以首先下載區(qū)域A、 B,然后校驗區(qū)域A、 B,再 下載區(qū)域C、 D、 E,然后校驗區(qū)域C、 D、 E。也可以首先下載區(qū)域B、 D,校驗區(qū)域B, 再下載區(qū)域A、 C、 E,然后檢驗區(qū)域A、 C、 D、 E。對某一特定的區(qū)域,只要遵循先 下載數(shù)據(jù),后校驗數(shù)據(jù)的原則即可。對上實施例1的步驟50到步驟90的程序下載 和校驗過程,也可以用下面所描述的方法實現(xiàn)
步驟300、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲器2 的區(qū)域發(fā)送,發(fā)送區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答;
步驟310、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟330, 若超時無應(yīng)答,則累加錯誤次數(shù),并執(zhí)行下一步;
步驟320、若錯誤次數(shù)小于步驟10中設(shè)定的允許錯誤的次數(shù)值,則重新執(zhí)行步 驟300,對區(qū)域的數(shù)據(jù)重新進行下載,否則報錯并退出;
步驟330、繼續(xù)下載還未下載的區(qū)域的數(shù)據(jù)包,或者對已經(jīng)下載的區(qū)域的數(shù)據(jù)進行校驗;
步驟340、重復(fù)執(zhí)行步驟330,直到下載并校驗完全部數(shù)據(jù);若在步驟330中出 現(xiàn)校驗失敗就報錯退出。
在上述各個實施例中,由于程序下載控制器3的校驗?zāi)J绞怯貌豢赡娴姆绞綄?程序存儲器2的內(nèi)容進行編碼(如CRC的編碼方式)后,再發(fā)送到芯片外進行校驗, 因此芯片外的設(shè)備沒有辦法直接得到程序存儲器2的內(nèi)容。同時在沒有接收下載開 始命令之前,程序下載控制器3不會進入下載模式并響應(yīng)下載命令,而一旦接到下 載開始命令進入下載模式,程序存儲器2的內(nèi)容將全部被擦除,這就防止了用在程 序存儲器2存儲的原內(nèi)容基礎(chǔ)上下載一個小程序,讓這個小程序通過處理器1將除 了它以外的程序存儲器2的內(nèi)容由處理器1的數(shù)據(jù)線發(fā)送到芯片外的方法,來間接 取得部分程序存儲器2內(nèi)容。因此在本發(fā)明的設(shè)計中,如果不修改芯片內(nèi)部的電路, 將無法從芯片外獲得程序存儲器2的內(nèi)容,從而有效地保護了芯片中所保存的內(nèi)容。
權(quán)利要求
1. 一種具有程序內(nèi)容對外保密功能的芯片,包括處理器(1)、程序存儲器(2);其特征在于,還包括程序下載控制器(3)、選通器(4)和一個“或門”,所述的程序下載控制器(3)采用不可逆方式進行校驗;其中,所述的處理器(1)與所述的程序下載控制器(3)通過所述的連通器(4)分別電連接到所述的程序存儲器(2)上,芯片外接的復(fù)位線與所述的程序下載控制器(3)以及所述“或門”的輸入端相連,所述的程序下載控制器(3)的處理器復(fù)位控制線與所述“或門”的另一個輸入端相連,所述“或門”的輸出端連接所述處理器(1)的復(fù)位線上,所述程序下載控制器(3)通過通用接口設(shè)備與芯片外的設(shè)備連接,所述處理器(1)還連接到芯片內(nèi)的總線上。
2、 根據(jù)權(quán)利要求1所述的具有程序內(nèi)容對外保密功能的芯片,其特征在于,所 述的處理器(1)采用現(xiàn)有的IP模塊或開放源代碼。
3、 根據(jù)權(quán)利要求l所述的具有程序內(nèi)容對外保密功能的芯片,其特征在于,所 述的程序下載控制器(3)具有兩種工作模式,分別為非下載模式和下載模式。
4、 根據(jù)權(quán)利要求3所述的具有程序內(nèi)容對外保密功能的芯片,其特征在于,所 述的程序下載控制器(3)工作在所述的非下載模式時-所述的程序下載控制器(3)通過對所述選通器(4)的控制將所述的處理器(1) 與所述的程序存儲器(2)相連,并清除所述的處理器(1)的復(fù)位狀態(tài),使所述的 處理器(1)處于工作狀態(tài);所述程序下載控制器(3)接收到程序下載開始命令后, 所述程序下載控制器(3)斷開所述處理器(1)與所述程序存儲器(2)的連接,同 時保持所述處理器(1)處于復(fù)位狀態(tài),然后擦除所述程序存儲器(2)上的所有數(shù) 據(jù),應(yīng)答所述的程序下載開始的命令,進入下載模式。
5、 根據(jù)權(quán)利要求3所述的具有程序內(nèi)容對外保密功能的芯片,其特征在于,所 述的程序下載控制器(3)工作在所述的下載模式時所述的程序下載控制器(3)通過所述的選通器(4)斷開所述的處理器(1)同 所述的程序存儲器(2)的連接,同時保持所述的處理器(1)為復(fù)位狀態(tài);所述的 程序下載控制器(3)響應(yīng)外來的控制命令,并按照命令對所述程序存儲器(2)的 相應(yīng)區(qū)域進行下載或擦除操作,并發(fā)送應(yīng)答;所述的程序下載控制器(3)接收到程 序下載結(jié)束命令后進入非下載模式。
6、 根據(jù)權(quán)利要求1所述的具有程序內(nèi)容對外保密功能的芯片,其特征在于,所 述的程序下載控制器(3)采用不可逆方式進行校驗時,所述的不可逆方式包括CRC 編碼方式。
7、 一種應(yīng)用于權(quán)利要求1所述的具有程序內(nèi)容對外保密功能的芯片中的程序下 載方法,包括以下步驟-步驟a)、所述的程序下載控制器(3)讀取所要下載程序的文件內(nèi)容,根據(jù)所 述程序存儲器(2)中所劃分的區(qū)域大小,將文件內(nèi)容分為若干區(qū)域,并將程序下載 控制器(3)的寄存器中所保存的錯誤次數(shù)清零,同時設(shè)定允許錯誤的次數(shù);步驟b)、所述的程序下載控制器(3)發(fā)送下載開始命令,設(shè)定超時時間,并 等待應(yīng)答;步驟c)、若超時無應(yīng)答或應(yīng)答錯誤,則累加錯誤次數(shù),并執(zhí)行下一步,若在 規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟e);步驟d)、判斷累加后的錯誤次數(shù)是否小于步驟a)中設(shè)定的允許錯誤的次數(shù)值, 若小于,則執(zhí)行步驟b),否則,報錯并退出下載流程;步驟e)、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲器 (2)的區(qū)域分區(qū)發(fā)送,并對下載后的數(shù)據(jù)作校驗操作,直至所要下載的程序文件下 載完畢;步驟O 、發(fā)送下載結(jié)束命令,設(shè)定超時時間,并等待應(yīng)答;步驟g)、若超時無應(yīng)答或應(yīng)答錯誤,則累加錯誤次數(shù),并執(zhí)行下一步,若在規(guī)定的時間內(nèi)應(yīng)答正確,則顯示下載成功并退出下載流程。步驟h)、判斷累加后的錯誤次數(shù)是否小于步驟a)中設(shè)定的允許錯誤的次數(shù)值,若小于,則執(zhí)行步驟f),否則報錯,并退出下載流程。
8、 根據(jù)權(quán)利要求7所述的程序下載方法,其特征在于,所述的步驟e)具體包 括以下步驟步驟el-l)、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲 器(2)的區(qū)域發(fā)送,發(fā)送完一個區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答的 校驗數(shù)據(jù);步驟el-2)、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟 el-5),若超時無應(yīng)答或應(yīng)答的校驗數(shù)據(jù)錯誤,則累加錯誤次數(shù),執(zhí)行下一步; 步驟el-3)、判斷錯誤次數(shù)是否小于步驟a)中設(shè)定的允許錯誤的次數(shù)值,若小于,則對當前下載區(qū)域發(fā)送擦除數(shù)據(jù)命令,并等待應(yīng)答,執(zhí)行下一步;否則,報 錯并退出下載流程;步驟el-4)、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則重新執(zhí)行步 驟el-1),否則累加錯誤次數(shù)后執(zhí)行步驟e1-3);步驟el-5)、發(fā)送程序存儲器(2)的下一個區(qū)域的下載數(shù)據(jù)包,直到數(shù)據(jù)完 全下載結(jié)束。
9、 根據(jù)權(quán)利要求7所述的程序下載方法,其特征在于,所述的步驟e)包括以 下步驟步驟e2-l)、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲 器(2)的區(qū)域發(fā)送,發(fā)送區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答;步驟e2-2)、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟 e2-4),若超時無應(yīng)答,則累加錯誤次數(shù),并執(zhí)行下一步;步驟e2-3)、若錯誤次數(shù)小于步驟a)中設(shè)定的允許錯誤的次數(shù)值,則重新執(zhí) 行步驟e2-l),對區(qū)域的數(shù)據(jù)重新進行下載,否則報錯并退出;步驟e2-4)、繼續(xù)下載下一個區(qū)域的數(shù)據(jù)包,直到完成對所有區(qū)域數(shù)據(jù)包的下載;步驟e2-5)、程序下載控制器(3)發(fā)出校驗命令,校驗第一個區(qū)域的數(shù)據(jù); 步驟e2-6)、校驗成功后繼續(xù)發(fā)送校驗命令校驗下一個區(qū)域數(shù)據(jù),直到校驗完 全部數(shù)據(jù),執(zhí)行步驟f);若校驗失敗就報錯退出。
10、 根據(jù)權(quán)利要求7所述的程序下載方法,其特征在于,在所述的步驟e)中, 對區(qū)域數(shù)據(jù)的下載和校驗的順序采用組合方式,具體包含以下步驟步驟e3-1)、將要下載的數(shù)據(jù)根據(jù)協(xié)議封裝成下載數(shù)據(jù)包,按照所述程序存儲 器(2)的區(qū)域發(fā)送,發(fā)送區(qū)域的下載數(shù)據(jù)包后,設(shè)定等待時間并等待應(yīng)答;步驟e3-2)、判斷應(yīng)答是否正確,若在規(guī)定的時間內(nèi)應(yīng)答正確,則執(zhí)行步驟 e3-4),若超時無應(yīng)答,則累加錯誤次數(shù),并執(zhí)行下一步;步驟e3-3)、若錯誤次數(shù)小于步驟a)中設(shè)定的允許錯誤的次數(shù)值,則重新執(zhí) 行步驟e3-l),對區(qū)域的數(shù)據(jù)重新進行下載,否則報錯并退出;步驟e3-4)、繼續(xù)下載還未下載的區(qū)域的數(shù)據(jù)包,或者對已經(jīng)下載的區(qū)域的數(shù) 據(jù)進行校驗;步驟e3-5)、重復(fù)執(zhí)行步驟e3-4),直到下載并校驗完全部數(shù)據(jù),執(zhí)行步驟f);若在步驟e3-4)中出現(xiàn)校驗失敗就報錯退出。
全文摘要
本發(fā)明公開了一種具有程序內(nèi)容對外保密功能的芯片,包括處理器、程序存儲器,還包括程序下載控制器、選通器和一個“或門”,程序下載控制器采用不可逆方式進行校驗;其中,處理器與程序下載控制器通過連通器分別連接到程序存儲器上,芯片外接的復(fù)位線與程序下載控制器以及所述“或門”的輸入端相連,程序下載控制器的處理器復(fù)位控制線與“或門”的另一個輸入端相連,“或門”的輸出端連接所述處理器的復(fù)位線上,程序下載控制器通過通用接口設(shè)備與芯片外的設(shè)備連接,處理器還連接到芯片內(nèi)的總線上。本發(fā)明采用不可逆的編碼校驗方式,不為程序在芯片外被讀取留出任何邏輯方法,從根本上實現(xiàn)程序數(shù)據(jù)的保密。
文檔編號G06F21/22GK101206703SQ200610169559
公開日2008年6月25日 申請日期2006年12月22日 優(yōu)先權(quán)日2006年12月22日
發(fā)明者莉 崔, 希 黃 申請人:中國科學(xué)院計算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
芮城县| 鹤壁市| 常宁市| 汝南县| 通化县| 昌江| 禄劝| 漠河县| 若尔盖县| 巴塘县| 左贡县| 博罗县| 磴口县| 绩溪县| 双桥区| 黔西县| 秦皇岛市| 广水市| 彰化县| 增城市| 柯坪县| 宁德市| 柘城县| 于都县| 安国市| 大冶市| 安康市| 马公市| 平阳县| 花垣县| 福清市| 皮山县| 曲阜市| 民县| 洪湖市| 荆州市| 黑龙江省| 邮箱| 汝城县| 石屏县| 黄骅市|