指纹考勤机通常用于在工作日的上班时间,采集员工指纹信息,以确定该员工是否正常上班。其基本功能要求有: a、能够采集指纹信息,并求取指纹特征,然后与事先预存在指纹特征库中的指纹特征比对。 b、系统中需存储指纹图原始信息和指纹特征信息,这些指纹

admin2017-02-25  44

问题 指纹考勤机通常用于在工作日的上班时间,采集员工指纹信息,以确定该员工是否正常上班。其基本功能要求有:
    a、能够采集指纹信息,并求取指纹特征,然后与事先预存在指纹特征库中的指纹特征比对。
    b、系统中需存储指纹图原始信息和指纹特征信息,这些指纹信息,是预先采集并存储的。每个新员工初来企业工作时,需先采集其指纹图原始信息,并求取指纹特征,然后添加到指纹原始图信息库和指纹特征库中。
    c、在新员工指纹信息采集时,需通过键盘输入其员工ID,然后采集其指纹图信息,采集完成后,按“保存”键可保存指纹图信息。若按“取消”键,则可取消本次采集。
    d、指纹考勤机上需要一个LCD显示屏,便于显示相关的信息。
    e、需要与后台PC机通信,以便把考勤信息传输给后台PC机保存,并可以查询及生成相关统计报表。
    根据上述功能要求的描述,若采用S3C2410芯片为核心来构建该指纹考勤机的硬件平台,请完善下面的叙述(程序)和回答有关的问题。(完善程序或回答问题所需的寄存器格式见题后的附录)。
    (1)在硬件平台构建时,若选用的指纹采集模块的图像芯片分辨率设置为256×360,一幅灰度等级为256的指纹图需要存储单元【81】_______KB(注:1024B=1KB)。若指纹图信息库中需要存储100幅员工指纹原始图像信息,那么,在设计存储器系统时,至少需要设计容量为【82】_______MB的存储单元来存储指纹原始图信息。(保留2位小数)
    (2)若在设计指纹采集模块的接口电路时,选用GPE端口的GPEl5和GPE14分别连接指纹采集模块的SDA和SCL引脚,GPE端口的GPE7~GPE0连接指纹采集模块的数据线D7~D0,用于输入原始图像信息。那么,在相关驱动程序中,需用下面语句来初始化GPE15、GPE14的引脚功能:
    rGPECON=((rGPECON & 0x0FFFFFFF)|【83】_______)//rGPECON是端口E的控制寄存器
    并用下面语句来初始化GPE7~GPE0的引脚功能:
    rGPECON=((rGPECON & 【84】_______)
    (3)在设计键盘接口电路时,选用GPF0~GPF3来输出键盘行扫描信号,选用GPF4~GPF7来输入键盘列信号(其按键排列示意图如图所示),即把键盘设计成4×4的阵列形式。在软件设计时,自行设计了键盘扫描函数,请你补充完善之:

    //**KEYOUTPUT是键盘扫描时的输出地址,KEYINPUT是键盘读入时的地址
    #define KEYOUTPUT    (*(volatile INT8U *)0x56000054)
    #define KEYINPUT    (*(volatile INT8U *)0x56000054)
    INTl6U ScanKey()
    {
    INT16U key=0xFFFF;
    INT8Ui:
    INT8U temp=0xFF,output;
    rGPFCON=((rGPFCON|【85】_______)&0xFF55);    //初始化GPF0~GPF3为输出,rGPFCON是端口F的控制寄存器
    rGPFCON=rGPFCON&【86】_______;    //初始化GPF4~GPF7为输入
    for(i=1;((i<=【87】_______)&&(i>0));i<<=1)
    {
    output1=0xFF:
    output&=(~i);
    KEYOUTPUT=output;
    temp=KEYINPUT;
    if((temp&0xF0)!=【88】_______)
    {
    key=(~i);
    key<<=8:
    key|=((temp&0xF0)|0x0F);
    return(key);
    }
    }
    retum 0xFFFF;
    }
    上面的键盘扫描函数返回值是键盘扫描码,通过键盘扫描码我们可以判断是否有按键按下,并确定是哪个按键按下。例如:若返回值为【89】_______时,可知是键盘中的“8”键按下,若返回值为0xFE7F时,可知是键盘中的【90】_______键被按下。若无键按下时,返回值应为【91】_______。
    (4)若LCD显示屏的接口电路设计时,选用S3C2410的端口C和端口D来控制LCD屏的相关信号,那么,初始化端口D引脚功能的语句可以编写如下:
    rGPDCON=【92】_______) //rGPDCON是端口D的控制寄存器
    (5)与后台PC机的通信通过串口进行,若硬件设计时选用UART1部件来实现串口,那么,在相关驱动程序中需要用下面一组语句来初始化相关的硬件部件(注:设置波特率为115200bps)。
    rGPHCON=(rGPHCON & 0xFFFFFOFF)|【93】_______;//rGPHCON是端口H的控制寄存器
    rUFCON1=0x0://FIFO disable
    rUMCON1=0x0:
    rULCON1=(5<<【94】_______)|(0<<【95】_______)|(3); //设置线路控制寄存器:偶校验,1位停止位,8位数据位
    rUCON1=0x245; //设置控制寄存器
    rUBRDIV2=((int)(PCLK/(115200×【96】_______)+0.5)-1); //PCLK是系统主频
    (6)若在设计系统启动引导程序时,需要设置系统的异常向量表,因为ARM9体系结构中规定异常向量之间各相差【97】_______个字节,因此,需要在各异常向量处设计一条分枝指令。对于S3C2410微处理器来说,启动引导程序还需要完成禁止看门狗部件和禁止【98】_______,并设置各工作模式下的【99】_______指针。然后再通过BL指令来引导应用程序的【100】_______函数。
    说明:下面是试题解答时需要用到的寄存器格式及相关说明。
    1)端口D控制寄存器(GPDCON)的格式

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

    3)端口F控制寄存器(GPFCON)的格式

    4)GPHCON寄存器的格式

    5)ULCONn寄存器的格式

选项

答案(1)【81】90【82】8.79 (2)【83】0xA0000000【84】0xFFFF0000 (3)【85】0x0055【86】x00FF【87】8【88】0xF0【89】0xFDBF【90】“保存”【9l】0xFFFF (4)【92】0xAAAAAAAA (5)【93】0x00000A00(或0xA00)【94】3【95】2【96】16 (6)【97】4【98】中断(中断部件)【99】SP(堆栈)【100】main()(main,主)

解析 (1)灰度等级为256表明其像素深度是8,图像数据量=图像水平分辨率×图像垂直分辨率×像素深度/8,即256×360×8/8=92160B/1024=90KB;存储100幅图像所需容量=90KB×100/1024=8.79MB。
    (2)GPE15和GPE14的第三功能分别为SA和SCL,对照E口控制寄存器GPECON,相应引脚的赋值应为10,即1010;而GPE7~GPE0作为输入口赋值应为00,其余置11;故为0xA0000000和0xFFFF0000。
    (3)题中选用矩阵键盘接口,采用中断方式读取键盘值。参考F口的控制寄存器GPFCON,将端口作为输出口则将相应端口值置为01,作为输入口则置为00,其余口置11;对矩阵键盘采用循环扫描法读取键盘按键情况,需要循环8次;无键按下,则全1,有键按下,则相应置0。循环结构中i<=8;当没有按键被按下,输出为0xFFFF,有相应的键被按下时,结合行列值便可判断。
    (4)LCD显示屏自身不带控制器,没有驱动电路;本系统中主要利用CPIO口设计驱动电路来进行控制,主要利用GPC和GPD端口。初始化数值可根据端口D的控制寄存器GPDCON来确定,所有端口置10即可。
    (5)选用UART1部件来实现串口,根据GPHCON可知,将端口GPH4和GPH5置10,其余端口置00即可;UART的波特率由除数寄存器决定,也取决于外部时钟,关系式如下:UBRDIVn=INT(UCLK/(波特率×16))-1。其中UCLK可以是PCLK。
    (6)软件平台的构建步骤通常是:首先移植启动引导程序(Bootloader),然后完成Linux内核的移植,随后还需构建根文件系统。基于ARM9核的处理器,各异常向量之间相差4个字节。因此,需要在各异常向量处设计一条无条件转移指令。对于S3C2410微处理器来说,启动引导程序还需要完成禁止看门狗部件和禁止中断,并设置各工作模式下的SP指针,然后再通过BL指令来引导应用程序的main函数。
转载请注明原文地址:https://kaotiyun.com/show/ECMZ777K
0

相关试题推荐
最新回复(0)