<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 32位精簡指令集架構(gòu)的AT91M42800A的設(shè)計與應(yīng)用

          32位精簡指令集架構(gòu)的AT91M42800A的設(shè)計與應(yīng)用

          ——
          作者:谷麗華 辛?xí)詫?汪 瀅 時間:2007-09-05 來源:國外電子元器件 收藏

            摘要:介紹了ATMEL公司生產(chǎn)的基于32位(RISC)架構(gòu)的AT91M42800A的特點,提出了一種基于AT91M42800A的應(yīng)用設(shè)計方案,給出該設(shè)計的硬件原理圖,同時針對AT91M42800A的存儲器空間分配問題,給出了分散裝載的程序代碼舉例,從而為基于AT91M42800A的嵌入式系統(tǒng)設(shè)計提供了一個思路。

              關(guān)鍵詞:

          1 引言

            目前,嵌入式產(chǎn)品逐步占領(lǐng)了PC市場,而其核心部分——處理器的性能則決定了產(chǎn)品的設(shè)計和性能。在32位嵌入式處理器中, 由ATMEL 公司生產(chǎn)的AT91系列芯片之一AT91M42800A是基于ARM7TDMI 處理器內(nèi)核的16/32位微控制器,它除具有ARM處理器的低功耗、低成本、高性能等優(yōu)點外,還具有非常豐富的片內(nèi)資源,特別適合于嵌入式產(chǎn)品的設(shè)計開發(fā)。

          2 AT91M42800A 的基本特性

           ?。粒裕梗保停矗玻福埃埃敛捎茫常参?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/精簡指令集">精簡指令集(RISC)架構(gòu),因此,它既支持16位Thumb指令集,又支持32位的Arm指令集。它采用三級流水線結(jié)構(gòu),可在同一時間內(nèi),一條指令在執(zhí)行,第二條指令在譯碼,第三條指令在取指,這樣,在每個周期都有一條指令在執(zhí)行,因此,指令執(zhí)行速度很快。AT91M42800A的基于先進(jìn)微控制器總線結(jié)構(gòu)(AMBA)的模塊化設(shè)計方法具有綜合、快速、高性能價格比的特點。該微控制器的內(nèi)部工作寄存器很多,非常適合實時控制應(yīng)用。其主要特點如下:

            ●內(nèi)核電壓和鎖相環(huán)電壓為2.7~3.6V, I/O口操作電壓為2.7~5.5V;

            ●內(nèi)部帶有8kB靜態(tài)RAM;

            ●具有完全可編程外部總線接口(EBI),且多達(dá)8個片選,尋址空間很大;

            ●內(nèi)含8通道外設(shè)數(shù)據(jù)控制器(PDC);

            ●帶有54個可編程I/O口;

            ●內(nèi)含6通道16位定時/計數(shù)器;

            ●具有2個通用串行異步接收/發(fā)送器(USART)和2個主/從SPI接口;

            ●內(nèi)含3個系統(tǒng)定時器;

            ●時鐘可由32768 Hz 晶體和內(nèi)部鎖相環(huán)(PLL)電路產(chǎn)生,最高可編程至33MHz,也可由外部時鐘信號提供;

            ●內(nèi)置嵌入式在線仿真電路(Embedded ICE)可通過JTAG口對AT91M42800A進(jìn)行測試。

          3 基本組成系統(tǒng)

            由AT91M42800A構(gòu)成的最基本的系統(tǒng)至少應(yīng)包括以下幾個部分:

          (1)程序存儲器(ROM)

            由于AT91M42800A 內(nèi)部沒有ROM,因此,必須外擴(kuò)一片程序存儲器。應(yīng)當(dāng)注意的是:AT91M42800A的8位總線和16位總線的FLASH接法不同,具體接法如圖1所示。

          (2)數(shù)據(jù)存儲器RAM

            如果設(shè)計的系統(tǒng)比較復(fù)雜,數(shù)據(jù)比較多,當(dāng)內(nèi)部8kB SRAM不能滿足要求時,還要外擴(kuò)一片數(shù)據(jù)存儲器。AT91M42800A能夠支持兩種“寫”方式,但對8位數(shù)據(jù)總線和16位數(shù)據(jù)總線的操作也是不同的,因此,對于不同的存儲器,其接法不同。對于8位總線的存儲器,只需接D0~D7,將D8~D15懸空,并將其地址線對接,而單片機(jī)的NWE/NWR0接到存儲器的NWE上。對于16位總線的存儲器,則將其數(shù)據(jù)線對接,A1~A17接存儲器的A0~A16,并將其NWE/NWR0接存儲器的NWE,NUB/NWR1接存儲器的NUB,NLB/A0接存儲器的NLB。外擴(kuò)的RAM 的接法與外擴(kuò)FLASH的接法類似。

          (3)時鐘發(fā)生電路

           ?。粒裕梗保停矗玻福埃埃恋臅r鐘既可以外接晶體,也可外接時鐘信號。當(dāng)外接晶體時,由于其內(nèi)帶振蕩電路,因此,外接32.768 kHz 的晶體后,可產(chǎn)生慢時鐘(SLCK)。由于SLCK頻率低,所以系統(tǒng)的功耗也很低。若想提高系統(tǒng)的工作頻率,則可通過PLLA或PLLB對其倍頻,以達(dá)到所要求的工作頻率。如果所需頻率不能通過PLL倍頻得到,則可由外接時鐘信號來提供。當(dāng)外接時鐘信號時,可直接把時鐘信號接到XIN引腳上,XOUT引腳懸空。

          (4)顯示電路

            顯示電路可采用數(shù)碼管顯示或液晶顯示,由于液晶顯示的功耗低,故常采用這種顯示方式。該設(shè)計選用的液晶顯示模塊為LCM103。

          (5)電源及復(fù)位電路

           ?。粒裕梗保停矗玻福埃埃羶?nèi)部帶有看門狗(WatchDog)電路,也可以外加WatchDog電路。本文中的例子采用的就是外加WatchDog電路的接法,所選用的器件是MAXIM公司生產(chǎn)的MAX6316LUK29CY。

          4 典型應(yīng)用

            由于單片機(jī)AT91M42800A具有低功耗、高性能、片內(nèi)資源豐富、尋址空間大等優(yōu)點,所以適合現(xiàn)場總線產(chǎn)品的開發(fā),其簡要硬件原理圖如圖2所示。圖中只給出主要器件的主要引腳接法,電源電路及其它引腳限于篇幅圖中未畫,讀者在實際的設(shè)計過程中可自行設(shè)定。

          5 存儲器空間分配

            在本設(shè)計中,由于ARM7TDMI處理器的地址空間非常大(可達(dá)4G字節(jié))。因此,在重映射前,可將地址最低的4MB分配給內(nèi)部存儲器,最高的4M 分配給內(nèi)部外設(shè),其余中間的地址空間(從0x00400000到0xFFFCFFFF)留給外部擴(kuò)展的設(shè)備,這部分設(shè)備可由AT91M42800A 的八個片選來選擇。筆者選擇的AT91M42800A開發(fā)環(huán)境為ADS1.1,由于在實際的嵌入式系統(tǒng)中,ADS1.1提供的缺省存儲器映射不能滿足要求,而用戶的目標(biāo)硬件有多個存儲器設(shè)備,且位于不同的位置,如上例中,AT91M42800A的四個片選分別給了外擴(kuò)FLASH、外擴(kuò)的RAM、以及FB3050的內(nèi)部寄存器片選和存儲器片選,因此需要通過Scat-ter 文本文件來指定一段代碼或數(shù)據(jù)在加載和運(yùn)行時在存儲器的不同位置,這個文本文件在命令行中由-scatter開關(guān)指定。在arm linker菜單的output 子菜單下有link type一項。link type 選項中,只要選擇 scatter,并指定scatter.scf 文件的存儲位置就可以了。在下面的例子中,FLASH中的代碼和數(shù)據(jù)存儲在0x04000000起始的、長度為32kB的地址空間中。

            由于Start. s:匯編引導(dǎo)程序代碼在執(zhí)行重映射后,中斷向量表將存放在內(nèi)部RAM中,其地址范圍為0x00000000到0x00000018,因此,用于存放數(shù)據(jù)的實際地址是從0x00000020開始的。存放在外擴(kuò)RAM中的代碼放在ext_ram.c中,以下類似。上例的scatter 文本文件代碼如下:

          FLASH 0x04000000 0x8000

          {

          FLASH 0x04000000 0x8000

          {

          Start.o (Reset, +First)

          * (+RO)

          }

          RAM ON CHIP 0x0020 0x2000

          {

          *(+RW,+ZI)

          }

          RAM OFF CHIP 0x8000000 0x40000

          {

          ext ram.o(+RW,+ZI)

          }

          FB3050 SEND 0x30000000 0x00ff

          {

          sendbuf.o(+RW,+ZI)

          }

          FB3050 RECEIVE 0x30004000 0x00ff

          {

          receive buf.o+RW+ZI

              }

              }

          6 調(diào)試要點

            在設(shè)計調(diào)試過程中,AT91M42800A還有幾個特殊的引腳需要特別注意。

            BMS:此引腳用來選擇引導(dǎo)存儲器的數(shù)據(jù)寬度,如果引導(dǎo)存儲器是8位的,應(yīng)將其上拉,而如果為16位則要下拉。

           ?。危裕遥桑捍艘_用來選擇三態(tài)模式。如果要進(jìn)入三態(tài)模式,應(yīng)使NTRI引腳在NRST上升沿到來之前保持10個慢時鐘周期的低電平,否則,則應(yīng)將NTRI上拉。

           ?。危祝粒桑裕捍艘_在調(diào)試AT91M42800A?xí)r,應(yīng)將其上拉,否則,系統(tǒng)將進(jìn)入等待狀態(tài)。

            MODE0、MODE1:這兩個引腳用來選擇AT91M42800A的4種操作模式,當(dāng)模式改變時,必須進(jìn)行復(fù)位才能有效。其設(shè)置方法如表1所列。

          表1 操作模式設(shè)置

          MODE0 MODE1 操  作  模  式
          0 0 通用模式(時鐘由片上振蕩電路產(chǎn)生)
          0 1 邊界掃描模式
          1 0 通用模式(時鐘由外時鐘信號通過XIN引腳)
          1 1 保留

          7 結(jié)束語

           ?。粒裕梗保停矗玻福埃埃潦且豢钐幚砟芰Ψ浅?qiáng)、性能價格比非常高的嵌入式微控制器,它具有32位處理器的處理能力,但卻只有16位處理器的價格。它豐富的片上資源和強(qiáng)大的擴(kuò)展能力為嵌入式系統(tǒng)的開發(fā)設(shè)計提供了很大靈活性。

           



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();