计算机三级嵌入式综合题Word格式文档下载.docx
《计算机三级嵌入式综合题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机三级嵌入式综合题Word格式文档下载.docx(60页珍藏版)》请在冰豆网上搜索。
硬件设计时,选择S3C2410芯片的GPE15、GPE14引脚与摄像芯片的引脚
___【11】_____、SCL相连。
软件设计时,需要用下面语句初始化该引脚为I2C功能引脚。
rGPECON=((rGPECON|0xA0000000)&
____【12】____);
//rGPECON是端口E的控制寄存器
(5)若输入密码的键盘采用非标准键盘,键盘接口设计成4×
3的阵列。
若设计时选用了GPE0~GPE3来输出键盘行扫描信号,选用GPD0~GPD2来输入键盘列信号。
请补充完善下面的键盘扫描函数:
//**keyoutput是键盘扫描时的输出地址,keyinput是键盘读入时的地址
#define
KEYOUTPUT
(*(volatileINT8U*)0x56000044)
//定义GPE的数据端口
#define
KEYINPUT
(*(volatileINT8U*)0x56000034)
//定义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
00=输入,01=输出,10=VD23,11=保留
GPD14
00=输入,01=输出,10=VD22,11=保留
GPD13
00=输入,01=输出,10=VD21,11=保留
GPD12
00=输入,01=输出,10=VD20,11=保留
GPD11
00=输入,01=输出,10=VD19,11=保留
GPD10
00=输入,01=输出,10=VD18,11=保留
GPD9
00=输入,01=输出,10=VD17,11=保留
GPD8
00=输入,01=输出,10=VD16,11=保留
GPD7
00=输入,01=输出,10=VD15,11=保留
GPD6
00=输入,01=输出,10=VD14,11=保留
GPD5
00=输入,01=输出,10=VD13,11=保留
GPD4
00=输入,01=输出,10=VD12,11=保留
GPD3
00=输入,01=输出,10=VD11,11=保留
GPD2
00=输入,01=输出,10=VD10,11=保留
GPD1
00=输入,01=输出,10=VD9,11=保留
GPD0
00=输入,01=输出,10=VD8,11=保留
3)端口E的控制寄存器(GPECON)
GPECON的位
GPE15
00=输入,01=输出,10=IICSDA,11=保留
GPE14
00=输入,01=输出,10=IICSCL,11=保留
GPE13
00=输入,01=输出,10=SPICLK0,11=保留
GPE12
00=输入,01=输出,10=SPIMOSI0,11=保留
GPE11
00=输入,01=输出,10=SPIMISO0,11=保留
GPE10
00=输入,01=输出,10=SSDAT3,11=保留
GPE9
00=输入,01=输出,10=SSDAT2,11=保留
GPE8
00=输入,01=输出,10=SSDAT1,11=保留
GPE7
00=输入,01=输出,10=SSDAT0,11=保留
GPE6
00=输入,01=输出,10=SDCMD,11=保留
GPE5
00=输入,01=输出,10=SDLCK,11=保留
GPE4
00=输入,01=输出,10=IISSDO,11=IIS数据输出
GPE3
00=输入,01=输出,10=IISSI,11=IIS数据输入
GPE2
00=输入,01=输出,10=CDCLK,11=保留
GPE1
00=输入,01=输出,10=IISCLK,11=保留
GPE0
00=输入,01=输出,10=IISLRCK,11=保留
4)端口H的控制寄存器(GPHCON)
GPHCON的位
GPH10
00=输入,01=输出,10=CLKOUT1,11=保留
GPH9
00=输入,01=输出,10=CLKOUT0,11=保留
GPH8
00=输入,01=输出,10=UEXTCLK,11=保留
GPH7
00=输入,01=输出,10=RXD2,11=保留
GPH6
00=输入,01=输出,10=TXD2,11=保留
GPH5
00=输入,01=输出,10=RXD1,11=保留
GPH4
00=输入,01=输出,10=TXD1,11=IIS数据输出
GPH3
00=输入,01=输出,10=RXD0,11=IIS数据输入
GPH2
00=输入,01=输出,10=TXD0,11=保留
GPH1
00=输入,01=输出,10=nRTS0,11=保留
GPH0
00=输入,01=输出,10=nCTS0,11=保留
【解题思路】
本题是一道基于S3C2410的嵌入式系统开发综合题。
考查了数字图像的存储容量计算,网络通信数据传输;
系统硬件构件设计,尤其是GPIO接口功能及初始化程序,结合常用外设的连接,如LED、键盘等;
基于μC/OS-II操作系统的应用程序的主要μC/OS-II函数,如何创建任务及启动任务调度功能。
【参考答案及解析】
【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】0xFFFFFFF5;
00为输入,01为输出。
则初始化GPC0、GPC1引脚为输出功能的语句是:
rGPCCON=((rGPCCON|0x00000005)&
0xFFFFFFF5)。
【7】0x0002;
红色LED指示灯的驱动电路由GPIO的GPC0引脚控制,绿色LED指示灯的驱动电路由GPC1引脚控制。
则绿色LED灯点亮为:
rGPCDAT=rGPCDAT|
0x0002。
【8】0xFFFD;
绿色LED灯熄灭为:
rGPCDAT=rGPCDAT&
0xFFFD。
【9】0x0001;
红色LED灯点亮为:
0x0001。
【10】0xFFFE;
红色LED灯熄灭为:
0xFFFE。
【11】SDA;
I2C总线只有两条信号线,一条是数据线SDA,另一条是时钟线SCL,所有操作都通过这两条信号线完成。
【12】0xAFFFFFFF;
初始化I2C功能引脚。
【13】0xFFFFFFC0;
初始化GPD0~GPD2为输入:
0xFFFFFFC0。
【14】0xFFFFFF00;
初始化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接口,可以和上位机连接,接收上位机发送的命令及参数。
需要提供一个基准定时信号,定时时间间隔为0.01秒。
需要彩色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)系统中所需要的0.01秒基准定时时间选用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部件所产生的0.01秒基准时间到时将引起IRQ异常。
由于IRQ异常向量地址与下一个异常向量地址之间间隔为
___【18】____个字节,因此,通常在IRQ异常向量地址处设计一条转移指令。
堆栈指针的设置需按工作模式来进行。
设置IRQ模式下的堆栈指针,需在R0“清0”后用指令ORRR1,R0,#0x12|
___【19】____和MSRCPSR_CXSF,R1来使CPU核进入IRQ模式,然后再给SP寄存器赋值作为该模式下的堆栈指针。
这些初始化工作完成后,即可通过指令
___【20】____来引导应用程序的主函数main()。
1)
端口C的控制寄存器(GPCCON)