1、嵌入式三级题库综合题解析 第一套1、酒店客房的门锁系统是由总台服务器和若干客房指纹锁组成,其基本功能具体描述如下:a、客房的指纹锁与总台服务器之间通过通信网络连接。b、旅客在总台登记住宿时,录入其指纹信息,并提取其特征值存储在总台服务器中。同时录入一个密码(若干位数字组成),以备指纹无法开锁时,用密码开锁。c、旅客在开客房指纹锁时,把相应手指放在门锁的指纹采集部件上,采集相应的指纹图像信息,并传输给总台服务器。d、总台服务器接收到某个客房指纹锁传输来的指纹图像信息后,进行特征值求取并进行匹配,若匹配正确,则回送开锁指令给客房指纹锁。e、客房指纹锁收到开锁指令后,控制开锁的机械动作,并用绿色LE
2、D灯指示开锁成功。f、若匹配不正确,总台服务器回送不开锁指令给客房指纹锁。g、客房指纹锁收到不开锁指令后,用红色LED灯指示开锁不成功。h、若指纹无法开锁,旅客还可以通过客房指纹锁上的数字按键输入密码,若密码匹配正确,也可以控制开锁的机械动作,并用绿色LED灯指示开锁成功。根据上述功能要求的描述,若采用S3C2410芯片为核心来构建客房指纹锁控制器的硬件平台,请完善下面的叙述和C语言程序(需要使用的控制寄存器的格式见题后说明)。(1)若采集的指纹图像分辨率为320240,灰度等级为256,则存储一幅指纹图像的原始像素信息需要的存储容量为 _【1】_KB(1K1000)。若采用115.2Kbps
3、的异步串行通信网传输,一幅指纹图像的传输时间至少需要 _【2】_秒,若采用10Mbps的以太网传输,一幅指纹图像的传输时间至少要 _【3】_秒,因此,系统中总台服务器和若干个客房指纹锁之间选用以太网连接。(2)硬件构件设计时,以太网接口选用AX88796芯片为核心来设计,若S3C2410芯片的nGCS2引脚连接到该芯片的 _【4】_引脚(低电平有效),那么,AX88796芯片内部寄存器地址的首地址是: _【5】_。(3)若客房指纹锁红色LED指示灯的驱动电路由GPIO的GPC0引脚控制,绿色LED指示灯的驱动电路由GPC1引脚控制。GPC0、GPC1引脚各自输出0时,其对应的LED灯灭,各自输
4、出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芯片通过
5、I2C总线传输控制命令给摄像芯片。硬件设计时,选择S3C2410芯片的GPE15、GPE14引脚与摄像芯片的引脚 _【11】_、SCL相连。软件设计时,需要用下面语句初始化该引脚为I2C功能引脚。 rGPECON=(rGPECON|0xA0000000)& _【12】_); / rGPECON是端口E的控制寄存器(5)若输入密码的键盘采用非标准键盘,键盘接口设计成43的阵列。若设计时选用了GPE0GPE3来输出键盘行扫描信号,选用GPD0GPD2来输入键盘列信号。请补充完善下面的键盘扫描函数: /*keyoutput 是键盘扫描时的输出地址,keyinput是键盘读入时的地址 #define
6、KEYOUTPUT (*(volatile INT8U *)0x56000044) /定义GPE的数据端 #define KEYINPUT (*(volatile INT8U *)0x56000034) /定义GPD的数据端 INT16U ScanKey() INT16U key=0xFFFF; INT16U i; INT8U temp=0xFF,output; rGPDCON= rGPDCON & _【13】_; /初始化GPD0GPD2为输入 rGPECON= (rGPECON & _【14】_)|0x00000055); /初始化GPE0GPE3为输出; for (i=1;( i0);
7、i=1) output |= 0xFF; output &= (i); KEYOUTPUT=output; temp = KEYINPUT; if (temp&0x07)!= _【16】_) key = (i); key = 8; key |= (temp&0x07)|0xF8); return (key); return 0xFFFF; 上面的键盘扫描函数返回的是由键盘行信号和键盘列信号合并而成的一个16位二进制值,根据该函数的返回值,可以判断是否有按键按下,并可确定是哪个按键按下。若返回值为 _【17】_时,可知键盘中无键按下,若返回值为 _【18】_时,可知键盘中第3行第2列的键被按下。
8、(注:以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
9、=输出,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=输
10、入,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=输入
11、,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、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
13、=输出,10=IICSDA,11=保留 GPE14 29:28 00=输入,01=输出,10=IICSCL,11=保留 GPE13 27:26 00=输入,01=输出,10=SPICLK0,11=保留 GPE12 25:2400=输入,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=保
14、留 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=II
15、SLRCK,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=输出
16、,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=保留 第二套数为 _【8】_。软件设计时,设计了如下的Timer0初始化函数,请补充完善。(注:下面程序中、用8位十六进制数表示,用4位十六进制数表示)void Timer0Int(void) /设置定时器配置寄存器0(TCFG0)rTCFG0= _【9】_; /Tim
17、er0预分频系数选择为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】_相关引脚配以驱动电路来设计。软件设计时,需要通过设置它们控制寄存器的值分别为 _
18、【15】_和 _【16】_来确定它们的引脚功能。(6)系统的软件可以设计为在无操作系统的环境下运行。设计者自行设计系统的启动引导程序,在该程序中完成异常向量设置、堆栈指针设置以及必要的硬件初始化。ARM9体系结构中规定的IRQ异常所对应的异常向量地址为 _【17】_。Timer0部件所产生的0.01秒基准时间到时将引起IRQ异常。由于IRQ异常向量地址与下一个异常向量地址之间间隔为 _【18】_个字节,因此,通常在IRQ异常向量地址处设计一条转移指令。堆栈指针的设置需按工作模式来进行。设置IRQ模式下的堆栈指针,需在R0清0后用指令ORRR1,R0,#0x12| _【19】_和MSR CPSR
19、_CXSF,R1来使CPU核进入IRQ模式,然后再给SP寄存器赋值作为该模式下的堆栈指针。这些初始化工作完成后,即可通过指令 _【20】_来引导应用程序的主函数main()。说明:下面是试题解答时需要用到的寄存器格式及相关说明。 1) 端口C的控制寄存器(GPCCON)引脚GPCCON的位描述GPC1531:3000=输入,01=输出,10=VD7,11=保留GPC1429:2800=输入,01=输出,10= VD6,11=保留GPC1327:2600=输入,01=输出,10= VD5,11=保留GPC1225:2400=输入,01=输出,10= VD4,11=保留GPC1123:2200=输
20、入,01=输出,10= VD3,11=保留GPC1021:2000=输入,01=输出,10= VD2,11=保留GPC919:1800=输入,01=输出,10= VD1,11=保留GPC817:1600=输入,01=输出,10= VD0,11=保留GPC715:1400=输入,01=输出,10=LCDVF2,11=保留GPC613:1200=输入,01=输出,10= LCDVF1,11=保留GPC511:1000=输入,01=输出,10=LCDVF0,11=保留GPC49:800=输入,01=输出,10=VM,11=IIS数据输出GPC37:600=输入,01=输出,10=VFRAME,11=
21、 IIS数据输入GPC25:400=输入,01=输出,10=VLINE,11=保留GPC13:200=输入,01=输出,10=VCLK,11=保留GPC01:000=输入,01=输出,10=LEND,11=保留2) 端口D的控制寄存器(GPDCON)引脚GPDCON的位描述GPD1531:3000=输入,01=输出,10=VD23,11=保留GPD1429:2800=输入,01=输出,10= VD22,11=保留GPD1327:2600=输入,01=输出,10= VD21,11=保留GPD1225:2400=输入,01=输出,10= VD20,11=保留GPD1123:2200=输入,01=输
22、出,10= VD19,11=保留GPD1021:2000=输入,01=输出,10= VD18,11=保留GPD919:1800=输入,01=输出,10= VD17,11=保留GPD817:1600=输入,01=输出,10= VD16,11=保留GPD715:1400=输入,01=输出,10= VD15,11=保留GPD613:1200=输入,01=输出,10= VD14,11=保留GPD511:1000=输入,01=输出,10= VD13,11=保留GPD49:800=输入,01=输出,10= VD12,11=保留GPD37:600=输入,01=输出,10= VD11,11= 保留GPD25:
23、400=输入,01=输出,10= VD10,11=保留GPD13:200=输入,01=输出,10= VD9,11=保留GPD01:000=输入,01=输出,10= VD8,11=保留3) 端口E的控制寄存器(GPECON)引脚GPECON的位描述GPE1531:3000=输入,01=输出,10=IICSDA,11=保留GPE1429:2800=输入,01=输出,10=IICSCL,11=保留GPE1327:2600=输入,01=输出,10=SPICLK0,11=保留GPE1225:2400=输入,01=输出,10=SPIMOSI0,11=保留GPE1123:2200=输入,01=输出,10=S
24、PIMISO0,11=保留GPE1021:2000=输入,01=输出,10=SSDAT3,11=保留GPE919:1800=输入,01=输出,10=SSDAT2,11=保留GPE817:1600=输入,01=输出,10=SSDAT1,11=保留GPE715:1400=输入,01=输出,10=SSDAT0,11=保留GPE613:1200=输入,01=输出,10=SDCMD,11=保留GPE511:1000=输入,01=输出,10=SDLCK,11=保留GPE49:800=输入,01=输出,10=IISSDO,11=IIS数据输出GPE37:600=输入,01=输出,10=IISSI,11= I
25、IS数据输入GPE25:400=输入,01=输出,10=CDCLK,11=保留GPE13:200=输入,01=输出,10=IISCLK,11=保留GPE01:000=输入,01=输出,10=IISLRCK,11=保留4) 端口H的控制寄存器(GPHCON)引脚GPHCON的位描述GPH1021:2000=输入,01=输出,10=CLKOUT1,11=保留GPH919:1800=输入,01=输出,10= CLKOUT0,11=保留GPH817:1600=输入,01=输出,10=UEXTCLK,11=保留GPH715:1400=输入,01=输出,10=RXD2,11=保留GPH613:1200=输
26、入,01=输出,10=TXD2,11=保留GPH511:1000=输入,01=输出,10=RXD1,11=保留GPH49:800=输入,01=输出,10=TXD1,11=IIS数据输出GPH37:600=输入,01=输出,10=RXD0,11= IIS数据输入GPH25:400=输入,01=输出,10=TXD0,11=保留GPH13:200=输入,01=输出,10=nRTS0,11=保留GPH01:000=输入,01=输出,10=nCTS0,11=保留5) UART线路控制寄存器(ULCONn n可以是0、1、2)ULCONn的位765:3 21描述保留 值为0确定红外模式 0正常操作模式 1
27、正常操作模式确定校验类型 0xx=无校验 100奇校验 101偶校验确定停止位数 0=1位停止位 1=2位停止位确定数据位 005位016位 107位118位6) TCFG0寄存器TCFG0的位功能描述初始状态值31:24保留0x0023:16在此不用0x0015:8确定Timer2,Timer3,Timer4的预分频系数0x007:0确定Timer0,Timer1的预分频系数0x007) TCFG1寄存器TCFG1的位功能描述初始状态值31:24保留0x0023:20在此不用0b000019:16确定Timer4的分频器值 00002 0001=4 0010=8 0011=160b000015:12确定Timer3的分频器值 00002 0001=4 0010=8 0011=160b000011:8确定Timer2的分频器值 00002 0001=4 0010=8 0011=160b00007:4确定Timer1的分频器值 00002 0001=4 0010=8 0011=160b00003:0确定Timer0的分频器值 00002 0001=4 0010=8 0011=160b00
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1