版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)抬導(dǎo)書 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)指導(dǎo)書 編寫魏坤呂建波 物理與機(jī)械電子工程學(xué)院 目錄 實(shí)驗(yàn)一ADS1.2開發(fā)環(huán)境創(chuàng)建與ARM程序設(shè)計(jì)簡介1 實(shí)驗(yàn)二基于ARM的硬件BOOT程序的基本設(shè)計(jì)9 實(shí)驗(yàn)三ARM的I/O接口實(shí)驗(yàn)13 實(shí)驗(yàn)四ARM的中斷實(shí)驗(yàn) 17 實(shí)驗(yàn)五ARM的UART實(shí)驗(yàn)20 實(shí)驗(yàn)六ARM的A/D接口實(shí)驗(yàn)25 實(shí)驗(yàn)七LCD的顯示實(shí)驗(yàn)30 實(shí)驗(yàn)八觸摸屏實(shí)驗(yàn)41 實(shí)驗(yàn)九Linux的實(shí)驗(yàn)環(huán)境的搭建47 實(shí)驗(yàn)十基于linux的鍵盤驅(qū)動(dòng)程序的編寫51 附錄 EL-ARM-830+實(shí)驗(yàn)系統(tǒng)的資源概要介紹58 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)扌旨導(dǎo)書45 實(shí)驗(yàn)一 ADS1.
2、2開發(fā)環(huán)境創(chuàng)建與ARM程序設(shè)計(jì)簡介 一、實(shí)驗(yàn)?zāi)康?1. 熟悉ADS1.2開發(fā)環(huán)境,正確使用仿真調(diào)試電纜進(jìn)行編譯、下載、調(diào)試。 2. 了解ARM匯編語言的基本框架,學(xué)會(huì)使用ARM的匯編語言編程 3. 了解ARMC語言的基本框架,學(xué)會(huì)使用ARM的C語言編程 二、實(shí)驗(yàn)內(nèi)容 1. 學(xué)習(xí)ADS1.2開發(fā)環(huán)境 2用匯編語言編寫一個(gè)簡單的應(yīng)用程序 3. 用C語言編寫一個(gè)簡單的應(yīng)用程序 三、實(shí)驗(yàn)設(shè)備 1. EL-ARM-830+教學(xué)實(shí)驗(yàn)箱,Pentiumll以上的PC機(jī),仿真涮試電纜,串口直連電纜。 2. PC操作系統(tǒng)WIN98或WIN2000或WINXP, ADS1.2集成開發(fā)環(huán)境,仿真調(diào)試電纜 驅(qū)動(dòng)程序
3、四、實(shí)驗(yàn)步驟 (一)ADS1.2開發(fā)環(huán)境創(chuàng)建 1. ADS1.2下建立工程 1.運(yùn)行 ADS1.2 集成開發(fā)環(huán)境(CodeWarrior for ARM Developer Suite),點(diǎn)擊 FilelNew. 在New對話框中,選擇Project欄,其中共有7項(xiàng),ARM Executable Image是ARM的 通用模板。選中它即可生成ARM的執(zhí)行文件。同時(shí),如圖1 圖1 還要在Project name欄中輸入項(xiàng)目的名稱,以及在Location中輸入英存放的位置,按 確定保存項(xiàng)目。 2在新建的工程中,選擇Debug版本,如圖2,使用EditIDebug Settings菜單對Debug版
4、本進(jìn)行參數(shù)設(shè)置。 禽凸盲 q J X 電 D-ebug二| DbugRel Release Debug 圖2 3在如圖3中,點(diǎn)擊Debug Setting按鈕,彈岀4圖,選中Target Setting 0 Hl C_J Z 多用口 =cr 圖3 圖4 項(xiàng),在Post-linker欄中選中ARM fromELF項(xiàng)。按0K確圧。這是為生成可執(zhí)行 的代碼的初始開關(guān)。 4. 在如圖 5 中,點(diǎn)擊 ARM Assembler ,在 Architecture or Processer j QDcbxig Sattiikgs 圖5 欄中選ARM920To這是要編譯的CPU核。 5在如圖 6 中,點(diǎn)擊 AR
5、M C Compliler ,在 Architecture or Processer 欄中選 ARM920To這是要編譯的CPU核。 :Debug Settings UN g Target Settings Fariels 曰 Targe t ”“ Target Settings ”“ Access Faths ”“ Build Extras Runtime Settings s. Pi 1 o Morr*i r.o-c ARM Assembler Target | ATPCS | Options | Predefines Listing Control Extras Architecture
6、 or Processor Floating Point |No floating: point 6.在如圖7中,點(diǎn)擊ARM linker , output欄中設(shè)左程序的代碼段地址,以 及數(shù)據(jù)使用的地址。圖中的RO Base欄中填寫程序代碼存放的起始地址,RW Base 欄中填寫程序數(shù)據(jù)存放的起始地址。該地址是屬于SDRAM的地址。 油Setti終止模式堆棧 ldr sp,=AbortStack orr rLrO.ttIRQMODEINOINT msr cpsr_cxsfl ;中斷模式堆棧 ldr sp,=IRQStack orr rLrO.#FIQMODEINOINT msr cpsr_cx
7、sfjl ;快中斷模式堆棧 ldr sp,=FIQStack bic r0.rO.#MODEMASKINOINT orr rLrO.#S VCMODE msr cpsr_cxsf,rl ;服務(wù)模式堆棧 ldr sp.=SVCStack mov pc.lr LTORG 4. 初始化有特殊要求的硬件模塊 比如,時(shí)鐘模塊,看門狗模塊等。 5. 初始化應(yīng)用程序執(zhí)行環(huán)境 映像一開始總是存儲(chǔ)在ROM / Flash里而的,其RO部分即可以在ROM / Flash里面 執(zhí)行,也可以轉(zhuǎn)移到速度更快的RAM中執(zhí)行;而RW和ZI這兩部分是必須轉(zhuǎn)移到可寫的 RAM里去。所謂應(yīng)用程序執(zhí)行環(huán)境的初始化,就是完成必要的從
8、ROM到RAM的數(shù)拯傳 輸和內(nèi)容清零。 下而是在ADS下,一種常用存儲(chǔ)器模型的直接實(shí)現(xiàn): LDR rO=IImage$SROS$Limitl得到RW數(shù)據(jù)源的起始地址 LDR rl =IImage$SRW$Basel RW區(qū)在RAM里的執(zhí)行區(qū)起始地址 LDRr3=IImage$SZI$BaselZI 區(qū)在 RAM 里而的起始地址 CMPrO.rl比較它們是否相等 BEQ %F1 0 CMP rl,r3 LDRCC r2,rO.#4 STRCC r2,rl.#4 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)扌旨導(dǎo)書45 BCC %B0 1 LDR rl ,=IImage$ZI$Limitl MOV r2.#0 2
9、 CMP r3,rl STRCC 2#4 BCC %B2 程序?qū)崿F(xiàn)了 RW數(shù)據(jù)的拷貝和ZI區(qū)域的淸零功能。英中引用到的4個(gè)符號是由鏈接器輸出。 IImage$RO$SLimitl:表示RO區(qū)末地址后而的地址,即RW數(shù)據(jù)源的起始地址 IImage$SRW$Basel: RW區(qū)在RAM里的執(zhí)行區(qū)起始地址,也就是編譯器選項(xiàng) RW_Base指定的地址 IImage$ZI$Basel: ZI區(qū)在RAM里面的起始地址 IImage$SZI$Limitl: ZI區(qū)在RAM里面的結(jié)束地址后而的一個(gè)地址 程序先把ROM中IIniageSSRO$Limtl的地址開始的RW初始數(shù)據(jù)拷貝到RAM里而 IImage$R
10、W$SBasel開始的地址,當(dāng)RAM這邊的目標(biāo)地址到達(dá)IImagcSSZI$SBascl后就表示 RW區(qū)的結(jié)束和ZI區(qū)的開始,接下去就對這片ZI區(qū)進(jìn)行淸零操作,直到遇到結(jié)束地址 IImage$ZISSLimitl 詳細(xì)請參閱ADS1.2的PDF文件夾內(nèi)ADS_LINKERGUIDE_A.PDF文檔。 6. 改變處理器模式 因?yàn)樵诔跏蓟^程中,許多操作需要在特權(quán)模式下才能進(jìn)行(比如對CPSR的修改), 所以要特別注意不能過早的進(jìn)入用戶模式。內(nèi)核級的中斷使能也可以考慮在這一步進(jìn)行。 如果系統(tǒng)中另外存在一個(gè)專門的中斷控制器,比如三星的S3C2410,這么做總是安全的。 7. 呼叫主應(yīng)用程序 當(dāng)所有的
11、系統(tǒng)初始化工作完成之后,就需要把程序流程轉(zhuǎn)入主應(yīng)用程序。最簡單 的一種情況是: IMPORT Main B Main 直接從啟動(dòng)代碼跳轉(zhuǎn)到應(yīng)用程序的主函數(shù)入口,當(dāng)然主函數(shù)名字可以由用戶隨便左義。 在ARM ADS環(huán)境中,還另外提供了一套系統(tǒng)級的呼叫機(jī)制。 IMPORT _main B main _main()是編譯系統(tǒng)提供的一個(gè)函數(shù),負(fù)責(zé)完成庫函數(shù)的初始化和初始化應(yīng)用程序 執(zhí)行環(huán)境,最后自動(dòng)跳轉(zhuǎn)到main()函數(shù)。但這要進(jìn)一步設(shè)置一些參數(shù),使用起來較復(fù)雜, 隨著對ARM的進(jìn)一步的應(yīng)用,可以以后使用該種方式。 可以單步執(zhí)行工程文件,認(rèn)真學(xué)習(xí)代碼的注釋,觀察各存儲(chǔ)器的變化。建議用實(shí)驗(yàn)程 序HARD
12、WAREADS實(shí)驗(yàn)四boot.mcp在ADS的開發(fā)環(huán)境的AXD Debugger中運(yùn)行,運(yùn)行 之前,首先配置optionsconfigure targetARMUL,選ARMUL是使用軟件仿頁。 實(shí)驗(yàn)三ARM的I/O接口實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?1. 了解S3C2410的通用I/O接口 2. 掌握I/O功能的復(fù)用并熟練的配巻,進(jìn)行編程實(shí)驗(yàn) 二、實(shí)驗(yàn)內(nèi)容 1. 在實(shí)驗(yàn)箱的CPU板上點(diǎn)亮LED燈LED1、LED2,并輪流閃爍! 三、實(shí)驗(yàn)設(shè)備 1. EL-ARM-83O+教學(xué)實(shí)驗(yàn)箱,Pentiumll以上的PC機(jī),仿貞調(diào)試電纜。 2. PC操作系統(tǒng)WIN98或WIN2000或WINXP, ADS1.2集成
13、開發(fā)環(huán)境, 仿真調(diào)試驅(qū)動(dòng)程序。 四、實(shí)驗(yàn)原理 S3C2410CPU共有117個(gè)多功能復(fù)用輸入輸岀口,分為8組端口: 4 個(gè) 16 位的 I/O 端口 (PORTC、PORTDv PORT E. PORTG) 2 個(gè) 11 位的 I/O 端口 (PORTB 和 PORTH) 1 個(gè) 8 位的 I/O 端口(PORTF) 1 個(gè) 23 位的 I/O 端口(PORTA) 這些通用的GPI/O接口,是可配置的,PORTA除功能口外,它們僅用作輸岀使用, 剩下的PORTB、PORTC. PORTD、PORTE、PORTF、PORTG均可作為輸入輸出口使用。 配置這些端口,是通過一些寄存器來實(shí)現(xiàn)的,這些寄
14、存器均有各自的地址,位長32位。 往該地址中寫入相應(yīng)的數(shù)據(jù),即可實(shí)現(xiàn)功能及數(shù)據(jù)配置。 GPACON (0 x56000000) /Port A control GPADAT (0 x56000004) /Port A data GPBCON (0 x56000010)/Port B control GPBDAT (0 x56000014)/Port B data GPBUP (0 x56000018)/Pull-up control B GPCCON (0 x56000020) /Port C control GPCDAT (0 x56000024) /Port C data GPCUP (0
15、 x56000028) /Pull-up control C GPDCON (0 x56000030) /Port D control GPDDAT (0 x56000034) /Port D data GPDUP (0 x56000038) /Pull-up control D GPECON (0 x56000040) /Port E control GPEDAT (0 x56000044) /Port E data GPEUP (0 x56000048) /Pull-up control E 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)描導(dǎo)書45 GPFCON (0 x56000050) /Port F
16、control GPFDAT (0 x56000054) /Port F data GPFUP (0 x56000058) /Pull-up control F GPGCON (0 x56000060) /Port G control GPGDAT (0 x56000064) /Port G data GPGUP (0 x56000068) /Pull-up control G GPHCON (0 x56000070) /Port H control GPHDAT (0 x56000074) /Port H data GPHUP (0 x56000078) /Pull-叩 control H
17、現(xiàn)用G 口、H 口舉例說明。對于G 口如表表2、表3, Register Address R,W Description Reset Value GPGCON 0 x56000060 R/W Configure :he pins of port G 0 x0 GPODAT 0 x56000064 FVW The data register for port 6 Undefined GPGUF 0 x56000068 R/W Pull-up disable register for port G OxF800 Reserved 0 x55000060 一 Reserved linderined
18、GPGCON Bit Description GPG15 |31:3C 00 = Input 10 二 EINT23 01 = Output 11 = nYPON GPG14 29 28 00 = input 10 = EINT22 01 = Output 11 = YMON GPG13 27:26 00 = Input 10 = EINT21 01 = Output 11=nXPON GPG12 |26:24J 00 = Input 10 = EINT20 01 = Output 11 =XWON GPG11 23 22 oo = input 1O = EINT19 01 = Output
19、11 = TCLK1 GPG10 j5V Tolerant Input) 121:20 00 = Input 10 = EINT18 01 = Output 11 = Reserved GPG9 (5V Tolerant input) 119:18 00 = Input 10 = EINT17 01 = Output 11 二 Reserved GPG8 (5V Tolerant input) 117:16 00 = Input 10 = EINT16 01 = Outpu! 11 = Reserved GPG7 |15:14 oo = input 10 = EINT15 01 二 Outpu
20、t 11 = SFICLK1 GPG6 113 12 00 二 Input 1O = EINT14 01 = Output 11 = SPIMOSI1 GPG5 11:10 00 = Input 10 = EINT13 01 = Output 11 = SPINISO1 GPG4 08 GO = input 10 = EINT12 01 = output 11 = LCD-PV/REN GPG3 7:6 00 = Input 10 = EINT11 01 = Output 11 = nssi GPG2 (5:4 00 = Input 10 = EINT10 01 二 Output 11 = n
21、S30 GPG1 【3 2 oo = input 10 = EINT9 01 = Output 11 = Reserved GPG0 d:0 00 = Input 10 = EINTa 01 = Output 11 = Reserved 嵌入式系統(tǒng)設(shè)it (ARM)實(shí)驗(yàn)描導(dǎo)書45 GPGDAT Bit Description GPG15:0 15:0 When the port is configured as in put port, data from external sources can be read to the corresponding pin. When the port
22、is configured as output port, data written in this register can be sent to the corresponding pin. When the port is configured as functional pin, undefined value will be read. GPGUP Bit Descriptio n GPG15:0 15:0 0: The pull-up function attached to to ths corresponding port pin is enabled. 1:The pull-
23、up function is disabled (GPG15:11 are pull-up disabled state at the initial condition.) 也就是說,在地址0 x0 x56000060中,給32位的每一位賦值,那么,在CPU的管腳上就 定義了管腳的功能值。當(dāng)G 口某管腳配置成輸岀端口,則在PDATG對應(yīng)的地址中的對 應(yīng)位上,寫入1,則該管腳輸出為髙電平,寫入0,則該管腳輸出為低電平。若配置為功 能管腳.則該管腳變成具體的功能腳。對于H 口見表4表7。 Register Address R.W Description Reset Value GPHCON 0
24、x56000070 R/W Configure the pins of port H 0 x0 GPHDAT 0 x56000074 R/W The data register for port H Undefined GPHUP 0 x56000078 R/W Pull-up disable register for port H 0 x0 Reserved 0X5600007C 一 Reserved Undefined GPHCON Bit Description GPH10 21:20 00 二 Input 10 = CLKOUT1 01 二 Output 11 = Reserved G
25、PH9 19:18 00 = Input 10 = CLKOUT0 01 = Output 11 = Reserved GPH8 17:16 00 = Input 10 = UCLK 01 = Output 11 = Reserved GPH7 15:14 00 二 Input 10 = RXD2 01 二 Output 11 =nCTS1 GPH6 13:12 00 = Input 10 = TXD2 01 = Output 11 =nRTS1 GPH5 11:10 00 = I 叩 ut 10 = RXD1 01 = Output 11 = Reserved GPH4 9:8 00 二 I
26、nput 10 = TXD1 01 二 Output 11 = Reserved GPH3 7:6 00 = Input 10 = RXD0 01 = Output 11 = reserved GPH2 5:4 00 = Input 10 = TXD0 01 = Output 11 = Reserved GPH1 3:2 00 = Input 10 = nRTS0 01 = Output 11 = Reserved GPHO 1:0 00 = Input 10 = nCTS0 01 = Output 11 = Reserved GPHDAT Bit Description GPH10:0 10
27、:0 When the port is configured as input port, data from external sources can be read to the corresp on ding pin. When the port is configured as output port, data written in this register can be sent to the correspond!ng pin. When the port is con figured as functional pin, undefined value will be rea
28、d. 表6 GPHUP Bit Description GPH10:0 10:0 0: The pull-up function attached to to the corresponding port pin is enabled. 1: The pull-up function is disabled. 表7 也就是說,在地址0X56000070中,給32位的每一位賦值,那么,在CPU的管腳上 就定義了管腳的功能值。當(dāng)H 口某管腳配置成輸入端口,則在GPHDAT對應(yīng)的地址中的 對應(yīng)位上,得到1,則該管腳的輸入為髙電平,得到0,則該管腳的輸入為低電平。當(dāng)H 口某管腳配宜成輸出端口,則在GP
29、GDAT對應(yīng)的地址中的對應(yīng)位上,寫入1,則該管腳輸 出為髙電平,寫入0,則該管腳輸出為低電平。若配豊為功能管腳,則該管腳變成具體的 功能腳。其他端口配置請參見PDF文擋。 在程序中對GPI/O各寄存器的讀寫實(shí)現(xiàn),是通過給宏賦值實(shí)現(xiàn)的。這些宏在2410addr.h 中定義:具體如下: #define rGPDCON #define rGPDDAT #define rGPDUP #define rGPECON #define rGPEDAT #define rGPEUP #define rGPFCON #define rGPFDAT #define rGPFUP #define rGPGCON #
30、define rGPGDAT #define rGPGUP #define rGPHCON #define rGPHDAT #define rGPHUP (*(volatile unsigned *)0 x56000030) /Port D control (*(volatile unsigned *)0 x56000034) /Port D data (volatile unsigned *)0 x56000038) /Pull-up control D (volatile unsigned *)0 x56000040) /Port E control (volatile unsigned
31、*)0 x56000044) /Port E data (volatile unsigned *)0 x56000048) /Pull-up control E (volatile unsigned *)0 x56000050) /Port F control (volatile unsigned *)0 x56000054) /Port F data (volatile unsigned *)0 x56000058) /Pull-up control F (*(volatile unsigned *)0 x56000060) /Port G control (volatile unsigne
32、d *)0 x56000064) /Port G data (volatile unsigned *)0 x56000068) /Pull-up control G (*(volatile unsigned *)0 x56000070) /Port H control (*(volatile unsigned *)0 x56000074) /Port H data (*(volatile unsigned *)0 x56000078) /Pull-up control H 因此,配置端口 G,在程序中也就是用如下語句即可: rGPGCON = rGPGCON /配置第8位輸出為低電平,第9位輸
33、岀髙電平。 其他的各功能寄存器在2410addr.h中也都有相應(yīng)的龍義,參照該做法,即可把GPI/O 管腳配置成輸入輸岀端口,也可把管腳配置成所需的功能管腳。 五. 實(shí)驗(yàn)步驟 1. 本實(shí)驗(yàn)使用實(shí)驗(yàn)教學(xué)系統(tǒng)的CPU板,在進(jìn)行本實(shí)驗(yàn)時(shí),LCD電源開關(guān)、音頻的左 右聲道開關(guān)、AD通道選擇開關(guān)、觸摸屏中斷選擇開關(guān)等均應(yīng)處在關(guān)閉狀態(tài)。 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)抬導(dǎo)書45 志位的狀態(tài)來識別到底哪一個(gè)中斷發(fā)生了匚 五、三星的2410 ARM處理器的中斷的使用 首先,ARM920T CPU的PSR寄存器中的F位為1,則CPU不會(huì)響應(yīng)中斷控制器的 FIQ中斷,同樣,ARM920TCPU的PSR寄存器中的I位
34、為1,則CPU也不會(huì)響應(yīng)中斷控 制器的IRQ中斷,為使CPU響應(yīng)中斷,須在啟動(dòng)代碼中將英設(shè)為0,以及使INTMSK寄 存器中的相應(yīng)位置0。 S3C2410共有56個(gè)中斷源,有26個(gè)中斷控制器,外部中斷EXTIN823共用一個(gè)中 斷控制器,外部中斷EXTIN47共用一個(gè)中斷控制器,9個(gè)UART中斷分成3組,共用3 個(gè)中斷控制器,ADC和觸摸屏共用一個(gè)中斷控制器。 中斷的優(yōu)先級是由主組號和從ID號的級別控制的,中斷優(yōu)先級產(chǎn)生模塊如下圖所示: ARBfTERD ARBITER1 ARBITERS ARBITER4 ARBITER6 ARBfTERS REQCtKT TIMERO REOIkTTlME
35、RI REQ2/1NTFMER2 REQ3NTTIMER3 REQMNTTIMER4 RQM-UART2 REQS/lNmWT 二勰睥3 REQ1/EINTC REQ2/EINT1 -4 REQ3/EINT2 REQ4/EINT3 ARBrTER2 NTKTKTKTN 翎劉劉 R pISR_TIMERl =(int)Timerl_ISR: rINTMSK 開中斷: TIMER lINT_Init()函數(shù)已在 Target_Init()中調(diào)用。 詳見/實(shí)驗(yàn)程序/HARDWARE/ADS/實(shí)驗(yàn)六目錄下的Interrupt.mcp源代碼注釋。 七、實(shí)驗(yàn)步驟 1. 本實(shí)驗(yàn)僅使用實(shí)驗(yàn)教學(xué)系統(tǒng)的核心CPU
36、板。在進(jìn)行本實(shí)驗(yàn)時(shí),LCD電源開關(guān),音 頻的左右聲道開關(guān)、AD通道選擇開關(guān)、觸摸屏中斷選擇開關(guān)等均應(yīng)處在關(guān)閉狀態(tài)。 2. 在PC機(jī)并口和實(shí)驗(yàn)箱的CPU板上的JTAG接口之間,連接仿真調(diào)試電纜以及串 口間連接公/母接頭串口線。 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)抬導(dǎo)書45 3. 打開超級終端,配置串口的屬性(如COM1),配置波特率為115200,校驗(yàn)位無, 數(shù)據(jù)位為的賦值, 數(shù)字量越小,閃爍頻率越快。編譯全速運(yùn)行,觀看結(jié)果,看閃爍頻率是否發(fā)生了改變!這 是對GPIO 口操作的結(jié)果。具體實(shí)現(xiàn)見程序。 實(shí)驗(yàn)五ARM的UART實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?1. 了解并熟悉UART的概念及英工作原理: 2. 掌握AR
37、M相應(yīng)的寄存器配置; 3. 能夠用C編寫出相應(yīng)的串口程序; 二、實(shí)驗(yàn)內(nèi)容 1. 在實(shí)驗(yàn)箱的CPU板上運(yùn)行程序,在超級終端上回顯發(fā)送的數(shù)據(jù)! 三、實(shí)驗(yàn)設(shè)備 1 .L-ARM-83O+教學(xué)實(shí)驗(yàn)箱,Pentiumll以上的PC機(jī),仿真調(diào)試電纜,串口直連電纜。 2. 作系統(tǒng)WIN98或WIN2000或WINXP, ADS1.2集成開發(fā)環(huán)境,仿真調(diào)試驅(qū)動(dòng)程序。 四、UART的工作原理 通用的串行I/O接口有許多種,最常見的一種標(biāo)準(zhǔn)是美國電子工業(yè)協(xié)會(huì)推薦的一 種標(biāo)準(zhǔn),即,RS232C。這種標(biāo)準(zhǔn)在PC系列中大量采用9針接插件。在ARM的處理器 中,也采用了這種標(biāo)準(zhǔn)。具體的硬件機(jī)械、電氣特性請參閱有關(guān)RS23
38、2串口通信的書籍。 S3C2410的UART (Universal Asynchronous Receiver and Transmitter.通用異步 收發(fā)器)單元提供3個(gè)獨(dú)立的異步串行I/O口,都可以運(yùn)行于中斷模式或DMA模式。也就 是說,UART町以產(chǎn)生中斷請求或DMA請求,以便在CPU和UARTZ間傳遞數(shù)據(jù)。它最 髙可支持115200bps的傳輸速率。S3C2410中每個(gè)UART通道包含兩個(gè)用于接收和發(fā)送數(shù) 據(jù)的16位FIFO隊(duì)列。 S3C2410的每個(gè)UART都有波特率發(fā)生器、數(shù)據(jù)發(fā)送器、數(shù)據(jù)接收器,及控制單元。 內(nèi)部數(shù)據(jù)通過并行數(shù)據(jù)總線到達(dá)發(fā)送單元后,進(jìn)入FIFO隊(duì)列,或不進(jìn)入FI
39、FO隊(duì)列,通過 發(fā)送移相器TXDn引腳發(fā)送出去,送出的數(shù)據(jù)通過一個(gè)電壓轉(zhuǎn)換芯片將3.3V的TTL/COMS 電平轉(zhuǎn)換成EIA (Electronic industries Association)電平,送進(jìn)PC的串口。 數(shù)據(jù)接收的過程剛好相反,外部串口信號需要先把EIA電平經(jīng)電壓轉(zhuǎn)換芯片把電平 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)扌旨導(dǎo)書45 轉(zhuǎn)換3.3V的TTL/COMS電平,然后由RXDn管腳進(jìn)入接收移相器,經(jīng)過轉(zhuǎn)換后放到并行 數(shù)據(jù)總線上,由CPU進(jìn)行處理或直接送到存儲(chǔ)器中(DMA方式下)。 在正確使用S3C2410的串口進(jìn)行收發(fā)實(shí)驗(yàn)前,首先,要配苣相關(guān)的寄存器組。見 表1。表1為串口 0和串口
40、1的線性控制寄存器的配垃說明,推薦使用值:0X03: infra-Red Mode:紅外、正常模式選擇: 60正常模式,1 紅外模式 Register Address R/W Oescription Reset Value ULCON0 0 x50000000 RW UART channel 0 line control register 0 x00 ULCONI 0 x50004000 RW UART channel 1 line control register 0 x00 ULCON2 0 x50008000 RW UART channel 2 line control register
41、 0 x00 ULCONn Bit Description Initial State Reserved 0 Infra-Red Mode Determine whether or not to use the Infra-Red mode. 0 = Normal mode operation I 二 lnfra-Rei TxRx mode 0 Parity Mode 5:3 Specify the type of parity generation and checking dumg UART transmit and recede operation Oxx = No parity 100
42、 二 Odd parity 101 = Even pamy 110 = Parity forcec/checked as 1 111 = Parity forcefC000004 R/W UART channel 0 control register 0 x00 UCON1 0 x56004004 R/W UART cnannel 1 convol register 0 x00 UCON2 0X.5COO30G4 R/W UART channel 2 contol register 0 x00 UCONn Bit Description Initial State Clock Se:GCtio
43、n 10 Soect PCLK or UCLK for th UART baud rate. 0=PCLK : UBRDIV n = (int(PCLK / (bps x 16)-1 仁UCLK(GPF8) UBRDIVn = (int)(UCLK/(bps x 16)-1 0 Tx interrupt Type (9 Interrupt request typo. 0 = Pube (Interruot rs reque3:ed as $8n as the Tx buffer Ijeoomes eaipty in Nw-FIFO mode or reaches Tx FIFO Trigger
44、 Leval in FIFO mode.) 1 = Level (Intefiupt Is requested while Tx buffer is empty in NonFIFO mode or reaches Tx FIFO Trigger Level in FIFO mode.) 0 Rx Interrupt Type 3 Interrupt request type. o = Puts (intcrruo:占 requested tno ir)s:ant Rx rurrer rccokos the data in Non-FIFO mede or reaches Rx FIFO Tr
45、iaaer Level in FIFO node.) 1 = Level (IntQf rupt is requested while Rx buHer is receding data In Ncn FIFO mode or reaches R FIFO Trigger Level in FIFO mode.) 0 Rx Time Out Snablo n ErabieiDisable Rx time out interrupt whe-i UART FIFO is enabled The interrupt is a rcccivG intenxipt. 0 = Disabfe1 = En
46、able 0 Rx Encr status Interrupt Enable 回 Enable the uart to gGnerae an merrup: upon an 9xcGp:ion, such 站 a break .frame error, parity error, or overrun error during a receive operation 0 = Do no: generate receive error status nxrrup:. 1 = Generate recede error status intemipt 0 LOOpeXJCK senirg loop
47、hacK oit to 1 causes the uart to mer the loopback mcoe This node is provided for test purposes only. 0 二 Normal operation1 二 Loopback nxxle 0 sene Break Signal 4】 senrg tnis nt causes tn uart g $Gnd a break during 11rani tin* This bit is autcmatically cleared after sending the break sgnal. 0 = Norma
48、l transmit 1 = Send break signal 0 Transmit Mocg |3:2) OGtcrminG which funciion is currontly able to wnte Tx data to the UART hansmit buffer regisler. 00 = Disable 01 = Intenupt request cr poling mode 10 = DMO request (Only for LARTC), DM3 request (Ont/ for UART2) 11 = DMA1 request (Only for UART1)
49、00 Receive Mode ItOJ Determne which function s currently able to read oata 1rom UART receive buffer register oo = Disable 01 = Intenupt requester poling mode 10 = DMO request (Only tor LARTO), D胚3 request (On” for UART2) 11 = DMA1 request (Only for LART1) 00 Loop-back Mode: 該位為 1 使 UART 進(jìn)入 loop back
50、 模式 50 =正常模式,1 = Loop-back模式 Send Break Signal: 該位為1使UART發(fā)送一個(gè)暫停條件,該位在發(fā)送一個(gè)暫停信 號后自動(dòng)清除 40=正常發(fā)送,1=發(fā)送斷點(diǎn)信號 Transmit Mode:這兩位確定哪個(gè)模式可以寫TX數(shù)據(jù)到UART發(fā)送保持寄存器 3:2 00=禁止01 =中斷請求或查詢模式 10 = BDMA0 請求(僅為 UART0) 11 =BDMA1 請求(僅為 UART1) Receive Mode:這兩位確是哪個(gè)模式可以從UART接收緩沖寄存器讀數(shù)據(jù) 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)描導(dǎo)書45 00=禁止01 =中斷請求或查詢模式 10 = BD
51、MA0 請求(僅為 UART0) 11 =BDMA1 請求(僅為 UART1) 表3為串口 0和串口 1的FIFO控制寄存器的配豊說明,推薦使用值:0X00; Register Address R/W Descriptio n Reset Value UFCONO 0 x50000008 R/W UART channel 0 FIFO control register 0 x0 UFCON1 0 x50004008 R/W UART channel 1 FIFO control register 2x0 UFCON2 0 x50008008 R/W UART channel 2 FIFO co
52、ntrol register 0 x0 UFCONn Bit Descriptio n Initial State Tx FIFO Trigger Level 7:6 Determine the trigger level of transmit FIFO. 00 = Empty01 = 4-byle 10 = 8-byte11 = 12-byte 00 Rx FIFO Trigger Level 5:4 Determine the trigger level of receive FIFO. 00 = 4-byte01 = 8-byte 10 = 124)yte11 = 16-byte 00
53、 Reserved 【3 0 Tx FIFO Reset 2 Auto-cleared after resetting FIFO 0 = Normal1= Tx FIFO reset 0 Rx FIFO Reset 1 Auto-cleared after resetting FIFO 0 = Normal仁 Rx FIFO reset 0 FIFO Enable 0 0 = Disable1 = Enable 0 Tx HFO Trigger Level:這兩位確泄發(fā)送FIFO的觸發(fā)條件 7:6 00=空,01 =4 字節(jié),10=8 字節(jié),11 =12 字節(jié) Rx FIFO TriggerL
54、evel這兩位確定接收HFO的觸發(fā)條件 5:4 00 二空,01 =4 字節(jié),10 =8 字節(jié),11 =12 字節(jié) Reserved 3保留 Tx HFO Reset TX FIFO復(fù)位位,該位在FIFO復(fù)位后自動(dòng)淸除 20=正常, l=Tx FIFO 復(fù)位 Rx FIFO Reset Rx FIFO復(fù)位位,該位在FIFO復(fù)位后自動(dòng)淸除 10=正常,l=Rx FIFO 復(fù)位 FIFO Enable FIFO 模式選擇00 二禁止 FIFO 1 = FIFO 模式 表4為串口0和串口 1的模式控制寄存器的配置說明,推薦使用值:0X00; 嵌入式系統(tǒng)設(shè)計(jì)(ARM)實(shí)驗(yàn)指導(dǎo)書45 Register
55、Address rvw Description Reset Value UMCONO 0 x5000000c R/W UART channel 0 Modem control register 0 x0 UMCON1 0 x50004000 RZW UART channel 1 Modem control register 0 x0 Reserved 0 x5000800c - Reserved UMCONn Bit Description Initial State Reserved 7:5 These bits must be 0*s 00 Auto Flow Control (AFC)
56、4 0 = Disable1 = Enable 0 Reserved 3:J These bits must be 0*s 00 Request to Send 0 If AFC bit is enabled, this value will be ignored. In this case the S3C2410X will contro: nRTS automatically. If AFC bit is disabled, nRTS must be controlled by software. 0 = H1 level (Inactivate nRTS) 1 = L level (Ac
57、tivate nRTS) 0 表4 這是需要用程序配置的有關(guān)串口的寄存器,其他的是一些狀態(tài)寄存器,如UART TX/RX狀態(tài)寄存器,UART錯(cuò)誤狀態(tài)寄存器,UART FIFO狀態(tài)寄存器,UART MODEM 狀態(tài)寄存器,UART接收緩沖寄存器和FIFO寄存器。 當(dāng)然,關(guān)于UART波特率設(shè)苣,則有專門的分頻寄存器進(jìn)行設(shè)置。計(jì)算公式具體如下: UBRDIVn = (int)(PCLK/(bps x 16) )-1 或者 UBRDIVn = (int)(UCLK / (bps x 16)-1 PCLK是外偉I總線頻率,UCLK是UCLK引腳引入的時(shí)鐘頻率。例如在PCLK=50.7MHz 下,當(dāng)波特率
58、取115200時(shí), UBRDIVn = int(50700000/115200 / 16)-1=26 根據(jù)具體的程序要求,正確配宜各寄存器。詳細(xì)具體設(shè)置應(yīng)用,請參見 HARDWAREADS實(shí)驗(yàn)八目錄下的UART.mcp項(xiàng)目文件。請?jiān)敿?xì)閱讀代碼注釋。 五、實(shí)驗(yàn)步驟 1. 本實(shí)驗(yàn)使用實(shí)驗(yàn)教學(xué)系統(tǒng)的CPU板,串口。在進(jìn)行本實(shí)驗(yàn)時(shí),LCD電源開關(guān)、 音頻的左右聲道開關(guān)、AD通道選擇開關(guān)、觸摸屏中斷選擇開關(guān)等均應(yīng)處在關(guān)閉狀態(tài)。 2. 在PC機(jī)并口和實(shí)驗(yàn)箱的CPU板上的JTAG接口之間,連接仿真調(diào)試電纜。使用 串口線連接PC機(jī)串口 1和實(shí)驗(yàn)箱CPU板的串口,使用直連線連接底板串口 2和PC機(jī)上 的串口 2
59、之間的電纜。 3. 打開超級終端,配置串口的屬性(如COM1),配置波特率為115200,校驗(yàn)位無, 數(shù)據(jù)位為8,停止位為1,數(shù)拯控制流為無:檢査連接是否可靠,可靠后,接入電源線, 系統(tǒng)上電,同時(shí)按住“空格鍵,進(jìn)入VIVI狀態(tài)。 4. 打開ADS1.2開發(fā)環(huán)境,從里面打開實(shí)驗(yàn)程序HARDWAREADS實(shí)驗(yàn)八uart.mcp 項(xiàng)目文件,進(jìn)行編譯。 5. 編譯通過后,進(jìn)入ADS1.2調(diào)試界而,加載實(shí)驗(yàn)程序HARDWAREADS實(shí)驗(yàn)八 UART_DataDebug中的映象文件程序映像UART.axL 6. 再打開一個(gè)超級終端1,進(jìn)行設(shè)置(115200, 8位數(shù)據(jù),1位停止位,無奇偶校驗(yàn)): 7. 在
60、ADS調(diào)試環(huán)境下,全速運(yùn)行映象文件。激活超級終端0,敲鍵盤,觀察超級終 端0,超級終端1的內(nèi)容顯示!所敲鍵盤的字符應(yīng)該在兩個(gè)超級終端上顯示出來。實(shí)驗(yàn)的 原理就是把鍵盤敲擊的字符通過PC機(jī)的串口發(fā)送給實(shí)驗(yàn)箱上的ARM的CPU板的串口 0, ARM的CPU板上的串口得到字符后,通過ARM把它送給CPU板上的串口 0輸出給PC, 以及通過底板上的串口 1,送給PC機(jī)。這樣,就完成了串口間的收發(fā)數(shù)據(jù)。 實(shí)驗(yàn)六 ARM的A/D接口實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?1. 學(xué)習(xí)A/D接口原理 2. 掌握S3C2410的AD相關(guān)寄存器的配置及編程應(yīng)用方法: 二、實(shí)驗(yàn)內(nèi)容 1. 在實(shí)驗(yàn)箱的CPU板上運(yùn)行程序,在超級終端及LC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房產(chǎn)抵押合同協(xié)議書房產(chǎn)抵押租賃合同3篇
- 二零二五年度帶車位房產(chǎn)銷售合同3篇
- 二零二五年度廣州市居民財(cái)產(chǎn)分割離婚協(xié)議書3篇
- 二零二五年度智慧城市SaaS解決方案服務(wù)協(xié)議2篇
- 自動(dòng)控制大實(shí)驗(yàn)課程設(shè)計(jì)
- 二零二五年度開業(yè)慶典活動(dòng)互動(dòng)游戲定制合同3篇
- 二零二五年度度假村合作投資開發(fā)房地產(chǎn)項(xiàng)目合同3篇
- 二零二五年度公積金貸款二手房交易合同模板3篇
- 早教老師工作職責(zé)范圍范文(2篇)
- 二零二五年度房地產(chǎn)廣告代理權(quán)益保護(hù)協(xié)議3篇
- 哮喘吸入裝置的正確使用方法課件
- 2023年成都東部集團(tuán)有限公司招聘筆試題庫及答案解析
- 角點(diǎn)網(wǎng)格一.角點(diǎn)網(wǎng)格定義
- 聚酯合成反應(yīng)動(dòng)力學(xué)
- 自動(dòng)控制原理全套課件
- 視頻監(jiān)控室值班記錄表
- 歌曲《梁?!泛喿V完整版
- 小學(xué)語文教研組期末考試質(zhì)量分析
- 《五年級奧數(shù)總復(fù)習(xí)》精編課件
- 校園安全存在問題及對策
- 鉆井作業(yè)常見安全隱患
評論
0/150
提交評論