旅行者一号上的CPU/MCU

这几天有一个好消息,经过NASA JPL工程师的努力,旅行者一号可以回传有关其机载工程系统健康状况和状态的可用数据。很好奇旅行者一号(Voyager 1)上的CPU/MCU是什么型号?其代码长什么样子?当然,还是问ChatGPT-4。

RCA 1802 microprocessor, Source: Wiki

一、CPU/MCU型号?—RCA 1802 microprocessor

The primary computer onboard Voyager 1 is built around an 8-bit word length central processing unit (CPU), specifically the RCA 1802 microprocessor. This chip was chosen due to its reliability and resistance to radiation, which are critical for long-term space missions. The RCA 1802 is known for being one of the first microprocessors constructed using complementary metal-oxide-semiconductor (CMOS) technology, contributing to its low power consumption and high endurance against the harsh conditions of space.

同时问了问Google Gemini。回答也是RCA 1802,但应该会针对旅行者一号有定制修改。

I couldn’t find any information about the specific cpu/mcu type in Voyager 1. However, Voyager 1 used a custom-built computer system designed by TRW Electronics. The central processing unit (CPU) was based on the RCA CDP 1802 microprocessor, but it was significantly modified for the spacecraft. The system also included 16K words of read-only memory (ROM) and 64K words of random-access memory (RAM)

二、代码长什么样子?如下:

; Example RCA 1802 Assembly Code
; Increment and Loop Program

            ORG   8000h  ; origin, where the program is loaded in memory

Start:      LDI   01h     ; Load immediate value 01h into the D register
            PLO   R2      ; Put Low of D register into R2
            PHI   R2      ; Put High of D register into R2 (R2 = 0001)

Loop:       INC   R2      ; Increment R2
            BR    Loop    ; Branch unconditionally to Loop

            END   Start   ; End of program, loop indefinitely

Explanation of the Code:

  • ORG 8000h – This directive tells the assembler to start placing the program at memory address 8000h.
  • LDI 01h – Loads the immediate value 01h into the D register.
  • PLO R2 – Places the lower byte of the D register into register R2.
  • PHI R2 – Places the higher byte of the D register into R2. After these two steps, R2 effectively contains the value 0001h.
  • INC R2 – Increments the value stored in register R2.
  • BR Loop – Unconditionally jumps back to the Loop label, creating an infinite loop.
  • END Start – Marks the end of the program and specifies where execution should start.

This is a very basic program showing how to set up a register and perform a continuous loop. RCA 1802 assembly language is characterized by its simplicity and direct control over hardware, which was ideal for the hardware constraints and reliability requirements of space missions like Voyager.

三、CPU RCA 1802 microprocessor的制造商?—Radio Corporation of America, RCA

The RCA 1802 microprocessor was manufactured by the Radio Corporation of America, commonly known as RCA. Introduced in 1976, the 1802 chip was part of RCA’s COSMAC (Complementary Symmetry Monolithic Array Computer) line of microprocessors. It was notably designed by Joseph Weisbecker and was one of the first microprocessors to be made using CMOS (complementary metal-oxide-semiconductor) technology, which contributed to its low power consumption and high resistance to radiation. This made it particularly suitable for space applications, including the Voyager spacecraft.

四、Radio Corporation of America这家公司还在吗?—不在了,于1986年被通用电气GE收购

The Radio Corporation of America, commonly known as RCA, is no longer in business as an independent entity. It was once a major American electronics company, known for its pioneering role in radio and television. RCA was founded in 1919 and became a dominant figure in the electronics industry throughout much of the 20th century.

However, in 1986, RCA was acquired by General Electric (GE), which subsequently dismantled the company and sold off various parts of its operations to different entities. The RCA brand still exists today, but it is used under license by other companies that apply the RCA brand name to products like televisions, appliances, and other electronics.

NASA JPL工程师成功解决此次问题的方案是把因内存损坏无法运行的代码切分成几个部分,将各部分代码存储在FDS中可用的不同内存段并运行。代码大致如下(Just Kidding~):

; RCA 1802 Assembly Code😀
ORG FDS_FRAGEMENT_LOC_0
; Do something...
BR FDS_FRAGEMENT_LOC_1
; Do something...
BR FDS_FRAGEMENT_LOC_2
; Do something...
......

P.S.,@rodneyabrooks提到,旅行者一号FDS用的是7400系列TI芯片,如下图:

TI 7400, FDS on Voyager 1, Source: @rodneyabrooks

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注