本帖最后由 陽(yáng)仔666 于 2020-12-18 14:00 編輯
算法移植類加密芯片主要功能是芯片內(nèi)部嵌入LKCOS智能操作系統(tǒng),用戶可以把MCU中程序一部分關(guān)鍵算法函數(shù)移植到芯片中運(yùn)行。用戶采用標(biāo)準(zhǔn)C語(yǔ)言編寫代碼,通過(guò)KEIL C編譯器,編譯并下載到智能芯片中。在實(shí)際運(yùn)行中,通過(guò)調(diào)用函數(shù)方式運(yùn)行智能卡芯片內(nèi)的程序段,獲得運(yùn)行結(jié)果,并以此結(jié)果作為用戶程序進(jìn)一步運(yùn)行的輸入數(shù)據(jù)。因此芯片成了產(chǎn)品的一部分,而算法在芯片內(nèi)部運(yùn)算,盜版商無(wú)法破解,從根本上杜絕了程序被破解的可能。 算法移植加密芯片的調(diào)試包含2個(gè)部分:通訊調(diào)試和算法調(diào)試。本次先針對(duì)通訊調(diào)試環(huán)節(jié)常見問(wèn)題進(jìn)行解析。 通訊調(diào)試常見問(wèn)題: 1、通訊格式設(shè)置 一幀數(shù)據(jù)格式為:1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)偶校驗(yàn)位(不可省略),2個(gè)停止位,共12位。 2、通訊速率 加密芯片的通訊速率=外部時(shí)鐘頻率/分頻系數(shù)(默認(rèn)分頻系數(shù)是372)。若更改外部時(shí)鐘頻率,則通訊速率改變。我司demo電路使用3.579Mhz外部時(shí)鐘,故默認(rèn)通訊速率=3.579M/372,所以采用9600bps通訊。 3、復(fù)位問(wèn)題 加密芯片上電后至少?gòu)?fù)位一次才能發(fā)指令,通訊異常后可先進(jìn)行復(fù)位操作,然后重新進(jìn)行指令交互。 4、時(shí)鐘問(wèn)題 必須提供外部時(shí)鐘。若通訊不正常,應(yīng)先檢查時(shí)鐘VPP、頻率是否正常,保證復(fù)位和進(jìn)行指令交互時(shí),CLK處于連續(xù)正常供給狀態(tài)。很多客戶反饋的通訊失敗均是由時(shí)鐘不起振、起振晚、時(shí)鐘供給不連續(xù)等問(wèn)題造成?赏ㄟ^(guò)邏輯分析儀和示波器輔助觀察。 5、從時(shí)序上判斷芯片的問(wèn)題根源 “之前通訊是正常的,現(xiàn)在不行了,怎么回事?” “我發(fā)了指令,加密芯片就是不回復(fù),是不是芯片有問(wèn)題?” “我接收到的數(shù)據(jù)錯(cuò)誤,是不是加密芯片運(yùn)行算法出錯(cuò)了?” 上述引號(hào)中的內(nèi)容均為用戶反饋的真實(shí)信息。這些問(wèn)題描述均為表象,若初步分析后仍無(wú)法定位,需要從底層時(shí)序查起。使用邏輯分析儀或示波器抓取MCU與加密芯片通訊的時(shí)序,與MCU收發(fā)的數(shù)據(jù)做比對(duì),以此判斷是加密芯片還是MCU的通訊異常引起的問(wèn)題。
|