本發明為打印領域,具體涉及一種防破解芯片、系統及其使用方法。
背景技術:
隨著辦公自動化的普及,打印設備已經是辦公活動中不可缺少的設備,在打印過程中,需要打印機主機和如墨盒之類的耗材。目前耗材普遍使用了芯片作為耗材的信息和使用量的介質,芯片上往往存儲著芯片運行所需要的軟件數據及其配置數據。
在芯片的使用過程中,若有不法廠商嘗試對芯片進行破解,例如采用fib的方法對芯片進行線路修改和破解,就能得到芯片上存儲的程序數據和配置數據,從而破解軟件,仿制芯片,威脅芯片信息安全,同時也給芯片廠商帶來了損失。
技術實現要素:
本發明的目的是提供一種防破解芯片、系統及其使用方法,芯片的軟件數據和配置數據存儲在單獨的存儲單元一中,在進入bootload程序時會預先清除存儲單元一中的數據,避免破解過程中的信息泄露。
本發明的上述技術目的是通過以下技術方案得以實現的:一種防破解芯片,包含mcu內核單元和接口通信單元,
還包含存儲單元;
所述存儲單元包含非易失性存儲單元和易失性存儲單元;
所述非易失性存儲單元包含存儲單元一和存儲單元二,所述存儲單元一存儲有芯片的軟件數據和配置數據,所述存儲單元二存儲有芯片的bootload程序;
當芯片進入所述存儲單元二中的bootload程序之后,會自動清除所述存儲單元一中的數據。
作為本發明的優選,所述存儲單元一使用flash存儲器,所述存儲單元二使用rom存儲器。
作為本發明的優選,所述存儲單元一中存儲的數據可被加入程序標記和bootload程序運行標記。
作為本發明的優選,當所述存儲單元一中的存儲數據有bootload程序運行標記時,芯片進入bootload程序。
作為本發明的優選,當所述存儲單元一中的存儲數據沒有程序標記時,芯片進入bootload程序。
作為本發明的優選,當所述存儲單元一中的存儲數據無bootload程序運行標記且具有程序標記時,程序跳入到所述存儲單元一中存儲的程序中運行。
一種防破解墨盒,墨盒體上安裝有所述的一種防破解芯片。
一種防破解系統,包含寫讀碼設備和所述的一種防破解芯片。
作為本發明的優選,所述寫讀碼設備和所述防破解芯片之間采用i2c協議進行通信連接。
作為本發明的優選,在芯片進入bootload程序后,所述寫讀碼設備會對該種防破解芯片發送清除命令,所述存儲單元一中的數據會被清除。
作為本發明的優選,在所述寫讀碼設備對該種防破解芯片發送清除命令后,該種防破解芯片會對清除是否成功進行校驗,并將校驗結果發送給所述寫讀碼設備。
作為本發明的優選,當所述校驗結果為清除成功,所述寫讀碼設備會向所述存儲單元一發送燒錄命令進行寫碼;若所述校驗結果為清除不成功,所述寫讀碼設備會重發清除命令。
一種防破解系統的使用方法,包含如下步驟:
步驟一、上電步驟;
步驟二、bootload程序調用步驟;
所述mcu內核單元進入所述存儲單元二中,讀取bootload程序;
步驟三、存儲單元一認證步驟;
bootload程序讀取所述存儲單元一中的數據,檢測是否有程序標記,檢測是否有bootload程序運行標記;
步驟四、進入bootload程序步驟;
當步驟三中的檢測結果是沒有檢測到程序標記,或,也存在bootload程序運行標記,則進入bootload程序;
步驟五、清除步驟;
所述寫讀碼設備發送清除命令,對所述存儲單元一中的數據進行清除;
步驟六、寫碼步驟;
所述寫讀碼設備對芯片進行寫碼編程。
作為本發明的優選,在步驟五,清除步驟之后,還存在清除校驗步驟,在該步驟中,程序會對所述存儲單元一中的數據是否清除成功進行校驗。
作為本發明的優選,清除校驗步驟中,若清除不成功,則會重啟清除步驟,直到清除成功,才會進入步驟六,寫碼步驟。
作為本發明的優選,在進入步驟五,清除步驟之前,進行系統初始化步驟,在該步驟中,芯片硬件初始化、芯片內部rom和sram進行檢測。
綜上所述,本發明具有如下有益效果:
1、在芯片中,bootload程序和芯片內部軟件數據分別獨立存儲,獨立操作。
2、芯片上電后,調用bootload程序,對存儲單元一中的數據進行讀取,從而判斷是否進入bootload程序。
3、進入bootload程序之后,會對存儲單元一中的數據自動在第一時間進行清除,從而保證即使被不法廠商破解,也不會泄露芯片中的重要數據,大大提升芯片安全性。
附圖說明
圖1是實施例1的硬件連接示意圖;
圖2是實施例1中bootload程序流程圖;
圖3是實施例1中寫碼程序流程圖。
具體實施方式
以下結合附圖對本發明作進一步詳細說明。
本具體實施例僅僅是對本發明的解釋,其并不是對本發明的限制,本領域技術人員在閱讀完本說明書后可以根據需要對本實施例做出沒有創造性貢獻的修改,但只要在本發明的權利要求范圍內都受到專利法的保護。
實施例1,如圖1所示:一種防破解芯片,包含mcu內核單元和接口通信單元,還包含存儲單元;存儲單元可包含非易失性存儲單元和易失性存儲單元;非易失性存儲單元包含存儲單元一和存儲單元二,存儲單元一存儲有芯片的軟件數據和配置數據,存儲單元二存儲有芯片的bootload程序;當芯片進入存儲單元二中的bootload程序之后,會自動清除存儲單元一中的數據。
其中,芯片中的接口通信單元與寫讀碼設備發生數據交互。非易失性存儲單元被分成了兩部分,分別是存儲單元一和存儲單元二。兩者存儲的數據不同,其中,存儲單元一可以采用flash,flash中存儲有芯片的軟件數據和配置數據,這些數據是芯片的關鍵數據,安全性和重要性程度都較高,而存儲單元二可以采用rom,其中存儲著的是芯片的bootload程序。
易失性存儲單元為sram,主要用于存儲臨時性的數據,如接口通信單元通信的數據或芯片程序運行中產生的數據。
mcu內核單元為通用的mcu內核,如msp430、cortex-m0等,用于芯片內部控制和運算。
芯片在寫碼前,如圖1所示,芯片和寫讀碼設備連接,芯片和寫讀碼設備之間可采用i2c協議通信,芯片一上電,首先執行的就是存儲在rom中,即存儲單元二中的bootload程序。這里即步驟一的上電步驟和步驟二的bootload程序調用步驟。
隨后進入步驟三,存儲單元一認證步驟。bootload程序的流程順序,如圖2所示,首先要看寫讀碼設備,是否向芯片發送bootload程序的命令,一般的,這個命令可以設置在芯片上電后的1ms內向芯片發送強制進入bootload程序命令,如果發送,則芯片內部的bootload程序寄存器就會產生bootload程序運行標記。芯片上電的1ms后,bootload程序會檢測bootload程序寄存器當中是否有bootload程序運行標記,若有,則進入bootload程序。
若寫讀碼設備沒有在指定時間發送強制進入bootload程序的命令,則就不會產生bootload程序運行標記,此時,就需要讀取存儲單元一中的數據,即讀取flash數據,并檢測flash數據中是否有芯片軟件標記,若有,則跳至flash中執行,若無,則同樣進入bootload程序。
綜上所述,在步驟三,即存儲單元一認證步驟中,會對存儲單元一中的數據標記進行校驗,會產生三種校驗情況。情況一,存儲單元一中存在bootload程序運行標記,則進入bootload程序。情況二,存儲單元一中沒有bootload程序運行標記,有程序標記,則跳至flash中執行。情況三,存儲單元一中沒有bootload程序運行標記,亦無程序標記,則進入bootload程序。
若是進入bootload程序后,本技術方案為了安全方面的設計,首先是進行系統初始化步驟,即芯片硬件初始化、芯片內部rom和sram進行檢測。若芯片硬件初始化成功,芯片內部rom和sram亦無出錯信息,則bootload程序等待寫讀碼設備發送指令。等收到flash的清除命令后,bootload程序就會啟動芯片內部的flash清除功能。flash清除完成后,bootload程序會讀取flash數據并校驗flash清除是否成功,若還能讀取到數據,即標示沒有清除成功,則寫讀碼設備會進行flash清除命令的重發。
以上是步驟五的清除步驟和清除校驗步驟,到了本步驟可以看出,在進入bootload程序后,首先進行的步驟就是對flash進行擦除,從而第一時間清空flash中的重要數據,則寫讀碼設備就無法讀取flash在擦除前的數據。即使不法廠商通過fib等方式對芯片進行破解,也無法讀取關鍵數據,都第一時間被清除,這極大的提高了芯片的安全性。
隨后,清除步驟和清除校驗步驟之后,就進入步驟六的寫碼步驟,如圖3所示。芯片收到寫讀碼設備發送的flash燒錄命令后,會啟動芯片內部flash編程功能對flash進行寫碼編程。寫碼編程完成后會讀取flash數據并校驗flash寫碼編程是否成功,校驗完成后bootload程序會將校驗結果發送給寫讀碼設備。如果寫碼編程成功,寫讀碼設備會提示芯片寫碼成功;如果寫碼編程失敗,寫讀碼設備會提示寫碼失敗。