STM32F103VB的SD卡在應(yīng)用編程設(shè)計
摘要:基于在應(yīng)用編程的基本原理,本文提出一種使用SD卡并通過SPI接口進行嵌入式系統(tǒng)固件更新的方法。以STM32F103VB作為嵌入式系統(tǒng)核心處理器,給出了固件更新的實現(xiàn)過程和驗證結(jié)果,可廣泛應(yīng)用于基于閃存的嵌入式系統(tǒng)的固件升級。
關(guān)鍵詞:嵌入式系統(tǒng);在應(yīng)用編程;SD卡;STM32F103VB
引言
對于大部分基于閃存的嵌入式系統(tǒng)來說,一項重要的需求就是當這些系統(tǒng)安裝在終端產(chǎn)品上后,具有對固件更新的能力,這個能力稱為在應(yīng)用編程(In-Application Programming,IAP)。在應(yīng)用編程方式允許用戶在程序運行過程中對程序存儲器的指定區(qū)域進行重新燒寫,因此廣泛應(yīng)用于工業(yè)生產(chǎn)設(shè)備、智能儀器儀表、消費電子類產(chǎn)品的固件更新、軟件維護和功能擴展上。
目前使用的在應(yīng)用編程方案大多是通過嵌入式系統(tǒng)的串口或者網(wǎng)絡(luò)接口并與PC機相連,再通過上位機軟件或者網(wǎng)絡(luò)完成對系統(tǒng)固件的更新,對硬件環(huán)境要求較高。考慮到目前工業(yè)設(shè)備、智能儀器和消費電子類產(chǎn)品多使用SD卡作為數(shù)據(jù)存儲媒介,或者預(yù)留SD卡接口,在此擬采用SD卡作為固件更新文件的存儲媒介,使用SPI通信接口完成對系統(tǒng)固件的更新。對硬件環(huán)境要求低且操作簡便,可應(yīng)用于工業(yè)現(xiàn)場設(shè)備升級和各種智能儀器儀表固件升級,也適用于消費電子產(chǎn)品用戶升級自己的手持設(shè)備,如手機、音樂播放器、掌上游戲機等。
1 方案可行性分析
STM32F103VB是意法半導體公司基于Cortex-M3內(nèi)核的32位增強型處理器,可以丁作在72 MHz的頻率下,具有128 KB閃存(Flash)和20 KB靜態(tài)隨機存儲器(SRAM),集成了豐富的外設(shè)資源,如SPI、USART、ADC等。STM32F103VB支持在應(yīng)用編程方式對閃存進行重新編程,片上閃存接口實現(xiàn)了閃存編程和擦除所需的邏輯電路,包括訪問和寫入保護以及選擇字節(jié)的控制。
SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發(fā)研制,由于其體積小、容量大、讀寫速度快、兼容性好、性價比高等特點,迅速得到了市場的認同,廣泛應(yīng)用于數(shù)碼產(chǎn)品和嵌入式系統(tǒng)。SD卡支持SPI模式、1位SD模式和4位SD模式,可與微處理器相應(yīng)外設(shè)接口進行連接。
基于上述條件,要完成相應(yīng)的硬件電路設(shè)計和軟件設(shè)計。其中,軟件設(shè)計主要是IAP驅(qū)動程序的設(shè)計,包括SD卡底層驅(qū)動、固件更新文件的讀取和對微處理器片內(nèi)閃存的擦寫操作。
2 硬件設(shè)計
STM32F103VB芯片內(nèi)集成多達2個SPI接口,在從模式或主模式下,全雙工和半雙工的通信速率可達18Mb/s。3位的預(yù)分頻器可產(chǎn)生8種主模式頻率,可配置成每幀8位或16位。硬件的CRC產(chǎn)生/校驗支持基本的SD卡和MMC模式。SD卡座與STM32F103VB連接示意圖如圖1所示。
評論