会员服务
  首页 | 最新采购 | 现货热卖 | IC库存 | 应用资料&程序库 | 单片机销售 | 交流区 | 供应商 | 生产商 | 技术资料
应用资料:  
您现在的位置:首页 >  技术资料   上载库存  

借助新型PSoC器件进行USB应用设计

引言:设计工程师很早就熟悉USB技术了,但为现有产品添加USB接口的工作并不是很简单,会在一定程度上增加新项目的复杂性,不过现在有办法在很大程度上避免这样情况的发生。本文从技术细节角度描述了新款的PSoC及其USB接口,并探讨了可用这些器件方便设计的有关应用实例。

PSoC功能结构概览 、数字系统块、模拟系统块。
PSoC系列器件专为取代传统MCU、系统IC及其相关的多种分立元件而设计。该架构使用户能够创建定制的外设配置,满足各种不同应用的要求。此外,还包含快速的CPU、闪存程序存储器、SRAM数据存储器和可配置的I/O。PSoC CY8C24794是PSoC系列中独特的一员,因为它包括了功能齐全的全速(12Mbps)USB端口。
PSoC架构(图1)包括四大部分:PSoC内核、数字系统、模拟系统和系统资源(含全速USB端口)。可配置的全局总线使器件资源能够集成到完整的可定制系统中。PSoC CY8C24794器件可具备多达7个I/O端口,连接于全局数字和模拟互联器件,从而能够访问4个数字时钟和6个模拟时钟。
PSoC核心包括24MHz、4MIPS哈佛架构的CISC CPU,带有16KB闪存,可用于程序存储,还带有1KB的SRAM,可用于数据存储,此外还具备2KB的EEPROM,采用闪存仿真。程序闪存利用64个字节块实现四级保护,可实现定制的软件IP保护。
PSoC器件包括灵活的内部时钟发生器,含24MHz内部主振荡器(IMO),在工作温度和电压范围内误差不超过8%。24MHz IMO还可翻番为48MHz,用于数字系统。此外还具备低功耗32kHz的内部低速振荡器(ILO),作为睡眠定时器和看门狗定时器(WDT)。
PSoC GPIO提供到CPU、器件数字和模拟资源的连接。每个引脚的驱动模式可从八个选项中进行选择,这就使外部接口具有极大的灵活度。每个引脚还能生成高级和低级系统中断,并能自上一次读之后进行改变。
数字系统(图2)包括4个数字PSoC块。每个块都是8位资源,可单独使用,也可与其他块结合使用,形成8位、16位、24位和32位外围。数字块还可通过串行全局总线连接至GPIO,将任何信号路由给任意引脚。总线还可实现信号多路复用功能,并进行逻辑操作。这种可配置性使设计工作不再受到固定外围设控制器的限制。
模拟系统(图3)包括6个可配置的块,每个块都具备运算放大器,可创建复杂的模拟信号流。模拟外设非常灵活,经过定制后可支持具体的应用要求。模拟块三个成一列,包括一个连续时间(CT)和两个开关电容(SC)块。
CY8C21x34和CY8C24x94 PSoC器件与其他PSoC器件的不同之处在于,其GPIO引脚可连接于内部模拟总线。CY8C24x94包含更多功能,可以有选择地将模拟总线分为两部分。就CY8C21x34而言,所有GPIO引脚都启用后,可实现上述连接。就CY8C24x94而言,端口0到5的所有引脚都启用后,可连接至模拟总线。
系统资源为实现完整的系统提供了更多功能。此外,其他资源还包括乘法器、抽样器、低压检测和上电复位功能等。
PSoC USB
PSoC USB系统资源符合USB2.0规范,符合工作在12Mbps速度下的全速器件具备一个上行端口和一个USB地址的规范要求。PSoC USB(图4)包括一个串行接口引擎(SIE)块;一个PSoC存储器仲裁器(PMA)块;256字节的专用SRAM;一个带有内部调节器的全速USB收发器以及两个专用USB引脚。

具有56 引脚MLF PSoC器件的USB连接应用示意图。
就系统级而言,全速USB系统资源通过M8C寄存器访问指令接口于PSoC其它部分,并通过两个USB引脚与外部相连。
SIE支持5个端点,包括一个控制端点(端点0)和4个数据端点(端点1、2、3和4)。控制端点经过配置可支持SETUP、IN和OUT请求。数据端点可分别独立配置,从而响应中断、批传输、同步IN或OUT请求等。
USB串行接口引擎(SIE)使PSoC器件能与USB主机实现全速通讯。SIE可自动完成以下USB处理任务,无需固件干预,从而简化了USB流量接口的工作:

列表1:设备程序代码简单而直接。
将接收到的编码数据进行转换,将总线上要传输的数据进行格式化。
CRC校验和生成。忽略那些未通过校验和验证的传送进来的数据包。
地址检查。忽略所有地址未指向器件的事务。
发送适当的ACK/NAK/Stall握手信号。
识别标记类型(SETUP、IN、OUT),一旦接收到有效的标记,即设置适当的标记位。
识别帧起始(SOF)并保存帧的数量。
通过PSoC存储器仲裁器向USB SRAM发送数据,或从USB SRAM接收数据。
处理USB接口的多种不同部分需要固件发挥作用。SIE在主要USB事件发生后发出中断,使固件从事适当的任务,如填充和清空USB SRAM中的USB数据缓存,适当启动PMA通道,通过对USB设备的请求进行解码来协调设备列举,挂起并重新开始协调,以及确认和选择数据开关值等。
PSoC USB系统资源包含专用的256字节SRAM,其与PSoC内核中所用的SRAM页相同,但不能通过M8C存储器接入指令存取。PSoC USB的专用SRAM只能通过PMA寄存器进行存取。
PSoC存储器判优器(PMA)是PSoC USB专用SRAM与存取SRAM的两个块(M8C与USB SIE)之间的接口。PMA可提供8个通道以传输数据。M8C可使用所有的通道寄存器,但4个非控制USB端点分别由PMA通道寄存器的特定集来分配。
内部USB收发器与外部USB总线相连,根据USB2.0规范收发信号。在正常的USB操作状态下,收发器直接与SIE连接,初始化之后无需与用户互动。
与外部USB设备相连接相当简单,只需添加两个电阻即可。图5显示了具有56引脚MLF PSoC器件的USB连接应用示意图(CY8C24794)。
电容传感应用
CY8C24794-24LFXI采用了Cypress的CapSense技术,为取代机械开关与控制提供了一种有效的解决方案,转而采用简单的触控式解决方案。PSoC架构使我们能够方便地将触控系统与LED驱动器、LCD显示设备以及其他外设相连接。
就其基本形式而言,电容开关是一对相邻的平行板,如图6a所示。尽管存在较小的边缘至边缘电容(edge-to-edge capacitance),但开关布局的本意是为了最小化平行板之间的电容。如果将导体置于靠近两个平行板的位置,如图6b所示,那么就会在导体和一个电极之间产生电容,与此类似,导体和另一个电极之间也会存在电容。
电容开关组的最常见形式为:一组电容中每个电容的一侧都接地。这样,工作电容只有一侧可存取;开关是接地的可变电容。导体的存在加大了开关接地的电容。决定开关是否激活取决于电容测量是否发生了改变。
另一个系列CY8C21x34芯片具备独特的特性,可实现高效的电容开关扫描应用设计。相关特性包括:多路复用器阵列较宽,这样所有测量的通道都能使用相同的比较器和电流源;DAC电流源可调节;此外,比较器和重置开关可实现自动连接。
这种驱动与多路复用设计可绕过现有的GPIO,将所选的引脚连接到内部模拟多路复用总线,如图7所示。电容充电电流(IDAC,由寄存器DAC_D控制)和重置开关连接至模拟多路复用总线,这可降低对引脚数的要求,进而降低待处理的开关数;而且启动操作时无需外部电阻或电容器。
PSoC CapSense解决方案的基本电路与固件相对简单,开关工作环境的物理设计则相对较复杂一些。设计电容传感系统时,主要应考虑三方面的问题:PCB、覆盖材料以及与PCB和电容传感无关的其它因素。Cypress编写了一系列应用手册,详细介绍了上述领域的问题,在此不再赘述。
实例说明:按钮与发光管
CY8C24794由PSoC Designer软件、评估板、ICE-Cube电路板上仿真器以及微型编程器提供支持,能够方便地开展新设计实验。在此仅介绍基本的USB设计,通过该设计实现此操作:按下目标主机PC上的按钮,使评估板上的发光管发光。
不管开展哪种USB设计都要处理两种程序:主机程序和远程设备程序。USB不会“发送”数据,而是准备好数据,由USB主机来收集;主机控制所有通信功能,而设备只有在主机允许时候才工作。
给出的流程图显示了本例中器件与主机程序的逻辑工作关系:
main.c设备程序如列表1所示:USB_Start()调用发起由USB用户模块库处理的枚举序列;一旦枚举完成,即让缓冲器接收PC发出的发光报告,再等待设置SOF标记。SOF_ISR每隔1毫秒设置一次标记。
设置SOF标记后,将调用scan-buttons(),这是按钮去抖动例程。如果检测到某按钮发生更改,就会向PC发送按钮报告,然后再检查发光报告是否在前一个帧中被接收。如果已接收发光报告,程序就会更新本地LED。需要注意的是,对于main()而言,数据被转移到端点缓冲器中又转移出去,USB通信由SIE在后台处理。USB运行时操作就像读写端点缓冲器一样简单。


关于我们 | 会员服务 | 广告服务 | 支付方式 | 联系我们 | 友情链接

会员服务热线:

深圳矽通科技版权所有 © Copyright 2005-2007, ic-cn.com.cn All Right Reserved.  
深  圳13410210660             QQ : 317143513   点击这里与电子元件采购网联系
客服联系: MSN:CaiZH01@hotmail.com       E-mail:CaiZH01@163.com