早在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年,为了实现标准统一,CCITT在西联汇款公司的电报编码(Murray编码的基础上增加了空格符号、驱动收报机上的铃铛、“你是谁”的符号)的基础上做出了细微的改动,从而制订了ITA2的编码方案。如图。近代的电传打字电报系统,采用的多为ITA2编码,而它有一个名字——Baudot-Murray编码。
上面说到两个字符集所造成的问题,我想业余无线电爱好者们都会心有体会:对方信号弱时,对方所发的报文会出现时而是英文字母时而是数字或者符号的状况,正是因为太弱的信号容易被解码器错误地判断为字符集的切换符号。与业余无线电不同,其他的无线电业务在使用电报时,电台发射功率非常大,信号总是足够强,以避免误码的情况发生。
这张ITA2的编码表乍一看似乎与博多码的表非常的不一样。实际上,这里的0可以对应博多码的表上的空位,1可以对应黑点。同时ITA2编码引入了两个不同的码序的概念,对于人眼来说无所谓,左右颠倒而已,可以轻易分出,但是对于机器来说,大端和小端是两种完全不同的系统。相信熟悉计算机系统的朋友深有体会。而相关的字符集的修改可以通过对比看出来。
计算机时代的TTY
等到了二十世纪末,随着电脑的出现,在无线电通信领域,人们想出了使用电脑软件生成信号的声音的方法,通过上边带电台的信号声音与真正的电波信号存在的映射关系(上边带话音电台的调谐频率Lo+带宽范围内的电波信号与输入电台的声音信号实际上是一一对应的关系,同时上边带电台抑制了载波信号,因此对于接收端来说,与真正的信号并无显著差异。)使用电脑软件代替机械式或电子式电传打字电报机,他们彻底退出了舞台。如今,众多业余无线电爱好者通过无线电传打字电报(RTTY)模式通联时,电台本身自带编码/解码功能的,爱好者通过各种方式将报文输入到电台中,由电台将报文生成信号声音再发射出去;或直接使用电脑软件生成信号声音,并将电脑声卡接在电台的音频输入接口上,将信号音发射出去。纸带已经不再需要,因此纸带的判读似乎已经成为了失(zhuang)传(bi)的技艺,本人有幸在科创论坛认识了一位拥有此项技艺的版主,十分荣幸!
使用Linux操作系统的朋友,或许不会想到过,曾经有人会使用无线电传打字电报机充当计算机的人机交互界面,通过电台,对远方的电脑进行操作吧?拥有树莓派的朋友,不妨试试看!打造自己的通过有线或者无线链路的电传打字电报系统操作的树莓派系统,可以体验一下百年来无数电传打字电报操作员,以及早期通过电传打字电报系统操作计算机的IT人士的操作!
在这里放出一段纸带,欢迎大家解码,是的,肉眼也可以解码。通过和邮政局的老员工的交流了解到,在他上邮电大学学习电传打字电报的时候,他们需要熟记熟读ITA2编码,可以肉眼看纸带译出电文写出来,人工翻译纸带的速度仅受经验限制。但很多时候,只需要将纸带往打字机里一插,电文内容直接就被打印出来了。
200字以内,仅用于支线交流,主线讨论请采用回复功能。