主流32位單片機(jī)攻略連載:為什么要學(xué)STM32?
需要注意的一個(gè)問(wèn)題是,某些微處理器限制RAM的使用,這種限制的目的是為了借用部分內(nèi)存存儲(chǔ)器作為內(nèi)部寄存器組使用。除了以上因素外,所使用的開(kāi)發(fā)語(yǔ)言也對(duì)所需RAM容量有一定的影響,某些效率較低的編譯程序可能會(huì)占用大量寶貴的RAM空間。
c.只讀存儲(chǔ)器(ROM)的選擇:系統(tǒng)所需ROM的大小應(yīng)該是系統(tǒng)程序代碼與所有基于ROM的數(shù)據(jù)表容量之和。預(yù)測(cè)所需ROM空間容量比較困難的部分是預(yù)測(cè)程序代碼的長(zhǎng)度,解決這類(lèi)問(wèn)題的方法只能是隨著經(jīng)驗(yàn)的逐步積累來(lái)提高預(yù)測(cè)精度。
然而,最重要的并不是精確計(jì)算程序的代碼長(zhǎng)度,而是要清楚地估算代碼長(zhǎng)度的上限。根據(jù)經(jīng)驗(yàn),如果80%的ROM空間被代碼占用的話,那么就太擁擠了,除非能確保系統(tǒng)需求不會(huì)有任何變化,否則至少要為可能發(fā)生的變化保留足夠的備用ROM空間。
在多數(shù)情況下,我們可以試著在ROM中寫(xiě)入一部分程序代碼,以便觀察代碼占用空間的情況,對(duì)于帶有內(nèi)部ROM的微處理器系統(tǒng)來(lái)說(shuō),系統(tǒng)程序都只能占用有限的程序存儲(chǔ)器空間。
d.經(jīng)驗(yàn)之談:ROM與RAM使用情況相類(lèi)似,程序代碼長(zhǎng)度與所選用的開(kāi)發(fā)語(yǔ)言有關(guān)。舉例來(lái)說(shuō),使用匯編語(yǔ)言編制的程序要比使用C語(yǔ)言編制的程序占用少得多的空間。
對(duì)于追求低成本的小型系統(tǒng)來(lái)說(shuō),一般不提倡使用高級(jí)程序設(shè)計(jì)語(yǔ)言;這是因?yàn)殡m然高級(jí)語(yǔ)言在使用、調(diào)試以及維護(hù)方面來(lái)的比較容易,但同時(shí)這類(lèi)語(yǔ)言需要占用更多的內(nèi)存空間和大量的處理器時(shí)鐘周期。
如果開(kāi)發(fā)語(yǔ)言選擇不當(dāng),其后果可能是把一個(gè)簡(jiǎn)單、低成本的單片機(jī)系統(tǒng)變?yōu)橐粋€(gè)需要使用配置若干兆字節(jié)RAM空間的64位嵌入式處理器系統(tǒng)。
2.4.需要使用的中斷數(shù)量
中斷的主要用途是向中央處理器通報(bào)當(dāng)前發(fā)生的某類(lèi)特殊事件,這類(lèi)事件包括諸如定時(shí)器超時(shí)事件、硬件引發(fā)的事件等。
需要強(qiáng)調(diào)的是,多數(shù)系統(tǒng)設(shè)計(jì)師經(jīng)常過(guò)多地使用中斷功能,實(shí)際上,中斷的主要作用只是中斷現(xiàn)行程序的執(zhí)行,中斷最適用于必須要求中央處理器立即提供服務(wù)的事件。
在需要設(shè)計(jì)和使用中斷的情況下,一定要首先確認(rèn)實(shí)際需要的中斷數(shù)量,然后必須考慮到系統(tǒng)內(nèi)部占用的中斷資源,如果需要使用的中斷資源超出了處理器可以接收的中斷數(shù)量,我們就應(yīng)借助于某些特殊手段來(lái)減少所需中斷信號(hào)的數(shù)量。
2.5.實(shí)時(shí)處理方面的考慮
實(shí)時(shí)處理是一個(gè)涉及范圍很廣的題目,其主要內(nèi)容與系統(tǒng)的處理速度有密切聯(lián)系,實(shí)時(shí)事件是嵌入式微處理器需要關(guān)注的主要任務(wù)。
例如:處理器跟串口進(jìn)行通信時(shí),通常通過(guò)上層軟件(為了保證實(shí)時(shí)性,進(jìn)行任務(wù)切換的時(shí)間足夠短),然后再占用處理器去執(zhí)行從串口拿數(shù)據(jù)的任務(wù),并且要保證處理器的速率比串口速率快,那么處理器可以以最快的速度反應(yīng)并處理串口的相關(guān)的任務(wù),這樣就可以達(dá)到最大的實(shí)時(shí)性;
另一方面,如果處理器本身就內(nèi)置了串口控制器、或DMA、或LCD的控制器等,那么它就可以保證直接使用這些處理器內(nèi)置的接口去控制串口、液晶屏等對(duì)象,以達(dá)到最大的實(shí)時(shí)性能。
2.6.該廠商是否提供好的開(kāi)發(fā)工具和環(huán)境
選擇一款新的處理器,很可能就要使用一個(gè)新的開(kāi)發(fā)工具和開(kāi)發(fā)環(huán)境,包括軟件的編譯環(huán)境等;對(duì)于開(kāi)發(fā)日程安排比較緊張的項(xiàng)目來(lái)說(shuō),開(kāi)發(fā)人員往往無(wú)法抽出專(zhuān)門(mén)的時(shí)間來(lái)研究,熟悉新的開(kāi)發(fā)工具,從而也無(wú)法全面掌握開(kāi)發(fā)工具的使用技巧。
并且,有的開(kāi)發(fā)工具價(jià)格也比較昂貴,而且很可能只能從制造商那里購(gòu)買(mǎi),還有仿真工具也是需要付費(fèi)的,這些對(duì)我們?cè)谶x擇一款處理器的時(shí)候,是都應(yīng)該考慮進(jìn)去的成本因素。
2.7.處理器速度方面的考慮
主要考慮幾個(gè)細(xì)節(jié)問(wèn)題:
1)處理器速度與處理器時(shí)鐘之間的關(guān)系
例:單片機(jī)8031為例,由該處理器可以適應(yīng)12MHz頻率的輸入時(shí)鐘,因此就可以認(rèn)為它是一個(gè)速度為12MHz的處理器了嗎?不是,實(shí)際上,由于該處理器內(nèi)部邏輯電路執(zhí)行每條指令需要多種不同頻率的時(shí)鐘脈沖,因此該處理器內(nèi)部時(shí)鐘電路要對(duì)輸入的12MHz時(shí)鐘12分頻處理;最終為處理器提供的只是 1MHz主頻。
有的時(shí)候,80MHz主頻的處理器(80MHz輸入時(shí)鐘,80MHz執(zhí)行速度)要比200MHz主頻的處理器(200MHz輸入時(shí)鐘,50MHz執(zhí)行速度)執(zhí)行速度要快得多。
2)處理器指令系統(tǒng)
如果不需要執(zhí)行復(fù)雜數(shù)學(xué)運(yùn)算的應(yīng)用,那么RISC指令集的處理器要快;如果執(zhí)行比較復(fù)雜的操作,則CISC指令集的處理器速度要更快。
3)芯片結(jié)構(gòu)體系
現(xiàn)在有的芯片是將多個(gè)不同功能的核封裝到一個(gè)芯片IC中,定制某種特定的功能,比如DSP,其中包括用于實(shí)現(xiàn)數(shù)字解碼、乘法運(yùn)算的硬件乘法器和移相器等;然而,這類(lèi)處理器也由其自身局限,往往在執(zhí)行某些普通操作之前必須要使用額外的指令來(lái)把RAM中的數(shù)據(jù)放入內(nèi)部寄存器,相比之下,一般處理器只允許對(duì) RAM中的數(shù)據(jù)進(jìn)行直接訪問(wèn)。
2.8.只讀存儲(chǔ)器(ROM)的選擇
多數(shù)工程項(xiàng)目在其開(kāi)發(fā)階段一般使用可擦寫(xiě)可編程只讀存儲(chǔ)器(EPROM)或快速存儲(chǔ)器(Flash Memory);這類(lèi)可擦寫(xiě)可重復(fù)寫(xiě)入存儲(chǔ)器的主要優(yōu)點(diǎn)是可多次使用。一旦產(chǎn)品研制完畢,就可以用一次寫(xiě)入設(shè)備(OTP)來(lái)取代EPROM存儲(chǔ)器,一次性寫(xiě)入器件的外觀與封裝幾乎與EPROM完全一樣,惟一不同之處就是其表面沒(méi)有擦出窗口,并且價(jià)格要比EPROM低很多。
但是,另外一種情況,如果該產(chǎn)品今后需要升級(jí)固件,或在線編程,那么我們還是應(yīng)該選擇可擦寫(xiě)可編程的存儲(chǔ)器。
還有一種是非易失的存儲(chǔ)器,例如制造一臺(tái)電視機(jī),就有可能需要該設(shè)備具有記憶上次觀看最后一個(gè)頻道的功能,即使在切斷電源后,該頻道信息也不會(huì)丟失。
總結(jié):所以,根據(jù)不同的產(chǎn)品選擇不同的存儲(chǔ)器也是一門(mén)很講究的學(xué)問(wèn)。
2.9.電源的要求
在某些設(shè)計(jì)中方案中,電源根本不存在問(wèn)題,對(duì)電源唯一的要求就是可以為電路正常供電;實(shí)際上,選擇電源主要要考慮三個(gè)方面的問(wèn)題:
1)要注意設(shè)計(jì)方案中是否對(duì)電源的供電方式有所限制,例如,是否像大多數(shù)家用電器那樣需要使用屋內(nèi)墻上的電源插座供電,或是是使用USB接口供電
2)看系統(tǒng)是否需要使用電池供電方式,如果這樣,我們就要考慮選擇那種對(duì)驅(qū)動(dòng)電流要求不高的處理器,然后再為其選擇合適的電池。
3)休眠電流:許多微處理器都支持低功率運(yùn)行模式,在這種模式下,系統(tǒng)的CPU處理器將處于休眠狀態(tài),同時(shí)所有外部設(shè)備的電源供電都被暫時(shí)切斷,以便減少系統(tǒng)的電能消耗;某些微處理器在這種方式下需要的維持電流極小,但也有一些微處理器在這種方式下并不能節(jié)省多少功率;不管怎樣,我們都要對(duì)系統(tǒng)在節(jié)點(diǎn)模式下的工作時(shí)間有一個(gè)估測(cè),以便對(duì)具體情況選擇使用的電池。
總之,無(wú)論哪種情況,我們都要對(duì)系統(tǒng)需要的供電總功率做到心中有數(shù)。
評(píng)論