- 相關推薦
32位精簡指令集架構的AT91M42800A的設計與應用
摘要:介紹了ATMEL公司生產的基于32位精簡指令集(RISC)架構的單片機AT91M42800A的特點,提出了一種基于AT91M42800A的應用設計方案,給出該設計的硬件原理圖,同時針對AT91M42800A的存儲器空間分配問題,給出了分散裝載的程序代碼舉例,從而為基于AT91M42800A的嵌入式系統(tǒng)設計提供了一個思路。1 引言
目前,嵌入式產品逐步占領了PC市場,而其核心部分——處理器的性能則決定了產品的設計和性能。在32位嵌入式處理器中, 由ATMEL 公司生產的AT91系列芯片之一AT91M42800A是基于ARM7TDMI 處理器內核的16/32位微控制器,它除具有ARM處理器的低功耗、低成本、高性能等優(yōu)點外,還具有非常豐富的片內資源,特別適合于嵌入式產品的設計開發(fā)。
2 AT91M42800A 的基本特性
AT91M42800A采用32位精簡指令集(RISC)架構,因此,它既支持16位Thumb指令集,又支持32位的Arm指令集。它采用三級流水線結構,可在同一時間內,一條指令在執(zhí)行,第二條指令在譯碼,第三條指令在取指,這樣,在每個周期都有一條指令在執(zhí)行,因此,指令執(zhí)行速度很快。AT91M42800A的基于先進微控制器總線結構(AMBA)的模塊化設計方法具有綜合、快速、高性能價格比的特點。該微控制器的內部工作寄存器很多,非常適合實時控制應用。其主要特點如下:
●內核電壓和鎖相環(huán)電壓為2.7~3.6V, I/O口操作電壓為2.7~5.5V;
●內部帶有8kB靜態(tài)RAM;
●具有完全可編程外部總線接口(EBI),且多達8個片選,尋址空間很大;
●內含8通道外設數據控制器(PDC);
●帶有54個可編程I/O口;
●內含6通道16位定時/計數器;
●具有2個通用串行異步接收/發(fā)送器(USART)和2個主/從SPI接口;
●內含3個系統(tǒng)定時器;
●時鐘可由32768 Hz 晶體和內部鎖相環(huán)(PLL)電路產生,最高可編程至33MHz,也可由外部時鐘信號提供;
●內置嵌入式在線仿真電路(Embedded ICE)?可通過JTAG口對AT91M42800A進行測試。
3 基本組成系統(tǒng)
由AT91M42800A構成的最基本的系統(tǒng)至少應包括以下幾個部分:
(1)程序存儲器(ROM)
由于AT91M42800A 內部沒有ROM,因此,必須外擴一片程序存儲器。應當注意的是:AT91M42800A的8位總線和16位總線的FLASH接法不同,具體接法如圖1所示。
(2)數據存儲器?RAM?
如果設計的系統(tǒng)比較復雜,數據比較多,當單片機內部8kB SRAM不能滿足要求時,還要外擴一片數據存儲器。AT91M42800A能夠支持兩種“寫”方式,但對8位數據總線和16位數據總線的操作也是不同的,因此,對于不同的存儲器,其接法不同。對于8位總線的存儲器,只需接D0~D7,將D8~D15懸空,并將其地址線對接,而單片機的NWE/NWR0接到存儲器的NWE上。對于16位總線的存儲器,則將其數據線對接,A1~A17接存儲器的A0~A16,并將其NWE/NWR0接存儲器的NWE,NUB/NWR1接存儲器的NUB,NLB/A0接存儲器的NLB。外擴的RAM 的接法與外擴FLASH的接法類似。
(3)時鐘發(fā)生電路
AT91M42800A的時鐘既可以外接晶體,也可外接時鐘信號。當外接晶體時,由于其內帶振蕩電路,因此,外接32.768 kHz 的晶體后,可產生慢時鐘(SLCK)。由于SLCK頻率低,所以系統(tǒng)的功耗也很低。若想提高系統(tǒng)的工作頻率,則可通過PLLA或PLLB對其倍頻,以達到所要求的工作頻率。如果所需頻率不能通過PLL倍頻得到,則可由外接時鐘信號來提供。當外接時鐘信號時,可直接把時鐘信號接到XIN引腳上,XOUT引腳懸空。
(4)顯示電路
顯示電路可采用數碼管顯示或液晶顯示,由于液晶顯示的功耗低,故常采用這種顯示方式。該設計選用的液晶顯示模塊為LCM103。
(5)電源及復位電路
AT91M42800A內部帶有看門狗(WatchDog)電路,也可以外加WatchDog電路。本文中的例子采用的就是外加WatchDog電路的接法,所選用的器件是MAXIM公司生產的MAX6316LUK29CY。
4 典型應用
由于單片機AT91M42800A具有低功耗、高性能、片內資源豐富、尋址空間大等優(yōu)點,所以適合現場總線產品的開發(fā),其簡要硬件原理圖如圖2所示。圖中只給出主要器件的主要引腳接法,電源電路及其它引腳限于篇幅圖中未畫,讀者在實際的設計過程中可自行設定。
圖2 現場總線開發(fā)實例
5 存儲器空間分配
在本設計中,由于ARM7TDMI處理器的地址空間非常大(可達4G字節(jié))。因此,在重映射前,可將地址最低的4MB分配給內部存儲器,最高的4M 分配給內部外設,其余中間的地址空間(從0x00400000到0xFFFCFFFF)留給外部擴展的設備,這部分設備可由AT91M42800A 的八個片選來選擇。筆者選擇的AT91M42800A開發(fā)環(huán)境為ADS1.1,由于在實際的嵌入式系統(tǒng)中,ADS1.1提供的缺省存儲器映射不能滿足要求,而用戶的目標硬件有多個存儲器設備,且位于不同的位置,如上例中,AT91M42800A的四個片選分別給了外擴FLASH、外擴的RAM、以及FB3050的內部寄存器片選和存儲器片選,因此需要通過Scat-ter 文本文件來指定一段代碼或數據在加載和運行時在存儲器的不同位置,這個文本文件在命令行中由-scatter開關指定。在arm linker菜單的output 子菜單下有link type一項。link type 選項中,只要選擇 scatter,并指定scatter.scf 文件的存儲位置就可以了
【32位精簡指令集架構的AT91M42800A的設計與應用】相關文章:
工業(yè)設計制造技術的應用07-27
Home.Net模型/架構研究06-01
高職院;旌蠈W習模式設計與應用探究論文05-03
電氣自動化節(jié)能設計技術應用研究06-12
淺談多實體及多分支機構架構05-09
談三維制作軟件在園林設計中的應用08-30
自動化技術在機械設計制造中應用淺析論文05-15