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

admin2021-07-07  37

问题 指纹考勤机(如图所示)通常用于在工作日的上班时间,采集员工指纹信息,以确定该员工是否正常上班。其基本功能要求有:

    a、能够采集指纹信息,并求取指纹特征,然后与事先预存在指纹特征库中的指纹特征比对。
    b、系统中需存储指纹图原始信息和指纹特征信息,这些指纹信息,是预先采集并存储的。每个新员工初来企业工作时,需先采集其指纹图原始信息,并求取指纹特征,然后添加到指纹原始图信息库和指纹特征库中。
    c、在新员工指纹信息采集时,需通过键盘输入其员工ID,然后采集其指纹图信息,采集完成后,按“保存”键可保存指纹图信息。若按“取消”键,则可取消本次采集。
    d、指纹考勤机上需要一个LCD显示屏,便于显示相关的信息。
    e、需要与后台PC机通信,以便把考勤信息传输给后台PC机保存,并可以查询及生成相关统计报表。
    根据上述功能要求的描述,若采用S3C2410芯片为核心来构建该指纹考勤机的硬件平台,请完善下面的叙述(程序)和回答有关的问题。(完善程序或回答问题所需的寄存器格式见题后的附录)。
    (1)在硬件平台构建时,若选用的指纹采集模块的图像芯片分辨率设置为256×360,一幅灰度等级为256的指纹图需要存储单元__________【81】KB(注:1024B=1KB)。若指纹图信息库中需要存储100幅员工指纹原始图像信息,那么,在设计存储器系统时,至少需要设计容量为__________【82】MB的存储单元来存储指纹原始图信息。(保留2位小数)
    (2)若在设计指纹采集模块的接口电路时,选用GPE端口的GPE15和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 INTSU*)0x56000054)
    #define KEYINPUT    (*(volatile INTSU*)0x56000054)
    INT16U ScanKey()
    {
     INT16U key=0xFFFF;
     INT8U i;
     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)
    {
     outputI=0xFF;
     output&=(~i);
     KEYOUTPUT=output;
     temp=KEYINPUT;
     if((temp&OxF0)!=__________【88】)
     {
       key=(~i);
     key<<=8;
       key|=((temp&0xF0)|0xOF);
       return(key);
      }
    }
    return 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
    rUMCONl=0x0;
    rULCON1=(5<<__________【94】)|(0<<__________【95】)|(3);  //设置线路控制寄存器:偶校验,1位停止位,8位数据位
    rUCON1=0x245;  //设置控制寄存器
    ruBRlDIV2=((int)(PCLX/(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】“保存”【91】0xFFFF (4)【92】0xAAAAAAAA (5)【93】0x00000A00(或0xA00)【94】3【95】2【96】16 (6)【97】4【98】中断(中断部件)【99】SP(堆栈)【100】main()(main,主)

解析 S3C2410是基于ARM9内核的典型ARM芯片,采用ARM920T核,属于中高档32位嵌入式微处理器。本题主要考查基于S3C2410的嵌入式系统开发。涉及到的知识点包括数字图像处理、GPIO接口、串行异步通信接口UART等I/O口的典型应用以及相关应用的驱动程序设计,还有中断机制等等。
(1)灰度等级为256表明其像素深度是8,图像数据量=图像水平分辨率×图像垂直分辨率×像素深度/8,即256×360×8/8=92160B/1024=90KB;存储100幅图像所需容量:90KB×100/1024=8.79MB。
(2)GPE15和GPE14的第三功能分别为SDA和SCL,对照E口控制寄存器GPECON,相应引脚的赋值应为10,即1010;而GPE7~GPE0作为输入口赋值应为00,其余置11;故为0xA0000000和0xFFFF0000。
(3)题中选用矩阵键盘接口,采用中断方式读取键盘值。参考F口的控制寄存器GPF-CON,将端口作为输出口则将相应端口值置为01,作为输入口则置为00,其余口置1;对矩阵键盘采用循环扫描法读取键盘按键情况,需要循环8次;无键按下,则全1,有键按下,则相应置0。循环结构中i<=8;当没有按键被按下,输出为0xFFFF,有相应的键被按下时,结合行列值便可判断。
(4)LCD显示屏自身不带控制器,没有驱动电路;本系统中主要利用GPIO口设计驱动电路来进行控制,主要利用GPC和GPD端口。初始化数值可根据端口D的控制寄存器GPD-CON来确定,所有端口置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/xy0Z777K
0

最新回复(0)