基于嵌入式系统的USB to UART通信设计方案
用的SRAM页相同,但不能通过M8C存储器操作指令存龋PSoC USB的专用SRAM只能通过PMA寄存器进行存龋
内部USB收发器与外部USB总线相连,根据USB2.O规范收发信号。在正常的USB操作状态下,收发器直接与SIE连接,初始化之后无需与用户互动。
就系统级而言,PSoC的全速USB系统资源通过M8C寄存器访问指令进行操作配置,实现与PSoC其他部分的连接,并通过2个USB引脚与外部相连。
2.3 USBUART用户模块
USBUART用户模块是PSoC集成开发环境PSoCDesigner中专门为用户使用PSoC USB预先定义的自动配置资源。USBUART实现了USB设备功能,并利用PSoC的1个USB端口来仿真1个COM端口,同时在PSoC器件侧提供了类似于UART的高层API函数。因此利用该用户模块可以方便地替代传统的基于RS232(UART)接口的通信方案。2种方案的对比如图1所示。
USBUART是在PSoC的USB端口基础上,在USB总线上仿真RS232端口。这种方法的主要优点在于,PC的上层应用程序将此USB设备仍旧看作是1个COM连接,从而使上层操作非常易于实现。这种方法可以使用在从Windows 98SE到Windows XP所有版本的MicrosoftWindows操作系统中的标准COM口驱动程序——MSC0M控件来编写的应用程序中。
USB通信设备类(CDC)规格定义了许多通信模型,其中包括了1个在USB上实现串行通信仿真的抽象控制模型。Microsoft Windows USB调制解调器的驱动程序usbser.sys符合此规格。
在一台新的USB设备第一次连接到一台WindowsPC时,Windows将要求用户提供驱动程序。Windows2000及以后版本在安装驱动程序时需要一个INF文件。Windows没有为这个usbser.sys驱动程序提供标准的INF文件。为了安装能够在USB上仿真RS232的设备,用户必须提供一个能够将附加的设备映射到MicrosoftCDC驱动程序的INF文件。USBUART用户模块会自动生成这个必要的INF文件,建立在工程项目的LIB文件夹内供使用。在提供了INF文件后,驱动程序允许USB1设备仿真成1个USB端口。
PC上面向COM口终端应用程序中的设置(波特率、数据位、奇偶校验、停止位和流控制)都不会影响数据传输的性能,因为此时的COM口实际是 USB设备,使用USB协议来控制数据流。但是,除了流控制以外的COM口终端设置值,在PSoC端可以采用特定的API函数调用检索到,以便在需要时用于真正的RS232设备。
3 软硬件设计
实际上应用工程师并不需要了解如此多的关于USB的底层内容和协议。只要基本掌握和看懂图1所示的原理,借助PSoC:USB和USBUART,就可以在很短的时间内实现基于USB接口的PC与嵌入式系统的连接通信。下面具体介绍该方案的软硬件设计和实现。
3.1 硬件设计
图2是采用CY7C64215实现该方案的原理图。
图中的CY7C64215是带有1个全速USB接口的PSoC芯片,左边的USB—B为USB连接座,其中D+和D一为2个USB信号线,通过 2个51 Ω电阻与CY7C64215的2个USB引脚D+和D一连接。整个系统电源是通过USB连接座上的5 V引脚获取,即由PC机的USB口提供工作电源。需要特别注意的是,电路中使用了1片电压调整芯片,将从USB口上输入的5 V电压调整为3.6 V后,再作为CY7C64215的工作电源。这是因为USB协议中规定了USB信号线D+和D一的电平为O~3.6 V,CY7C64215采用3.6 V的工作电压是为了保证USB信号线的电平匹配。如果CY7c64215直接使用5 V电源工作,那么在D+和D一信号线上必须对地增加2个3.6 V稳压二极管,分别将它们钳位在3.6 V,这样才能保证PC正确识别该USB设备和USB通信的正常。
图中右边的ISSP为PSoC的编程下载口,PSoC器件支持ISSP在线串行下载,编译生成的HEX文件可以通过该编程口烧录到PSoC内部的Flash中。图中的LED是USB工作指示灯,在USB通信过程中会闪烁。
3.2 PSoC软件系统设计过程
软件系统设计过程全部是在PSoC的集成开发环境PSoC Designer 5中完成的。首先建立1个新的项目,选择带有USB接口的CY7C64215芯片。在芯片中选择添加USBUART用户模块,并为该模块填写相应的参数。表1给出了USBUART的几个参数及意义,其中MaxPower仅当选择设备由USB总线供电时有效。
在这个示例中,除了选择必需的USBUART用户模块外,还选择使用了1个LED用户模块,该模块用于控制LED指示USB的工作状态。根据硬件电路,配置该模块的输出为CY7C64215的P1_2引脚,用于驱动LED。
选择配置完2个用户模块后,就可让PSoC Designer生成应用程序框架了。在这个过程中,PSoC Designer会自动综合所有的配置信息,更新和产生所使用用户模块的底层汇编语言驱动代码和API函数,并同时生成一个C语言的主程序框架。
接下来就是编写USBUAR
- Cypress PSoC蓝牙低功耗开发方案与电路图详解(10-09)
- PSoC 4 BLE笑迎物联网和可穿戴低功耗无线设计挑战(02-10)
- Apple Watch磁力充电线拆解:内部器件还挺多(05-07)
- USBee:电脑不联网也能被窃取数据(08-31)
- USB 3.0信号完整性测试简介(12-27)
- USB枚举详细过程剖析(12-07)