刷卡的时候,RFID芯片在发电报。读卡机根据周边电磁场的强弱变化情况,就可以知道RFID中的芯片在“说”什么了。有了RFID技术,刷卡上车,刷卡进站,刷卡开门这些我们生活中常见的事情才成为可能。想要明白RFID技术的原理和“进化”过程,我们得从摩尔斯电码说起。
摩尔斯电码是用按键的时间长短来传递信息的。按键时间短,称之为点,耳机里就听到“的(di)”的一声,而按键时间长,称之为划,听起来就是“哒”的一声。若干个“的”或者“哒”排列在一起,就代表一个字母。有了字母,你就可以传递人话了。
比如你想说“救命啊(SOS)”,你就可以发“··· — — — ···”。
从表中不难看出,不同字母的编码长度是不一样的。大家找找看,最短的编码是哪个?没错,是E。为什么要把E设计成最短的码呢?因为E出现的概率比较高,用比较短的码来表示出现频度高的字符,可以大大提高信息的传输效率。
人同此心,心同此理,事实上,不论古今中外,人们都是这样做的。比如,《红楼梦》有个版本叫《脂砚斋重评石头记》是手抄本。抄写的人,就把一些出现概率高的字,用笔画较少的字代替。林黛玉的“黛”,用“代”来代替,省了很多笔。寶玉和寶钗的“寶”,也被写成“宝”。
从某种意义上说,文字就是一种编码。我们说的人话,没有办法直接记录到龟壳,兽骨,竹简,石碑,锦帛,纸张上,因此就需要用一个符号系列来记录。或者是记录读音,比如各种拼音文字,或者是直接记录事物或动作,比如汉字。
当电报出现后,连字母这种人话的编码都很难传递,于是就进一步码上加码,用按键的长短来把字母和数字编码。
用摩尔斯电码,我们显然可以发送用拉丁字符拼写的信息。可是,要想通过电报发送中文信息又该怎么办呢?在很长一个时期中,中文是用从0000到9999这样的四位数字编码的。而发电报时,再用摩尔斯电码发送四位一组的数字串。哪四个数字代表哪个汉字,当时是有一个全国通用的编码本的,这套编码通常称为明码。
谍战剧里发电报,想来多半不会用明码,而是收发双方各有一本专门编写的密码本,那里面哪个数字对应哪个汉字与明码的规定是不同的。这样的电报,敌方可能监听记录下来,写出来是一串数字。但如果想翻译出来,就很需要大开脑洞了。
由于用一串数字代表一个汉字,因而不难想象,要把中文翻译成数字电码,其中的劳动量是很大的。因此,当年到邮局发电报,收费是按字数计算的。按照当时的物价,在食堂买一个馒头4分钱,而发电报每个字3分5厘。这就要求电文必须简练清晰,没有废话。
电报早已离开人们的生活走入历史,但那个时期留下的很多概念仍然没有过时。比如通讯安全(密码编制与反破解),数据无损压缩(把E用一个点表示)与有损压缩(用阿拉伯数字代替汉字数字)等,直到现在仍然是我们需要不断解决的问题,同时也经常给我们的科研工作带来启示。
计算机用的串行码有人把摩尔斯电码中的点划说成是计算机二进制中的1和0,其实这是误解。摩尔斯电码之所以可以正确地传递信息,除了点划这两个要素,另一个必不可少的一个要素是没有声音的空白时间段。
这样的编码方法可以确保收发报的人类不至于出错,但在计算机出现后,这样的编码就显得效率太低了。那么计算机里用的编码长得什么样子呢?我们举个简单的例子来说明。
当我们在键盘上按下一个字母键的时候,怎样让计算机主机知道我们按的是那一个字母呢?这是通过串行接口传递的高低电平知道的。如果我们找一个旧式的键盘,把键盘和主机之间的电缆剥开,找到许多线中正确的信号线,就可以从示波器上看到类似下图的波形。
智能卡与数据编码现在,我们的生活中到处都是计算机。为此,我们需要与计算机迅速方便地交换信息。只要我们注意观察,在我们周围有许多用于信息交换的东西。比如,我们可以从钱包里掏出一张信用卡或者银行卡,和孩子一起看看,很多卡上会有一个1厘米见方,切割得像花一样的小方块。
这是一块小型的电路板,上表面粘了镀金铜箔,铜箔被光刻腐蚀成8个接脚。当信用卡插入读卡器中时,读卡器中的接点与这8个接脚联通。电路板背面粘贴了一小块芯片,芯片与这8个接脚通过细金属丝点焊在一起。这些接脚的功能是什么呢?
上面图中标注了第1,2,3与5,6,7接脚的功能,第4与第8脚是为今后可能的拓展预留的。在有很多信用卡上,包括手机上用的SIM卡上,仅仅使用了6个脚,其他两个脚甚至可以不做出来。
在这些脚中,VCC与读卡器电源正极连接,GND则与公共地线连接,卡上的芯片通过这两个脚来供电。芯片接上电以后,内部可能处于混乱状态,因此需要通过RST脚短时间内加一个电平,使得芯片内部各个寄存器复位。芯片复位后,需要知道让它做什么,这就需要从外部送入芯片命令以及其他数据。命令与数据是通过I/O这根线送进去的。
RFID与数据编码前面谈到的接触式芯片卡固然有很多优点,但在一些需要快速完成验证的应用,比如公交地铁的检票系统中,乃至电子门禁中,就不是非常方便了。在这类应用中,人们普遍选用非接触的RFID芯片卡。在有的城市公交或地铁系统中,车票本身就是一张RFID芯片卡,整个卡制作在一张硬纸片上,然后在另一面贴上一层纸保护起来,成本极低。
这样的车票放在水里浸泡一段时间就可以很容易揭开,暴露出完整的RFID的构造。
这种RFID卡中占据空间最大的是用金属薄膜制做的一个线圈,这个线圈是芯片与外界连接的唯一通道。从下面图中,我们可以看清楚线圈右下角的结构。可以看到有一根跳线,将线圈内圈与外边金属连接。最终,线圈的两端与一个芯片连接在一起。
芯片需要有电才能工作,因此怎样向芯片供电是这类技术的头等大事。
对于接触式的芯片卡,人们可以利用一对接点来供电,但对于RFID,则只能通过线圈供电。当RFID接近读卡机时,读卡机首先发出一段时间的射频电磁波。比较常用的频率是13.56 MHz,当然有时也有工作在比较低的频段(120-150 kHz)或者很高频段(433 MHz以上)的情形。变化的电磁场通过线圈产生感生电动势,经过芯片整流,变成芯片可以使用的电能。
芯片根据其内部存储的数据,改变自己的有效载荷,有的时间段显得负载重,有时显得负载轻,这样就实现了对周边电磁场的调制。这个情形,有一点像是RFID芯片在发电报,尽管不是用摩尔斯电码,尽管发报距离仅仅几个厘米,而且发报机的电源还是收报方通过变化的电磁场提供的。读卡机根据周边电磁场的强弱变化情况,就可以知道RFID中的芯片在“说”什么了。
有了RFID技术,刷卡上车,刷卡进站,刷卡开门这些我们生活中常见的事情才成为可能。
摩尔斯电码的确并不神秘,但它的意义还是很大的。摩尔斯电码出现时,人们甚至还没有幻想到计算机这个东西。但是电信号编码这样一个思想,却深刻地影响着计算机技术的发展。实际上,摩尔斯电码本身,是人们迄今使用时间最久的电信号编码方法。所以我们应该感谢谍战剧普及了摩尔斯电码这个名称,因为在我们今后的技术发展中,它还可能会继续带给我们新的启示。