电子产品
按行业筛选
请选择行业
----------------------
-全部行业
------------------
-机床与金属加工设备
-刀具/量具/夹具/磨具
-模具设计与制造
-塑料机械/橡胶机械
-通用机械/化工机械
-工程机械/建材机械
-交通运输/海工装备
-农业机械
-食品机械/烟草机械
-包装机械
-印刷机械/广告设备
-纺织机械
-木工/造纸/环保/医疗设备
-物流设备
-智能楼宇/安防设备
-炉窑/热处理设备
-五金工具
------------------
-工业自动化
-佳工激光网
-仪器/仪表/衡器
-电力设备
-电子/通讯/办公文具
-家电/照明/健康设备
------------------
-基础件/通用件
-标准件
-工业原材料
-电子元器件及材料
-包装材料
------------------
-CAD/CAM/PDM/PLM
-ERP/制造业信息化
-管理咨询/认证
-服务/培训/工业设计
按产品筛选
----------------------
-本行业全部文章
--------------------
-电子产品
-手机/通信/网络设
-电子工业设备
-广播影视设备
-金融/办公设备
查看本类全部文章
未来的嵌入式设计将是什么样子?
作者:Ata R. Khan
未来,一直在改变的嵌入式系统设计环境会持续的进化。开发环境该如何变化来进行适应改变呢?Cypress半导体公司的Ata Khan有一些自己的观点。
嵌入式处理器现在已经无所不在,几乎所有用电的设备都会有一个嵌入式处理器对各种应用进行控制或(和)运算。三十多年来,价格的不断下降和运算和控制能力不断的提升推动了这些处理器的繁荣昌盛和多样化。
摩尔定律、竞争的压力和消费电子设备的不断创新,使得在不久以后,我们日常用到的嵌入式处理器将与主流的计算机处理器具备一样的处理能力。
许多的这些创新都是由人们的消费行为所推动的,人类的行为一般会忽视线性的改进,而是倾向于指数级的改进,因此驱使出更多功能和更加复杂的强大系统。正因为这样,如今的消费电子设备需要配备一个三倍MIPS于需要的处理能力的嵌入式处理器,上G容量的内存,并且要求通过所有流行的通信协议连接至网络,这要求硬件(处理器)、软件开发工具、操作系统或者编译器不能出问题。另外,嵌入式设计者本身也需要理解最新的硬件和软件并利用它们设计出可以市场化的应用。
然而,必须看到一个实际的问题是人类的设计能力“带宽”远远跟不上处理能力上升的程度。因此,复杂度的提高使设计被延期,简单的增加人手并不能解决生产力提升的问题,正如一些书籍里面指出的那样,比如畅销已久的著作《The Mythical MAN-MONTH》一书。
目前设计的形势
设计一个现代嵌入式系统是件复杂的多任务工作。第一步是定义该产品的潜在用户的行为需求,并了解竞争的前景和应对的方案。
下一步是决定公司已有的资源是否能减轻或关联能够实现的系统规格,比如软件、工具、处理器和其他需要的元器件。这些工作在实际软硬件工作开始之前必须完成。
一旦确定设计起步的前期工作完成了,最为艰巨的硬件和软件设计就要开始了。有代表性的,嵌入式设计包括三个主要的模块:处理运算、数字(外围和逻辑)、模拟(传感和控制的物理接口)。
一个系统多半是由以上三个模块的各种元器件构成,这三个模块由硬件和软件的接口进行联系。一旦一个设计在软件和硬件上“定型”了,再要改变的话很困难且需要花费时间和金钱,因为系统模块之间的软硬件具备互操作性。
嵌入式设计者需要抢在竞争对手之前将产品上市,以取得市场先机并充分重新利用投资、知识产权和工具,他们选择的架构和设计平台必须灵活并可修改。
这些工具和器件必须具备很强的灵活性来应对变化(事实上,变化无时无刻不发生),同时需要利用产业生态系统来获得大的开发社群和标准组织的支持。
这些挑战集合的结果是开发周期越长,设计需要变更的可能性就越大,这同时又让开发周期变得更长,从而形成恶性循环。因此快速的产品开发不仅能提供成本的优势,还能降低开发风险并提供最及时的用户反馈并领先于市场。
新的设计思路
假定一个典型的嵌入式系统包括处理、数字、模拟三个模块,而该系统需要合适的软件将各个模块联系起来,开发者一般会提出下面的问题:
1. 我们如何确定我们正在加速整个系统的设计进程?Amdahl定律进行了解释,整个项目进程中的一个个连续的部分的状态决定了全部的有潜力的改进。因此,一些基础的流程必须进行改变。
2. 我们如何加速学习的进程来聚焦于让设计更快的市场化?经验告诉我们采用阶梯式的细致工作比到最后再进行测试更加有效。这样的必然结果是bug越早被找出来,改进的成本就越低。
3. 如何降低总体设计的工作量?换句话来说,系统的哪些部分可以被智能的重复使用来节省时间和工作量。
4. 我们如何在所有的设计流程中执行设计变更?在设计初期的设计变更比较容易进行执行。因为整个设计流程的互相联系,在设计定型之后再进行设计变更往往就不太容易了。
5. 如何进行硬件和软件的升级?因为各种通信端口的缘故,软件更新相对更加简单,另外软件更新已经非常普遍了,并且被消费者作为一种用户体验所接受。难的是硬件功能的更新。比如,如果某个状态机需要改变,或者该状态机需要在不同的时间执行不同的任务该怎么办?
6. 我们如何利用标准的工具?因为编译器和调试器不断进化,在工具方面需要学习和改进的很多(而且往往要花钱)。新的嵌入式设计技术必须支持工业标准的工具,来提升改进的空间并降低设计的投资。
7. 我们会提供一个平台吗?本质上,采用一个被充分定义了的硬件和软件架构的可升级的平台,可以保证该设计针对一个应用的规模化,并可以重复使用以前的工作(无论硬件还是软件)。
因此一个理想的嵌入式平台需要具备一个基础的功能架构,该架构是灵活的和可动态配置的。该平台除了为嵌入式设计者创造针对特定应用的代码,还需要自动执行开发周期的所有的流程。
该架构还需要具备高度的可升级性,来支持技术和工具的重复使用,并能到大的产业生态系统的标准开发工具的支持。另外,还必须具备系统级的集成和采用高级半导体工艺的低功耗和小体积特性,这样能让客户的效率最优化并降低功耗。
一个新的设计流程
新的架构的实现方法,与以往手动的采用特定功能的微处理和外围器件、开发软件和固件构建一个嵌入式系统是不一样的。该设计需要基于由定义优秀的硬件和软件构成的集成的嵌入式解决方案。
硬件包括一个可升级的硅平台,包括处理子系统(包括内存),一个具备各种功能模块和外围的模拟子系统,一个可编程的数字模块,它们通过真正的转换组织相联系。
软件包括一个开发环境,该开发环境是允许用户构造一个完整的系统,该系统包括:
* 通用的外围
* 串行通信模块
* 标准模拟模块
* 布尔原型
* 分级的元器件(由用户定义)
* 用户创造的RTL
软件工具需要包含以下的复杂的功能:
- 用户可以将如上所述的功能放入的一个空白的区域。
- 用户可以选择广泛和通用的元器件放在这里面。
- 可放置布尔模型,加入其它部分的功能,通过RTL改变硬件功能。
- 特定功能的可编程与/或资源可供选择。
- 用户RTL的综合,设计中放置元件的功能,可编程数字逻辑资源的定制。
- 采用开关架构包括用户I/O口连接的硅平台级的布局布线。
- 为重新构造元件产生API(包括用于用户定义元件的API)和设备驱动,为用户重新定义元件产生的API需要允许参数在各个模块之间的传递。
- 允许模块功能进行基于软件命令的动态配置。
- 产生芯片级实体和元器件模块的图纸(datasheet)。
一旦上述功能都完成了,用户就可以加入应用代码,并选择编译器和调试器进行工作,打造最优化的系统。这个流程可以简单的用下面的流程图表示:
一些可配置的子系统如下:
时钟:提供给用户选择时钟源,选择时钟源方便到只用选择并点击即可,所有的片上连接,控制寄存器设置,和初始时钟配置都可以自动完成。
中断:一个ISR(中断服务程序)允许一个数字信号连接到中断输入,这个工具允许指定中断的优先级和信号的向量数量。
DMA:DMA是通用资源的另一个例子(像时钟、中断一样),许多模块都会选用(换句话来说,始由用户决定是否采用的)。
如何实现?
在我们的可编程SoC架构里,Cypress就贯彻了该先驱的新的设计流程。
1. 硅平台可升级并重复使用,无论在硬件还是在软件上。
2. 软件开发环境可自动进行器件的选择 并尽可能创造用户定义模块的API,这样设计者就可以集中关注附加价值应用代码的开发。
3. 标准工具和调试器的使用,设计者可以复用设计并优化学习曲线,同时进入能提供工业标准工具的大的生态系统。
Ata R. Khan是Cypress半导体公司的技术部副主席,负责市场策略和新的可编程SoC系统架构。他2006年从NXP公司加入Cypress。Ata具有加州大学伯克利分校的电子工程硕士学位,和Santa Clara大学的MBA学历,还具有University NED工程技术大学的本科学位。(end)
文章内容仅供参考
(投稿 )
(10/28/2008)
对 电子产品 有何见解?请到 电子产品论坛 畅所欲言吧!