在德州仪器 (TI) MOS 部门工作的加里·布恩 (Gary Boone) 设计了第一款可以称为微控制器的芯片,因为他对自己的工作感到厌烦,而且他的家庭也遇到了麻烦。他于 1969 年加入 TI,当时计算器芯片正成为一项大生意。在20世纪60年代,电子计算器取代了占据市场数十年之久的Marchant和Frieden机电计算器。半导体使机电计算器中数百个复杂的金属和塑料部件得以取代,首先是数百个晶体管和二极管,然后是越来越少的集成电路。北美的罗克韦尔微电子,Mostek,通用仪器和德州仪器是多芯片计算器市场的早期参与者。
起初,需要几十个集成电路来取代数百个晶体管和二极管。随着集成电路中包含的元件越来越多,制造一个可用的计算器所需的集成电路也越来越少。到1968年,基于IC的计算器设计在很大程度上取代了基于晶体管的设计。终点是明显的。最终,半导体制造商将把计算器的电子内核简化为单个芯片。
日本计算器供应商夏普、佳能和Busicom与各种美国半导体供应商合作,为他们的计算器开发定制芯片。夏普与罗克韦尔合作,佳能与TI合作,Busicom与Mostek和英特尔合作开发不同型号的计算器。Busicom要求Mostek开发单芯片计算器,并与英特尔签订合同,为更复杂的可编程计算器开发定制芯片组。1970年底,Mostek首次实现了这一目标,推出了MK6010,这是一款取代了 22 块集成电路的定制芯片。Busicom将这种芯片集成到它的小型四功能台式计算器Busicom Junior中。与英特尔的合同最终促成了英特尔4004微处理器的开发。然而,这个故事是关于微控制器的,它走了一条相关但不同的进化道路。
TI公司的MOS部门深陷计算器芯片组的事务之中。包括佳能、Olivetti和Olympia 在内的计算器公司要求TI为他们的计算器开发4、5和6芯片组。执行这些定制芯片项目落在了包括Gary Boone在内的几个TI工程师的肩上。这份工作需要飞往世界各地,去日本、意大利和德国。布恩花了很多时间在路上,他的家人对他的缺席感到不满。Boone很快就厌倦了紧张的旅行,只是为了开发一个看起来和之前的很像的新芯片组。在那个年代,许多潜在客户想要计算器芯片,但每个客户想要的东西都有点不同。这就是定制芯片业务的本质。这是一个客户密集型的行业。
Boone的沮丧和家庭事务促使他找到了TI的MOS市场经理Daniel Baudouin。他们一起编制了一个客户需求矩阵,这些需求来自与不同计算器制造商的需求。然后,他们添加了一组功能块,可以满足这些需求。Boone和Baudouin也注意到目前TI MOS工艺技术可以完成什么,以及它可以做得最好的是什么。他们的思路很快转向了大量使用内存(RAM和ROM)的架构,因为这些结构效率极高,更容易在IC上布线,内存有望提高硅的利用率,达到40或50倍。
一旦Boone和Baudouin开始考虑使用内存,他们就开始考虑一个计算器芯片需要多少数据和程序存储空间。那时,TI团队开始与潜在客户讨论ROM可编程的单芯片计算器的前景。他们遭到了很多反对。习惯了为自己的计算器芯片提供资金的客户对只通过片上ROM中的某些位进行区分的计算器芯片的想法犹豫不决。TI内部也有反对意见,因为基于ROM的可编程部件与公司习惯制造的部件相反。
读到这里,您可能会发现所有关于计算器芯片的讨论都与标题不一致。本系列文章显然是关于微控制器的历史。我向你保证,我们没有偏离轨道。最早的微控制器是由Boone和TI的工程师Michael Cochran设计的,包括处理器、内存(RAM和ROM)和I/O都在一块硅上,是计算器芯片,它们是最早的微控制器。请看下图,摘自美国专利4074,351:
图片来源:美国专利商标局
此图显示了TI第一台单片机计算器TMS1802NC的框图。它显示了微控制器的所有关键组件。它有一个CPU,由程序计数器(PC)、指令寄存器(IR)、指令解码器(Control Decoders)和一个4位ALU组成。它有一个RAM来存储数值数据和一个ROM来存储定义芯片操作的程序。最后,在底部,您可以看到专门的I/O电路,用于扫描矩阵键盘、驱动显示数字和驱动每个显示数字中的七个段。这个设计中的I/O可能是专门的,但是这个图清楚地描述了一个微控制器。
1971年9月17日,TI公司发布了TMS1802NC单片机计算器集成电路。两个月后,英特尔发布了4004微处理器。德州仪器给这款设备定价不到20美元。ROM包含320个11位指令字(3520位),而串行访问的182位RAM包含3个13位BCD(二进制编码的十进制)数字和13个二进制标志位。该芯片总共需要大约5000个晶体管。
(注:在研究这篇文章时,我发现不止一个网站把TI的TMS1802NC 4位计算器芯片和1974年发布的8位RCA CDP1802 COSMAC CMOS微处理器搞混了。TI和RCA芯片不是同一个零件,尽管零件号相似。)
TI从1971年9月17日发布的新闻稿进一步证实了TMS1802NC作为微控制器的地位:
“TI使用相同基础或主机设计的单级掩码编程技术,可以轻松实现任何数量的特殊操作特征。唯一的限制是程序ROM、RAM存储和控制、定时和输出解码器的大小。例如,通过重新编程输出解码器,TMS1802可以用于驱动十进制显示,如Nixie型管。”
最早使用TI TMS1802计算器芯片的计算器之一是Sinclair Executive。
TI在1972年9月20日发布了TMS0100单片机计算器系列,几乎正好是在TMS1802C发布一年后。该公司将TMS1802NC重新命名为TMS0100家族的第一个成员,TMS0102。最终,这个家族将有超过15个不同的成员,由TI的10微米PMOS工艺技术制成。一年后,Mostek发布了改进的、引脚兼容的TMS0102副本MK5020。就像本文开头列出的所有半导体制造商一样,TI和Mostek很快就会发布微控制器,部分是利用从这些早期计算器芯片的创造中获得的知识开发的。
与此同时,Boone已经跳出了这个计算器的框框。计算器芯片专利4,074,351描述了其他目标应用,包括出租车计价器、数字电压表、事件计数器、汽车里程表和测量秤。当然,微控制器已经在所有这些应用程序中被使用过,而且还远远不止这些。
与许多首创设备一样,德州仪器的TMS0100计算器芯片家族是一种狭义的微控制器,主要用于制作计算器。然而,TMS0100家族的第一个芯片最初被称为TM1802NC,后来改名为TMS0102,它包含了微控制器所需的一切:CPU、RAM、ROM和I/O。当然,这是一个专门的微控制器。它的I/O是特定于应用程序的,被设计为连接到一个矩阵键盘和一个七段显示器。然而,TMS1802NC是一个微控制器。
最初由德州仪器的Gary Boone和Daniel Baudouin构想,然后由Boone和Michael Cochran实现,德州仪器在1972年9月20日推出了TMS0100系列,这些芯片迅速占领了计算器市场。TI突然有了全新的世界要征服。该公司很快意识到,如果可以将同样的可编程硅设计得足够通用,它就可以为多个市场服务。TI将其从最初的可编程计算器芯片中获得的经验应用于生产第一批通用微控制器TMS1000系列,并于1974年发布。
TMS1000微控制器系列与TMS0100可编程计算器系列有一些相似之处,但也有很多不同点。这两种设备都有4位CPU和哈佛架构,哈佛架构为RAM和ROM提供了独立的地址空间。哈佛架构在早期微控制器设计中很常见,因为它们简化了微控制器的RAM、ROM、地址解码器和数据总线的设计。然而,在我看来,哈佛架构使程序员的生活变得复杂,他们必须跟踪两个不同的地址空间,并且必须经常设计将数据从ROM转移到RAM的方法。(幸运的是,将数据从RAM转移到ROM是没有意义的,数据不会完成这个过程。你不能成功地写入一个掩码ROM。)
与TMS0102的3250位ROM(组织为320个11位字)不同,第一个TMS1000微控制器有一个1千字节的ROM,组织为1024个8位字。因此,TMS0100和TMS1000系列分别从不兼容的11位和8位指令集开始。类似地,TMS0102的182位串行RAM包含三个以BCD(二进制编码十进制)格式的13位数字和13个二进制标志,而 TMS1000 微控制器具有组织为 64 个 4 位字的 256 位 RAM。
根据TMS1000文档,存储在RAM中的64个4位单词“被方便地分组为4个16位的文件,由一个2位寄存器寻址”。根据我的经验,在编写类似的微控制器架构时(本系列后面将讨论),将小的RAM地址空间进一步分割成16个字的块并没有什么方便之处,除非您正在编写16个条目的循环缓冲区。就像许多设计妥协一样,微控制器设计团队将整个CPU连同RAM、ROM和I/O电路一起塞到早期的半导体模具上,我敢打赌,这个特定的设计选择使TMS1000微控制器的硬件设计更简单、更小,以通常牺牲程序员的方便来换取硬件设计的便利。
与TMS0100计算器芯片系列的专用I/O设计不同,TMS1000微控制器具有通用I/O引脚,至少在名义上是这样。四个输入引脚(K1, K2, K4和K8)可以用一条指令作为一组读取。输出引脚更加复杂。最初的TMS1000微控制器有11个“R”输出(R0到R10)和8个“O”输出(O0到O7)。“R”输出分别设置和清除。“O”输出由掩模编程PLA控制,并由5位锁存器驱动。锁存器中的四个位可以通过一个指令来设置,该指令将数据直接从TMS1000的累加器移动到锁存器。第五个输出位来自ALU的状态锁存器。使用PLA将5位输出锁存扩展到8个输出引脚,让人想起TMS1000作为计算器芯片的后代的传统,它被设计用于驱动7段显示器。
在Adam Osborne 的众多成就中,他在1978年出版的《微型计算机导论》一书中记录了早期的微处理器和微控制器。在他对TMS1000的描述中,奥斯本似乎更关注微控制器的局限性:
“TMS1000系列微型计算机是单芯片设备的事实有一些次要的,不明显的影响。最重要的是,没有支持设备这种东西。1024或2048字节的ROM [TMS1200微控制器有2Kbytes的ROM]代表将出现的程序内存的确切数量;不能多也不能少。类似地,RAM的64或128个字节(一个字节是一个4位的单词)不能扩展。直接内存访问逻辑不存在——而且它的存在无论如何都没有什么意义;由于可用的RAM和ROM总量很小,因此根本没有机会在足够长的时间内传输数据块,以保证绕过CPU。
同样地,在TMS1000微型计算机中,中断的作用是微不足道的。考虑到可用的程序内存储量很小,而且程序包的成本很低,很难证明仅仅为了让微机执行多个任务而中断逻辑的复杂性是合理的。”
在我看来,Osborne 的话表明,许多人(可能包括Osborne )在1978年他出版那本书时,也就是TI首次宣布TMS1000系列四年后,并没有清楚地了解微控制器和微处理器之间的区别。然而,许多人确实理解其中的区别,因为据报道,到1979年,TI每年生产数千万个TMS1000部件,他们以2美元或3美元的价格大批量出售TMS1000。TMS1000的低单位成本是可能的,部分原因是TI将该设备封装在一个便宜的28引脚塑料DIP中。
TI通过在自己的一些消费品中使用TMS1000微控制器家族成员来吃自己的狗粮,包括传奇的TI Speak & Spell游戏和SR-16“电子计算尺”计算器。
发明家、游戏设计师、“家用电子游戏机之父”拉尔夫·贝尔意识到他可以用微控制器制作出价格合理的电子游戏,并将TMS1000集成到最成功的手持电子游戏之一—— Milton Bradley 的 Simon 中,该游戏于1978年推出。如今,每个人都在自己的手机上玩手持游戏,但那时,这些游戏需要专用的硬件。
帕克兄弟公司在1978年发布了基于TMS1000微控制器的手持电子游戏《Merlin 》,一年后,Milton Bradley公司使用TMS1000微控制器作为其Big Trak的可编程大脑,这是一种未来主义的6轮坦克式车辆,可以通过嵌入在玩具背后的薄膜键盘预先编程,沿着特定的路径前进。Big Trak可以执行输入键盘的16个命令序列,这似乎与1967年由Wally feurzeeig、Seymour Papert和Cynthia Solomon在马萨诸塞州剑桥的一家名为Bolt、Beranek和Newman (BBN)的研究公司开发的Logo编程语言的海龟图形密切相关。
1977年,Mattel公司推出了一款非常成功的电子足球游戏。这款游戏基于Rockwell计算器芯片,但世界各地的公司都克隆了这款游戏,香港一家名为Conic的游戏制造商似乎在其克隆产品中使用了TMS1000微控制器,而不是计算器芯片。开源游戏模拟器MAME (multi街机模拟器)仍然可以在模拟中运行《Conic’s Football》的TMS1000 ROM代码。
作者Stan Augarten在他的《艺术状态》一书中指出,TMS1000被用于计算器、玩具、游戏、电器、防盗报警器、复印机和自动点唱机。奥加滕在描述TMS1000的结尾写道:“和任何集成电路一样,TMS1000帮助使现代电子的力量为每个人所用。”
我怀疑还有无数没有记录的TMS1000家族应用程序存在。对于第二早期的微控制器家族来说,这是一个相当成功的故事和遗产,也证明了基本单芯片微控制器概念的真正普遍性。在1974年TI推出TMS1000之后,其他半导体厂商推出的新的微控制器以飞快的速度出现。
现在我们已经进入了21世纪,大多数人很少想到罗克韦尔微电子与微处理器和微控制器的联系。母公司北美罗克韦尔(1973年更名为罗克韦尔国际公司)是一家主要的军事/航空航天承包商。罗克韦尔建造了阿波罗飞船,B1轰炸机和美国航天飞机。
在很长一段时间里,美国大部分的太空助推火箭和洲际弹道导弹都使用了罗克韦尔的Rocketdyne发动机。1972年,罗克韦尔推出了世界上第三个商业上成功的微处理器,4位的PPS-4。1976年,罗克韦尔发布了基于PPS-4架构的单芯片微控制器。它被称为PPS-4/1。
正如20世纪60年代许多大企业集团的潮流一样,罗克韦尔于1967年在其自主事业部开始了自己的半导体制造业务。Autometics开发了各种军事/航空航天航空电子系统,包括用于美国潜艇和洲际弹道导弹的惯性导航和制导系统,这创造了对先进半导体的需求。北美罗克韦尔微电子公司(NRMEC)为其军事和航空航天项目开发了早期的MOS/LSI工艺技术。
当日本的夏普向一家半导体供应商来制造自己设计的计算器芯片组时,NRMEC的MOS/LSI能力符合夏普的需求。合作的结果是一个四芯片组,夏普将其纳入其QT-8D计算器。夏普在1968年8月发布了这款计算器。事实上,有人可能会说,夏普QT-8D计算器中的罗克韦尔芯片组开启了MOS/LSI时代。1970年,罗克韦尔开始出版MOS/LSI芯片目录。
正如德州仪器公司(Texas Instruments)在TMS1000微控制器上所发现的,从电子计算器架构到4位微处理器,或者在德州仪器公司(TI)的情况下,到微控制器,只是一个短暂的跳跃。罗克韦尔在1972年8月宣布了4位PPS-4微处理器系列。它是世界上第三个获得商业成功的微处理器,它的推出紧随英特尔发布的4位4004和8位8008微处理器。罗克韦尔的“PPS”名称意为“并行处理系统”。
有两点使罗克韦尔的PPS-4微处理器区别于其竞争对手。第一个是罗克韦尔独特的QUIP (Quad Inline Package)设备封装。罗克韦尔的QUIP芯片很容易通过交错的引线来识别。因为它们的样子,这些芯片通常被称为“蜘蛛”。在最小电路板走线和空间大约为 10 密耳左右的时代,QUIP 引线配置使得为这些设备设计印刷电路板变得更加容易。
第二个显著特点是罗克韦尔为PPS-4微处理器开发的配套芯片。到1975年,芯片组家族包括CPU、罗克韦尔独特的四相时钟所需的时钟生成器/驱动程序、256×4-bit RAM、1和2千字节ROM、RAM/ROM组合芯片、键盘和显示控制器、打印机控制器、通用I/O芯片和1200 bps模拟调制解调器。(1200 bps模拟调制解调器开启了一长串调制解调器芯片,导致NRMEC成为Conexant Systems,最终被Synaptics收购。)
罗克韦尔PPS-4微处理器家族中大量的芯片使得该处理器被广泛应用于终端产品,包括收银机、传真机、家用电器、弹球机、玩具和计算器。然而,多芯片、4位微处理器家族的市场是短暂的。半导体技术发展迅速,器件密度也以惊人的速度增加。1975年10月,罗克韦尔将时钟产生器集成到微处理器中,并将RAM、ROM和I/O外围设备合并为一个名为PPS-4/2的2芯片集,但由于半导体工艺技术的进一步进步,2芯片集也很短时期。1976年初,罗克韦尔发布了PPS-4/1,这是一种基于原始PPS-4微处理器架构的真正的单片微控制器。
除了关于基于PPS4的计算器的信息和一个相当不寻常的应用程序:Gottlieb弹球机之外,因特网上很少有关于罗克韦尔PPS-4应用程序的历史。Gottlieb与Rockwell签订合同,开发基于PPS-4/2微处理器的System 1弹球控制器板。Gottlieb在1977年至1980年发行的弹球机中使用了System 1板。第一台使用了System 1板的弹球机被称为“埃及艳后”。其他基于微处理器的弹球游戏也紧随其后,如《Sinbad》,《Dragon》,《Charlie’s Angels》,《Incredible Hulk》,《Buck Rogers》和《Totem》。这个系列共有16场弹球游戏。
这是一种很容易被时间遗忘的历史,但是PPS-4作为弹球控制器的历史却没有被遗忘,原因有二。首先,收藏家根据系System 1板奖励Gottlieb弹球机。其次,这些板上的金属门、MOS/LSI PPS-4 rom /外围芯片正在失效,现在它们已经接近半个世纪的历史了。通常情况下,弹球收集器在这些部件失效后会被困在报废的机器上,因为这些部件已经几十年没有生产了,而半导体供应商NRMEC早就不在了。
Gottlieb与Rockwell签订合同,设计基于PPS4/2微处理器芯片组的System 1弹球控制器板。图片来源:Stephen Emery, ChipScapes.com
法国的AA55咨询公司针对这个问题开发了一种解决方案。该公司开发了基于FPGA的Rockwell PPS-4外围芯片。AA55咨询公司的FPGA代码的目标似乎是由AMD/Xilinx制作的,因为项目文件是为Xilinx的ISE开发软件格式化的。AA55咨询公司还没有对PPS-4/2处理器进行逆向工程,但计划在未来这样做。也许明年吧。
由于罗克韦尔组件现在几乎是纯的unobtanium,位于纽约Honeoye Falls的NI-Wumpf公司开发了一种功能上替代了最初的Gottlieb System 1板,并且不使用任何罗克韦尔半导体的板。最初的NI-Wumpf板似乎基于Zilog Z80微处理器。最新版本使用了STMicroelectronics STM32F103微控制器,其中包含了一个72 MHz Arm Cortex-M3处理器。作为比较,PPS-4/2微处理器的工作频率为199kHZ。一家名为Flippp的法国公司!已经采取了类似的方法,开发了被称为PI-1和PI-1×4的系统1板的板级替代品,由Pascal Janin设计和编程。该板似乎也基于更现代的微控制器。
阅读一些基于系统1板的Gottlieb弹球机用户的评论是很有趣的。大多数人认为罗克韦尔只是一个严格意义上的国防承包商。一个叫做pinwebsite的网站专门为Gottlieb开了一个论坛,其中有一个主题是“为什么Gottlieb的系统1如此糟糕?”以下是来自这个帖子的一些引用:
“当时,罗克韦尔似乎是个不错的选择。毕竟,他们为美国宇航局和国防部设计了计算机设备,还能出什么问题呢?显然,有很多。罗克韦尔公司决定在接地方面做出有问题的决定,使用定制设计的组件和其他奇怪的东西,这真的把戈特利布搞砸了。”
“为什么罗克韦尔要花费额外的时间和精力来设计定制蜘蛛芯片,因为它们仍然不如威廉和Bally使用的现成68xx芯片?”采用定制硬件似乎很难为他们节省成本。”
Gottlieb并不知情,在外包过程中做出了一些错误的选择。至于罗克韦尔公司,你可能会想,更大的奇迹是什么:是弹球机成功了,还是他们的NASA产品成功了?”
我想罗克韦尔在蜘蛛方面使用的是对他们来说“现成的”部件。部分问题可能在于他们从未为弹球游戏所处的环境设计过硬件。期望开关在打开时出错,而不是砰地一声关闭? 对于国防工业以外的任何人来说,硬件不是“现成的”吗?
“我不想太政治化,这只是我的看法,如果我想雇用一家公司为我设计一些电子产品,即使罗克韦尔有一个好名字,我也不想雇用一家习惯于做政府项目的公司。在大多数情况下,它们都是臃肿的、昂贵的、过度设计的。我不确定70年代末的情况是否如此,但仅仅因为太空设备运行良好,并不意味着它没有定价过高和设计过度。”
“罗克韦尔将该系统设计为4位系统——这在它发布之前就已经过时了。”
毫无疑问,今天以收集弹球机为爱好的人不知道罗克韦尔在20世纪70年代是一家商业芯片供应商,不知道PPS-4有悠久的历史,不知道为什么要开发4位微处理器和微控制器,不知道罗克韦尔为什么要开发“蜘蛛”QUIP,也不知道半个世纪以来维护不善的系统往往会失败。然而,有些藏家消息灵通。例如:
“在电子方面- System 1使用的是70年代中期的技术。所有的电子元件都是现成的元件,没有定制元件。事实上,罗克韦尔公司使用的是他们自己的部件——谁能责怪他们呢?我认为它只有两个缺点-糟糕的接地技术和边缘连接器。
“至于他们的CPU不受欢迎——它们在相当长一段时间内在销售点终端非常受欢迎。但当MOS科技推出价格实惠的6502系列处理器时,他们的4位处理器就被淘汰了。”
罗克韦尔微电子和PPS-4产品线也已经从积极参与电子工业的人们的集体记忆中消失了,而且在网上很难找到PPS-4的历史。你几乎需要求助于旧书。幸运的是,我书房的书架上有一些这样的书。
例如,1981年版的Osborne 4 & 8位微处理器手册列出了罗克韦尔PPS-4/1微控制器家族的10个成员。家族成员有640到2048字节的ROM和48到128个4位的RAM。除了一个家族成员之外,所有成员都有三个集成的串行I/O端口,实际上无非是串行的4位移位寄存器。MM76C是一个家族成员,具有高速上行/下行定时器/计数器子系统,可以作为一个16位计数器或两个8位计数器操作。该计数器还可以处理光学编码器使用的正交编码输入。计时器/计数器子系统为罗克韦尔PPS-4/1微控制器开辟了额外的工业应用领域,包括电机控制、频率计数、模数转换和频率合成。
如果你不熟悉NRMEC、罗克韦尔微电子或罗克韦尔半导体,那可能是因为该公司在1999年被分拆为Conexant Systems,这是全球范围内将内部持有的半导体公司的价值推向股市的努力的一部分。Conexant在2002年将其晶圆厂(原罗克韦尔的晶圆厂)拆分为Jazz Semiconductor,从此走向无晶圆厂化。Tower Semiconductor于2008年收购了Jazz Semiconductor,并成为了TowerJazz。该公司在2020年恢复了Tower Semiconductor的名称,现在英特尔正在收购该公司。与此同时,罗克韦尔早期的MOS/LSI工艺已经一去不复返,而且大多已被遗忘。