1、地铁进出站闸机的控制器以S3C2410芯片为核心,并外加其他功能电路来进行设计,其基本功能描述如下: a、闸机能够识别本地铁票务系统出售的IC卡。能识别的IC卡有2种,一种是可预付费的“市民卡”,另一种是地铁站内出售的“当次卡”。 b、乘客凭“市民卡”或“当次卡”刷卡进站。若IC卡合法,则闸机打开,乘客通过后,闸机立即关闭;若IC卡不合法,闸机不打开,并进行声光报警。声光报警5次后自动停止。 c、进站刷卡时,还需识别IC卡的种类。若是“市民卡”,在闸机打开之前,需读取卡中余额并显示在闸机的LED显示器上,且把地铁站ID、进站时间写入卡中相应区域。若是“当次卡”,判断合法后直接打开闸机。 d、出站时,乘客需要根据所用的IC卡种类,来进行不同的操作。若乘客用的是“市民卡”,则需在闸机的刷卡器上刷卡,若乘客用的是“当次卡”则需要把卡投入闸机的投卡口中。 e、若乘客出站时刷的是“市民卡”,闸机系统需读取存储在卡上的“市民卡”类别ID(注:“市民卡”类别分为普通卡、学生卡、老人卡)、地铁站ID、进站时间、余额等信息,根据这些信息来扣除费用,并在闸机的LED显示器上显示余额及本次扣费额,若是学生卡或老人卡,还要用声音播报出“市民卡”类别,然后,打开闸机,乘客通过后立即关闭闸机。 f、若乘客出站时用的是“当次卡”,判断合法后即把闸机打开,乘客出去后立即关闭。 根据上述功能要求的描述,请完善下面的叙述(程序)和回答有关的问题。(注意:完善程序或回答问题所需的寄存器格式见题后的附录) (1)闸机控制器的硬件平台设计时,除了需要设计最小硬件系统(包括:微处理器、___【1】____电路、时钟电路、复位电路、存储器、JTAG接口电路)外,还必须设计IC卡读写电路、闸门电机驱动电路、声音提示及声光报警电路、LED显示接口电路等。若闸门电机驱动电路由GPE1引脚控制,GPE1引脚输出“0”时,控制闸门关闭,输出“1”时,控制闸门打开。那么,初始化GPE1引脚功能的语句是: rGPECON=((rGPECON|0x00000004)&___【2】____); // rGPECON是端口E的控制寄存器 控制闸门关闭和打开的语句分别是: rGPEDAT= rGPEDAT &___【3】____; // rGPEDAT是端口E的数据寄存器 rGPEDAT= rGPEDAT |___【4】____; (2)IC卡读写电路设计时,选用IC卡读写模块通过异步串行接口与S3C2410连接,利用S3C2410芯片内部的UART1部件实现异步串行接口电路设计。那么,在UART1的驱动程序设计时,可用下面一段程序来初始化UART1部件(注:UART1的波特率要求为:115200bps,数据格式要求为:8位数据、1位停止位、偶校验,主频为PCLK。)。 voidUART1_Init() { rGPHCON=(rGPHCON&0xFFFFF0FF)|___【5】____; //端口H相应引脚功能初始化 rUFCON1=0x0; //FIFO disable rUMCON1=0x0; rULCON1=(___【6】____$amp; rUCON1=0x245; //设置控制寄存器 rUBRDIV1=((int)(PCLK/___【8】____)+ 0.5 1); //设置波特率,小数采用四舍五入 } (3)乘客出站时刷的若是“市民卡”,则需要用声音来播报卡的类别,即若是“学生卡”则语音播报:学生卡;若是“老人卡”则语音播报:老人卡。因此,硬件平台构建时设计了一个16位D/A转换器芯片,再加上功率放大电路及扬声器等所构成的语音播报电路,S3C2410芯片通过GPC端口与D/A转换器的16位数据线相连。软件设计时,可以先行对相关的语音波形进行采样、编码。设人的语音频率范围是300Hz~4000 Hz,因此,对语音波形采样时,采样频率至少应为___【9】____KHz,所采得的数字语音信号才不至于失真。假设,播音员读“学生卡”的这段语音波形持续3秒,采用该采样频率进行采样,数字语音信号编码采用16位二进制数,那么存储该段语音信号约需要____【10】___KB(1KB=1024B)的存储容量。语音回放时,按照采样频率要求,定时从所存储的单元中逐次读出先行采样得到的数字语音信号,输出给D/A转换器,然后通过扬声器播出。因此,在相关的驱动,需要用语句:rGPCCON=___【11】____;(注:rGPCCON是端口C的控制寄存器)来初始化GPC端口的引脚功能。然后通过GPC端口的___【12】____寄存器定时输出数字语音信号。 (4)闸门在乘客通过闸机后立即关闭,因此,硬件平台构建时,可在闸门的后方一定距离内安装一个红外感测探头,并在闸机控制器中设计相关接口电路。若采用GPE0引脚来输入红外感测信号,GPE0引脚为“1”时,表示人体不在感应区内,GPE0引脚为“0”时,表示人体在感应区内。那么,初始化GPE0引脚功能的语句是: rGPECON=rGPECON&___【13】____; // rGPECON是端口E的控制寄存器 判断是否人体在感应区内的语句可以是: if((rGPEDAT & 0x0001) ==___【14】____) {//判断出人体在感应区内 厖 } (5)闸机控制器的应用软件将在无操作系统环境下进行开发。设计者可以设计一个启动引导程序,来引导应用程序。按照ARM9体系结构中的规定,启动引导程序代码的存储单元首址应该是___【15】____,它对应着复位异常向量。系统上电/复位后,ARM9微处理器处于管理模式,启动引导程序在引导应用程序前,通常需用指令ORR R1,R0,___【16】____|0xC0和MSR CPSR_cxsf,R1来使ARM核进入用户模式(注:R0,R1寄存器的初值设定为0。CPSR寄存器的格式见题后附录。),然后再通过指令___【17】____来引导应用程序主函数main()。启动引导还需要完成异常向量表的设置,ARM9体系结构中规定异常向量之间各相差___【18】____个字节,因此,需要在各异常向量处设计一条分支指令。对于S3C2410微处理器来说,其启动引导程序还需要完成禁止看门狗部件和禁止___【19】____部件,并设置各工作模式下的___【20】____指针。 附录:三、综合题中完善程序或回答问题所需的寄存器格式 端口C控制寄存器(GPCCON)的格式 符号位描述初始状态 GPC15[31:30]00=输入01=输出10=VD7 11=保留00 GPC14[29:28]00=输入01=输出10=VD6 11=保留00 GPC13[27:26]00=输入01=输出10=VD5 11=保留00 GPC12[25:24]00=输入01=输出10=VD4 11=保留00 GPC11[23:22]00=输入01=输出10=VD3 11=保留00 GPC10[21:20]00=输入01=输出10=VD2 11=保留00 GPC9[19:18]00=输入01=输出10=VD1 11=保留00 GPC8[17:16]00=输入01=输出10=VD0 11=保留00 GPC7[15:14]00=输入01=输出10=LCDVF2 11=保留00 GPC6[13:12]00=输入01=输出10=LCDVF1 11=保留00 GPC5[11:10]00=输入01=输出10=LCDVF0 11=保留00 GPC4[9:8]00=输入01=输出10=VM 11=保留00 GPC3[7:6]00=输入01=输出10=VFRAME. 11=保留00 GPC2[5:4]00=输入01=输出10=VLINE 11=保留00 GPC1[3:2]00=输入01=输出10=VCLK 11=保留00 GPC0[1:0]00=输入01=输出10=LEND 11=保留00 端口E控制寄存器(GPECON)的格式 符号位描述初始状态 GPE15[31:30]00=输入01=输出10=IICSDA 11=保留00 GPE14[29:28]00=输入01=输出10=IICSCL 11=保留00 GPE13[27:26]00=输入01=输出10=SPICLK 11=保留00 GPE12[25:24]00=输入01=输出10=SPIMOSI0 11=保留00 GPE11[23:22]00=输入01=输出10=SPIMISO0 11=保留00 GPE10[21:20]00=输入01=输出10=SDDAT3 11=保留00 GPE9[19:18]00=输入01=输出10=SDDAT2 11=保留00 GPE8[17:16]00=输入01=输出10=SDDAT1 11=保留00 GPE7[15:14]00=输入01=输出10=SDDAT0 11=保留00 GPE6[13:12]00=输入01=输出10=SDCMD 11=保留00 GPE5[11:10]00=输入01=输出10=SDCLK 11=保留00 GPE4[9:8]00=输入01=输出10=IISSDO 11=保留00 GPE3[7:6]00=输入01=输出10=IISSDI 11=保留00 GPE2[5:4]00=输入01=输出10=CDCLK 11=保留00 GPE1[3:2]00=输入01=输出10=IISSCLK 11=保留00 GPE0[1:0]00=输入01=输出10=IISLRCK 11=保留00 端口H控制寄存器(GPHCON)的格式 符号位描述初始状态 GPH10[21:20]00=输入01=输出10=CLKOUT1 11=保留 00GPH9[19:18]00=输入01=输出10=CLKOUT0 11=保留 GPH8[17:16]00=输入01=输出10=UCLK 11=保留 GPH7[15:14]00=输入01=输10=RXD211=nCTS1 GPH6[13:12]00=输入01=输出10=TXD2 11=nRTS1 GPH5[11:10]00=输入01=输出10=RXD1 11=保留 GPH4[9:8]00=输入01=输出10=TXD1 11=保留 GPH3[7:6]00=输入01=输出10=RXD0 11=保留 GPH2[5:4]00=输入01=输出10=TXD0 11=保留 GPH1[3:2]00=输入01=输出10=nRTS0 11=保留 GPH0[1:0]00=输入01=输出10=nCTS0 11=保留 ULCONn寄存器的格式符号位描述初始状态 Reserved[7]保留0Infra-Red Mode[6]确定是否采用红外模式0 = 正常操作模式1 = 红外传输模式0Parity Mode[5:3]确定校验类型0xx = 无校验100 = 奇校验101 = 偶校验000Stop Bit[2]确定停止位数0 = 1位停止位1 = 2位停止位0 WordLength[1:0]确定数据位数00 = 5位01 = 6位10 = 7位11 = 8位00 CPSR寄存器(32位寄存器)的格式(注:仅给出了最后5位,即工作模式选择位) M4M3 M2 M1 M0 1 00 0 0 用户模式 1 00 0 1 FIQ模式 1 00 1 0 IRQ模式 1 00 1 1 管理模式 1 01 1 1 中止模式 1 10 1 1 未定义模式 1 11 1 1 系统模式