想想,现在设计人员真是挺难的。为了要方便实现差异化,提高设计的灵活度,可编程功能成了很多时候的重点诉求,这股风潮甚至吹到了单片机领域;但不可否认的,如此也凭添了些许困难度。Cypress(赛普拉斯半导体)的PSoC产品包括一个8位的MCU,以“可编程的模拟和数字资源”为特色纵横业界;自2003年推出后,到目前为止全球出货量已突破1亿片,客户数有1,500个。它的应用范围极广,包括:消费、计算机、工业、医疗设备,以及触摸按键的应用。
Cypress表示,苹果iPod上面的触摸旋转部分即是都是PSoC的成功案例,而近来刮起旋风的LG新款巧克力手机也是PSoC的杰作。这样一个战果辉煌的产品,作为供应商的Cypress却在推广过程中感受到客户使用PSoC开发环境的困难,意识到开发套件的重要性,因而决定创建一些简单易用的开发套件,进一步完善它的功能,让终端设备的设计人员可以用友善的软件平台进行设计工作。PSoC Express就是在这么一个期待中诞生的产物。什么是PSoC Express?它是一个可视化、嵌入设计工具,把设计仿真、到最后生成一连串目标代码的整个环境集成在一套系统,以一个亲切的图形化可视环境取代枯燥的编程语言实现。
摆脱Machine-level语言的梦魇
Cypress的PSoC Express开发套件高级产品经理Jon Pearson介绍说,相较于原有的PSoC Designer、只能从非常底层做设计的传统开发系统,PSoC Express省却了管脚选定及逐一设定的麻烦;这套工具在嵌入式环境里做开发不需要写代码,对每一个“库”的行为只需从系统功能级来下手,设计人员并不需要掌握汇编语言或C语言的细节。设计者只需在高层次的存储进行设计,不需接触到下面具体低层的设计;但若想了解底层具体的实现状况,也是可行的。
“实用性强”是它的另一个特色,现有的模块都是从实际应用中摘取出来的。在PSoC Express里面做设计大致有4个步骤:1.选定输入、输出以及接口的条件;2.定义输出行为;3.在环境中做仿真,确认所给定的输入条件是否得到了想要的输出结果;4.生成目标代码,然后下载到PSoC器件里面。这样一个设计就完成了。“简单的几个步骤,就能让以前没有设计经验的人,也可在很短的时间内完成一个PSoC的设计,这也是我们做PSoC Express开发套件最终的理念”,Pearson如此声明。
在这个设计环境里面,包含的输出/输入种类相当广泛;界面中的每一个输入和按钮行为,或者输出控制都有详细的说明,例如:LED灯的开关控制。使用者只需单击一下鼠标的右键,就能把想要的模块放到这个平面上,轻松选定输出、输入和接口状态,非常简单。其次在定义输出行为方面,同样只要单击一下鼠标右键,选取“转移功能”这个选项就会出现一系列的规划包,设计人员可以具体定义想输出的行为,包括:输出/输入的对应关系、具体输出的功能等。
即使存在可能多个输入影响单个或多个输出的状况,也可在图形化的环境下完成。在仿真界面上,可以看到对每一个选定的器件都有一个监控的屏幕;在访问的过程中可以具体看到,某一个状态下相应的输出会是如何?以便在特定情况下追踪该输出是否与所构思的设计相符。到了生成具体目标代码和下载到具体芯片阶段,只要按一下“建立”功能,就会出现相应的器件列表,然后只要选定使用的PSoC元器件名称,就可以生成目标代码,包括器件的期限等一些具体细节;可以使用缺省值,也可以按照需要改动。设计人员可以选择让系统代劳、自动生成管脚分配,也能自己指定(当然,有些器件本身所需要使用的一些管脚是不能改动的)。
整合环境方便代码移植转换
PSoC Express还拥有良好的“可移植性”;在1.1版本以前,PSoC Express是构架在PSoC开发环境下,其执行必须依托于PSoC的开发环境,到了2.0版已可独立运行;到了2.1版,Cypress更想直接通过某种应用互通有无,其整个的底层设计都是由XML构成,使在PSoC Express下做的设计具备很强的通用性,可在不同PSoC系列产品里转换。
“无缝多处理”是PsoC的另一个特性,让设计人员可在远端控制输入、输出,好像手上真的有这些硬件连接一样,只要简单的拖拉就能实现形式各异的各种接口,即使使用多个器件也像使用单个器件一样方便。Pearson现场演示了两个无缝多处理的例子:一是用多个温度传感器控制系统风扇,根据温度的高低决定风扇的启动、停止,或者转速的快慢;另一个是用I2C这样一个接口对远端的接口进行一个传感,从逻辑上它和第一个例子是相同的,区别只在一个是直接通过温度传感器,一个是通过I2C把现场的情况传过来。
要使得PSoC Express符合“实用性”的期待,一个非常丰富和实用的库是必不可少的。其内建的基础函式库,采用开放式构建,内容相当丰富,第三方供应商也可向Cypress免费申请将自己的元器件信息加到里面,由Cypress负责对其元器件进行测试和验证,通过者会在这套开发工具里明确标出,确保它的可靠性,让终端客户可以放心使用。如此将使这个开发工具积累越来越多实用的库组件。
面对听来如此几近完美的工具,我们仍不免有一些疑问:既然PSoC的应用领域如此广泛,各类输入、输出接口也各异,又岂是一个简单的菜单就能包山包海地加以集成?Pearson解释说,“这就是我们积极对第三方开放的理由,开放式构架能让使用者往里面加东西,然后由Cypress来验证,通过者就可以在相应的实际应用领域被别人重复使用,使库文件不断丰富,到最后形成像图书馆一样的效果,方便查阅及使用。这个库目前有200多个驱动程序,未来一年内可能会再扩充一倍。”
他指出,该套件一开始主要针对风扇和LED控制的应用,后期则会对传感器有进一步的着墨。例如CapSense本身即是PSoC的应用,PSoC Express从最基本、简单的按钮形式开始,后续Cypress还将把滑条也加进去,陆陆续续添加一些更复杂的功能,既有触摸按键,还可控制LED灯的明暗程度。在PsoC的IDE整合开发环境下都是互通的,可把代码移植到同一个环境中做设计,即使无法在图形界面上做的事情,也可到底层用C语言做。但至少,这个平台是一个非常简单的起点,在不同状态下都可以使用。
开放架构,欢迎第三方踊跃加盟
“今年仅上半年,由我们第三方加入和开放这个库的元器件就有60个,后面估计会有更多的元器件加入”,Pearson说。整个PSoC Express从2003年开始提出概念,一直到2004年12月才正式发布1.0版,今天所发布的是2.1版本。他并透露,除了向第三方开放的元器件外,Cypress自己也会做一些更新,包括:触摸式和无线USB这些接口,都会陆续被添加进来;2.1版本之后可能还有非常大的改进及提升,以便把库里面元器件的类型不断的加大,且这些升级都是免费的。
从2.0到2.1版本,Cypress进一步优化了设计流程,从一开始设计就从整个“系统”的角度去考虑干扰等问题,增强实用性。PSoC Express 2.1版增加了众多新型设备驱动器,设计人员能够选择所需驱动器并在PSoC器件中轻松自如地设置诸如7段显示器、热电耦、加速计、I2C远程监控设备、远程传感器以及环境光传感器等有关功能。
由于PSoC Express在更高的抽象概念水平上运行,且无需固件开发,因此设计人员只需要数小时或数天时间即可完成对PSoC器件的新设计开发、仿真及编程。该新型工具不仅使用户能针对Cypress的任何PSoC器件来定位设计方案,而且还可创建定制的项目文档,包括带有寄存器映像的数据表、接口示意图以及材料清单(BoM)等。设计人员在无需编写任何微控制器代码的情况下即可更快速地实施可靠的定制应用。为进一步加速设计周期,PSoC Express还以PSoC Express为基础的“一级内容驱动架构”,提供设计人员学习借鉴的说明性示例,设计人员既可完全照单全收,也可进行修改以满足特定应用要求。
获专利的应用生成引擎(透明连接至获奖的PSoC Designer低级代码生成器)采用一套包括:现实环境设备驱动器(如风扇、热敏电阻、开关、电压等)、传输功能(状态机、真值表、阈值检查、优先级编码器等)以及I2C与RS232等通信协议的目录。Cypress计划每季度发布更新目录,今年晚些时候还将发布完整的内容开发人员指南,以帮助第三方生成PSoC Express内容。PSoC Express 2.1目前已在赛普拉斯网站上免费提供:www.cypress.com/psocexpress。