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