该密码输入装置所需要的两个主要步骤的详细说明如下:
1. 按键与密码的关联
PC软件先通过图形界面从用户处获悉该用户希望某个按键对应的密码,之后软件会将其转换成HID协议中键盘的字符编码,然后通过USB接口将编码后的密码以及该密码在EEPROM中的存储位置一同发送给密码输入装置,并通知其修改EEPROM的数据。该密码输入装置得到修改的命令以及相关数据后,就会在EEPROM的指定位置储存该密码,完成按键与密码的关联。
例如,用户希望为按键“2”设置密码“123456”。“123456”对应的键盘编码是“1d 1e 1f 20 21 22”,按键“2” 的存储地址被设置为“06”。PC软件会将这些数据以及写EEPROM的命令通过USB接口发送给该密码输入装置。该装置接收到数据后就立即会将“1d 1e 1f 20 21 22”写入EEPROM的地址“06”中,完成按键“2”与密码“123456”的关联。
2. 使用关联密码的按键输入过程
当用户通过按键输入密码时,密码输入装置会从EEPROM存储器中该按键对应地址读取与之关联的密码数据串,然后通过USB接口将该串数据逐次发送给PC。此时密码输入装置对PC表现为标准HID设备(即可看成是一个标准键盘),从USB接口发送来的密码会被系统自动填充至需要输入密码的位置,从而完成密码的输入。
本发明提供的密码输入器上的一个按键或两个键的组合表示一串密码,按下不同的按键或组合键,即可输出不同的密码,最后将密码通过输出接口传给密码接收方。比如通过USB口传给PC机、或带有USB口的自动存取款机、或带有USB口的超市收款机以及带有USB口的任何需要密码的系统。密码的编辑可通过密码编辑系统,在PC机上任意编辑自己所需要的密码(密码可以由大写字符、小写字符、数字和下划线等组成),然后通过USB口将编辑好的密码存储到密码输入器上,也可在密码输入器上编辑简单的数字密码。
3.2 硬件平台选用及资源配置
硬件选用AMTEL AVR大赛提供的EVK1100,EVK1100是一个基于AVR32 AT32UC3A单片机控制器的评估套件和开发系统。它配备一系列丰富的外设、内存。图2所示为开发板与PC机连接的示意图。
--支持AT32UC3A
--JTAG连接器、Nexus、USART、USB2.0接口、TWI接口、SPI
AVR32 AT32UC3A
高性能低功耗AVR32UC,32字节微控制器
——单循环RISC指令,包含DSP指令系统
——读改写指令和独立位控制
——运行速度1.49DMIPS/MHz
——存储保护系统
多层次数据总线
——高性能的数据传输,总线分离提高性能
——有15条存储器直接存取通道,改善外围设备交流速度
内部高速SRAM——64K字节
派生的外置存储器接口——SDRAM/SRAM兼容存储总线
中断控制器——自动运行低延迟中断服务和程序优化
系统功能
——时钟管理包括内部的阻容时钟和一个32KHz振荡器
——两个多功能振荡器和两个锁相环路允许CPU和USB频率分离
——监视时钟,实时时钟
USB
——USB2.0,符合OTG协议
——DMA(存储器直接存取通道)
——片上收发器包含上拉电阻
一个三通道16比特定时器/计数器
四个通用同步异步收发器
——支持SPI,红外,ISO 7816接口
——支持硬件信号交换,RS485接口和调试解调器
两个主从串行接口(SPI)
ATMEL的开发板满足USB的传输协议,而且满足串口的各种协议,可以直接将单片机和CPU进行通信和信息的传递,保障了设计的进行。
3.3系统软件架构