游戲機(jī)專用STM32F系列芯片解密與IC破解
深圳耐斯迪反向開發(fā)技術(shù)中心,近日應(yīng)客戶要求對(duì)某款游戲機(jī)進(jìn)行反向開發(fā)破解服務(wù),此款游戲機(jī)電路板有STM32系列加密芯片,經(jīng)一段時(shí)間的技術(shù)攻關(guān),現(xiàn)已成功破解。歡迎來電咨詢。
現(xiàn)解密時(shí)間全面提速,(51系列)AT89CXX、W78EXX、P87CXX、SM89XX...EMC全系列、HT全系列、MDT全系列...解密時(shí)間加急1天,(承諾:否則3倍解密款退還),正常時(shí)間為3-5天,(星期六、日除外)
誠證各省解密代理,價(jià)格優(yōu)惠,數(shù)量有限,可提供解密報(bào)價(jià)單。已在深圳(華強(qiáng),賽格)、東莞、廣州、北京、上海、南京、江浙...等都設(shè)有代理機(jī)構(gòu),歡迎光臨。
工作頻率為36MHz,片上集成了高速存儲(chǔ)器(Flash最多可達(dá)512kB,SRAM最多可達(dá)48kB),和通過APB總線連接的豐富和增強(qiáng)的外設(shè)和I/O。所有的設(shè)備都提供標(biāo)準(zhǔn)的通信接口(最多可有2個(gè)IIC接口,3個(gè)SPI接口和5個(gè)USART接口)。片上還帶有一個(gè)12位的ADC,一個(gè)12位的DAC和9個(gè)16位的計(jì)時(shí)器。
特點(diǎn):
內(nèi)核:ARM32位Cortex-M3 CPU,最高工作頻率36MHz,1.25DMIPS/MHz。單周期乘法和硬件除法。
存儲(chǔ)器:片上集成32-512KB的Flash存儲(chǔ)器。6-48KB的SRAM存儲(chǔ)器??勺冹o態(tài)存儲(chǔ)管理器,帶4個(gè)片選,可支持Flash,SRAM,PSRAM,NOR和NAND模式。
時(shí)鐘、復(fù)位和電源管理:2.0-3.6V的電源供電和I/O接口的驅(qū)動(dòng)電壓。POR、PDR和課編程的電壓探測(cè)器(PVD)。4-16MHz的晶振。內(nèi)嵌出廠前調(diào)校的8MHz RC振蕩電路。內(nèi)部40 kHz的RC振蕩電路。用于CPU時(shí)鐘的PLL。帶校準(zhǔn)用于RTC的32kHz的晶振。
低功耗:3種低功耗模式:休眠,停止,待機(jī)模式。為RTC和備份寄存器供電的VBAT。
調(diào)試模式:串行調(diào)試(SWD)和JTAG接口。
DMA:最多12通道DMA控制器。支持的外設(shè):定時(shí)器,ADC,DAC,SPI,IIC和USART。
1個(gè)12位的us級(jí)的A/D轉(zhuǎn)換器(16通道):A/D測(cè)量范圍:0-3.6 V。片上集成一個(gè)溫度傳感器。
2通道12位D/A轉(zhuǎn)換器:STM32F101xC,STM32F101xD,STM32F101xE獨(dú)有。
最多高達(dá)112個(gè)的快速I/O端口:根據(jù)型號(hào)的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16個(gè)外部中斷向量。除了模擬輸入,所有的都可以接受5V以內(nèi)的輸入。
最多多達(dá)9個(gè)定時(shí)器:4個(gè)16位定時(shí)器,每個(gè)定時(shí)器有4個(gè)IC/OC/PWM或者脈沖計(jì)數(shù)器。2個(gè)看門狗定時(shí)器(獨(dú)立看門狗和窗口看門狗)。Systick定時(shí)器:24位倒計(jì)數(shù)器。2個(gè)16位基本定時(shí)器(用于驅(qū)動(dòng)DAC,STM32F101xC,STM32F101xD,STM32F101xE獨(dú)有)。
最多多達(dá)10個(gè)通信接口:2個(gè)IIC接口(SMBus/PMBus)。5個(gè)USART接口(ISO7816接口,LIN,IrDA兼容,調(diào)試控制)。3個(gè)SPI接口(18 Mbit/s)。
ECOPACK封裝:STM32F101xx系列微控制器采用ECOPACK封裝形式。
總體結(jié)構(gòu):
內(nèi)部總線和兩條APB總線將片上系統(tǒng)和外設(shè)資源緊密的連接起來,其中內(nèi)部總線是主系統(tǒng)總線,連接了CPU,存儲(chǔ)器和系統(tǒng)時(shí)鐘等。APB1總線連接高速外設(shè),APB2總線連接系統(tǒng)通用外設(shè)和中斷控制。I/O端口包括PA、PB,PC,PD,PE,PF和PG共7個(gè)16位的端口,其它的外設(shè)接口引腳都與I/O端口的引腳功能復(fù)用。
系統(tǒng)功能:
1、集成嵌入式Flash和SRAM存儲(chǔ)器的ARM Cortex-M3內(nèi)核。與8/16位設(shè)備相比,ARM Cortex-M3 32位RISC處理器提供了更高的代碼效率。STM32F101xx微控制器帶有一個(gè)嵌入式的ARM核,所以可以兼容所有的ARM工具和軟件。
2、嵌入式Flash存儲(chǔ)器和RAM存儲(chǔ)器:內(nèi)置多達(dá)512KB的嵌入式Flash,可用于存儲(chǔ)程序和數(shù)據(jù)。多達(dá)48KB的嵌入式SRAM可以以CPU的時(shí)鐘速度進(jìn)行讀寫(不待等待狀態(tài))。
3、可變靜態(tài)存儲(chǔ)器(FSMC):FSMC嵌入在STM32F101xC,STM32F101xD,STM32F101xE中,帶有4個(gè)片選,支持四種模式:Flash,RAM,PSRAM,NOR和NAND。3個(gè)FSMC中斷線經(jīng)過OR后連接到NVIC。沒有讀/寫FIFO,除PCCARD之外,代碼都是從外部存儲(chǔ)器執(zhí)行,不支持Boot,目標(biāo)頻率等于SYSCLK/2,所以當(dāng)系統(tǒng)時(shí)鐘是36MHz時(shí),外部訪問按照18MHz進(jìn)行。
4、嵌套矢量中斷控制器(NVIC):可以處理43個(gè)可屏蔽中斷通道(不包括Cortex-M3的16根中斷線),提供16個(gè)中斷優(yōu)先級(jí)。緊密耦合的NVIC實(shí)現(xiàn)了更低的中斷處理延遲,直接向內(nèi)核傳遞中斷入口向量表地址,緊密耦合的NVIC內(nèi)核接口,允許中斷提前處理,對(duì)后到的更高優(yōu)先級(jí)的中斷進(jìn)行處理,支持尾鏈,自動(dòng)保存處理器狀態(tài),中斷入口在中斷退出時(shí)自動(dòng)恢復(fù),不需要指令干預(yù)。
5、外部中斷/事件控制器(EXTI):外部中斷/事件控制器由用于19條產(chǎn)生中斷/事件請(qǐng)求的邊沿探測(cè)器線組成。每條線可以被單獨(dú)配置用于選擇觸發(fā)事件(上升沿,下降沿,或者兩者都可以),也可以被單獨(dú)屏蔽。有一個(gè)掛起寄存器來維護(hù)中斷請(qǐng)求的狀態(tài)。當(dāng)外部線上出現(xiàn)長度超過內(nèi)部APB2時(shí)鐘周期的脈沖時(shí),EXTI能夠探測(cè)到。多達(dá)112個(gè)GPIO連接到16個(gè)外部中斷線。
6、時(shí)鐘和啟動(dòng):在啟動(dòng)的時(shí)候還是要進(jìn)行系統(tǒng)時(shí)鐘選擇,但復(fù)位的時(shí)候內(nèi)部8MHz的晶振被選用作CPU時(shí)鐘??梢赃x擇一個(gè)外部的4-16MHz的時(shí)鐘,并且會(huì)被監(jiān)視來判定是否成功。在這期間,控制器被禁止并且軟件中斷管理也隨后被禁止。同時(shí),如果有需要(例如碰到一個(gè)間接使用的晶振失?。?,PLL時(shí)鐘的中斷管理完全可用。多個(gè)預(yù)比較器可以用于配置AHB頻率,包括高速APB(PB2)和低速APB(APB1),AHB和APB最高的頻率為36MHz。
7、Boot模式:在啟動(dòng)的時(shí)候,Boot引腳被用來在3種Boot選項(xiàng)種選擇一種:從用戶Flash導(dǎo)入,從系統(tǒng)存儲(chǔ)器導(dǎo)入,從SRAM導(dǎo)入。Boot導(dǎo)入程序位于系統(tǒng)存儲(chǔ)器,用于通過USART1重新對(duì)Flash存儲(chǔ)器編程。
8、電源供電方案:VDD ,電壓范圍為2.0V-3.6V,外部電源通過VDD引腳提供,用于I/O和內(nèi)部調(diào)壓器。VSSA和VDDA,電壓范圍為2.0-3.6V,外部模擬電壓輸入,用于ADC,復(fù)位模塊,RC和PLL,在VDD范圍之內(nèi)(ADC被限制在2.4V),VSSA和VDDA必須相應(yīng)連接到VSS和VDD。VBAT,電壓范圍為1.8-3.6V,當(dāng)VDD無效時(shí)為RTC,外部32KHz晶振和備份寄存器供電(通過電源切換實(shí)現(xiàn))。
9、電源管理:設(shè)備有一個(gè)完整的上電復(fù)位(POR)和掉電復(fù)位(PDR)電路。這條電路一直有效,用于確保從2V啟動(dòng)或者掉到2V的時(shí)候進(jìn)行一些必要的操作。當(dāng)VDD低于一個(gè)特定的下限VPOR/PDR時(shí),不需要外部復(fù)位電路,設(shè)備也可以保持在復(fù)位模式。設(shè)備特有一個(gè)嵌入的可編程電壓探測(cè)器(PVD),PVD用于檢測(cè)VDD,并且和VPVD限值比較,當(dāng)VDD低于VPVD或者VDD大于VPVD時(shí)會(huì)產(chǎn)生一個(gè)中斷。中斷服務(wù)程序可以產(chǎn)生一個(gè)警告信息或者將MCU置為一個(gè)安全狀態(tài)。PVD由軟件使能。
10、電壓調(diào)節(jié):調(diào)壓器有3種運(yùn)行模式:主(MR),低功耗(LPR)和掉電。MR用在傳統(tǒng)意義上的調(diào)節(jié)模式(運(yùn)行模式),LPR用在停止模式,掉電用在待機(jī)模式:調(diào)壓器輸出為高阻,核心電路掉電,包括零消耗(寄存器和SRAM的內(nèi)容不會(huì)丟失)。
11、低功耗模式:STM32F101xx支持3種低功耗模式,從而在低功耗,短啟動(dòng)時(shí)間和可用喚醒源之間達(dá)到一個(gè)最好的平衡點(diǎn)。休眠模式:只有CPU停止工作,所有外設(shè)繼續(xù)運(yùn)行,在中斷/事件發(fā)生時(shí)喚醒CPU;停止模式:允許以最小的功耗來保持SRAM和寄存器的內(nèi)容。1.8V區(qū)域的時(shí)鐘都停止,PLL,HSI和HSE RC振蕩器被禁能,調(diào)壓器也被置為正?;蛘叩凸哪J?。設(shè)備可以通過外部中斷線從停止模式喚醒。外部中斷源可以使16個(gè)外部中斷線之一,PVD輸出或者TRC警告。待機(jī)模式:追求最少的功耗,內(nèi)部調(diào)壓器被關(guān)閉,這樣1.8V區(qū)域斷電。PLL,HSI和HSE RC振蕩器也被關(guān)閉。在進(jìn)入待機(jī)模式之后,除了備份寄存器和待機(jī)電路,SRAM和寄存器的內(nèi)容也會(huì)丟失。當(dāng)外部復(fù)位(NRST引腳),IWDG復(fù)位,WKUP引腳出現(xiàn)上升沿或者TRC警告發(fā)生時(shí),設(shè)備退出待機(jī)模式。進(jìn)入停止模式或者待機(jī)模式時(shí),TRC,IWDG和相關(guān)的時(shí)鐘源不會(huì)停止。
片上外設(shè):
1、DMA:12通道的通用DMA(DMA1有7個(gè)通道,DMA2由5個(gè)通道)可用于存儲(chǔ)器到存儲(chǔ)器,外設(shè)到存儲(chǔ)器和存儲(chǔ)器到外設(shè)的傳輸。DMA控制器支持循環(huán)緩沖管理,從而避免了在到達(dá)緩沖區(qū)末端的時(shí)候產(chǎn)生中斷。每個(gè)通道都連接到專用的硬件DMA請(qǐng)求,同時(shí)支持軟件觸發(fā)。由軟件進(jìn)行配置,源到目標(biāo)的傳輸大小是獨(dú)立的。DMA可以和一些主要外設(shè)一起使用,包括SPI,IIC,USART,通用定時(shí)器TIMx,基本定時(shí)器,DAC和ADC。
2、RTC(實(shí)時(shí)時(shí)鐘)和備份寄存器:RTC和備份寄存器通過一個(gè)開關(guān)來控制供電,當(dāng)VDD有效時(shí),通過VDD供電,否則通過VBAT供電。備份寄存器(10個(gè)16位寄存器)可以用來在VDD無效時(shí)保存數(shù)據(jù)。RTC提供了一系列持續(xù)運(yùn)行的計(jì)數(shù)器,可以結(jié)合軟件用作日歷功能,并且能夠提供警告中斷和周期性中斷。由32.768kHz外部晶振,內(nèi)部低功耗RC振蕩器或者高速外部時(shí)鐘經(jīng)過128比例分割來提供時(shí)鐘。內(nèi)部低功耗RC通常有40kHz頻率。RTC可以通過一個(gè)外部512Hz輸出來校準(zhǔn)從而來補(bǔ)償外部自然晶振的偏差。RTC特有一個(gè)用于長期測(cè)量用的32位可編程計(jì)數(shù)器,結(jié)合比較計(jì)數(shù)器可以用于產(chǎn)生一個(gè)警告。一個(gè)20位的預(yù)比較器用作時(shí)基時(shí)鐘,默認(rèn)配制成從一個(gè)32.768kHz的時(shí)鐘產(chǎn)生一個(gè)1s的時(shí)基。
3、獨(dú)立看門狗:獨(dú)立看門狗基于12位的倒計(jì)數(shù)器和8位的預(yù)比較器。由一個(gè)獨(dú)立的40kHz的內(nèi)部RC提供時(shí)鐘。由于和主時(shí)鐘獨(dú)立工作,所以它可以工作在停止和待機(jī)模式??梢杂米髟谙到y(tǒng)出問題時(shí)來復(fù)位設(shè)備,也可以作為一個(gè)空轉(zhuǎn)的定時(shí)器來用于應(yīng)用程序的定時(shí)管理。硬件或者軟件都可以通過選項(xiàng)字節(jié)來配置,計(jì)數(shù)器在調(diào)時(shí)模式下可以凍結(jié)。
4、窗口看門狗:窗口看門狗基于一個(gè)在空轉(zhuǎn)時(shí)可設(shè)置的7位的倒計(jì)數(shù)器??梢杂米髟谙到y(tǒng)出問題時(shí)來復(fù)位設(shè)備。由主時(shí)鐘提供時(shí)鐘源,能夠?qū)崿F(xiàn)提早警告中斷并且計(jì)數(shù)器在調(diào)時(shí)模式下可以凍結(jié)。
5、SysTick定時(shí)器:該定時(shí)器是OS專用,但也可以用作標(biāo)準(zhǔn)的倒計(jì)數(shù)器。特性:一個(gè)24位的倒計(jì)數(shù)器;自動(dòng)重載能力;當(dāng)計(jì)數(shù)器為0時(shí)產(chǎn)生的系統(tǒng)中斷是可屏蔽的;可編程的時(shí)鐘源。
6、通用定時(shí)器(TIMx):STM32F101xx設(shè)備最多自帶4個(gè)同步標(biāo)準(zhǔn)定時(shí)器。這些定時(shí)器基于一個(gè)16位自動(dòng)重載順序/倒序計(jì)數(shù)器和一個(gè)16位的預(yù)比較器。每個(gè)定時(shí)器特有分別用于輸入捕獲,輸出比較,PWM或者單脈沖模式輸出的4個(gè)獨(dú)立通道。在最大的封裝下可以提供多達(dá)12輸入捕獲/輸出比較/PWM。通過同步連接特性或事件鏈,定時(shí)器可以一起工作。定時(shí)器在調(diào)時(shí)模式下可以凍結(jié)。任何一個(gè)標(biāo)準(zhǔn)的定時(shí)器都可以用于產(chǎn)生PWM輸出。每一個(gè)定時(shí)器可以產(chǎn)生獨(dú)立的DMA請(qǐng)求。
7、基本定時(shí)器TIM6,TIM7:這些定時(shí)器用于產(chǎn)生DAC觸發(fā),以可以用作通用的16位定時(shí)器。
8、IIC總線:最多可有兩個(gè)可以工作在多主機(jī)模式和從主機(jī)模式下的IIC總線接口,支持標(biāo)準(zhǔn)和快速模式。都支持雙從機(jī)尋址(只能時(shí)7位)和7/10位主機(jī)模式下尋址。內(nèi)置硬件CRC產(chǎn)生和驗(yàn)證模塊都支持DMA,支持SMBus2.0/PM Bus。
9、通用同步/異步收發(fā)器(USART):USART接口最多可以2.25Mb/s的速度通信。對(duì)CTS和RTS信號(hào)使用硬件管理,支持IrDA SIR ENDEC,兼容ISO7816并且具有LIN主/從性能。USART接口支持DMA。
10、串行外設(shè)接口(SPI):設(shè)備最多可有3個(gè)SPI接口,最多可以18Mb/s的速度在全雙工和單工的主機(jī)和從機(jī)模式下通信。3位預(yù)比較器提供了8種主機(jī)模式頻率,幀長可以配置為8位或者16位。硬件CRC產(chǎn)生/驗(yàn)證模塊支持基本的SD card/MMC模式。SPI接口都支持DMA。
11、GPIO(通用輸入/輸出):每一個(gè)GPIO引腳都可以由軟件配置成輸出(上拉或者開漏),輸入(帶上拉或下拉或者不帶上拉或下拉)或者外設(shè)備用功能。大部分的GPIO引腳和數(shù)字或者模擬備用功能共享。所有的GPIO都支持高電流。I/O備用功能配置可以鎖定,必須通過一定的序列才可以開鎖,從而避免對(duì)I/O寄存器的虛假寫操作。
12、ADC(模數(shù)轉(zhuǎn)換器):12位的模數(shù)轉(zhuǎn)換器有多達(dá)16個(gè)外部通道,可以以單次或掃描模式進(jìn)行轉(zhuǎn)換。在掃描模式下,自動(dòng)轉(zhuǎn)換在一組選定的模擬輸入上進(jìn)行。ADC支持DMA。如果轉(zhuǎn)換電壓在設(shè)置的限制之外會(huì)產(chǎn)生一個(gè)中斷,特有的模擬看門狗可以對(duì)每個(gè)通道的轉(zhuǎn)換電壓進(jìn)行精準(zhǔn)監(jiān)控。
13、DAC(數(shù)模轉(zhuǎn)換器):DAC帶有兩個(gè)可緩沖通道,可以將兩路數(shù)字信號(hào)轉(zhuǎn)化為兩路模擬信號(hào)輸出。具有以下的特性:2個(gè)轉(zhuǎn)換器,每個(gè)輸出通道一個(gè);8位或者12位的單一輸出;12位模式下支持左對(duì)齊或者右對(duì)齊;支持同步更新;可產(chǎn)生噪聲波;可產(chǎn)生三角波;雙DAC通道可以獨(dú)立轉(zhuǎn)換或同時(shí)轉(zhuǎn)換;每個(gè)通道都支持DMA;外部觸發(fā)轉(zhuǎn)換;輸入?yún)⒖茧妷簽閂REF+。STM32F101xC,STM32F101xD,STM32F101xE使用了7個(gè)DAC觸發(fā)輸入。DAC通道通過定時(shí)器更新輸出來觸發(fā),DAC每個(gè)通道可以連接到不同的DMA通道。每個(gè)通道可以獨(dú)立被DMA控制器處理。
14、溫度傳感器:溫度傳感器用于根據(jù)溫度的變化來產(chǎn)生一個(gè)線性電壓。轉(zhuǎn)換的范圍在2-3.6V。溫度傳感器部連接到ADC_IN16輸入通道,從而把傳感器輸出電壓轉(zhuǎn)換為數(shù)字值。
15、串行線JTAG調(diào)試端口(SWJ-DP):芯片嵌入了ARM SWJ-DP接口,并且組合了JTAG和串行線調(diào)試端口。JTAG TMS和TCK引腳分別和SWDIO和SWCLK復(fù)用。如果要在JTAG-DP和SW-DP之間切換,只需要在TMS輸入一個(gè)特定的序列。