三级嵌入式系统开发技术综合题

更新时间:2023-11-12 21:51:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机三级嵌入式综合题 1、酒店客房的门锁系统是由总台服务器和若干客房指纹锁组成,其基本功能具体描述如下: a、客房的指纹锁与总台服务器之间通过通信网络连接。

b、旅客在总台登记住宿时,录入其指纹信息,并提取其特征值存储在总台服务器中。同时录入一个密码(若干位数字组成),以备指纹无法开锁时,用密码开锁。

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

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

e、客房指纹锁收到开锁指令后,控制开锁的机械动作,并用绿色LED灯指示开锁成功。 f、若匹配不正确,总台服务器回送不开锁指令给客房指纹锁。

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

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

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

(1)若采集的指纹图像分辨率为320×240,灰度等级为256,则存储一幅指纹图像的原始像素信息需要的存储容量为 ___76.8_____KB(1K=1000)。若采用115.2Kbps(14.4KB/S)的异步串行(每发送8位有一个起始位和一个停止位)通信网传输,一幅指纹图像的传输时间至少需要 ____6.7____秒((76.8*2/8+76.8)/14.4,约为6.7),若采用10Mbps(1.25MB/S,加上损耗,以1MB/S计算)的以太网传输,一幅指纹图像的传输时间至少要 ____0.076__秒,因此,系统中总台服务器和若干个客房指纹锁之间选用以太网连接。

(2)硬件构件设计时,以太网接口选用AX88796芯片为核心来设计,若S3C2410芯片的nGCS2引脚连接到该芯片的 ____CS____引脚(低电平有效),那么,AX88796芯片内部寄存器地址的首地址是: ____0x10000000____。

(3)若客房指纹锁红色LED指示灯的驱动电路由GPIO的GPC0引脚控制,绿色LED指示灯的驱动电路由GPC1引脚控制。GPC0、GPC1引脚各自输出\时,其对应的LED灯灭,各自输出\时,其对应的LED灯亮。那么,初始化GPC0、GPC1引脚为输出功能的语句是:

rGPCCON=((rGPCCON|0x00000005)& ___0xFFFFFFF5_____); // rGPCCON是端口C的控制寄存器

控制绿色LED灯点亮和熄灭的语句分别是: rGPCDAT = rGPCDAT | ___0x0002_____; //rGPCDAT是端口C的数据寄存器(16位的) rGPCDAT = rGPCDAT & ____0xFFFD____;

红色LED灯点亮和熄灭的语句分别是: rGPCDAT = rGPCDAT | ___0x0001_____;

rGPCDAT = rGPCDAT & ____0xFFFE____;

(4)指纹采集部件由一个摄像芯片和光学镜头组成。S3C2410芯片通过I2C总线传输控制命令给摄像芯片。硬件设计时,选择S3C2410芯片的GPE15、GPE14引脚与摄像芯片的引脚 ___SDL_____、SCL相连(I2C总线只有两条信号线,一条是数据线SDA,另一条是时钟线SCL,所有操作都通过这两条信号线完成。)软件设计时,需要用下面语句初始化该引脚为I2C功能引脚。

rGPECON=((rGPECON|0xA0000000)& ____0xAFFFFFFF____); // rGPECON是端口E的控制寄存器

(5)若输入密码的键盘采用非标准键盘,键盘接口设计成4×3的阵列。若设计时选用了GPE0~GPE3来输出键盘行扫描信号,选用GPD0~GPD2来输入键盘列信号。请补充完善下面的键盘扫描函数:

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

#define KEYOUTPUT (*(volatile INT8U *)0x56000044) //定义GPE的数据端口

#define KEYINPUT (*(volatile INT8U *)0x56000034) //定义GPD的数据端口

INT16U ScanKey()

{ INT16U key=0xFFFF; INT16U i; INT8U temp=0xFF,output;

rGPDCON= rGPDCON & ___0xFFFFFFC0_____; //初始化GPD0~GPD2为输入

rGPECON= ((rGPECON & _0xFFFFFF00_______)|0x00000055); //初始化GPE0~GPE3为输出;

for (i=1;(( i<= ____8____)&&(i>0)); i<<=1) { output |= 0xFF; output &= (~i); KEYOUTPUT=output; temp = KEYINPUT; if ((temp&0x07)!= ___0x07_____) {

key = (~i); key <<= 8; key |= ((temp&0x07)|0xF8); return (key); } } return 0xFFFF;

}

上面的键盘扫描函数返回的是由键盘行信号和键盘列信号合并而成的一个16位二进制值,根据该函数的返回值,可以判断是否有按键按下,并可确定是哪个按键按下。若返回值为 ___0xFFFF__时,可知键盘中无键按下,若返回值为 ____0xFBFD____时,可知键盘中第3行第2列的键被按下。(注:以GPE0对应的键盘行为第一行,以GPD0对应的键盘列为第一列)

(6)为了便于以太网通信程序的编写,客房指纹锁的应用软件基于μC/OS-II操作系统来设计,客房指纹锁的应用程序主函数中,需要用OSTaskCreate()函数 ____创建任务____,并用 ____OSStart()____函数启动多任务调度功能。

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

1)端口C的控制寄存器(GPCCON) 引脚 GPC15 GPC14 GPC13 GPC12 GPC11 GPC10 GPC9 GPC8 GPC7 GPC6 GPC5 GPC4 GPC3 GPC2 GPC1 GPC0 GPCCON的位 描述 [31:30] [29:28] [27:26] [25:24] [23:22] [21:20] [19:18] [17:16] [15:14] [13:12] [11:10] [9:8] [7:6] [5:4] [3:2] [1:0] 00=输入,01=输出,10=VD7,11=保留 00=输入,01=输出,10= VD6,11=保留 00=输入,01=输出,10= VD5,11=保留 00=输入,01=输出,10= VD4,11=保留 00=输入,01=输出,10= VD3,11=保留 00=输入,01=输出,10= VD2,11=保留 00=输入,01=输出,10= VD1,11=保留 00=输入,01=输出,10= VD0,11=保留 00=输入,01=输出,10=LCDVF2,11=保留 00=输入,01=输出,10= LCDVF1,11=保留 00=输入,01=输出,10=LCDVF0,11=保留 00=输入,01=输出,10=VM,11=IIS数据输出 00=输入,01=输出,10=VFRAME,11= IIS数据输入 00=输入,01=输出,10=VLINE,11=保留 00=输入,01=输出,10=VCLK,11=保留 00=输入,01=输出,10=LEND,11=保留 2)端口D的控制寄存器(GPDCON) 引脚 GPD15 GPD14 GPD13 GPD12 GPD11 GPD10 GPD9 GPD8 GPD7 GPD6 GPD5 GPD4 GPD3 GPD2 GPD1 GPD0 GPDCON的位 描述 [31:30] [29:28] [27:26] [25:24] [23:22] [21:20] [19:18] [17:16] [15:14] [13:12] [11:10] [9:8] [7:6] [5:4] [3:2] [1:0] 00=输入,01=输出,10=VD23,11=保留 00=输入,01=输出,10= VD22,11=保留 00=输入,01=输出,10= VD21,11=保留 00=输入,01=输出,10= VD20,11=保留 00=输入,01=输出,10= VD19,11=保留 00=输入,01=输出,10= VD18,11=保留 00=输入,01=输出,10= VD17,11=保留 00=输入,01=输出,10= VD16,11=保留 00=输入,01=输出,10= VD15,11=保留 00=输入,01=输出,10= VD14,11=保留 00=输入,01=输出,10= VD13,11=保留 00=输入,01=输出,10= VD12,11=保留 00=输入,01=输出,10= VD11,11=保留 00=输入,01=输出,10= VD10,11=保留 00=输入,01=输出,10= VD9,11=保留 00=输入,01=输出,10= VD8,11=保留

3)端口E的控制寄存器(GPECON) 引脚 GPE15 GPE14 GPE13 GPE12 GPE11 GPE10 GPE9 GPE8 GPE7 GPE6 GPE5 GPE4 GPE3 GPE2 GPE1 GPE0 GPECON的位 [31:30] [29:28] [27:26] [25:24] [23:22] [21:20] [19:18] [17:16] [15:14] [13:12] [11:10] [9:8] [7:6] [5:4] [3:2] [1:0] 描述 00=输入,01=输出,10=IICSDA,11=保留 00=输入,01=输出,10=IICSCL,11=保留 00=输入,01=输出,10=SPICLK0,11=保留 00=输入,01=输出,10=SPIMOSI0,11=保留 00=输入,01=输出,10=SPIMISO0,11=保留 00=输入,01=输出,10=SSDAT3,11=保留 00=输入,01=输出,10=SSDAT2,11=保留 00=输入,01=输出,10=SSDAT1,11=保留 00=输入,01=输出,10=SSDAT0,11=保留 00=输入,01=输出,10=SDCMD,11=保留 00=输入,01=输出,10=SDLCK,11=保留 00=输入,01=输出,10=IISSDO,11=IIS数据输出 00=输入,01=输出,10=IISSI,11= IIS数据输入 00=输入,01=输出,10=CDCLK,11=保留 00=输入,01=输出,10=IISCLK,11=保留 00=输入,01=输出,10=IISLRCK,11=保留 4)端口H的控制寄存器(GPHCON)

引脚 GPH10 GPH9 GPH8 GPH7 GPH6 GPH5 GPH4 GPH3 GPH2 GPH1 GPH0 GPHCON的位 [21:20] [19:18] [17:16] [15:14] [13:12] [11:10] [9:8] [7:6] [5:4] [3:2] [1:0] 描述 00=输入,01=输出,10=CLKOUT1,11=保留 00=输入,01=输出,10= CLKOUT0,11=保留 00=输入,01=输出,10=UEXTCLK,11=保留 00=输入,01=输出,10=RXD2,11=保留 00=输入,01=输出,10=TXD2,11=保留 00=输入,01=输出,10=RXD1,11=保留 00=输入,01=输出,10=TXD1,11=IIS数据输出 00=输入,01=输出,10=RXD0,11= IIS数据输入 00=输入,01=输出,10=TXD0,11=保留 00=输入,01=输出,10=nRTS0,11=保留 00=输入,01=输出,10=nCTS0,11=保留

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

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

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

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

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

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

(1)若硬件设计时采用GPIO端口E的GPE0~GPE7引脚作为8个数字量输出,那么软件设计时其初始化语句是:rGPECON=(rGPECON|0x00005555)& ___0xFFFF5555____。若软件设计时需要通过GPE5引脚输出\来驱动执行机构动作,那么语句是:rGPEDAT= rGPEDAT | ___0x0020____。(注:rGPECON是端口E的控制寄存器所对应的变量,rGPEDAT是端口E的数据寄存器所对应的变量)

(2)硬件设计时,选用UART0来完成RS-232接口电路设计。在软件设计时,其初始化程序中波特率设置为9600bps,数据格式设置为:8位数据位、奇校验、1位停止位。请补充完善下面的UART0初始化函数(注:主频参数为PCLK):

void UART0_Init()

{

rGPHCON=(rGPHCON&0xFFFFFF00)| ___0x000000AA___; //端口H相应引脚功能初始化

本文来源:https://www.bwwdw.com/article/vyqv.html

Top