用CP2101将USB口扩展成串口

17003404   2006-10-13 17:17 楼主

用CP2101将USB口扩展成串口

 

  摘要:CP2101及其升级产品CP2102最美国Silicon公司生产的高集成度USB-UART桥接电路。它们能够用最简单的外部电路、最少的外部器件及最小的电路板面积简便实现USB2.0到UART的转换。文中介绍该电路的主要特性和实际应用方法。

    关键词:CP2101 UART USB
引言
CP2101及其升级产品CP2102是美国Silicon公司推出的USB-UART桥接电路。该电路的集成度高,内置USB2.0全速功能控制器、USB收发器、晶体振荡器、EEPROM及异步串行数据总线(UART),支持调制解调器全功能信号,无需任何外部的USB器件。功能强大,采用MLP-28封装,尺寸仅为5mm×5mm,占用空间非常小。
与其他USB-UART转接电路的工作原理类似,CP2101通过驱动程序将PC的USB口虚拟成COM口以达到扩展的目的。虚拟COM口(VCP)的器件驱动程序允许一个基于CP2101的器件以PC应用软件的形式作为一个增加的COM口独立于任何现有的硬件。COM口使用运行在PC上的应用软件以访问一个标准硬件COM口的方式访问基于CP2101的器件,PC与CP2101间的数据传输是通过USB完成的,因此,无需修改现有的软件和硬件就可以通过USB向基于CP2101的器件传输数据。
1 CP2101的特性
CP2101的体积虽小但功能非常强大,其主要特性如下:
·内含USB收发器,无需外接电路器;
·内含时钟电路,无需外接振荡器;
·其内部512字节的EEPROM可用于存储产品生产商的ID、产品的ID序列号、电源参数、器件版本号和产品说明;
·内含上电复位电路;
·片内电压调节可输出3.3V电压;
·符合USB2.0规范的要求(12Mb/s);
·SUSPEND引脚支持USB状态挂起;
·异步串行数据总线(UART)兼容所有握手和调制解调器接口信号;
支持的数据格式为数据位8、停止位1、2和校验位(包括奇校验、偶校验和无校验);
·波特率范围为300b/s~921.6kb/s;
·内含512字节接收缓冲器和512字节发送缓冲器;
·支持硬件或X-On/X-Off握手;
·支持事件状态。

图1

此外,通过厂商及销售商免费提供的、适用于Windows(含Windows CE)、Linux、Mac OS-X等多个操作系统的驱动程序,可省去CP2101系列器件二次开发的投入。这样,在一般情况下,焊接完毕并安装好驱动程序即可使用。
2 工作原理
CP2101的内部结构及外部基本连接电路如图1所示。由图1可见,用CP2101进行串口扩展所需的外部器件非常少,仅需3只去耦电容器即可,使用起来非常方便。
2.1 USB功能控制器和收发器
CP2101中的USB功能控制器是一个符合USB2.0的全速电路,带有收发器和相应的片内上拉电阻器。USB功能控制器管理USB与UART间的所有数据传输,以及由USB主控制器发出的请求命令和用于控制UART功能的命令。通过USB挂起和恢复信号可支持CP2101及外部电路的电源管理。当在总线上检测到挂起信号时,CP2101将进入挂起模式。在进入挂起模式时,CP2101会发出SUSPEND和SUSPEND信号,同时,在CP2101复位后,CP2101也会发出该信号直到USB要求的器件配置完成。CP2101的挂起模式会在下述任何一种情况出现时被取消:
(1)检测到继续信号或产生继续信号时;
(2)检测到一个USB复位信号;
(3)器件复位。
在退出挂起模式时SUSPEND和SUSPEND信号被取消。
需要注意的是SUSPEND和SUSPEND和CP2101复位期间会暂时处于高电平,如果要避免这种情况,可以使用一个大的下拉电阻器(10kΩ)来确保SUSPEND在复位期间处于低电平。
2.3 异步串行数据总线(UART)接口
CP2101的UART接口包括TX发送、RX接收数据信号,以及RTS、CTS、DSR、DTR、DCD和RI控制信号。UART支持RTS/CTS、DSR/DTR和X-On/X-Off握手,还可以通过编程使UART支持各种数据格式和波特率。UART的数据格式和波特率编程可在PC上进行。表1所列是CP2101串行总线的数据格式和波特率。

表1 CP2101串行总线的数据格式和波特率
数据位 8
停止位 1
校验位 无校验、奇校验、偶校验
波特率 300,600,1200,1800,2400,4800,7200,9600,14400,19200,28800,38400,56000,57600,115200,128000,230400,460800,921600
这里还需注意的是,CP2101异步串行数据总线的数据位和停止位是固定的,也就是说,在实际使用中可以通过软件改变校验位和波特率,但是,改变数据位和停止位会在通讯中出现异常现象。
2.3 内部EEPROM
CP2101内部集成了一个EEPROM,可用于存储由设备原始制造商定义的USB供应商的ID、产品的ID说明、电源参数、器件版本号和器件序列号等信号。USB配置数据的定义是可选的。如果EEPROM没有被OEM的数据占用,则采用默认方式配置数据。注意,尽管如此,对于可能使用多个基于CP2101的器件连接到同一个PC的OEM应用来说,它们需要一个专一的序列号。
内部EEPROM可通过USB进行编程,以便OEM的USB配置数据和序列号可以在制造和测试时直接写入到系统上的CP2101中。Silicon公司提供一种专门为CP2101内部EEPROM进行编程的工具,同时还提供一个Windows DLL格式的程序库。该程序库可在制造过程中将EEPROM编程步骤集成到OEM中,以便用自定义软件进行流水线式测试和序列号的管理。EEPROM的写寿命典型值为100,000次,数据保持时间为100年。
3 应用实例
CP2101的实际应用参考电路如图2所示。该电路经过制板和调试,证明是完全可行的。

图2

    (1)以上电路支持全功能串行通信应用。为了确保数据收发的稳定性,避免通信过程中的干扰,还可以在USB接口端添加滤波电路。
(2)电路中采用的多通道RS-232收发器是Maxim公司的MAX241系列或MAX223等系列电路(详情请参看MAXIM公司RS-232收发器数据手册),该系列支持在挂起状态(当CP2101进入挂起状态时,SUSPEND引脚变为高电平,从而使RS-232收发器亦进入挂起状态),保持接收外界数据有效。在 在使用电路时,需要注意EN引脚及SHDN引脚的正确连接。
在很多简单的串行通信中,仅使用TXD/RXD二个引脚的信号,在这种情况下可以使用通道数更少,封超更小的RS-232收发器。
(3)CP2101的底部有大片金属,在芯片内部接地。因此在制板时一定要保证没有非接地通孔在CP2101的中间通过,或者保证通孔不与其发生短路。为了保证电路工作的可靠性,建议不要在CP2101焊接面板层的中间部分进行布线。
(4)CP2101的UART总线上的信号能够被单片机等直接识别,因此应根据具体应用要求决定是否需要进行电平转换。
4 结束语
CP2101是一款功能强大的USB-UART桥接电路,5mm×5mm的外型使其占用空间非常小,用它将USB口扩展成串口非常简单易行。同时由于其内部存储产品的ID等信息的寄存器可以直接通过USB口改写,因此用其开发相关产品还有省时省力的优点。唯一遗憾的是,由于UART本身的限制,其最大波行率只能达到921600b/s,不能发挥USB2.0并没有多大的意义。目前,CP2101的升级产品CP2102已经面市。

回复评论 (1)

Re: 用CP2101将USB口扩展成串口

呵呵谢谢顶了好文
点赞  2006-10-31 22:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复