重慶郵電大學(xué)光電工程學(xué)院 朱仁義 李泓成 張 遼
基于STM32單片機和SDRAM的模擬U盤設(shè)計
重慶郵電大學(xué)光電工程學(xué)院 朱仁義 李泓成 張 遼
介紹了通過STM32單片機和外掛SDRAM存儲器實現(xiàn)模擬U盤的設(shè)計,給出了系統(tǒng)電路原理圖和單片機模擬U盤的程序流程。單片機在工作過程中可以虛擬出一個USB存儲設(shè)備并將需要的數(shù)據(jù)傳輸給USB主設(shè)備。該方法可以與其他通信系統(tǒng)結(jié)合,實現(xiàn)對基于USB接口的設(shè)備的自動控制,具有良好的應(yīng)用價值。
STM32F429;SDRAM;模擬U盤
目前,USB標準接口[1]已成為通用的數(shù)據(jù)交換接口,應(yīng)用廣泛。例如,市場上大型LED屏的驅(qū)動卡都可以通過USB接口外接U盤來獲取顯示數(shù)據(jù)[2]。然而,普通U盤數(shù)據(jù)只能通過人為更新,無法實時自動更新,因此需要一種無需人工干預(yù)的、可自動更新內(nèi)容的U盤來進行驅(qū)動。類似的應(yīng)用還有很多。
本文設(shè)計的方法可以通過微控制器STM32模擬U盤數(shù)據(jù),并動態(tài)更改其內(nèi)容,從而為自動更新U盤數(shù)據(jù)的應(yīng)用提供了參考。
系統(tǒng)采用意法半導(dǎo)體公司開發(fā)的基于Cortex-M4內(nèi)核的新型32位微控制器STM32F429x作為主控芯片。該芯片內(nèi)部集成了全速USB OTG設(shè)備接口模塊和靈活的可變存儲控制器 (FMC) ,單芯片即可完成設(shè)計任務(wù),避免了復(fù)雜的接口電路設(shè)計,有效地降低了系統(tǒng)接口的復(fù)雜度和系統(tǒng)開發(fā)的難度,在很大程度上提高了系統(tǒng)的穩(wěn)定性。該系統(tǒng)體積小巧、簡單易用,能夠?qū)崿F(xiàn)類似U盤的讀寫操作。
根據(jù)系統(tǒng)的功能需求,系統(tǒng)結(jié)構(gòu)圖如圖1所示,主要包括:USB接口、數(shù)據(jù)存儲SDRAM模塊、USB OTG通信模塊、時鐘和復(fù)位電路、降壓電路等。工作流程如下:系統(tǒng)通過USB接口接到主機后獲得5V電源,微控制器STM32對硬件設(shè)備進行初始化,通過內(nèi)部USB硬件控制器來完成USB設(shè)備的枚舉工作。
圖1 系統(tǒng)結(jié)構(gòu)圖
2.1 SDRAM接口電路
虛擬U盤的存儲介質(zhì)采用同步動態(tài)隨機存儲器SDRAM[3],芯片選擇IS42S16400J,該芯片容量8MHz,頻率143MHz,速度達到7ns,工作溫度范圍-40°-80°,滿足工業(yè)場合的應(yīng)用要求。其容量大小也滿足大多數(shù)LED屏的需求。
STM32F429內(nèi)部集成有FMC(Flexible Memory Controller)可變存儲控制器,可以用于驅(qū)動包括SRAM、SDRAM、NOR FLASH以及NAND FLSAH類型的存儲器,通過STM332F429內(nèi)部集成的可變存儲控制器驅(qū)動外部SDRAM,降低了系統(tǒng)復(fù)雜度,提高了可靠性。
2.2 降壓電路
系統(tǒng)通過USB接口供電,外部主機設(shè)備為系統(tǒng)提供5V電壓,通過降壓芯片AMS1117-3.3得到微控制器STM32的3.3V供電電壓。AMS1117-3.3是一個正向低壓降穩(wěn)壓器,固定輸出電壓3.3V,精度達到1%,內(nèi)部集成過熱保護和限流電路,輸出電流可以達到1A,滿足本系統(tǒng)的電源要求。降壓電路如圖2所示。
圖2 降壓電路
2.3 USB接口電路
系統(tǒng)的數(shù)據(jù)交換通過USB接口實現(xiàn),STM32F429內(nèi)部集成OTGFS控制器和OTG-HS控制器,本文采用OTG-FS控制器[4-5],傳輸速度達到12Mb/s,符合應(yīng)用要求。USB接口電路如圖3所示。USB的差分數(shù)據(jù)線D+與D-都串接了22歐匹配電阻,提高了抗干擾能力,D+信號線接1.5K歐上拉電阻到5V,將被主機識別為高速設(shè)備。
圖3 USB接口電路
圖4 系統(tǒng)總體程序流程圖
設(shè)備的固件程序設(shè)計主要包括:系統(tǒng)時鐘配置、FMC模塊配置和USB OTG模塊配置。總體流程如圖4所示,系統(tǒng)在通過USB線連接外部主機設(shè)備后即上電復(fù)位,初始化外圍設(shè)備并配置系統(tǒng)時鐘,其中特別注意USB時鐘需配置成48MHz,否則模擬U盤無法被主機正確識別。系統(tǒng)在完成FMC配置以及USB OTG配置后進入U盤模式,USB設(shè)備枚舉成功被主機正確識別后即可實現(xiàn)類似U盤的讀寫功能。
意法半導(dǎo)體公司提供了32位STM32F429x系列MCU的固件庫[6]。該固件庫包含了FMC和USB在內(nèi)的各種功能模塊的軟件使用接口,使用該固件庫可以有效節(jié)省用戶產(chǎn)品的開發(fā)和調(diào)試時間。本系統(tǒng)關(guān)鍵的FMC模塊USB OTG模塊配置程序均采用了官方固件庫。
本系統(tǒng)連接電腦后能被正確識別為u盤,能夠完成文件的復(fù)制刪除等操作。由于SDRAM的數(shù)據(jù)掉電丟失特性,不能作為真正的U盤使用。作為LED驅(qū)動卡的數(shù)據(jù)U盤是本系統(tǒng)的應(yīng)用之一,微控制器STM32將LED屏顯示文件直接寫入SDRAM后即更新LED屏顯示內(nèi)容,為無線傳輸數(shù)據(jù)來更新LED屏內(nèi)容的應(yīng)用提供了參考。
[1]陳源,裘正定.基于嵌入式系統(tǒng)的USB接口的設(shè)計[J].計算機工程與應(yīng)用,2004,40(7):110-111.
[2]鮑海軍.單片機控制led顯示屏u盤控制系統(tǒng):CN,CN 2840191 Y[P].2006.
[3]鄧耀華,劉桂雄,吳黎明.高速SDRAM控制器的嵌入式設(shè)計[J].計算機工程,2010,36(16):216-218.
[4]龔躍玲,汪玲彥.基于STM32的USB OTG數(shù)據(jù)通信的實現(xiàn)[J].微型機與應(yīng)用,2011,30(10):32-34.
[5]方旭.基于STM32處理器的兩種USB通信方法的實現(xiàn)[J].科技信息,2010(21):574+595-596.
[6]張明華.基于固件庫的STM32F107的程序設(shè)計方法探討[J].數(shù)字技術(shù)與應(yīng)用,2014(12):171-171.
朱仁義(1993—),浙江人,碩士研究生,現(xiàn)就讀于重慶郵電大學(xué)。