首页 > 范文大全 > 正文

PS/2接口保密性研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇PS/2接口保密性研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】:文章详细介绍了ps/2接口的工作原理。提出了基于PS/2接口作为单片机输人设备的方法。该方案占用系统资源少,软硬件通用性强,简单可靠,保密性好。可满足很多实际应用的需要。

【关键词】:PS/2接口;单片机;输人设备;通讯协议

中图分类号:TP368 文献标识码:A文章编号:1997-0668(2008)0210074-03

1. 引言

在一些重要机构大量使用密码小键盘,由于键盘上数字的排列是固定的,所以输入的密码很容易被按照按键的位置和拾取指纹等方法盗取。在对信息安全要求比较高的场所(比如银行系统的一些智能设备),有时需要输入一些敏感的数字或字母资料,有十多个按键的常规输人设备由于很容易被别人看到操作者按按键的位置及顺序从而使得数据失密。PS/2接口是被现代个人微机广泛采用的外部定点输人设备,它易于操作而且价格低廉,如果能够利用PS/2的标准接口特性,在单片机应用系统中设计一个PS/2接口作为系统的输人设备,不仅占用系统的资源少、成本低而且操作简单,同时具有保密性好的优点。文章将结合具体应用实例来说明PS/2接口的工作原理及具体防偷窥密码键盘的设计两种方法。

2. PS/2设备接口的工作原理

2.1 PS/2的物理接口

PS/2的物理接口为6针插头/插座(6-pinMin-i-DIN ),它有4个信号线引脚,其中+5 Vcc,GND分别连接主机的电源线和地线;Data, Clock引脚分别为数据线和时钟线。

2.2 PS/2通信协议

PS/2设备与主机接口遵循双向异步串行通讯协议。PS/ 2设备在时钟信号的作用下串行发送或者接收数据.信号的下降沿被读取,从主机发向PS/2设备的数据是在时钟信号的上升沿被读取.时钟信号总是由PS/ 2设备产生,主机向PS/2设备发送数据时,首先发送起始位来通知PS/2设备要开始产生时钟信号.时钟频率一般情况下在10 ~ 20 kHz之间,最大可达到33 kHz.

1) PS/2设备向主机通信

主机对总线有控制权,它可通过将Clock线置低电平来禁止PS/2设备与主机的通信,同时将总线初始化.当PS/2设备要向主机发送信息时,必须先检查Clock线是否为高电平,如果不是高电平则说明主机禁止PS/2设备向它发送数据.这时,PS/2设备要一直等到Clock信号线变为高电平,才能向主机发送数据.PS/2设备向主机发送数据时主机读取数据的时序如图2所示.

2) 主机向PS/2设备通信

当主机向PS/2发送数据时,因为时钟信号总是由PS/2设备产生,所以主机要向PS/2设备发送数据,必须先将时钟线和数据线设为请求发送状态:

(a) 拉低时钟线至少100 }s来禁止PS/2设备通信。

(b) 拉低数据线使之处于请求发送状态。

PS/2设备应至少每隔10 ms检查是否进人主机请求发送状态.若处于这一状态,PS/2设备开始产生Clock信号,主机在时钟线为低时改变数据,放到数据线上的数据在时钟脉冲的上升沿被PS/2设备读取.当停止位被发送后,PS/2设备在下一个时钟周期拉低数据线来表示接收完字节的应答信号.如果主机一直没有释放数据线,PS/2设备则持续产生时钟信号直到主机释放数据线.主机可以在任何时刻通过拉低时钟线至少100acs来中断发送数据。主机发送数据给PS/2设备的时序如图3所示。

3. 技术方案

3.1 随机数字键盘

本方案仍然采用传统键盘,只是键盘上的数字键0~9不像普通键盘一样位置固定,而是随机产生,即在系统中预先自定义多组0~9数字的不同排列顺序在显示缓存器中,也即是随机数。之后使这十个数显示在原来按键上的数码管上。当用户按下任一按键,该随机数通过按键送入上位机并显示输出。由于按键与显示缓存器一一对应,当按下按键时将与之对应的显示缓存器的内容送入P/S2端口输出。该方案可以很好的解决键码固定带来的不利,有利于用户的密码保护。

电路总体设计如下:

74LS47为3线-8线译码器,用于控制LED数码管的段选显示;

74LS04为数码管的片选信号;

10个LED数码显示管显示0~9共10个数字,采用共阳极动态显示方案用于节省控制器的端口。

行列式键盘采用非编码式键盘,用软件产生键码,,使其结构简单,成本低廉。

系统采用89C51单片机作为控制器。其接口设置如下:

P0.0~P0.3送74LS47用作数码管的段选信号;

P0.6~P0.7和P2共10个端口分别送到74LS04作LED数码管的段选信号;

P1口的P1.0~P1.3和P1.4~P1.8分别用作行列式键盘的行线和列线。

系统采用P0.4和P0.5口与上位机的PS/2接口通讯,P0.4和P0.5分别接PS/2口的数据线Data和时钟线 Clock。

3.2 基于鼠标的密码键盘

本方案以鼠标做为输入设备。

PS/2鼠标支持的输人信息有:X,Y方向滚球的移动、左右按键、中间按键和滚轮键(此键为滚轮键、中间按键两种功能的复用键)。它可以向主机发送鼠标移动和按键等数据信息。主机处理这些数据信息是根据鼠标的工作方式来确定的。

单片机系统中的电源是通过PS/2接口从PC机直接获取。鼠标的滚轮键每向外(远离操作者方向)或向内(靠近操作者方向)转动1格(鼠标内的机械滚轮会发出轻微的声响)表示要准备输人的数字增1个或减1个单位,用一位数码管显示滚轮键转动时数字的变化。数码管上面显示的数字随着滚轮键的转动而不停地从0到9循环变化,当接近用户要输人的数字时,可放慢速度直到数码管上显示用户希望的数字。此时,用户可按下滚轮键(中间按键)以确认该位数字有效,单片机将数码管上面显示的数字经处理后存放到发送缓冲区里,同时将左边第1位发光二极管点亮,表示第一位数字被输入并处理完毕,接着按此过程继续转动滚轮键输人后5位数字信息。发光二极管依次从左到右点亮,当6个发光二极管全部点亮时表示6位数字全部输人完毕。按下鼠标左键(确认键)用于将输人的6位数字信息作为一次密码数据按照PS/2键盘与PC机接口的通讯协议发送给PC机;如果用户在输人过程中想修改已经输人的密码,可随时按下鼠标右键(取消键),表示这一次密码信息无效,单片机将发送缓冲区清空,6个发光二极管全灭,同时数码管上面显示"0",等待用户重新输人数据。

为了保证上述输人过程的安全保密,在结构设计时,应将数码管放在比较隐秘的地方。比如我们设计将它放在大拇指和食指交叉的虎口处,并且只有从数码管的正上方很小的范围内才可以观察到数码管上面显示的数字,这样就只有用户自己从数码管上方才能看到数字,而旁观者无法从其它方向看到或猜到用户所输人的密码。

为了使微机的PS/2键盘、单片机都能和PC机的PS/2键盘接口进行正常的数据通信,用一个电子开关进行切换。平时PC机与标准键盘相接,只有当需要输入密码时才将单片机与PC机的PS/2键盘接口接通。单片机与PC机以PS/2键盘接口协议进行通信,这样可省去单片机模拟PS/2键盘接受PC机对键盘的初始化编程,降低了编程的难度,同时提高了系统的兼容性。

4. 结束语

文章结合实例讲述了PS/2接口作为单片机输入设备的具体实现方法。此种方案具有节省端口、保密性好、用户操作方便、可直接从微机获取电源、体积小等优点,很容易在其它应用领域中使用。尤其在现行的银行、ATM柜员机等密码输入终端很有应用前景。

参考文献

[1] 何立民. 单片机应用系统设计[M]. 北京:北京航空航天大学出版社,1990.

[2] 王幸之, 王雷, 翟成. 单片机应用系统抗干扰技术[M]. 北京:北京航空航天大学出版社,2000.