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