计算机三级嵌入式综合题.docx
《计算机三级嵌入式综合题.docx》由会员分享,可在线阅读,更多相关《计算机三级嵌入式综合题.docx(71页珍藏版)》请在冰豆网上搜索。
计算机三级嵌入式综合题
1、酒店客房的门锁系统是由总台服务器和若干客房指纹锁组成,其基本功能具体描述如下:
a、客房的指纹锁与总台服务器之间通过通信网络连接。
b、旅客在总台登记住宿时,录入其指纹信息,并提取其特征值存储在总台服务器中。
同时录入一个密码(若干位数字组成),以备指纹无法开锁时,用密码开锁。
c、旅客在开客房指纹锁时,把相应手指放在门锁的指纹采集部件上,采集相应的指纹图像信息,并传输给总台服务器。
d、总台服务器接收到某个客房指纹锁传输来的指纹图像信息后,进行特征值求取并进行匹配,若匹配正确,则回送开锁指令给客房指纹锁。
e、客房指纹锁收到开锁指令后,控制开锁的机械动作,并用绿色LED丁指示开锁成功。
f、若匹配不正确,总台服务器回送不开锁指令给客房指纹锁。
g、客房指纹锁收到不开锁指令后,用红色LED丁指示开锁不成功。
h、若指纹无法开锁,旅客还可以通过客房指纹锁上的数字按键输入密码,若密码匹配正确,也
可以控制开锁的机械动作,并用绿色LED丁指示开锁成功。
根据上述功能要求的描述,若采用S3C241C芯片为核心来构建客房指纹锁控制器的硬件平台,请
完善下面的叙述和C语言程序(需要使用的控制寄存器的格式见题后说明)。
(1)若采集的指纹图像分辨率为320X24Q灰度等级为256,则存储一幅指纹图像的原始像素信息需要的存储容量为—【1】KB(1K=1000)。
若采用115.2Kbps的异步串行通信网传输,
一幅指纹图像的传输时间至少需要【2】秒,若采用10Mbps的以太网传输,一幅指纹
图像的传输时间至少要【3】秒,因此,系统中总台服务器和若干个客房指纹锁之间
选用以太网连接。
(2)硬件构件设计时,以太网接口选用AX88796芯片为核心来设计,若S3C2410芯片的nGCS2引
脚连接到该芯片的【4】引脚(低电平有效),那么,AX88796芯片内部寄存器地址的
首地址是:
【5】。
(3)若客房指纹锁红色LED旨示灯的驱动电路由GPIC的GPC0引脚控制,绿色LED旨示灯的驱动电路由GPC引脚控制。
GPC0GPC1引脚各自输出“0时,其对应的LED丁灭,各自输出“1时,其对应的LED丁亮。
那么,初始化GPC0GPC1引脚为输出功能的语句是:
//rGPCDAT是端口C的数据寄存器
控制绿色LED丁点亮和熄灭的语句分别是:
rGPCDAT=rGPCDAT|___【7】;
rGPCDAT=rGPCDAT&【8】
红色LED丁点亮和熄灭的语句分别是:
rGPCDAT=rGPCDAT|___【9】;
rGPCDAT=rGPCDAT&【10】
(4)指纹采集部件由一个摄像芯片和光学镜头组成。
S3C2410芯片通过l2c总线传输控制命令给
摄像芯片。
硬件设计时,选择S3C2410芯片的GPE15GPE14引脚与摄像芯片的引脚___【11】、SCLf连。
软件设计时,需要用下面语句初始化该引脚为I2C功能引脚。
rGPECON=((rGPECON|OxAOOOOOOO)&【12】);//rGPECON是端口E的控制寄存
器
(5)若输入密码的键盘采用非标准键盘,键盘接口设计成4X3勺阵列。
若设计时选用了
GPE0~GPE来输出键盘行扫描信号,选用GPD0~GPD2来输入键盘列信号。
请补充完善下面的键盘扫描函数:
〃**keyoutput是键盘扫描时的输出地址,keyinput是键盘读入时的地址
#defineKEYOUTPUT(*(volatileINT8U*)0x56000044)//定义GPE的数据端口
#defineKEYINPUT(*(volatileINT8U*)0x56000034)//定义GPD勺数据端口
INT16UScanKey()
{
INT16Ukey=0xFFFF;
INT16Ui;
INT8Utemp=0xFF,output;
rGPDCON=rGPDCON&___【13】;//初始化GPD0~GPD为输入
rGPECON=((rGPECON&【14】)|0x00000055);//初始化GPE0~GPE为输出;
for(i=1;((i<=【15】)&&(i>0));i<<=1)
{
output|=0xFF;
output&=(~i);
KEYOUTPUT=output;
temp=KEYINPUT;
if((temp&0x07)!
=___【16】)
{
key=(~i);
key<<=8;
key|=((temp&0x07)|0xF8);
return(key);
}
}
return0xFFFF;
上面的键盘扫描函数返回的是由键盘行信号和键盘列信号合并而成的一个16位二进制值,根据
该函数的返回值,可以判断是否有按键按下,并可确定是哪个按键按下。
若返回值为—【17】
—时,可知键盘中无键按下,若返回值为【18】时,可知键盘中第3行第2列的键被按
下。
(注:
以GPE0寸应的键盘行为第一行,以GPD0对应的键盘列为第一列)
(6)为了便于以太网通信程序的编写,客房指纹锁的应用软件基于卩C/OS-操作系统来设计,
客房指纹锁的应用程序主函数中,需要用OSTaskCreate(函数【19】,并用【20】
函数启动多任务调度功能。
说明:
下面是试题解答时需要用到的寄存器格式及相关说明。
1)端口C的控制寄存器(GPCCON
引脚
GPCCON^位
描述
GPC15
:
31:
30]
00=输入,01=输出,10=VD7,1仁保留
GPC14
:
29:
28]
00=输入,01=输出,10=VD6,1仁保留
GPC13
:
27:
26]
00=输入,01=输出,10=VD5,1仁保留
GPC12
:
25:
24]
00=输入,01=输出,10=VD4,1仁保留
GPC11
:
23:
22]
00=输入,01=输出,10=VD3,1仁保留
GPC10
:
21:
20]
00=输入,01=输出,10=VD2,1仁保留
GPC9
:
19:
18]
00=输入,01=输出,10=VD1,1仁保留
GPC8
:
17:
16]
00=输入,01=输出,10=VD0,1仁保留
GPC7
:
15:
14]
00=输入,01=输出,10=LCDVF21仁保留
GPC6
[13:
12]
00=输入,01=输出,10=LCDVF1,1仁保留
GPC5
[11:
10]
00=输入,01=输出,10=LCDVF01仁保留
GPC4
[9:
8]
00=输入,01=输出,10=VM,11=IIS数据输出
GPC3
[7:
6]
00=输入,01=输出,10=VFRAME,1仁IIS数据输入
GPC2
[5:
4]
00=输入,01=输出,10=VLINE,1仁保留
GPC1
[3:
2]
00=输入,01=输出,10=VCLK1仁保留
GPC0
:
1:
0]
00=输入,01=输出,10=LEND,11=保留
2)端口D的控制寄存器(GPDCON
引脚
GPDCON勺位
描述
GPD15
:
31:
30]
00=输入,01=输出,10=VD23,11=保留
GPD14
:
29:
28]
00=输入,01=输出,10=VD22,1仁保留
GPD13
:
27:
26]
00=输入,01=输出,10=VD21,1仁保留
GPD12
:
25:
24]
00=输入,01=输出,10=VD20,1仁保留
GPD11
:
23:
22]
00=输入,01=输出,10=VD19,1仁保留
GPD10
:
21:
20]
00=输入,01=输出,10=VD18,1仁保留
GPD9
:
19:
18]
00=输入,01=输出,10=VD17,1仁保留
GPD8
:
17:
16]
00=输入,01=输出,10=VD16,1仁保留
GPD7
:
15:
14]
00=输入,01=输出,10=VD15,1仁保留
GPD6
:
13:
12]
00=输入,01=输出,10=VD14,1仁保留
GPD5
:
11:
10]
00=输入,01=输出,10=VD13,1仁保留
GPD4
[9:
8]
00=输入,01=输出,10=VD12,1仁保留
GPD3
[7:
6]
00=输入,01=输出,10=VD11,1仁保留
GPD2
[5:
4]
00=输入,01=输出,10=VD10,1仁保留
GPD1
[3:
2]
00=输入,01=输出,10=VD9,1仁保留
GPD0
[1:
0]
00=输入,01=输出,10=VD8,1仁保留
3)端口E的控制寄存器(GPECON
引脚
GPECON勺位
描述
GPE15
:
31:
30]
00=输入,01=输出,10=IICSDA1仁保留
GPE14
:
29:
28]
00=输入,01=输出,10=IICSCL1仁保留
GPE13
:
27:
26]
00=输入,01=输出,10=SPICLK01仁保留
GPE12
:
25:
24]
00=输入,0仁输出,10=SPIMOSIQ1仁保留
GPE11
:
23:
22]
00=输入,01=输出,10=SPIMISOQ11=保留
GPE10
:
21:
20]
00=输入,01=输出,10=SSDAT31仁保留
GPE9
:
19:
18]
00=输入,01=输出,10=SSDAT21仁保留
GPE8
:
17:
16]
00=输入,01=输出,10=SSDAT11仁保留
GPE7
:
15:
14]
00=输入,01=输出,10=SSDAT01仁保留
GPE6
:
13:
12]
00=输入,01=输出,10=SDCMD,1仁保留
GPE5
:
11:
10]
00=输入,01=输出,10=SDLCK1仁保留
GPE4
:
9:
8]
00=输入,01=输出,10=IISSDO11=IIS数据输出
GPE3
:
7:
6]
00=输入,01=输出,10=IISS,1仁IIS数据输入
GPE2
[5:
4]
00=输入,01=输出,10=CDCLK1仁保留
GPE1
:
3:
2]
00=输入,01=输出,10=IISCLK1仁保留
GPE0
:
1:
0]
00=输入,01=输出,10=IISLRCK1仁保留
4)端口H的控制寄存器(GPHCON
引脚
GPHCOIN勺位
描述
GPH10
:
21:
20]
00=输入,0仁输出,10=CLKOUT11仁保留
GPH9
:
19:
18]
00=输入,0仁输出,10=CLKOUT01仁保留
GPH8
:
17:
16]
00=输入,0仁输出,10=UEXTCLK1仁保留
GPH7
:
15:
14]
00=输入,0仁输出,10=RXD2,11=保留
GPH6
:
13:
12]
00=输入,0仁输出,10=TXD2,1仁保留
GPH5
:
11:
10]
00=输入,0仁输出,10=RXD1,11=保留
GPH4
[9:
8]
00=输入,0仁输出,10=TXD1,11=IIS数据输出
GPH3
[7:
6]
00=输入,0仁输出,10=RXD0,1仁IIS数据输入
GPH2
[5:
4]
00=输入,0仁输出,10=TXD0,1仁保留
GPH1
[3:
2]
00=输入,0仁输出,10=nRTSQ1仁保留
GPH0
[1:
0]
00=输入,0仁输出,10=nCTSQ1仁保留
【解题思路】
本题是一道基于S3C2410的嵌入式系统开发综合题。
考查了数字图像的存储容量计算,网络通信
数据传输;系统硬件构件设计,尤其是GPIO接口功能及初始化程序,结合常用外设的连接,如
LED键盘等;基于卩C/OS-操作系统的应用程序的主要卩C/OS函数,如何创建任务及启动任务调度功能。
【参考答案及解析】
【1】76.8;320*240/1000=76.8KB;
【2】6.7;115.2Kbps换算成字节是每秒发送115.2/8=14.4KB的数据。
异步串行每发送8个字节有一个起始位和停止位,76.8/8=9.6,说明一共需要10个停止位和10个起始位,一个发送96.8KB的数据,96.8/14.4=6.72秒;
【3】0.076;10Mbps理论速度是每秒1.25MB,加上损耗以1Mbyte每秒计算,理论速度是0.076秒
【4】CS;片选信号CS氐电平有效;
【5】0x10000000;nGCS2映射地址为0x10000000;
【6】0XFFFFFFF500为输入,01为输出。
则初始化GPC0GPC1引脚为输出功能的语句是:
rGPCC0N=((rGPCC0N|0x00000005)&0xFFFFFFF5)
【7】0x0002;红色LED旨示灯的驱动电路由GPIO的GPC0引脚控制,绿色LED旨示灯的驱动电路由GPC1引脚控制。
GPC0GPC1引脚各自输出“0时,其对应的LED丁灭,各自输出“1时,其对应的LED丁亮。
则绿色LED丁点亮为:
rGPCDAT=rGPCDAT0x0002。
【8】0xFFFD绿色LED丁熄灭为:
rGPCDAT=rGPCDAT80xFFFD
【9】0x0001;红色LED丁点亮为:
rGPCDAT=rGPCDAT0x0001。
【10】0xFFFE红色LED丁熄灭为:
rGPCDAT=rGPCDATSDxFFFE
【111SDAl2c总线只有两条信号线,一条是数据线SDA,另一条是时钟线SCL所有操作都通过这两条信号线完成。
【1210xAFFFFFFF初始化I2C功能引脚。
【13】OxFFFFFFC0初始化GPDO~GPD为输入:
rGPDCON=rGPDCON&0xFFFFFFC0
【14】0xFFFFFF0000为输入,01为输出。
初始化GPE0~GPE为输出:
rGPECON=((rGPECON&0xFFFFFF00)|0x00000055)。
15】8;循环次数。
【16】0x07;判断GPD0~GPD2引脚是否有输入信号
【17】OxFFFF;键盘中无键按下。
【18】OxFBFD键盘中第3行第2列的键被按下。
19】创建任务;OSTaskCreate()函数用来任务创建;
【20】OSStart();—旦OSStart()函数开始执行,就标志着卩C/OS-进入了多任务调度的正常运行
状态。
2、某机械设备的控制器,其基本功能要求有:
需要有8个数字量输入,用于采集设备的状态信息;且需要8个数字量输出,用于控制设备动作。
具备一个RS-232接口,可以和上位机连接,接收上位机发送的命令及参数。
需要提供一个基准定时信号,定时时间间隔为0.01秒。
需要彩色LCD显示器,用于显示状态信息等。
根据上述功能要求的描述,若采用S3C2410芯片为核心来构建该机械设备控制器的硬件平台,请完善下面的叙述
和C语言程序(需要使用的控制寄存器的格式见题后说明)。
(1)若硬件设计时采用GPIO端口E的GPEO〜GPE7I脚作为8个数字量输出,那么软件设计时其初始化语句是:
rGPECON=(rGPECON|0x00005555)&___【1】。
若软件设计时需要通过GPE5引脚输出“侏驱动执行机构动
作,那么语句是:
rGPEDAT=rGPEDAT|_【2】。
(注:
rGPECON是端口E的控制寄存器所对应的变量,
rGPEDA是端口E的数据寄存器所对应的变量)
(2)硬件设计时,选用UART0来完成RS-232接口电路设计。
在软件设计时,其初始化程序中波特率设置为9600bps,数据格式设置为:
8位数据位、奇校验、1位停止位。
请补充完善下面的UART0初始化函数(注:
主频参数为PCLK:
voidUART0_Init()
{
rGPHCON=(rGPHCON&0xFFFFFF00_【3】;//端口H相应引脚功能初始化
rUFCON0=0x0;//FIFO不使能
rUMCON0=0x0;
rULCON0=___【4】;//设置线路控制寄存器
}
(3)按照上面UART(初始化函数所设置的通信速率,每秒钟最多能传输—【6】个字节的信息。
若上位
机有大小为4KB的初始参数需要下载到控制器中,那么,约需传输【7】__秒才能完成下载(1K=1024,
精确到小数点后面1位数字)。
(4)系统中所需要的0.01秒基准定时时间选用S3C2410芯片内部的Timer。
部件来产生。
若系统的主频参数PCLK
为264MHz,分频器值选择为16,预分频系数选择为3,那么,Timer。
的计数常数为【8】。
软件设计时,
设计了如下的Timer0初始化函数,请补充完善。
(注:
下面程序中⑨、⑩、(12)用8位十六进制数表示,(11)用4位十六进制数表示)
voidTimer0Int(void)
//设置定时器配置寄存器0(TCFG0)
rTCFG0=___【9】;//Timer0预分频系数选择为3,该寄存器中其它无关位均为0
//设置定时器配置寄存器1(TCFG1)
rTCFG1___【10】—;//Timer0分频器值为16,该寄存器中其它无关位均为0
//设置计数常数
rTCNTB0=___【11】
//设置控制寄存器TCON
rTCON=0x00000009;〃设置TimerO自动装载,并启动
}
(5)彩色LCD显示屏的硬件接口电路由S3C241啲专用GPIO端口__【13】和端口—【14】相关引脚配以驱动电路来设计。
软件设计时,需要通过设置它们控制寄存器的值分别为—【15】和【16】来确定它们的引脚功能。
(6)系统的软件可以设计为在无操作系统的环境下运行。
设计者自行设计系统的启动引导程序,在该程序中完
成异常向量设置、堆栈指针设置以及必要的硬件初始化。
ARM9体系结构中规定的IRQ异常所对应的异常向量地
址为—【17】。
Timer。
部件所产生的0.01秒基准时间到时将引起IRQ异常。
由于IRQ异常向量地址与下一
个异常向量地址之间间隔为—【18】—个字节,因此,通常在IRC异常向量地址处设计一条转移指令。
堆栈
指针的设置需按工作模式来进行。
设置IRQ模式下的堆栈指针,需在R0清0”后用指令0RRR1,R0,#0x12|_【19】
和MSRCPSR_CXSF,R使CPU核进入IRQ模式,然后再给SF寄存器赋值作为该模式下的堆栈指针。
这些初始化工作完成后,即可通过指令—【20】来引导应用程序的主函数main()。
说明:
下面是试题解答时需要用到的寄存器格式及相关说明
1)端口C的控制寄存器(GPCCON
引脚
GPCCO的位
描述
GPC15
:
31:
30]
00=输入,01=输出,10=VD7,1仁保留
GPC14
:
29:
28]
00=输入,01=输出,10=VD6,11=保留
GPC13
:
27:
26]
00=输入,01=输出,10=VD5,11=保留
GPC12
:
25:
24]
00=输入,01=输出,10=VD4,11=保留
GPC11
:
23:
22]
00=输入,01=输出,10=VD3,11=保留
GPC10
:
21:
20]
00=输入,01=输出,10=VD2,11=保留
GPC9
:
19:
18]
00=输入,01=输出,10=VD1,11=保留
GPC8
:
17:
16]
00=输入,01=输出,10=VD0,11=保留
GPC7
:
15:
14]
00=输入,01=输出,1O=LCDVF21仁保留
GPC6
:
13:
12]
00=输入,01=输出,10=LCDVF111=保留
GPC5
:
11:
10]
00=输入,01=输出,10=LCDVF01仁保留
GPC4
:
9:
8]
00=输入,01=输出,10=VM,11=IIS数据输出
GPC3
:
7:
6]
00=输入,01=输出,10=VFRAME11=IIS数据输入
GPC2
:
5:
4]
00=输入,01=输出,10=VLINE11=保留
GPC1
:
3:
2]
00=输入,01=输出,10=VCLK1仁保留
GPC0
:
1:
0]
00=输入,01=输出,10=LEND,1仁保留
2)端口D的控制寄存器(GPDCON
引脚
GPDCON^位
描述
GPD15
:
31:
30]
00=输入,0仁输出,10=VD23,11=保留
GPD14
:
29:
28]
00=输入,0仁输出,10=VD22,11=保留
GPD13
:
27:
26]
00=输入,0仁输出,10=VD21,11=保留
GPD12
:
25:
24]
00=输入,0仁输出,10=VD20,11=保留
GPD11
:
23:
22]
00=输入,0仁输出,10=VD19,11=保留
GPD10
:
21:
20]
00=输入,0仁输出,10=VD18,11=保留
GPD9
:
19:
18]
00=输入,0仁输出,10=VD17,11=保留
GPD8
:
17:
16]
00=输入,0仁输出,10=VD16,11=保留
GPD7
:
15:
14]
00=输入,0仁输出,10=VD15,11=保留
GPD6
:
13:
12]
00=输入,0仁输出,10=VD14,11=保留
GPD5
:
11:
10]
00=输入,0仁输出,10=VD13,11=保留
GPD4
:
9:
8]
00=输入,0仁输出,10=VD12,11=保留
GPD3
:
7:
6]
00=输入,0仁输出,10=VD11,1仁保留
GPD2
:
5:
4]
00=输入,0仁输出,10=VD10,11=保留
GPD1
:
3:
2]
00=输入,0仁输出,10=VD9,1仁保留
GPDO
:
1:
0]
00=输入,0仁输出,10=VD8,1仁保留
3)端口E的控制寄存器(GPECON
引脚
GPECON勺位
描述
GPE15
:
31:
30]
00=输入,01=输出,10=IICSDA1仁保留
GPE14
:
29:
28]
00=输入,01=输出,10=IICSCL11=保留
GPE13
:
27:
26]
00=输入,01=输出,10=