單芯片解決方案,開啟全新體驗——W55MH32 高性能以太網(wǎng)單片機
W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機,它為用戶帶來前所未有的集成化體驗。這顆芯片將強大的組件集于一身,具體來說,一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨立的32KB以太網(wǎng)收發(fā)緩存,可供8個獨立硬件socket使用。如此配置,真正實現(xiàn)了All-in-One解決方案,為開發(fā)者提供極大便利。
在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN68和QFN100。
W55MH32Q采用QFN68封裝版本,尺寸為8x8mm,它擁有36個GPIO、3個ADC、12通道DMA、17個定時器、2個I2C、3個串口、2個SPI接口(其中1個帶I2S接口復(fù)用)、1個CAN以及1個USB2.0。在保持與同系列其他版本一致的核心性能基礎(chǔ)上,僅減少了部分GPIO以及SDIO接口,其他參數(shù)保持一致,性價比優(yōu)勢顯著,尤其適合網(wǎng)關(guān)模組等對空間布局要求較高的場景。緊湊的尺寸和精簡化外設(shè)配置,使其能夠在有限空間內(nèi)實現(xiàn)高效的網(wǎng)絡(luò)連接與數(shù)據(jù)交互,成為物聯(lián)網(wǎng)網(wǎng)關(guān)、邊緣計算節(jié)點等緊湊型設(shè)備的理想選擇。 同系列還有QFN100封裝的W55MH32L版本,該版本擁有更豐富的外設(shè)資源,適用于需要多接口擴(kuò)展的復(fù)雜工控場景,軟件使用方法一致。更多信息和資料請進(jìn)入http://www.w5500.com/網(wǎng)站或者私信獲取。
此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。
為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32Q這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實現(xiàn)調(diào)試、下載以及串口打印日志等功能。開發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開發(fā)者全面評估芯片性能。
若您想獲取芯片和開發(fā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價格等,歡迎訪問官方網(wǎng)頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。
第二十章 BKP
1 BKP 簡介
備份寄存器是 42 個 16 位的寄存器,可用來存儲 84 個字節(jié)的用戶應(yīng)用程序數(shù)據(jù)。他們處在備份域里,當(dāng) VDD 電源被切斷,他們?nèi)匀挥?VBAT 維持供電。當(dāng)系統(tǒng)在待機模式下被喚醒,或系統(tǒng)復(fù)位或電源復(fù)位時,他們也不會被復(fù)位。
此外,BKP 控制寄存器用來管理侵入檢測和 RTC 校準(zhǔn)功能。復(fù)位后,對備份寄存器和 RTC 的訪問被禁止,并且備份域被保護(hù)以防止可能存在的意外的寫操作。
執(zhí)行以下操作可以使能對備份寄存器和 RTC 的訪問。
?通過設(shè)置寄存器 RCC_APB1ENR 的 PWREN 和 BKPEN 位來打開電源和后備接口的時鐘。
?電源控制寄存器(PWR_CR)的 DBP 位來使能對后備寄存器和 RTC 的訪問。
2 BKP 特性
?數(shù)據(jù)后備寄存器。
?用來管理防侵入檢測并具有中斷功能的狀態(tài)/控制寄存器。
?用來存儲 RTC 校驗值的校驗寄存器。
?在 PC13 引腳(當(dāng)該引腳不用于侵入檢測時)上輸出 RTC 校準(zhǔn)時鐘,RTC 鬧鐘脈沖或者秒脈沖。
3 BKP 功能描述
3.1 侵入檢測
當(dāng) TAMPER 引腳上的信號從'0'變成'1'或者從'1'變成'0'(取決于備份控制寄存器 BKP_CR 的 TPAL 位),會產(chǎn)生一個侵入檢測事件。侵入檢測事件將所有數(shù)據(jù)備份寄存器內(nèi)容清除。然而為了避免丟失侵入事件,侵入檢測信號是邊沿檢測的信號與侵入檢測允許位的邏輯與,從而在侵入檢測引腳被允許前發(fā)生的侵入事件也可以被檢測到。
?當(dāng) TPAL=0 時:如果在啟動侵入檢測 TAMPER 引腳前(通過設(shè)置 TPE 位)該引腳已經(jīng)為高電平,一旦啟動侵入檢測功能,則會產(chǎn)生一個額外的侵入事件(盡管在 TPE 位置'1'后并沒有出現(xiàn)上升沿)。
?當(dāng) TPAL=1 時:如果在啟動侵入檢測引腳 TAMPER 前(通過設(shè)置 TPE 位)該引腳已經(jīng)為低電平,一旦啟動侵入檢測功能,則會產(chǎn)生一個額外的侵入事件(盡管在 TPE 位置'1'后并沒有出現(xiàn)下降沿)。
設(shè)置 BKP_CSR 寄存器的 TPIE 位為'1',當(dāng)檢測到侵入事件時就會產(chǎn)生一個中斷。在一個侵入事件被檢測到并被清除后,侵入檢測引腳 TAMPER 應(yīng)該被禁止。然后,在再次寫入備份數(shù)據(jù)寄存器前重新用 TPE 位啟動侵入檢測功能。這樣,可以阻止軟件在侵入檢測引腳上仍然有侵入事件時對備份數(shù)據(jù)寄存器進(jìn)行寫操作。這相當(dāng)于對侵入引腳 TAMPER 進(jìn)行電平檢測。
注:當(dāng) VDD 電源斷開時,侵入檢測功能仍然有效。為了避免不必要的復(fù)位數(shù)據(jù)備份寄存器,TAMPER 引腳應(yīng)該在片外連接到正確的電平。
3.2 RTC 校準(zhǔn)
為方便測量,RTC 時鐘可以經(jīng) 64 分頻輸出到侵入檢測引腳 TAMPER 上。通過設(shè)置 RTC 校驗寄存器(BKP_RTCCR)的 CCO 位來開啟這一功能。通過配置 CAL[6:0]位,此時鐘可以最多減慢 121ppm。
4 例程設(shè)計
4.1 BKP_BackupData
?UART 通信模塊UART_Configuration函數(shù):使能 USART1 和 GPIOA 時鐘,配置 GPIO 引腳用于 UART 通信,初始化 USART 參數(shù)(波特率、數(shù)據(jù)位、停止位等),并使能 USART1。
······重定向printf函數(shù):通過SER_PutChar和fputc函數(shù)將printf輸出重定向到 USART1,方便通過串口輸出調(diào)試信息。
?備份寄存器操作模塊WriteToBackupReg函數(shù):將一系列遞增的數(shù)據(jù)寫入備份寄存器。數(shù)據(jù)從FirstBackupData開始,每個寄存器的值遞增0x5A。
······CheckBackupReg函數(shù):檢查備份寄存器中的數(shù)據(jù)是否與預(yù)期一致。若所有寄存器的數(shù)據(jù)都正確,返回 0;若有不一致,返回第一個不一致的寄存器索引加 1。
?主函數(shù)模塊初始化系統(tǒng)時鐘、延時函數(shù)和 UART。
?使能備份寄存器和電源管理外設(shè)的時鐘,清除備份寄存器標(biāo)志。
?輸出系統(tǒng)時鐘信息和測試提示信息。
?檢查復(fù)位標(biāo)志RCC_FLAG_PORRST:若該標(biāo)志置位,表明是 POR/PDR 復(fù)位,調(diào)用WriteToBackupReg函數(shù)寫入數(shù)據(jù),并輸出寫入成功信息。
······ 若該標(biāo)志復(fù)位,調(diào)用CheckBackupReg函數(shù)檢查數(shù)據(jù),并根據(jù)檢查結(jié)果輸出相應(yīng)信息。
?進(jìn)入無限循環(huán),保持程序運行。
4.2 BKP_Tamper
該例程是一個基于 W55MH32 的備份寄存器(Backup Registers)測試程序,用于驗證備份寄存器的數(shù)據(jù)保存功能及篡改檢測(Tamper Detection)機制。以下是程序的主要工作流程總結(jié):
1. 初始化階段
(1)使能電源和備份域時鐘
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
開啟電源控制(PWR)和備份域(BKP)的時鐘,為后續(xù)操作做準(zhǔn)備。
(2)延時函數(shù)和串口初始化
delay_init(); UART_Configuration(115200);
?delay_init():初始化延時函數(shù)。
?UART_Configuration(115200):配置串口 1,波特率為 115200,用于調(diào)試信息輸出。
(3)獲取并打印時鐘信息
RCC_GetClocksFreq(&clocks); printf("SYSCLK: %3.1fMhz, HCLK: %3.1fMhz, PCLK1: %3.1fMhz, PCLK2: %3.1fMhz, ADCCLK: %3.1fMhzn", ...);
獲取并打印系統(tǒng)各總線時鐘頻率,便于調(diào)試。
2. 備份域配置
(1)使能備份區(qū)域訪問
PWR_BackupAccessCmd(ENABLE);
允許訪問備份寄存器和 RTC 寄存器。
(2)配置篡改檢測功能
BKP_TamperPinCmd(DISABLE); BKP_ITConfig(DISABLE); BKP_TamperPinLevelConfig(BKP_TamperPinLevel_Low); BKP_ClearFlag();
?禁用篡改引腳和中斷,設(shè)置引腳觸發(fā)電平為低。
?清除備份域標(biāo)志位。
(3)重新使能篡改檢測
BKP_ITConfig(ENABLE); BKP_TamperPinCmd(ENABLE);
使能篡改中斷和引腳檢測功能。
3. 寫入備份寄存器
(1)寫入數(shù)據(jù)
WriteToBackupReg(0xA53C);
向 42 個備份寄存器寫入遞增數(shù)據(jù)(起始值 0xA53C,每個寄存器遞增 0x5A)。
示例寫入值:0xA53C, 0xA596, 0xA5F0, ..., 0xA53C + 41×0x5A。
4. 驗證數(shù)據(jù)完整性
(1)檢查寫入結(jié)果
if (CheckBackupReg(0xA53C) == 0x00) printf("Backup Data Write Successn"); else printf("Backup Data Write Failn");
CheckBackupReg() 函數(shù)遍歷所有備份寄存器,驗證數(shù)據(jù)是否與期望值一致。
若所有寄存器正確,打印成功信息;否則打印失敗并返回錯誤寄存器索引。
5. 篡改檢測機制
(1)中斷配置
NVIC_Configuration();
配置篡改中斷(TAMPER_IRQn)的優(yōu)先級為搶占優(yōu)先級 0,子優(yōu)先級 0。
(2)中斷處理函數(shù)
void TAMPER_IRQHandler(void) { if (IsBackupRegReset() == 0) printf("Backup Tameper Attackn"); // 所有寄存器被復(fù)位,檢測到篡改 else printf("Backup Tameper No Attackn"); // 寄存器數(shù)據(jù)正常 // 清除標(biāo)志并重新使能篡改檢測 }
?當(dāng)篡改引腳(默認(rèn) PB12)檢測到低電平觸發(fā)時,觸發(fā)中斷。
?通過 IsBackupRegReset() 檢查所有備份寄存器是否被復(fù)位:若全為 0x0000,說明數(shù)據(jù)被清除,報告攻擊。
······否則,認(rèn)為數(shù)據(jù)正常。
5 下載驗證
5.1 BKP_BackupData
程序啟動
?串口輸出系統(tǒng)時鐘頻率信息,包含 SYSCLK、HCLK、PCLK1、PCLK2 和 ADCCLK 的頻率,幫助確認(rèn)系統(tǒng)時鐘配置是否正確。
?顯示 “Backup Data Test.”,表明開始進(jìn)行備份數(shù)據(jù)測試。
?輸出RCC->CSR寄存器的值。
上電復(fù)位或掉電復(fù)位情況
?若檢測到 POR/PDR 復(fù)位標(biāo)志(RCC_FLAG_PORRST)置位,串口輸出 “POR/PDR Reset Flag Set”。
?隨后調(diào)用WriteToBackupReg函數(shù)向備份寄存器寫入數(shù)據(jù),完成后串口輸出 “Backup Data Write Success”。
非上電復(fù)位或掉電復(fù)位情況
?若檢測到 POR/PDR 復(fù)位標(biāo)志復(fù)位,串口輸出 “POR/PDR Reset Flag Reset”。
?調(diào)用CheckBackupReg函數(shù)檢查備份寄存器中的數(shù)據(jù):若數(shù)據(jù)檢查成功,串口輸出 “Backup Data Check Success”。
······若數(shù)據(jù)檢查失敗,串口輸出 “Backup Data Check Fail”。
程序持續(xù)運行
完成上述操作后,程序進(jìn)入無限循環(huán),持續(xù)運行但不再有其他輸出,除非系統(tǒng)再次發(fā)生復(fù)位觸發(fā)相應(yīng)操作。
5.2 BKP_Tamper
WIZnet 是一家無晶圓廠半導(dǎo)體公司,成立于 1998 年。產(chǎn)品包括互聯(lián)網(wǎng)處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術(shù),基于獨特的專利全硬連線 TCP/IP。iMCU? 面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。
WIZnet 在全球擁有 70 多家分銷商,在香港、韓國、美國設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營銷。
香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。
審核編輯 黃宇
-
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124375 -
BKP
+關(guān)注
關(guān)注
0文章
5瀏覽量
2640
發(fā)布評論請先 登錄
明德?lián)P視頻分享點撥FPGA課程--第二十章??提高效率技巧
明德?lián)P視頻分享點撥FPGA課程--第二十一章 ?矩陣鍵盤工程
實時頻譜儀原理及操作指南
第二十講 加法器和數(shù)值比較器

第二十一講 組合邏輯電路中的競爭冒險

第二十二講 同步時序邏輯電路的分析方法

第二十五講 同步計數(shù)器

第二十七講 同步時序邏輯電路的設(shè)計

第二十八講 數(shù)模和模數(shù)轉(zhuǎn)換器

第二十九講 A/D轉(zhuǎn)換器

模擬電路網(wǎng)絡(luò)課件 第二十節(jié):場效應(yīng)管放大電路

模擬電路網(wǎng)絡(luò)課件 第二十六節(jié):差分式放大電路

上海貝嶺榮獲第二十六屆上市公司金信披獎
Aigtek高光回顧!第二十屆全國電介質(zhì)物理、材料與應(yīng)用學(xué)術(shù)會議!

評論