Here's an interesting item where I got lucky (thanks to a permissive seller) with an extra-low offer on eBay. This is a fire control computer from an M1 Abrams tank, designed to do complex ballistics calculations for hitting a target that take many environmental factors into account. The particular unit I have was built in 1984, but the official National Stock Number (
https://www.wbparts.com/rfq/1220-01-076-6745.html) dates from 1979, so this was likely designed at some point in the late 70's. The manufacturer is Computing Devices Corp. in Canada, which is now part of General Dynamics.
My photos aren't great, and it's hard to convey just how heavily-built the enclosure is: the whole package is about 30 lbs (14 kg) - I'll discuss one possible reason for that later. Let's look at the cards inside.
...and the set of very nicely twisted wires that run between the connectors and the backplane:
CPU boardThe large purple ceramic package in the middle is the 16-bit Texas Instruments SBP9900 processor, which is a bipolar variant of its (MOSFET) TMS9900 processor. There's more info from CPU Shack about it here:
https://www.cpushack.com/2015/02/05/ti-tms9900sbp9900-accidental-success/There's a little bit of digital logic surrounding it for interfacing, mostly buffers (54LS365), plus an oscillator in a metal can and some resistor arrays. The other really noticeable parts here though are the 4x CDP1822 chips.
These are 256-word x 4-bit static RAMs, which are most likely wired to give it a total memory capacity of only 256 16-bit words. I believe the TMS9900 uses external RAM heavily as opposed to having a large number of internal registers, so the programmers likely had to be efficient with memory here!
ROM boardThis board has an array of custom-part-number chips, which seem to be the program storage. To be pedantic, though, it's possible some of this is data storage as well: with such a limited amount of RAM, I wouldn't be surprised if the designers leaned heavily on hard-coded lookup tables for calculations, to save memory.
Looking up the part number shows an NSN for these, but with no info other than that they're "digital microcircuits". Yep, very helpful.
The reason I'm confident that these are program memory, and none are additional RAM, is because these ICs are constantly being power-cycled. The 6 transistors along the top edge of the board, and the 54LS06 6x open-collector inverter that drives them, gate the 5V power to each column of ICs. An address decoder on a different board (I'll go into more detail about that later) selects which column is powered up at any one time, based on the memory addresses that are being accessed. I don't know whether this is a power-saving measure, or whether it's a radiation-hardening feature (I'll also get into that more later). I also don't know if the memory chips themselves have any special features, since I haven't been able to find any info about these part numbers.
Logic boards 1 & 2There sure is a lot of miscellaneous digital logic on these. The next post will have a detailed description of how they work, but the basic idea is that they're implementing some basic external I/O and timer functions all with SSI & MSI logic chips.
When you use a microcontroller such as an AVR/PIC or even an ARM-based part, it has addressable I/O ports already built in, where you can read and write full words as well as individual bits to control or monitor external signals. However, on a CPU like the TMS9900, there's only an address and data bus, and memory accesses: if you need I/O registers to control peripherals (such as channel selection on the ADC, discussed next) or receive button inputs, then you need to create those addressable I/O registers yourself and interface them through the CPU's bus.
On a "normal" computer system from this era, you'd use other support chips meant to work with your processor, such as the
NEC D71055 I/O unit sitting in my junkbox, or the
Intel 82C84 clock & reset generator - you can see examples of this on the processor boards in the
NZ-920 aircraft navigation computer.
There's potential reasons though why the designers didn't follow this path, and implemented their own I/O-register and timer functions from scratch: support chips just may not have been available at the time that satisfied all their requirements of being compatible with the TMS9900's bus control signals (I don't know if they were particularly unusual), available in military-qualified versions with wide temperature ranges and ceramic packaging, and being TTL-based instead of CMOS. This also might have been an attempt to keep the total number of transistors involved to an absolute minimum / size of the transistors involved as large as possible, to help the radiation tolerance (which is where the TTL requirement comes from too: discussed below).
Normally, integration is the right choice for reliability in common scenarios, such as with thermal cycling: solder joints are more likely to fail than a transistor or interconnections on a monolithic IC, as long as it's properly protected against ESD/overvoltage/etc. However, the effects of radiation change around the tradeoffs involved.
ADC boardThis contains a nice Analog Devices ceramic hybrid, which turns out to be a 12-bit ADC, for reading sensor inputs:
The two very large DIP packages at the middle and left are the Harris(/Intersil) HI1-507-8, each of which is a dual 8:1 analog multiplexer. The white DIPs are resistor arrays, and the 2x LM110 op-amps and the op-amp in the metal can (LM118) form an "instrumentation amplifier" configuration - these convert differential analog inputs from "outside" into a single-ended signal that directly drives the ADC's input. The resistor array near the muxes is used to form a differential voltage divider on some (presumably higher-voltage) pairs of inputs before they reach the muxes.
The reason to use 2 of these dual-8:1-muxes is that it allows for 16 total analog input channels, of which 14 are used. Each mux has an "enable" input, which when disabled, disconnects all internal switches completely and lets the output float. Therefore, the outputs of both muxes are ganged together, but only one of the muxes is enabled at a time, which essentially adds an extra layer of multiplexing. The bottom 3 bits of the ADC channel selection drive the mux's selection inputs, and the top bit of the ADC channel selection chooses which mux is enabled, via a logic inverter (in the 54LS05 at the right edge) that creates an inverted copy of this top bit.
One half of each mux is used for "in+" signals, and the other half is used for "in-" signals. We'll talk later about what these sensor inputs are.
Analog output boardThe opposite of the analog input board just discussed is this analog output board. It uses the AMD DAC-08 (8-bit DAC), along with a bit of digital logic for interfacing, and a 1741 quad-741-op-amp to buffer the output and presumably provide a control loop. The output stage is in the form of two large power transistors that seem to be arranged in a class-AB configuration, along with some 1N3189 diodes next to them in metal cans, that create a single analog output controlled by the DAC.
The giant power resistors are 4.99Ω each, in series with the incoming bipolar (both positive & negative) power rails to limit the max. current and/or share some of the power dissipation with the transistors themselves. The conduction cooling scheme of the whole computer unit is particularly obvious here, with the power transistors attached to a metal stiffener plate that spans the whole board. When the card is fully inserted into the computer, this metal plate is pressed up against the case at the left and right edges, for transferring heat to the case.
Here's some close-up shots: I'm guessing the series inductor is involved with output stability somehow, but didn't fully map out the circuitry here as its general structure was pretty obvious:
Voltage regulator boardThat black power supply box, visible in the "open case" photos at the top and which we'll discuss in more detail in a future post, provides a regulated +5V and an unregulated ±19V (roughly). Most of the analog stuff requires a properly-regulated ±15V, though, and the ADC in particular needs -5V in addition to +5V and +15V. This "post-regulation" of the analog supply voltages seems to happen here.
There's 3 power transistors, all of the same type, but
not much information about them. Next to the middle and right-hand transistors, in metal cans, are an LM105 and LM104, which are positive and negative regulator controllers meant to drive external power transistors. The left-hand power transistor has no IC nearby but could be operated either off just a couple smaller transistors and a zener diode, or by the 1741 quad op-amp above it.
The 1741 op-amps also may or may not be involved in creating outputs that track properly at power-up and power-down. The LM139 quad comparator at the top provides a "power good" signal used to reset a bunch of logic on the digital boards, and presumably to reset the CPU as well: there's probably one comparator for each voltage rail, with the open-collector outputs wired-OR'ed together.
I didn't bother tracing all the circuitry on this board either as it seemed relatively boring, but here's more up-close shots:
Background and purposeOk, so now that we know what this fire control computer looks like on the inside, and how its individual pieces work, what does it
do? How does it integrate with the outside world?
Fire controlFiring a projectile at a target, and predicting the initial angle(s) that are needed to hit it (even when the initial velocity is known), is not a trivial problem. Ballistic motion with the effects of gravity is a standard high-school physics problem, and can be easily calculated and looked up in "gunnery tables", but all kinds of other effects can ruin your aim:
- air resistance (notably absent on the basic physics problem sets) and its changes
- the speed and direction at which a target might be moving (which due to the projectile's transit time means you need to aim ahead of it)
- wind, which will blow the projectile off-course
- distortion of the gun barrel due to temperature changes, as shots are fired and it heats up, or permanent changes over time
(This isn't meant to abstract away the fact that "correctly hitting a target" here usually means "killing people" rather than some purely-theoretical thought experiment: just shedding some light on the technical aspects behind the often-horrifying applications) Anyways, I found some pieces of a manual online, "TM 9-2350-255-10-3 M1 ABRAMS TANK Operator's Manual", which tangentially describe the fire control computer. There are a couple diagrams showing the separate control panel for it, which are particularly useful:
This ties in nicely to the question of "what are all those ADC channels measuring?". It looks like ammo type (which affects initial velocity & air resistance), ammo temperature, and barometric pressure (which likely affects air resistance) are measured and entered manually, while there are sensors for the air temperature(?), crosswind (not sure how it's measured), range to target (with a laser rangefinder), position/angle (with a pendulum hanging from the roof), and turret position in 2 axes.
There's also a "muzzle reference sensor" (MRS) which involves a small device with optical windows at the end of the barrel, meant to correct for non-straightness of the gun barrel. I'm not sure exactly how this works. My best guess is that the MRS has a light source (found a reference to a different MRS having tritium in it, like light-up watch dials) and there's a viewing window with a reticle: the viewing window is then manually moved (turning some potentiometers in the process) to line up the MRS in the middle.
Radiation hardeningThe official NSN info for the fire control computer, linked at the beginning, mentions "nuclear hardened features". It seems like this is still at least sometimes a requirement for military electronics today, but would probably be even more so in the Cold War times this was designed, when getting nuked was on everybody's mind. There's actually nothing crazy in here, no super-special kinds of rare things you'd see in satellites or deep space missions meant to deal with decades of constant ionizing radiation, but some of the design choices make sense in this context.
Radioactivity and electronics do not play well together. Low-energy ionizing radiation, well....ionizes: it knocks electrons out of their orbits, adding charge carriers (both a free electron and a hole). For semiconductors, which depend on precisely balanced levels and types of carriers, this isn't great - the effect can be similar to spikes of leakage current through a device that's supposed to be "off" or across an insulating layer. From the world of space exploration, there's so-called "Single Event Upsets", where an ionizing impact will flip a memory bit / change a logic state / create a voltage pulse. When this happens with standard CMOS processes, it can also cause "latchup", by activating a parasitic SCR formed by the structuring of the substrate and the transistors within, which crowbars the power supply to ground - obviously a bad thing. Silicon-On-Insulator (SOI) processes or things like diamond substrates avoid the latchup issue.
More-energetic ionizing radiation can do permanent damage to the semiconductor by displacing atoms inside their metallic silicon lattice. I'm guessing this is less of an issue here though, an more of an issue in constant-background-radiation applications.
Overall, bipolar transistor logic is more radiation-tolerant in general than CMOS logic: my non-expert understanding is that this is partly because latchup doesn't apply, partly because there's no thin insulating layers (such as between the gate and channel of a MOSFET) to be disturbed by unexpected leakage currents, and partly because a small leakage current spike is less likely to change the state of anything when there's already larger currents flowing. This explains why the SBP9900 CPU is used instead of the NMOS TMS9900, and why all the logic is "LS"-series TTL...as well as possibly why the I/O and timer functions were implemented in SSI logic instead of using integrated peripheral chips. Large-cell SRAM is also supposedly more robust against radiation, which would help explain the low-density SRAM chips used on the CPU board. The extra-thick steel case also might be for radiation shielding as well as physical robustness.
One reference I saw to rad-hard electronics was about the D-37B Minuteman missile guidance computer, which had
"...radiation circumvention techniques that removed all electrical power from the power distribution system, including decoupling capacitors, in less than 1 microsecond and restored to the specified voltage in a few microseconds upon command." It sounds like powering down during an acute burst of ionizing radiation can help (by not giving the electronics the chance to malfunction and damage themselves?). I'm wondering if this might be part of the reason the ROM chips not currently in use are powered down, if the program memory is considered particularly sensitive to damage, depending on what type of ROM it actually is "under the hood" (I can't imagine selectively-blown-fuse ROM being particularly sensitive, for example).
Anyways, hope you enjoyed. When I have some time later I'll post a more detailed look at the logic boards, and also the power supply.