嵌入式軟件代碼保護(hù)系統(tǒng)的設(shè)計(jì)方案
2. 1 內(nèi)部結(jié)構(gòu)簡(jiǎn)介
代碼保護(hù)芯片隔斷了原有嵌入式系統(tǒng)處理器和軟件代碼存儲(chǔ)器之間的直接通路, 如圖2所示。該系統(tǒng)主要分成主從I2C 總線(xiàn)接口模塊、主從SPI總線(xiàn)接口模塊、Nand- Flash通信模塊以及核心控制模塊。
如果用戶(hù)選擇I2C 接口, 芯片將通過(guò)I2C總線(xiàn)和存儲(chǔ)器進(jìn)行通信, 如果用戶(hù)選擇SPI接口, 芯片將通過(guò)SPI總線(xiàn)和存儲(chǔ)器進(jìn)行通信, 否則芯片將通過(guò)NAND- F lash模塊和存儲(chǔ)器進(jìn)行通信。
如果用戶(hù)選擇加密模式, 那么處理器和存儲(chǔ)器之間的通路將被隔斷, 所有準(zhǔn)備寫(xiě)入存儲(chǔ)器的數(shù)據(jù)經(jīng)過(guò)TDES加密后才寫(xiě)入其中, 所有從存儲(chǔ)器讀入的數(shù)據(jù)經(jīng)過(guò)TDES解密后才送回至處理器執(zhí)行; 如果用戶(hù)選擇不加密模式, 那么處理器將直接和存儲(chǔ)器進(jìn)行通信, 代碼保護(hù)芯片將不啟動(dòng)任何加密/解密操作。這種設(shè)計(jì)方式, 使得芯片可以適用于更多的嵌入式系統(tǒng), 同時(shí)也給予用戶(hù)最大限度的靈活性。
圖2 代碼保護(hù)芯片架構(gòu)
2 .2 核心處理模塊
核心處理模塊是整個(gè)系統(tǒng)的核心部分, 如圖3所示: 主要完成指令譯碼、控制FIFO 的讀寫(xiě)、控制TDES加密/解密的運(yùn)行, 控制I2C、SPI、通用N and- Flash模塊和外界的數(shù)據(jù)接收和傳送以及對(duì)內(nèi)部EEPROM進(jìn)行操作。當(dāng)代碼保護(hù)芯片接收到處理器發(fā)出的讀數(shù)據(jù)命令后, 將從存儲(chǔ)器中預(yù)取64 字節(jié)的數(shù)據(jù), 然后進(jìn)行TDES解密。解密的同時(shí), 芯片再次從存儲(chǔ)器預(yù)取64字節(jié)的數(shù)據(jù), 寫(xiě)入內(nèi)部的另外的64字節(jié)FIFO 中: 乒乓FIFO 架構(gòu)的設(shè)計(jì)以及采用流水線(xiàn)技術(shù)的TDES加密/解密, 大大提高了代碼保護(hù)芯片的效率。
圖3 核心處理模塊框圖
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論