液罐车厂家
免费服务热线

Free service

hotline

010-00000000
液罐车厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

低成本串口扩展方案在银行柜台密码键盘设备中应用

发布时间:2020-06-30 19:59:41 阅读: 来源:液罐车厂家

2004年5月A版

摘 要:本文介绍了应用GM8123实现银行柜台密码键盘设备中的扩展多串口的方案。

关键词:GM8123;多串口扩展

引言

在银行柜台取款用的密码键盘设备的开发中,为了和标准键盘、加密芯片和上位机这三部分模块的接口通讯,就需要MCU具备三个标准的UART串口来和上述三个模块的UART串口连接。而且通常各模块的UART的波特率各不相同,设计也需要灵活的适应需求。

MCU在整个设备里面的扮演的主从方会根据操作的阶段发生变化。当设备处于等待模式时,上位机是主方,而MCU是从方。MCU通过一个串口接收到主方的命令后再通过第二个串口启动标准键盘,并控制相应的声光提示,然后等待标准键盘返回的按键数据(用户密码的明文),同时做相应的超时处理。接收到按键数据后进行一些基本的合理性判断处理,然后通过另一个串口将密码明文发送给加解密模块,然后接收加密后的密码密文。最后再通过和上位机连接的串口将密码密文上传,然后恢复到等待状态。在对标准键盘和加解密模块进行操作的时候,MCU扮演了通讯的主方。在整个流程中,可以看作是个半双工的通讯方式,让操作和控制更简单和更可靠。

现有方案

满足上述应用要求的方案有多种设计方式,各不相同,包括成本、可靠性、指标都存在差异。根据目前的串口器件及设计原理归纳起来有以下几种设计方案。

方案一是使用多串口的单片机。其中双串口的单片机的价格在40~70元左右,三串口的单片机价格更加昂贵,直接增加了系统设计的成本。同时,由于各单片机的指令不同,以及由于串口功能的扩展带来的陌生寄存器的使用都增加了设计人员的工作量和难度。

方案二是使用普通的单片机扩展16C55X这种通过并口扩展串口的IC器件来实现。这类器件的优点是串口速度高,响应迅速。但缺点也是器件本身成本高,使用复杂,占用单片机的IO资源多,导致某些设计需控制外部声光功能时还需要外扩8255来扩展并口资源,无形中又增加了PCB板面积、成本和设计难度。

方案三是软件模拟串口功能。其优点是成本低,但可靠性和串口指标都无法控制。硬件串口工作中对每一个BIT的采样是12次,而软件模拟最多只能做到2次,大多只有1次,所以通讯的可靠性很难保证。同时软件模拟的串口很难达到较高的波特率,所以限制了通讯的应用。而且软件编写的难度高,程序工作量大,对研发人员的要求高,也局限了这种方案的推广应用。

其它方案还包括使用两到三个普通单片机来达到需要的串口数量,然后相互之间通过自定义的并口或模拟的同步串口通讯协议来实现通讯等方案。

低成本应用灵活的新方案

通过以上方案可以看出,现有的实现方案很难在成本和指标上两全齐美。成都国腾微电子有限公司推出的一种全新方式的串口扩展芯片GM812X系列产品为上述设计带来了一种新的、低成本和应用简单的串口扩展方案。

GM812X系列串口扩展芯片可为用户提供最简单和高性能的串口扩展方案,将一个标准串口扩展成3或5个标准串口。该系列芯片子串口最高波特率达38.4Kbps。该芯片提供两种工作模式:单通道工作模式和多通道工作模式,即可以指定一个子串口和母串口以相同的波特率单一的工作,也可以让所有子串口在母串口波特率基础上分频同时工作。用户可根据需要灵活选择。该芯片母串口和子串口的工作波特率可由软件调节,而不需要修改外部电路和晶振频率。UART数据格式10位或11位可选。

GM8123可以将一个标准串口扩展成3个标准串口,GM8125可扩展5个标准串口。本文选择GM8123作为串口扩展的IC。图1为GM8123的功能框图。

在本设计中,GM8123即可满足设计的需要。例如单片机采用最常用和便宜的AT89C52,将GM8123的母串口和单片机的串口相连接,再将标准键盘接口、加解密模块的串口和上位机的串口分别连接到GM8123的三个扩展串口上。图2为方案的系统设计框图。

假设上位机和加解密模块的通讯波特率为9600bps,标准键盘的通讯波特率为1200bps。图3为简单的单片机程序设计中与通讯相关的状态机流程图。

该芯片的操作和编程应用都很简单,从图3可以看出对GM8123的操作主要是通讯母串口的更改和波特率的设定,而且操作方式和编程基本相同。由于GM8123工作在单通道模式下,可以看作对母串口和子串口之间进行透明传输处理,所以无须对GM8123进行波特率的设置。

以下是在等待状态下转变到接收标准键盘按键数据的过程中指定子串口端口和从9600bps修改到1200bps的C51程序的部分示例代码:

//GM8123地址控制线声明

sbit SRADD0 = P3^4; // GM8123地址线SRADD0控制

sbit SRADD1 = P3^5; // GM8123地址线SRADD1控制

sbit STADD0 = P3^6; // GM8123地址线STADD0控制

sbit STADD1 = P3^7; // GM8123地址线STADD1控制

void main(void)

{

............

//初始化设置

SCON = 0xC0; //根据需要设置

TH1 = 0xFD; //装入定时器1初值,设置MCU

工作波特率为9600bps

TL1 = 0xFD;

PCON = 0x00;

TR1 = 1; //启动定时器1

............

//设置子串口三和上位机通讯

STADD0 = 1; //选择子串口3发送

STADD1 = 1;

SRADD0 = 1; //选择子串口3接收

SRADD1 = 1;

............ //接收上位机数据的相关处理

//切换到和串口一和标准键盘通讯

TR1 = 0;

TH1 = 0xE8; //装入定时器1初值,设置MCU

工作波特率为1200bps

TL1 = 0xE8;

PCON = 0x00;

TR1 = 1;

STADD0 = 1; //选择子串口1发送

STADD1 = 0;

SRADD0 = 1; //选择子串口3发送

SRADD1 = 0;

............ //键盘控制和按键

}

结语

从上述内容可以看出,通过GM8123实现3个串口的应用非常简单和灵活,程序工作量少,控制容易。并且以上设计只应用到了GM8123的单通道模式,尚未发挥出该芯片的所有功能和灵活性。芯片的外部控制少,应用灵活,编程使用简单,适合于大多数需要多串口扩展的应用场合。比如:

但是应用该芯片需要注意的是GM812X系列接口IC在多通道模式下不能将各个子串口的波特率设定的不同,不能满足多串口同时进行不同波特率数据通信的应用设计。另外,GM812X系列现有的IC型号不能满足手持设备的低功耗要求,以及有38.4Kbps的最高波特率限制。■

山西订做职业装

青岛订做防静电工作服

莱芜西装定做

济南定做西装