微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于CH341A的USB串口通讯设计

基于CH341A的USB串口通讯设计

时间:04-02 来源:互联网 点击:

本设计采用MAX223是为了减小产品体积,实现标准9线RS232串口的转换,在实际成型产品中,可以采用3个MAX232代替,由于外围电容以及集成电路数量的增加,转换器的体积也会随之增大。在大多数场合,3线串口即可满足要求,如STC系列单片机的ISP程序下载应用,此时,可采用小型化的CH341T及单片MAX232进一步减小体积。
利用串口调试助手对转换器进行通讯测试的结果如图4所示。测试过程中,转换器与计算机连接后虚拟端口为COM3,利用RS232标准线缆将转换器与另一台计算机的COM1端口相连。通讯采用的波特率为9 600,8位数据位,1位停止位,无校验位,2个端口每隔1 000 ms自动发送数据。由图4可见,该转换器能够在不同计算机的USB/RS232端口间进行可靠通讯。此外,采用2个转换器,可实现不同计算机间的USB通讯,经测试工作可靠。


2.2 MCU与PC之间USB通讯适配
该适配电路适用于计算机无RS232接口,却需进行RS232通讯的数据采集系统,MCU进行底层相关数据的采集与存储,然后在上位机的控制下通过适配电路进行数据的传递。MCU与PC机通过USB接口进行通讯的适配器原理电路如图5所示,在本设计中MCU采用microchip公司的PIC1 6F877A,利用MCU的串口模块,可以与CH341A直接构成3线串口通讯方式,经过CH341A转换后,通过USB接口与PC机相连。当PC串口通讯波特率较高或者单片机来不及接收,利用MCU的RD0引脚控制CH341A的TEN#引脚,当MCU空闲且可以接收串口数据时置TEN#为低电平,当单片机较忙或者不便于接收串口数据时置TEN#为高电平。使CH341A暂停发送下一个字节,实现速率控制。

单片机软件流程如图6所示,系统初始化完成I/O口、看门狗等设置;串口初始化进行波特率、检验位、通讯方式等设置。

上位机软件向单片机发送一个指令,当单片机检测到该指令后判断是否有键按下,如果有,则进行相应键值的判断,根据键值的不同向上位机发送不同的数据。在对本电路测试中,上位机指令代码为“CCh”,单片机发送的数据与键值相对应,如按下1号键,发送数据“01h”,测试结果如图7所示。

上述两种产品结构紧凑,体积小巧,通讯可靠,可以满足绝大多数应用场合的需求,但在通讯速率的设置上,应尽量采用CH341推荐的波特率,否则可能出现通讯异常的情况。
实际上,CH341推荐的波特率基本涵盖了各类通讯软件及产品所采用的波特率,也与51系列MCU采用11.059 2 MHz晶振时设置的波特率相兼容,因此,推荐波特率也可以满足各种场合的需求。

3 结束语
CH341A作为一种新型的、功能强大的USB接口转换芯片,可以工作在多种模式,且接线简单、控制方便、使用灵活,可满足用户的多种需求。由于CH341A屏蔽了USB接口的底层协议,可以方便地在嵌入式系统中增加USB接口,无需电平转换器件,在驱动程序的控制下直接与PC机通讯,极大地方便了用户,缩短开发周期、减少研发费用。

上一篇:ASIC和FPGA的优势与劣势
下一篇:fpga

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

网站地图

Top