PIC 單片機(jī)的組成習(xí)題解答 解答部分1. PIC 單片機(jī)指令的執(zhí)行過(guò)程遵循著一種全新哈佛總線體系結(jié)構(gòu)的原則,充分利用了計(jì)算機(jī)系統(tǒng)在程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器之間地址空間的相互獨(dú)立性,取指過(guò)程和執(zhí)行指令過(guò)程可以流水線操作同時(shí)進(jìn)行。因此,當(dāng)PIC 時(shí)鐘頻率為4MHZ時(shí),執(zhí)行一條非轉(zhuǎn)移類指令需要4 個(gè)系統(tǒng)時(shí)鐘周期,即1us,但其指令執(zhí)行的真實(shí)時(shí)間應(yīng)為2us(在執(zhí)行n—1 條指令時(shí)取第n 條指令,然后執(zhí)行第n 條指令)。所以選項(xiàng)B 正確2. 端口RE 共有3 個(gè)引腳RE0~RE2,它們除了用做普通I/O 引腳和第5~7 路模擬信號(hào)輸入引腳外,還依次分別承擔(dān)并行口讀出/寫入/片選控制端引腳。A. 對(duì)。讀出/寫入(REO~RE1)。B.錯(cuò)。同步串行的相關(guān)引腳與端口C 有關(guān)。C.錯(cuò)。通用異步/同步串行的相關(guān)引腳與端口C有關(guān)。D. 錯(cuò)。CCP模塊的相關(guān)引腳也是與端口C有關(guān)。所以選項(xiàng)A正確。3. 上電延時(shí)電路能提供一個(gè)固定的72ms 上電延時(shí),從而使VDD有足夠的時(shí)間上繁榮昌盛到單片機(jī)合適的工作電壓。所以選項(xiàng)B 正確。
上傳時(shí)間: 2013-11-09
上傳用戶:glxcl
中穎單片機(jī)入門與實(shí)戰(zhàn) 單片機(jī)又稱單片微處理器,其應(yīng)用已滲入到各行各業(yè),生產(chǎn)廠家亦從二十年前的寥寥幾家發(fā)展到現(xiàn)在的幾十間甚至更多。不同的廠家基于各自的架構(gòu)平臺(tái),設(shè)計(jì)了不同功能特點(diǎn)的單片機(jī),這就使得工程師們可以按照具體設(shè)計(jì)要求挑選最適合的一款芯片進(jìn)行系統(tǒng)開發(fā),既滿足功能需求又能最大限度降低成本,提高了自己產(chǎn)品的性價(jià)比。中穎單片機(jī)基于公司自有的4-bit CPU IP(CPU60)發(fā)展起來(lái),芯片采用的是程序內(nèi)存和數(shù)據(jù)存儲(chǔ)器在物理空間上完全獨(dú)立的哈佛結(jié)構(gòu)。程序內(nèi)存和數(shù)據(jù)存儲(chǔ)器地址以及總線完全分開,可以使指令和數(shù)據(jù)有不同的數(shù)據(jù)寬度。同時(shí)由于讀取指令和存取操作數(shù)可以同時(shí)進(jìn)行(流水線作業(yè)),因而具有較高的執(zhí)行效率。中穎設(shè)計(jì)工程師以此設(shè)計(jì)了SH66XX, SH67XX 和SH69XX 等一系列的單片機(jī),涵蓋了包括消費(fèi)類,家電及來(lái)電顯示電話的多方面應(yīng)用,以其產(chǎn)品的多樣化,優(yōu)異的抗干擾性能,良好的性價(jià)比和及時(shí)的售后服務(wù)在競(jìng)爭(zhēng)激烈的市場(chǎng)占有一席之地,并且每年的出貨量在持續(xù)快速的增長(zhǎng)中。中穎單片機(jī)能在短短數(shù)年間取得如此成績(jī)及市場(chǎng)認(rèn)可度,自有其道理。
標(biāo)簽: 中穎單片機(jī)
上傳時(shí)間: 2013-11-20
上傳用戶:huanglang
SDRAM的原理和時(shí)序 SDRAM內(nèi)存模組與基本結(jié)構(gòu) 我們平時(shí)看到的SDRAM都是以模組形式出現(xiàn),為什么要做成這種形式呢?這首先要接觸到兩個(gè)概念:物理Bank與芯片位寬。1、 物理Bank 傳統(tǒng)內(nèi)存系統(tǒng)為了保證CPU的正常工作,必須一次傳輸完CPU在一個(gè)傳輸周期內(nèi)所需要的數(shù)據(jù)。而CPU在一個(gè)傳輸周期能接受的數(shù) 據(jù)容量就是CPU數(shù)據(jù)總線的位寬,單位是bit(位)。當(dāng)時(shí)控制內(nèi)存與CPU之間數(shù)據(jù)交換的北橋芯片也因此將內(nèi)存總線的數(shù)據(jù)位寬 等同于CPU數(shù)據(jù)總線的位寬,而這個(gè)位寬就稱之為物理Bank(Physical Bank,下文簡(jiǎn)稱P-Bank)的位寬。所以,那時(shí)的內(nèi)存必須要組織成P-Bank來(lái)與CPU打交道。資格稍老的玩家應(yīng)該還記 得Pentium剛上市時(shí),需要兩條72pin的SIMM才能啟動(dòng),因?yàn)橐粭l72pin -SIMM只能提供32bit的位寬,不能滿足Pentium的64bit數(shù)據(jù)總線的需要。直到168pin-SDRAM DIMM上市后,才可以使用一條內(nèi)存開機(jī)。不過(guò)要強(qiáng)調(diào)一點(diǎn),P-Bank是SDRAM及以前傳統(tǒng)內(nèi)存家族的特有概念,RDRAM中將以通道(Channel)取代,而對(duì) 于像Intel E7500那樣的并發(fā)式多通道DDR系統(tǒng),傳統(tǒng)的P-Bank概念也不適用。2、 芯片位寬 上文已經(jīng)講到SDRAM內(nèi)存系統(tǒng)必須要組成一個(gè)P-Bank的位寬,才能使CPU正常工作,那么這個(gè)P-Bank位寬怎么得到呢 ?這就涉及到了內(nèi)存芯片的結(jié)構(gòu)。 每個(gè)內(nèi)存芯片也有自己的位寬,即每個(gè)傳輸周期能提供的數(shù)據(jù)量。理論上,完全可以做出一個(gè)位寬為64bit的芯片來(lái)滿足P-Ban k的需要,但這對(duì)技術(shù)的要求很高,在成本和實(shí)用性方面也都處于劣勢(shì)。所以芯片的位寬一般都較小。臺(tái)式機(jī)市場(chǎng)所用的SDRAM芯片 位寬最高也就是16bit,常見的則是8bit。這樣,為了組成P-Bank所需的位寬,就需要多顆芯片并聯(lián)工作。對(duì)于16bi t芯片,需要4顆(4×16bit=64bit)。對(duì)于8bit芯片,則就需要8顆了。以上就是芯片位寬、芯片數(shù)量與P-Bank的關(guān)系。P-Bank其實(shí)就是一組內(nèi)存芯片的集合,這個(gè)集合的容量不限,但這個(gè)集合的 總位寬必須與CPU數(shù)據(jù)位寬相符。隨著計(jì)算機(jī)應(yīng)用的發(fā)展,
上傳時(shí)間: 2013-11-04
上傳用戶:zhuimenghuadie
at91rm9200啟動(dòng)過(guò)程教程 系統(tǒng)上電,檢測(cè)BMS,選擇系統(tǒng)的啟動(dòng)方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動(dòng)。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個(gè)地址處都可以訪問(wèn)到ROM。由于9200的ROM中固化了一個(gè)BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個(gè)BOOTLOAER(準(zhǔn)確的說(shuō)應(yīng)該是一級(jí)BOOTLOADER)。這個(gè)BOOTLOER依次完成以下步驟: 1、PLL SETUP,設(shè)置PLLB產(chǎn)生48M時(shí)鐘頻率提供給USB DEVICE。同時(shí)DEBUG USART也被初始化為48M的時(shí)鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測(cè)主時(shí)鐘源(Main oscillator); 4、中斷控制器(AIC)的設(shè)置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認(rèn)為BOOT過(guò)程結(jié)束,接下來(lái)的就是LOADER的過(guò)程,或者也可以認(rèn)為是裝載二級(jí)BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來(lái)找合法的BOOT程序。所謂合法的指的是在這些存儲(chǔ)設(shè)備的開始地址處連續(xù)的存放的32個(gè)字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實(shí)這樣規(guī)定就是把這8條指令當(dāng)作是異常向量表來(lái)處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關(guān)于如何計(jì)算和寫這條指令可以參考用戶手冊(cè)。一旦合法的映像找到之后,則BOOT程序會(huì)把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過(guò)16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來(lái)就進(jìn)行存儲(chǔ)器的REMAP,經(jīng)過(guò)REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時(shí)只能在0X100000這個(gè)地址處看到了。至此9200就算完成了一種形式的啟動(dòng)過(guò)程。如果BOOT程序在以上所列的幾種存儲(chǔ)設(shè)備中找到合法的映像,則自動(dòng)初始化DEBUG USART口和USB DEVICE口以準(zhǔn)備從外部載入映像。對(duì)DEBUG口的初始化包括設(shè)置參數(shù)115200 8 N 1以及運(yùn)行XMODEM協(xié)議。對(duì)USB DEVICE進(jìn)行初始化以及運(yùn)行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺(tái))載入你的映像了。在PC平臺(tái)下,以WIN2000為例,你可以用超級(jí)終端來(lái)完成這個(gè)功能,但是還是要注意你的映像的大小不能超過(guò)13K。一旦正確從外部裝載了映像,接下來(lái)的過(guò)程就是和前面一樣重映設(shè)然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動(dòng)的一個(gè)過(guò)程。如果BMS為低電平,則AT91RM9200會(huì)從片外的FLASH啟動(dòng),這時(shí)片外的FLASH的起始地址就是0X0了,接下來(lái)的過(guò)程和片內(nèi)啟動(dòng)的過(guò)程是一樣的,只不過(guò)這時(shí)就需要自己寫啟動(dòng)代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計(jì)可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計(jì)的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說(shuō)不用像片內(nèi)啟動(dòng)可能需要BOOT好幾級(jí)了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個(gè)開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應(yīng)用配置。總的說(shuō)來(lái),筆者以為AT91RM9200的啟動(dòng)過(guò)程比較簡(jiǎn)單,ATMEL的服務(wù)也不錯(cuò),不但提供了片內(nèi)啟動(dòng)的功能,還提供了UBOOT可供下載。筆者寫了一個(gè)BOOTLODER從片外的FLASHA啟動(dòng),效果還可以。 uboot結(jié)構(gòu)與使用uboot是一個(gè)龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設(shè)的驅(qū)動(dòng),是一個(gè)功能強(qiáng)大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動(dòng)uboot,還有兩個(gè)boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級(jí)boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當(dāng)9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動(dòng),這時(shí)rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時(shí)我們打開超級(jí)終端會(huì)看到ccccc...。這說(shuō)明系統(tǒng)已經(jīng)啟動(dòng),同時(shí)xmodem協(xié)議已經(jīng)啟動(dòng),用戶可以通過(guò)超級(jí)終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個(gè)loder完成的功能主要是初始化時(shí)鐘,sdram和xmodem協(xié)議,為下載和啟動(dòng)uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級(jí)終端會(huì)繼續(xù)打印:ccccc....。這時(shí)我們就可以下在uboot了。uboot將被下載到sdram中的一個(gè)地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動(dòng)了,提示符uboot>,用戶可以u(píng)boot>help 看到命令列表和大概的功能。uboot的命令包含了對(duì)內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動(dòng)等一些命令。 如果系統(tǒng)上電時(shí)bms為低電平,則系統(tǒng)從片外的flash啟動(dòng)。為了從片外的flash啟動(dòng)uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動(dòng)后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內(nèi)rom啟動(dòng)uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經(jīng)啟動(dòng)了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統(tǒng)復(fù)位,就可以看到系統(tǒng)先啟動(dòng)boot,然后解壓縮uboot.gz,然后啟動(dòng)uboot。注意,這里uboot必須壓縮成.gz文件,否則會(huì)出錯(cuò)。 怎么編譯這三個(gè)源碼包呢,首先要建立一個(gè)arm的交叉編譯環(huán)境,關(guān)于如何建立,此處不予說(shuō)明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項(xiàng)目,正確填寫你的編譯器的所在路徑。 對(duì)loader和boot,直接make。對(duì)uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會(huì)在當(dāng)前目錄下分別生成*.bin文件,對(duì)于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對(duì)loader和boot搞不清楚為什么要兩個(gè),有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動(dòng)uboot的功能,他要對(duì)uboot的壓縮文件進(jìn)行解壓,除此之外,他和loader并無(wú)大的區(qū)別,你可以把boot理解為在loader的基礎(chǔ)上加入了解壓縮.gz的功能而已。所以這兩個(gè)并無(wú)多大的本質(zhì)不同,只是他們的使命不同而已。 特別說(shuō)名的是這三個(gè)軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。
上傳時(shí)間: 2013-10-27
上傳用戶:wsf950131
單片機(jī)原理與應(yīng)用技術(shù) 單片機(jī)到底是什么呢?就是一個(gè)電腦,只不過(guò)是微型的,麻雀雖小,五臟俱全:它內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過(guò)價(jià)錢也是低的,一般不超過(guò)10元即可......用它來(lái)做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī),排煙罩VCD等等的家電里面都可以看到它的身影!......它主要是作為控制部分的核心部件。 它是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場(chǎng)控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計(jì)算機(jī)的(比如家用PC)的主要區(qū)別。 單片機(jī)是靠程序的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來(lái)搞定的話,電路一定是一塊大PCB板!但是如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過(guò)你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性! 由于單片機(jī)對(duì)成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級(jí)匯編語(yǔ)言,它是除了二進(jìn)制機(jī)器碼以上最低級(jí)的語(yǔ)言了,既然這么低級(jí)為什么還要用呢?很多高級(jí)的語(yǔ)言已經(jīng)達(dá)到了可視化編程的水平為什么不用呢?原因很簡(jiǎn)單,就是單片機(jī)沒(méi)有家用計(jì)算機(jī)那樣的CPU,也沒(méi)有像硬盤那樣的海量存儲(chǔ)設(shè)備。一個(gè)可視化高級(jí)語(yǔ)言編寫的小程序里面即使只有一個(gè)按鈕,也會(huì)達(dá)到幾十K的尺寸!對(duì)于家用PC的硬盤來(lái)講沒(méi)什么,可是對(duì)于單片機(jī)來(lái)講是不能接受的。 單片機(jī)在硬件資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計(jì)算機(jī)上的操作系統(tǒng)和應(yīng)用軟件拿到家用PC上來(lái)運(yùn)行,家用PC的也是承受不了的。 目前最常用的單片機(jī)為MCS-51,是由美國(guó)INTEL公司(生產(chǎn)CPU的英特爾)生產(chǎn)的,89C51是這幾年在我國(guó)非常流行的單片機(jī),它是由美國(guó)ATMEL公司開發(fā)生產(chǎn)的,其內(nèi)核兼容MCS-51單片機(jī)。 單片機(jī)的應(yīng)用領(lǐng)域 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分如下幾個(gè)范疇: 1.在智能儀器儀表上的應(yīng)用 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測(cè)量設(shè)備(功率計(jì),示波器,各種分析儀)。 2.在工業(yè)控制中的應(yīng)用 用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。 3.在家用電器中的應(yīng)用 可以這樣說(shuō),現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無(wú)所不在。 4.在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無(wú)線通信、再到日常工作中隨處可見的移動(dòng)電話,集群移動(dòng)通信,無(wú)線電對(duì)講機(jī)等。 5.單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 此外,單片機(jī)在工商,金融,科研、教育,國(guó)防航空航天等領(lǐng)域都有著十分廣泛的用途
標(biāo)簽: 單片機(jī)原理 應(yīng)用技術(shù)
上傳時(shí)間: 2013-11-14
上傳用戶:gououo
ARM處理器的工作模式 ARM處理器狀態(tài) ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:第一種為ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;第二種為Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。在程序的執(zhí)行過(guò)程中,微處理器可以隨時(shí)在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。但ARM微處理器在開始執(zhí)行代碼時(shí),應(yīng)該處于ARM狀態(tài)。 ARM處理器狀態(tài) 進(jìn)入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。此外,當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。 進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)行BX指令時(shí)可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。此外,在處理器進(jìn)行異常處理時(shí),把PC指針?lè)湃氘惓DJ芥溄蛹拇嫫髦校漠惓O蛄康刂烽_始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。ARM處理器模式 ARM微處理器支持7種運(yùn)行模式,分別為:用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài)。快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統(tǒng)使用的保護(hù)模式。數(shù)據(jù)訪問(wèn)終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。ARM處理器模式 ARM微處理器的運(yùn)行模式可以通過(guò)軟件改變,也可以通過(guò)外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),某些被保護(hù)的系統(tǒng)資源是不能被訪問(wèn)的。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問(wèn)受保護(hù)的系統(tǒng)資源等情況。ARM寄存器 ARM處理器共有37個(gè)寄存器。其中包括:31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC)在內(nèi)。這些寄存器都是32位寄存器。以及6個(gè)32位狀態(tài)寄存器。 關(guān)于寄存器這里就不詳細(xì)介紹了,有興趣的人可以上網(wǎng)找找,很多這方面的資料。異常處理 當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常,例如處理一個(gè)外部的中斷請(qǐng)求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個(gè)異常同時(shí)發(fā)生,它們將會(huì)按固定的優(yōu)先級(jí)進(jìn)行處理。當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會(huì)執(zhí)行以下幾步操作:進(jìn)入異常處理的基本步驟:將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開始執(zhí)行。將CPSR復(fù)制到相應(yīng)的SPSR中。根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。如果異常發(fā)生時(shí),處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM狀態(tài)。 ARM微處理器對(duì)異常的響應(yīng)過(guò)程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當(dāng)運(yùn)行于 ARM 工作狀態(tài)時(shí)If == Reset or FIQ then;當(dāng)響應(yīng) FIQ 異常時(shí),禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會(huì)執(zhí)行以下幾步操作從異常返回:將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。將SPSR復(fù)制回CPSR中。若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。
上傳時(shí)間: 2013-11-15
上傳用戶:hanbeidang
EDA9060開關(guān)量I/O 模塊在電氣控制柜中的典型應(yīng)用—— EDA9060結(jié)合交流接觸器實(shí)現(xiàn)遠(yuǎn)程控制EDA9060開關(guān)量I/O模塊是山東力創(chuàng)科技自主研發(fā)的一款分布式DI/DO工控模塊,主要功能特點(diǎn):◎4路開關(guān)量輸入,4路繼電器輸出。繼電器兩組常開2觸點(diǎn),兩組常開常閉3觸點(diǎn)。輸出觸點(diǎn)容量為8A 125VAC(5A 250VAC5A30VDC),由于觸點(diǎn)容量較大,可以直接用在很多的常見電氣控制電路中。輸出有兩種方式,一種電平式,一種脈沖式,可以靈活配置。◎標(biāo)準(zhǔn)的RS485接口,方便組網(wǎng),結(jié)合GPRS DTU無(wú)線模塊可以實(shí)現(xiàn)無(wú)線遠(yuǎn)程控制功能。◎靈活的協(xié)議,兼容研華協(xié)議,支持標(biāo)準(zhǔn)MODBUS RTU協(xié)議,方便上位機(jī)的系統(tǒng)組建。EDA9060在電氣控制柜中有著廣泛的應(yīng)用,通過(guò)增加EDA9060遠(yuǎn)程控制線路,改變了原來(lái)必須依靠人工到現(xiàn)場(chǎng)啟停電氣線路的狀況,實(shí)現(xiàn)無(wú)人值守,節(jié)省資源。線路改造主要通過(guò)EDA9060的繼電器輸出控制交流接觸器,從而實(shí)現(xiàn)遠(yuǎn)程控制現(xiàn)場(chǎng)用電設(shè)備(如常見的工業(yè)泵)的啟停。同時(shí)增加一個(gè)轉(zhuǎn)換開關(guān),將手動(dòng)控制線路和EDA9060遠(yuǎn)程控制線路隔離開,以保證現(xiàn)場(chǎng)操作優(yōu)先的要求,同時(shí)增強(qiáng)操作的可靠性。下面以交流接觸器控制線路在220V電壓等級(jí)以內(nèi)的常見控制電路為例,簡(jiǎn)要說(shuō)明其控制過(guò)程,線路容量大的情況只需要通過(guò)增加合適容量的中間繼電器,擴(kuò)大EDA9060的觸點(diǎn)容量即可解決,示意圖:
標(biāo)簽: 9060 EDA 開關(guān)量 典型
上傳時(shí)間: 2013-11-15
上傳用戶:robter
8051單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù):第一節(jié) 8051 單片機(jī)系統(tǒng)擴(kuò)展概述第二節(jié) 單片機(jī)外部存儲(chǔ)器擴(kuò)展第三節(jié) 單片機(jī)輸入輸出(I/O)口擴(kuò)展及應(yīng)用第四節(jié) LED顯示器接口電路及顯示程序第五節(jié) 單片機(jī)鍵盤接口技術(shù)第六節(jié) 單片機(jī)與數(shù)模(D/A)及模數(shù)(A/D)轉(zhuǎn)換1、地址總線(Address Bus,簡(jiǎn)寫為AB)地址總線可傳送單片機(jī)送出的地址信號(hào),用于訪問(wèn)外部存儲(chǔ)器單元或I/O端口。A 地址總線是單向的,地址信號(hào)只是由單片機(jī)向外發(fā)出。B 地址總線的數(shù)目決定了可直接訪問(wèn)的存儲(chǔ)器單元的數(shù)目。例如N位地址,可以產(chǎn)生2N個(gè)連續(xù)地址編碼,因此可訪問(wèn)2N個(gè)存儲(chǔ)單元,即通常所說(shuō)的尋址范圍為 2N個(gè)地址單元。MCS—51單片機(jī)有十六位地址線,因此存儲(chǔ)器展范圍可達(dá)216 = 64KB地址單元。C 掛在總線上的器件,只有地址被選中的單元才能與CPU交換數(shù)據(jù),其余的都暫時(shí)不能操作,否則會(huì)引起數(shù)據(jù)沖突。2、數(shù)據(jù)總線(Data Bus,簡(jiǎn)寫為DB)數(shù)據(jù)總線用于在單片機(jī)與存儲(chǔ)器之間或單片機(jī)與I/O端口之間傳送數(shù)據(jù)。A 單片機(jī)系統(tǒng)數(shù)據(jù)總線的位數(shù)與單片機(jī)處理數(shù)據(jù)的字長(zhǎng)一致。例如MCS—51單片機(jī)是8位字長(zhǎng),所以數(shù)據(jù)總線的位數(shù)也是8位。B 數(shù)據(jù)總線是雙向的,即可以進(jìn)行兩個(gè)方向的數(shù)據(jù)傳送。3、控制總線(Control Bus,簡(jiǎn)寫為CB)控制總線實(shí)際上就是一組控制信號(hào)線,包括單片機(jī)發(fā)出的,以及從其它部件送給單片機(jī)的各種控制或聯(lián)絡(luò)信號(hào)。對(duì)于一條控制信號(hào)線來(lái)說(shuō),其傳送方向是單向的,但是由不同方向的控制信號(hào)線組合的控制總線則表示為雙向的。總線結(jié)構(gòu)形式大大減少了單片機(jī)系統(tǒng)中連接線的數(shù)目,提高了系統(tǒng)的可靠性,增加了系統(tǒng)的靈活性。此外,總線結(jié)構(gòu)也使擴(kuò)展易于實(shí)現(xiàn),各功能部件只要符合總線規(guī)范,就可以很方便地接入系統(tǒng),實(shí)現(xiàn)單片機(jī)擴(kuò)展。
標(biāo)簽: 8051 單片機(jī) 系統(tǒng)擴(kuò)展 接口技術(shù)
上傳時(shí)間: 2013-10-18
上傳用戶:assef
KEIL RTX51實(shí)時(shí)操作系統(tǒng)中文版:RTX51是一個(gè)適用于8051 家族的實(shí)時(shí)多任務(wù)操作系統(tǒng)。RTX51使復(fù)雜的系統(tǒng)和軟件設(shè)計(jì)以及有時(shí)間限制的工程開發(fā)變得簡(jiǎn)單。RTX51是一個(gè)強(qiáng)大的工具,它可以在單個(gè)CPU上管理幾個(gè)作業(yè)(任務(wù))。RTX51有兩種不同的版本。 RTX51 Full 允許4個(gè)優(yōu)先權(quán)任務(wù)的循環(huán)和切換,并且還能并行的利用中斷功能。RTX51 支持信號(hào)傳遞,以及與系統(tǒng)郵箱和信號(hào)量進(jìn)行消息傳遞。RTX51的os_wait 函數(shù)可以等以 下事件:中斷、時(shí)間到、來(lái)自任務(wù)或中斷的信號(hào)、來(lái)自任務(wù)或中斷的消息、信號(hào)量。 RTX51 Tiny 是RTX51 Full 的一個(gè)子集。RTX51 Tiny 可以很容易的運(yùn)行在沒(méi)有擴(kuò)展外 部存儲(chǔ)器的單片機(jī)系統(tǒng)上。但是,使用RTX51 Tiny 的程序可以訪問(wèn)外部存儲(chǔ)器。RTX51 Tiny允許循環(huán)任務(wù)切換,并且支持信號(hào)傳遞,還能并行的利用中斷功能。RTX51 Tiny 的os_wait函數(shù)可以等待以下事件:時(shí)間到、時(shí)間間隔、來(lái)自任務(wù)或者中斷的信號(hào)。 本章節(jié)以后的部分用RTX-51 來(lái)指代RTX-51 Full 和RTX-51 Tiny。在兩者之間不同的 地方會(huì)加以說(shuō)明。
標(biāo)簽: KEIL RTX 51 實(shí)時(shí)操作系統(tǒng)
上傳時(shí)間: 2013-11-25
上傳用戶:axin881314
離散傅里葉變換,(DFT)Direct Fouriet Transformer(PPT課件) 一、序列分類對(duì)一個(gè)序列長(zhǎng)度未加以任何限制,則一個(gè)序列可分為: 無(wú)限長(zhǎng)序列:n=-∞~∞或n=0~∞或n=-∞~ 0 有限長(zhǎng)序列:0≤n≤N-1有限長(zhǎng)序列在數(shù)字信號(hào)處理是很重要的一種序列。由于計(jì)算機(jī)容量的限制,只能對(duì)過(guò)程進(jìn)行逐段分析。二、DFT引入由于有限長(zhǎng)序列,引入DFT(離散付里葉變換)。DFT它是反映了“有限長(zhǎng)”這一特點(diǎn)的一種有用工具。DFT變換除了作為有限長(zhǎng)序列的一種付里葉表示,在理論上重要之外,而且由于存在著計(jì)算機(jī)DFT的有效快速算法--FFT,因而使離散付里葉變換(DFT)得以實(shí)現(xiàn),它使DFT在各種數(shù)字信號(hào)處理的算法中起著核心的作用。三、本章主要討論離散付里葉變換的推導(dǎo)離散付里葉變換的有關(guān)性質(zhì)離散付里葉變換逼近連續(xù)時(shí)間信號(hào)的問(wèn)題第二節(jié)付里葉變換的幾種形式傅 里 葉 變 換 : 建 立 以 時(shí) 間 t 為 自 變 量 的 “ 信 號(hào) ” 與 以 頻 率 f為 自 變 量 的 “ 頻 率 函 數(shù) ”(頻譜) 之 間 的 某 種 變 換 關(guān) 系 . 所 以 “ 時(shí) 間 ” 或 “ 頻 率 ” 取 連 續(xù) 還 是 離 散 值 , 就 形 成 各 種 不 同 形 式 的 傅 里 葉 變 換 對(duì) 。, 在 深 入 討 論 離 散 傅 里 葉 變 換 D F T 之 前 , 先 概 述 四種 不 同 形式 的 傅 里 葉 變 換 對(duì) . 一、四種不同傅里葉變換對(duì)傅 里 葉 級(jí) 數(shù)(FS):連 續(xù) 時(shí) 間 , 離 散 頻 率 的 傅 里 葉 變 換 。連 續(xù) 傅 里 葉 變 換(FT):連 續(xù) 時(shí) 間 , 連 續(xù) 頻 率 的 傅 里 葉 變 換 。序 列 的 傅 里 葉 變 換(DTFT):離 散 時(shí) 間 , 連 續(xù) 頻 率 的 傅 里 葉 變 換.離 散 傅 里 葉 變 換(DFT):離 散 時(shí) 間 , 離 散 頻 率 的 傅 里 葉 變 換1.傅 里 葉 級(jí) 數(shù)(FS)周期連續(xù)時(shí)間信號(hào) 非周期離散頻譜密度函數(shù)。 周期為Tp的周期性連續(xù)時(shí)間函數(shù) x(t) 可展成傅里葉級(jí)數(shù)X(jkΩ0) ,是離散非周期性頻譜 , 表 示為:例子通過(guò)以下 變 換 對(duì) 可 以 看 出 時(shí) 域 的 連 續(xù) 函 數(shù) 造 成 頻 域 是 非 周 期 的 頻 譜 函 數(shù) , 而 頻 域 的 離 散 頻 譜 就 與 時(shí) 域 的 周 期 時(shí) 間 函 數(shù) 對(duì) 應(yīng) . (頻域采樣,時(shí)域周期延 拓)2.連 續(xù) 傅 里 葉 變 換(FT)非周期連續(xù)時(shí)間信號(hào)通過(guò)連續(xù)付里葉變換(FT)得到非周期連續(xù)頻譜密度函數(shù)。
標(biāo)簽: Fouriet Direct DFT Tr
上傳時(shí)間: 2013-11-19
上傳用戶:fujiura
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1