技术发展飞快,一日十年

Adventure 项目(3)
Bronn

今天是星期五,本来挺好的周末,小朱却有些“惆怅”。新一季的美剧下个月1号开播,等待了一年之后,这季剧集又开始了。可是,“决定是容易的,等待是困难的”,每周一集的剧集中间的漫长等待是让人期望又纠结的。

一日十年

2 天前,也就是星期三,小朱完成了 MIX 的第五版设计,交给厂里的研发主任 John Blankenbake 看过以后,开始小批量制作原型了。

Adventure 在深圳的电子设备组装厂(SZE)距离市区颇远,但交通却很便利。每天,这里都 24 小时的运转,设计、制造着各种电子设备。小朱年初刚刚到这里的时候,还什么都不知道,连自己怎么进的研发中心也都感觉困惑,“大概,看我没什么经验,愿意吃苦干活吧?”他也只能这样自嘲。

刚刚到 SZE 的时候,主任 John 安排小朱参与智能车项目,虽然事后看来,那应该叫做“智障车”项目才对,但对小朱来说,1个月的时间,他还能做什么呢,关键,他是新手啊!

小车项目采用 C51 单片机作为核心控制器。这种单片机最早是 Intel 在 1980 年为嵌入式系统开发的可编程控制集成电路 8051(改成 CMOS 工艺后,在 80 和 51 中间加上了  C)。C51 的上一代前辈,是 Intel 为 PC 机键盘开发的控制芯片 8048,用来将按键转换成电脑处理器可以识别的串行电信号的。

File:KL USSR KM1816BE i8748 Black Background.jpg

USSR KM1816BE48,8048 EPROM 版的克隆产品,多么美丽的集成电路啊!

虽然 Intel 在 2007 年已经停产了 80C51,但是其兼容集成电路到今天仍然非常流行,作为低成本的控制器方案广受欢迎。John 决定采用这款控制器的原因还在于,由于 1980 年以来的不断积累,80C51 的周边外部设备非常丰富、有巨量的开发资源可供学习,对于小朱这样的新手来说,作为起点是很合适的。

imageimageimageimage

丰富的外部设备(时钟、继电器开关、数字语音等等,数不胜数)

但是 80C51 系列简陋的编辑器、相对低下的性能(通常 12MHz 时钟,增强型的可以到 22MHz,每个指令平均要 12 个时钟周期)、薄弱的 IO 口能力、缺乏有效的软件加密、性能能耗比低等问题的存在,使得后继的新产品一个一个都超过了它。

就在“智障车”项目暂停后的 1 周后,MIX 项目启动了。

MIX 项目集成了多种功能(比如 USB 通讯),这就是项目名称 MIX 的由来。这次,SZE 采用了 ATMEL 的 AVR 微控制器。AVR 微控制器是 1996 年研发完成(但其实是从 Norwegian Institute of Technology 买来的,是由在 Norwegian Institute of Technology 学习的2名学生设计的,AVR 名称的由来就是2人的名字首字母A、V 加上 RISC,虽然 ATMEL 官方并不承认这种说法)。

File:ATmega8 01 Pengo.jpg 
小巧可爱的 ATMega8,我认为是 Mega 系列里面最具性价比的一款了

本来,在对 80C51 系列略有熟悉的时候,让小朱切换开发的硬件平台,是一件让人不舒服的事情。放弃熟悉的 Keil、串口下载器等工具,去熟悉新的工具。小朱开始,也的确是带着这样的情绪开始 MIX 项目的。

AVR 系列微控制器的设置比 51 系列复杂(虽然对比后面的 ARM 来说,其实也不算什么了)。更加增大了小朱的不满。当然,他是不会直接说出来的。说好的有 JTAG 调试,但是实际上价格都很贵,便宜的那种用开放工具又连接不上,唉!

然而,很快一切就发生了变化,原因就是因为 ATMEL 为 AVR 提供了一个强大的开发IDE:AVR Studio 6.0。AVR Studio 是基于微软 Visual Studio 扩展的,专用于 ATMEL 公司 AVR 和 ARM 系列微处理器的开发。相比 Keil,那是天上地下。最有用的,是可以直接提示所含库或者头文件的变量、函数定义,可以直观的看到对变量是读还是写(在变量名上用不同的背景颜色区分开来)。自带软件调试功能,可以看到各个寄存器的变化情况。

有了 AVR Studio 6.0,离开 51 也就没有那么痛苦了,而且,很快的,那些原本看似复杂的设置,渐渐也变成了习惯,甚至让小朱对自己正在做什么更加的清楚,不像以前用 51 那样模糊了。

MIX 项目现在仍然在进行中,因为涉及的功能实在太多,很多设备还在等待工厂、供应商的生产和供货才能继续下去,所以,在小朱到 SZE 4个月后,难得的出现了空闲等待的时间。

DSC03055

实验状态的 MIX USB 通讯功能,直接用 AVR 模拟 USB 设备。现在就处于等待工厂供货来移植测试的阶段。感谢 v-usb 项目,让 USB 不再神秘,让我们自己也可以设计 USB 设备!

为了不浪费时间,小朱决定还是自学点儿什么东西。看到网上 ARM 比较热门,就弄了一片 STM32F103BRT6 的 ARM Cortex-M3 芯片捣鼓捣鼓。虽然主任 John 要求他这段时间整理工作文档,并上传到 Adventure 的内部 SharePoint 文档库里面,但这些白天上班就可以做,他打算利用晚上的时间回去自学 STM32。

如果说 80C50、AVR 是 8位的微控制器,那么 ARM 就是 32位的了。能有更大的内存和数据处理速度。目前手机里面的控制器很多就是 ARM 的(可能此时叫做“微处理器”更合适了吧,因为他的运算处理能力已经很强了,尤其是带有 FPU 的 Cortex-M4 系列)。ARM 是英国剑桥一家芯片设计公司,但是它不制造芯片,而是向 Intel、ST 这样的公司出售他的设计。

ST 2007 年6月份正式发布了基于 ARM Cortex-M3 核心的 STM32 系列微处理器,差不多是 AVR 之后 10 年。

有了 80C51 和 AVR 的经验,小朱从一开始就没打算和以前一样在网上购买学习板来学习。小朱打算这次直接自己动手从零开始做个 STM32 的最小系统。要知道,网上最便宜的基于 STM32 的最小系统学习板也得 100 元上下,而一个 STM32 芯片也就 15 元左右。况且,STM32 支持串口下载程序,正好将以前学习 80C51 和 AVR  时的串口下载板用上。

DSC03056

STM32 最小系统

于是,从周三开始,每天晚上,小朱回到家中,就花1~2个小时研究并制作 STM32 学习板,这样一直到周五晚上,一共用了 4~5 个小时的时间,终于,STM32 最小系统制作完成,并且可以烧录程序了。

image

“呵呵,太好了!”小朱高兴极了,仿佛又一扇大门向他敞开了。

但是,短暂的兴奋之后,一阵失落袭来。虽然芯片升级了,但是,外部设备却没有,键盘还是键盘、串口还是串口、LCD 还是 LCD。协议不变,你只不过,换了个芯片,做一样的事情。又或者,应该换个角度看待这个问题,是因为我们对应用这些技术的要求高了,所以会升级。就如乐高积木,还是那些小方块(虽然进口的比国产仿制的要精细n多倍),但是,人的创意可以变换出更多新的玩意儿出来。

美剧要等着,一周只能看一集。可是过去这些电子技术,就在这短短4个月的时间里一一展现在小朱眼前,直到最近的 STM32 微控制器,只是 3 个晚上的短短 5 个小时就已经可以入门。“真是一日十年啊!”小朱叹着,关了电脑站起身来,打算去好好洗个澡,去迎接又一个周末。

原文地址:https://www.cnblogs.com/jonyzhu/p/2960550.html