计算机三级嵌入式综合题.docx

上传人:b****7 文档编号:25182103 上传时间:2023-06-05 格式:DOCX 页数:68 大小:294.42KB
下载 相关 举报
计算机三级嵌入式综合题.docx_第1页
第1页 / 共68页
计算机三级嵌入式综合题.docx_第2页
第2页 / 共68页
计算机三级嵌入式综合题.docx_第3页
第3页 / 共68页
计算机三级嵌入式综合题.docx_第4页
第4页 / 共68页
计算机三级嵌入式综合题.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

计算机三级嵌入式综合题.docx

《计算机三级嵌入式综合题.docx》由会员分享,可在线阅读,更多相关《计算机三级嵌入式综合题.docx(68页珍藏版)》请在冰豆网上搜索。

计算机三级嵌入式综合题.docx

计算机三级嵌入式综合题

1、酒店客房的门锁系统是由总台服务器和若干客房指纹锁组成,其基本功能具体描述如下:

a、客房的指纹锁与总台服务器之间通过通信网络连接。

b、旅客在总台登记住宿时,录入其指纹信息,并提取其特征值存储在总台服务器中。

同时录入一个密码(若干位数字组成),以备指纹无法开锁时,用密码开锁。

c、旅客在开客房指纹锁时,把相应手指放在门锁的指纹采集部件上,采集相应的指纹图像信息,并传输给总台服务器。

d、总台服务器接收到某个客房指纹锁传输来的指纹图像信息后,进行特征值求取并进行匹配,若匹配正确,则回送开锁指令给客房指纹锁。

e、客房指纹锁收到开锁指令后,控制开锁的机械动作,并用绿色LED灯指示开锁成功。

f、若匹配不正确,总台服务器回送不开锁指令给客房指纹锁。

g、客房指纹锁收到不开锁指令后,用红色LED灯指示开锁不成功。

h、若指纹无法开锁,旅客还可以通过客房指纹锁上的数字按键输入密码,若密码匹配正确,也可以控制开锁的机械动作,并用绿色LED灯指示开锁成功。

根据上述功能要求的描述,若采用S3C2410芯片为核心来构建客房指纹锁控制器的硬件平台,请完善下面的叙述和C语言程序(需要使用的控制寄存器的格式见题后说明)。

(1)若采集的指纹图像分辨率为320×240,灰度等级为256,则存储一幅指纹图像的原始像素信息需要的存储容量为?

?

___【1】_____KB(1K=1000)。

若采用的异步串行通信网传输,一幅指纹图像的传输时间至少需要?

?

____【2】____秒,若采用10Mbps的以太网传输,一幅指纹图像的传输时间至少要?

?

____【3】____秒,因此,系统中总台服务器和若干个客房指纹锁之间选用以太网连接。

(2)硬件构件设计时,以太网接口选用AX88796芯片为核心来设计,若S3C2410芯片的nGCS2引脚连接到该芯片的?

?

____【4】____引脚(低电平有效),那么,AX88796芯片内部寄存器地址的首地址是:

?

____【5】____。

(3)若客房指纹锁红色LED指示灯的驱动电路由GPIO的GPC0引脚控制,绿色LED指示灯的驱动电路由GPC1引脚控制。

GPC0、GPC1引脚各自输出“0”时,其对应的LED灯灭,各自输出“1”时,其对应的LED灯亮。

那么,初始化GPC0、GPC1引脚为输出功能的语句是:

?

?

?

?

rGPCCON=((rGPCCON|0x00000005)&?

?

___【6】_____);?

?

//rGPCCON是端口C的控制寄存器

控制绿色LED灯点亮和熄灭的语句分别是:

?

?

?

rGPCDAT=rGPCDAT|?

?

___【7】_____;?

?

?

?

?

?

?

//rGPCDAT是端口C的数据寄存器

?

?

?

rGPCDAT=rGPCDAT&?

?

____【8】____;

红色LED灯点亮和熄灭的语句分别是:

?

?

?

rGPCDAT=rGPCDAT|?

?

___【9】_____; 

?

?

?

rGPCDAT=rGPCDAT&?

?

____【10】____;

(4)指纹采集部件由一个摄像芯片和光学镜头组成。

S3C2410芯片通过I2C总线传输控制命令给摄像芯片。

硬件设计时,选择S3C2410芯片的GPE15、GPE14引脚与摄像芯片的引脚?

?

___【11】_____、SCL相连。

软件设计时,需要用下面语句初始化该引脚为I2C功能引脚。

?

?

?

?

rGPECON=((rGPECON|0xA0000000)&?

?

____【12】____);?

?

?

//rGPECON是端口E的控制寄存器

(5)若输入密码的键盘采用非标准键盘,键盘接口设计成4×3的阵列。

若设计时选用了GPE0~GPE3来输出键盘行扫描信号,选用GPD0~GPD2来输入键盘列信号。

请补充完善下面的键盘扫描函数:

?

?

?

?

?

?

//**keyoutput是键盘扫描时的输出地址,keyinput是键盘读入时的地址

?

?

?

?

?

?

#define?

KEYOUTPUT?

?

(*(volatileINT8U*)0x)?

//定义GPE的数据端口

?

?

?

?

?

?

?

?

#define?

KEYINPUT?

?

?

(*(volatileINT8U*)0x)?

//定义GPD的数据端口

?

?

?

?

?

INT16UScanKey()

?

?

?

?

?

{

?

?

?

?

INT16Ukey=0xFFFF;

?

?

?

?

INT16Ui;

?

?

?

?

INT8Utemp=0xFF,output;

?

?

?

?

?

?

?

?

?

?

?

rGPDCON=rGPDCON&?

?

___【13】_____;?

?

?

?

?

?

?

//初始化GPD0~GPD2为输入?

?

?

?

?

?

?

?

?

rGPECON=((rGPECON&?

?

____【14】____)|0x00000055);?

//初始化GPE0~GPE3为输出;?

?

?

?

?

?

?

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-II操作系统来设计,客房指纹锁的应用程序主函数中,需要用OSTaskCreate()函数?

?

____【19】____,并用?

?

____【20】____函数启动多任务调度功能。

说明:

下面是试题解答时需要用到的寄存器格式及相关说明。

?

1)端口C的控制寄存器(GPCCON)

?

引脚

?

GPCCON的位

?

描述

?

GPC15

?

[31:

30]

?

00=输入,01=输出,10=VD7,11=保留

?

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=输出,10=LCDVF2,11=保留

?

GPC6

?

[13:

12]

?

00=输入,01=输出,10=LCDVF1,11=保留

?

GPC5

?

[11:

10]

?

00=输入,01=输出,10=LCDVF0,11=保留

?

GPC4

?

[9:

8]

?

00=输入,01=输出,10=VM,11=IIS数据输出

?

GPC3

?

[7:

6]

?

00=输入,01=输出,10=VFRAME,11=IIS数据输入

?

GPC2

?

[5:

4]

?

00=输入,01=输出,10=VLINE,11=保留

?

GPC1

?

[3:

2]

?

00=输入,01=输出,10=VCLK,11=保留

?

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,11=保留

?

GPD13

?

[27:

26]

?

00=输入,01=输出,10=VD21,11=保留

?

GPD12

?

[25:

24]

?

00=输入,01=输出,10=VD20,11=保留

?

GPD11

?

[23:

22]

?

00=输入,01=输出,10=VD19,11=保留

?

GPD10

?

[21:

20]

?

00=输入,01=输出,10=VD18,11=保留

?

GPD9

?

[19:

18]

?

00=输入,01=输出,10=VD17,11=保留

?

GPD8

?

[17:

16]

?

00=输入,01=输出,10=VD16,11=保留

?

GPD7

?

[15:

14]

?

00=输入,01=输出,10=VD15,11=保留

?

GPD6

?

[13:

12]

?

00=输入,01=输出,10=VD14,11=保留

?

GPD5

?

[11:

10]

?

00=输入,01=输出,10=VD13,11=保留

?

GPD4

?

[9:

8]

?

00=输入,01=输出,10=VD12,11=保留

?

GPD3

?

[7:

6]

?

00=输入,01=输出,10=VD11,11=保留

?

GPD2

?

[5:

4]

?

00=输入,01=输出,10=VD10,11=保留

?

GPD1

?

[3:

2]

?

00=输入,01=输出,10=VD9,11=保留

?

GPD0

?

[1:

0]

?

00=输入,01=输出,10=VD8,11=保留

3)端口E的控制寄存器(GPECON)

?

引脚

?

GPECON的位

?

描述

?

GPE15

?

[31:

30]

?

00=输入,01=输出,10=IICSDA,11=保留

?

GPE14

?

[29:

28]

?

00=输入,01=输出,10=IICSCL,11=保留

?

GPE13

?

[27:

26]

?

00=输入,01=输出,10=SPICLK0,11=保留

?

GPE12

?

[25:

24]

00=输入,01=输出,10=SPIMOSI0,11=保留?

?

GPE11

?

[23:

22]

?

00=输入,01=输出,10=SPIMISO0,11=保留

?

GPE10

?

[21:

20]

?

00=输入,01=输出,10=SSDAT3,11=保留

?

GPE9

?

[19:

18]

?

00=输入,01=输出,10=SSDAT2,11=保留

?

GPE8

?

[17:

16]

?

00=输入,01=输出,10=SSDAT1,11=保留

?

GPE7

?

[15:

14]

?

00=输入,01=输出,10=SSDAT0,11=保留

?

GPE6

?

[13:

12]

?

00=输入,01=输出,10=SDCMD,11=保留

?

GPE5

?

[11:

10]

?

00=输入,01=输出,10=SDLCK,11=保留

?

GPE4

?

[9:

8]

?

00=输入,01=输出,10=IISSDO,11=IIS数据输出

?

GPE3

?

[7:

6]

?

00=输入,01=输出,10=IISSI,11=IIS数据输入

?

GPE2

?

[5:

4]

?

00=输入,01=输出,10=CDCLK,11=保留

?

GPE1

?

[3:

2]

?

00=输入,01=输出,10=IISCLK,11=保留

?

GPE0

?

[1:

0]

?

00=输入,01=输出,10=IISLRCK,11=保留

4)端口H的控制寄存器(GPHCON)

?

引脚

?

GPHCON的位

?

描述

?

GPH10

?

[21:

20]

?

00=输入,01=输出,10=CLKOUT1,11=保留

?

GPH9

?

[19:

18]

?

00=输入,01=输出,10=CLKOUT0,11=保留

?

GPH8

?

[17:

16]

?

00=输入,01=输出,10=UEXTCLK,11=保留

?

GPH7

?

[15:

14]

?

00=输入,01=输出,10=RXD2,11=保留

?

GPH6

?

[13:

12]

?

00=输入,01=输出,10=TXD2,11=保留

?

GPH5

?

[11:

10]

?

00=输入,01=输出,10=RXD1,11=保留

?

GPH4

?

[9:

8]

?

00=输入,01=输出,10=TXD1,11=IIS数据输出

?

GPH3

?

[7:

6]

?

00=输入,01=输出,10=RXD0,11=IIS数据输入

?

GPH2

?

[5:

4]

?

00=输入,01=输出,10=TXD0,11=保留

?

GPH1

?

[3:

2]

?

00=输入,01=输出,10=nRTS0,11=保留

?

GPH0

?

[1:

0]

?

00=输入,01=输出,10=nCTS0,11=保留

【解题思路】

本题是一道基于S3C2410的嵌入式系统开发综合题。

考查了数字图像的存储容量计算,网络通信数据传输;系统硬件构件设计,尤其是GPIO接口功能及初始化程序,结合常用外设的连接,如LED、键盘等;基于μC/OS-II操作系统的应用程序的主要μC/OS-II函数,如何创建任务及启动任务调度功能。

【参考答案及解析】

【1】;320*240/1000=KB;

【2】;换算成字节是每秒发送8=KB的数据。

异步串行每发送8个字节有一个起始位和停止位,8=,说明一共需要10个停止位和10个起始位,一个发送的数据,=秒;

【3】;10Mbps理论速度是每秒,加上损耗以1Mbyte每秒计算,理论速度是秒

【4】CS;片选信号CS低电平有效;

【5】0x;nGCS2映射地址为0x;

【6】0xFFFFFFF5;00为输入,01为输出。

则初始化GPC0、GPC1引脚为输出功能的语句是:

rGPCCON=((rGPCCON|0x00000005)&0xFFFFFFF5)。

【7】0x0002;红色LED指示灯的驱动电路由GPIO的GPC0引脚控制,绿色LED指示灯的驱动电路由GPC1引脚控制。

GPC0、GPC1引脚各自输出“0”时,其对应的LED灯灭,各自输出“1”时,其对应的LED灯亮。

则绿色LED灯点亮为:

rGPCDAT=rGPCDAT|?

0x0002。

【8】0xFFFD;绿色LED灯熄灭为:

rGPCDAT=rGPCDAT&?

?

0xFFFD。

【9】0x0001;红色LED灯点亮为:

rGPCDAT=rGPCDAT|?

?

0x0001。

【10】0xFFFE;红色LED灯熄灭为:

rGPCDAT=rGPCDAT&?

?

0xFFFE。

【11】SDA;I2C总线只有两条信号线,一条是数据线SDA,另一条是时钟线SCL,所有操作都通过这两条信号线完成。

【12】0xAFFFFFFF;初始化I2C功能引脚。

【13】0xFFFFFFC0;初始化GPD0~GPD2为输入:

?

rGPDCON=rGPDCON&?

0xFFFFFFC0。

【14】0xFFFFFF00;00为输入,01为输出。

初始化GPE0~GPE3为输出:

rGPECON=((rGPECON&?

0xFFFFFF00)|0x00000055)。

【15】8;循环次数。

【16】0x07;判断GPD0~GPD2引脚是否有输入信号。

【17】0xFFFF;键盘中无键按下。

【18】0xFBFD;键盘中第3行第2列的键被按下。

【19】创建任务;OSTaskCreate()函数用来任务创建;

【20】OSStart();一旦OSStart()函数开始执行,就标志着μC/OS-II进入了多任务调度的正常运行状态。

2、某机械设备的控制器,其基本功能要求有:

需要有8个数字量输入,用于采集设备的状态信息;且需要8个数字量输出,用于控制设备动作。

具备一个RS-232接口,可以和上位机连接,接收上位机发送的命令及参数。

需要提供一个基准定时信号,定时时间间隔为秒。

需要彩色LCD显示器,用于显示状态信息等。

根据上述功能要求的描述,若采用S3C2410芯片为核心来构建该机械设备控制器的硬件平台,请完善下面的叙述和C语言程序(需要使用的控制寄存器的格式见题后说明)。

(1)若硬件设计时采用GPIO端口E的GPE0~GPE7引脚作为8个数字量输出,那么软件设计时其初始化语句是:

rGPECON=(rGPECON|0x00005555)&?

?

___【1】____。

若软件设计时需要通过GPE5引脚输出“1”来驱动执行机构动作,那么语句是:

rGPEDAT=rGPEDAT|?

?

___【2】____。

(注:

rGPECON是端口E的控制寄存器所对应的变量,rGPEDAT是端口E的数据寄存器所对应的变量)

(2)硬件设计时,选用UART0来完成RS-232接口电路设计。

在软件设计时,其初始化程序中波特率设置为9600bps,数据格式设置为:

8位数据位、奇校验、1位停止位。

请补充完善下面的UART0初始化函数(注:

主频参数为PCLK):

   voidUART0_Init()

   {

   ?

?

rGPHCON=(rGPHCON&0xFFFFFF00)|?

?

___【3】____;?

?

//端口H相应引脚功能初始化

   ?

?

rUFCON0=0x0;?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

//FIFO不使能

   ?

?

rUMCON0=0x0;

  ?

?

 rULCON0=?

___【4】____;?

?

?

?

?

?

//设置线路控制寄存器

   ?

?

rUCON0=0x145;?

?

?

?

?

?

?

?

?

//设置控制寄存器

   ?

?

rUBRDIV0=((int)(PCLK/?

___【5】____)–1);?

?

//设置波特率,小数采用四舍五入

   }

(3)按照上面UART0初始化函数所设置的通信速率,每秒钟最多能传输?

___【6】____个字节的信息。

若上位机有大小为4KB的初始参数需要下载到控制器中,那么,约需传输?

____【7】___秒才能完成下载(1K=1024,精确到小数点后面1位数字)。

?

(4)系统中所需要的秒基准定时时间选用S3C2410芯片内部的Timer0部件来产生。

若系统的主频参数PCLK为264MHz,分频器值选择为16,预分频系数选择为3,那么,Timer0的计数常数为?

___【8】____。

软件设计时,设计了如下的Timer0初始化函数,请补充完善。

(注:

下面程序中⑨、⑩、⑿用8位十六进制数表示,⑾用4位十六进制数表示)

   void?

Timer0Int(void)

   {

   ?

?

//设置定时器配置寄存器0(TCFG0)

    rTCFG0=?

___【9】____;?

?

//Timer0预分频系数选择为3,该寄存器中其它无关位均为0

   ?

?

//设置定时器配置寄存器1(TCFG1)

    rTCFG1=?

___【10】___;?

?

//Timer0分频器值为16,该寄存器中其它无关位均为0

   ?

?

//设置计数常数

    rTCNTB0=?

___【11】____;?

   ?

?

//设置控制寄存器TCON

   ?

rTCON=?

___【12】____;//更新TCNTB0和TCMPB0,该寄存器中其它无关位均为0

   ?

rTCON=0x00000009;//设置Timer0自动装载,并启动

   }

(5)彩色LCD显示屏的硬件接口电路由S3C2410的专用GPIO端口?

__【13】_____和端口?

___【14】____相关引脚配以驱动电路来设计。

软件设计时,需要通过设置它们控制寄存器的值分别为?

___【15】____和?

____【16】___来确定它们的引脚功能。

  

(6)系统的软件可以设计为在无操作系统的环境下运行。

设计者自行设计系统的启动引导程序,在该程序中完成异常向量设置、堆栈指针设置以及必要的硬件初始化。

ARM9体系结构中规定的IRQ异常所对应的异常向量地址为?

___【17】____。

Timer0部件所产生的秒基准时间到时将引起IRQ异常。

由于IRQ异常向量地址与下一个异常向量地址之间间隔为?

___【18】____个字节,因此,通常在IRQ异常向量地址处设计一条转移指令。

堆栈指针的设置需按工作模式来进行。

设置IRQ模式下的堆栈指针,需在R0“清0”后用指令ORRR1,R0,#0x12|?

___【19】____和MSRCPSR_CXSF,R1来使CPU核进入IRQ模式,然后再给SP寄存器赋值作为该模式下的堆栈指针。

这些初始化工作完成后,即可通过指令?

___【20】____来引导应用程序的主函数main()。

说明:

下面是试题解答时需要用到的寄存器格式及相关说明。

?

1)?

端口C的控制寄存器(GPCCON)

引脚

GPCCON的位

描述

GPC15

[31:

30]

00=输入,01=输出,10=VD7,11=保留

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=输出,10=LCDVF2,11=保留

GPC6

[13:

12]

00=输入,01=输出,10=LCDVF1,11=保留

GPC5

[11:

10]

00=输入,01=输出,10=LCDVF0,11=保留

GPC4

[9:

8]

00=输入,01=输出,10=VM,11=IIS数据输出

GPC3

[7:

6]

00=输入,01=输出,10=VFRAME,11=IIS数据输入

GPC2

[5:

4]

00=输入,01=输出,10=VLINE,11=保留

GPC1

[3:

2]

00=输入,01=输出,10=VCLK,11=保留

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,11=保留

GPD13

[27:

26]

00=输入,01

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1