嵌入式系统实验指导书.docx
《嵌入式系统实验指导书.docx》由会员分享,可在线阅读,更多相关《嵌入式系统实验指导书.docx(57页珍藏版)》请在冰豆网上搜索。
嵌入式系统实验指导书
《嵌入式系统原理与设计》实验指导书
学院:
班级:
指导教师:
实验一ARMSYS平台开发环境及工具熟悉
一、实验目的
1、掌握ARMSYS平台开发环境
2、学习ARM的端口配置方法
3、掌握ARMSTD2.51开发平台的使用方法
二、实验设备
硬件:
THUS-1型嵌入式(ARM)实验/开发系统;ARM仿真器套件(包括仿真器、25针并口延长线、14针(或20针)排线);串口线(2、3平行);PC机(Pentumn100)
软件:
PC机操作系统Windows98/2000/NT/XP;ARMSTD2.51集成开发环境;仿真器驱动程序
三、实验内容
熟习ARMSDT2.51平台的开发环境。
四、实验原理
1、超级终端的建立
①点击“开始→程序→附件→通讯→超级终端”,进入图1,选择COM1,点击确定;
图1
②如图2,输入名称,选择图标(第一个),点击确定;
图2
③对端口进行如下设置,并确定:
图3
注意:
当关闭超级终端时提示是否保存,选择“是”,下次不需要再建,直接打开“ARM”即可。
2、JTAG的设置
①将JTAG口与目标板连接好;
②双击桌面图标
,打开ARM7调试代理,将其设置为如图4所示,然后点击Test按钮。
如果JTAG口与目标板连接好,则在ARM7调试代理的左侧的空白处会出现“DetectARM7TDMI”的字样。
图4
注意:
在运行SDT的调试器ADW调试程序的过程中,始终不要关闭ARM7调试代理。
3、ARMSDT的应用
ARMSDT是ARM公司推出的一整套集成开发工具。
SDT经过逐年维护和更新,目前最新版本为2.5.2。
新建一个项目的步骤如下:
1运行ARMSDT2.5集成开发环境(ARMProjectManager),点击开始菜单中的程序组的ARMSDTV2.51中的ARMProjectManager启动主程序或者点击桌面图标
启动主程序。
出现主程序界面,如图5所示。
图5
2若要新建一个项目,选择File|New菜单,在对话框中选择PROJECT,新建一个工程文件(project1),如图6所示。
备注:
可以选择提供的模板。
注意:
新建前,在编译环境下关闭所有打开的工程
图6
③在新建的工程中,如图7所示,选中工程树的“根部”。
使用菜单Project|toolConfigurationforwork1.apj|=armasm|set,对整个工程的汇编进行设置。
因为开发板上的嵌入式处理器ARM7TDMI没有浮点处理器,所以在图8所示的对话框中设置Floatingpointprocessor为NONE。
其它保持不变。
图7
图8
④鼠标左键点击到DEBUG子树的Sources选项,通过点击菜单Project|addFiletoSources将(*.S和*.C文件)加入到DEBUG子树的Sources选项中,如图9所示。
以简单的循环点亮LED的程序为例,把E:
\嵌入式实验资料\THUS-1程序\02.IO\SRC文件夹中的44binit.s、44blib.c、main.c加入到工程中。
图9
⑤选中工程树中debug子树的includedfiles选项。
通过菜单Project|addFiletoincludedfiles,把工程中包含的(*.H)文件都加入到工程中。
以简单的循环点亮LED的程序为例,把F:
\嵌入式实验资料\THUS-1程序\02.IO\INC文件夹中的44B.h、44BLIB.h、ADC.h、DEF.h、Option.h加入到工程中。
注意:
把E:
\嵌入式实验资料\THUS-1程序\02.IO\INC文件夹中的memcfg.s拷贝到E:
\嵌入式实验资料\THUS-1程序\02.IO\SRC目录下,否则会出现错误。
⑥选中工程树的“根部”,通过菜单Project|toolconfigurationforwork1.apj|asmlink|set,对整个工程的连接方式进行设置,在弹出的对话框中,选中General标签,根据需要选中一些复选框。
Searchpathforlibraries一项,所填内容为SDT的安装路径,这里填入的是“C:
\ARM251\LIB”,若安装过程中修改了路径,则要做相应的修改,参考配置如图10所示。
图10
在对话框Linkerconfiguration中,选中EntryandBase选项卡,设置连接的Read-Only(只读)和Read-Write(读写)地址。
只读地址是实验板上SDRAM的真实地址,设置为0xc000000,由系统硬件决定用来存放代码段;读写地址是系统读写内存的地址,用来存放数据段,设置为0xc5f0000,如图11所示。
图11
选择对话框Linkerconfiguration的Imagelayout选项卡,设置程序的入口模块(THUS-1实验箱的程序是从44binit.s中开始运行的)。
如图12所示。
图12
此时工程建立完毕,下面对工程进行编译调试。
现在选择菜单project下的buildproject1.apj“debug”或者点击快捷图标
就可以编译代码。
点击菜单project下的Forcebuildproject1.apj“debug”或者点击快捷图标
之后就生成了二进制目标代码(*.bin),这可以在项目文件夹下面找到。
在主程序窗口下面的信息框可以看到编译的情况,包括警告和错误信息,最终代码生成的情况等等。
工程在经过调试没有错误之后,需要进行仿真,但还要进行一些设置才可以。
如果点击project菜单下Debug命令或者快捷图标
,没有出现图14,则设置仿真环境的过程如下:
①点击project菜单下Debug命令或者快捷图标
,出现ARMDebugger程序窗口,如图13所示。
图13ARMDebugger程序窗口
②选择ARMDebugger程序窗口中菜单Option下面的ConfigDebugger,出现DebuggerConfiguration对话框如图14所示。
图14
在TargetEnvironment中选择Remote_A,然后点击Configure按钮,出现对话框如图15所示。
图15
在Heartbeat前面打勾,在Ethernet后面输入ip地址127.0.0.1并确认即可。
这样仿真设置就完成了,点击DebuggerConfiguration对话框中的确认按钮就可以了。
③等程序下载结束,在ARMDebugger调试窗口的菜单栏中点击Execute中的go命令就可以运行仿真程序了。
注意:
1、结束仿真必须先点击ARMDebugger调试窗口的菜单栏中点击Execute中的stop命令,否则会有引起一些严重的后果。
2、在运行SDT的调试器ADW调试程序的过程中,始终不要关闭ARM7调试代理。
五、实验步骤(以THUS-1程序/02.IO/IO.apj为例熟悉实验环境)
1.准备实验环境:
用并口线正确连接电脑并口和配套仿真器(或THUFZ-1型ARM实时在线仿真器),用14针(或20针)的排线(THUFZ-1型ARM仿真器采用20针排线)连接仿真器和实验箱的JTAG口;用串口线连接实验箱上的串口1单元与计算机的COM1。
2.在PC机上运行windows自带的串口通信程序“超级终端”(波特率为57600、8位数据位、无奇偶校验位、1位停止位、无数据流控制)。
3.打开系统电源,使用ARMSTD2.51集成开发环境按照实验原理中新建工程的方法新建一个工程,并添加源程序,设置好汇编环境和连接方式,编译无错误后,进行Debug,进入仿真阶段。
(具体步骤见实验原理)。
4.在PC上观察“超级终端”主窗口,观察实验系统LED单元LED3、LED4、LED5点亮情况。
5.关闭程序窗口,切断实验系统电源,整理好实验系统,本实验结束。
实验二数码管显示实验
一、实验目的
1、通过实验掌握数码管的显示控制方法。
2、掌握片选地址的设计方法
二、实验设备
硬件:
THUS-1型嵌入式(ARM)实验/开发系统;ARM仿真器套件(包括仿真器、25针并口延长线、14针(或20针)排线);串口线(2、3平行);PC机(Pentumn100)
软件:
PC机操作系统Windows98/2000/NT/XP;ARMSTD2.51集成开发环境;仿真器驱动程序
三、实验内容
编写程序使实验板上八段数码管顺序显示数字0~9。
四、实验原理
1、八段数码管
嵌入式系统中,经常使八段数码管来显示数字或符号,由于它具有显示清晰、高亮度、使用电压过低、寿命长的特点,因此使用非常广泛。
◆结构
八段数码管由八个发光二极管组成,其中七个长条形的发光管排成“日”字形,右下角一个点形的发光管作为显示小数点用,八段数码管能显示所有数字及部份英文字母。
◆类型
八段数码管有两种不同的形式:
一种是八个发光二极管的阳极都连在一起的,称之为共阳极八段数码管:
另一种是八个发光二极管的阴极都连在一起的,称之为共阴极八段数码管。
◆工作原理
以共阳极八段数码管为例,当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;共阴极二极管则相反,控制信号为高电平时点亮。
电平信号按照dp,g,e…a的顺序组合形成的数据字称为该字符对应的段码,常用字符的段码表如下
说明:
实际代码要根据本系统的硬件资源修改(参见例程)
◆显示方式
八段数码管的显示方式有两种,分别是静态显示和动态显示。
静态显示是指当八段数码管显示的一个字符时,该字符对应段的发光二极管控制信号一直保持有效。
动态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管是轮流点亮的,即控制信号按一定周期有效,在轮流点亮的过程中,点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,数码管的显示依然是非常稳定的。
3、电路原理
THUS-1教学电路中,使用的是共阴极八段数码管,各段的控制信号是由处理器S3C44B0的数据总线低8位通过锁存器74LS573进行控制的,数码管的亮度经由电阻R1到R8调整,锁存器的选通通过74LV138译码得到。
锁存器选通信号是由处理器S3C44B0的存储区域2对应的片选信号线NGCS2和他址线的高位
A18、A19、A20经过译码器生成的,当选通信号有效时,数据线低八位的内容将在八段数码管上显示出来。
八段数码控制电路:
五、实验操作步骤
1.准备实验环境:
用并口线正确连接电脑并口和配套仿真器(或THUFZ-1型ARM实时在线仿真
器),用14针(或20针)的排线(THUFZ-1型ARM仿真器采用20针排线)连接仿真器和实验箱的
JTAG口;用串口线连接实验箱上的串口1单元与计算机的COM1(或COM2)。
2.在PC机上运行windows自带的串口通信程序“超级终端”(波特率为57600、8位数据位、无奇偶校验位、1位停止位、无数据流控制)(详细配置过程见附录)。
3.打开系统电源,运行仿真器驱动程序,使用ARMSTD2.51集成开发环境打开:
THUS-1程序/03.0.shumaguan/shumaguan.apj例程(或03.1.shumaguan/shumaguan.apj),下载并运行。
4.在PC上观察“超级终端”主窗口,观察实验系统数码管显示单元显示情况。
5.理解和掌握实验后,试着完成下列中显示A—E程序的编写。
for(i=0;i<9;i++)
{
D12Cmd=;//E
D12Cmd3=;//D
D12Cmd4=;//C
D12Cmd5=0xC7;//B
D12Cmd6=0xF5;//A
Delay(2000);
}
6.关闭程序窗口,切断实验系统电源,整理好实验系统,本实验结束。
实验三通用I/O使用——矩阵键盘
一、实验目的
1、通过实验掌握查询式键盘控制与设计方法。
2、掌握查询式键盘检测程序的设计思路。
3、熟练编写ARM处理器S3C44BOX键盘处理程序。
二、实验设备
硬件:
THUS-1型嵌入式(ARM)实验/开发系统;ARM仿真器套件(包括仿真器、25针并口延长线、14针(或20针)排线);串口线(2、3平行);PC机(Pentumn100)
软件:
PC机操作系统Windows98/2000/NT/XP;ARMSTD2.51集成开发环境;仿真器驱动程序
三、实验内容
使用实验板上4*4个用户键盘,编写程序通过查询方式读入键值,并在实验板上的LED数码管上或者超级终端上显示读到的键值。
四、实验原理
1、I/O端口介绍
S3C44B0X芯片上共有71个多功能的输入输出管脚,它们分为7组I/O端口。
●两个9位的输入/输出端口(端口E和F)
●两个8位的输入/输出端口(端口D和G)
●一个16位的输入/输出端口(端口C)
●一个10位的输出端口(端口A)
●一个11位的输出端口(端口B)
每组端口都可以通过软件配置寄存器来满足不同系统和设计的需要。
在运行主程序之前,必须先对每一个用到的管脚的功能进行设置,如果某些管脚的复用功能没有使用,可以先将管脚设置为I/O口。
2、S3C44BOX芯片和端口相关的寄存器
端口配置寄存器(PCONA-G)
在S3C44BOX芯片中,大部分管脚是多路复用的,所以要确定每个管脚的功能。
PCONn(端口控制寄存器存)能够定义管脚功能。
如果PG0-PG7作为掉电模式下的唤醒信号,则这些端口必须配置成中断模式。
端口数据寄存器(PDATA-G)
如果端口定义为输出口,则输出数据可以写入PDATn中相应的位;如果端口定义为输入口,则输入的数据可以从PDATn相应的位中读入。
端口上拉寄存器(PUPC-G)
通过配置端口上拉寄存器可以使该组端口和上拉电阻连接或断开。
当寄存器中相应的位配置0时,该管脚接上拉电阻;当寄存器中相应的位配置1时,该管脚不接上拉电阻。
外部中断控制寄存器(EXTINT)
通过不同的信号方式可以使用8个外部中断请求,EXTINT寄存器可以根据外部中断的需要将中断触发信号配置为低电平触发、高电平触发、下降沿触发、上升沿触发和上下沿触发几种方式。
以下为THUA-1嵌入式实验箱各个端口的管脚定义。
在端口的表中可以看到,管脚PE0、PE4、PF4被设置为输出口,并且分别和LED3、LED4、LED5连接。
端口A
端口A管脚功能端口A管脚功能端口A管脚功能
PA0ADDR0PA4ADDR19PA8ADDR23
PA1ADDR16PA5ADDR20PA9L3DATA(IIS)
PA2ADDR17PA6ADDR21
PA3ADDR18PA7ADDR22
PCONA寄存器地址:
OX01D20000
PDATA寄存器地址:
0X01D20004
PCONA复位默认值:
0X1FF
端口B
端口B管脚功能端口B管脚功能端口B管脚功能
PB0SCKEPB4L3MO(IIS)PB8NGCS3
PB1SCLKPB5L3COLCK(IIS)PB9NGCS4
PB2nSCASPB6nGCS1PB10CPLD
PB3nSrASPB7NGCS2
PCONB寄存器地址:
0X01D20008
PDATB寄存器地址:
0X01D2000C
PCONB复位默认值:
0X7FF
端口C
端口C管脚功能端口C管脚功能端口C管脚功能
PC0IISLRCKPC6VD5PC12TXD1
PC1IISDOPC7VD4PC13RXD1
PC2IISDIPC8INPUT(串口)PC14INPUT(串口)
PC3IISCLKPC9INPUT(串口)PC15INPUT(串口)
PC4VD7PC10RTS1
PC5VD6PC11CTS1
PCONC寄存器地址:
0X01D20010
PDATC寄存器地址:
0X01D20014
PUPC寄存器地址:
0X01D20018
PCONC复位默认值:
0X0FF0FFFF
端口D
端口D管脚功能端口D管脚功能端口D管脚功能
PD0VD0PD3VD3PD6VM
PD1VD1PD4VCLKPD7VFRAME
PD2VD2PD5VLINE
PCOND寄存器地址:
0X01D2001C
PDATD寄存器地址:
0X01D20020
PUPD寄存器地址:
0X01D20024
PCOND复位默认值:
0XA
端口E
端口E管脚功能端口E管脚功能端口E管脚功能
PE0LED3PE3WPPE6ALE(29F2808)
PE1TXDOPE4L3DATPE7CLE(29F2808)
PE2RXDOPE5PWMOPE8ENDIN
PCONE寄存器地址:
0X01D20028
PDATE寄存器地址:
0X01D2002C
PUPE寄存器地址:
0X01D20030
PCONE复位默认值:
0X25529
端口F
端口F管脚功能端口F管脚功能端口F管脚功能
PF0IICSCLPF3RB(29F2808)PF6PEN_CS
PF1IICSDAPF4LED1PF7SPM_RXD
PF2KEY3PF5SPMTXDPF8SPMCLK
PCONF寄存器地址:
0X01D20034
PDATF寄存器地址:
0X01D20038
PUPF寄存器地址:
0X01D2003C
PCONF复位默认值:
0X00252A
端口G
端口G管脚功能端口G管脚功能端口G管脚功能
PG0EXINT0PG3EXINT3PG6EXINT6
PG1EXINT1PG4EXINT4PG7EXINT7
PG2EXINT2PG5EXINT5
PCONG寄存器地址:
0X01D20040
PDATG寄存器地址:
0X01D20044
PUPG寄存器地址:
0X01D20048
PCONG复位默认值:
0XFFFF
3、读取键值的方法
用户设计行列键盘接口,一般常采用三种方法读取键值。
一种是中断式,另两种是扫描法和反转法。
(1)中断式
在键盘按下时产生一个外部中断通知CPU,并由中断处理程序通过不同地址读数据线上的状态判断哪个按键被按下。
本实验采用中断式实现用户键盘接口。
(2)扫描法
对键盘上的某一行送低电平,其他为高电平,然后读取列值,若列值中有一位是低,表明该行与低电平对应列的键被按下。
否则扫描下一行。
(3)反转法
先将所有行扫描线输出低电平,读列值,若列值有一位是低表明有键按下;接着所有列扫描线输出低电平,再读行值。
根据读到的值组合就可以查表得到键码。
4、本系统中的硬件连接方式
本系统中LED数码管为共阴极数码管,各段是由S3C44B0X的数据总线低8位通过锁存器74ls138译码得到的。
锁存器选通由S3C44B0X的存储区域2对应的片选信号线NGCS2和地址线的高位A18、A19、A20经过译码得到的。
5、键盘扫描的工作过程
THUS-1实验板上采用I/O口与键盘行列连接,即是编码方式,根据行值,读入I/O的状态即可判断相应的键值。
五、实验步骤
1.准备实验环境:
用并口线正确连接电脑并口和配套仿真器(或THUFZ-1型ARM实时在线仿真器),用14针(或20针)的排线(THUFZ-1型ARM仿真器采用20针排线)连接仿真器和实验箱的JTAG口;用串口线连接实验箱上的串口1单元与计算机的COM1。
2.在PC机上运行windows自带的串口通信程序“超级终端”(波特率为57600、8位数据位、无奇偶校验位、1位停止位、无数据流控制)(详细配置过程见实验一)。
3.打开系统电源,运行仿真器驱动程序,使用ARMSTD2.51集成开发环境打开:
E:
\嵌入式实验资料\THUS-1程序/04.Key/Key.apj,编译后无错误,下载并运行。
4.按动实验系统键盘单元的小键盘,在PC上观察“超级终端”主窗口显示的键值,观察实验系统数码管显示单元最右侧数码管显示情况。
5.阅读实验程序,填写下列划线空白处。
#defineD12Cmd*(volatileU8*)(0x04080000)//
填写下表中各行值和列值的编码。
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
6.阅读实验程序,分析并写出main程序的代码结构图。
7、关闭程序窗口,切断实验系统电源,整理好实验系统,本实验结束。
实验四实时时钟(RTC)应用
一、实验目的
1.了解实时时钟的硬件控制原理及设计方法。
2.掌握S3C44BOX处理器的RTC模块程序设计方法。
二、实验设备
硬件:
THUS-1型嵌入式(ARM)实验/开发系统;ARM仿真器套件(包括仿真器、25针并口延长线、14针(或20针)排线);串口线(2、3平行);PC机(Pentumn100)
软件:
PC机操作系统Windows98/2000/NT/XP;ARMSTD2.51集成开发环境;仿真器驱动程序
三、实验内容
学习和掌握S3C44B0X处理器的RTC模块的使用,并编写应用程序,修改时钟日期及时间的设置,并利用系统的串行口,在超级终端显示。
四、实验原理
1.实时时钟(RTC)介绍
实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。
RTC具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。
随着集成电路技术的不断发展,RTC器件的新品也不断推出,这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器是A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。
RTC器件与微控制器之间的接口大都采用连线简单的串行接口,诸如I2C、SPI、MICROWIRE和CAN等串行总线接口。
2.S3C44B0X实时时钟(RTC)单元
S3C44B0X实时时钟(RTC)单元是处理器集成的片内外设。
由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。
RTC发送8位BCD码数据到CPU。
传送的数据包括秒、分、小时、星期、日期、月份和年份。
RTC单元时钟源由外部32.768KHZ晶振提供,可以实现闹钟(报警)功能。
S3C44B0X实时时钟(RTC)单元特性:
BCD数据:
秒、分、小时、星期、日期、月份和年份
-闹钟(报警)功能:
产