670 likes | 789 Views
第四章 基本接口实验. 4.1 存储器实验 4.2 I/O 接口实验 4.3 中断实验 4.4 串口通信实验 4.5 实时时钟实验 4.6 数码管实验. 4.1 存储器实验. 4.1.1 实验目的 4.1.2 实验设备 4.1.3 实验内容 4.1.4 实验原理 4.1.5 实验操作步骤. 4.1.1 实验目的. 通过实验熟悉 ARM 的内部存储空间分配。 熟悉用寄存器配置存储空间的方法。 掌握对存储区进行访问的方法。. 4.1.2 实验设备.
E N D
第四章 基本接口实验 • 4.1 存储器实验 • 4.2 I/O接口实验 • 4.3 中断实验 • 4.4 串口通信实验 • 4.5 实时时钟实验 • 4.6 数码管实验
4.1 存储器实验 • 4.1.1实验目的 • 4.1.2实验设备 • 4.1.3实验内容 • 4.1.4实验原理 • 4.1.5实验操作步骤
4.1.1实验目的 • 通过实验熟悉ARM的内部存储空间分配。 • 熟悉用寄存器配置存储空间的方法。 • 掌握对存储区进行访问的方法。
4.1.2实验设备 硬件:Embest S3CEV40实验平台,Embest ARM标准/增强型仿真器套件,PC机。 软件:Embest IDE 2003集成开发环境,Windows 98/2000/NT/XP。
4.1.3实验内容 • 掌握S3C44B0X处理器对存储空间的配置和读写访问的方法。使用汇编和C语言编程实现对RAM的字、半字和字节的读写。
4.1.4实验原理 • 存储控制器 • 大/小ENDIAN模式选择 • BANK0总线宽度 存储器地址分配图 Bank6/Bank7地址 大/小ENDIAN模式选择 数据宽度选择
实验原理 存储器控制专用寄存器 总线宽度/等待控制寄存器(BWSCON) Bank控制寄存器(BANKCONn: nGCS0-nGCS5) Bank控制寄存器(BANKCONn: nGCS6-nGCS7) 刷新控制寄存器(REFRESH) BANK大小寄存器(BANKSIZE) 模式设置寄存器(MRSR)
实验原理 • 寄存器的配置示例: • ldr r0, =SMRDATA • ldmia r0, {r1-r13} • ldr r0, =0x01c80000 ; BWSCON Address • stmia r0, {r1-r13} • SMRDATA: • .long 0x22221210 ; BWSCON • .long 0x00000600 ; GCS0 • .long 0x00000700 ; GCS1 • .long 0x00000700 ; GCS2 • .long 0x00000700 ; GCS3
.long 0x00000700 ; GCS4 .long 0x00000700 ; GCS5 .long 0x0001002a ; GCS6, EDO DRAM(Trcd=3, Tcas=2, ;Tcp=1, CAN=10bit) .long 0x0001002a ; GCS7, EDO DRAM .long 0x00960000 + 953 ; Refresh(REFEN=1, TREFMD=0, ;Trp=3, Trc=5, Tchr=3) .long 0x0 ; Bank Size, 32MB/32MB .long 0x20 ; MRSR 6(CL=2) .long 0x20 ; MRSR 7(CL=2)
实验原理 • 存储器(SROM/DRAM/SDRAM)地址线连接如下表所示,数据宽度不同,连接方式也不同。
片选信号 选择的接口或器件 NGCS0 FLASH NGCS6/NSCS0 SDRAM NGCS1 A20 A19 A18 0 0 0 CS1 USB 0 0 1 CS2 固态硬盘 0 1 0 CS3 IDE 0 1 1 CS4 1 0 0 CS5 1 0 1 CS6 8-SEG 1 1 0 CS7 ETHERNET 1 1 1 CS8 LCD 实验原理 片选信号设置
外围器件 片选信号 片选控制寄存器 地址空间 FLASH NGCS0 BANKCON0 0X0000_0000~0X01BF_FFFF SDRAM NGCS6 BANKCON6 0X0C00_0000~0X0DF_FFFF USB CS1 BANKCON1 0X0200_0000~0X0203_FFFF 固态硬盘 CS2 BANKCON1 0X0204_0000~0X0207_FFFF IDE(IOR/W) CS3 BANKCON1 0X0208_0000~0X020B_FFFF IDE(KEY) CS4 BANKCON1 0X020C_0000~0X020F_FFFF IDE(PDIAG) CS5 BANKCON1 0X0210_0000~0X0213_FFFF 8-SEG CS6 BANKCON1 0X0214_0000~0X0217_FFFF ETHERNET CS7 BANKCON1 0X0218_0000~0X021B_FFFF LCD CS8 BANKCON1 0X021C_0000~0X021F_FFFF NOUSE NGCS2 BANKCON2 0X0400_0000~0X05FF_FFFF KEYBOARD NGCS3 BANKCON3 0X0600_0000~0X07FF_FFFF NOUSE NGCS4 BANKCON4 0X0800_0000~0X09FF_FFFF NOUSE NGCS5 BANKCON5 0X0A00_0000~0X0BFF_FFFF NOUSE NGCS7 BANKCON7 0X0E00_0000~0X1FFF_FFFF 实验原理 外围地址空间分配:
实验原理 • 电路设计 • Flash连接电路 • SDRAM连接电路
4.1.5实验操作步骤 • 准备实验环境。使用Embest仿真器连接目标板,使用Embest S3CEV40实验板附带的串口线连接实验板上的UART0和PC机的串口。 • 在PC机上运行windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。 • 使用EmbestIDE通过Embest仿真器连接实验板,打开实验例程目录下Memory_test子目录下的Memory_Test.ews例程,编译链接通过后连接目标板,执行下载操作。
实验操作步骤 • 打开Memory1窗口,键入地址0x0C010000; 打开Memory2窗口,键入地址0x0C010200。 • 打开Rwrams.s文件,在LDR r2,=0x0C010000; 行设置断点;打开Rwramc.c文件,在cRWramtest函数*ptr = 0xAA55AA55;行设置断点。 • 运行程序。程序停在LDR r2,=0x0C010000;行处,观察Memory1窗口数据内容,单步运行程序并注意观察运行前后Memory1窗口数据的变化;结合实验介绍,分析掌握汇编语言程序访问RAM的方法。
实验操作步骤 • 当程序执行Rwramc.c文件内最后一条语句时,全速运行程序。程序停在*ptr = 0xAA55AA55;行处,观察Memory2窗口数据内容,单步运行程序并注意观察运行前后Memory2窗口数据的变化;结合实验介绍,分析掌握高级语言程序访问RAM的方法。 • 理解和掌握实验后,完成实验练习题。
4.2 I/O接口实验 • 4.2.1实验目的 • 4.2.2实验设备 • 4.2.3实验内容 • 4.2.4实验原理 • 4.2.5实验操作步骤
4.2.1实验目的 • 熟悉ARM芯片I/O口编程配置方法。 • 通过实验掌握ARM芯片的I/O口控制LED显示的方法。
4.2.2实验设备 • 硬件:Embest S3CEV40实验平台,Embest ARM标准/增强型仿真器套件,PC机。 • 软件:Embest IDE 2003集成开发环境,Windows 98/2000/NT/XP。
4.2.3实验内容 • ARM芯片的I/O口通常都是和其它引脚复用的,要熟悉ARM芯片I/O口的编程配置方法,熟悉S3C44B0X芯片的I/O口配置寄存器,编程实现实验板上的发光二极管LED1和LED2轮流点亮和熄灭。
4.2.4实验原理 • S3C44B0X芯片上共有71个多功能的输入输出管脚,它们分为7组I/O端口。 • 两个9位的输入/输出端口(端口E和F) • 两个8位的输入/输出端口(端口D和G) • 一个16位的输入/输出端口(端口C) • 一个10位的输出端口(端口A) • 一个11位的输出端口(端口B) 每组端口都可以通过软件配置寄存器来满足不同系统和设计的需要。在运行主程序之前,必须先对每一个用到的管脚的功能进行设置,如果某些管脚的复用功能没有使用,可以先将该管脚设置为I/O口。
实验原理 • S3C44B0X芯片和端口相关的寄存器有: • 端口控制寄存器(PCONA-G) • 端口数据寄存器(PDATA-G) • 端口上拉寄存器(PUPC-G) • 外部中断控制寄存器(EXTINT)
实验原理 • 电路原理: 发光二极管LED1和LED2与ARM芯片连接
4.2.5实验操作步骤 • 准备实验环境。使用Embest仿真器连接目标板,使用Embest S3CEV40实验板附带的串口线连接实验板上的UART0和PC机的串口。 • 在PC机上运行windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。 • 使用EmbestIDE通过Embest仿真器连接实验板,打开实验例程目录下LED_test子目录下的LED_Test.ews例程,编译链接通过后连接目标板,下载并运行它。
Embest 44B0X Evaluation Board(S3CEV40) LED Test Example 实验操作步骤 • 观察超级终端输出如下内容: • 实验系统LED1和LED2进行以下循环: • LED1亮 -> LED2亮 ->LED1和LED2全亮 -> LED2关闭 -> LED1关闭 • 理解和掌握实验后,完成实验练习题。
4.3 中断实验 • 4.3.1实验目的 • 4.3.2实验设备 • 4.3.3实验内容 • 4.3.4实验原理 • 4.3.5实验操作步骤
4.3.1实验目的 • 通过实验了解ARM的中断方式和原理 • 熟悉ARM中断的编程方法。
4.3.2实验设备 • 硬件:Embest S3CEV40实验平台,Embest ARM标准/增强型仿真器套件,PC机。 • 软件:Embest IDE 2003集成开发环境,Windows 98/2000/NT/XP。
4.3.3实验内容 掌握ARM中断工作原理,了解S3C44B0X的中断寄存器,掌握常用中断的编程方法。编写中断处理程序实现: • 使用按钮SB2触发EINT6,LED1亮,同时8段数码管由0到F显示1次,8段数码管显示完后,LED1熄灭。 • 使用按钮SB3触发EINT7,LED2亮,同时8段数码管由F到0显示1次,8段数码管显示完后,LED2熄灭。
4.3.4实验原理 • S3C44B0X的中断控制器及对中断控制器的操作 • 程序状态寄存器的F位和I位 • 中断模式(INTMOD) • 中断挂起寄存器(INTPND) • 中断屏蔽寄存器(INTMSK) • 中断源 • 向量中断模式(仅针对IRQ)
实验原理 • 电路原理
4.3.5实验操作步骤 • 准备实验环境,使用仿真器连接好目标板,打开目标板电源; • 打开实验例程目录下的ExtInt4567_test子目录下的ExtInt4567.ews例程,编译链接成功后,连接目标板并下载; • 打开View菜单>Debug Windows>Register寄存器观察窗口(快捷键Alt+5),在寄存器观察窗口下面选择片外寄存器(Peripheral),将INTERRUPT中断寄存器展开,重点观察INTPND和I_ISPR寄存器值的变化 ,如下图所示: 。
实验操作步骤 • 先在中断服务程序EInt4567Isr.c的入口处设置断点,如下图所示。运行程序,按下按钮SB2或SB3,程序会运行到断点处停下。双击INTPND和I_ISPR可以打开寄存器窗口,注意观察[21]位值在程序运行前后的变化。 • 取消上面的断点,在主函数main()中设置断点,如下图所示。运行程序,当程序停在断点后,再次观察上面两个寄存器中[21]位的值。通过上面的操作,了解寄存器INTPND和I_ISPR在中断过程中的作用。
实验操作步骤 • 取消断点,运行程序,按下按钮SB2或SB3,完整观察目标板上LED1、LED2和8段数码管的变化; • 理解和掌握实验后,完成实验练习题。
4.4 串口通信实验 • 4.4.1实验目的 • 4.4.2实验设备 • 4.4.3实验内容 • 4.4.4实验原理 • 4.4.5实验操作步骤
4.4.1实验目的 • 通过实验了解S3C44B0x处理器串行口(UART)的结构,串行通讯的原理。 • 掌握ARM处理器串行通信的编程方法。
4.4.2试验设备 • 硬件:Embest S3CEV40实验平台,Embest ARM标准/增强型仿真器套件,PC机。 • 软件:Embest IDE 2003集成开发环境,Windows 98/2000/NT/XP。
4.4.3实验内容 • 学习S3C44B0X的UART相关寄存器的功能,熟悉S3C44B0X系统硬件的UART相关接口。编写S3C44B0X处理器的串口通信程序。 • S3CEV40监视串行口,并将接收到的字符回送。
4.4.4实验原理 • S3C44B0X串行通讯(UART)单元 • S3C44B0X UART 单元提供两个独立的异步串行通信口,皆可工作于中断和DMA模式。最高波特率达115.2Kbps。每一个UART单元包含一个16字节的FIFO,用于数据的接收和发送。 • S3C44B0X UART包括可编程波特率,红外发送/接收,一个或两个停止位,5bit/6bit/ 7bit/或8bit数据宽度和奇偶校验。
实验原理 • 波特率的产生 • 波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,计算公式如下: • UBRDIVn = (round_off)(MCLK/(bps x 16) ) -1 • 其中:MCLK是系统时钟。UBRDIVn的值必须在1到(216-1)之间。 • 例如:在系统时钟为40MHz,当波特率为115200时, • UBRDIVn = (int)(40000000/(115200 x 16)+0.5 ) -1 • = (int)(21.7+0.5) –1 • = 22 -1 = 21
实验原理 • UART操作简介 • 发送数据帧和接受数据帧都是是可编程的。一个数据帧包含一个起始位,5到8个数据位,一个可选的奇偶校验位和1到2位停止位,停止位通过行控制寄存器ULCONn配置。 • 接收器还可以检测过速错,奇偶校验错,帧错误和传输中断,每一个错误均可以设置一个错误标志。
实验原理 • 与UART有关的寄存器 • UART行控制寄存器ULCONn • UART控制寄存器UCONn • 发送寄存器UTXH和接收寄存器URXH • 波特率分频寄存器UBRDIV
实验原理 • RS232接口电路 • 在本实验中,串口电路如下图所示,开发板上提供两个串口DB9。其中UART1为主串口,可与PC或MODOM进行串行通迅。UART0只采用二根接线RXD和TXD,因此只能进行简单的数据传输及接收功能。全接口的UART1采用MAX3243E作为电平转换器,简单接口的UART0则采用MAX3221E作为电平转换器。
4.4.5实验操作步骤 • 准备实验环境。使用Embest仿真器连接目标板,使用Embest S3CEV40实验板附带的串口线连接实验板上的UART0和PC机的串口。 • 在PC机上运行windows自带的串口通信程序超级终端程序,或者其它串口通信程序(如:串口精灵等。超级终端配置如下图所示)。 • 使用EmbestIDE通过Embest仿真器连接实验板,打开实验例程目录下uart_test子目录下的Uart_Test.ews例程,下载并运行它。
Embest S3CEV40 > Embest S3CEV40 >Hello, Word!<CR> Hello, Word! Embest S3CEV40 > 实验操作步骤 • 在PC上观察超级终端程序主窗口,可以看到如下界面: • 通过PC机键盘输入字符,可以看到相应的字符显示在超级终端主窗口,输入回车,所有字符一次性回显出来。 • 理解和掌握实验后,完成实验练习题。
4.5 实时时钟实验 • 4.5.1实验目的 • 4.5.2实验设备 • 4.5.3实验内容 • 4.5.4实验原理 • 4.5.5实验操作步骤
4.5.1实验目的 • 了解实时时钟的硬件控制原理及设计方法。 • 掌握S3C44B0X处理器的RTC模块程序设计方法。
4.5.2实验设备 • 硬件:Embest S3CEV40实验平台,Embest ARM标准/增强型仿真器套件,PC机。 • 软件:Embest IDE 2003集成开发环境,Windows 98/2000/NT/XP。
4.5.3实验内容 • 学习和掌握S3C44B0X处理器的RTC模块的使用,并编写应用程序,修改时钟日期及时间的设置,并使用EMBEST ARM教学系统的串口,在超级终端显示当前系统时间。
4.5.4实验原理 • 实时时钟(RTC) • 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。