是自定协议,用到一个bulk in ep1, 一个bulk out ep2 端点

 用虚拟串口的优点显而易见,上位机的编写非常方便,就按照常规的串口功能编写就可以了,而速度确还是usb的速度 

USB要提速

1、使用自定义的Bulk传输
2、增加驱动的Buffer
刚才又实验了下,现在驱动程序方面的速度瓶颈已经解决了。主要还是这个PipeMaxTransferSize的关系,这个值越大速度越快。晚上注意到这 个值很多USB设备的驱动程序都是设的很大的,连HID设备都设成4096,我的一个U盘也是4096,KEIL的ULINK设置成65535,几乎所有 USB设备驱动的端点0都是设成65535。晚上测试了下,这个值不会影响数据传输,这个最大值不管怎么设实际USB设备管道每次接收的数据该64字节还 是64字节,应该是WINDOWS核心驱动层收到来自USB驱动的IRP后会自动拆包成与设备固件定义的大小(64字节)进行发送的。
    做了下速度对比
pipemaxtranfer:64---33KB/S
pipemaxtranfer:512--265KB/S
pipemaxtranfer:1024--349KB/S
pipemaxtranfer:4096--457KB/S

pipemaxtranfer:65535--506KB/S 
 
要实现程序更新
 MCU首先能解析出PC通过USB发送的数据是用于更新程序的,然后MCU退出正在运行的程序并进入"更新程序"状态,完成后再运行更新后的程序

关于STM32的速度

要那么快的话就不该用STM32

应该用专用的USB读卡器芯片或者用FPGA定制
很多人有误解,以为USB2.0就意味着high speed,其实不然。USB2.0的设备(当然对主机也是差不多的道理,只是主机至少会支持full speed),可能只支持low speed 1.5M,也可能最高支持到full speed 12M(对于很多ARM芯片都是这种情况,包括STM32),当然也可能最高支持到high speed 480M

STM32的USB速度,终于确定了传输极限,为以后的产品设计提供了数据。的更多相关文章

  1. 基于STM32的USB枚举过程学习笔记(转)

    之前使用ST官方的库以及网络的资料,完成了使用USB HID类进行STM32和PC机的通讯.由于其他原因并没有深入的分析,虽然实现了功能,但是关于USB设备的枚举,以及具体的通讯方式都没有清晰的概念, ...

  2. 基于STM32的USB枚举过程学习笔记

    源:基于STM32的USB枚举过程学习笔记 基于STM32的USB枚举过程学习笔记(一) 基于STM32的USB枚举过程学习笔记(二) 基于STM32的USB枚举过程学习笔记(三) 基于STM32的U ...

  3. STM32移植USB驱动总结

    https://blog.csdn.net/stm32_newlearner/article/details/88095944 stm32   移植usb驱动开发 单片机 STM32单片机和51单片机 ...

  4. 在向server发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 管道的还有一端上无不论什么进程。

    作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/36425825 SQL Server 2008 + VS2010 用C#编写的代 ...

  5. 树莓派和STM32通过USB和串口通信记录

    不管怎样,为了简便开发,通信选择串口通信. 推荐文章:https://blog.csdn.net/magnetoooo/article/details/53564797 推荐测试工具:https:// ...

  6. STM32之USB电路(摘要笔记)

  7. 大数据学习day23-----spark06--------1. Spark执行流程(知识补充:RDD的依赖关系)2. Repartition和coalesce算子的区别 3.触发多次actions时,速度不一样 4. RDD的深入理解(错误例子,RDD数据是如何获取的)5 购物的相关计算

    1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是 ...

  8. 基于UDP传输协议局域网文件接收软件设计 Java版

    网路传输主要的两大协议为TCP/IP协议和UDP协议,本文主要介绍基于UDP传输的一个小软件分享,针对于Java网络初学者是一个很好的练笔,大家可以参考进行相关的联系,但愿能够帮助到大家. 话不多说, ...

  9. 【传输协议】http协议GET与POST传递数据的最大长度能够达到多少

    各种web开发语言中,各个页面之间基本都会进行数据的传递,web开发里面比较常用的数据传递方式有get post,一直以来我都只知道get传递的数据量要比post传递的数据量要少,所以传递大数据量还是 ...

随机推荐

  1. 一个不错的shell 脚本教程 入门级

    一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂     建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行s ...

  2. TarJan 算法求解有向连通图强连通分量

    [有向图强连通分量] 在有向图G中,如果两个 顶点间至少存在一条路径,称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G是一个强连通图.非强连通图有向图的 ...

  3. 微信微博分享注意事项(sharesdk)

    0.(重要)如果接入多渠道可以考虑微博微信appid appkey等信息放到服务端,方便临时修改又可避免很多渠道时替换ShareSDK.xml文件出错. 但是cocos2dx-2.x版本使用代码配置a ...

  4. vs安装mvc

    需要一个MVC框架和SP1补丁包,SP1补丁包的下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyID=27673c47-b3b5 ...

  5. Rotate Array

    Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array  ...

  6. [转]ASP.NET MVC 4 (九) 模型绑定

    本文转自:http://www.cnblogs.com/duanshuiliu/p/3706701.html 模型绑定指的是MVC从浏览器发送的HTTP请求中为我们创建.NET对象,在HTTP请求和C ...

  7. 初始化httpclient的几种方式

    1.CloseableHttpClient httpclient = HttpClients.createDefault(); 2.DefaultHttpClient client = new Def ...

  8. MySQL数据库学习笔记(二)----MySQL数据类型

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  9. 考虑与Maya结合

    今天改进了Hessian各块的计算代码,减少了一些内存操作.下一步准备把模拟平台与Maya结合,这样就可以利用Maya丰富的变形算法了. 这一步需要考虑以下问题: 1.把场景设置为某一帧.这一点可以用 ...

  10. iOS数组使用

    相关链接: ios数组基本用法和排序 NSArray 排序汇总 iOS 数组排序方法 IOS-筛选数组内的元素 关于EnumerateObjectsUsingBlock和for-in之间的较量 [iO ...