當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]μPSD中存儲(chǔ)器系統(tǒng)的配置

背景

  如果對ST公司的μPSD器件有一定了解,熟悉MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)及原理,使用過PSDSOFT EXPRESS和KEIL開發(fā)設(shè)計(jì),將對理解本文有很大的幫助。

  MCS-51單片機(jī)采用哈佛結(jié)構(gòu)的系統(tǒng)結(jié)構(gòu),即數(shù)據(jù)存儲(chǔ)器空間與程序存儲(chǔ)器空間互相獨(dú)立。它有16根地址總線,最大尋址能力為64K,這決定程序或數(shù)據(jù)空間不能超過64K。以上兩點(diǎn)是本文所有討論的前提基礎(chǔ)。

μPSD的存儲(chǔ)器系統(tǒng)結(jié)構(gòu)
  μPSD由標(biāo)準(zhǔn)8032核和ST公司的PSD(可編程系統(tǒng)器件)構(gòu)成,存儲(chǔ)器系統(tǒng)包含兩個(gè)主要部分,一是8032的內(nèi)部存儲(chǔ)器資源:256B內(nèi)部RAM和128B內(nèi)部特殊功能寄存器SFR;二是PSD中的存儲(chǔ)器模塊:主/次FLASH存儲(chǔ)器,擴(kuò)展的SRAM及控制PSD的CSIOP(Chip-Select I/O Port,類似于8051的SFR)。μPSD的主/次FLASH是完全相同的存儲(chǔ)介質(zhì)(早期的PSD813F1中的次存儲(chǔ)器是EEPROM結(jié)構(gòu)的),是兩個(gè)獨(dú)立的存儲(chǔ)器。主FLASH通常分4~8塊,每塊16~32kb;次FLASH通常分2~4塊,一般每塊為8kb。μPSD中使用譯碼可編程譯碼邏輯陣列(DPLD),頁寄存器PAGE,存儲(chǔ)器控制寄存器VM,聯(lián)合實(shí)現(xiàn)對存儲(chǔ)器系統(tǒng)的配置。

關(guān)于IAP和分頁技術(shù)
  為什么μPSD中要有兩個(gè)FLASH?簡單地說,這是為了實(shí)現(xiàn)IAP而設(shè)計(jì)的。IAP就是 “在應(yīng)用中編程或升級(jí)代碼”,其原理是:單片機(jī)中裝有一套用戶程序和一套代碼更新程序。正常情況下,單片機(jī)運(yùn)行的是用戶程序;在需要程序升級(jí)時(shí),系統(tǒng)會(huì)切換到代碼更新程序,通過串口或其他通信口下載新的用戶程序代碼,并寫入到原來的用戶程序存儲(chǔ)器中,更新完成后,再切換回至用戶程序。基于MCS-51系統(tǒng)結(jié)構(gòu)特點(diǎn),在同一個(gè)存儲(chǔ)器中運(yùn)行主程序和改寫程序是不可能實(shí)現(xiàn)的。所有用MCS-51來實(shí)現(xiàn)IAP功能的系統(tǒng)都必須有兩個(gè)獨(dú)立的存儲(chǔ)器。實(shí)現(xiàn)IAP的難點(diǎn)在于存儲(chǔ)器的切換控制,體現(xiàn)在μPSD中主要就是如何使用VM寄存器以及如何對存儲(chǔ)器的片選控制。

  此外,隨著應(yīng)用要求越來越高,代碼長度不斷增加,64K的限制已經(jīng)成為設(shè)計(jì)中的瓶頸。許多軟/硬件供應(yīng)商都竭力推出自己的方案以實(shí)現(xiàn)MCS-51對大于64K的支持,分頁技術(shù)應(yīng)運(yùn)而生。

  分頁設(shè)計(jì)中最重要的就是公共區(qū)和分頁區(qū)的設(shè)置,所謂公共區(qū)就是在所有的頁面中均為有效的一塊存儲(chǔ)器區(qū)。在程序空間中,64K范圍(1頁)內(nèi)的程序是連續(xù)的,一旦超過此范圍,只保留低16位,最高位將被丟棄,程序會(huì)跳回開始處運(yùn)行。保證程序在頁面切換時(shí)不會(huì)“跑飛”就是通過公共區(qū)實(shí)現(xiàn)的。分頁技術(shù)的實(shí)現(xiàn)方法是:當(dāng)程序在調(diào)用位于分頁區(qū)的程序時(shí),首先保存返回地址,然后轉(zhuǎn)跳到公共區(qū)執(zhí)行,再修改頁寄存器到新的頁號(hào)實(shí)現(xiàn)頁面的切換,調(diào)用程序,返回到公共區(qū),恢復(fù)原來頁號(hào),最后從保存的返回地址返回。

  公共區(qū)的大小由用戶自行設(shè)定,在μPSD中通常使用主/次FLASH中的一塊或多塊作為公共區(qū),如使用1塊次FLASH即8KB,2塊次FLSAH即16KB,1塊主FLASH則是32KB,若只想使用主FLASH中的20KB作公共區(qū)也是可行的,只要將主FLASH的地址范圍只定義為20K的范圍就可以了。當(dāng)然,公共區(qū)的大小不能超過64K。公共區(qū)必須設(shè)在64K范圍的低端,這是因?yàn)镸CS-51中斷入口地址的原因。公共區(qū)中保存所有的公用子程序,中斷服務(wù)程序,全局常數(shù)表以及系統(tǒng)的初始化部分及頁面切換程序。

μPSD存儲(chǔ)器的空間配置
  μPSD中存儲(chǔ)器系統(tǒng)配置主要是對程序空間的設(shè)置,相對而言數(shù)據(jù)空間的配置稍微簡單一點(diǎn)。μPSD中主/次FLASH可設(shè)置為程序或數(shù)據(jù)空間,這是由VM寄存器決定的,VM寄存器的作用如表1所示。VM的內(nèi)容可在運(yùn)行時(shí)由MCU進(jìn)行修改,這是實(shí)現(xiàn)IAP的關(guān)鍵。在PSDSOFT軟件流程中可設(shè)置主/次FLASH為程序、數(shù)據(jù)存儲(chǔ)器或程序/數(shù)據(jù)混合存儲(chǔ)器,實(shí)際上就是對VM寄存器上電時(shí)的默認(rèn)值進(jìn)行設(shè)置,換句話說,就是確定上電時(shí)主/次FLASH分別位于什么空間。

                           表1  VM寄存器各位作用


  表中,“#RD可以/不能訪問”是指此存儲(chǔ)器是否位于數(shù)據(jù)空間,“#PSEN可以/不能訪問”是指此存儲(chǔ)器是否位于數(shù)據(jù)空間,因?yàn)樵贛CS-51系統(tǒng)中對外部數(shù)據(jù)/程序空間的訪問就是通過#RD和#PSEN進(jìn)行區(qū)分的。舉例說明:

  VM=0CH,表示主FLASH位于程序空間,次FLASH位于數(shù)據(jù)空間;

  VM=16H,表示主FLASH位于數(shù)據(jù)和程序空間,次FLASH位于程序間。

  位0用來指定SRAM是否位于程序空間,因?yàn)镾RAM只在數(shù)據(jù)空間有效。位7用來指示外設(shè)IO模式的允許與禁止,具體將在后面介紹。圖1可幫助對VM寄存器作用的理解。

圖1 μPSD中存儲(chǔ)器系統(tǒng)結(jié)構(gòu)

  如圖1所示,VM位0~4與#RD、#PSEN聯(lián)合實(shí)現(xiàn)對主/次FLASH及SRAM的選擇。這里是通過輸出允許#OE信號(hào)進(jìn)行控制的,也就是說即使存儲(chǔ)器的地址有效(CS有效),如果#OE無效,也不能訪問到此存儲(chǔ)器的內(nèi)容。主/次FLASH的#OE有兩個(gè)有效輸入項(xiàng),由VM位3/4控制#RD是否起作用,VM的1/2位來控制#PSEN是否起作用。在VM的各位確定后,可依圖1畫出簡化的配置結(jié)構(gòu)。這里的#OE信號(hào)是對主/次FLASH的每一塊同時(shí)有效的。

  在實(shí)現(xiàn)IAP時(shí),通過VM來實(shí)現(xiàn)對主/次FLASH的空間進(jìn)行換,例如,主FLASH作用戶程序,次FLASH用作升級(jí)程序;正常工作時(shí),主FLASH作程序空間,運(yùn)行用戶代碼,在進(jìn)行程序升級(jí)時(shí),將次FLASH切換作程序空間,并運(yùn)行次FLASH中的升級(jí)程序,再把主FLASH換到數(shù)據(jù)空間,對主FLASH中的用戶代碼進(jìn)行更新。[!--empirenews.page--]

μPSD存儲(chǔ)器的地址配置
  μPSD中對存儲(chǔ)器地址分配需遵守以下規(guī)則:
  規(guī)則1.主/次FLASH塊FS0~FS7,CSBOOT0~CSBOOT3的地址范圍不能大于其物理尺寸;

  規(guī)則2.主FLASH塊FS0~FS7之間地址不能重疊;

  規(guī)則3.次FLASH塊CSBOOT0~CSBOOT3之間地址不能重疊;

  規(guī)則4.SRAM、I/O、外設(shè)I/O地址不能重疊;

  規(guī)則5.主FLASH,次FLASH和SRAM,I/O,外設(shè)I/O,若地址重疊,存儲(chǔ)器有效優(yōu)先級(jí)為SRAM、I/O、外設(shè)I/O最高,次FLASH次之,主FLASH最低。

  在PSDSOFT設(shè)計(jì)中,若違反規(guī)則2、3、4會(huì)出現(xiàn)錯(cuò)誤,必須修改才能進(jìn)行下一步;而違反規(guī)則1只會(huì)發(fā)出警告,如果忽略一定要小心。規(guī)則5屬于解釋型規(guī)則,不會(huì)提出任何提示,注意地址重疊情況下優(yōu)先級(jí)低的存儲(chǔ)器不能被訪問。

  μPSD中通過DPLD對每個(gè)存儲(chǔ)器的地址進(jìn)行分配,DPLD的結(jié)構(gòu)如圖2所示。

圖2 DPLD的結(jié)構(gòu)

  DPLD包括“與”陣列和“或”陣列,“與”陣中有輸入項(xiàng)共57項(xiàng),“或”陣中有輸出項(xiàng)共16項(xiàng)。輸入項(xiàng)表示可參于地址譯碼的信號(hào),輸出項(xiàng)即每個(gè)存儲(chǔ)器的CS信號(hào)。

  DPLD的輸入項(xiàng)中最常用的是A0~A15,頁寄存器PGR0~PGR7,#RD、#PSEN、#WR、ALE。PDN是在功率管理時(shí)使用,如果在地址中加入PDN,表示只有在電源有效時(shí)地址譯碼才有效,通常這項(xiàng)是自動(dòng)加入的,使用者可不用管。

  DPLD的輸入項(xiàng)和輸出項(xiàng)不是必須全部配置的。在對μPSD的存儲(chǔ)器進(jìn)行地址配置時(shí),一個(gè)最重要的原則是“不超過64KB就不要分頁,沒有使用到的塊就不必配置”。對于小的項(xiàng)目中沒有使用到所有存儲(chǔ)器,不用去配置,這樣既簡單,減少出錯(cuò),又方便調(diào)試和檢查。除CSIOP是必須配置的外,其他項(xiàng)均可根據(jù)需要進(jìn)行配置。

  PSEL由外設(shè)I/O模式控制,在PIO模式下,PA口的所有I/O被設(shè)置為三態(tài)、雙向MCU數(shù)據(jù)緩沖器方式,與MCU的P0口有些類似。DPLD中必須聲明PSEL0和/或PSEL1的有效地址范圍,在訪問此地址時(shí),PA口進(jìn)入PIO方式。前面所述的VM寄存器中第7位是PIO模式允許/禁止控制,PIO模式的內(nèi)部控制結(jié)構(gòu)如圖3所示。為避免PSEL0和PSEL1所指定的范圍在程序/數(shù)據(jù)空間都有效,應(yīng)在PSEL0和PSEL1中加入“!#PSEN”信號(hào),以保證PIO模式僅在訪問數(shù)據(jù)空間時(shí)有效。

使用PSDSOFT對μPSD進(jìn)行配置和編程
  μPSD中PAGE是一個(gè)8位寄存器,最多可實(shí)現(xiàn)256個(gè)頁面,PAGE寄存器與地址范圍的配置是同時(shí)起作用的。如果你的系統(tǒng)中不論是程序還是數(shù)據(jù)存儲(chǔ)器的設(shè)計(jì)超出了64k,必須要分頁。   μPSD的PAGE寄存器的8位可以獨(dú)立使用,在PSDSOFT中可定義為兩種方式,即PAGING和LOGIC。PAGING就是作為分頁使用,LOGIC是作為一般邏輯輸入功能,類似于PLD中的節(jié)點(diǎn)NODE,或者CPLD中的宏MACRO。作為PAGING時(shí),必須從最低位開始,使用N位作為PAGING,可實(shí)現(xiàn)2N個(gè)頁面的分配,即存儲(chǔ)器的地址配置中有2N個(gè)頁面可選擇。使用作為LOGIG時(shí)必須從高位開始使用,可以為之定義一個(gè)名字,可用作DPLD的輸入項(xiàng)。MCU在運(yùn)行時(shí)可以對PAGE的進(jìn)行讀/寫操作,但是不能按位操作,也就是說必須先屏蔽再修改。

  在程序和數(shù)據(jù)均不超過64K時(shí),不必分頁,PGR0~PGR7不參加譯碼?,F(xiàn)在的PSDSOFT軟件中不要求用戶再寫地址方程式,只需要填寫地址范圍可以了。不使用分頁時(shí),片選的PGAE NUMBER就不能填任何值,如果填“0”則表示位于頁0。在PSDSOFT中對公共區(qū)的設(shè)置方法很簡單,只要不填作為公共區(qū)的存儲(chǔ)器的片選中的“PAGE NUMBE”就可以了。

μPSD存儲(chǔ)器配置實(shí)例
   作為本文的結(jié)束,舉一個(gè)典型的 μPSD應(yīng)用實(shí)例,讀者可參考其存儲(chǔ)器的配置方案。

   使用μPSD3234A-40U6器件,將FS0~FS7用作程序/數(shù)據(jù)存儲(chǔ)器,地址在8000H~0FFFFH,分別位于頁0至頁7;CSBOOT0~CSBOOT3作為程序存儲(chǔ)器,作為公共區(qū),地址是0000H~7FFFFH。擴(kuò)展SRAM位于0000H~1FFFH,CSIOP位于7F00H~7FFFH,用戶I/O空間定義為7E00H~7EFFH。

  這樣的存儲(chǔ)器配置能夠滿足大多數(shù)分頁項(xiàng)目的設(shè)計(jì)要求,使用了μPSD的所有存儲(chǔ)器,不僅最大化了程序空間和數(shù)據(jù)空間,也能實(shí)現(xiàn)IAP功能。此方案中程序空間可達(dá)256K+32K,數(shù)據(jù)空間是256K(FLASH)+8K(SRAM)。用戶可根據(jù)實(shí)際應(yīng)用項(xiàng)目對配置進(jìn)行簡單修改,去掉沒有使用的存儲(chǔ)器配置。

  如果用戶項(xiàng)目中要求實(shí)現(xiàn)IAP或者對主FLASH數(shù)據(jù)存儲(chǔ)器進(jìn)行擦除/修改,請一定要注意,升級(jí)代碼或?qū)LASH進(jìn)行擦除/修改操作的程序必須放于公共區(qū),即次FLASH中。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉