USB转串口的虚拟串口驱动
奋斗STM32开发板Tiny NRF24L01转USB虚拟串口例程手册

奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验NRF24L01+转 USB 虚拟串口实验实验平台:奋斗版STM32开发板Tiny 实验内容:板子通过USB加电后,先向串口1输出一串测试数据,然后USB被PC识 别出来,虚拟出一个串口号给这个USB设备,此时可以通过在PC端的串口助手类 软件选择该串口号。
进入串口软件界面,可以通过软件无线收发一帧长度最长 为32字节的数据。
该例程可以和V3及MINI板的NRF24L01 UCGUI例程配合使用。
预先需要掌握的知识 2.4G通信模块NRF24L01 1. 产品特性2.4GHz 全球开放ISM 频段,最大0dBm 发射功率,免许可证使用 支持六路通道的数据接收 低工作电压:1.9 1.9~3.6V 低电压工作 高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象(软件设置1Mbps或者2Mbps的空中传输速率) 多频点:125 频点,满足多点通信和跳频通信需要 超小型:内置2.4GHz天线,体积小巧,15x29mm(包括天线) 低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗。
低应用成本:NRF24L01 集成了所有与RF协议相关的高速信号处理部分,比如:自动重发丢失数据包和自动产生应答信号等, NRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口, 便于使用低成本单片机。
便于开发:由于链路层完全集成在模块上,非常便于开发。
自动重发功能,自动检测和重发丢失的数据包,重发时间及重发次数可软件控制 自动存储未收到应答信号的数据包 自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程 载波检测—固定频率检测 内置硬件CRC 检错和点对多点通信地址控制 数据包传输错误计数器及载波检测功能可用于跳频设置 可同时设置六路接收通道地址,可有选择性的打开接收通道 标准插针Dip2.54MM 间距接口,便于嵌入式应用2.基本电气特性淘宝店铺:1奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验3. 引脚定义:4.工作方式NRF2401有工作模式有四种: 收发模式 配置模式 空闲模式 关机模式 工作模式由CE 和寄存器内部PWR_UP、PRIM_RX 共同控制,见下表:淘宝店铺:2奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验4.1 收发模式收发模式有Enhanced ShockBurstTM收发模式、ShockBurstTM收发模式和直接收发模式三种,收发模式由器件配置字决定,具体 配置将在器件配置部分详细介绍。
USB转RS232串口驱动方法

亲:由于有的电脑没有串口线的驱动程序,因而需要我们自己安装驱动程序,以下方法为自己亲测的,与大家分享
方法一:
1.查看USB转RS232串口驱动设备有没连接:
注:先从网上下载驱动程序,然后解压出来
右键选择我的电脑,选择“管理”,弹出计算机管理窗口,在系统工具中选择“设备管理”,在右边菜单栏中有“其它设备”-USB Serial Converter 查看其有没连接。
如下图:
2.右击“USB Serial Port”在弹出的快捷菜单中选择“更新驱动程序”,在弹出的“硬件更
新向导”中选择“从列表或指定位置安装(高级)”选项,点击下一步,勾选“在搜索中包括这个位置”,在“浏览”中找到驱动程序,如放在F盘下,选择路径“F:\download\06\usbzhuanchikou\USB 2.0 TO RS232 Cable\USB 2.0 TO RS232 Cable\PC Driver”,如下图所示:
再点击下一步,即可完成自动搜索。
方法二:
采用此方法比较直接有效,前提是要知道你的RS232串口线为哪个牌子的
如自己所用的串口线为Z-TEK,那么直接在网上搜索Z-TEK串口程序驱动,下载文件如下:
对上面的驱动程序直接双击开安装即可。
其他型号的串口线可参考方法二的实施例。
USB虚拟串口设计

毕业设计 [论文]题目:基于STM32的USB虚拟串口学院:电气与信息工程学院专业:电气工程及其自动化姓名:学号:指导老师:完成时间:2015年5月19日河南城建学院本科毕业设计(论文)中文摘要摘要USB接口是最为简单的接口,它具有传输速度快、即插即用、端口扩展简单有效等特点,在数据传输技术飞速发展的当代USB接口得到广泛的应用。
越来越多的电脑设备开始采用USB接口进行数据的传输,而通用异步串行通信口(简称串口或者COM口)是一种比较古老的串行通信口,在几年前的PC上,几乎是必备接口。
以前的设备与PC相连基本上都是用的COM口,那么将设备移植到USB接口成为人们研究的热门。
本论文以USB通信设备类中的抽象控制模型为基础,对通信设备类及实现虚拟设备的原理进行了研究,设计并实现了基于通信设备类的虚拟串口驱动程序。
论文研究设计了基于STM32单片机的USB虚拟串口驱动程序的结构和实现方案,该程序主要由通信命令转换和数据传输两部分构成,虚拟串口的实现技术在数据传输方面进行了改进。
论文的主要工作如下:1.研究了USB协议的请求和传输模式,分析了通信设备类实现虚拟设备的方案。
2.给出了一种符合通信设备类中抽象控制模型的虚拟串口实现方案。
该方案提供了一种基于通信设备类开发虚拟设备的模板,对设计中的诸多问题进行了详细的说明,并改进了虚拟串口驱动程序中数据的处理流程。
3.将改进后的数据处理流程是现在虚拟串口中,生成的一种基于通信设备类的虚拟串口稳定、高速。
最后,在串口测试软件下对虚拟串口驱动程序进行了测试,达到了预期目标。
关键字:通讯设备类,枚举过程,虚拟串口程序,抽象控制模型河南城建学院本科毕业设计(论文)AbstractAbstractUSB interface is the most simple interface, it has the transmission speed, plug and play, port extension characteristics such as simple and effective, in rapid development of the contemporary USB data transmission technology has been widely used. More and more computer equipment used USB interface for data transmission, and the universal asynchronous serial communication port (hereinafter referred to as a serial port or COM) is a relatively old serial communication port, in a few years ago on a PC, is almost a necessary interface. Before the equipment connected to the PC are basically use the COM, then transplanted device into the USB interface become a hot research.Abstract in this paper by USB communication device class control model, based on the communication device class and realize the principle of virtual device are studied, designed and implemented based on the virtual serial port communication device class driver.Thesis study design based on the STM32 MCU USB virtual serial port driver structure and implementation scheme of the program is mainly consisting of communication command conversion and data transmission, the implementation technologies of virtual serial port is improved in terms of data transmission. Paper's main work is as follows:1.to study the requests of USB protocol and transmission mode, analyzes the communication device class implementation scheme of virtual devices.2.presents a communication device class of control model of the implement of virtual serial port. This scheme provides a virtual device based on the communication device class development of templates, to account for the problems in detail in the design, and improve the virtual serial port driver in data processing.3.data processing of the improved process is now in virtual serial port, the generated based on the virtual serial port communication device class stability, high speed. Finally, under the serial test software of virtual serial port driver was tested, and reached the anticipated goal.Keywords: Communication equipment Class ;T he enumeration process;Abstract Control Model河南城建学院本科毕业设计(论文)目录目录摘要 (I)Abstract (II)目录........................................................................................................................................................ I II 第1章绪论. (1)1.1 USB虚拟串口设计背景及其意义 (1)1.2 USB虚拟串口设计研究方法及目标 (2)1.3 USB虚拟串口设计国内外研究现状 (2)第2章USB及串口简单介绍 (4)2.1 USB简介 (4)2.2 串口简介 (4)2.3 USB虚拟串口简介 (5)第3章 USB和USB CDC协议 (6)3.1 通用串行总线USB (6)3.1.1 USB协议相关知识介绍 (6)3.1.2 USB协议枚举过程分析 (8)3.2 USB CDC协议 (9)3.3 USB通信过程 (10)第4章虚拟串口的实现 (12)4.1 串口的工作原理 (12)4.2 USB虚拟串口设计 (13)4.2.1 STM32 USB部分说明 (13)4.4.2 USB电路连接 (14)4.2.3 虚拟串口程序设计 (15)第5章结论 (18)参考文献 (19)致谢 (20)附录: (21)河南城建学院本科毕业设计(论文)第1章绪论第1章绪论1.1 USB虚拟串口设计背景及其意义USB作为一种计算机总线技术,在现在的计算机上已经是不可或缺的了。
USBCDC实现虚拟串口

USBCDC实现虚拟串口BCDC基本原理:-基于USB的通信设备被配置为一个CDC类设备。
-计算机识别这个设备,并加载相应的驱动程序。
-计算机通过CDC设备的控制接口与设备进行命令和配置的交互。
-计算机通过CDC设备的数据接口与设备进行数据的传输。
2.实现步骤:要实现USBCDC虚拟串口,需要完成以下步骤:-设备描述符定义:编写一个描述USB设备的设备描述符,其中包括设备的供应商ID、产品ID、设备类、子类和协议。
-通信接口描述符定义:编写一个描述通信接口的接口描述符,其中包括接口的类、子类和协议。
-端点描述符定义:编写一对用于数据收发的端点描述符,其中包括端点地址、传输类型和最大数据包大小。
-CDC类功能描述符定义:编写一个描述CDC类功能的功能描述符,其中包括CDC设备支持的串口参数,如波特率、数据位数、停止位数和奇偶校验等。
-CDC类数据接口描述符定义:编写一个描述CDC类数据接口的接口描述符,其中包括数据传输的端点地址。
-设备描述符表定义:将设备描述符、通信接口描述符、端点描述符、CDC类功能描述符和CDC类数据接口描述符按顺序组成一个设备描述符表。
-实现命令和数据传输:根据USBCDC协议,在设备端实现相应的命令和数据传输函数。
命令传输主要是处理计算机发送过来的控制命令,包括设备的配置、状态查询、数据率设置等。
数据传输主要是通过数据端点进行数据的收发。
收到的数据可以通过CDC设备的功能函数处理后,通过数据端点发送回计算机。
-驱动程序编写:在计算机端编写一个驱动程序,用于与USBCDC设备进行通信。
驱动程序根据USBCDC协议,通过控制传输与设备进行命令和配置的交互,通过数据传输与设备进行数据的收发。
3.应用场景和优势:-替代传统串口:USBCDC虚拟串口可以取代传统的串口连接,提供更高的数据传输速率和更好的可靠性。
- 跨平台支持:USB CDC虚拟串口驱动程序在主流操作系统中都有支持,可以在Windows、Linux和Mac等操作系统上使用。
WinCE6.0下双模终端的USB转串口驱动开发

0 引 言
我国 3 G牌 照 的 发放 , 宣告 了 3 时代 的到 来 , G
基于 T —C MA和 C MA WC MA 的双 模 终 端 将 DS D D / D 取代 2 时代 的单 模 终 端 。诺 基亚 、 星 、 为 、 G 三 华 中 兴等 国 内外 通 信 厂 商 都 积 极 投 入 到 双 模 手 机 终 端 的开发 中来 , 目前 双模 手 机终 端 的研发 已经 成 为热 点 。当前市场 中主要 的智 能手 机操 作 系统 有 : o i N ka 主推 的 Sm in 开 放 内核 的嵌 入 式 Ln x 微 软 的 y ba , iu , WiC n E等 。由于 WiC 6 0嵌人 式 系统具 有实 时性 n E.
Wi E. U B设备驱动开发只提供了一些底层支持 n 60对 S C
的原因, 以通 信 模 块 厂 商 未 提 供 WiC 6 0下 的 所 nE .
U B驱 动 , 要 实 现 通 信 模 块 的基 本 功 能 , 开 发 S 而 除
纯 U B驱 动 外 , WiC 6 0下 , 需 要 修 改 Mo S 在 nE. 还 . d m源码 , e 存在 着开 发 周 期 长 、 作量 大 、 容 性 差 工 兼 等 问题 , 给开发 人 员带 来 了极 大 的不 便 。而通 过 串 口直接对 Mo e dm进 行操作 , 不仅 避 免 了上述 在开 发 中存 在 的问 题 , 时 由于操 作 Mo e 的 是 虚 拟 串 同 dm 口, 由它来 适 配 Moe 不 会 出 现 由物 理 串 口操 作 d m, Mo e 时制 约 M d m处理速 率 的问题 , 然保持 了 dm oe 仍 U B高 速的特 点 , 开 发人 员 只 需 开发 出对应 模 块 S 故 的 U B转 串 口驱 动 亦 可实 现 上 网 、 电话 等 功 能 ; S 打
2、USB转串口线驱动程序的安装

USB转串口线驱动程序的安装
USB转串口线是STC单片机的USB接口ISP下载线,也是在没有串口的笔记本上调试RS-232通信的利器。
双击可执行程序“CH341SER.exe”,如图所示。
然后点击“INSTALL”,即可完成驱动安装。
安装好驱动后,把USB转串口线插入到电脑的USB口,系统提示找到新硬件,使用“自动安装软件(推荐)”方法即可安装好驱动程序。
这时,操作系统会使用USB接口虚拟出一个串口来,可以在设备管理器中查看。
在上图中,可以看到虚拟出来的串口设备为“USB-SERIAL CH340(COM3)”,其中串口号为3。
请注意,并不是在所有电脑上虚拟出来的串口号都为3,这跟电脑具体配置有关系,请在使用USB 转串口线时一定到设备管理器中确定串口号,否则会造成通信无法连接。
USB CDC实现 虚拟串口

ANS=
step_ packet
req=0,5,1,0,0,0,0,0,
ANS=
ANS=
step_ packet
req=80,6,0,1,0,0,12,0,
ANS=12,1,1,1,2,0,0,40,ff,ff,5,0,0,1,1,2,3,1,
ANS=
step_ packet
req=80,6,0,2,0,0,9,0,
ANS=9,2,43,0,2,1,0,c0,32,
ANS=
step_ packet
req=80,6,0,3,0,0,ff,0,
step_ packet
req=80,6,0,2,0,0,ff,0,
ANS=9,2,43,0,2,1,0,c0,32,9,4,0,0,1,2,2,0,0,5,24,0,10,1,5,24,1,1,1,4,24,2,2,5,24,6,0,1,7,5,81,3,8,0,a,9,4,1,0,2,a,0,0,0,7,5,2,2,c0,0,0,7,5,82,2,
LE_WORD(67), // wTotalLength
0x02, // bNumInterfaces
0x01, // bConfigurationValue
0x00, // iConfiguration
0xC0, // bmAttributes
0x32 // bMaxPower
},
// control class interface
// data EP in
0x07,
DESC_ENDPOINT,
usb转串口线驱动设备教程

usb转串口线驱动设备教程没有串口的电脑需设备USB-串口驱动并运用改换线,改换线图像见附图2-4,及操作步凑见附图2-5,及验证设备成功步凑见附图2-6,(假定是直接选用的9针串口线下载,则越过这一步)1)USB-串口线如图所示
附图(2-4)
2)请先不要插USB-串口改换线,后点击下载附送的USB-串口驱动步凑:
附图(2-5)
这即是预设备成功了
3)如今请将USB-串口线插在电脑的USB接口上,电脑会主动查找设备,
这儿咱们点下一步
然后点结束。
这么就快要搞定了
然后请验证设备是不是成功并找到新的com号,验证设备成功步凑:
附图(2-6)
(假定能看到你的硬件处理器中有个像上图相同的虚拟的通讯端口,则标明USB-串口下载设备成功,那么请记住是COM几,由
于一会鄙人载软件里边要用到.我这是com3,但每台电脑每个usb 口会会有纷歧样的值)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
USB转串口的虚拟串口驱动
简介
USB2COM是USB转串口转换器的虚拟串口驱动程序(Windows2000/XP),适用于Cypess的USB-HID->COM转换器(未测试), 以及与之兼容的设备。
USB-HID->COM转换器是兼容USB HID类设备的设备,因此可以不用此驱动,直接以USB_HID类设备访问。
特性:
∙支持设置波特率、奇偶校验、停止位。
∙事件检测。
仅支持
SERIAL_EV_RXCHAR | SERIAL_EV_RXFLAG | S
ERIAL_EV_TXEMPTY。
∙数据流控。
todo
∙超时设置。
todo
安装
方法-:
1.把HID->COM转换器插入USB端口。
2.HID->COM转换器被识别为:USB人体学输入设备。
3.选择设备管理器->人体学输入设备->USB人体学输入设
备,单击右键。
4.选择更新驱动程序。
5.选择从列表或指定位置安装,单击下一步。
6.选择不要搜索,我要自己选择要安装的驱动程序,单击下一
步。
7.选择从磁盘安装,浏览驱动程序所在路径,单击确定。
8.提示没有通过Windows徽标测试,选择仍然继续。
9.安装完成,端口(COM和LPT) 项下面显示USB-HID ->
Comm Port(COM?)。
方法二:
使用安装程序。
还没写-;)
访问设备
∙使用Windows API
o阻塞式读写comtst.c
o检测事件comevent.c
o适当的超时设置,可以实现有数据时ReadFile返回,无数
据时阻塞。
o CommTimeOuts.ReadIntervalTimeout = 3;
o CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
o CommTimeOuts.ReadTotalTimeoutConstant = 0;
o CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
o CommTimeOuts.WriteTotalTimeoutConstant = 0;
o bRc = SetCommTimeouts(hCommPort, &CommTimeOuts);
∙MFC中使用MSComm控件
1.VC6.0 Project菜单--->Add to
Project--->Components and Controls--->Registered
ActiveX Controls,选择Components: Microsoft
Communications Control 插入到当前的Workspace中。
结果添加了类CMSComm(及相应文件:mscomm.h和
mscomm.cpp )。
2.......详见
/scomm/scmfcprogramfuji
e.htm
∙以USB HID类设备访问
0.打开设备:BOOL bOpenHidDevice(HANDLE
*HidDevHandle, USHORT vid, USHORT pid)
1.设置波特率、奇偶校验、停止位:
2.outbuffer[0] = 0; /* 无 report ID */
3.*(unsigned int *)&outbuffer[1] = 19200; /* 波特
率 */
4./*Configuration Byte
5.7 6 5 4
3 2 1 0
6.Reset 0 Parity Type Parity Enable
Stop Bits 0 Data Bits
7.*/
8.outbuffer[5] = 0x03; /* 数据位 8, 奇偶校验无,
停止位 1*/
9.bResult = HidD_SetFeature(HidDevHandle,
outbuffer, Capabilities.FeatureReportByteLength);
10.if(bResult)
11.{
12.}else
13.printf("HidD_SetFeature
failed %d\n",GetLastError());
14.读写数据
15.outbuffer[0] = 0; /* 无 report ID */
16.outbuffer[1] = 7; /* 数据长度 */
17.for(int i=0; i < 7; i++)
18.outbuffer[2+i] = 'a'+i;
19.bResult = WriteFile(HidDevHandle,
20.&outbuffer[0],
21.
Capabilities.OutputReportByteLength,
22.&numBytesReturned,
23.NULL);
24.inbuffer[0] = 0; /* 无 report ID */
25.bResult = ReadFile(HidDevHandle,
26.&inbuffer[0],
27.
Capabilities.InputReportByteLength,
28.&numBytesReturned,
29.NULL);
30.if(bResult)
31.{
32.//dump data
33.printf("len = %d\n",inbuffer[1]);
34.for(int i=0; i < inbuffer[1]; i++)
35.printf("%c ",inbuffer[i+2]);
36.}
驱动是如何工作的
TODO.
在Linux下使用USB-HID->COM转换器
∙使用USB转串口驱动cypress_m8.ko(kernel >=
2.6)
1.插入设备,如果驱动不能自动安装,执行命令modprobe
cypress_m8。
2.可以象访问普通串口设备(/dev/ttyS?)那样访问此设备
(/dev/ttyUSB?)。
∙使用libusb
testlibusb.c
∙使用hiddev
todo.
参考:
∙Different ways of handling IRPs
∙Proper Completion -- Resubmitting IRPs from within a Completion Routine
∙Using the HID class eases the job of writing USB device drivers
∙/hidpage.htm
∙/serialcomm.htm。