微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于嵌入式系统的USBtoUART通信设计方案

基于嵌入式系统的USBtoUART通信设计方案

时间:12-16 来源:互联网 点击:

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语言的主程序框架。

接下来就是编写USBUART设备的上层应用程序代码了。在PSoC Designer中,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top