EDN China > 其它文章 > 消费电子设计 > 便携设备 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

使用CapSense芯片实现的手写输入密码方案

肖学军?? Cypress公司PSoC方案解决中心高级应用工程师?? 刘华?? 贾朝辉?? Cypress公司中国设计中心主任工程师?? 2007年02月01日 ?? 收藏0

  用银行卡输入密码时,一般采用键盘输入,可是这种方法不够安全。如果使用手写输入,由于所有的数字都是在同一个区域书写,可以更好地保护密码的安全。一种很有新意的手写输入密码实现方案仅需一片Cypress公司CY8C20434 CapSense芯片、一块廉价的X-Y Key Matrix和通用的银行卡读卡器。

  用户把手伸入一个固定在读卡器上的黑匣子,在X-Y Key Matrix上手写输入密码数字,每输入一个数字将点亮一个指示灯,密码输入完成后,按下外部的确认键就完成了整个输入过程;CapSense芯片将触发读卡器的一个中断,并通过I2C总线将加密过的数字点阵数据传送给读卡器(该系统电路见图1)。

图1,使用CY8C20434芯片和X-Y Key Matrix实现手写密码输入的系统连接图。


  选用CY8C20434芯片的原因是它不同于其它芯片需要对数字模块和模拟模块进行分别配置,CY8C20434只保留了CSA,I2C/SPI,TIMER和比较器等模块,使应用更加简化,更专注于CapSense应用。

  CY8C20434 CapSense芯片的I/O引脚和X-Y Key Matrix相连,其中I/O引脚分为两部分,分别代表X-Y Key Matrix的X坐标和Y坐标。在

CY8C20434芯片工作前需要用PSoC Designer 4.3开发环境设置CSA模块的参数,例如手指触摸的触发门限、噪声门限、充电电流等,还需要设置分辨率[该设计可以实现100×100的相对分辨率,例如对于X坐标分配了7个I/O端口(Sensor)(见图1),当手指正好接触在第3个与第4个Sensor之间,那么实际位置应该为3.5,会将它乘上一个系数(分辨率/端口数)得到50]。

  当CY8C20434开始工作后,它一直对其I/O引脚(具有电容值)进行充、放电。具体地,当电容值<1.3V时,CY8C20434芯片的比较器模块输出0,CSA模块对充电时间进行计数;当电容值≥1.3V时,比较器输出1,CSA模块停止计数。

  当没有手指接触到X-Y Key Matrix表面时,计数值是一个固定的数值。当有手指接触时,CY8C20434芯片对应X、Y坐标的I/O引脚的电容量将增大,结果使计数值增大。CY8C20434芯片通过加权平均,计算出对应最大计数值的引脚号,从而可以得到用户手写输入数字的(X, Y)坐标序列。

  CY8C20434芯片对每一个(X,Y)坐标进行加密并传送给银行卡读卡器,由银行卡读卡器解密,得到对应一个手写数字的(X, Y)坐标序列之后,银行卡读卡器将该序列识别出一个数字(0~9)。

  为了使信息更加安全,读卡器还能不定期地改变加密算法和密钥。读卡器中有一个预定数的定时器,每当达到预订数时就同时将读卡器和CY8C20434芯片切换到另一个加密算法和密钥。上述设计思想在其它领域也可以运用,例如手写输入的发票机和税卡机。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

CapSense? 手写输入? 密码?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈