计算机三级嵌入式系统操作题到详细解答.docx
《计算机三级嵌入式系统操作题到详细解答.docx》由会员分享,可在线阅读,更多相关《计算机三级嵌入式系统操作题到详细解答.docx(18页珍藏版)》请在冰点文库上搜索。
计算机三级嵌入式系统操作题到详细解答
计算机三级嵌入式系统操作题(到详细解答)
操作题
(一)
1、地铁进出站闸机的控制器以S3C2410芯片为核心,并外加其他功能电路来进行设计,其基本功能描述如下:
a、闸机能够识别本地铁票务系统出售的IC卡。
能识别的IC卡有2种,一种是可预付费的"市民卡",另一种是地铁站内出售的"当次卡"。
b、乘客凭"市民卡"或"当次卡"刷卡进站。
若IC卡合法,则闸机打开,乘客通过后,闸机立即关闭;若IC卡不合法,闸机不打开,并进行声光报警。
声光报警5次后自动停止。
c、进站刷卡时,还需识别IC卡的种类。
若是"市民卡",在闸机打开之前,需读取卡中余额并显示在闸机的LED显示器上,且把地铁站ID、进站时间写入卡中相应区域。
若是"当次卡",判断合法后直接打开闸机。
d、出站时,乘客需要根据所用的IC卡种类,来进行不同的操作。
若乘客用的是"市民卡",则需在闸机的刷卡器上刷卡,若乘客用的是"当次卡"则需要把卡投入闸机的投卡口中。
e、若乘客出站时刷的是"市民卡",闸机系统需读取存储在卡上的"市民卡"类别ID(注:
"市民卡"类别分为普通卡、学生卡、老人卡)、地铁站ID、进站时间、余额等信息,根据这些信息来扣除费用,并在闸机的LED显示器上显示余额及本次扣费额,若是学生卡或老人卡,还要用声音播报出"市民卡"类别,然后,打开闸机,乘客通过后立即关闭闸机。
f、若乘客出站时用的是"当次卡",判断合法后即把闸机打开,乘客出去后立即关闭。
根据上述功能要求的描述,请完善下面的叙述(程序)和回答有关的问题。
(注意:
完善程序或回答问题所需的寄存器格式见题后的附录)
(1)闸机控制器的硬件平台设计时,除了需要设计最小硬件系统(包括:
微处理器、___【1】____电路、时钟电路、复位电路、存储器、JTAG接口电路)外,还必须设计IC卡读写电路、闸门电机驱动电路、声音提示及声光报警电路、LED显示接口电路等。
若闸门电机驱动电路由GPE1引脚控制,GPE1引脚输出"0"时,控制闸门关闭,输出"1"时,控制闸门打开。
那么,初始化GPE1引脚功能的语句是:
rGPECON=((rGPECON|0x00000004)&___【2】____);//rGPECON是端口E的控制寄存器
控制闸门关闭和打开的语句分别是:
rGPEDAT=rGPEDAT&___【3】____;//rGPEDAT是端口E的数据寄存器
rGPEDAT=rGPEDAT|___【4】____;
(2)IC卡读写电路设计时,选用IC卡读写模块通过异步串行接口与S3C2410连接,利用S3C2410芯片内部的UART1部件实现异步串行接口电路设计。
那么,在UART1的驱动程序设计时,可用下面一段程序来初始化UART1部件(注:
UART1的波特率要求为:
115200bps,数据格式要求为:
8位数据、1位停止位、偶校验,主频为PCLK。
)。
voidUART1_Init()
{
rGPHCON=(rGPHCON&0xFFFFF0FF)|___【5】____;//端口H相应引脚功能初始化
rUFCON1=0x0;//FIFOdisable
rUMCON1=0x0;
rULCON1=(___【6】____<<3)|(0<<2)|(___【7】____);//设置线路控制寄存器
rUCON1=0x245;//设置控制寄存器
rUBRDIV1=((int)(PCLK/___【8】____)+0.5-1);//设置波特率,小数采用四舍五入
}
(3)乘客出站时刷的若是"市民卡",则需要用声音来播报卡的类别,即若是"学生卡"则语音播报:
学生卡;若是"老人卡"则语音播报:
老人卡。
因此,硬件平台构建时设计了一个16位D/A转换器芯片,再加上功率放大电路及扬声器等所构成的语音播报电路,S3C2410芯片通过GPC端口与D/A转换器的16位数据线相连。
软件设计时,可以先行对相关的语音波形进行采样、编码。
设人的语音频率范围是300Hz~4000Hz,因此,对语音波形采样时,采样频率至少应为___【9】____KHz,所采得的数字语音信号才不至于失真。
假设,播音员读"学生卡"的这段语音波形持续3秒,采用该采样频率进行采样,数字语音信号编码采用16位二进制数,那么存储该段语音信号约需要____【10】___KB(1KB=1024B)的存储容量。
语音回放时,按照采样频率要求,定时从所存储的单元中逐次读出先行采样得到的数字语音信号,输出给D/A转换器,然后通过扬声器播出。
因此,在相关的驱动程序中,需要用语句:
rGPCCON=___【11】____;(注:
rGPCCON是端口C的控制寄存器)来初始化GPC端口的引脚功能。
然后通过GPC端口的___【12】____寄存器定时输出数字语音信号。
(4)闸门在乘客通过闸机后立即关闭,因此,硬件平台构建时,可在闸门的后方一定距离内安装一个红外感测探头,并在闸机控制器中设计相关接口电路。
若采用GPE0引脚来输入红外感测信号,GPE0引脚为"1"时,表示人体不在感应区内,GPE0引脚为"0"时,表示人体在感应区内。
那么,初始化GPE0引脚功能的语句是:
rGPECON=rGPECON&___【13】____;//rGPECON是端口E的控制寄存器
判断是否人体在感应区内的语句可以是:
if((rGPEDAT&0x0001)==___【14】____)
{//判断出人体在感应区内
……
}
(5)闸机控制器的应用软件将在无操作系统环境下进行开发。
设计者可以设计一个启动引导程序,来引导应用程序。
按照ARM9体系结构中的规定,启动引导程序代码的存储单元首址应该是___【15】____,它对应着复位异常向量。
系统上电/复位后,ARM9微处理器处于管理模式,启动引导程序在引导应用程序前,通常需用指令ORRR1,R0,___【16】____|0xC0和MSRCPSR_cxsf,R1来使ARM核进入用户模式(注:
R0,R1寄存器的初值设定为0。
CPSR寄存器的格式见题后附录。
),然后再通过指令___【17】____来引导应用程序主函数main()。
启动引导程序中还需要完成异常向量表的设置,ARM9体系结构中规定异常向量之间各相差___【18】____个字节,因此,需要在各异常向量处设计一条分支指令。
对于S3C2410微处理器来说,其启动引导程序还需要完成禁止看门狗部件和禁止___【19】____部件,并设置各工作模式下的___【20】____指针。
附录:
综合题中完善程序或回答问题所需的寄存器格式
端口C控制寄存器(GPCCON)的格式
符号
位
描述
初始状态
GPC15
[31:
30]
00=输入01=输出10=VD711=保留
00
GPC14
[29:
28]
00=输入01=输出10=VD611=保留
00
GPC13
[27:
26]
00=输入01=输出10=VD511=保留
00
GPC12
[25:
24]
00=输入01=输出10=VD411=保留
00
GPC11
[23:
22]
00=输入01=输出10=VD311=保留
00
GPC10
[21:
20]
00=输入01=输出10=VD211=保留
00
GPC9
[19:
18]
00=输入01=输出10=VD111=保留
00
GPC8
[17:
16]
00=输入01=输出10=VD011=保留
00
GPC7
[15:
14]
00=输入01=输出10=LCDVF211=保留
00
GPC6
[13:
12]
00=输入01=输出10=LCDVF111=保留
00
GPC5
[11:
10]
00=输入01=输出10=LCDVF011=保留
00
GPC4
[9:
8]
00=输入01=输出10=VM11=保留
00
GPC3
[7:
6]
00=输入01=输出10=VFRAME11=保留
00
GPC2
[5:
4]
00=输入01=输出10=VLINE11=保留
00
GPC1
[3:
2]
00=输入01=输出10=VCLK11=保留
00
GPC0
[1:
0]
00=输入01=输出10=LEND11=保留
00
端口E控制寄存器(GPECON)的格式
符号
位
描述
初始状态
GPE15
[31:
30]
00=输入01=输出10=IICSDA11=保留
00
GPE14
[29:
28]
00=输入01=输出10=IICSCL11=保留
00
GPE13
[27:
26]
00=输入01=输出10=SPICLK11=保留
00
GPE12
[25:
24]
00=输入01=输出10=SPIMOSI011=保留
00
GPE11
[23:
22]
00=输入01=输出10=SPIMISO011=保留
00
GPE10
[21:
20]
00=输入01=输出10=SDDAT311=保留
00
GPE9
[19:
18]
00=输入01=输出10=SDDAT211=保留
00
GPE8
[17:
16]
00=输入01=输出10=SDDAT111=保留
00
GPE7
[15:
14]
00=输入01=输出10=SDDAT011=保留
00
GPE6
[13:
12]
00=输入01=输出10=SDCMD11=保留
00
GPE5
[11:
10]
00=输入01=输出10=SDCLK11=保留
00
GPE4
[9:
8]
00=输入01=输出10=IISSDO11=保留
00
GPE3
[7:
6]
00=输入01=输出10=IISSDI11=保留
00
GPE2
[5:
4]
00=输入01=输出10=CDCLK11=保留
00
GPE1
[3:
2]
00=输入01=输出10=IISSCLK11=保留
00
GPE0
[1:
0]
00=输入01=输出10=IISLRCK11=保留
00
端口H控制寄存器(GPHCON)的格式
符号
位
描述
初始状态
GPH10
[21:
20]
00=输入01=输出10=CLKOUT111=保留
00
GPH9
[19:
18]
00=输入01=输出10=CLKOUT011=保留
00
GPH8
[17:
16]
00=输入01=输出10=UCLK11=保留
00
GPH7
[15:
14]
00=输入01=输出10=RXD211=nCTS1
00
GPH6
[13:
12]
00=输入01=输出10=TXD211=nRTS1
00
GPH5
[11:
10]
00=输入01=输出10=RXD111=保留
00
GPH4
[9:
8]
00=输入01=输出10=TXD111=保留
00
GPH3
[7:
6]
00=输入01=输出10=RXD011=保留
00
GPH2
[5:
4]
00=输入01=输出10=TXD011=保留
00
GPH1
[3:
2]
00=输入01=输出10=nRTS011=保留
00
GPH0
[1:
0]
00=输入01=输出10=nCTS011=保留
00
ULCONn寄存器的格式
符号
位
描述
初始状态
Reserved
[7]
保留
0
Infra-RedMode
[6]
确定是否采用红外模式0=正常操作模式1=红外传输模式
0
ParityMode
[5:
3]
确定校验类型0xx=无校验100=奇校验101=偶校验
000
StopBit
[2]
确定停止位数0=1位停止位1=2位停止位
0
WordLength
[1:
0]
确定数据位数00=5位01=6位10=7位11=8位
00
CPSR寄存器(32位寄存器)的格式(注:
仅给出了最后5位,即工作模式选择位)
M4M3M2M1M0
10000用户模式
10001FIQ模式
10010IRQ模式
10011管理模式
10111中止模式
11011未定义模式
11111系统模式
【解题思路】
本题主要考查基于S3C2410的地铁进出站闸机系统开发。
包括嵌入式最小硬件系统构成,GPIO引脚功能及相应初始化设置,GPC和GPD作为LED显示器接口引脚,GPE作为输入输出,还考察了香农定理,ARM9体系结构中的异常向量等相关知识。
【参考答案及解析】
第1空答案:
电源;最小硬件系统的组成。
第2空答案:
0xFFFFFFF7或(~0x00000008)或~0x00000008;和0相与清零,和1相与保持不变。
和0相或保持不变,和1相或置1。
00为输入,01为输出,则初始化GPE1引脚功能为输出的语句是:
rGPECON=((rGPECON|0x00000004)&0xFFFFFFF7)。
第3空答案:
0xFFFD或(~0x0002)或~0x0002;GPE1引脚输出"0"时,控制闸门关闭,即rGPEDAT=rGPEDAT&0xFFFD。
第4空答案:
0x0002;GPE1引脚输出"1"时,控制闸门打开。
即rGPEDAT=rGPEDAT|0x0002。
第5空答案:
0x00000A00;GPH5中10=RXD1,GPH4中10=TXD1。
所以端口H的初始化语句为先清零、再置一,即rGPHCON=(rGPHCON&0xFFFFF0FF)|0x00000A00。
第6空答案:
5;8位数据位、1位停止位、偶校验。
在ULCON中,[1:
0]:
11=8位;[2]:
0=1位停止位;[5:
3]:
101=偶校验;[6]:
0=正常操作模式。
即rULCON1=(5<<3)|(0<<2)|(3)。
第7空答案:
3;
第8空答案:
115200*16=1843200;设置波特率。
第9空答案:
8;根据香农采样定理可得。
第10空答案:
46.875;采样频率为8KHz,采样周期为125us,样本值用16位二进制数进行编码。
则3s的语音片段的存储容量为:
(3*16)/(125us*8)=46.875。
第11空答案:
0x55555555;00为输入,01为输出,则初始化GPC关口功能为输出的语句是:
rGPCCON=0x55555555。
第12空答案:
数据;
第13空答案:
0xFFFFFFFC或~0x00000003或(~0x00000003);采用GPE0引脚来输入红外感测信号,GPE0引脚为"1"时,表示人体不在感应区内,GPE0引脚为"0"时,表示人体在感应区内。
则初始化GPE0引脚功能的语句是:
rGPECON=rGPECON&0xFFFFFFFC。
第14空答案:
0x0000;判断人体是否在感应区内的语句为:
if((rGPEDAT&0x0001)==0x0000),若为真,则表示人体在感应区内。
第15空答案:
0x00000000或0x00;对应复位异常向量。
第16空答案:
0x10或0x00000010或16;用户模式中[M4M3M2M1M0]=[10000]。
即ORRR1,R0,0x10|0xC0。
第17空答案:
BL_main;
第18空答案:
4;ARM9体系结构中规定异常向量之间各相差4个字节,因此,需要在各异常向量处设计一条分支指令。
第19空答案:
外部中断;
第20空答案:
堆栈
操作题
(二)
1、某食堂的售饭系统由一个后台数据库系统及若干个前台刷卡机组成,其基本功能具体描述如下:
a、刷卡机的硬件组成中,除了必须的最小硬件系统外,还需要IC卡读写模块、8段LED组成的显示模块、键盘模块、蜂鸣器模块、RS-485通信模块等。
b、客户需要事先办理本系统的消费IC卡,预存若干金额,办卡信息及预存金额存储在后台数据库系统中。
c、客户消费时,用IC卡在刷卡机上支付。
支付时,由售饭员在刷卡机上输入客户缴费金额且在LED显示器上显示,然后客户刷卡,若IC卡合法,则把缴费金额和IC卡信息传输给后台数据库系统。
若IC卡不合法,用蜂鸣器发不合法提示音。
d、后台数据库系统接收到刷卡机的信息后,将根据IC卡号查询出该卡的余额,若余额大于等于应缴费额,则进行扣费,再把当前余额及扣费正确信息回传给刷卡机。
若余额小于应缴费额,则回传扣费不正确信息给刷卡机。
e、刷卡机接收到回传的信息后,显示回传的余额,且若是扣费正确信息,则用蜂鸣器发"扣费正确"提示音;若是扣费不正确信息,则用蜂鸣器发"扣费不正确"提示音。
根据上述功能要求的描述,若采用S3C2410芯片为核心来构建刷卡机的硬件平台,请完善下面的叙述(程序)和回答有关的问题。
(1)在设计硬件时,最小的硬件系统是保证系统能正常工作的必要硬件组成。
它包括电源电路、___【1】____、复位电路、调试测试接口、以及___【2】____。
(2)若在硬件设计时,选用8个共阴极的8段LED(其排列如图1所示)组成2组显示器(1组4个8段LED),用于显示当前消费金额和余额。
若采用GPC0~GPC6、GPC7外接同向驱动后,分别连接到显示"消费金额"的LED显示器段信号线a~f、dp上,采用GPD0~GPD3外接同向驱动后分别控制该组显示器中低数据位~高数据位的4个8段LED位信号线。
另外采用GPC8~GPC14、GPC15外接同向驱动后,分别连接到显示"余额"的LED显示器段信号线a~f、dp上,采用GPD4~GPD7外接同向驱动后分别控制该组显示器中低数据位~高数据位的4个8段LED位信号线。
那么,GPC0~GPC15引脚的功能为:
___【3】____,GPD0~GPD7引脚的功能为:
___【4】____。
初始化GPC0~GPC15引脚功能的语句可以是:
//rGPCCON是端口C的控制寄存器,其格式见后面附录
rGPCCON=___【5】____;
初始化GPD0~GPD7引脚功能的语句可以是
//rGPDCON是端口D的控制寄存器,其格式见后面附录
rGPDCON=((rGPDCON|0x00005555)&___【6】____);
若只在"余额"LED显示器中的次高数据位LED上显示字符"3",相关驱动程序中可用下面语句实现。
rGPCDAT=___【7】____;//输出"3"的段信号
rGPDDAT=___【8】____;//输出次高数据位被点亮的控制信号
(3)刷卡机上输入客户缴费金额的键盘,在设计时采用非标准键盘组成,键盘接口设计成4×4的阵列(其按键排列示意图如图2所示)。
键盘接口电路中选用GPE0~GPE3来输出键盘行扫描信号,选用GPE4~GPE7来输入键盘列信号。
软件设计时设计者自行设计了键盘扫描函数,请你补充完善之:
//*KEYOUTPUT是键盘扫描时的输出地址,KEYINPUT是键盘读入时的地址
#defineKEYOUTPUT(*(volatileINT8U*)0x56000044)
#defineKEYINPUT(*(volatileINT8U*)0x56000044)
INT16UScanKey()
{
INT16Ukey=0xFFFF;
INT16Ui;
INT8Utemp=0xFF,output;
//rGPECON是端口E的控制寄存器,其格式见后面附录
rGPECON=((rGPECON&0xFFFFFF00)|___【9】____);//初始化GPE0~GPE3为输出
rGPECON=rGPECON&___【10】____;//初始化GPE4~GPE7为输入
//下面判断键盘中是否有键按下
for(i=1;((i<=8)&&(i>0));___【11】____)
{
output|=0xFF;
output&=(~i);
KEYOUTPUT=output;
temp=KEYINPUT;
if((temp&0xF0)!
=___【12】____)//判断列信号是否为全"1"
{
key=(~i);
key<<=8;
key|=((temp&0xF0)|0x0F);//求得按键的返回值
return(key);//函数返回按键对应的值
}
}
return0xFFFF;
}
应用程序中可根据上面的键盘扫描函数的返回值,来判断是否有按键按下,并确定是哪个按键按下。
例如:
若返回值为:
___【13】____时,可知是键盘中的"6"键按下,
若返回值为:
___【14】____时,可知是键盘中的"确认"键被按下。
若无键按下时,返回值应为:
___【15】____。
(4)刷卡机与后台数据库系统通信采用RS-485总线。
因此在硬件设计时,需要采用S3C2410芯片内部的___【16】____部件外加电平转换芯片等来实现。
若在软件设计时,其初始化程序中波特率设置为9600bps,数据格式设置为:
8位数据位、无校验、1位停止位。
那么,1秒时间内最多能传输__【17】_____字节的信息。
(5)刷卡机上的应用软件是在无操作系统环境下开发的。
设计者可以自行设计系统的启动引导程序,在该程序中完成异常向量设置、堆栈指针设置以及必要的硬件初始化。
ARM9体系结构中规定的复位异常所对应的异常向量地址为____【18】___。
系统上电/复位后,将从该地址处开始执行程序,因为ARM9体系结构中规定的各异常向量地址之间间隔通常为__【19】_____个字节。
因此,复位异常向量地址处通常存储一条___【20】____指令的代码。
【解题思路】
本题主要考查基于S3C2410的食堂售饭系统开发。
包括嵌入式最小硬件系统构成;GPIO引脚功能及相应初始化设置:
GPC和GPD作为LED显示器接口引脚,GPE作为输入输出,还可作为I2C、I2S、SD卡等串行总线的引脚(在题中用来接非标准键盘);基于UART的RS-485接口通信设置;无操作系统的嵌入式系统如何构建其启动引导程序。
【参考答案及解析】
【1】时钟电路;硬件最小系统包括电源电路、时钟电路、复位电路、调试测试接口、以及存储器。
【2】存储器;
【3】输出;GPC0~GPC15引脚为LED段选输出。
【4】输出;GPD0~GPD7引脚为LED位选输出。
【5】0x55555555;00为输入,01为输出,则初始化GPC0~GPC15引脚功能为输出的语句是:
rGPCCON=0x55555555。
【6】0x