基于CH341S的USB接口设计与实现

合集下载

用CH341实现的USB_ISP下载线

用CH341实现的USB_ISP下载线

CH341A版USB_AVR_ISP下载线使用说明
CH341A版USB_AVR_ISP下载线,因其成本低、使用方便、下载速度快而被推广。

当你得到该下载线后,在笔记本上下载AVR单片机程序将会是一件很有意思的事。

请按如下步骤操作:
1、安装驱动程序,文件名是:CH341PAR.EXE,双击后出现如下界面:
点击INSTALL安装。

将下载线插入电脑USB接口,电脑会检测到新硬件,并提示你安装对应的驱动程序:
选择自动安装软件,点下一步,电脑开始安装,
最后提示你“完成找到新硬件向导”,点击完成,第一步完成。

2、下载单片机程序,将下载线与单片机连接,打开该下载线的专用编程软件,文件名:
CH341DP.EXE,
目前该编程软件的最新版本是1.3,支持常用AVR和51单片机。

编程软件可以自动识别AVR单片机,对于下载线所支持的两款51单片机,则需手动选择,笔者现在用的是MEGA8单片机,下载的时候可以选择MEGA OUTO或MEGA8。

对于需要配置晶振来源的芯片来说,最好在下载前进行配置,否则有下载失败的可能。

切记,勾选的表示配置成0,未勾选的配置成1。

不要配置的就跳过这一步,需要配置的勾选好后点“写配置”,成功后点击“取消”退出,进入下一步,浏览选择下载文件(一般是HEX文件),然后点“下载”!
CH341A资料链接/download/CH341/CH341DS2.PDF 下载线驱动软件链接/download/CH341/CH341PAR.ZIP ISP下载软件链接/download/down.asp?id=108
下载线电路图。

CH341PAR_Android 库接口说明

CH341PAR_Android 库接口说明

CH341PAR Android JAR库接口说明版本: V1.00CH341PAR Android JAR库接口说明版本: 1简介CH341是一个USB总线的转接芯片,通过USB总线提供异步UART、并口、常用的2线和4线同步串行接口等方式。

并口方式下,提供了EPP/MEM 8位并行接口,而常用的同步串行接口主要包含2线IIC、4线SPI等。

本文档主要介绍CH341USB转EPP、MEM、IIC、SPI模式(以下简称CH341PAR)操作的Java Driver 库,以及Android下如何使用APK操作CH341PAR实现数据通讯。

该驱动基于Android USB Host协议完成,用户可调用所提供的相关接口API实现与Android USB Host的通讯。

CH341PAR提供的库需要满足以下两个条件方可实现数据通讯:1、Android 3.1及以上系统版本;2、Android端具有USB Host或OTG接口。

本文档将会重点说明Android USB Host与CH341建立通讯机制的Java包API以及我司提供的演示程序的操作说明。

关于Android USB Host协议说明,可以参考Google官方文档。

1、Android USB Host本文档所描述的演示程序皆是针对Android 3.1及以上版本系统。

Android 应用程序的启动参数是定义在device_filter.xml文件中的product-id和vendor-id。

基于CH341PAR开发的Android应用程序主要分为两个部分,如下图:图1.1 CH341PAR Android ApplicationUser Layout:主要是由用户根据自己的需求完成相关的代码,通过调用CH341PAR相关的接口函数实现EPP、MEM、IIC、SPI的通讯方式。

我司所提供的例程基于Fragment结构设计,在Android手机或平板上会呈现出不同的主界面。

基于CH341的USB_UART的设计与实现

基于CH341的USB_UART的设计与实现

第3期 2007年6月工矿自动化Industry and Mine AutomationNo.3 Ju n.2007文章编号:1671-251X(2007)03-0121-02基于CH341的USB-UART 的设计与实现李芙玲1, 张 瑾1, 闫跃升2(1.华北科技学院,河北三河 065201;2.吉林石油集团热电厂,吉林松原 138000)摘要:介绍了利用CH 341将PC 机的U SB 接口转换成通用异步串行(UART)接口的设计与实现方法,简要阐述了CH 341的功能特点,详细介绍了将U SB 口转换成UART 接口以及进一步转换成RS485接口时的接线方法、PC 机驱动程序的安装及CH 341接口的识别方法。

关键词:PC 机;串行通信;USB 接口;UART 接口;RS485接口;CH 341 中图分类号:TP336 文献标识码:B 收稿日期:2007-02-15作者简介:李芙玲(1974-),女,讲师,硕士,研究方向为JAVA 技术、单片机应用。

0 引言以PC 机和单片机为主体构成的分布式智能化测量和控制系统中,大多以串行通信的形式实现PC 机与单片机的通信。

但是PC 机的串口数量有限,一般就1个或2个,有的笔记本电脑甚至没有外置串口,这就使PC 机实现串行通信受到了限制。

由于USB 接口具有不占系统资源、即插即用和易于连接和扩展等优点,所以成为了现代PC 机标准接口。

如果能用1个电路将PC 机的U SB 口模仿成1个串口,能够象普通串口一样实现串行通信及相关控制,就能够解决PC 机串口数量不足的问题。

南京沁恒电子有限公司生产的U SB 总线转接芯片CH 341能够完成上述功能,通过CH 341将USB 接口模仿成串口,PC 机和单片机的通信程序不需要作任何变动,即可实现PC 机通过U SB 接口实现与单片机的串行通信。

1 硬件电路设计1.1 CH 341的功能特性CH 341是一个USB 总线的转接芯片,可以通过USB 总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。

基于CH341A的USB转串口通讯设计

基于CH341A的USB转串口通讯设计

&'%($) 内置了独立的收发缓冲区 支持单工 半 双工 或
者 全双 工 异 步串 行 通 讯 串 行 数 据包 括 $ 个 低电 平 起 始 位
OP 个数据位 $ 或 ! 个高电平停止位 支持奇校验 9偶 校验 9
标志 校 验 9空 白 校 验 &'%($) 支 持 常 用 通 讯 波 特 率 OM QO
S!$ RMM $ OMM MMM ! MMM MMM 等 TRU &'%($) 的通讯操作采用虚拟形 式 在 计算 机 端 安装 好
驱 动程 序 后 即 将 B;C 接 口 虚 拟 成 :;!%! 接 口 便 可 利 用
:;!%! 通讯协议对 B;C 进行操作 &'%($) 设备驱动程序安
+,-(&. 提供串口发送使能 串口接 收就 绪 等 交互 式 的 速率
控 制 信号 以 及 常用 的 AEFGA 联 络信 号 用 于为 计 算 机 扩 展 异步串口 或者将普通的串口设备直接升级到 =>? 总线 收稿日期 !"#"$"%$"% 稿件编号 !"&'"%"&(
+,-(& 将 暂 停 从 串 口 发 送 数 据 直 到 HGJK 为 低 电 平 才 继 续
随着计算机技术的发展 具有热插拔 功 能的 =>? 接 口 逐 渐 取 代 了 @>!-!+ 接 口 使 得 采 用 @>!-!+ 通 讯 的 旧 式 设 备 应用受到限制 此外 由于 @>!-!+ 通讯接 口 编程 简 单 控制 灵 活 大多 数 A+= 仍 然把 它 作 为一 个 标 准模 块 固 化 在 其 外 围电路当中 目前 市面上虽然有一些成型的 =>?B@>!-!+ 转 换 产 品 但 功 能 比 较 简 单 只 支 持 - 线 通 信 方 式 并 且 与 3+ 端 的 串 口应 用 程 序不 完 全 兼容 使 用 过程 中 经 常出 现 握 手 失 败 的 情况 本 文 根 据 实 际 情 况 中 3+ 的 =>? 接 口 使 用 情 况 设 计 了 两 款 产 品 在 芯 片 厂 家 提 供 的 驱 动 程 序 下 仅 需 少 量ቤተ መጻሕፍቲ ባይዱ编 程 即 可 满 足 =>? 与 @>!-!+ 接 口 的 转 换 问 题 以 及 实 现

USB接口与CH341的基本连接

USB接口与CH341的基本连接

USB接口与CH341的基本连接
P4是USB 端口,USB 总线包括一对5V 电源线和一对数据信号线,通常,+5V 电源线是红色,接地线是黑色,D+信号线是绿色,D-信号线是白色。

USB 总线提供的电源电流最大可以达到500mA,一般情况下,CH341 芯片和低功耗的USB 产品可以直接使用USB 总线提供的5V 电源。

如果USB 产品通过其它供电方式提供常备电源,那么CH341 也应该使用该常备电源,如果需要同时使用USB总线的电源,那么可以通过阻值约为1Ω的电阻连接USB总线的5V 电源线与USB 产品的5V常备电源,并且两者的接地线直接相连接。

电容C18 用于CH341内部电源节点退耦,C18是容量为0.01μF 的独石或高频瓷片电容,如果对EMI 没有要求那么可以省掉C18。

电容C19 和C20用于外部电源退耦,C19是容量为0.1μF 的独石或高频瓷片电容。

晶体X4、电容C16和C17用于时钟振荡电路。

X4 的频率是12MHz,C16和C17是容量为15pF 的独石或高频瓷片电容。

在设计印刷线路板PCB 时,需要注意:退耦电容C18 和C19 尽量靠近CH341 的相连引脚;使D+和D-信号线贴近平行布线,尽量在两侧提供地线或者覆铜,减少来自外界的信号干扰;尽量缩短XI和XO 引脚相关信号线的长度,为了减少高频干扰,可以在相关元器件周边环绕地线或者覆铜。

图中SDA 引脚直接接地,所以CH341 工作于并口方式。

CH341在实现AVR单片机USB口ISP功能中的应用

CH341在实现AVR单片机USB口ISP功能中的应用

第24卷第6期2011年12月常州工学院学报Journal of Changzhou Institute of TechnologyVol.24No.6Dec.2011收稿日期:2011-07-18作者简介:马金祥(1977—),男,硕士,讲师。

CH341在实现AVR 单片机USB 口ISP 功能中的应用马金祥关静(常州工学院电子信息与电气工程学院,江苏常州213002)摘要:ATMEL 公司研发的AVR 单片机提供一个同步串行通信接口SPI (Serial Peripheral Inter-face ),用户能够通过计算机的并口、串口或USB 口对其内部程序存储器编程。

实际上,利用并口、串口或USB 口实现AVR 单片机ISP (In System Programmable )功能就是使用计算机的并口、串口或USB 口来驱动AVR 单片机ISP 串行编程所需的时序信号,从而实现计算机对AVR 单片机的编程。

文章介绍了USB 总线转接芯片CH341的引脚功能和工作原理,讨论了基于USB 口的AVR 单片机ISP 编程电缆原理图及相关编程工具软件的使用。

关键词:USB 总线转接芯片;AVR 单片机;ISP 中图分类号:TP368.1文献标志码:A文章编号:1671-0436(2011)06-0027-04The Application of CH341in Fulfilling the ISP Functionof AVR Serial Single Microcontroller by Using USB PortMA Jin-xiangGUAN Jing(School of Electronic Information &Electric Engineering ,Changzhou Institute of Technology ,Changzhou 213002)Abstract :The Single Microcontroller in AVR Series issued by ATMEL provides a Serial Peripheral In-terface (SPI ),with which clients are able to do programming through computer parallel port ,serial port or USB port to its internal program memory.In fact ,to fulfill the function of In System Programmable (ISP )in AVR single microcontroller by using computer port is to force signal wave needed by the single microcon-troller ,achieving the AVR single microcontroller programmed by computer.With an introduction of the pins function and the principle of the USB transfer chip CH341,this paper discusses ISP programming cable prin-ciple map of AVR single microcontroller based on USB port and introduces the usage of relevant program-ming software.Key words :USB transfer chip ;AVR single microcontroller ;ISP0引言AVR 单片机是ATMEL 公司采用全新配置和精简指令集RISC 结构的高性价比新型单片机[1]。

用CH341T制作的USB转接电路

用CH341T制作的USB转接电路

用CH341T制作的USB转接电路
一、硬件电路设计制作
DP-51S外观如下图(略)。

该机提供了一个UART通信接口和一个RS232接口,并通过主板上的跳线来选择使用哪个通信接口。

UART接口用于与其它单片机通信,RS232接口用于与PC上位机通信。

其中,UART接口为针式接口,两排插针编号为上排1、2、3、4、5脚,下排6、7、8、9脚。

实际仅使用2(RXD)、3(TXD)、5(GND)脚,为典型的三线制TTL电平串口通信。

为简化电路、增强可靠性,并降低成本,我们的设计改装基于这个接口进行。

经比对,我们选用CH341T型USB转串口专用芯片进行设计制作,该芯片外围电路简单、兼容性好。

其应用电路原理图如下图所示。

需要特别注意的是CH341T的RXD和TXD脚要对应接单片机仿真实验仪的TXD、RXD脚,这时芯片才能正常向单片机发送传输数据。

图中,9针串口插件的第2、3、4、5脚,分别为TTL串口的TXD,。

USB接口设计范文

USB接口设计范文

USB接口设计范文USB(Universal Serial Bus,通用串行总线)是一种被广泛应用于计算机和其他电子设备之间进行数据传输的接口标准。

自1996年发布以来,USB接口已成为计算机和其他设备之间最常用的连接方式之一、在设计USB接口时,需要考虑多个因素,如数据传输速度、稳定性、兼容性等等。

第一点,USB接口设计需要考虑数据传输速度。

随着科技的发展,需求越来越高的数据传输速度成为了一种趋势。

在设计USB接口时,需要考虑如何提高数据传输速度,以满足用户的需求。

USB接口设计中的一种常见方法是增加传输线路的数量,以提高接口的带宽。

此外,还可以使用更高速的传输协议,如USB3.0、USB3.1等,以提高数据传输速度。

第二点,USB接口设计需要考虑稳定性。

数据传输的稳定性是评判一个接口性能的重要指标之一、在设计USB接口时,需要考虑如何降低干扰和噪声,以提高数据传输的稳定性。

可以通过增加屏蔽层、优化电磁兼容性等方式来提高USB接口的稳定性。

此外,还可以对USB接口进行工程测试和验证,以确保其在各种工作环境下都能提供稳定的性能。

第三点,USB接口设计需要考虑兼容性。

由于USB接口广泛应用于各种设备中,因此兼容性是设计USB接口时需要重点考虑的因素之一、以往的USB接口版本之间存在一定的兼容性问题,用户在连接设备时可能需要使用适配器或转接线。

在设计USB接口时,需要采用兼容性更好的设计方案,使新版本的USB接口能够向下兼容旧版本的设备。

此外,现代USB接口设计还需要考虑节能和环保。

随着人们对环境保护意识的提高,设计节能和环保的USB接口已成为一种趋势。

在USB接口设计中,可以采用各种技术手段来降低功耗,如休眠模式、动态功耗管理等。

同时,还要考虑材料的选择和回收利用,以减少对环境的影响。

综上所述,USB接口设计需要考虑多个因素,如数据传输速度、稳定性、兼容性、节能和环保等。

只有在综合考虑这些因素的基础上,才能设计出功能强大、稳定可靠、兼容性好的USB接口,满足用户的需求。

基于USB接口的数据采集与控制系统设

基于USB接口的数据采集与控制系统设

基于USB接口的数据采集与控制系统设
基于USB接口的数据采集与控制系统设计综合
 1 系统结构
利用ADuC845单片数据采集器件和CH341 USB接口器件构成的数据采集与控制系统的框图如图1所示。

ADuC845完成模拟量数据采集、开关量的输入输出、控制电压和PWM控制信号输出,CH341USB接口器件完成PC 机与ADuC845的数据传输。

ADuC845中的数据打包后经USB器件传送至PC机,利用PC机的数据处理程序完成数据处理与分析,并将其显示在所设计的系统界面上。

同时,将控制命令通过USB接口传送至ADuC845,实现对外围设备的控制。

 2 USB通信接口电路
USB通信接口电路采用CH341器件,图2为其电路。

图2中,P3是USB端口,USB总线包括一对5 V电源线和一对数据信号线。

通常+5 V电源线是红色,接地线是黑色,D+信号线是绿色,D-信号线是白色。

USB总线提供的电源电流最大可达500 mA,CH341和低功耗的ADuC845直接使用USB总线提供的5 V电源。

CH341中文手册(一)

CH341中文手册(一)

USB总线转接芯片CH341中文手册版本: 21、概述CH341是一个USB总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。

在异步串口方式下,CH341提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于将普通的串口设备直接升级到USB总线。

在打印口方式下,CH341提供了兼容USB相关规范和Windows操作系统的标准USB打印口,用于将普通的并口打印机直接升级到USB总线。

在并口方式下,CH341提供了EPP方式或MEM方式及BUS扩展方式的8位并行接口,用于在不需要单片机/DSP/MCU的环境下,直接输入输出数据。

除此之外,CH341A芯片还支持一些常用的同步串行接口,例如2线接口(SCL线、SDA线)和4线接口(CS线、CLK线、DIN线、DOUT线)等。

2、特点2.1. 概述●全速设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。

●可选:通过外部的低成本串行EEPROM定义厂商ID、产品ID、序列号等。

●支持5V电源电压和3.3V电源电压。

●低成本,直接转换原串口外围设备、原并口打印机、原并口外围设备。

●采用SOP-28封装,串口应用还提供小型的SSOP-20封装。

●由于是通过USB转换的接口,所以只能做到应用层兼容,而无法绝对相同。

2.2. 异步串口●仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。

●计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。

●硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。

●支持串口发送使能、串口接收就绪等传输速率控制信号和MODEM联络信号。

●通过外加电平转换器件,提供RS232、RS485、RS422等接口。

2.3. 打印口●标准USB打印口,用于升级原并口打印机,兼容相关的USB规范。

●兼容Windows操作系统,在Windows 2000和XP下无需驱动程序,应用程序完全兼容。

CH340_341驱动源码

CH340_341驱动源码

USB转串口CH340\341驱动源码#include<linux/kernel.h>#include<linux/init.h>#include<linux/tty.h>#include<linux/module.h>#include<linux/usb.h>#include<linux/usb/serial.h>#include<linux/serial.h>#define DEFAULT_BAUD_RATE 2400static int debug;static struct usb_device_id id_table [] = {{ USB_DEVICE(0x4348, 0x5523) },{ },};MODULE_DEVICE_TABLE(usb, id_table);struct ch341_private {unsigned baud_rate;u8 dtr;u8 rts;};static int ch341_control_out(struct usb_device *dev, u8 request,u16 value, u16 index){int r;dbg("ch341_control_out(%02x,%02x,%04x,%04x)", USB_DIR_OUT|0x40,(int)request, (int)value, (int)index);r = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), request,USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,value, index, NULL, 0, 1000);return r;}static int ch341_control_in(struct usb_device *dev,u8 request, u16 value, u16 index,char *buf, unsigned bufsize){int r;dbg("ch341_control_in(%02x,%02x,%04x,%04x,%p,%u)", USB_DIR_IN|0x40,(int)request, (int)value, (int)index, buf, (int)bufsize);r = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), request,USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,value, index, buf, bufsize, 1000);return r;}int ch341_set_baudrate(struct usb_device *dev, struct ch341_private *priv){short a, b;int r;dbg("ch341_set_baudrate(%d)", priv->baud_rate);switch (priv->baud_rate) {case 2400:a = 0xd901;b = 0x0038;break;case 4800:a = 0x6402;b = 0x001f;break;case 9600:a = 0xb202;b = 0x0013;break;case 19200:a = 0xd902;b = 0x000d;break;case 38400:a = 0x6403;b = 0x000a;break;case 115200:a = 0xcc03;b = 0x0008;break;default:return -EINVAL;}r = ch341_control_out(dev, 0x9a, 0x1312, a);if (!r)r = ch341_control_out(dev, 0x9a, 0x0f2c, b);return r;}int ch341_set_handshake(struct usb_device *dev, struct ch341_private *priv) {dbg("ch341_set_handshake(%d,%d)", priv->dtr, priv->rts);return ch341_control_out(dev, 0xa4,~((priv->dtr?1<<5:0)|(priv->rts?1<<6:0)), 0);}int ch341_get_status(struct usb_device *dev){char *buffer;int r = -ENOMEM;const unsigned size = 8;dbg("ch341_get_status()");buffer = kmalloc(size, GFP_KERNEL);if (!buffer)goto out;r = ch341_control_in(dev, 0x95, 0x0706, 0, buffer, size);/* return value ignored */r = 0;out: kfree(buffer);return r;}/* -------------------------------------------------------------------------- */int ch341_configure(struct usb_device *dev, struct ch341_private *priv){char *buffer;int r = -ENOMEM;const unsigned size = 8;dbg("ch341_configure()");buffer = kmalloc(size, GFP_KERNEL);if (!buffer)goto out;/* expect two bytes 0x27 0x00 */r = ch341_control_in(dev, 0x5f, 0, 0, buffer, size);if (r < 0)goto out;r = ch341_control_out(dev, 0xa1, 0, 0);if (r < 0)goto out;r = ch341_set_baudrate(dev, priv);if (r < 0)goto out;/* expect two bytes 0x56 0x00 */r = ch341_control_in(dev, 0x95, 0x2518, 0, buffer, size);if (r < 0)goto out;r = ch341_control_out(dev, 0x9a, 0x2518, 0x0050);if (r < 0)goto out;/* expect 0xff 0xee */r = ch341_get_status(dev);if (r < 0)goto out;r = ch341_control_out(dev, 0xa1, 0x501f, 0xd90a);if (r < 0)goto out;r = ch341_set_baudrate(dev, priv);if (r < 0)goto out;r = ch341_set_handshake(dev, priv);if (r < 0)goto out;/* expect 0x9f 0xee */r = ch341_get_status(dev);out: kfree(buffer);return r;}/* allocate private data */static int ch341_attach(struct usb_serial *serial){struct ch341_private *priv;int r;dbg("ch341_attach()");/* private data */priv = kzalloc(sizeof(struct ch341_private), GFP_KERNEL);if (!priv)return -ENOMEM;priv->baud_rate = DEFAULT_BAUD_RATE;priv->dtr = 1;priv->rts = 1;r = ch341_configure(serial->dev, priv);if (r < 0)return r;usb_set_serial_port_data(serial->port[0], priv);return 0;}/* open this device, set default parameters */static int ch341_open(struct usb_serial_port *port, struct file *filp){struct usb_serial *serial = port->serial;struct ch341_private *priv = usb_get_serial_port_data(serial->port[0]);int r;dbg("ch341_open()");priv->baud_rate = DEFAULT_BAUD_RATE;priv->dtr = 1;priv->rts = 1;r = ch341_configure(serial->dev, priv);if (r)goto out;r = ch341_set_handshake(serial->dev, priv);if (r)goto out;r = ch341_set_baudrate(serial->dev, priv);if (r)goto out;r = usb_serial_generic_open(port, filp);out:return r;}/* Old_termios contains the original termios settings and* tty->termios contains the new setting to be used.*/static void ch341_set_termios(struct usb_serial_port *port,struct ktermios *old_termios){struct ch341_private *priv = usb_get_serial_port_data(port);struct tty_struct *tty = port->tty;unsigned cflag;unsigned baud_rate;dbg("ch341_set_termios(%p,%p)", port, old_termios);if (!port->tty || !port->tty->termios)return;cflag = tty->termios->c_cflag;/* check that they really want us to change something */if (old_termios && cflag == old_termios->c_cflag)return;baud_rate = tty_get_baud_rate(tty);switch (baud_rate) {case 2400:case 4800:case 9600:case 19200:case 38400:case 115200:priv->baud_rate = baud_rate;break;default:dbg("Rate %d not supported, using %d", baud_rate, DEFAULT_BAUD_RATE);priv->baud_rate = DEFAULT_BAUD_RATE;}ch341_set_baudrate(port->serial->dev, priv);/* Unimplemented:* (cflag & CSIZE) : data bits [5, 8]* (cflag & PARENB) : parity {NONE, EVEN, ODD}* (cflag & CSTOPB) : stop bits [1, 2]*/return;}static struct usb_driver ch341_driver = {.name = "ch341",.probe = usb_serial_probe,.disconnect = usb_serial_disconnect,.id_table = id_table,.no_dynamic_id = 1,};static struct usb_serial_driver ch341_device = {.driver = {.owner = THIS_MODULE,.name = "ch341-uart",},.id_table = id_table,.usb_driver = &ch341_driver,.num_interrupt_in = NUM_DONT_CARE,.num_bulk_in = 1,.num_bulk_out = 1,.num_ports = 1,.open = ch341_open,.set_termios = ch341_set_termios,.attach = ch341_attach,};static int __init ch341_init(void){int retval;retval = usb_serial_register(&ch341_device);if (retval)return retval;retval = usb_register(&ch341_driver);if (retval)usb_serial_deregister(&ch341_device);return retval;}static void __exit ch341_exit(void){usb_deregister(&ch341_driver);usb_serial_deregister(&ch341_device);}module_init(ch341_init);module_exit(ch341_exit);MODULE_LICENSE("GPL");module_param(debug, bool, S_IRUGO | S_IWUSR);MODULE_PARM_DESC(debug, "Debug enabled or not");/* EOF ch341.c */。

CH341中文手册(二)

CH341中文手册(二)

USB总线转接芯片CH341中文手册(二):并口及同步串口说明版本:2C1、并口功能说明1.1. 一般说明CH341的并口是主动式并口,在计算机端的程序控制下,可以直接从外部电路输入输出数据,一般不需要外接单片机/DSP/MCU。

CH341的并口主要有2种接口方式:EPP方式和MEM方式。

EPP方式类似于EPP V1.7或者EPP V1.9规范,MEM方式类似于INTEL时序存储器的读写方式。

芯片复位后的默认方式是EPP,在USB配置完成后,计算机端的程序可以随时控制CH341在上述2种方式之间进行切换。

另外还有一种BUS方式,以地址和数据复用总线的方式提供7位地址和8位数据。

1.2. EPP并口EPP并口的主要引脚包括WR#引脚、DS#引脚、AS#引脚、WAIT#引脚,相关信号的时序说明可以参照EPP规范V1.7和V1.9。

EPP方式通过WR#、DS#和AS#的逻辑组合执行具体操作。

WR#用于指示当前的数据或地址传输方向,对计算机端而言,高电平是对外部电路执行读操作,低电平是对外部电路执行写操作。

选通信号是低电平有效的脉冲信号,选通信号包括数据选通DS#和地址选通AS#,DS#有效执行数据操作,AS#有效执行地址操作。

EPP的实际操作发生于选通信号有效期间,例如:在WR#为高电平期间DS#输出脉冲,则执行一个数据读操作;在WR#为低电平期间AS#输出脉冲,则执行一个地址写操作。

CH341A的EPP数据读写操作DS#支持WAIT#等待信号,在CH341开始输出低电平选通信号后,如果WAIT#为低电平,那么选通信号将继续保持低电平直到WAIT#恢复为高电平或者85uS等待超时后才结束输出。

CH341A的EPP地址读写操作AS#不支持WAIT#等待信号,所以EPP地址读写操作比数据读写操作略快一些。

写操作的选通信号的低电平有效宽度最小是0.16uS或者0.25uS,读操作的选通信号的低电平有效宽度最小是0.25uS或者0.33uS,理想状态下的最大传输速度是800KB/S,在WINDOWS XP SP2环境下使用连续的大数据块进行速度测试,实测传输速度约为:下传510KB/S,上传560KB/S。

CH341USB转换接口说明书

CH341USB转换接口说明书

USB总线转接芯片CH341中文手册版本:2B1、概述CH341是一个USB总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。

在异步串口方式下,CH341提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。

在打印口方式下,CH341提供了兼容USB相关规范和Windows操作系统的标准USB打印口,用于将普通的并口打印机直接升级到USB总线。

在并口方式下,CH341提供了EPP方式或MEM方式的8位并行接口,用于在不需要单片机/DSP/MCU 的环境下,直接输入输出数据。

除此之外,CH341A芯片还支持一些常用的同步串行接口,例如2线接口(SCL线、SDA线)和4线接口(CS线、CLK线、DIN线、DOUT线)等。

2、特点2.1. 概述●全速USB设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。

●可选:通过外部的低成本串行EEPROM定义厂商ID、产品ID、序列号等。

●低成本,直接转换原串口外围设备、原并口打印机、原并口外围设备。

●采用SOP-28封装,串口应用还提供小型的SSOP-20封装。

●由于是通过USB转换的接口,所以只能做到应用层兼容,而无法绝对相同。

2.2. 异步串口●仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。

●计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。

●硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。

●支持串口发送使能、串口接收就绪等传输速率控制信号和MODEM联络信号。

●通过外加电平转换器件,提供RS232、RS485、RS422等接口。

●支持以标准的串口通讯方式间接地访问CH341外挂的串行EEPROM存储器。

2.3. 打印口●标准USB打印口,用于升级原并口打印机,兼容相关的USB规范。

基于CH341的USB—CAN适配器设计

基于CH341的USB—CAN适配器设计

基于CH341的USB—CAN适配器设计作者:浣上来源:《现代电子技术》2012年第18期摘要:为便捷上位机访问工业现场CAN总线,提出了一种便携式即插即用的适配器设计方案。

该适配器采用CH341作为USB总线转接芯片,直接把USB总线协议转化为并口协议;选用SJA1000芯片作为CAN控制器,支持CAN2.0B协议,以适应不同的CAN总线需求。

系统从USB端口取电,且无需MCU/DSP介入,简化了电路结构;利用CH341主动并口功能,经相应的控制时序逻辑转换,上位机即可驱动SJA1000,进行CAN总线访问。

该适配器支持上位机自主配置,灵活强,可靠性高。

经实验测试,适配器支持访问不同的CAN 总线网,速率可达1Mb/s。

关键词:CH341;;适配器;SJA1000中图分类号:文献标识码:A文章编号:(2012)19CAN总线以其突出的可靠性、实时性和灵活性,在控制领域获得广泛的应用。

当上位计算机访问CAN总线终端设备时,一般采用基于PCI总线的CAN接口卡,但是该方法不支持即插即用,且需配备专用的计算机;或是借助MCU,DSP等CPU模块进行数据中转处理。

若CAN适配器通过USB接口驱动CAN控制器直接访问CAN总线网,则支持热插拔和通用上位机,为测试和访问CAN总线网,提供了一种便捷的解决方案。

1设计目标适配器支持即插即用,上位机可自主配置、访问CAN总线;适配器无需MCU,DSP等CPU介入,体积小巧,便携式设计,有广泛的适应性;提供Windows平台下适配器驱动的API函数。

2硬件实现适配器选用SJA1000芯片作为CAN控制器,该芯片支持CAN2.0B协议,有BasicCAN和PeliCAN两种工作模式,分别支持11位和29位地址识别码,通信速率可达到1Mb/s,可满足不同CAN网接入需求。

选用南京沁恒公司的CH341作为USB总线的转接芯片,该芯片通过USB总线不仅提供异步串口、打印口、并口,还提供常用的2线和4线等同步串行接口[3]。

CH341与USB接口的基本连接

CH341与USB接口的基本连接

CH341 与USB 接口的基本连接
CH341 与USB 接口的基本连接
P4 是USB 端口,USB 总线包括一对5V 电源线和一对数据信号线,通常,+5V 电源线是红色,接
地线是黑色,D+信号线是绿色,D-信号线是白色。

USB 总线提供的电源电流最大可以达到500mA,一般情况下,CH341 芯片和低功耗的USB 产品可以直接使用USB 总线提供的5V 电源。

如果USB 产品通过其它供电方式提供常备电源,那幺CH341 也应该使用该常备电源,如果需要同时使用USB 总线的电源,那幺可以通过阻值约为1Ω的电阻连接USB 总线的5V 电源线与USB 产品的5V 常备电源,并且两者的接地线直接相连接。

电容C18 用于CH341 内部电源节点退耦,C18 是容量为0.01μF的独石或高频瓷片电容,如果对EMI 没有要求那幺可以省掉C18。

电容C19 和C20 用于外部电源退耦,C19 是容量为0.1μF的独石或高频瓷片电容。

晶体X4、电容C16 和C17 用于时钟振荡电路。

X4 的频率是12MHz,C16 和C17 是容量为15pF 的独石或高频瓷片电容。

在设计印刷线路板PCB 时,需要注意:退耦电容C18 和C19 尽量靠近CH341 的相连引脚;使D+和D-信号线贴近平行布线,尽量在两侧提供地线或者覆铜,减少来自外界的信号干扰;尽量缩短XI
和XO 引脚相关信号线的长度,为了减少高频干扰,可以在相关元器件周。

基于CH341A的USB串口通讯设计

基于CH341A的USB串口通讯设计

收稿日期:2010-06-06稿件编号:201006014作者简介:杨凤彪(1977—),男,河北怀安人,硕士,讲师。

研究方向:电力电子电能变换与数据采集。

图1CH341A 引脚排列图Fig.1Pin distribution of CH341A 第3期No.32011年2月Feb.2011基于CH341A 的USB 串口通讯设计杨凤彪,王超,张晨光(军械工程学院河北石家庄050003)摘要:为解决当前计算机串行通讯接口只有USB ,难以满足旧型号设备或某些单片机要求RS232通讯的问题,设计出两款RS232/USB 电路。

采用CH341A 与MAX223集成电路芯片构建标准9线RS232/USB 通用接口转换器,无需编程。

采用CH341A 与PIC16F877A 构建单片机与计算机之间的USB 通讯电路,软件遵循RS232通讯协议,硬件进行电平转换。

实际使用表明,这两款产品与计算机端Windows 操作系统下的串口应用程序完全兼容,且通讯过程中无握手失败现象。

关键词:USB ;RS232C ;通讯;接口中图分类号:TP334.5文献标识码:A 文章编号:1674-6236(2011)03-0011-04Design of USB serial communication based on CH341AYANG Feng -biao ,WANG Chao ,ZHANG Chen -guang(Ordnance Engineering Institude ,Shijiazhuang 050003,China )Abstract :To solve the problem that current computer serial communication only with USB interface can not satisfy with the old type equipments or MCU to communicate with RS232,two kinds of RS232/USB circuit were designed.CH341A and MAX223integrated circuit chips were used to create a standard 9-line RS232/USB universal interface convertor without programme.CH341A and PIC16F877A chips were adopted to build the USB communication circuit between computers and MCU.The software follows RS232communication protocol ,and the hardware converts electrical levels.Actual practices indicate that the two manufactures are compatible with serial application program of Windows operation system completely ,and get avoid of handshake lost.Key words :USB ;RS232C ;communication ;interface-11-《电子设计工程》2011年第3期图2CH341A虚拟端口COM3Fig.2Virtual port COM3for CH341A图3CH341A/RS232C转换器电路原理图Fig.3Schematic of CH341A/RS232C converter图4USB/RS232转换器通讯测试Fig.4Communication test of USB/RS232convert《电子设计工程》2011年第3期图6单片机程序流程图Fig.6Program flow chart ofMCU3结束语CH341A 作为一种新型的、功能强大的USB 接口转换芯片,可以工作在多种模式,且接线简单、控制方便、使用灵活,可满足用户的多种需求。

基于USB接口的数据采集系统设计与实现答辩ppt

基于USB接口的数据采集系统设计与实现答辩ppt

01 第一章 绪论
第一部分:选题的背景与意义
研究背景:随着现代通信技术的进步和应用场景的扩大,数据采集 卡成为自动化控制工程研究的焦点。从模拟量测量仪器到数字量高 精度测试系统,再到工业现场测控设备,数据采集卡在其中起到关 键作用。
意义:探讨如何在数据采集系统中集成 USB3.0 接口芯片,利用 USB3.0 接 口的强大传输性能,实现对采集到的数据进行实时采集、传输和分析还原。
国内外研究现状分析
国内研究现状
在国外有许多专门从事 USB 采集卡的研发和生产的企 业,包括 National Instruments、Alazartech、 SPDevices、GAGE 等知名公司。
国外研究现状
在国内,起步相对较晚。由于技术尚未完全成熟,即使是像阿 尔泰、研华公司这样的国内领先企业生产的 USB 采集卡,在 性能稳定性、采集精度和速度方面也存在很大的提升潜力。
3INF文件
INF文件是一种以段落形式组织 的文本文件,其主要功能是指 导驱动程序的安装过程。
FX3的应用程序开发设计
上位机应用程序界面
上位机软件功能及 界面
在 VC++6.0 环境下成功开发了 上位机应用程序。该应用程序 具有良好的通用性、可移植性 及可扩展性,能够实现数据采 集过程的启动和停止、数据的 存储和回放、波形的显示和优 化等功能,并且界面简洁直观,
易于操作。
FX3的应用程序开发设计
上位机软件流程图上位Fra bibliotek软件工作 流程
上位机软件的核心功能包括 USB 设备检测和数据采集过程的启动 和停止,通过点击采集或停止按 钮控制数据采集和传输,提供众 多附加功能,由按钮和复选框共 同控制,还介绍了上位机程序开 发中一些特殊问题的解决方案。

基于CH341S的USB接口设计与实现

基于CH341S的USB接口设计与实现

基于CH341S的USB接口设计与实现
严培林;周涛
【期刊名称】《电脑开发与应用》
【年(卷),期】2007(020)010
【摘要】利用CH341S接口芯片的EPP并行接口功能,可设计USB通用控制接口,以实现计算机控制系统对外设的读写控制.介绍了基于CH341S的USB接口设计的硬件电路原理及软件控制程序,提供了较完整的设计方案.且方案已在多外设的"通信模拟训练系统"中得到应用,控制方法灵活、读写数据快、系统工作稳定可靠.
【总页数】3页(P12-14)
【作者】严培林;周涛
【作者单位】解放军蚌埠坦克学院,蚌埠,233050;解放军蚌埠坦克学院,蚌
埠,233050
【正文语种】中文
【中图分类】TP333
【相关文献】
1.基于USB接口的AFDX网络TAP卡设计与实现 [J], 杨峰;田泽
2.基于USB接口的单片机烧写器设计与实现 [J], 郭陈一;高鲁楠;庞宇擎
3.基于USB接口的宽带频率源的设计与实现 [J], 方晓磊
4.基于CH341的USB-UART的设计与实现 [J], 李芙玲;张瑾;闫跃升
5.基于USB接口的TTP/C总线采集卡设计与实现 [J], 何向栋;陈长胜;于峰
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
严培林 周 涛 ( 解放军蚌埠坦克学院 蚌埠 233050) 【 摘 要】利用 CH 341S 接口芯片的 EP P 并行接口功能 , 可设计 USB 通用控制接口, 以实现计算机控制系统对 外设的读写控制。 介绍了基于 CH 341S 的 U SB 接口设计的硬件电路原理及软件控制程序 , 提供了较完整的设计 方案。且方案已在多外设的 “ 通信模拟训练系统”中得到应用, 控制方法灵活、读写数据快、系统工作稳定可 靠。 【 关键词】CH341S USB 接口 外设
别接 30p 电容 接 地, 构 成 振荡 电 路。将 CH341S 的 SDA 端接地, 使 CH 341S 定义为 EPP 并行接口功能 , 此功能可提供写信号 W R # 、 数据信号 DS # 、 地址信 号 AS# 和并行数据 D0-D7。 1. 2 CH341S 与外设总线接口电路设计 为满足外设控制的需要 , 外设总线定义为: 双向数 据总线( D 0-D7) 、 低位地址总线( A 0-A 7) 、 高位地址总 线 ( A8-A13) 和控制信号 ( 读写信号 R/ W 、 低位地址清 零信号 L Adrr “ 0” ) , 如图 2 所示。 数 据 总 线: 由 74L S245 和 74L S574 完 成 CH 341S 的数据输入和输出。CH 341S 的数据端 ( D 0D7) 与读数据接口 RDat a 和写数据接口 WDat a 的数 据线对应连接。RDat a 的选通信号由时序控制电路的 WDat a 接 R/ W dat a 信号和 WR# 的求反信号控制。 口的控制信号由时序控制电路的 R/ W dat a 信号和 WR# 信号控制。 高 位地址 总线 和控制 信号: 由高位 地H 341S 的数据端与 HAddr 的数据输入端对应连接, HA ddr 的控制端由 CH 341S 的 AS# 和 WR# 信号控制。H Addr 输出的控制信号 为外设提 供高位 地址 ( A8-A13) 、 读写控 制信号 ( R/ ) 和低位地址清零信号 ( “ 0 )。 W L Addr ” 低 位 地 址 总 线 : 由 低 位 地 址 接 口 L Addr ( 74LS 393) 产生。该电路是一个计数器, 计数脉冲来自 时 序控制电路的 W add 信号, 它的清零端 ( M R) 与
中图分类号 : T P 333 文献标识码 : A ABSTRACT M aking use o f EP P par allel interfa ce function of CH341S int er face chips, U SB curr ent co ntro l inter face is designed to carr y o ut reading and w r iting co nt ro l for the outside equipment s. Har dwar e circuit design and softw ar e co nt ro l pro gr amming w hich ar e based of CH341S int erface chips ar e intr oduced in the paper , w hich pro vides mor e co mpleted designing pr oject fo r the r ea der s. T he pr o ject has been applied in the “ co mmunica tio n simulation t raining system " o f the m ultiple o ut side equipments. T he contr ol method is ag ile, the speed o f dat a reading a nd w rit ing is fa st and the w or k of the system is st eady g oing and r eliable. 341 , , KEYWORDS CH S U SB interfa ce outside equipments
1 硬件设计
硬件设计主要 包 括 : U SB 口 与 CH341S 接 口电 路 设计、 时序控制电 CH 341S 与外设总线接口电路设计、 路设计和外设接口电路设计等。其控制系统如图 1 所 示。 1. 1 USB 口与 CH341S 接口电路设计 计算机的 USB 口提供了数据通信线 ( D+ 、 D-) 和 5V 电源, USB 口与 CH 341 S 的接口电路 如下页图 2 所示。 USB 口的 + 5V 电源 ( 1 脚) 接 CH341S 的电源端 ( VCC ) , 并为接口板提供 5V 电源; USB 口的地线 ( 4 脚) 接 CH341S 的地线端 ( GND) , 并与接口电 路地线 连 接。 在 CH 341S 的 V 3 端 接 0. 1 F 电 容 到 地。 CH341S 的 X0 和 X1 端接 12MHz 晶振 , 并在 两端分
在计算机控制系统中, 通常要求计算机控制接口 提供数据总线、 地址总线、 读写信号等控制信号, 以满 足计算机对外设读写控制的需要。 CH341S 是一个 USB 总线的转接芯片 , 通过 U SB 总线提供串行口、 并行口和打印机接口。 本文介绍利用 341 的 并行接口功能来设计 CH S EP P U SB 通用控制 接口。 为防止外设对计算机系统的影响, 对外设的控制 采用间接读写数据的方式, 并可通过跳线来调整读写 外设数据的周期。
2 工作原理
2. 1 读外设数据 用 写 地 址 函 数 WAddr ( ) 对 CH 341S 写 地 址操作 , 将高位地址和控制 信号 写入 高位地 址接 口 HAddr , 由此选择相应的外 设、 关闭 写接 口 WDat a 和
・ 14・( 总 724)
基于 CH 341S 的 U SB 接口 设计与实现
图 2 CH 341 S 控制接口原理图
HAddr 输出的 L Addr “ 0” 信号连接。 1. 3 时序控制电路设计 为了满足对外设的读写数据的时序要求 , 设计了 可调整的时序控制电路。电路由 74L S 393 和 74LS 154 等组成 , CH 341S 的 DS# 信号经反向后与 74L S393 的 计数端 ( CL K ) 连接, 74L S 393 的 Q 0Q 3 接到 74LS 154 的 A -D , 74L S 154 可分别输出 读写数据信号 ( R / W dat a) 、 低位地址 信号 ( W add) 和时 序控制 信号 ( 清 “ 0” ) 。时 序 控 制 信 号 连 接 到 74LS 393 的 清 “ 0” 端 ( M R ) , 用来控制读写一个外设数据的周期, 根据需要 可进行适当调整。读写一个外设数据的最小周期为 2 个 DS # 脉冲 , 最大周期为 15 个 DS # 脉冲。 1. 4 外设接口电路设计 外 设 接口 总线 提供 了 8 位 双向 数 据总 线 ( D07) 、 14 位地址 总线 ( A 0-A 13) 和 读写控 制信号 ( R / D 在电路设计时 , 可用高位地址 ( A 8-A 13) 选通某一 W) 。 外设( 可选 64 个外设) , 用低位地址 ( A0-A7) 选通外设 的某一输入( 输出 ) 端口 ( 256 个输入端口和 256 个输 出 端口 ) , 用读写控制信号 ( R / W ) 对外设进行读或写 控制。
* 200703-15 收到 , 2007-0802 改回
* * 严培林 , 男 , 1958 年生 , 副教授 , 研究方向 : 军事通信教学和科研工作。
第 20 卷 第 10 期
电脑开发 与应用
( 总 723) ・13・
低位地址清“ 0” , 为读所选外设的输入数据做好准备。 用读 数据函数 RData ( ) 对 CH341S 进行读 操 作 , 读取外设一批数据。在初始状态 , 外设的 0 端口数 据 已 被 选通 , 数据 通 过 外 设 总线 加 到 读 数 据 接 口 RData 。 当进行第 1 个读操作时 , 时序控制电路产生的 R / W dat a 信号选通读数据接口 RDat a, 将外设的数据 读入计算机。在读操作结束时, CH341S 产生的 DS # 信号的上升沿控制时序控制电路 , 输出 W add 信号 , 使得低位地址加 1, 选通外设的下一个输入端口。 当进行第 2 个读操作时 , DS# 信号的上升沿控制 时序控制电路, 产生的清“ 0” 信号 , 使时序控制电路回 到初始状态, 为读下一数据做好准备。 重复上述操作 , 可连续读入外设端口数据。 当需要
3 软件设计
3. 1 CH341S 的驱动程序设计 CH 341S 的驱动程序由商家提供 , 安装即可。 3. 2 CH341S 接口控制程序设计 CH341S 接口控制程序在商家提供的动态库中, 直接 调 用 即 可。 主 要 的 控 制 程 序 由 打 开 设 备 函 数 CH341OpenDevice( ) 、 关闭设备函数 读数据函数 CH 341Clo seDevice ( ) 、 CH341EppReadDat a( ) 、 写数据函数 CH341EppW rit eDat a( ) 、 写地址函数 341 ( ) 等。 CH EppW rit eAddr 3. 3 CH341S 控制系统程序 打开设备程序设计
改变外设时, 重复 操作, 修改高位地址即可。 2. 2 向外设写数据 用写地址函数 WAddr ( ) 对 CH 341S 写地址操 作, 将 高 位 地 址 和 控 制 信 号 写 入 高 位 地 址 接 口 打开写接口 W Dat a 和 HAddr , 由此选择相应的外设、 低位地址清“ 0” , 为所选外设的写数据作好准备。 用写数据函数 WDat a ( ) 对 CH 341S 进 行写操 作 , 可将一批数据写入外设的输出端口。 当进行第 1 个写操作时 , 通过 CH341S 将数据写 入 Wdat a, 并通过总线传至外设。当写操作结束时 , CH 341S 产生的 DS # 信号的上升沿控制时序控制电 路 , 输出 W add 信号, 使得低位地址加 1。变化的地 址信号 , 将总线上的数据写入所选定的输出端口。 当进行第 2 个写操作时 , DS # 信号的上升沿控制 时序控制电路, 产生的清“ 0” 信号 , 使时序控制电路回 到初始状态, 为写下一数据作好准备。 重复上述操作 , 可连续向外设输出端口写入数据。 当需要改变外设时 , 重复 操作 , 修改高位地址即可。
相关文档
最新文档