原创 Ken Shirriff 芯片之家
80 年代航天飞机打印机内部电路
航天飞机上一般都需要配备一台大型打印机,宇航员可以接收程序
、计划任务
、打印一些报告
以及处理其它文件。下面这台打印机是1981年首次航天飞机发射所携带的,仅用7个月就设计完成了,以陆军通信终端为基础。跟现代打印机不同,航天飞机的打印机包含一个带有凸起字符的旋转金属鼓
,可以快速的打印一行字符。
这台打印机原本是作为权宜之计而设计的,在更好的打印机投入使用之前,它只能运行几次飞行。然而,事实证明,这台电传打字机比它的替代品更可靠,因此它作为备用打印机继续使用超过了 50 次飞行。
航天飞机临时电传打字机的历史
电传打字机的发明可以追溯到阿波罗计划。在阿波罗任务期间,向宇航员发送信息的唯一方式是通过无线电与他们交谈并让宇航员写下数据。NASA 决定航天飞机应该配备一种向宇航员发送文本和图像的机器,即一台重 78 磅的高科技传真机,称为上行文本和图形系统(TAGS),高分辨率灰度图像以数字数据流的形式发送到航天飞机。在航天飞机上,矮矮的 CRT 一次一行地显示图像,光纤面板将每一行转移到感光银乳剂纸上。将纸张放在 260ºF 的热辊上 25 秒,即可显影,从而形成永久图像。
该计划的一个缺陷是,将数字图像发送到航天飞机需要跟踪和数据中继卫星系统 (TDRS)
,但由于延误,该系统直到第六次航天飞机飞行时才准备就绪。(TDRS 是阿波罗期间使用的全球地面站网络的太空替代品。)因此,NASA 在第一次航天飞机发射前仅七个月就决定,他们需要一个临时系统用于向机组人员传输实时、飞行计划变更和其他操作数据。
航天飞机电传打字机就是这种仓促努力的成果,这种打印机可以通过现有的音频信道而不是数字 TDRS 卫星工作。由于时间紧迫,航天飞机电传打字机需要基于现成的打印机。热敏打印机和静电打印机由于毒性和易燃性问题而被拒绝。
印刷机
电传打字机使用一个旋转的鼓,鼓上有凸起的字符,打印机的滚筒旋转鼓每列有 64 个凸起字符。字符绕滚筒旋转且顺序相反,最大限度地减少了一行几乎同时触发所有锤子的可能性。
军用打印机和航天飞机打印机的字符集略有不同。军用鼓式打印机有 64 个 ASCII 字符(仅大写字母、数字和特殊字符)。
拆开电传打字机后,可以看到正面的 20 张锤击卡。锤击卡的右侧有两张锤击驱动卡。
电子部分
下面的照片是从上往下看电传打字机内部的电路。左侧是三个接口板,这些定制板用于解调传入的音频信号
。接口板前面是大型电感器,用于过滤传入的电源。隐藏在它们下方的固态继电器控制打印机其余部分的电源,实现低功耗待机
模式。中间的蓝色电路板是令人惊讶的复杂开关电源,安装在厚厚的金属板上用于冷却。通常,大卷纸安装在电源板上方。右侧四块大型电路板实现打印机的主要逻辑:打印机驱动板、通信板、内存板和处理器板。旋转滚筒由前面的穿孔黑色金属格栅保护。
解调器板
最初的军用电传打字机以串行比特流的形式接收数据。然而,在航天飞机上,数据在音频链路上被编码为频率
。构建了三个定制电路板来解调音频数据,以便打印机的其余部分可以处理它。这些电路板还执行航天飞机特有的任务,例如在收到消息时启动打印机,然后将打印机返回待机模式。对这些电路板进行了逆向,以确定它们的工作原理和数据编码。
总而言之,串行比特流采用频移键控编码,1 表示为 3600 Hz,0 表示为 7200 Hz。串行数据以 600 波特、偶校验、一个停止位传输。解调过程首先通过阈值处理将输入音频转换为数字信号。(也就是说,将输入正弦波转换为方波。)数字信号进行自相关以区分 3600 Hz 和 7200 Hz 信号,从而恢复底层串行数据
。该信号被传递到打印机的逻辑板(原始军用电传打字机的一部分),它将串行信号转换为 ASCII 字节并打印出来。
信号处理从“FSK 输入”板开始,如下所示。首先,它放大输入的音频信号。(两个大电阻为音频输入提供 600 Ω 负载。)接下来,900 Hz 高通滤波器消除低频噪声。(该滤波器由两级Sallen-Key拓扑实现。)
信号在电路板之间来回反射,然后到达“输出 FSK 解调”电路板。该电路板有一个载波检测电路,如果检测到输入信号,就会打开打印机的其余部分。这样打印机就可以处于空闲状态,直到收到来自地球的信号。
该电路板还会将阈值应用于信号,将其转换为数字波形,然后发送到“控制”电路板。
输出板还装有为三块板供电的 5 伏和 12 伏线性稳压器;这些是板底部的金属罐 IC。为了减轻稳压器的负载,两个大电阻器将输入电压(28 伏)降至较低水平,
然后再进行稳压。
控制板上装有 FSK 解码器,这是一个有趣的电路,它通过实现数字自相关器将两个 FSK 频率转换为二进制。它使用 64 位移位寄存器将数字输入延迟 139 µs。输入和延迟输入进行异或运算,生成取决于频率的结果。7200 Hz 信号每 139 µs 重复一次,因此输入和延迟输入匹配,异或运算结果为 0。但是,3600 Hz 方波每 139 µs 切换一次状态,因此两个异或输入将始终不同,从而产生 1 输出。因此,该电路可以清晰地区分 3600 Hz 输入和 7200 Hz 输入。
数字解调器避免了模拟 FSK 解调器的一些问题。
它对信号电平不敏感,因为信号被转换为数字。数字解调器对谐波也不敏感,而谐波可能会导致模拟解调器出现问题。最后,它不需要模拟电路中精心调整的滤波器。
解调后的信号从控制板传回输出板。该板应用 400 Hz 低通滤波器,然后应用阈值将信号转换回二进制。如果输入频率不准确,解调器将在大部分波形上产生正确的 0 或 1 值,但边缘会出现毛刺。低通滤波器可消除这些毛刺。(您可能担心 600 波特信号会被 400 Hz 低通滤波器消除。但是,最坏情况信号(交替的 0 和 1)将是 300 Hz,因为它需要两个位才能形成一个周期,因此滤波器有足够的余量。)接下来,除非检测到载波,否则电路板会阻止信号。这可确保不会解调和打印随机噪声。最后,串行二进制信号离开定制的 Shuttle 电路板,进入电传打字机的通信板,这是标准电传打字机的一部分。
逻辑卡
军用电传打字机包含四块逻辑电路卡:CPU卡、内存卡、通信卡、打印控制卡
,安装在电传打字机的右后方。这些卡在航天飞机电传打字机上原封不动地使用。
电路比您想象的要复杂,有四张大卡片,上面满是 IC。首先,这些卡片使用了 20 世纪 70 年代的微处理器技术,因此做任何事情都需要大量的电路。
特别是,许多简单的 7400 系列逻辑芯片执行“粘合”功能:解码地址、缓冲数据、锁存信号
等。此外,滚筒打印机本身就很复杂,因为必须根据所需字符在正确的时间驱动 80 个锤子。第三,电传打字机非常灵活,支持多种信号级别和两种字符格式(ASCII 和 Baudot)。令人惊讶的是,电传打字机实现了文字处理器,允许离线编写和编辑消息。当然,由于航天飞机的电传打字机仅用于接收数据,甚至没有键盘,因此文字处理器功能完全没用。
CPU
CPU 卡装有控制电传打印机的微处理器。其最重要的功能是将一行 ASCII 字符转换为打印鼓代码。这些代码存储在内存中,供打印控制卡使用。CPU 还实现配置和自检功能。
下图显示了一些主要组件,CPU 卡包含一个 Motorola 6800 CPU、4 千字节内存和一个保存其程序代码的 ROM
。不方便的是 ,所有 IC 零件编号都是军用编号,因此需要进行一些调查才能确定零件的真正用途。MC6822 是外围接口适配器,是 Motorola 芯片,提供两个并行 I/O 端口。该芯片用于三张卡上,以支持各种 I/O 任务。在 CPU 卡上,I/O 端口驱动八个状态灯(其中大部分已被 Shuttle 电传打字机移除)以及内部状态信号,例如“纸张不足”或“键盘存在”和波特率设置输入。
印刷控制卡
从某种意义上说,打印控制卡是打印机的核心,因为它通过向旋转的滚筒发射锤子来打印字符。滚筒旋转一圈时,所有 64 个字符将旋转经过 80 个打印位置中的每一个。通过在准确的时间发射锤子,打印卡打印一行文本。更详细地说,对于滚筒上的每一行,打印卡使用直接内存访问 (DMA) 扫描 80 个字符的内存缓冲区
。如果内存中的值与当前滚筒行号匹配,则发射锤子。请注意,锤子不会同时发射,而是在扫描内存时按顺序发射。
上图显示了滚筒、打印控制卡和 80 个锤子之间的相互作用。锤子安装在 20 个打印锤子卡上,每个卡上有 4 个锤子。从电气上讲,锤子排列成矩阵。20 根导线中的一根(S1-S20)用于选择锤板,即一组 4 个锤子。另一根导线用于选择四个锤子中的一个(Col 1-4)。这种方法简化了电子元件,因为使用了 20 + 4 个驱动电路和导线,而不是 80 个(每列一个)。打印控制卡通过两个光电晶体管传感器与滚筒同步,这两个传感器用于检测滚筒的位置。每行触发一个传感器,而另一个传感器每转触发一次。
打印控制卡如下所示,其中标出了主要功能块。大型紫金色芯片是 PIA,与 CPU 卡上的 I/O 芯片相同。它处理各种信号,例如自检请求、缺纸和鼓停止信号
。模式控制逻辑根据打印机的模式生成定时信号。数据比较逻辑在每个鼓脉冲上增加行计数器,并将行计数器与从内存中读取的值进行比较。左侧的锤子驱动电路选择 20 个锤子卡中的一个,而右侧的锤子驱动电路选择四个锤子中的一个。色带电路升高和降低色带,以便打印机空闲时色带不会阻挡文本。行进电路推进纸张以进行行进操作。
下面的照片显示了其中一张锤卡,上面有四个锤子。每个锤子都有一个电磁铁,可以拉动杠杆,旋转锤轮,使锤子敲击纸张。(锤子本身位于照片的右上方。)螺丝调节器控制每个锤子和纸张之间的距离,从而可以精确调整时间。
通讯卡
通信卡处理电传打字机的串行数据输入
。关键芯片是 8251A,一种 USART(通用同步/异步接收器/发送器)。这个复杂的芯片执行串行数据流与处理器使用的字节之间的转换。(请注意,军用电传打字机既发送又接收串行数据,而航天飞机电传打字机只接收数据。
)该芯片有几个支持芯片,在下图中标记为“UART”。该板还有另一个外围接口适配器芯片,提供两个 I/O 端口。这些端口具有读取串行线路设置(ASCII 与波特率、奇偶校验、停止位数和电流环路级别)等功能。
存储卡
存储卡支持文字处理功能。它提供额外的 RAM 来容纳文本缓冲区以及 ROM 来容纳编辑软件。左侧的 16 个 DRAM 芯片(MK4027)提供 8 KB 的 RAM,而右侧的两个 ROM 芯片提供 8K 的 ROM。电阻右侧中间的芯片将 12 个地址位分成行地址和列地址,以满足 RAM 芯片的要求。地址信号通过中间的众多 24 Ω 电阻,不知道为什么。根据手册,如果没有此卡,打印机也可以正常运行,只是没有文字处理器。由于文字处理器与 Shuttle 无关,不知道为什么不移除此卡以减轻重量。
电源
电源板(如前所示)为打印机的不同部件提供单独的电源。12电源 采用开关电源,这在当时并不像现在这样普遍。微处理器电源提供 +5V、+12V 和 -5V,这是 20 世纪 70 年代内存芯片所需的电压。单独的开关电源为键盘、防尘罩和接口模块提供 +5V、-8.6V 和 +8.6V,这些组件是 Shuttle 电传打字机中被拆除的。另一个电源为打印机的状态灯供电。
滚筒电机电源很重要,因为其电压经过调节可控制滚筒的转速。滚筒上的传感器为滚筒上的每一行提供反馈脉冲。(我认为滚筒速度为 868 RPM。)这些脉冲控制滚筒电机的开关电源。如果滚筒旋转得太慢,电压就会增加,如果滚筒旋转得太快,电压也会增加。
锤子有一个不寻常的恒流电源。当打印机处于活动状态时,该电源产生 +18 V 电压。但是,无论锤子活动如何,电源都设计为使用 600 mA 的恒定电流。电容器提供由恒定电流填充的电源储存器。如果锤子使用的电流较少,则过剩电流会通过电阻器排出。这样做的目的是“在消息通信期间掩盖打印情报”。换句话说,如果你在莫斯科大使馆使用电传打字机,间谍可以监视电源瞬变以查看锤子何时发射,并可能弄清楚正在打印什么。通过保持电流恒定,可以阻止此情报来源。当然,此功能在航天飞机上毫无用处,只会浪费电力。
军用电传打字机接受多种输入电压:22-30 VDC、115 VAC 或 230 VAC,以及 12 VDC 备用电池。支持这些电压的变压器和二极管是接口模块的一部分,该模块已从 Shuttle 电传打字机中移除。相反,Shuttle 电传打字机由 28 VDC 供电。
机械部分
军用电传打字机经过了重大的机械改造,以适应航天飞机。这些改造使其重量从 100 磅减少到 59 磅。打印机最明显的变化是键盘被移除。打印机的整个前部被替换,移除了航天飞机中不需要的控件。原来打印机 的坚固框架被替换为重量更轻(但仍然坚固)的框架。框架上增加了水平导轨,以支撑航天飞机储物柜中的打印机。
下面的照片显示了航天飞机电传打字机的正面。军用电传打字机的正面有许多指示灯和开关,而航天飞机电传打字机只有两个指示灯和四个开关。
起初,我认为 Shuttle 的临时电传打印机设计很糟糕。它非常重,而且有过热的危险。虽然设计是从现有产品开始的,但很多部分都需要重新设计:前部、新鼓、接口,甚至框架。该设计继承了它无法使用的功能,例如内置文字处理器。而恒流功能对 Shuttle 来说毫无意义,只会浪费电力。
当我得知设计必须在短短七个月内完成时,我对电传打字机的看法有所改变。此外,该设计有许多限制,例如毒性和可燃性限制,限制了潜在的方法。
最终,电传打字机在 50 多次飞行中投入使用,成为有些不稳定的文本和图形系统 (TAGS) 的可靠备份。
尽管名为临时电传打字机,但它最终却成为一种长期解决方案,而不是临时解决方案
。因此,我不得不得出结论,电传打字机的设计很好,工作效果比预期的要好得多,使用寿命也长得多。
Schematic of the input board.
Schematic of the control board.
Schematic of the output board.
via: 80 年代航天飞机打印机内部电路欣赏,当时能有这制造能力真是叹为观止!原创 Ken Shirriff 芯片之家 2024 年 09 月 03 日 12:15 广东