地铁进出站闸机的控制器以S3C2410芯片为核心,并外加其他功能电路来进行设计,其基本功能描述如下: a、闸机能够识别本地铁票务系统出售的IC卡。能识别的IC卡有2种,一种是可预付费的“市民卡”,另一种是地铁站内出售的“当次卡”。 b、乘客

admin2018-06-19  39

问题 地铁进出站闸机的控制器以S3C2410芯片为核心,并外加其他功能电路来进行设计,其基本功能描述如下:
    a、闸机能够识别本地铁票务系统出售的IC卡。能识别的IC卡有2种,一种是可预付费的“市民卡”,另一种是地铁站内出售的“当次卡”。
    b、乘客凭“市民卡”或“当次卡”刷卡进站。若IC卡合法,则闸机打开,乘客通过后,闸机立即关闭;若IC卡不合法,闸机不打开,并进行声光报警。声光报警5次后自动停止。
    c、进站刷卡时,还需识别IC卡的种类。若是“市民卡”,在闸机打开之前,需读取卡中余额并显示在闸机的LED显示器上,且把地铁站ID、进站时间写入卡中相应区域。若是“当次卡”,判断合法后直接打开闸机。
    d、出站时,乘客需要根据所用的IC卡种类,来进行不同的操作。若乘客用的是“市民卡”,则需在闸机的刷卡器上刷卡,若乘客用的是“当次卡”则需要把卡投入闸机的投卡口中。
    e、若乘客出站时刷的是“市民卡”,闸机系统需读取存储在卡上的“市民卡”类别ID(注:“市民卡”类别分为普通卡、学生卡、老人卡)、地铁站ID、进站时间、余额等信息,根据这些信息来扣除费用,并在闸机的LED显示器上显示余额及本次扣费额,若是学生卡或老人卡,还要用声音播报出“市民卡”类别,然后,打开闸机,乘客通过后立即关闭闸机。
    f、若乘客出站时用的是“当次卡”,判断合法后即把闸机打开,乘客出去后立即关闭。根据上述功能要求的描述,请完善下面的叙述(程序)和回答有关的问题。
(注意:完善程序或回答问题所需的寄存器格式见题后的附录)
(1)闸机控制器的硬件平台设计时,除了需要设计最小硬件系统(包括:微处理器、【81】电路、时钟电路、复位电路、存储器、JTAG接口电路)外,还必须设计IC卡读写电路、闸门电机驱动电路、声音提示及声光报警电路、LED显示接口电路等。若闸门电机驱动电路由GPE1引脚控制,GPE1引脚输出“0”时,控制闸门关闭,输出“1”时,控制闸门打开。那么,初始化GPE1引脚功能的语句是:
    rGPECON=((rGPECON|0x00000004)&【82】);//rGPECON是端口E的控制寄存器
    控制闸门关闭和打开的语句分别是:
    rGPEDAT=rGPEDAT&【83】;//rGPEDAT是端口E的数据寄存器
    rGPEDAT=rGPEDAT|【84】;
    (2)IC卡读写电路设计时,选用IC卡读写模块通过异步串行接口与S3C2410连接,利用S3C2410芯片内部的UART1部件实现异步串行接口电路设计。那么,在UART1的驱动程序设计时,可用下面一段程序来初始化UART1部件(注:UART1的波特率要求为:115200bps,数据格式要求为:8位数据、1位停止位、偶校验,主频为PCLK。)。
void UART1_Init()
    {
    rGPHICON=(rGPHCON&0xFFFFFOFF)|【85】;//端口H相应引脚功能初始化
    rUFCON1=0x0;//FIFO disable
    rUMCON1=0x0;
    rULCON1=(【86】<<3)|(0<<2)|(【87】);//设置线路控制寄存器
    rUCON1=0x245;//设置控制寄存器
    rUBRDIV1=((int)(PCLK/【88】)+0.5—1);//设置波特率,小数采用四舍五入
    }
    (3)乘客出站时刷的若是“市民卡”,则需要用声音来播报卡的类别,即若是“学生卡”则语音播报:学生卡;若是“老人卡”则语音播报:老人卡。因此,硬件平台构建时设计了一个16位D/A转换器芯片,再加上功率放大电路及扬声器等所构成的语音播报电路,S3C2410芯片通过GPC端口与D/A转换器的16位数据线相连。软件设计时,可以先行对相关的语音波形进行采样、编码。设入的语音频率范围是300Hz~4000Hz,因此,对语音波形采样时,采样频率至少应为【89】KHz,所采得的数字语音信号才不至于失真。假设,播音员读“学生卡”的这段语音波形持续3秒,采用该采样频率进行采样,数字语音信号编码采用16位二进制数,那么存储该段语音信号约需要【90】KB(1KB=1024B)的存储容量。语音回放时,按照采样频率要求,定时从所存储的单元中逐次读出先行采样得到的数字语音信号,输出给D/A转换器,然后通过扬声器播出。因此,在相关的驱动程序中,需要用语句:rGPCCON=【91】;(注:rGPCCON是端口C的控制寄存器)来初始化GPC端口的引脚功能。然后通过GPC端口的【92】寄存器定时输出数字语音信号。
    (4)闸门在乘客通过闸机后立即关闭,因此,硬件平台构建时,可在闸门的后方一定距离内安装一个红外感测探头,并在闸机控制器中设计相关接口电路。若采用GPE0引脚来输入红外感测信号,GPE0引脚为“1”时,表示人体不在感应区内,GPE0引脚为“0”时,表示人体在感应区内。那么,初始化GPE0引脚功能的语句是:
    rGPECON=rGPECON&【93】;//rGPECON是端口E的控制寄存器
    判断是否人体在感应区内的语句可以是:
    if((rGPEDAT&0x0001)=【94】)
    {//判断出人体在感应区内
    ……
    }
    (5)闸机控制器的应用软件将在无操作系统环境下进行开发。设计者可以设计一个启动引导程序,来引导应用程序。按照ARM9体系结构中的规定,启动引导程序代码的存储单元首址应该是【95】,它对应着复位异常向量。系统上电/复位后,ARM9微处理器处于管理模式,启动引导程序在引导应用程序前,通常需用指令ORR R1,R0,【96】|0xC0和MSR CPSR_cxsf,R1来使ARM核进入用户模式(注:R0,R1寄存器的初值设定为0。CPSR寄存器的格式见题后附录。),然后再通过指令【97】来引导应用程序主函数main()。启动引导程序中还需要完成异常向量表的设置,ARM9体系结构中规定异常向量之间各相差【98】个字节,因此,需要在各异常向量处设计一条分支指令。对于S3C2410微处理器来说,其启动引导程序还需要完成禁止看门狗部件和禁止【99】部件,并设置各工作模式下的【100】指针。
    说明:下面是试题解答时需要用到的寄存器格式及相关说明。
    1)端口C控制寄存器(GPCCON)的格式

    2)端口E控制寄存器(GPECON)的格式

    3)端口H控制寄存器(GPHCON)的格式

4)ULCONn寄存器的格式

    5)CPSR寄存器(32位寄存器)的格式(注:仅给出了最后5位,即工作模式选择位)

选项

答案(1)【81】电源【82】0xFFFFFFF7或(~0x00000008)或一0x00000008【83】0xFFFD或(~0x0002)或~0x0002【84】0x0002 (2)【85】0x00000A00【86】5【87】3【88】115200×16=1843200 (3)【89】8 【90】46.875 【91】0x55555555【92】数据 (4)【93】0xFFFFFFFC或~0x00000003或(~0x00000003)【94】0x0000 (5)【95】0x00000000或0x00[96]0x10或0x00000010或16【97】BL_main[98】4[99】外部中断【100】堆栈

解析 本题主要考查基于S3C2410的地铁进出站闸机系统开发。包括嵌入式最小硬件系统构成,GPIO引脚功能及相应初始化设置,GPC和GPD作为LED显示器接口引脚,GPE作为输入输出,还考查了香农定理,ARM9体系结构中的异常向量等相关知识。
(1)小硬件系统的组成包括:微处理器、电源电路、时钟电路、复位电路、存储器、JTAG接口电路等;和0相与清零,和1相与保持不变。和0相或保持不变,和1相或置1。00为输入,01为输出,则初始化GPE1引脚功能为输出的语句是:rGPECON=((rGPECON|0x00000004)&0xFFFFFFF7)则空【82】为0xFFFFFFF7或(~0x00000008)或~0x00000008;GPE1引脚输出“0”时,控制闸门关闭,即rGPEDAT=rGPEDAT&0xFFFD则空【83】为0xFFFD或(~0x0002)或~0x0002;GPE1引脚输出“1”时,控制闸门打开。即rGPEDAT=rGPEDAT|0x0002,则空【84】为0x0002。
(2)GPH5中10=RXD1,GPH4中10=TXD1。所以端口H的初始化语句为先清零、再置1,即rGPHCON=(rGPHcON&0xFFFF0FF)|0x00000A00,则空【85】为0x00000A00;8位数据位、1位停止位、偶校验。在ULCON中,[1:0]:11=8位;[2]:0=1位停止位;[5:3]:101=偶校验;[6]:0=正常操作模式。即rULCONl=(5<<3)|(0<<2)|(3),则空【86】为5,空【87】为3;设置波特率为115200×16=1843200。
(3)根据香农采样定理可得空【89】为8;采样频率为8KHz,采样周期为125us,样本值用16位二进制数进行编码。则3s的语音片段的存储容量为:(3×16)/(125us×8)=46.875,则空【90】为46.875。00为输入,01为输出,则初始化GPC关口功能为输出的语句是:rGPCCON=0x55555555,则空【91】为0x55555555。
(4)采用GPE0引脚来输入红外感测信号,GPE0引脚为“1”时,表示人体不在感应区内,GPE0引脚为“0”时,表示人体在感应区内。则初始化GPEO引脚功能的语句是:rGPECON=rGPECON&0xFFFFFFFC,则空【93】为0xFFFFFFFC或~0x00000003或(~0x00000003);判断人体是否在感应区内的语句为:if((rGPEDAT&0x0001)==0x0000),若为真,则表示人体在感应区内,则空【94】为0x0000。
(5)按照ARM9体系结构中的规定,启动引导程序代码的存储单元首址应该是0x00000000或0x00,对应复位异常向量。用户模式中[M4 M3 M2 M1 M0]=[1 0 0 0 0]。即ORR R1,R0,0x10|0xC0,则空【96】为0x10或0x00000010或16;再通过指令BL_main来引导应用程序主函数main()。ARM9体系结构中规定异常向量之间各相差4个字节,因此,需要在各异常向量处设计一条分支指令。对于S3C2410微处理器来说,其启动引导程序还需要完成禁止看门狗部件和禁止外部中断部件,并设置各工作模式下的堆栈指针。
转载请注明原文地址:https://jikaoti.com/ti/ed17FFFM
0

最新回复(0)