某食堂的售饭系统由一个后台数据库系统及若干个前台刷卡机组成,其基本功能具体描述如下: a、刷卡机的硬件组成中,除了必须的最小硬件系统外,还需要IC卡读写模块、8段LED组成的显示模块、键盘模块、蜂鸣器模块、RS一485通信模块等。 b、客户需要事先办理本系

admin2019-03-27  38

问题 某食堂的售饭系统由一个后台数据库系统及若干个前台刷卡机组成,其基本功能具体描述如下:
a、刷卡机的硬件组成中,除了必须的最小硬件系统外,还需要IC卡读写模块、8段LED组成的显示模块、键盘模块、蜂鸣器模块、RS一485通信模块等。
b、客户需要事先办理本系统的消费IC卡,预存若干金额,办卡信息及预存金额存储在后台数据库系统中。
c、客户消费时,用IC卡在刷卡机上支付。支付时,由售饭员在刷卡机上输入客户缴费金额且在LED显示器上显示,然后客户刷卡,若IC卡合法,则把缴费金额和IC卡信息传输给后台数据库系统。若IC卡不合法,用蜂鸣器发不合法提示音。
d、后台数据库系统接收到刷卡机的信息后,将根据IC卡号查询出该卡的余额,若余额大于等于应缴费额,则进行扣费,再把当前余额及扣费正确信息回传给刷卡机。若余额小于应缴费额,则回传扣费不正确信息给刷卡机。
e、刷卡机接收到回传的信息后,显示回传的余额,且若是扣费正确信息,则用蜂鸣器发“扣费正确”提示音;若是扣费不正确信息,则用蜂鸣器发“扣费不正确”提示音。
根据上述功能要求的描述,若采用S3C2410芯片为核心来构建刷卡机的硬件平台,请完善下面的叙述(程序)和回答有关的问题。
(1)在设计硬件时,最小的硬件系统是保证系统能正常工作的必要硬件组成。它包括电源电路、【81】、复位电路、调试测试接口以及【82】
(2)若在硬件设计时,选用8个共阴极的8段LED(其排列如图1所示)组成2组显示器(1组4个8段LED,用于显示当前消费金额和余额。若采用
GPC0~GPC6、GPC7外接同向驱动后,分别连接到显示“消费金额”的LED显示器段信号线a~f、dp上,采用GPD0~GPD3外接同向驱动后分别控制该组显示器中低数据位~高数据位的4个8段LED位信号线。

另外采用GPC8~GPC14、GPC15外接同向驱动后,分别连接到显示“余额”的LED显示器段信号线a~f、dp上,采用GPD4~GPD7外接同向驱动后分别控制该组显示器中低数据位~高数据位的4个8段LED位信号线。
那么,GPC0~GPC15引脚的功能为:【83】,GPD0~GPD7引脚的功能为:【84】。初始化GPC0~GPC15引脚功能的语句可以是:
//rGPCCON是端口C的控制寄存器,其格式见后面附录
rGPCCON=【85】
初始化GPD0~GPD7引脚功能的语句可以是
//rGPDCON是端口D的控制寄存器,其格式见后面附录
rGPDCON=((rGPDCON|0x00005555)& 【86】);
若只在“余额”LED显示器中的次高数据位LED上显示字符“3”,相关驱动程序中可用下面语句实现。
rGPCDAT=【87】;//输出“3”的段信号
rGPDDAT=【88】;//输出次高数据位被点亮的控制信号
(3)刷卡机上输入客户缴费金额的键盘,在设计时采用非标准键盘组成,键盘接口设计成4×4的阵列(其按键排列示意图如图2所示)。键盘接口电路中选用GPE0~GPE3来输出键盘行扫描信号,选用GPE4~GPE7来输入键盘列信号。软件设计时设计者自行设计了键盘扫描函数,请你补充完善之:

//*KEYOUTPUT是键盘扫描时的输出地址,KEYINPUT是键盘读入时的地址
#define KEYOUTPUT(*(volatile INT8U *)0x56000044)
#define KEYINPUT(*(volatile INT8U *)0x56000044)
INT16U ScanKey()
{
INT16U key=0xFFFF;
INT16U i;
INT8U temp=0xFF,output;
//rGPECON是端口E的控制寄存器,其格式见后面附录
rGPECON=((rGPECON&0xFFFFFF00)|【89】);//初始化GPE0~GPE3为输出
rGPECON=rGPECON&【90】;//初始化GPE4~GPE7为输入
//下面判断键盘中是否有键按下
for(i=1;((i<=8)&&(i>0));【91】)
{
output |=0xFF;
output &=(~i);
KEYOUTPUT=output;
temp=KEYINPUT;
if((temp&0xF0)!= 【92】//判断列信号是否为全“1”
{
key=(~i);
key<<=8:
key|=((temp&0xF0)|0x0F);//求得按键的返回值
return(key);//函数返回按键对应的值
}
}
return 0xFFFF;
}
应用程序中可根据上面的键盘扫描函数的返回值,来判断是否有按键按下,并确定是哪个按键按下。例如:若返回值为:【93】时,可知是键盘中的“6”键按下,若返回值为:【94】时,可知是键盘中的“确认”键被按下。若无键按下时,返回值应为:【95】
(4)刷卡机与后台数据库系统通信采用RS一485总线。因此在硬件设计时,需要采用S3C2410 芯片内部的【96】部件外加电平转换芯片等来实现。若在软件设计时,其初始化程序中波特率设置为9600bps,数据格式设置为:8位数据位、无校验、1位停止位。那么,1秒时间内最多能传输【97】字节的信息。
(5)刷卡机上的应用软件是在无操作系统环境下开发的。设计者可以自行设计系统的启动引导程序,在该程序中完成异常向量设置、堆栈指针设置以及必要的硬件初始化。ARM9体系结构中规定的复位异常所对应的异常向量地址为【98】。系统上电/复位后,将从该地址处开始执行程序,因为ARM9体系结构中规定的各异常向量地址之间间隔通常为【99】个字节。因此,复位异常向量地址处通常存储一条【100】指令的代码。
说明:下面是试题解答时需要用到的寄存器格式及相关说明。
1)端口C的控制寄存器(GPCCON)

2)端口D的控制寄存器(GPDCON)

3)端口E的控制寄存器(GPECON)
[img][/img]

选项

答案(1)【81】时钟电路【82】存储器 (2)【83】输出【84】输出【85】0x55555555【86】0xFFFF5555【87】0x4F00【88】0xFFBF (3)【89】0x00000055【90】0xFFFF00FF【91】i<<=1【92】0xF0【93】0xFDBF【94】0xFE7F【95】0xFFFF【96】UART【97】960 (4)【98】0x00000000【99】4【100】分支

解析 本题主要考查基于S3C2410的食堂售饭系统开发。由嵌入式最小硬件系统构成;GPIO引脚功能及相应初始化设置:GPC和GPD作为LED显示器接口引脚,GPE作为输入输出,还可作为I2C、I2S、SD卡等串行总线的引脚(在题中用来接非标准键盘);基于UART的RS一485接口通信设置;无操作系统的嵌入式系统如何构建其启动引导程序。
(1)硬件最小系统包括电源电路、时钟电路、复位电路、调试测试接口、以及存储器。
(2) GPC0~GPCI5引脚为LED段选输出,空【83】为输出;GPD0~GPD7引脚为LED位选输出,空【84】为输出;00为输入,01为输出,则初始化GPC0~GPC15引脚功能为输出的语句是:rGPCCON=0x55555555,空【85】为0x55555555;初始化GPD0~GPD7引脚功能为输出的语句是:rGPDCON=((rGPDCON |0x00005555)&0xFFFF5555),空【86】为0xFFFF5555;输出“3”的段信号,即段e、f和dp为0。此时rGPCDAT=0x4F00,空【87】为0x4F00;输出次高数据位被点亮的控制信号,即次高位为0。此时rGPDDAT=0xFFBF,空【88】为0xFFBF。
(3)初始化GPE0~GPE3为输出的语句是:rGPECON=((rGPECON&OxFFFFFF00)|0x00000055),空【89】为0x00000055;初始化GPE4~GPE7为输入的语句是:rGPECON=rGPECON&0xFFFF00FF,空【90】为0xFFFF00FF;i<<=1;i初始为1,每次左移一位,正好对应于GPE0~GPE3,空【91】为i<<=1;判断列信号是否为全“1”,即(temp&0xF0)!=0xF0时说明列信号不全为1,否则全为1,空【92】为0xF0;无键按下时为1,有键按下时为0。键盘中的“6”键按下时返回1111 1101 1011 1111,即0xFDBF,空【93】为0xFDBF;键盘中的“确认”键被按下时返回1111 1110 0111 1111,即0xFE7F,空【94】为0xFE7F;无键按下是,返回值为0xFFFF,空【95】为0xFFFF;S3C2410芯片内部串行异步通信接口外加电平转换芯片可采用RS一485总线进行通信,空【96】为UART;始化程序中波特率设置为9600bps,数据格式设置为:8位数据位、无校验、1位停止位。那么,1秒时间内最多能传输9600/(8+2)=960字节的信息。
(4) ARM9体系结构中规定的复位异常所对应的异常向量地址为0x00000000;ARM9体系结构中规定的各异常向量地址之间间隔通常为4个字节;复位异常向量地址处通常存储一条分支指令的代码。
转载请注明原文地址:https://kaotiyun.com/show/ylMZ777K
0

最新回复(0)