DIY编程器网
标题:
ASIC与ARM的“强手联合”
[打印本页]
作者:
liyf
时间:
2012-1-16 18:44
标题:
ASIC与ARM的“强手联合”
引言
嵌入式世界的范围和概念极其广泛,可以从ASIC到MCU,而ASIC是有着巨大的潜力和创新力的一种技术,尽管它的设计非常昂贵,并且所需世界要花费数年,但这依然不影响它的巨大市场潜力。相比而言,单片机方案就便宜得多,时间花费也短,只需几个月甚至几周就可以了。但是不论ASIC还是单片机,他们都收到第三方芯片的限制。在最终产品上来说,他们还是有很多相似点和共同点的,都主要使用ARM CPU核,包含标准的通信接口,片内整合了大量的模拟功能,支持低功耗工作和快速唤醒。
图2 一些工具,例如赛普拉斯的PSoC Creator可以通过选择你所需要的功能实现可编程模拟电路设计,可以无需考虑实现细节
这种可编程平台的工具中典型的例子就是赛普拉斯半导体的PSoC Creator。PSoC Creator支持PSoC 3和PSoC 5器件设计,它提供原理图设计接口,用户可以根据需要绘制,可以通过用户参数编辑器来配置所选器件。在目录里用户可以预创建模拟(和数字)器件,在那里可以看到工程实例和数据手册,就像是片外的ADC。当在设计中使用一个器件时, 工具会自动生成API接口,使用者不需要进行寄存器设置,或者担心ADC的次序或时序。
3 具备软件开发环境的整合模拟数字功能的设计
使用模拟器件原理图设计解决可编程模拟问题是很有效的,它并不是整个的解决方案。开发人员也需要一个工具支持数字设计,更重要的是,还要支持应用软件设计。
在数字设计里原理图设计绝不是新鲜事物,支持数字和模拟电路设计整合成一个单一的器件的平台越来越受欢迎。然而,使用多个工具来完成一个设计,这也不能吸引开发人员。开发人员更希望在一个编辑器里进行数字和模拟设计,用相同的环境创建,调试和测试上述设计。
可编程平台的供应商需要记住,在MCU的世界,设计者的设计离不开软件中心的集成开发环境(IDE),需要它进行源码编辑、项目管理、工具编译,在一个单一构架下一起调试。在ASIC世界里,对于应用开发,他们是相同的,芯片设计人员和软件开发人员很少是一个团队。两组中的任何一组都不希望丢弃他们方便的IDE增加新的工具来解决它们之前不关心的问题。这两个团队都需要一个现代的IDE,这个IDE看起来和用起来就像他们以前用过的那样,甚至需要更引人注目的特点来证明IDE已经变化了。
图3 整合了模拟比较器和数字计数器的过电压定时器电路
我们通过过电压定时器举例说明一下这些想法,它使用一个模拟比较器和一个数字计数器来监控输入电压。如果引脚电压超过参考值,比较器开启计数器,一段特定的时间后 (当然,这个时间可以通过设置一个参数来实现),在引脚发出一个错误信号并触发中断服务程序(ISR)。这个简单的例子很容易地整合了数字和模拟电路设计,开发人员可以从草图开始设计,只需考虑MCU的工作,也就是说,连接了引脚,时钟,参考电压和中断,那么就可以设计很难实现的功能了。
当这个设计创建后,开发环境为器件生成API。这使得开发人员可以不需了解它的实现方式,直接使用这些器件。例如,开发人员可以通过API改变计数器的timeout周期或得到其值,关闭中断,关闭时钟等等,不需要研究器件的参考手册或示例代码。通过从原理图里建立硬件,可编程器件提供了固定功能芯片所不能比拟的优势,因为工具自动提供了所有的设置代码,使接口到所有片上功能的设计成为一个很简单的过程。
图4 PSoC Creator创造者的工作浏览器窗口显示了为比较器,计数器,时钟和中断服务程序生成的源文件
API的生成其实是把硬件设置参数映射到软件抽象概念的延伸。例如,要建立一个时钟,开发人员只需要把它放到设计里然后设置所需的频率。开发工具会负责如何从片内或片外已知的时钟源获得在公差范围内的适当的频率。启动和关闭时钟只需要简单的调用API即可,例如ctr_clock_STart()或ctr_clock_Stop()。根本不需要修改寄存器来选择时钟源,设置分频,选择它就象是片上功能的输入一样,或者可以通过位操作实现开启/关闭。
开发工具可以为系统资源(例如时钟,中断,DMA,或引脚)生成API,可以节省时间,同时,片上模拟、数字和通信外设API也使得开发可编程器件比MCUs 或 ASIC变得更容易。当使用了最流行的嵌入式ARM核后,相对于文章开始所看到的对照图,集成的原理图设计工具比对照图两端的设计表现出强大的优势。随着可编程芯片越做越好,性能越做越强,ARM核越来越强大,模拟功能越来越强,成本越来越低,这一切似乎越来越清楚地表明,平台支持的软件将确定它在市场上是否会成功。日常开发工具是开启芯片潜能和扩大设计范围的钥匙,最重要的是,它会赢得嵌入式工程师的喜爱,因为他们一直在做一件事情:找一个更好的方法来解决所有难题。
欢迎光临 DIY编程器网 (http://www.diybcq.com/)
Powered by Discuz! X3.2