yuchencan 发表于 2010-4-3 13:23:43

请教关于串口和EEprom数据对比问题

最近做一个项目,(互动门禁)。我的上位机程序是通过指定的格式用串口发送把用户名5字节和密码5字节(如“1234512345”单片机接收到后)写入到EEprom的地址0-9,第二个用户按顺序写到EEpromr地址的10-19,以此往后推。
我用密码读头如(按“12345*12345#”)通过WD信号发送给单片机,单片机也接收到信号“1234512345”,把这个数据和EEprom中的数据对比,如果存在这个用户则开门继电器打开。
问题是如何把WD发过来的信号和之前写在EEprom中的数据进行对比,如果完全正确后,则执行其它命令。用循环吧,则把接收的数据放入10字节的数组中然后一个字节一个字节和EEprom来对比,对比完不对再从头进行下一组EEprom地址对比。如此我要是有成千上万个用户呢?要输入个密码等到几个秒钟再开门吗??
望请专业人员不否赐教,有没有简单快速的方法来判断或加什么硬件的东西。在此先谢过

yuchencan 发表于 2010-4-4 19:25:31

真的没有什么好方法吗?晕倒,联个回话的也没有,太失望了,白打了那么多字。

tick 发表于 2010-4-4 21:12:43

a,每次都排序好,然后查找的时候用2分法,这样对比速度很快很快缺点每次都要大面积移动密码地址,寿命问题突出,可以考虑铁电

b,不排序,可以考虑RAM+电池 单片机全部轮询一周EE 算好算好最差情况 周期 满足你条件就可以

c,用ARM9 提高速度,使用SDRAM 从NANDFLASH每次提取出来及掉电前及时保存,另外可以应用linux系统的 lite-sql来完成对比卡,适合
10万张登记卡的大型门禁

d,补充、、、

tick 发表于 2010-4-4 21:16:43

普通51 12t33M晶振 如果2000张卡的话用铁电比如FM25256 不排序 最差情况对比到最后一张 也不会太慢 几百ms 可以满足门禁刷卡动作

对比的时候从低位开始对比 不匹配马上放弃,进行下一对比

yuchencan 发表于 2010-4-5 21:06:19

回复【3楼】tick
-----------------------------------------------------------------------

谢谢,我用的是AT24C64。也是按你所说的不匹配马上进行下一次对比,速度还可以。不过你所说寿命问题突出,不知什么意思。我只要一次把用户写进去一般就不再写了。只是每天有几十次的查找读出对寿命没太大影响吧?再次感谢你

Ziooo 发表于 2010-4-5 21:36:15

一天几十次。。用EEPROM 应该没问题。。我记得好像可以写10W多次

保险用铁电吧。。也不贵
页: [1]
查看完整版本: 请教关于串口和EEprom数据对比问题