




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 機(jī)器人的控制器4. 1 68HC11E1控制器4. 2 LPC2132控制器4. 3 ARM Cortex-M3控制器4. 4 ATmega128控制器返回4. 1 68HC11E1控制器68HC11E1微處理器由美國(guó)摩托羅拉公司生產(chǎn)研發(fā),功能齊全。其具有8個(gè)模擬口 ,5個(gè)輸入捕捉、3個(gè)PWM輸出、16位地址和8位數(shù)據(jù)總線,以及4個(gè)通用I/O口。同時(shí),68HC11E1的自下載功能使用戶(hù)方便軟件開(kāi)發(fā)。上海廣茂達(dá)公司生產(chǎn)的能力風(fēng)暴AS-M就是以68HC11E 1微處理器作為機(jī)器人的控制器核心。常見(jiàn)芯片的封裝形式有兩種雙列直插(DIP)和塑料扁平封裝(PLCC),如圖4-1和圖4-2所示。4
2、. 1. 1 68HC11E1微控制器68HC11E1微控制器由CPU、片內(nèi)存儲(chǔ)器、定時(shí)器系統(tǒng)、串行口、A/D、并行I/O口及中斷和復(fù)位系統(tǒng)組成,如圖4-3所示。1.片內(nèi)存儲(chǔ)器下一頁(yè)返回4. 1 68HC11E1控制器68HC11E1微控制器無(wú)內(nèi)部ROM,只有512字節(jié)EEPROM和可重定位的256字節(jié)RAM。 2.定時(shí)器和脈沖電路16位高性能定時(shí)器系統(tǒng),8M晶振,定時(shí)器頻率為2MHz(周期0. 5s) ,3個(gè)輸入捕捉,可測(cè)量脈沖數(shù)量,脈沖周期、寬度和相位等;5個(gè)輸出比較,可輸出PWM信號(hào),可以完成各種定時(shí)控制功能,有定時(shí)器溢出中斷功能。能力風(fēng)暴AS-M中用輸入捕捉計(jì)數(shù)碼盤(pán)信號(hào),利用輸出比較功
3、能控制直流電機(jī)。3.串行口串行口主要有串行通信接口SCI和全雙工同步串行外圍接口SPI兩種形式,其中,串行通信接口SCI主要用于和PC機(jī)通信;上一頁(yè)下一頁(yè)返回4. 1 68HC11E1控制器全雙工同步串行外圍接口SPI(如圖4-4所示),Motorola單片機(jī)獨(dú)有的串口標(biāo)準(zhǔn),速度可達(dá)2Mbps以上,主要用于擴(kuò)展外圍芯片和多機(jī)通信。4. A/D轉(zhuǎn)換器8個(gè)輸入通道和四個(gè)轉(zhuǎn)換結(jié)果寄存器,具有一次完成四路A/D轉(zhuǎn)換或連續(xù)對(duì)同一路采樣轉(zhuǎn)換4次的功能,其中后一種功能可以方便實(shí)施去掉最大、最小、取均位的濾波方法。碰觸開(kāi)關(guān)變量和聲音信號(hào)等均可以使用A/D轉(zhuǎn)換器,且非常方便,這也是68HC11E1微控制器的特色
4、。共有16個(gè)硬件中斷和兩個(gè)軟件中斷,它們各有獨(dú)立的中斷向量和中斷允許位,響應(yīng)中斷時(shí)能自動(dòng)保護(hù)所有的CPU寄存器。具有實(shí)時(shí)中斷電路,可每隔指定的時(shí)間產(chǎn)生一次中斷。上一頁(yè)下一頁(yè)返回4. 1 68HC11E1控制器5.并行I/ O口單片方式工作時(shí),有38個(gè)I/O 口;擴(kuò)展方式時(shí),有8位數(shù)據(jù)單線和16位地址總線,可擴(kuò)展64 K存儲(chǔ)器。6.復(fù)位系統(tǒng)和電源計(jì)算機(jī)有多種復(fù)位方式:上電自動(dòng)復(fù)位;外部RESET復(fù)位;看門(mén)狗復(fù)位(軟件工作不正常時(shí));時(shí)鐘監(jiān)視復(fù)位。7. 68HC11E1管腳68HC11E1管腳的一大特色是功耗低,其工作電流小于15 mA,有WAIT和STOP兩種省電模式)68HC11E1管腳如圖4
5、-5所示。上一頁(yè)下一頁(yè)返回4. 1 68HC11E1控制器4.1.2外部存儲(chǔ)器在68HC11E1微控制器上擴(kuò)展了32 K的靜態(tài)不揮發(fā)RAM,其優(yōu)點(diǎn)是既具有靜態(tài)RAM的速度(70ns),又有EEPROM或FlashRom的掉電不丟失性,從而能將程序和數(shù)據(jù)合用一個(gè)芯片。AS62256寫(xiě)入的數(shù)據(jù)可保存10年以上,同時(shí)具有可靠的上電、掉電、強(qiáng)靜電等數(shù)據(jù)保護(hù)功能。1.選址和并行口擴(kuò)展32K RAM用了A0A14共15根地址線,構(gòu)成32K的地址空間,A15為高電平時(shí)和E,RESET等信號(hào)復(fù)合片選32K RAM,因此,32K RAM的地址空間為0X8000 - OXFFFF。上一頁(yè)下一頁(yè)返回4. 1 68H
6、C11E1控制器另一根地址線A15和其余地址線及讀/寫(xiě)線復(fù)合擴(kuò)展4個(gè)輸入控制線和4個(gè)輸出控制線,如圖4-6所示。地址空間與8個(gè)讀/寫(xiě)控制線見(jiàn)表4-1。 2. 68HC11E1地址空間的分配以能力風(fēng)暴AS-U智能機(jī)器人為例,操作系統(tǒng)ASOS放在高端內(nèi)存10K左右,往下到8 000之上有近20 K左右是用戶(hù)程序空間。在下載用戶(hù)程序的時(shí)候,會(huì)顯示編譯后代碼有多少字節(jié)和存放的位置,如圖4-7所示。4.1.3電源與復(fù)位電路能力風(fēng)暴AS-M控制板采用Maxim603穩(wěn)壓芯片,提供500 mA , 5 V電壓,該芯片自身的功耗很低。上一頁(yè)下一頁(yè)返回4. 1 68HC11E1控制器低電壓復(fù)位保護(hù)電路采用DS1
7、233 D-10,當(dāng)電壓低于4. 5 V時(shí),將產(chǎn)生復(fù)位信號(hào),同時(shí)紅色RST發(fā)光二極管變亮,如圖4-8所示。未使用擴(kuò)展電池電機(jī)的供電是由系統(tǒng)電源提供的,而使用擴(kuò)展電池電機(jī)供電時(shí),系統(tǒng)電源只為主板電路提供電能。主板上有兩個(gè)電池連接插座,擴(kuò)展電池接口只用來(lái)為電機(jī)(兩只輪子驅(qū)動(dòng)電機(jī)、MDCA3直流電機(jī)、伺服電機(jī))提供電源,使用時(shí)要將主板左下角的短路跳線帽從SBAT(擴(kuò)展電池)位置移到BEXT(使用擴(kuò)展電池)位置,這時(shí)所有電機(jī)的電源都來(lái)自擴(kuò)展電池。上一頁(yè)下一頁(yè)返回4. 1 68HC11E1控制器4.1.4通信能力風(fēng)暴AS-M采用MAX202串口驅(qū)動(dòng)芯片,PC發(fā)過(guò)來(lái)的信號(hào)經(jīng)過(guò)U4E和U4F去驅(qū)動(dòng)SCI發(fā)光
8、二極管,因此,PC傳數(shù)據(jù)給能力風(fēng)暴時(shí),黃色SCI發(fā)光二極管會(huì)閃動(dòng),如圖4-9所示。4.1.5電機(jī)驅(qū)動(dòng)電路電機(jī)采用直流電機(jī)驅(qū)動(dòng)芯片U7(SN754410)進(jìn)行驅(qū)動(dòng),其連接電路如圖4-10所示。直流電機(jī)在一定電壓下,轉(zhuǎn)速與轉(zhuǎn)矩成反比;如果改變電壓,則轉(zhuǎn)速轉(zhuǎn)矩會(huì)隨電壓的升降而升降(如圖4-11所示)。上一頁(yè)下一頁(yè)返回4. 1 68HC11E1控制器通過(guò)改變電機(jī)電壓的方式來(lái)改變電機(jī)的轉(zhuǎn)速。機(jī)器人提供給電機(jī)的信號(hào)是方波,其中不同方波的平均電壓不同(如圖4-12所示),我們就利用這一點(diǎn)來(lái)進(jìn)行能力風(fēng)暴智能機(jī)器人的速度控制。采用不同的脈寬調(diào)節(jié)平均電壓的高低,進(jìn)而調(diào)節(jié)電機(jī)的轉(zhuǎn)速,即脈寬調(diào)制(PWM,Pulse
9、Width Modulation)。 PAS,PA6分別給SN754410發(fā)脈寬調(diào)制信號(hào),通過(guò)改變脈沖寬度來(lái)調(diào)節(jié)輸入到電機(jī)的平均電壓。SN754410每路電機(jī)控制輸出為1A,并有超載保護(hù)功能。上一頁(yè)返回4. 2 LPC2132控制器AS-U是能力風(fēng)暴大學(xué)版機(jī)器人,是專(zhuān)門(mén)為大學(xué)進(jìn)行課程教學(xué)、工程訓(xùn)練、科技創(chuàng)新的新一代智能移動(dòng)機(jī)器人。 AS-U有功能強(qiáng)大的微處理系統(tǒng)和傳感器系統(tǒng),而且它還能擴(kuò)展聽(tīng)覺(jué)、視覺(jué)和觸覺(jué),是真正意義上的智能機(jī)器人,其外形如圖4-13所示。能力風(fēng)暴AS-U采用NXP公司的LPC2132微處理器為控制核心。LPC2132是一個(gè)基于支持實(shí)時(shí)仿真和嵌入式跟蹤的32/16位微控制器,并
10、帶有64 KB的高速Flash存儲(chǔ)器。128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行;對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過(guò)30%,而性能的損失卻很小;下一頁(yè)返回4. 2 LPC2132控制器LQFP64封裝和極低的功耗可使LPC2132理想地用于小型系統(tǒng)中;寬范圍的串行通信接口和片內(nèi)16 KB的SRAM使LPC2132非常適用于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、軟Modern、聲音辨別和低端成像,并為它們提供巨大的緩沖區(qū)空間和強(qiáng)大的處理功能;多個(gè)32位定時(shí)器、8路10位ADC ,1路10位DAC ,PWM通道和47個(gè)GPIO以及多達(dá)9個(gè)邊沿或
11、電平觸發(fā)的外部中斷使其特別適用于工業(yè)控制和醫(yī)療系統(tǒng)。 LPC2132包含一個(gè)支持仿真的ARM7TDMI-SCPU、與片內(nèi)存儲(chǔ)器控制器接口的ARM7局部總線、與中斷控制器接口的AMBA高性能總線(AHB)和連接片內(nèi)外設(shè)功能的VLSI外設(shè)總線(VPB,ARMAMBA總線的兼容超集)。上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器LPC2132將ARM7TDMI-S配置為小端(little-endian)字節(jié)順序。AHB外設(shè)分配了2M字節(jié)的地址范圍,它位于4G字節(jié)ARM存儲(chǔ)器空間的頂端。每個(gè)AHB外設(shè)都分配了16K字節(jié)的地址空間,2132的外設(shè)功能(中斷控制器除外)都連接到VPB總線,AHB到VPB
12、的橋?qū)PB總線與AHB總線相連。VPB外設(shè)也分配了2M字節(jié)的地址范圍,其從3. SGB地址點(diǎn)開(kāi)始。每個(gè)VPB外設(shè)在VPB地址空間內(nèi)都分配了16 KB的地址空間。片內(nèi)外設(shè)與器件管腳的連接由管腳連接模塊控制,該模塊必須由軟件進(jìn)行控制以符合外設(shè)功能與管腳在特定應(yīng)用中的需求。4.2.1 ARM7TDMI-S處理器ARM7TDMI-S是通用的32位微處理器,具有高性能和低功耗的特性。上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器ARM結(jié)構(gòu)是基于精簡(jiǎn)指令集計(jì)算機(jī)(RISC原理而設(shè)計(jì)的,其指令集和相關(guān)的譯碼機(jī)制比復(fù)雜指令集計(jì)算機(jī)要簡(jiǎn)單得多,這樣使用一個(gè)小的、廉價(jià)的處理器內(nèi)核就可實(shí)現(xiàn)很高的指令吞吐量和實(shí)時(shí)的
13、中斷響應(yīng)。由于使用了流水線技術(shù),其處理和存儲(chǔ)系統(tǒng)的所有部分都可連續(xù)工作。通常在執(zhí)行一條指令的同時(shí)對(duì)下一條指令進(jìn)行譯碼,并將第三條指令從存儲(chǔ)器中取出。ARM7TDMI-S處理器使用了一個(gè)被稱(chēng)為T(mén)HUMB的獨(dú)特結(jié)構(gòu)化策略,它非常適用于那些對(duì)存儲(chǔ)器有限制或者需要較高代碼密度的大批量產(chǎn)品的應(yīng)用。在THUMB后面一個(gè)關(guān)鍵的概念是“超精簡(jiǎn)指令集”?;旧?,ARM7TDMI-S處理器具有兩個(gè)指令集:1)標(biāo)準(zhǔn)32位ARM指令集2) 16位THUMB指令集上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器THUMB指令集的16位指令長(zhǎng)度使其可以達(dá)到標(biāo)準(zhǔn)ARM代碼兩倍的密度,卻仍然保持ARM的大多數(shù)性能上的優(yōu)勢(shì),這些
14、優(yōu)勢(shì)是16位寄存器的16位處理器所不具備的。4. 2. 2片內(nèi)存儲(chǔ)器1.片內(nèi)Flash程序存儲(chǔ)器LPC2132含有64 KB的Flash存儲(chǔ)器系統(tǒng),該存儲(chǔ)器可用作代碼和數(shù)據(jù)的存儲(chǔ)。對(duì)Flash存儲(chǔ)器的編程可通過(guò)幾種方法來(lái)實(shí)現(xiàn):通過(guò)內(nèi)置的串行JTAG接口;通過(guò)在系統(tǒng)編程(ISP)和UARTO,或通過(guò)在應(yīng)用編程(IAP )。上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器使用在應(yīng)用編程的應(yīng)用程序也可以在應(yīng)用程序運(yùn)行時(shí)對(duì)Flash進(jìn)行擦除和(或)編程,這樣就為數(shù)據(jù)存儲(chǔ)和現(xiàn)場(chǎng)固件的升級(jí)帶來(lái)了極大的靈活性。如果LPC2131/2132/2138使用了片內(nèi)引導(dǎo)裝載程序(bootloader) ,64 KB的
15、Flash存儲(chǔ)器就可用來(lái)存放用戶(hù)代碼。LPC2132的Flash存儲(chǔ)器至少可擦除/編程10 000次,保存數(shù)據(jù)的時(shí)間可長(zhǎng)達(dá)10年。 2.片內(nèi)靜態(tài)RAM片內(nèi)靜態(tài)RAM(SRAM)可用作代碼和(或)數(shù)據(jù)的存儲(chǔ),其支持8位、16位和32位的訪問(wèn)。LPC2131/2132/2138含有16KB的靜態(tài)RAM , LPC2132 SRAM是一個(gè)字節(jié)尋址的存儲(chǔ)器。上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器對(duì)存儲(chǔ)器進(jìn)行字和半字訪問(wèn)時(shí)將忽略地址對(duì)準(zhǔn),而訪問(wèn)被尋址的自然對(duì)準(zhǔn)值(因此,對(duì)存儲(chǔ)器進(jìn)行字訪問(wèn)時(shí)將忽略地址位0和1,半字訪問(wèn)時(shí)將忽略地址位0)。因此,有效的讀寫(xiě)操作要求半字?jǐn)?shù)據(jù)訪問(wèn)的地址線0為0(地址以0
16、,2,4,6,8,A,C和E結(jié)尾),字?jǐn)?shù)據(jù)訪問(wèn)的地址線0和1都為0(地址以0,4,8和C結(jié)尾)。該原則同樣用于片外和片內(nèi)存儲(chǔ)器。SRAM控制器包含一個(gè)回寫(xiě)緩沖區(qū),它用于防止CPU在連續(xù)的寫(xiě)操作時(shí)停止運(yùn)行?;貙?xiě)緩沖區(qū)總是保存著軟件發(fā)送到SRAM的最后一個(gè)字節(jié),且該數(shù)據(jù)只有在軟件請(qǐng)求下一次寫(xiě)操作時(shí)才寫(xiě)入SRAM(數(shù)據(jù)只有在軟件執(zhí)行另外一次寫(xiě)操作時(shí)被寫(xiě)入SRAM )。上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器如果發(fā)生芯片復(fù)位,則實(shí)際的SRAM內(nèi)容將不會(huì)反映最近一次的寫(xiě)請(qǐng)求(即在一次“熱”芯片復(fù)位后,SRAM不會(huì)反映最后一次寫(xiě)入的內(nèi)容),任何在復(fù)位后檢查SRAM內(nèi)容的程序都必須注意這一點(diǎn)。通過(guò)對(duì)一
17、個(gè)單元執(zhí)行兩次相同的寫(xiě)操作可保證復(fù)位后數(shù)據(jù)的寫(xiě)入,或也可通過(guò)在進(jìn)入空閑或掉電模式前執(zhí)行虛寫(xiě)(dummy write)操作來(lái)保證最后的數(shù)據(jù)在復(fù)位后被真正寫(xiě)入到SRAM。其功能框如圖4-14所示。4. 2. 3電源電路設(shè)計(jì)1.電源電源原理如圖4-15所示。上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器考慮到整個(gè)系統(tǒng)耗電較小,電壓在SV下最大僅為200 mA ,USB最大可供電5 V x 500 mA,所以采用USB U供電,P1為USB接 , SW1為電源開(kāi)關(guān),L0為電源指示燈,以方便用戶(hù)控制電源。由于LPC2132內(nèi)部自帶有3. 3 V轉(zhuǎn)1. 8 V裝置為內(nèi)核供電,所以LPC2132系統(tǒng)只需提供
18、一個(gè)3. 3 V電源即可。圖4-15中U1即一款滿(mǎn)足要求的電源IC:AMS1117-3.3,該電源的輸入電壓范圍為3. 312 V,輸出電壓為3. 3 V,精度可達(dá)1% ,輸出能力為800 mA,同時(shí)具有電流限制和熱保護(hù)功能。基于穩(wěn)定性和抗干擾方面的考慮,我們用電感將數(shù)字地和模擬地進(jìn)行了隔離處理,如圖4-15所示中的L02和L03 。 2.復(fù)位電路上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器由于ARM芯片的高速度、低功耗、低工作電壓使得其噪聲容限低,所以對(duì)電源的紋波、瞬態(tài)響應(yīng)性能、時(shí)鐘源的穩(wěn)定性、電源監(jiān)控等諸多方面的要求較高。復(fù)位電路采用一顆微處理器專(zhuān)用的電源監(jiān)控芯片STM811,如圖4-1
19、6所示。該芯片在初次上電和系統(tǒng)電壓小于3V時(shí)會(huì)輸出復(fù)位信號(hào),同時(shí)此芯片不需要任何外圍電路,且?guī)в惺謩?dòng)復(fù)位功能。 3.系統(tǒng)時(shí)鐘電路 LPC2100系列ARM7微控制器可使用外部晶振或外部時(shí)鐘源,其片外晶振頻率范圍為130 MHz,如圖4-17所示的Y1,上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器內(nèi)部鎖相環(huán)電路PLL可調(diào)整系統(tǒng)時(shí)鐘,通過(guò)片內(nèi)PLL可實(shí)現(xiàn)最大為60 MHz的CPU操作頻率,實(shí)時(shí)時(shí)鐘具有獨(dú)立的時(shí)鐘源,如圖4-17所示的Y2,32 768 kHz晶振。4.串口電路由于系統(tǒng)是3. 3 V供電,選取MAX3232進(jìn)行R5232作電平轉(zhuǎn)換,MAX3232是在3V工作電壓下的RS232電平轉(zhuǎn)
20、換芯片。另外,LPC213X系列ARM7微控制器的UART1帶有完整的調(diào)制解調(diào)器(MODEM)接口,所以選用8路R 5232電平轉(zhuǎn)換芯片SP3243。如圖4-18所示,RS-9-1和RS-9-2為標(biāo)準(zhǔn)DB9接頭,能夠接插到電腦串口或調(diào)制解調(diào)器接口上,DB9接頭的第二腳為計(jì)算機(jī)的數(shù)據(jù)接收端,第三腳為計(jì)算機(jī)的數(shù)據(jù)發(fā)送端。上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器圖4-18中轉(zhuǎn)換芯片電路中的電容是必不可少的,主要用以提供轉(zhuǎn)換電路所需的不同電壓。5. A/D和D/A電路R102為精密可調(diào)電阻,調(diào)節(jié)該電阻可以改變AD1測(cè)量的值,R101在開(kāi)發(fā)板上一般為空,以留給用戶(hù)選擇合適的用途,如可以接熱敏電阻等
21、。D/A輸出到CON3的第三引腳上,用戶(hù)可以在這里量取D/A值。關(guān)于參考電壓,可以選擇VDD或用戶(hù)自己給定外部參考電壓,但不宜超過(guò)3. 3 V。選擇參考電壓應(yīng)參見(jiàn)開(kāi)發(fā)板上跳線集JT2的最下邊的一組跳線,當(dāng)跳線帽在左邊時(shí)則選取VDD為參考電壓,在右邊時(shí)則選取用戶(hù)外加的參考電壓,用戶(hù)的參考電壓要加在U8的VREF上,如圖4-19所示。上一頁(yè)下一頁(yè)返回4. 2 LPC2132控制器6.蜂鳴器電路LPC2132的P0. 29腳控制蜂鳴器,當(dāng)P0. 29腳為輸入狀態(tài)或輸出高電平時(shí),蜂鳴器無(wú)聲;當(dāng)P0. 29腳為輸出低電平時(shí),蜂鳴器鳴叫,如圖4 - 20所示。上一頁(yè)返回4. 3 ARM Cortex-M3
22、控制器ARM ( Advanced RISC Machines)既是一個(gè)公司的名字,也是對(duì)一類(lèi)微處理器的通稱(chēng),還可以認(rèn)為是一種技術(shù)的名字。ARM公司1991年成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器(即我們通常所說(shuō)的ARM微處理器),已遍及工業(yè)控制、消費(fèi)類(lèi)電子產(chǎn)品、通信系統(tǒng)、無(wú)線系統(tǒng)等各類(lèi)產(chǎn)品市場(chǎng)。4.3.1 Cortex-M3內(nèi)核概述ARM公司于2005年推出了Cortex-M3內(nèi)核,就在當(dāng)年ARM公司與其他投資商合伙成立了Luminary(流明諾瑞)公司,由該公司率先設(shè)計(jì)、生產(chǎn)與銷(xiāo)售基于Cortex-M3內(nèi)核的ARM芯片一Stellari
23、s(群星)系列ARM。下一頁(yè)返回4. 3 ARM Cortex-M3控制器Cortex-M3內(nèi)核是ARM公司整個(gè)Cortex內(nèi)核系列中的微控制器系列(M)內(nèi)核,并且其還是其他兩個(gè)系列應(yīng)用處理器系列(A)與實(shí)時(shí)控制處理系列(R)的內(nèi)核,這三個(gè)系列又分別簡(jiǎn)稱(chēng)為A,R,M系列,當(dāng)然這三個(gè)系列的內(nèi)核分別有各自不同的應(yīng)用場(chǎng)合,即Cortex - M3內(nèi)核的特點(diǎn)主要有:(1)CorteX-M3內(nèi)核主要應(yīng)用于低成本、小管腳數(shù)和低功耗的場(chǎng)合,并且具有極高的運(yùn)算能力和極強(qiáng)的中斷響應(yīng)能力。(2) Cortex-M3處理器采用純Thumb2指令的執(zhí)行方式,使得這個(gè)具有32位高性能的ARM內(nèi)核能夠?qū)崿F(xiàn)8位和16位的代
24、碼存儲(chǔ)密度。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器 (3) Cortex-M3采用了ARM V7哈佛架構(gòu),具有帶分支預(yù)測(cè)的3級(jí)流水線,中斷延遲最大只有12個(gè)時(shí)鐘周期,且在末尾連鎖的時(shí)候只需要6個(gè)時(shí)鐘周期。同時(shí)其還具有1. 25 DMIPS/MHz的性能和0. 19 mW/MHz的功耗。 從ARM7TM升級(jí)為Cortex-M3可獲取更佳的性能和功效。在過(guò)去10年中,ARM7系列處理器被廣泛應(yīng)用于眾多領(lǐng)域。之后,Cortex-M3在ARM7的基礎(chǔ)上開(kāi)發(fā)成功,為基于ARM7處理器系統(tǒng)的升級(jí)開(kāi)辟了通道。它的中心內(nèi)核效率更高,編程模型更簡(jiǎn)單,且具有出色的確定中斷行為,其集成外設(shè)以低成
25、本提供了更強(qiáng)大的性能。ARM7TDMI-S與Cortex-M3的比較見(jiàn)表4 -2。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器4.3.2 Cortex-M3內(nèi)核結(jié)構(gòu)基于ARMV7架構(gòu)的Cortex-M3處理器帶有一個(gè)分級(jí)結(jié)構(gòu),實(shí)現(xiàn)了內(nèi)置的中斷控制、存儲(chǔ)器保護(hù)以及系統(tǒng)的調(diào)試和跟蹤功能。這些外設(shè)可進(jìn)行高度配置,允許Cortex-M3處理器處理大范圍的應(yīng)用并更貼近系統(tǒng)的需求。目前Cortex-M3內(nèi)核和集成部件(如圖4 -21所示)已進(jìn)行了專(zhuān)門(mén)的設(shè)計(jì),用于實(shí)現(xiàn)最大存儲(chǔ)容量、最少管腳數(shù)目和極低功耗。Cortex-M3中央內(nèi)核基于哈佛架構(gòu),指令和數(shù)據(jù)各使用一條總線,ARM7系列處理器使用馮
26、諾依曼(Von Neumann)架構(gòu),指令和數(shù)據(jù)共用信號(hào)總線以及存儲(chǔ)器。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器由于指令和數(shù)據(jù)可以從存儲(chǔ)器中同時(shí)讀取,所以Cortex-M3處理器對(duì)多個(gè)操作并行執(zhí)行,加快了應(yīng)用程序的執(zhí)行速度。Cortex-M3內(nèi)核包含一個(gè)適用于傳統(tǒng)Thumb和新型Thumb-2指令的譯碼器、一個(gè)支持硬件乘法和硬件除法的先進(jìn)ALU,控制邏輯和用于連接處理器其他部件的接口。內(nèi)核流水線分3個(gè)階段:取指、譯碼和執(zhí)行。當(dāng)遇到分支指令時(shí),譯碼階段也包含預(yù)測(cè)的指令取指,這提高了執(zhí)行的速度。處理器在譯碼階段可自行對(duì)分支目的地指令進(jìn)行取指。在稍后的執(zhí)行過(guò)程中,處理完分支指令后便
27、知道下一條要執(zhí)行的指令。如果分支不跳轉(zhuǎn),那么緊跟著的下一條指令隨時(shí)可供使用。如果分支跳轉(zhuǎn),那么在跳轉(zhuǎn)的同時(shí)分支指令可供使用,空閑時(shí)間限制為一個(gè)周期。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器Cortex-M3處理器是一個(gè)32位處理器,帶有32位寬的數(shù)據(jù)路徑、寄存器庫(kù)和存儲(chǔ)器接口,其中包括13個(gè)通用寄存器、兩個(gè)堆棧指針、一個(gè)鏈接寄存器、一個(gè)程序計(jì)數(shù)器和一系列包含編程狀態(tài)寄存器的特殊寄存器。Cortex-M3處理器支持兩種工作模式線程(Thread和處理器(Handler及兩個(gè)等級(jí)的代碼訪問(wèn)(有特權(quán)和無(wú)特權(quán)),能夠在不犧牲應(yīng)用程序安全的前提下執(zhí)行復(fù)雜的開(kāi)放式系統(tǒng)。無(wú)特權(quán)代碼執(zhí)行限制
28、或拒絕對(duì)某些資源的訪問(wèn),如某個(gè)指令或指定的內(nèi)存位置。線程模式是常用的工作模式,它同時(shí)支持享有特權(quán)的代碼以及沒(méi)有特權(quán)的代碼。當(dāng)發(fā)生異常時(shí),進(jìn)入處理器模式,在該模式中所有代碼都享有特權(quán)。此外,所有操作均根據(jù)以下兩種工作狀態(tài)進(jìn)行分類(lèi):Thumb代表常規(guī)執(zhí)行操作和Debug代表調(diào)試操作。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器4.3.3 Cortex-M3存儲(chǔ)器映射Cortex-M3處理器是一個(gè)存儲(chǔ)器映射系統(tǒng),能為高達(dá)4GB的可尋址存儲(chǔ)空間提供簡(jiǎn)單和固定的存儲(chǔ)器映射,同時(shí),這些空間可以為代碼(代碼空間),SRAM(存儲(chǔ)空間)、外部存儲(chǔ)器/器件和內(nèi)部外部外設(shè)提供預(yù)定義的專(zhuān)用地址,同時(shí)還
29、有一個(gè)特殊區(qū)域?qū)iT(mén)供廠家使用(如圖4-22所示)。借助bit-handing技術(shù),Cortex-M3處理器可以在簡(jiǎn)單系統(tǒng)中直接對(duì)數(shù)據(jù)的單個(gè)位進(jìn)行訪問(wèn)。存儲(chǔ)器映射包含兩個(gè)位于SRAM的大小均為1MB的hit-hand區(qū)域和映射到32MB別名區(qū)域的外設(shè)空間。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器在別名區(qū)域中,某個(gè)地址上的加載/存儲(chǔ)操作將直接轉(zhuǎn)化為對(duì)被該地址別名的位操作。對(duì)別名區(qū)域中的某個(gè)地址進(jìn)行寫(xiě)操作,如果使其最低有效位置位,那么bit-band位為1,如果使其最低有效位清零,那么bit-band位為零。讀別名后的地址將直接返回適當(dāng)?shù)腷it-band位中的值。除此之外,該操作為
30、原子位操作,其他總線活動(dòng)不能對(duì)其中斷。 (1)對(duì)32MB SRAM別名區(qū)的訪問(wèn)映射為對(duì)1 MB SRAM bit-band區(qū)的訪問(wèn)。(2)對(duì)32MB外設(shè)別名區(qū)的訪問(wèn)映射為對(duì)1MB外設(shè)bit-band區(qū)的訪問(wèn)。映射公式顯示如何將別名區(qū)中的字與bit-band區(qū)中的對(duì)應(yīng)位或目標(biāo)位關(guān)聯(lián),其表示如下:上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器圖4 - 23顯示了SRAM bit-band名區(qū)和SRAM bit-band區(qū)之間的bit-band映射的例子:Cortex-M3處理器采用非對(duì)齊數(shù)據(jù)訪問(wèn)方式,使非對(duì)齊數(shù)據(jù)可以在單核訪問(wèn)中進(jìn)行傳輸。當(dāng)使用非對(duì)齊傳輸時(shí),這些傳輸將轉(zhuǎn)換為多個(gè)對(duì)齊傳輸
31、,但這一過(guò)程不為程序員所見(jiàn)。Cortex-M3處理器除了支持單周期32位乘法操作之外,還支持帶符號(hào)的和不帶符號(hào)的除法操作,這些操作使用SDIV和UDIV指令,根據(jù)操作數(shù)大小的不同在212個(gè)周期內(nèi)完成。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器如果被除數(shù)和除數(shù)大小接近,那么除法操作可以更快地完成。1.直接訪問(wèn)別名區(qū)向別名區(qū)寫(xiě)入一個(gè)字與在bit-band區(qū)的目標(biāo)位執(zhí)行讀一修改一寫(xiě)操作具有相同的作用。寫(xiě)入別名區(qū)的字的位0決定了寫(xiě)入bit-band區(qū)的目標(biāo)位的值。將位0為1的值寫(xiě)入別名區(qū)表示向bit-band位寫(xiě)入1,將位0為0的值寫(xiě)入別名區(qū)表示向bit-band位寫(xiě)入0。別名字的位3
32、1:1在bit-band位上不起作用,即寫(xiě)入0 x01與寫(xiě)入0 xFF的效果相同,寫(xiě)入0 x00與寫(xiě)入0 x0E的效果相同。讀別名區(qū)的一個(gè)字返回0 x01或0 x00。 0 x01表示bit-band區(qū)中的目標(biāo)位置位,0 x00表示目標(biāo)位清零,即位31:1將為0.上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器2.直接訪問(wèn)bit-band區(qū)Bit-band區(qū)能夠使用常規(guī)的讀和寫(xiě)以及寫(xiě)入該區(qū)操作進(jìn)行訪問(wèn)。4. 3. 4時(shí)鐘和復(fù)位1. Cortex-M3時(shí)鐘處理器含3個(gè)功能時(shí)鐘輸入。FOLK和HCLK互相同步,F(xiàn)OLK是一個(gè)自由振蕩的HCLK,FOLK和HCLK應(yīng)該互相平衡,以保證進(jìn)入C
33、ortex-M3時(shí)的延遲相同。見(jiàn)表4 -3。處理器集成了供調(diào)試和跟蹤使用的元件。宏單元可以包含表4 -4所示的一些或全部時(shí)鐘。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器SWCLK是串行線時(shí)鐘,用來(lái)對(duì)串行調(diào)試端口 (SW-DP)的SWDIN輸入進(jìn)行計(jì)時(shí)。 SWCLK與其他所有時(shí)鐘異步。TRACECLKIN是跟蹤端口接口單元(TPIU)的參考時(shí)鐘。它與其他所有時(shí)鐘異步。TCK是跟蹤訪問(wèn)端口( TAP)的時(shí)鐘,它對(duì)JTAG-DP TAP進(jìn)行計(jì)時(shí),TCK也與其他所有時(shí)鐘異步。Cortex-M3還包含一個(gè)STCLK輸入。這個(gè)端u不是時(shí)鐘,它是衡slick計(jì)數(shù)器的一個(gè)參考輸入,其頻率必須小
34、于FCLK/2。處理器將STCLK變成與FCLK內(nèi)部同步。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器2. Cortex-M3復(fù)位Cortex-M3處理器含3個(gè)復(fù)位輸入,見(jiàn)表4-5。3. Cortex-M3復(fù)位方式通過(guò)處理器設(shè)計(jì)中出現(xiàn)的復(fù)位信號(hào),用戶(hù)可以單獨(dú)對(duì)設(shè)計(jì)中的不同元件進(jìn)行復(fù)位。表4 -6列出了這些復(fù)位信號(hào)和它們的組合形式,以及可能的應(yīng)用。1)上電復(fù)位供宏單元使用的復(fù)位信號(hào)如圖4 - 24所示。在第一次給系統(tǒng)加電時(shí),必須對(duì)處理器上電或冷復(fù)位。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器上電復(fù)位時(shí),因?yàn)镻ORESETn在處理器內(nèi)已經(jīng)被同步了,所以復(fù)位信號(hào)PORE
35、SETn的下降沿就不必與HCLK同步了。上電復(fù)位的應(yīng)用情況如圖4 - 25所示。處理器內(nèi)的復(fù)位同步器如圖4 - 26所示。為了保證正確的復(fù)位,復(fù)位信號(hào)應(yīng)至少保持3個(gè)HCLK周期有效。 2)系統(tǒng)復(fù)位系統(tǒng)復(fù)位或熱復(fù)位對(duì)宏單元中的大部分元件進(jìn)行初始化,NVIC調(diào)試邏輯、Flash修補(bǔ)與斷點(diǎn)(FPB)、數(shù)據(jù)觀察點(diǎn)與觸發(fā)(D WT)以及儀表跟蹤宏單元(ITM)除外。系統(tǒng)復(fù)位主要用來(lái)復(fù)位已經(jīng)工作一段時(shí)間的系統(tǒng),比如看門(mén)狗復(fù)位。由于SYSRESETn信號(hào)在處理器內(nèi)已經(jīng)被同步,所以不必使之再同步。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器如圖4 - 26所示即顯示了復(fù)位的同步情況。Cortex
36、 - M3輸出一個(gè)SYSRESETREQ信號(hào),該信號(hào)在應(yīng)用中斷與復(fù)位控制寄存器的SYSRESETREQ位置位時(shí)有效。用戶(hù)可以使用該信號(hào),例如,可將它用作圖4 - 24所示的看門(mén)狗定時(shí)器的輸入。3)其他幾種復(fù)位JTAG-DP復(fù)位:nTRST復(fù)位對(duì)JTAG-DP控制器的狀態(tài)初始化。nTRST復(fù)位通常被RealView ICE模塊用作調(diào)試器與系統(tǒng)的熱插拔連接。nTRST復(fù)位可以在不影響處理器正常工作的情況下對(duì)JTAG-DP控制器進(jìn)行初始化。由于nTRST在處理器內(nèi)已經(jīng)被同步了,所以不必使之再同步。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器SW-DP復(fù)位: SW-DP是通過(guò)SWRSTn
37、來(lái)復(fù)位的,該復(fù)位必須與SWCLK同步。正常工作:在正常工作期間,不產(chǎn)生處理器復(fù)位和上電復(fù)位。如果沒(méi)有使用JTAG-DP口, nTRST的值就變得無(wú)關(guān)緊要了。4. 3. 5嵌套向量中斷控制器(NVIC)可配置程度較高的NVIC是Cortex-M3處理器中的一個(gè)重要組成部分,其能夠?yàn)樘幚砥魈峁┏錾闹袛嗵幚砟芰?。進(jìn)行NVIC的標(biāo)準(zhǔn)實(shí)現(xiàn)過(guò)程中,它提供一個(gè)非屏蔽中斷(NMI)和32個(gè)通用物理中斷,這些中斷帶有8級(jí)的搶占優(yōu)先權(quán)。NVIC可以通過(guò)簡(jiǎn)單的綜合選擇配置為1240個(gè)物理中斷中的任何一個(gè),并帶有多達(dá)256個(gè)優(yōu)先級(jí)。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器Cortex-M3處理器使
38、用一個(gè)可以重復(fù)定位的向量表,表中包含了將要執(zhí)行的函數(shù)的地址,可供具體的中斷處理器使用。中斷被接受之后,處理器通過(guò)指令總線接口從向量表中獲取地址。向量表復(fù)位時(shí)指向零,編程控制寄存器可以使向量表重新定位。為了減少門(mén)計(jì)數(shù)并提高系統(tǒng)的靈活性,Cortex-M3已從ARM7處理器的分組映像寄存器異常模型升級(jí)到了基于堆棧的異常模型。當(dāng)異常發(fā)生時(shí),編程計(jì)數(shù)器、編程狀態(tài)寄存器、鏈接寄存器和R0R3 ,R12等通用寄存器都將被壓進(jìn)堆棧。在數(shù)據(jù)總線對(duì)寄存器壓棧的同時(shí),指令總線從向量表中識(shí)別出異常向量,并獲取異常代碼的第一條指令。一旦壓棧和取指完成,中斷服務(wù)程序或故障處理程序就開(kāi)始執(zhí)行,隨后寄存器自動(dòng)恢復(fù),中斷了的
39、程序也因此恢復(fù)正常的執(zhí)行。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器由于可以在硬件中處理堆棧操作,Cortex-M3處理器免去了在傳統(tǒng)的C語(yǔ)言中斷服務(wù)程序中為了完成堆棧處理所要編寫(xiě)的匯編程序包,這使應(yīng)用程序的開(kāi)發(fā)變得更加簡(jiǎn)單。 NVIC支持中斷嵌套(壓棧),允許通過(guò)提高中斷的優(yōu)先級(jí)對(duì)中斷進(jìn)行提前處理。它還支持中斷的動(dòng)態(tài)優(yōu)先權(quán)重置,其優(yōu)先權(quán)級(jí)別可以在運(yùn)行期間通過(guò)軟件進(jìn)行修改。正在處理的中斷會(huì)防止被進(jìn)一步激活,直到中斷服務(wù)程序完成,所以在改變它們的優(yōu)先級(jí)的同時(shí),也避免了意外重新進(jìn)入中斷的風(fēng)險(xiǎn)。在背對(duì)背中斷情況中,傳統(tǒng)的系統(tǒng)將重復(fù)兩次狀態(tài)保存和狀態(tài)恢復(fù)的過(guò)程,導(dǎo)致了延遲的增加。上一頁(yè)
40、下一頁(yè)返回4. 3 ARM Cortex-M3控制器Cortex-M3處理器在NVIC硬件中使用末尾連鎖(Tailchaining)技術(shù)簡(jiǎn)化了激活和未決的中斷之間的移動(dòng)。末尾連鎖技術(shù)把通常需要用30個(gè)時(shí)鐘周期才能完成的連續(xù)的堆棧彈出和壓入操作替換為6個(gè)時(shí)鐘周期就能完成的指令取指,實(shí)現(xiàn)了延遲的降低。處理器狀態(tài)在進(jìn)入中斷時(shí)自動(dòng)保存,在退出中斷時(shí)自動(dòng)恢復(fù),比軟件執(zhí)行用時(shí)更少,大大提高了頻率為100 MHz的子系統(tǒng)的性能,如圖4-27所示。 NVIC還采用了支持集成睡眠模式的Cortex-M3處理器的電源管理方案。立即睡眠模式(Sleep Now Mode)被等待中斷(W FI)或等待事件(WFE)指
41、令調(diào)用,即可以使內(nèi)核立即進(jìn)入低功耗模式,并使其異常被掛起。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器退出時(shí)睡眠(Sleep OnExit)模式在系統(tǒng)退出最低優(yōu)先級(jí)的中斷服務(wù)程序時(shí)使其進(jìn)入低功耗模式,內(nèi)核將保持睡眠狀態(tài)直到遇上另一個(gè)異常。由于只有一個(gè)中斷可以退出該模式,所以系統(tǒng)狀態(tài)不會(huì)被恢復(fù)。系統(tǒng)控制寄存器中的SLEEP-DEEP位,如果被置位,那么該位可以用來(lái)通過(guò)時(shí)鐘門(mén)控制內(nèi)核以及其他系統(tǒng)部件,以獲得最理想的節(jié)電方案。NVIC還集成了一個(gè)遞減計(jì)數(shù)的24位系統(tǒng)嘀噠(Sys Tick)定時(shí)器,可定時(shí)產(chǎn)生中斷,提供理想的時(shí)鐘來(lái)驅(qū)動(dòng)實(shí)時(shí)操作系統(tǒng)或其他預(yù)定的任務(wù)。上一頁(yè)下一頁(yè)返回4. 3
42、 ARM Cortex-M3控制器4. 3. 6內(nèi)存保護(hù)單元(MPU)MPU是Cortex-M3處理器中一個(gè)可選的部件,它通過(guò)保護(hù)用戶(hù)應(yīng)用程序中操作系統(tǒng)所用的重要數(shù)據(jù)、分離處理任務(wù)(禁止訪問(wèn)各自的數(shù)據(jù))、禁止訪問(wèn)內(nèi)存區(qū)域、允許將內(nèi)存區(qū)域定義為只讀以及對(duì)有可能破壞系統(tǒng)的未知的內(nèi)存訪問(wèn)進(jìn)行檢測(cè)等手段來(lái)改善嵌入式系統(tǒng)的可靠性。MPU使應(yīng)用程序可以拆分為多個(gè)進(jìn)程。每個(gè)進(jìn)程不僅有指定的內(nèi)存(代碼、數(shù)據(jù)、棧和堆)和設(shè)備,而且還可以訪問(wèn)共享的內(nèi)存和設(shè)備。MPU還會(huì)增強(qiáng)用戶(hù)和特權(quán)訪問(wèn)規(guī)則,包括以正確的優(yōu)先級(jí)別執(zhí)行代碼以及通過(guò)享有特權(quán)的代碼和用戶(hù)代碼加強(qiáng)對(duì)內(nèi)存和設(shè)備使用權(quán)的控制。上一頁(yè)下一頁(yè)返回4. 3 ARM
43、 Cortex-M3控制器MPU將內(nèi)存分成不同的區(qū)域,并通過(guò)防止無(wú)授權(quán)的訪問(wèn)對(duì)內(nèi)存實(shí)施保護(hù)。MPU支持多達(dá)8個(gè)區(qū)域,每個(gè)區(qū)域又可以分為8個(gè)子區(qū)域。所支持的區(qū)域大小從32字節(jié)開(kāi)始,以2為倍數(shù)遞增,最大可達(dá)到4 G B可尋址空間,其中每個(gè)區(qū)域都對(duì)應(yīng)一個(gè)區(qū)域號(hào)碼(從0開(kāi)始索引),用于對(duì)區(qū)域進(jìn)行尋址。另外,也可以為享有特權(quán)的訪問(wèn)定義一個(gè)默認(rèn)的背景內(nèi)存映射,對(duì)未在MPU區(qū)域中定義的或在區(qū)域設(shè)置中被禁止的內(nèi)存位置進(jìn)行訪問(wèn),將會(huì)導(dǎo)致內(nèi)存管理故障(Memory Management Fault)異常的產(chǎn)生。區(qū)域的保護(hù)是根據(jù)規(guī)則來(lái)執(zhí)行的,這些規(guī)則以處理的類(lèi)型(讀、寫(xiě)或執(zhí)行)和執(zhí)行訪問(wèn)的代碼優(yōu)先級(jí)為基礎(chǔ)進(jìn)行制定。
44、上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器每個(gè)區(qū)域都包含一組能夠影響允許的訪問(wèn)類(lèi)型的位,以及影響允許的總線操作類(lèi)型的位。MPU還支持重疊的區(qū)域(覆蓋地址相同的區(qū)域),由于區(qū)域大小是2的倍數(shù),所以重疊意味著一個(gè)區(qū)域有可能完全包含在另一個(gè)區(qū)域內(nèi)。因此,則可能出現(xiàn)多個(gè)區(qū)域包含在單個(gè)區(qū)域中以及嵌套重疊的情況,即當(dāng)尋址重疊區(qū)域的位置時(shí),其返回的將是擁有最高區(qū)域號(hào)碼的區(qū)域。4. 3. 7調(diào)試和跟蹤對(duì)Cortex-M3處理器系統(tǒng)的調(diào)試訪問(wèn)是通過(guò)調(diào)試訪問(wèn)端口(Debug Access Port)來(lái)實(shí)現(xiàn)的,可以是串行線調(diào)試端口 (SW-DP)構(gòu)成一個(gè)兩腳(時(shí)鐘和數(shù)據(jù))接口或串行線JTAG調(diào)試端口
45、 (SWJ-DP)(使用JTA(或SX%協(xié)議)。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器調(diào)試操作可以通過(guò)斷點(diǎn)、觀察點(diǎn)、出錯(cuò)條件或外部調(diào)試請(qǐng)求等各種事件進(jìn)行觸發(fā)。當(dāng)調(diào)試事件發(fā)生時(shí),Cortex-M3處理器可以進(jìn)入掛起模式或者調(diào)試監(jiān)控模式。在掛起模式期間,處理器將完全停止程序的執(zhí)行。掛起模式支持單步操作,中斷可以暫停,也可在單步運(yùn)行期間進(jìn)行調(diào)用,如果對(duì)其屏蔽,外部中斷將在逐步運(yùn)行期間被忽略。在調(diào)試監(jiān)控模式中,處理器通過(guò)執(zhí)行異常處理程序來(lái)完成各種調(diào)試任務(wù),同時(shí)允許享有更高優(yōu)先權(quán)的異常發(fā)生。該模式同樣支持單步操作。Flash塊和斷點(diǎn)(FPB)單元執(zhí)行6個(gè)程序斷點(diǎn)和兩個(gè)常量數(shù)據(jù)取指斷點(diǎn)
46、,或者執(zhí)行塊操作指令或位于代碼內(nèi)存空間和系統(tǒng)內(nèi)存空間之間的常量數(shù)據(jù)。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器該單元包含6個(gè)指令比較器,用于匹配代碼空間的指令取指。通過(guò)向處理器返回一個(gè)斷點(diǎn)指令,每個(gè)比較器都可以把代碼重新映射到系統(tǒng)空間的某個(gè)區(qū)域或執(zhí)行一個(gè)硬件斷點(diǎn)。該單元還包含兩個(gè)常量比較器,用于匹配從代碼空間加載的常量以及將代碼重新映射到系統(tǒng)空間的某一個(gè)區(qū)域,如圖4-28所示。Cortex-M3處理器采用帶DWT和ITM(儀器跟蹤宏單元)的數(shù)據(jù)跟蹤技術(shù)。DW T提供指令執(zhí)行統(tǒng)計(jì)信息并可產(chǎn)生觀。 ITM是由應(yīng)用程序驅(qū)動(dòng)的跟蹤源,支持跟蹤OS和應(yīng)用程序事件的printf類(lèi)型調(diào)試,它
47、接受來(lái)自DW T的硬件跟蹤數(shù)據(jù)包以及來(lái)自處理器內(nèi)核的軟件跟蹤激勵(lì),并使用時(shí)間戳來(lái)發(fā)送診斷系統(tǒng)信息。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器跟蹤端口接口單元(Trace Port Interface Unit,TPIU)接收來(lái)自ETM和ITM的跟蹤信息,然后將其合并、格式化并通過(guò)串行線瀏覽器(Serial Wire Viewer , SWV)發(fā)送到外部跟蹤分析器單元。通過(guò)單管腳導(dǎo)出數(shù)據(jù)流,SWV支持簡(jiǎn)單和具有成本效益的系統(tǒng)事件分析,曼徹斯特編碼和UART都是SWV支持的格式。4. 3. 8總線矩陣和接口Cortex-M3處理器總線矩陣把處理器和調(diào)試接口連接到外部總線,一也就是把
48、基于32位AMBA AHB-Lite的ICode ,DCode和系統(tǒng)接口連接到基于32位AMBA APBTM的專(zhuān)用外設(shè)總線(Private Peripheral Bus , PPB)上??偩€矩陣也采用非對(duì)齊數(shù)據(jù)訪問(wèn)方式以及位段技術(shù)。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器 32位ICode接口用于從代碼空間獲取指令,只有CM3 Core可以對(duì)其訪問(wèn),所有取指的寬度都是一個(gè)字,每個(gè)字的取指數(shù)目取決于所執(zhí)行代碼的類(lèi)型及其在內(nèi)存中的對(duì)齊方式。32位DCode接口用于訪問(wèn)來(lái)自代碼內(nèi)存空間中的數(shù)據(jù),CM3 Core和DAP都可以對(duì)其訪問(wèn)。32位系統(tǒng)接口可獲取和訪問(wèn)系統(tǒng)內(nèi)存空間中的指令和
49、數(shù)據(jù),與Dcode總線相似,可以被CM3 Core和DAP訪問(wèn)。PPB可以訪問(wèn)Cortex一M3處理器系統(tǒng)外部的部件。Cortex-M3處理器是首款基于ARMV7-M架構(gòu)的ARM處理器。中央C ortex-M3內(nèi)核使用3級(jí)流水線哈佛架構(gòu),運(yùn)用分支預(yù)測(cè)、單周期乘法和硬件除法功能實(shí)現(xiàn)了出色的效率 (1. 25 DMIPS/MHz)。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器Thumb-2指令集結(jié)合非對(duì)齊數(shù)據(jù)存儲(chǔ)和原子位處理等特性,以8位、16位設(shè)備所需的內(nèi)存空間就實(shí)現(xiàn)了32位性能。憑借靈活的集成硬件配置、快速的系統(tǒng)調(diào)試和簡(jiǎn)易的軟件編程,使基于Cortex-M3處理器的設(shè)計(jì)得以更快地
50、投入市場(chǎng)。擴(kuò)展時(shí)鐘門(mén)控技術(shù)和集成睡眠模式使低功耗的無(wú)線設(shè)計(jì)成為了可能。Cortex-M3處理器是專(zhuān)為那些對(duì)成本和功耗非常敏感且同時(shí)對(duì)性能要求又相當(dāng)高的應(yīng)用而設(shè)計(jì)的。憑借縮小的內(nèi)核尺寸和出色的中斷延遲性能、集成的系統(tǒng)部件、靈活的配置、簡(jiǎn)單的高級(jí)編程和強(qiáng)大的軟件系統(tǒng),Cor tex-M3處理器必將成為從復(fù)雜的芯片系統(tǒng)到低端微控制器等各種系統(tǒng)的理想解決方案。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器4. 3. 9電源管理處理器廣泛地利用門(mén)時(shí)鐘來(lái)禁止那些未用的功能和未用功能模塊的輸入,因此只有正在有效使用中的邏輯才會(huì)消耗動(dòng)態(tài)功率。ARMV7-M架構(gòu)支持為減少功耗而讓Cortex-M3和
51、系統(tǒng)時(shí)鐘停止運(yùn)行的系統(tǒng)睡眠模式。對(duì)系統(tǒng)控制寄存器進(jìn)行寫(xiě)操作可以控制Cortex-M3系統(tǒng)功耗的狀態(tài),表4 -7列出了其支持的睡眠模式。處理器導(dǎo)出以下信號(hào)以指示處理器進(jìn)入睡眠的具體時(shí)間:SLEEPING,該信號(hào)在立即睡眠或退出時(shí)睡眠模式下有效,表示處理器時(shí)鐘可以停止運(yùn)行。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器在接收到一個(gè)新的中斷后,NVIC會(huì)使該信號(hào)變無(wú)效,使內(nèi)核退出睡眠。SLEEPDEEP,當(dāng)系統(tǒng)控制寄存器的SLEEPDEEP位置位時(shí),該信號(hào)在立即睡眠或退出時(shí)睡眠模式下有效。該信號(hào)被傳送給時(shí)鐘管理器,并可以用來(lái)門(mén)控處理器和包含鎖相環(huán)(PLL)的系統(tǒng)元件以節(jié)省功耗。在接收到新
52、的中斷時(shí),嵌套向量中斷控制器(NVIC)將SLEEPDEEP信號(hào)變無(wú)效,并在時(shí)鐘管理器顯示時(shí)鐘穩(wěn)定時(shí)使內(nèi)核退出睡眠。1. SLEEPING在低功耗狀態(tài)利用SLEEPING來(lái)門(mén)控處理器的HCLK時(shí)鐘以減少功耗,如有必要,還可以使用SLEEPING來(lái)門(mén)控其他系統(tǒng)元件,如圖4-29所示。上一頁(yè)下一頁(yè)返回4. 3 ARM Cortex-M3控制器為了探測(cè)中斷,處理器必須一直接收自由振蕩的FCLK。 FCLK用于對(duì)探測(cè)中斷的NVIC中的少量邏輯電路和DWT與ITM模塊計(jì)時(shí),這些模塊被使能相應(yīng)功能后可以在睡眠期間產(chǎn)生跟蹤包。如果調(diào)試異常與監(jiān)控寄存器的TRCE- NA位使能,那些模塊的功耗將會(huì)降低。在SLE
53、EPING信號(hào)有效期間可以降低FCLK頻率。2. SLEEPDEEP在低功耗狀態(tài)利用SLEEPDEEP停止時(shí)鐘控制器以進(jìn)一步減少功耗。退出低功耗狀態(tài)時(shí),LOCK信號(hào)指示PLL穩(wěn)定,并且此時(shí)使能Cortex-M3時(shí)鐘是安全的,這可以保證處理器不會(huì)重啟直至?xí)r鐘穩(wěn)定。為了檢測(cè)中斷,處理器在低功耗狀態(tài)下必須接收自由振蕩的FCLK。在SLEEPDEEP有效期間可以降低FCLK頻率,如圖4-30所示。上一頁(yè)返回4.4 ATmega128控制器4. 4. 1 AVR單片機(jī)概述1.ATMEL公司介紹ATMEL公司是世界上著名的高性能、低功耗、非易失性存儲(chǔ)器和數(shù)字集成電路的一流半導(dǎo)體制造公司。1997年,ATM
54、EL公司出于市場(chǎng)需求,推出了全新配置的精簡(jiǎn)指令集RISC單片機(jī)高速8位單片機(jī),簡(jiǎn)稱(chēng)為AV R,其被廣泛應(yīng)用于計(jì)算機(jī)外設(shè)、工業(yè)實(shí)時(shí)控制,儀器儀表、通信設(shè)備、家用電器等各個(gè)領(lǐng)域。2. AVR單片機(jī)主要特性衡量單片機(jī)性能的重要指標(biāo):高可靠性、功能強(qiáng)、高速度、低功耗、低價(jià)位。下一頁(yè)返回4.4 ATmega128控制器 (1) AVR單片機(jī)廢除了機(jī)器周期,采用RISC,以字為指令長(zhǎng)度單位,取指周期短,可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),可高速執(zhí)行指令,并有高可靠性為后盾。(2) AVR單片機(jī)在軟/硬件開(kāi)銷(xiāo)、速度、性能和成本多方面取得優(yōu)化平衡,是高性?xún)r(jià)比的單片機(jī)。 (3) AVR單片機(jī)中內(nèi)嵌高質(zhì)量的Flash程序存
55、儲(chǔ)器,擦、寫(xiě)方便,支持ISP和IAP,便于產(chǎn)品的調(diào)試、開(kāi)發(fā)、生產(chǎn)、更新。(4)其I/O端口資源靈活、功能強(qiáng)大。(5) AVR單片機(jī)內(nèi)具備多種獨(dú)立的時(shí)鐘分頻器。(6)具有高波特率的可靠通信。上一頁(yè)下一頁(yè)返回4.4 ATmega128控制器 (7)其包括多種電路,其中可增強(qiáng)嵌入式系統(tǒng)的可靠性電路包括自動(dòng)上電復(fù)位、看門(mén)狗、掉電檢測(cè),多個(gè)復(fù)位源等。(8)具有多種省電休眠模式、寬電壓運(yùn)行(2.75 v),抗干擾能力強(qiáng),可降低一般8位機(jī)中的軟件抗干擾設(shè)計(jì)的工作量和硬件的使用量。(9)集成多種器件和多種功能,充分體現(xiàn)了單片機(jī)技術(shù)朝著片上系統(tǒng)soc的發(fā)展方向過(guò)渡。3. AVR系列單片機(jī)的選型AVR單片機(jī)有以下
56、3個(gè)檔次。低檔Tiny系列單片機(jī),20腳:上一頁(yè)下一頁(yè)返回4.4 ATmega128控制器中檔(標(biāo)準(zhǔn))AT90S系列單片機(jī),40腳:高檔ATmega系列單片機(jī)64腳: 存儲(chǔ)容量為8/16/32/64/128 kB; ATtmega8515/8535。4.4.2 ATmega128概述ATfnega128單片機(jī)是ATMEL公司推出的一款基于AVR內(nèi)核、采用RISC結(jié)構(gòu)的低功耗CMOS的8位單片機(jī)。由于在一個(gè)周期內(nèi)執(zhí)行一條指令,ATtnega128可以達(dá)到接近1 MIPS/MHz的性能,其內(nèi)核將32個(gè)工作寄存器和豐富的指令集聯(lián)結(jié)在一起,所有的工作寄存器都與ALU(邏輯單元)直接相聯(lián),實(shí)現(xiàn)了在一個(gè)時(shí)
57、鐘周期內(nèi)執(zhí)行一條指令可以同時(shí)訪問(wèn)兩個(gè)獨(dú)立寄存器的功能。上一頁(yè)下一頁(yè)返回4.4 ATmega128控制器這種結(jié)構(gòu)提高了代碼效率,使AVR的運(yùn)行速度比普通的CISC單片機(jī)高出了10倍。1. ATmega128單片機(jī)具有的特點(diǎn)(如圖4-31所示)1)高性能、低功耗的AVR8位微處理器以及先進(jìn)的RISC結(jié)構(gòu)(1) 133條指令大多數(shù)可以在一個(gè)時(shí)鐘周期內(nèi)完成。(2) 32 x8通用工作寄存器+外設(shè)控制寄存器。(3)全靜態(tài)工作。(4)工作于16 MHz時(shí)性能高達(dá)16 MIPS。(5)只需兩個(gè)時(shí)鐘周期的硬件乘法器。2)非易失性的程序和數(shù)據(jù)存儲(chǔ)器上一頁(yè)下一頁(yè)返回4.4 ATmega128控制器(1) 128K
58、字節(jié)的系統(tǒng)內(nèi)可編程Flash,壽命為10 000次寫(xiě)/擦除周期。(2)具有獨(dú)立鎖定位和可選擇的啟動(dòng)代碼區(qū),通過(guò)片內(nèi)的啟動(dòng)程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程,真正的進(jìn)行讀一修改一寫(xiě)操作。(3) 4K字節(jié)的EEPROM,壽命為100 000次寫(xiě)/擦除周期。(4) 4K字節(jié)的內(nèi)部SRAM 。(5)多達(dá)64 K字節(jié)的優(yōu)化的外部存儲(chǔ)器空間。(6)可以對(duì)鎖定位進(jìn)行編程以實(shí)現(xiàn)軟件加密。(7)可以通過(guò)SPI實(shí)現(xiàn)系統(tǒng)內(nèi)編程。3 ) JATG接口(與IEEE 1149. 1標(biāo)準(zhǔn)兼容)(1)遵循JTAG標(biāo)準(zhǔn)的邊界掃描功能。上一頁(yè)下一頁(yè)返回4.4 ATmega128控制器(2)支持?jǐn)U展的片內(nèi)調(diào)試。(3)通過(guò)JTAG接口實(shí)現(xiàn)對(duì)Flas
59、h,EEPROM、熔絲位和鎖定位的編程。4)外設(shè)特點(diǎn)(1)兩個(gè)具有獨(dú)立的預(yù)分頻器和比較器功能的8位定時(shí)器/計(jì)數(shù)器。(2)兩個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16位定時(shí)器/計(jì)數(shù)器。(3)具有獨(dú)立預(yù)分頻器的實(shí)時(shí)時(shí)鐘計(jì)數(shù)器。(4)兩路8位PWM 。(5) 6路分辨率可編程(2到16位)的PWM 。(6)輸出比較調(diào)制器。上一頁(yè)下一頁(yè)返回4.4 ATmega128控制器(7)8路10位ADC;8個(gè)單端通道、7個(gè)差分通道、2個(gè)具有可編程增益(1x,l0 x,或200 x)的差分通道。(8)面向字節(jié)的兩線接口。(9)兩個(gè)可編程的串行USART 。(10)可工作于主機(jī)/從機(jī)模式的SPI串行接口。(11)具有
60、獨(dú)立片內(nèi)振蕩器的可編程看門(mén)狗定時(shí)器。(12)片內(nèi)模擬比較器。5)特殊的處理器特點(diǎn)(1)上電復(fù)位以及可編程的掉電檢測(cè)。(2)片內(nèi)經(jīng)過(guò)標(biāo)定的RC振蕩器。上一頁(yè)下一頁(yè)返回4.4 ATmega128控制器(3)片內(nèi)/片外中斷源。(4) 6種睡眠模式:空閑模式、ADC噪聲抑制模式、省電模式、掉電模式、Standby模式以及擴(kuò)展的Standby模式。(5)可以通過(guò)軟件進(jìn)行選擇的時(shí)鐘頻率。(6)通過(guò)熔絲位可以選擇ATmega103兼容模式。(7)全局上拉禁止功能。6) I/O和封裝 (1) 53個(gè)可編程I/O 口線。(2) 64引腳TQFP與64引腳MLF封裝。7)六種省電模式上一頁(yè)下一頁(yè)返回4.4 ATm
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 美術(shù)課件兒童樂(lè)園
- 美術(shù)生班會(huì)課課件
- 幼兒園交通事故應(yīng)急預(yù)案
- 企業(yè)信息安全管理體系認(rèn)證
- 建筑工程起重機(jī)械安全監(jiān)督管理規(guī)定
- 電力工程施工安全管控措施
- 建筑安全體驗(yàn)館建設(shè)方案
- 醫(yī)院開(kāi)展安全生產(chǎn)月活動(dòng)
- 2025年咖啡連鎖經(jīng)營(yíng)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025至2030全球及中國(guó)移動(dòng)錢(qián)包行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 應(yīng)急值守專(zhuān)題培訓(xùn)課件
- DB23T 1318-2020 黑龍江省建設(shè)施工現(xiàn)場(chǎng)安全生產(chǎn)標(biāo)準(zhǔn)化實(shí)施標(biāo)準(zhǔn)
- 2018年上海高考?xì)v史試題及答案
- 中儲(chǔ)糧內(nèi)控管理地圖手冊(cè)
- 新加坡公司法-英文版
- 醫(yī)院管理腎內(nèi)科腹膜透析護(hù)理常規(guī)
- 自動(dòng)控制原理浮球液位控制系統(tǒng)課程設(shè)計(jì)
- 離婚一方財(cái)產(chǎn)轉(zhuǎn)移
- 鐵塔組立施工合同
- 隧道施工安全技術(shù)教育培訓(xùn)記錄(共19頁(yè))
- (完整版)四川建龍軟件全套表格
評(píng)論
0/150
提交評(píng)論