第六講嵌入式系統(tǒng)的模塊_第1頁(yè)
第六講嵌入式系統(tǒng)的模塊_第2頁(yè)
第六講嵌入式系統(tǒng)的模塊_第3頁(yè)
第六講嵌入式系統(tǒng)的模塊_第4頁(yè)
第六講嵌入式系統(tǒng)的模塊_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第六講嵌入式系統(tǒng)的模塊第1頁(yè),共41頁(yè),2023年,2月20日,星期一嵌入式處理器上通常集成了大量的I/O電路。開(kāi)發(fā)嵌入式系統(tǒng)時(shí),可根據(jù)系統(tǒng)需求選擇嵌入式處理器,而不是選擇了嵌入式處理器后再另外配合設(shè)計(jì)I/O電路。目前,嵌入式處理器上集成的I/O功能完全滿(mǎn)足應(yīng)用的需求,基本上無(wú)需擴(kuò)展。嵌入式處理器種類(lèi)很多,但集成的I/O接口基本上是標(biāo)準(zhǔn)化的,只是不同廠(chǎng)家的產(chǎn)品可能編程方法上有所差異。第2頁(yè),共41頁(yè),2023年,2月20日,星期一6.1復(fù)位電路復(fù)位電路用于完成硬件的初始化,一般有阻容復(fù)位電路、專(zhuān)用復(fù)位電路、手動(dòng)復(fù)位電路等。6.1.1阻容(RC)復(fù)位電路

VccRST/VPD(8051)Vss8.2kΩ10μFVcc最簡(jiǎn)單的復(fù)位電路。上電瞬間RST/VPD端的電位與Vcc相同,隨著充電電流的減少,RST/VPD電位逐漸下降,按圖中的電路參數(shù),時(shí)間常數(shù)RC=10×10-6×8.2×103=82ms,只要Vcc的上升時(shí)間不超過(guò)1ms,振蕩器建立時(shí)間不超過(guò)10ms,該時(shí)間常數(shù)足以保證完成復(fù)位操作。其它嵌入式處理器可以根據(jù)各自的復(fù)位時(shí)間要求,適當(dāng)選取電阻、電容的參數(shù),設(shè)計(jì)相應(yīng)的RC復(fù)位電路。第3頁(yè),共41頁(yè),2023年,2月20日,星期一6.1.2手動(dòng)復(fù)位電路手動(dòng)復(fù)位通常配合自動(dòng)復(fù)位電路工作。通常的設(shè)計(jì)是手動(dòng)復(fù)位開(kāi)關(guān)產(chǎn)生的復(fù)位信號(hào)接在復(fù)位電路上,而不是直接接在處理器的復(fù)位信號(hào)輸入端上,防止手動(dòng)復(fù)位開(kāi)關(guān)的抖動(dòng)。RST/VPD8051C10μFR110ΩR21kΩ+5V第4頁(yè),共41頁(yè),2023年,2月20日,星期一6.1.3看門(mén)狗復(fù)位看門(mén)狗電路的工作原理是:正常工作的嵌入式系統(tǒng)的程序,可以設(shè)計(jì)成每個(gè)確定的時(shí)間必然運(yùn)行其中的某一部分代碼,如果在一個(gè)用戶(hù)設(shè)定的最大時(shí)間內(nèi)沒(méi)有運(yùn)行其中的某一部分代碼或某幾部分代碼,則認(rèn)為系統(tǒng)出了問(wèn)題,程序不能正常運(yùn)行,于是看門(mén)狗電路產(chǎn)生復(fù)位信號(hào),使處理器強(qiáng)制復(fù)位,系統(tǒng)從復(fù)位向量處重新運(yùn)行。第5頁(yè),共41頁(yè),2023年,2月20日,星期一嵌入式系統(tǒng)應(yīng)用軟件的主框架如下:Main(){while(1) // (1){ //todo:軟件代碼 (2)

… reset_watchdog(); // (3) //todo:軟件代碼 (4)

…}}(1)是嵌入式應(yīng)用程序的典型代碼形式,一個(gè)無(wú)限循環(huán);(2)和(4)表示實(shí)際執(zhí)行的代碼段,代碼段內(nèi)沒(méi)有無(wú)限或超長(zhǎng)循環(huán)或長(zhǎng)時(shí)間等待等指令,使(3)處的代碼reset_watchdog()每隔一定時(shí)間就會(huì)執(zhí)行一次(“喂狗”),其功能是復(fù)位看門(mén)狗定時(shí)器的計(jì)數(shù)初值,使定時(shí)器不溢出。如果程序出了問(wèn)題,使(3)處的代碼未能執(zhí)行,則看門(mén)狗定時(shí)器就會(huì)溢出,溢出脈沖接到處理器的復(fù)位信號(hào)上,使處理器強(qiáng)制復(fù)位,重新開(kāi)始運(yùn)行。第6頁(yè),共41頁(yè),2023年,2月20日,星期一6.1.4專(zhuān)用復(fù)位電路

RC復(fù)位電路成本低,簡(jiǎn)單,但功能較差。專(zhuān)用復(fù)位電路是一種專(zhuān)用IC,其輸出就是復(fù)位信號(hào)(高電平復(fù)位信號(hào)、低電平復(fù)位信號(hào)或兩者同時(shí)具備)。有的還將電壓監(jiān)視、電池電量監(jiān)視等功能集成在一起成為處理器監(jiān)視電路。VccGNDResetReset*電源檢測(cè)輸入手動(dòng)復(fù)位輸入第7頁(yè),共41頁(yè),2023年,2月20日,星期一6.1.5軟件復(fù)位軟件復(fù)位是通過(guò)軟件設(shè)置一個(gè)特殊功能寄存器的相應(yīng)位完成處理器的復(fù)位,其復(fù)位結(jié)果同硬件復(fù)位的效果完全一樣。軟件復(fù)位后,程序從復(fù)位向量處開(kāi)始運(yùn)行。

注意:軟件復(fù)位同程序直接跳轉(zhuǎn)到復(fù)位向量處執(zhí)行的效果是不一樣的。軟件復(fù)位后,系統(tǒng)所有寄存器會(huì)被重新初始化,而直接跳轉(zhuǎn)不會(huì)初始化硬件寄存器。第8頁(yè),共41頁(yè),2023年,2月20日,星期一時(shí)鐘電路用于產(chǎn)生處理器工作的時(shí)鐘信號(hào)。通用計(jì)算機(jī)通常使用分離的時(shí)鐘電路,如8284時(shí)鐘芯片。嵌入式系統(tǒng)為了節(jié)省電路,通常把時(shí)鐘電路集成在處理器內(nèi)部,外部只需要接晶體即可。嵌入式系統(tǒng)的時(shí)鐘電路有RC時(shí)鐘、石英晶體、石英振蕩器、鎖相倍頻時(shí)鐘、多時(shí)鐘源等幾種形式。6.2.1RC時(shí)鐘

RC時(shí)鐘源通常用于MCU,其振蕩頻率的穩(wěn)定性較低,但功耗較低,在家用電路的控制方面用途較廣。6.2

時(shí)鐘第9頁(yè),共41頁(yè),2023年,2月20日,星期一6.2.2石英晶體石英晶體時(shí)鐘電路,其振蕩電路集成在處理器內(nèi)部,處理器外部引出2個(gè)引腳,分別是放大器的輸入和輸出,石英晶體接在2個(gè)引腳上。處理器第10頁(yè),共41頁(yè),2023年,2月20日,星期一6.2.3石英振蕩器石英振蕩器是把石英晶體和振蕩電路集成在一起,形成石英振蕩器電路,直接輸出時(shí)鐘信號(hào)供給處理器,其輸出的時(shí)鐘信號(hào)接在處理器的輸入引腳上。石英振蕩器相位相反的兩個(gè)輸出端第11頁(yè),共41頁(yè),2023年,2月20日,星期一6.2.4鎖相倍頻時(shí)鐘

MCU可采用上述時(shí)鐘電路,高性能的嵌入式處理器上采用鎖相倍頻電路,防止高頻工作時(shí)產(chǎn)生電磁干擾。MPU接口晶振器鎖相環(huán)倍頻預(yù)調(diào)器分頻器分頻器相位鎖住MPU總線(xiàn)喚醒EXTALXTALVCODMACLKSYSCLKLCDCLKCLK32圖中: CLK32——32KHz時(shí)鐘源,用于實(shí)時(shí)時(shí)鐘,實(shí)現(xiàn)日歷功能;

LCDCLK——LCD控制器的時(shí)鐘;

DMACLK——DMA控制器的時(shí)鐘;

SYSCLK——系統(tǒng)主時(shí)鐘,送給CPU內(nèi)核。第12頁(yè),共41頁(yè),2023年,2月20日,星期一6.2.5多時(shí)鐘源高性能的嵌入式處理器(如32位)功能強(qiáng)大,芯片上集成了眾多的智能電路,需要不同頻率的時(shí)鐘源;并且,出于節(jié)能考慮,不同I/O電路的工作狀態(tài)可以由處理器的編程控制,因此需要多種時(shí)鐘源,包括CPU內(nèi)核、實(shí)時(shí)時(shí)鐘電路、各I/O電路時(shí)鐘等。多時(shí)鐘源的時(shí)鐘頻率通常具有相關(guān)性,是由處理器的時(shí)鐘電路通過(guò)分頻和倍頻得到的。第13頁(yè),共41頁(yè),2023年,2月20日,星期一6.3.1I/O接口的基本結(jié)構(gòu)嵌入式處理器通常集成了大量I/O模塊,因此I/O接口可被認(rèn)為是處理器的一部分。I/O接口電路與嵌入式處理器之間通過(guò)內(nèi)部總線(xiàn)交換信息。從編程結(jié)構(gòu)看,I/O模塊可分為數(shù)據(jù)輸入寄存器、數(shù)據(jù)輸出寄存器、控制寄存器、狀態(tài)寄存器、模式寄存器等。6.3I/O模塊第14頁(yè),共41頁(yè),2023年,2月20日,星期一模式寄存器:只寫(xiě),用于設(shè)置I/O接口的工作方式;控制寄存器:只寫(xiě),用于控制I/O接口的工作;狀態(tài)寄存器:只讀,用于獲取I/O接口的工作狀態(tài);數(shù)據(jù)輸入寄存器:只讀,用于獲取外設(shè)數(shù)據(jù);數(shù)據(jù)輸出寄存器:只寫(xiě),用于向外設(shè)輸出數(shù)據(jù);不同I/O接口,寄存器數(shù)量和功能也不相同,復(fù)雜的接口可能具有更多的寄存器。嵌入式處理器內(nèi)核模式寄存器數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器狀態(tài)寄存器控制寄存器內(nèi)部總線(xiàn)第15頁(yè),共41頁(yè),2023年,2月20日,星期一6.3.3I/O接口寄存器的映射方式嵌入式處理器操作I/O接口是通過(guò)I/O接口的寄存器來(lái)實(shí)現(xiàn)的,因此這些寄存器必須有一個(gè)地址(I/O地址)。不同處理器有不同的編址方式,一是與存儲(chǔ)器統(tǒng)一編址,二是有獨(dú)立的I/O地址空間。(1)統(tǒng)一編址。指I/O地址與內(nèi)存儲(chǔ)器統(tǒng)一編址,位于內(nèi)存地址空間內(nèi),將存儲(chǔ)器空間的一部分用于I/O地址空間,訪(fǎng)問(wèn)寄存器與訪(fǎng)問(wèn)存儲(chǔ)器使用相同的指令。兩種方案:第16頁(yè),共41頁(yè),2023年,2月20日,星期一I/O地址空間與存儲(chǔ)器空間重疊。如MCS-51系列MCU。I/O寄存器成為特殊功能寄存器,其地址映射到片上存儲(chǔ)器空間,與片上存儲(chǔ)器的地址空間重合,訪(fǎng)問(wèn)I/O寄存器和訪(fǎng)問(wèn)片上存儲(chǔ)器指令相同,但尋址方式不同。I/O地址空間與存儲(chǔ)器空間不重疊。將整個(gè)存儲(chǔ)器空間分配一部分用于I/O地址空間,訪(fǎng)問(wèn)存儲(chǔ)器和訪(fǎng)問(wèn)I/O寄存器的地址空間不同。為了存儲(chǔ)器系統(tǒng)設(shè)計(jì)的方便,嵌入式處理器的I/O地址空間可以進(jìn)行重新定位。設(shè)計(jì)一個(gè)重定位寄存器,通過(guò)編程重定位寄存器的值,可以使I/O地址空間在整個(gè)存儲(chǔ)器地址空間內(nèi)浮動(dòng),I/O寄存器的實(shí)際地址等于重定位寄存器的基地址加上各I/O寄存器地址的偏移量。如ARM處理器,其I/O地址空間與存儲(chǔ)器地址空間統(tǒng)一編址。第17頁(yè),共41頁(yè),2023年,2月20日,星期一

(2)獨(dú)立編址。獨(dú)立編址方式設(shè)計(jì)了存儲(chǔ)器地址空間和I/O地址空間,它們之間相互獨(dú)立,采用不同的指令進(jìn)行訪(fǎng)問(wèn)。I/O寄存器的實(shí)際地址也是基地址加上偏移量。如80X86系列處理器。存儲(chǔ)器訪(fǎng)問(wèn)采用類(lèi)似MOV這樣的指令,I/O接口訪(fǎng)問(wèn)采用IN/OUT指令訪(fǎng)問(wèn)。有的處理器既能進(jìn)行統(tǒng)一編址,也能進(jìn)行獨(dú)立編址,這可通過(guò)其模式寄存器的編程進(jìn)行設(shè)置,從而選擇一種合適的編址方式。第18頁(yè),共41頁(yè),2023年,2月20日,星期一譯碼器用于對(duì)MEM和I/O接口分配地址空間,通常有3種方案:通用IC譯碼器、可編程器件和嵌入式處理器集成譯碼器。6.4.1通用IC譯碼器常見(jiàn)的IC譯碼器如74LS138(3-8線(xiàn)譯碼器)、74LS154(4-16線(xiàn)譯碼器)等。6.4譯碼器第19頁(yè),共41頁(yè),2023年,2月20日,星期一6.4.2可編程器件通用IC譯碼器屬標(biāo)準(zhǔn)器件,使用不太靈活,可以使用可編程器件(PAL、GAL、CPLD等)設(shè)計(jì)定制的譯碼器,滿(mǎn)足特殊設(shè)計(jì)的硬件電路的需要??删幊唐骷墓δ芎軓?qiáng),可以實(shí)現(xiàn)特殊的譯碼,其I/O引腳可以配置,非常靈活。第20頁(yè),共41頁(yè),2023年,2月20日,星期一6.4.3嵌入式處理器集成譯碼器嵌入式處理器通常將譯碼器集成在處理器上,為了使地址空間可靈活配置,這些譯碼器通常是可編程的,對(duì)應(yīng)于每一個(gè)譯碼器的輸出,有一對(duì)寄存器。處理器訪(fǎng)問(wèn)存儲(chǔ)器或I/O端口的時(shí)候,如果給出的地址空間在該對(duì)寄存器組合的地址范圍之內(nèi),則譯碼輸出信號(hào)有效,否則無(wú)效。其編程方式有兩種:(1)起始地址—終止地址方式。一個(gè)寄存器存放起始地址,另一個(gè)寄存器存放終止地址。(2)起始地址—長(zhǎng)度方式。一個(gè)寄存器存放起始地址,另一個(gè)寄存器存放地址空間的長(zhǎng)度,終止地址=起始地址+長(zhǎng)度。兩種方式的本質(zhì)是一樣的。第21頁(yè),共41頁(yè),2023年,2月20日,星期一6.5定時(shí)器/計(jì)數(shù)器所有的嵌入式處理器都集成了定時(shí)器/計(jì)數(shù)器單元,其工作完全獨(dú)立于CPU內(nèi)核。通常具有如下功能:EOS任務(wù)調(diào)度,特別是具有時(shí)間片輪轉(zhuǎn)調(diào)度功能的EOS,必須使用定時(shí)器產(chǎn)生時(shí)間片;EOS的軟件時(shí)鐘需要基于硬件定時(shí)器產(chǎn)生定時(shí)信號(hào);串行通信的波特率發(fā)生器;實(shí)時(shí)時(shí)鐘電路;DMA控制器;LCD控制器;WatchDog電路;A/D、D/A轉(zhuǎn)換電路;DRAM控制器等。第22頁(yè),共41頁(yè),2023年,2月20日,星期一6.5.1基本結(jié)構(gòu)定時(shí)器和計(jì)數(shù)器的基本結(jié)構(gòu)是相同的,通常設(shè)計(jì)在一起,通過(guò)切換開(kāi)關(guān)切換脈沖源使它工作于計(jì)數(shù)器狀態(tài)或定時(shí)器狀態(tài)。差別在于定時(shí)器使用系統(tǒng)時(shí)鐘作為計(jì)數(shù)脈沖,而計(jì)數(shù)器使用外部事件脈沖作為計(jì)數(shù)脈沖,這些外部事件脈沖信號(hào)接在處理器的某引腳上。定時(shí)器/計(jì)數(shù)器通常包括控制寄存器、計(jì)數(shù)初值寄存器、計(jì)數(shù)器、計(jì)數(shù)輸出寄存器、狀態(tài)寄存器等,如圖所示。控制寄存器計(jì)數(shù)初值寄存器計(jì)數(shù)輸出寄存器狀態(tài)寄存器計(jì)數(shù)器數(shù)據(jù)譯碼地址RDWRRESETREADYCSA0A1OUT往設(shè)備去由設(shè)備來(lái)時(shí)鐘CLKGATE中斷請(qǐng)求第23頁(yè),共41頁(yè),2023年,2月20日,星期一控制寄存器:只寫(xiě),用于設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式;計(jì)數(shù)初值寄存器:只寫(xiě),大多數(shù)是減法計(jì)數(shù)器,設(shè)定初值之后,進(jìn)行減法計(jì)數(shù),減到0之后產(chǎn)生溢出信號(hào),以脈沖或中斷的形式提供。計(jì)數(shù)器:計(jì)數(shù)部件;計(jì)數(shù)輸出寄存器:只讀,存放計(jì)數(shù)器當(dāng)前的數(shù)值,程序可以讀取;狀態(tài)寄存器:只讀,存放計(jì)數(shù)器的狀態(tài)。

第24頁(yè),共41頁(yè),2023年,2月20日,星期一6.5.2工作模式(1)方式0——計(jì)數(shù)結(jié)束中斷方式一次寫(xiě)入計(jì)數(shù)值只有一次有效計(jì)數(shù);計(jì)數(shù)過(guò)程中GATE=0,暫停計(jì)數(shù),GATE=1連續(xù)計(jì)數(shù);計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值,立刻按新的計(jì)數(shù)值計(jì)數(shù);計(jì)數(shù)值為N,計(jì)數(shù)N+1次。(2)方式1——硬件可重觸發(fā)單穩(wěn)態(tài)方式一次寫(xiě)入計(jì)數(shù)值多次計(jì)數(shù)。GATE=01啟動(dòng)計(jì)數(shù),重復(fù)啟動(dòng)重裝計(jì)數(shù)。計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值,下次啟動(dòng)按新的計(jì)數(shù)值計(jì)數(shù)。計(jì)數(shù)值為N,計(jì)數(shù)N次。第25頁(yè),共41頁(yè),2023年,2月20日,星期一(3)方式2——速率波形發(fā)生器(N分頻方式或周期性定時(shí)器方式)寫(xiě)入計(jì)數(shù)值開(kāi)始計(jì)數(shù)。周期性計(jì)數(shù)。N=1時(shí)OUT跳變;計(jì)數(shù)過(guò)程中GATE=0,暫停計(jì)數(shù),GATE=1重裝入計(jì)數(shù);計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值,下一周期按新的計(jì)數(shù)值計(jì)數(shù)。(4)方式3——方波方式(與方式2類(lèi)似)或波特率發(fā)生器寫(xiě)入計(jì)數(shù)值開(kāi)始計(jì)數(shù)。周期性計(jì)數(shù),減2操作;N偶數(shù),正負(fù)半周=N/2;N奇數(shù),先減1,正半周=(N+1)/2,負(fù)半周=(N-1)/2;計(jì)數(shù)過(guò)程中GATE=0,暫停計(jì)數(shù),GATE=1新裝入計(jì)數(shù);計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值,下一周期按新的計(jì)數(shù)值計(jì)數(shù)。第26頁(yè),共41頁(yè),2023年,2月20日,星期一(5)方式4——軟件觸發(fā)選通方式(類(lèi)似方式0)一次寫(xiě)入計(jì)數(shù)值只有一次有效計(jì)數(shù);計(jì)數(shù)過(guò)程中GATE=0,暫停計(jì)數(shù),GATE=1連續(xù)計(jì)數(shù);計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值,立刻按新的計(jì)數(shù)值計(jì)數(shù);計(jì)數(shù)值為N,計(jì)數(shù)N+1次。(6)方式5——硬件觸發(fā)選通(類(lèi)似方式1)一次寫(xiě)入計(jì)數(shù)值多次計(jì)數(shù);GATE上升沿啟動(dòng)計(jì)數(shù),重復(fù)啟動(dòng)重新計(jì)數(shù);計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值,下次啟動(dòng)按新的計(jì)數(shù)值計(jì)數(shù)。第27頁(yè),共41頁(yè),2023年,2月20日,星期一即串行外部設(shè)備接口(SerialPeripheralInterface,SPI),利用3條線(xiàn)完成2個(gè)芯片之間的雙工高速通信。3條線(xiàn)中2條用于收發(fā)數(shù)據(jù),1條用于時(shí)鐘同步。SPI的通信方式屬于主從方式,主設(shè)備通常是CPU。主設(shè)備控制數(shù)據(jù)傳輸?shù)倪^(guò)程,通過(guò)對(duì)從設(shè)備的編程,控制從設(shè)備收發(fā)數(shù)據(jù)。SPI用于同標(biāo)準(zhǔn)外設(shè)芯片通信,種類(lèi)繁多。如串/并、并/串移位寄存器、A/D轉(zhuǎn)換器、LCD控制器等。CPU還可以通過(guò)SPI組成一個(gè)通信速率比UART高的同步網(wǎng)絡(luò),在一個(gè)小型系統(tǒng)中交換數(shù)據(jù),完成較復(fù)雜的工作。SPI的工作原理類(lèi)似一個(gè)分布式16位移位寄存器,一半在CPU里(即SPI),另一半在外設(shè)里。當(dāng)CPU準(zhǔn)備發(fā)送數(shù)據(jù)時(shí),該分布式16位移位寄存器循環(huán)位移8位,就相當(dāng)于在CPU和外設(shè)間交換了數(shù)據(jù)。有時(shí)這種循環(huán)位移可能是單向的。一個(gè)典型的SPI系統(tǒng)包括一個(gè)主CPU和一個(gè)或多個(gè)從屬的外設(shè)。為使不同廠(chǎng)商生產(chǎn)的同步串行外設(shè)能夠相互通信,SPI系統(tǒng)可以選擇移位率、主從模式、時(shí)鐘極性、相位等。6.6SPI第28頁(yè),共41頁(yè),2023年,2月20日,星期一6.6.1SPI的數(shù)據(jù)流動(dòng)使用SPI時(shí),不需要為數(shù)據(jù)傳送特別指出數(shù)據(jù)流動(dòng)的方向,主機(jī)用兩根分離的引腳來(lái)同時(shí)接收和發(fā)送數(shù)據(jù),MOSI引腳實(shí)現(xiàn)主發(fā)送從接收,MISO引腳完成主接收從發(fā)送,其操作如下圖。

接收緩沖器接收緩沖器SPI移位寄存器SPI移位寄存器主機(jī)從機(jī)SPSCKMOSIMISOSS在一次SPI傳送發(fā)生時(shí),一個(gè)8位字節(jié)通過(guò)主發(fā)送從接收MOSI引腳移位輸出,同時(shí)另一個(gè)8位字節(jié)從主接收從發(fā)送MISO引腳輸入。這個(gè)傳送過(guò)程可以看成是主機(jī)的8位移位寄存器和從機(jī)電路聯(lián)合組成了一個(gè)16位循環(huán)移位寄存器。在每次傳送發(fā)生時(shí),這個(gè)16位分布式移位寄存器循環(huán)移動(dòng)8位,即完成了主機(jī)和外設(shè)之間的數(shù)據(jù)交換。第29頁(yè),共41頁(yè),2023年,2月20日,星期一6.6.2SPI的功能

SPI系統(tǒng)用D端口的4根I/O引腳來(lái)實(shí)現(xiàn)數(shù)據(jù)傳送:

PD0——SS:低有效從機(jī)片選;

PD1——MISO:主接收從發(fā)送;

PD2——MOSI:主發(fā)送從接收;

PD3——SPSCK:串行時(shí)鐘。第30頁(yè),共41頁(yè),2023年,2月20日,星期一6.6.2.1主機(jī)模式主機(jī)啟動(dòng)邏輯從CPU接收一個(gè)輸入(CPU寫(xiě)到SPI數(shù)據(jù)寄存器的數(shù)據(jù))并發(fā)出基于內(nèi)部處理器時(shí)鐘的SPSCK,串行時(shí)鐘也用來(lái)控制狀態(tài)控制器即8位移位寄存器。主機(jī)寫(xiě)數(shù)據(jù)到SPI數(shù)據(jù)寄存器SPDR,這個(gè)并行數(shù)據(jù)立刻被裝入8位移位寄存器并移位輸出到MOSI引腳,通過(guò)從設(shè)備的輸入線(xiàn)到從機(jī)。同時(shí)從機(jī)(外設(shè))數(shù)據(jù)通過(guò)MISO引腳輸入到CPU內(nèi)部的8位移位寄存器,第8個(gè)移位傳送后,數(shù)據(jù)并行傳送到了接收數(shù)據(jù)寄存器,并等待CPU讀周期的到來(lái)。一個(gè)傳送結(jié)束后,SPRF(接收結(jié)束中斷標(biāo)志)或SPTE(發(fā)送結(jié)束中斷標(biāo)志)狀態(tài)標(biāo)志被主機(jī)和外設(shè)置位。第31頁(yè),共41頁(yè),2023年,2月20日,星期一6.6.2.2從機(jī)模式從機(jī)的啟動(dòng)邏輯等待SS引腳被拉低,然后通過(guò)SPSCK與主機(jī)同步。

——從機(jī)接收模式:從機(jī)通過(guò)串行移位寄存器從MOSI線(xiàn)接收數(shù)據(jù)并傳送到SPI接收數(shù)據(jù)寄存器。當(dāng)讀周期到來(lái)時(shí),讀取接收數(shù)據(jù)寄存器中的數(shù)據(jù)到從模塊的內(nèi)部總線(xiàn)。

——從機(jī)發(fā)送模式:當(dāng)寫(xiě)周期到來(lái)時(shí),從機(jī)CPU從內(nèi)部數(shù)據(jù)總線(xiàn)將已經(jīng)寫(xiě)到SPDR中的數(shù)據(jù)裝入8位移位寄存器,然后等待從主機(jī)來(lái)的時(shí)鐘把數(shù)據(jù)移位送到MISO引腳,隨后發(fā)送到主機(jī)。第32頁(yè),共41頁(yè),2023年,2月20日,星期一6.7UART通用異步收發(fā)器,遵守工業(yè)異步通信標(biāo)準(zhǔn),大多數(shù)嵌入式處理器配置了UART,或稱(chēng)為SCI(串行通信接口)。異步通信允許處理器之間的通信不使用公共的參考時(shí)鐘。通信雙方需使用相同的波特率和通信格式,數(shù)據(jù)收發(fā)的單位是幀(frame),幀是一系列的在通信線(xiàn)上傳輸?shù)奈涣?。一幀由一個(gè)起始位(0)、數(shù)據(jù)位(5~8)、校驗(yàn)位(奇、偶或無(wú))、停止位(1~2)、空閑位等組成,下圖為典型的幀格式。位0位1位2位3位4位5位6位7校驗(yàn)停止起始空閑12345678910第33頁(yè),共41頁(yè),2023年,2月20日,星期一——起始位:1位,低電平。——數(shù)據(jù)位:5、6、7、8位數(shù)據(jù),低位在前,高位在后?!r?yàn)位:奇效驗(yàn)、偶校驗(yàn)、無(wú)校驗(yàn),是可選項(xiàng)。 ◎奇校驗(yàn):數(shù)據(jù)位加上奇偶位,1的個(gè)數(shù)為奇數(shù)。 ◎偶校驗(yàn):數(shù)據(jù)位加上奇偶位,1的個(gè)數(shù)為偶數(shù)。——停止位:1、1.5、2位構(gòu)成。由雙方約定選擇——空閑位:非傳送期間為一系列的高電平。

UART的接收與發(fā)送是相互獨(dú)立的,可以同時(shí)進(jìn)行,屬于全雙工通信。第34頁(yè),共41頁(yè),2023年,2月20日,星期一

EIARS232C是最常見(jiàn)的串行通信標(biāo)準(zhǔn)。EIA(ElectronicIndustriesAssociation)RS(RecommendedStandard)-232C,美國(guó)電子工業(yè)協(xié)會(huì)推薦標(biāo)準(zhǔn),232為代號(hào),C為最新版本。

第35頁(yè),共41頁(yè),2023年,2月20日,星期一

UART的基本特性:完全雙工,雙緩沖發(fā)送和接收。異步傳送,5~8bit/字,時(shí)鐘頻率為通信波特率的16。波特率異步達(dá)19.2K(或更高),同步達(dá)64K??僧a(chǎn)生中止字符;產(chǎn)生1、1.5、2位停止位。出錯(cuò)檢測(cè):奇偶、溢出、幀錯(cuò)。片內(nèi)具有優(yōu)先權(quán)中斷控制邏輯,具有很強(qiáng)的中斷控制能力(發(fā)送中斷、接收中斷)。

第36頁(yè),共41頁(yè),2023年,2月20日,星期一6.8通用并行接口(GPIO)即通用I/O端口,提供輸入、輸出、雙向功能,大多數(shù)嵌入式處理器的通用I/O口與其它端口復(fù)用引腳,以節(jié)省引腳、降低成本。通常,為了應(yīng)用的靈活性,嵌入式處理器的I/O引腳大多設(shè)計(jì)成可編程的雙向引腳。通用I/O端口的編程結(jié)構(gòu)由4個(gè)寄存器組成,分別為控制寄存器、方向寄存器、數(shù)據(jù)鎖存器和狀態(tài)寄存器??刂萍拇嫫鳎和ǔJ?位,利用端口控制寄存器把端口配置成I/O端口或外設(shè)端口引腳,每一位控制一個(gè)引腳的功能;方向寄存器:控制端口工作于輸入還是輸出方式,每一位對(duì)應(yīng)一個(gè)引腳;數(shù)據(jù)鎖存器:存放輸出的數(shù)據(jù),并直接輸出到端口引腳上;狀態(tài)寄存器:只讀,用于確定端口引腳的狀態(tài)。讀操作時(shí),可將當(dāng)前狀態(tài)傳輸?shù)絻?nèi)部數(shù)據(jù)總線(xiàn)。第37頁(yè),共41頁(yè),2023年,2月20日,星期一6.9其它I/O6.9.1以太網(wǎng)模塊常用于高速網(wǎng)絡(luò)通信。6.9.2

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論