早在1870年,一位名叫Jean-Maurice-émile Baudot的法国人为了能够通过打字机收发电报而设计了一套编码系统,并以自己姓氏命名为博多编码。在那个时代,电报主要靠人拍发莫尔斯码,人用耳朵收听并写下报文。
说起电报,许多人会想起影片中使用莫尔斯码发报的样子。然而人类将电报投入大规模使用之后,很快的就发现,使用人耳收听人脑解码这样的人抄报的不等长电码容易出错,培训难度也大,于是有了“机器发报,机器收报,完全自动”的诉求。而本文将讲述人类大规模使用的第一个广为使用的等长电报编码——博多码(Baudot code)以及它的为机器收报而设计的后续改进型。博多码给人类带来了现在的电通信技术的码率计量单位波特(Baud),它的后续改进型是世界上使用最广泛的电传打字系统(TTY)的编码。相信对计算机系统有所了解的朋友对Baud、TTY等词都有所耳闻。
如今电报已经淡出了普通老百姓的视野,不再成为普通人之间主要的通信方式,而由通过互联网传输的各种文字编码所替代。但众多的业余无线电爱好者、各国政府机关部门仍然在使用,而往往它的许多用户,对它们本身,哪怕是名字都毫无了解。
编码和自动系统
博多码,是一种5位代表一个字节的编码。为什么是5位呢?在那个年代,5位的系统已经非常复杂,位数更多不切合实际,但稍加分析便可知道,5位是不可能唯一代表26个英文字母+数字+各种符号的,而博多码并不是一个像今天电脑所使用的,一个8位特定的二进制数字专门地、唯一地表示一个字符的编码系统,博多使用了同一组编码分别表示字母集和数字标点符号集,通过两个字符实现在字符集之间的切换。因此,当报文中同时包含了英文字母和数字和符号的时候,必须加入切换字符来表示在不同的集之间的切换。博多式电报机是这样的一个样子:发报收报端各一台看上去是钢琴一般的只有5个按键的机器,按键从左到右按字母顺序排列,通过电路两两相连,两边按下键盘时,对方的纸带上会打印出相对应按键的黑点,当需要打符号的时候,只需要按照编码表上表示切换到符号集(Figures)所代表编码按下对应的按键,此后输出的都会被收报员人工判读为符号或者数字,当需要恢复到输入字母时,按下编码表上表示字母集(Letters)的按键,此后的内容都会被判读为字母。
博多的电报机的照片如今比较少了,这里是一张它的素描图:
博多码的字符集和对应编码如下图:
可以看出,博多码分为“英国和欧洲大陆版”。分别将第一二三四五位对应的有和无来表示相应两个字符集的内容。实际上许许多多不同的公司、机构、组织在架设自己的电报系统的时候会根据自己的需要,对字符集进行稍微的改动。但是这样的系统很明显操作起来非常麻烦,犹如弹钢琴一般,很多时候需要多个按键一起按来代表某个字母或者符号或者数字。
1930年后,博多码被国际电信联盟电信标准化部门的前身——国际电报电话咨询委员会(CCITT)将博多码制订为国际电报字母第一号标准(ITA1)编码,如今已经无人使用。
进入二十世纪后,一位叫Donald Murray的新西兰人(一说为美国人)因博多电报机使用很成问题,而且并不是自动化的系统。于是他的设计将报文输入和打印与电报的收发一分为二,增加了一个步骤,报文输入和打印变成了如今的老式打字机一般,但多了一个纸带打孔机,发报方用力敲下键盘后,不仅仅在纸上直接印出字,而且会在一旁的走纸带的口吐出一长条打了孔的纸带,而实际上,发报仅仅需要纸带,纸张上的字只是用于校对。发报方将纸带插入电报机,收报方就会以特定的速度将相同内容的纸带打孔生成。速度是双方协商设置的,这里稍后再提。当需要重发时,只需要将纸带再一插,便可原文重发,不用操作员再次在键盘上按一遍。收报方得到纸带后,可使用人工或机器进行译码,手写或者打印在纸上,至此电报的收发完成。由于这个设计本身将一切译码工作交给机器,因此并没有预料到会造成问题。
Murray系统的编码也与博多码有所不同,更常用的字母和符号的孔洞数最小化,以极力减少机器的磨损程度。同时还增加了换行、重置到行首、退格、空白等特殊符号。
可见Murray的系统需要发大量的电报的时候,只需要将不同的电报的纸带粘贴连接在一起,就可以一次性以机器设置的速度发送,机器的发送/打字速度可以比人工敲键盘的速度快得多,因此,想象一下一个大城市的电报局,各种用户排着队在多个窗口不停地付钱要发电报,假如一个窗口放一台博多式电报机,每台电报机都要和各种地方的分局发报的话,这线路建设得有多复杂。因此,变成一群人把要发的电报分别在自己的纸带打孔机上打成纸带,再同一收报局的纸带连在一起,一次性发出,效率会快很多。至此,“机器发报,机器收报,完全自动”的诉求终于得到满足。
二十世纪初至计算机时代到来,人们使用的电传打字电报系统往往采用的是基于Murray的系统。之所以说是基于Murray的系统,是因为到了1930年,