时隔好久今天又抽空去逛了逛中发,发现半年来,嵌入式的市场正悄然发生着细微的变化。
在此之前,我对嵌入式系统的选型的大致概念表1所示:
表1:半年前我印象中的嵌入式市场
应用需求 | IO需求 | UI需求 | 芯片选择 | 系统和驱动 | 价格估算 |
简单IO控制 | UART | 按钮+LED | 微主控(如ARM Cortex M0/M3 8051等) | 单线程程序 | 7-9元 |
实时控制 | SPI,I2C,CAN,UART | 按钮+LED+数码管 | 实时多任务操作系统 | 8-30元 | |
复杂IO控制或传感系统 | UART,I2C,SPI | 按钮+LED+数码管 | 代码级嵌入式操作系统+固件库 | 40-50元 | |
USB设备 | USB,UART,I2C,SPI | 依靠上位机 | |||
可视化设备 | 基础IO,显示接口,输入接口 | LCD显示 | 130-160元 | ||
网络设备 | 基础IO,网口 | 依靠B/S网页 | 60-70元 | ||
可视化网络设备 | 基础IO,显示接口,输入接口,网口 | 触控/按钮阵列+彩色LCD | 高性能应用处理器(ARM Cortex A8/A9,ARM 9,ARM 11等) | 映像级嵌入式操作系统(如Linux, Android, Windows CE) | 500-600元 |
多媒体设备 | 基础IO,显示接口,输入接口,网口,音频IO,USB Host | 触控+彩色LCD显示,多任务界面 | X86处理器(PC平台) | 桌面版Linux,Windows等 | 1200-2000元 |
高强度计算辅助 | 高速数据传输端口(SPI,USB等) | 无 | FPGA,DSP | 定制算法程序 | 视应用而定 |
IO控制/扩展 | 可定制的丰富IO | 无 | CPLD,FPGA | 无软件 | ~20元 |
在以前的概念中,设计带有操作系统的嵌入式系统是一件非常复杂的工作,你需要去芯片厂商网站上下载最新的固件库,去操作系统生产商网站上购买和下载操作系统内核和需要用到的协议栈,然后把操作系统和固件库绑定,最后才能够进行操作系统之上的开发。配置操作系统之前的工作重复性非常强,几乎每一个设计嵌入式系统的人都需要进行一遍,且这些工作的芯片针对性非常强,这就意味着如果下一个设计改变了芯片选型,这些工作就需要全部重新来一遍。相比之下,建立与操作系统之上的软件由于有了操作系统的抽象,修改的程度就要小的多了。但是随着智能手机,平板等设备的广泛流行,高性能应用处理器(如ARM Cortex A8/A9,ARM 9,ARM 11等)的价格大幅度下降,甚至已经接近微主控(如Cortex M3等)的水平。高性能应用处理器相比于微主控,除了其性能强大外,更大的一个优势则在于操作系统的支持。为了推销自家芯片,现在的高性能应用处理器厂商一般都会在推出芯片时同时推出能够搭配芯片使用的操作系统ROM(一般是Android和Windows,也有少数的Linux),这样下游厂商拿到芯片后就可以直接烧入已经配置好的操作系统,使用Eclipse或是Visual Studio等高级工具进行开发了,大大缩短了开发时间。虽然这种开发方式由来已久,但是在低成本应用中(如血压计等),之前通常还是会选择微主控+代码级嵌入式操作系统+固件库的方式。算上LCD的成本,一般总成本在130-160之间。而若使用更高级的多媒体应用处理器,成本则会在500-600元之间。
但幸运的是,随着平板电脑,智能手机等设备的爆炸式发展,高性能应用处理器也得到了广泛的关注,许多厂商争相推出自家的高性能应用处理器,使高性能应用处理器的价格降到了百元不到,且各个厂商都提供了直接可用的映像级操作系统。如果用现在的高性能应用处理器来构建一个嵌入式系统,可能成本只需要200元左右,相比微主控方案距离已然不大。更何况高性能应用处理器的开发省去了操作系统配置的复杂环节,可以极大地节约开发成本。
从资源利用的角度,也可以证明高性能应用处理器方案比微主控方案更为科学。比如一种芯片要开发100个应用,用微主控方案,可能每个应用的开发者都需要配置一次操作系统,虽然每个操作系统都可能不是全功能的,但其中也包含有重复的功能。相反,如果用高性能应用处理器方案,最了解这款芯片的人——芯片的生产商将会直接配置出一个包含有全部功能的操作系统供100个开发者使用,每个开发者只需要禁用掉他用不着的功能即可,这样的效率会比之前高出许多。
所以我又做了一个无耻的预测,那就是日后随着高性能应用处理器的价格进一步走低,越来越多的简单应用,甚至是没有用户界面的应用也会使用高性能应用处理器和映像级的操作系统来Power。而随着高性能应用处理器性能进一步提升,许多原本需要PC才能完成的应用也会被高性能应用处理器纳入麾下,届时,嵌入式系统的选型将如表2所示,其带来的直接结果将包括:简单应用具有更强的稳定性,多媒体应用则具有更低的成本,代码级嵌入式操作系统被淘汰,x86市场进一步萎缩。
表2:预测的嵌入式市场
应用需求 | IO需求 | UI需求 | 芯片选择 | 系统和驱动 | 价格估算 |
简单IO控制 | UART | 按钮+LED | 微主控(如ARM Cortex M0/M3 8051等) | 单线程程序 | 7-9元 |
实时控制 | SPI,I2C,CAN,UART | 按钮+LED+数码管 | 实时多任务操作系统 | 8-30元 | |
复杂IO控制或传感系统 | UART,I2C,SPI | 按钮+LED+数码管 | 高性能应用处理器(ARM Cortex A8/A9,ARM 9,ARM 11等) | 映像级嵌入式操作系统(如Linux, Android, Windows CE) | 200-300元 |
USB设备 | USB,UART,I2C,SPI | 依靠上位机 | |||
可视化设备 | 基础IO,显示接口,输入接口 | LCD显示 | |||
网络设备 | 基础IO,网口 | 依靠B/S网页 | |||
可视化网络设备 | 基础IO,显示接口,输入接口,网口 | 触控/按钮阵列+彩色LCD | |||
初级多媒体设备 | 基础IO,显示接口,输入接口,音频IO,网口 | 触控+彩色LCD显示,多任务界面 | |||
多媒体设备 | 基础IO,显示接口,输入接口,网口,音频IO,USB Host | 触控+彩色LCD显示,多任务界面 | X86处理器(PC平台) | 桌面版Linux,Windows等 | 1200-2000元 |
高强度计算辅助 | 高速数据传输端口(SPI,USB等) | 无 | FPGA,DSP | 定制算法程序 | 视应用而定 |
IO控制/扩展 | 可定制的丰富IO | 无 | CPLD,FPGA | 无软件 | ~20元 |
上述个人愚见,异议者请轻拍~