《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > STM32FSMC機制FlaSh存儲器擴展
STM32FSMC機制FlaSh存儲器擴展
魯東大學(xué) 潘輝
摘要: STM32是ST(意法半導(dǎo)體)公司推出的基于ARM內(nèi)核Cortex-M3的32位微控制器系列。Cortex-M3內(nèi)核是為低功耗和價格敏感的應(yīng)用而專門設(shè)計的,具有突出的能效比和處理速度。通過采用Thumb-2高密度指令集,Cortex-M3內(nèi)核降低了系統(tǒng)存儲要求,同時快速的中斷處理能夠滿足控制領(lǐng)域的高實時性要求,使基于該內(nèi)核設(shè)計的STM32系列微控制器能夠以更優(yōu)越的性價比,面向更廣泛的應(yīng)用領(lǐng)域。STM32系列微控制器為用戶提供了豐富的選擇,可適用于工業(yè)控制、智能家電、建筑安防、醫(yī)療設(shè)備以及消費類電子產(chǎn)品等多方位嵌入式系統(tǒng)設(shè)計。STM32系列采用一種新型的存儲器擴展技術(shù)——FSMC,在外部存儲器擴展方面具有獨特的優(yōu)勢,可根據(jù)系統(tǒng)的應(yīng)用需要,方便地進行不同類型大容量靜態(tài)存儲器的擴展。
Abstract:
Key words :

 

stebin">       STM32是ST(意法半導(dǎo)體)公司推出的基于ARM內(nèi)核Cortex-M3的32位微控制器系列。Cortex-M3內(nèi)核是為低功耗和價格敏感的應(yīng)用而專門設(shè)計的,具有突出的能效比和處理速度。通過采用Thumb-2高密度指令集,Cortex-M3內(nèi)核降低了系統(tǒng)存儲要求,同時快速的中斷處理能夠滿足控制領(lǐng)域的高實時性要求,使基于該內(nèi)核設(shè)計的STM32系列微控制器能夠以更優(yōu)越的性價比,面向更廣泛的應(yīng)用領(lǐng)域。
  STM32系列微控制器為用戶提供了豐富的選擇,可適用于工業(yè)控制、智能家電、建筑安防、醫(yī)療設(shè)備以及消費類電子產(chǎn)品等多方位嵌入式系統(tǒng)設(shè)計。STM32系列采用一種新型的存儲器擴展技術(shù)——FSMC,在外部存儲器擴展方面具有獨特的優(yōu)勢,可根據(jù)系統(tǒng)的應(yīng)用需要,方便地進行不同類型大容量靜態(tài)存儲器的擴展。
  1 FSMC機制
  FSMC(Flexihie Static Memory Controller,可變靜態(tài)存儲控制器)是STM32系列中內(nèi)部集成256 KB以上FlaSh,后綴為xC、xD和xE的高存儲密度微控制器特有的存儲控制機制。之所以稱為“可變”,是由于通過對特殊功能寄存器的設(shè)置,F(xiàn)SMC能夠根據(jù)不同的外部存儲器類型,發(fā)出相應(yīng)的數(shù)據(jù)/地址/控制信號類型以匹配信號的速度,從而使得STM32系列微控制器不僅能夠應(yīng)用各種不同類型、不同速度的外部靜態(tài)存儲器,而且能夠在不增加外部器件的情況下同時擴展多種不同類型的靜態(tài)存儲器,滿足系統(tǒng)設(shè)計對存儲容量、產(chǎn)品體積以及成本的綜合要求。
  1.1 FSMC技術(shù)優(yōu)勢
  ①支持多種靜態(tài)存儲器類型。STM32通過FSMC町以與SRAM、ROM、PSRAM、NOR Flash和NANDFlash存儲器的引腳直接相連。
  ②支持豐富的存儲操作方法。FSMC不僅支持多種數(shù)據(jù)寬度的異步讀/寫操作,而且支持對NOR/PSRAM/NAND存儲器的同步突發(fā)訪問方式。
  ③支持同時擴展多種存儲器。FSMC的映射地址空間中,不同的BANK是獨立的,可用于擴展不同類型的存儲器。當系統(tǒng)中擴展和使用多個外部存儲器時,F(xiàn)SMC會通過總線懸空延遲時間參數(shù)的設(shè)置,防止各存儲器對總線的訪問沖突。
  ④支持更為廣泛的存儲器型號。通過對FSMC的時間參數(shù)設(shè)置,擴大了系統(tǒng)中可用存儲器的速度范圍,為用戶提供了靈活的存儲芯片選擇空間。
  ⑤支持代碼從FSMC擴展的外部存儲器中直接運行,而不需要首先調(diào)入內(nèi)部SRAM。
  1.2 FSMC內(nèi)部結(jié)構(gòu)
  STM32微控制器之所以能夠支持NOR Flash和NAND Flash這兩類訪問方式完全不同的存儲器擴展,是因為FSMC內(nèi)部實際包括NOR Flash和NAND/PC Card兩個控制器,分別支持兩種截然不同的存儲器訪問方式。在STM32內(nèi)部,F(xiàn)SMC的一端通過內(nèi)部高速總線AHB連接到內(nèi)核Cortex-M3,另一端則是面向擴展存儲器的外部總線。內(nèi)核對外部存儲器的訪問信號發(fā)送到AHB總線后,經(jīng)過FSMC轉(zhuǎn)換為符合外部存儲器通信規(guī)約的信號,送到外部存儲器的相應(yīng)引腳,實現(xiàn)內(nèi)核與外部存儲器之間的數(shù)據(jù)交互。FSMC起到橋梁作用,既能夠進行信號類型的轉(zhuǎn)換,又能夠進行信號寬度和時序的調(diào)整,屏蔽掉不同存儲類型的差異,使之對內(nèi)核而言沒有區(qū)別。
  1.3 FSMC映射地址空間
  FSMC管理1 GB的映射地址空間。該空間劃分為4個大小為256 MB的BANK,每個BANK又劃分為4個64 MB的子BANK,如表1所列。FSMC的2個控制器管理的映射地址空間不同。NOR Flash控制器管理第1個BANK,NAND/PC Card控制器管理第2~4個BANK。由于兩個控制器管理的存儲器類型不同,擴展時應(yīng)根據(jù)選用的存儲設(shè)備類型確定其映射位置。其中,BANK1的4個子BANK擁有獨立的片選線和控制寄存器,可分別擴展一個獨立的存儲設(shè)備,而BANK2~BANK4只有一組控制寄存器。
  2 FSMC擴展NOR Flash配置
  SRAM/ROM、NOR Flash和PSRAM類型的外部存儲器都是由FSMC的NOR Flash控制器管理的,擴展方法基本相同,其中NOR Flash最為復(fù)雜。通過FSMC擴展外部存儲器時,除了傳統(tǒng)存儲器擴展所需要的硬件電路外,還需要進行FSMC初始化配置。FSMC提供大量、細致的可編程參數(shù),以便能夠靈活地進行各種不同類型、不同速度的存儲器擴展。外部存儲器能否正常工作的關(guān)鍵在于:用戶能否根據(jù)選用的存儲器型號,對配置寄存器進行合理的初始化配置。
  (1)確定映射地址空間
  根據(jù)選用的存儲器類型確定擴展使用的映射地址空間。NOR Flash只能選用BANK1中的4個子BANK。選定映射子BANK后,即可確定以下2方面內(nèi)容:
  ①硬件電路中用于選中該存儲器的片選線FSMC_NEi(i為子BANK號,i=1,…,4); 
  ②FSMC配置中用于配置該外部存儲器的特殊功能寄存器號(如表1所列)。
  (2)配置存儲器基本特征
  通過對FSMC特殊功能寄存器FSMC_BCRi(i為子BANK號,i=1,…,4)中對應(yīng)控制位的設(shè)置,F(xiàn)SMC根據(jù)不同存儲器特征可靈活地進行工作方式和信號的調(diào)整。根據(jù)選用的存儲器芯片確定需要配置的存儲器特征,主要包括以下方面:
  ①存儲器類型(MTYPE)是SRAM/ROM、PSRAM,還是NOR FlaSh;
  ②存儲芯片的地址和數(shù)據(jù)引腳是否復(fù)用(MUXEN),F(xiàn)SMC可以直接與AD0~AD15復(fù)用的存儲器相連,不需要增加外部器件;
  ③存儲芯片的數(shù)據(jù)線寬度(MWID),F(xiàn)SMC支持8位/16位兩種外部數(shù)據(jù)總線寬度;
  ④對于NOR Flash(PSRAM),是否采用同步突發(fā)訪問方式(B URSTEN);
  ⑤對于NOR Flash(PSRAM),NWAIT信號的特性說明(WAITEN、WAITCFG、WAITPOL);
  ⑥對于該存儲芯片的讀/寫操作,是否采用相同的時序參數(shù)來確定時序關(guān)系(EXTMOD)。
  (3)配置存儲器時序參數(shù)
  FSMC通過使用可編程的存儲器時序參數(shù)寄存器,拓寬了可選用的外部存儲器的速度范圍。FSMC的NORFlash控制器支持同步和異步突發(fā)兩種訪問方式。選用同步突發(fā)訪問方式時,F(xiàn)SMC將HCLK(系統(tǒng)時鐘)分頻后,發(fā)送給外部存儲器作為同步時鐘信號FSMC_CLK。此時需要的設(shè)置的時間參數(shù)有2個:
  ①HCLK與FSMC_CLK的分頻系數(shù)(CLKDIV),可以為2~16分頻;
  ②同步突發(fā)訪問中獲得第1個數(shù)據(jù)所需要的等待延遲(DATLAT)。
  對于異步突發(fā)訪問方式,F(xiàn)SMC主要設(shè)置3個時間參數(shù):地址建立時間(ADDSET)、數(shù)據(jù)建立時間(DATAST)和地址保持時間(ADDHLD)。FSMC綜合了SRAM/ROM、PSRAM和NOR Flash產(chǎn)品的信號特點,定義了4種不同的異步時序模型。選用不同的時序模型時,需要設(shè)置不同的時序參數(shù),如表2所列。在實際擴展時,根據(jù)選用存儲器的特征確定時序模型,從而確定各時間參數(shù)與存儲器讀/寫周期參數(shù)指標之間的計算關(guān)系;利用該計算關(guān)系和存儲芯片數(shù)據(jù)手冊中給定的參數(shù)指標,可計算出FSMC所需要的各時間參數(shù),從而對時間參數(shù)寄存器進行合理的配置。
  3 STM2擴展S29GL系列NOR Flash實例
  3.1 S29GL系列NOR Flash簡介
  Spansion公司的S29GL系列芯片是采用90nm技術(shù)制造的高集成度NOR Flash存儲芯片,提供16~128 MB可選容量,支持最快25 ns的頁訪問速度和11O ns的隨機訪問速度,帶有最大64字節(jié)的寫緩沖區(qū),以提供更快、更高效的編程,是嵌入式系統(tǒng)設(shè)計中大容量存儲器擴展的理想選擇。本文選用的型號為S29GL512P,容量為512×64K字(總?cè)萘?4 MB),擴展到NOR Flash控制器管理的BANK1的第2個子BANK。
  3.2 STM32與S29GL512P的電路連接
  S25GL512P可通過控制引腳BYTE選擇對芯片的訪問單位(字/字節(jié)),區(qū)別在于:
  ①對于芯片引腳DQ15,字模式時傳送最高數(shù)據(jù)位D15;字節(jié)模式時傳送最低地址A-1。
  ②字模式時,數(shù)據(jù)引腳D0~D15上傳送數(shù)據(jù)信號;字節(jié)模式時,只有D0~D7上有信號。
  此處,將BYTE上拉到高電平,選擇16位的字訪問單位。FSMC數(shù)據(jù)線FSMC_D[15:0]與S29GL512P的D15~D0對應(yīng)連接;FSMC地址線FSMC_A[25:0]的低25根與S29GL512P的地址線A[24:0]對應(yīng)連接。
  由于S29GL512P芯片映射到BANK1的子BANK2,可確定其片選線應(yīng)連接FSMC片選控制線FSMC_NE2。S29GL512P的RY/BY引腳連接FSMC的FSMC_NWAIT引腳,提供等待信號。
  3.3 FSMC的配置
  根據(jù)S29GL512P的映射位置,需要對FSMC_BCR2和FSMC_BTR2/BWTR2寄存器進行配置。
  (1)FSMC_BCR2
  配置S29GL512P的讀/寫采用統(tǒng)一時間參數(shù),只需要設(shè)置時間寄存器FSMC_BTR2。配置存儲器類型為NORFlash,數(shù)據(jù)總線寬度為16位(字),不采用地址/數(shù)據(jù)復(fù)用,使能BANK1的子BANK2。
  (2)FSMC_BTR2
  由表2可知,異步NOR Flash時序模型Mode2/B需要設(shè)置時間參數(shù)DATAST和ADDSET。根據(jù)時序圖,兩個參數(shù)的計算公式如下:
  式中:Twc和Trc為所選存儲芯片的寫周期長度和讀操作周期長度;Twp為所選存儲芯片的寫信號持續(xù)長度。根據(jù)S29GL512P用戶手冊,可知參數(shù)Twc=Trc=130 ns,Twp=35 ns。設(shè)STM32微控制器采用72 MHz主頻,則HCLK=(1/72×10-6)s。通過上述公式計算,可取值為:DATAST=2,ADDSET=5。 
  為了達到更好的控制效果,還應(yīng)考慮FSMC自身延遲問題,使用校正公式:
  式中:TAVQV為所選存儲芯片訪問過程中,從地址有效至數(shù)據(jù)有效的時間域;Tsu(Data_NE)為STM32特征參數(shù),從數(shù)據(jù)有效到FSMC_NE(片選)失效時間域;Ttv(A_NE)為STM32特征參數(shù),從FSMC_NE有效至地址有效的時間域。
  TAVQV=130 ns,Tsu(Data_NE)+Ttv(A_NE]=36 ns,對DATAST參數(shù)進行校正,可得DATAST=3。
  3.4 應(yīng)用STM32固件對FSMC進行初始化配置
  ST公司為用戶開發(fā)提供了完整、高效的工具和固件庫,其中使用C語言編寫的固件庫提供了覆蓋所有標準外設(shè)的函數(shù),使用戶無需使用匯編操作外設(shè)特性,從而提高了程序的可讀性和易維護性。
  STM32固件庫中提供的FSMC的NOR Flash控制器操作固件,主要包括2個數(shù)據(jù)結(jié)構(gòu)和3個函數(shù)。數(shù)據(jù)結(jié)構(gòu)FSMC_NORSRAMTimingInitTypeDef對應(yīng)時間參數(shù)寄存器FSMC_BTR和FSMC_BWTR的結(jié)構(gòu)定義;
  FSMC_NORSRAMinitTypeDef對應(yīng)特征配置寄存器FSMC_BCR的結(jié)構(gòu)定義,并包含2個指向?qū)?yīng)BANK的FSMC_BTR和FSMC_BWTR寄存器的FSMC_NORSRAMTimingInitTypeDef結(jié)構(gòu)指針。針對上述S29GL512P芯片擴展要求,利用固件庫進行的主要初始化操作如下:
  結(jié) 語
  STM32作為新一代ARM Cortex-M3核處理器,其卓越的性能和功耗控制能夠適用于廣泛的應(yīng)用領(lǐng)域;而其特殊的可變靜態(tài)存儲技術(shù)FSMC具有高度的靈活性,對于存儲容量要求較高的嵌入式系統(tǒng)設(shè)計,能夠在不增加外部分立器件的情況下,擴展多種不同類型和容量的存儲芯片,降低了系統(tǒng)設(shè)計的復(fù)雜性,提高了系統(tǒng)的可靠性。
 
來源:單片機與嵌入式系統(tǒng) 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲图片激情小说| 久久九九免费| 午夜精品影院| 9色国产精品| 亚洲狼人综合| 亚洲欧洲在线免费| 一区二区亚洲欧洲国产日韩| 国产日韩精品久久久| 国产精品久久久一区二区三区| 欧美日韩另类字幕中文| 欧美成人一区二区三区片免费| 久久久久一区二区三区| 欧美在线亚洲一区| 午夜精品福利一区二区三区av | 午夜精品久久久久久久蜜桃app | 亚洲高清久久网| 曰本成人黄色| 亚洲高清不卡在线观看| 亚洲国产小视频| 亚洲日本视频| 一区二区三区免费网站| 一区二区三区回区在观看免费视频| 99精品国产高清一区二区| 一本色道久久综合亚洲精品婷婷| 中国女人久久久| 亚洲主播在线观看| 欧美一区国产二区| 亚洲大胆视频| 亚洲美女视频| 亚洲一区二区三区在线| 亚洲欧美bt| 久久精品国产一区二区三区免费看| 久久精品国产视频| 麻豆av一区二区三区| 欧美成人免费全部| 欧美日韩国产美女| 国产精品久久久久久久9999| 国产视频一区二区三区在线观看| 国产曰批免费观看久久久| 亚洲国产精品黑人久久久| 亚洲麻豆国产自偷在线| 亚洲午夜一区二区三区| 欧美在线国产| 日韩亚洲一区二区| 午夜影院日韩| 久久夜色撩人精品| 欧美日本中文字幕| 国产精品视频久久久| 国内外成人在线| 亚洲日本理论电影| 亚洲嫩草精品久久| 亚洲啪啪91| 亚洲欧美日韩直播| 久久一区精品| 欧美日韩亚洲免费| 国产午夜精品视频免费不卡69堂| 亚洲福利在线视频| 这里是久久伊人| 亚洲国产精品视频一区| 中文精品在线| 久久蜜桃精品| 欧美三级视频在线播放| 国产一区自拍视频| 亚洲免费观看在线视频| 欧美一区中文字幕| 一区二区三区精品视频在线观看| 久久www成人_看片免费不卡| 欧美韩日精品| 国产欧美日韩综合一区在线播放| 最新高清无码专区| 欧美一区二区精美| 亚洲深夜福利网站| 美女视频黄a大片欧美| 国产精品国产三级国产普通话三级 | 久久久99爱| 欧美四级电影网站| 一区二区在线观看av| 一本色道久久88精品综合| 欧美在线1区| 亚洲一区二区三区在线| 毛片av中文字幕一区二区| 国产精品久久国产愉拍| 亚洲国产清纯| 久久国产天堂福利天堂| 亚洲资源av| 欧美精品成人91久久久久久久| 国产一区二区av| 一本高清dvd不卡在线观看| 亚洲大胆女人| 久久不见久久见免费视频1| 欧美另类视频在线| 在线精品国精品国产尤物884a| 亚洲一区二区影院| 夜夜嗨一区二区| 免费欧美在线| 红桃视频成人| 欧美一级在线视频| 亚洲欧美影院| 欧美四级在线观看| 91久久精品国产91久久性色tv| 欧美一级黄色录像| 亚洲欧美久久久久一区二区三区| 欧美精品一区二区三区在线看午夜 | 免费一级欧美片在线观看| 国产日韩欧美黄色| 亚洲午夜视频| 亚洲伊人一本大道中文字幕| 欧美日韩国产影院| 亚洲激情综合| 亚洲国产精品一区在线观看不卡 | 一色屋精品视频在线看| 欧美主播一区二区三区| 欧美一区国产在线| 国产精品爽爽爽| 亚洲网友自拍| 亚洲欧美日韩精品在线| 欧美精品日韩www.p站| 亚洲第一在线综合在线| 亚洲国产婷婷| 欧美成年人视频网站| 激情国产一区二区| 欧美在线亚洲综合一区| 久久精品一区| 国产一区在线观看视频| 欧美亚洲午夜视频在线观看| 久久精品91久久香蕉加勒比| 国产日韩欧美二区| 欧美在线观看www| 久久久久久久久蜜桃| 国产一区二区三区日韩| 久久国产婷婷国产香蕉| 另类图片综合电影| 精品白丝av| 亚洲精品美女在线观看| 好吊妞**欧美| 欧美专区福利在线| 久久综合久久88| 亚洲高清自拍| 日韩午夜激情av| 欧美日韩国产页| 一本大道久久a久久精二百| 亚洲女人av| 国产亚洲欧美日韩日本| 久久国产精品第一页| 女生裸体视频一区二区三区| 亚洲欧洲在线播放| 亚洲直播在线一区| 国产婷婷色一区二区三区| 亚洲国产欧洲综合997久久| 欧美福利精品| 99精品视频一区| 欧美一区二区三区免费观看视频 | 久久精品72免费观看| 欧美成人综合一区| 99国产精品久久久久老师| 亚洲一区二区三区高清不卡| 国产欧美日韩不卡| 91久久极品少妇xxxxⅹ软件| 欧美精品入口| 亚洲综合另类| 欧美电影免费网站| 亚洲少妇在线| 久久婷婷av| 亚洲六月丁香色婷婷综合久久| 亚洲欧美日韩精品久久久| 国内成+人亚洲| 一本久道久久综合中文字幕 | 国产亚洲一级| 亚洲精品孕妇| 国产精品一区在线观看| 亚洲第一精品影视| 欧美日韩卡一卡二| 久久av一区| 欧美日韩国产欧| 午夜一区二区三区在线观看| 欧美韩日精品| 欧美亚洲免费电影| 欧美精品日韩综合在线| 亚洲欧美中文另类| 欧美精品电影| 欧美诱惑福利视频| 欧美视频一区二区在线观看| 久久er99精品| 欧美午夜不卡在线观看免费 | 欧美一级艳片视频免费观看| 亚洲福利视频专区| 香蕉乱码成人久久天堂爱免费| 激情综合色综合久久综合| 这里只有精品在线播放| 国产一区二区三区四区| 一区二区三区色| 亚洲丰满在线| 久久国产精品久久久| 日韩视频在线免费| 久久综合电影| 午夜精品久久久久| 欧美日韩视频在线| 亚洲国产日韩在线一区模特| 国产精一区二区三区| 日韩一级不卡|