A. 用vc++实现usb接口通信编程的一般步骤
我来说下我做过的USB通信,我没有做过DSP跟上位机的通信,我只做过ARM类的STM32跟上位机的数据传递,虽然做过但是也不是很 懂,只是略知一二,我来说说我怎么做的吧,我是这么实现的:
USB是个很复杂的协议,你如果完全搞懂,我估计没有几个月专心钻研是不行的,但是如果只是能实现你的这个功能,我估计不是很复杂。
首先来说说USB通信:
USB通信传输方式分为四种:控制,中断,批量,同步传输四种,这个你可以看看网上资料,然后我用STM32通信,因为数据量不是很大,我用的是中断传输方式,但是DSP数据量应该会比较大,不知道中断传输行不行,但是一般问题不大。
传输方式说完了,再说说USB设备类型,你每次插usb设备到电脑上的时候就会有提示,这是一个什么设备,USB设备类型就是说的这个意思,是鼠标还是键盘还是别的什么的,如果你选用标准的类,你就不用自己写上位机(PC)的驱动程序,但是如果不用标准的类,就是用自定义的类就要自己写上层的设备驱动程序,就是所谓的DDK,WDM,WDF什么的,你没写过这方面的还真有点棘手,但是也不一定要写驱动程序,你可以试试有个类叫HID类,这个类在USB通信的时候用的还挺多的,不过这个类也有缺点,这个地方还要说一点,USB还分低速,全速,高速三种,不太了解DSP,不知道他支持什么模式,但是USB2.0的全速应该至少可以支持的。
USB2.0全速模式HID用中断方式每秒最多可以传输64KB的数据,不知道能不能达到你的要求,但是我估计一般问题不大了,如果你这歀DSP能支持高速模式,每秒用这种方式可以传输高达22MB的数据,这个速度一般问题不大了。
你可以照着我说的思路,去网上搜搜人家写好的程序,肯定有人做过DSP的USB通信,然后你按照自己的要求改一改,主要应该是USB的设备描述符部分要自己修改,然后可能还要根据自己的电路改改配置什么的,上位机软件网上有源代码的多的是,然后自己摸索摸索,我估计你要是编程水平还可以的话,只是摸索USB,一两个星期完全没有问题,祝你好运!
B. 使用C++进行USB接口编程的书
正好我这里可以介绍几本书给你看看, 《Visual C/C++系统开发典型实例解析》 http://www.xavw.com/book/html/?6818.html 本书本着实用的原则,通地定一个个典型案例解析,深入介绍用Visual C/C++进行系统开发应用的编程方法和编辑技巧。全书共7章:第1章Windows系统深入应用编程实例,对典型实例编程中所涉及到的Visual C/C++基础知识进行深入探讨和分析,围绕Visual C/C++有关Windows系统深入应用列举了48个典型应用案例;第2章桌面窗口管理应用编程实例,该章列举桌面和窗口管理12个典型应用案例;第3章对话框与工具条制作与改进应用编程实例,该章主要围绕对话框与工具条制作与改进应用编程,列举20个典型而实用的编程实例;第4章控件与组件应用编程实例,在该章中列举控件应用编程13个典型而实用的编程实例;第5章多媒体应用编程实例,列举11个媒体程序开发典型而实用的编程实例;第6章管理信息系统开发应用编程实例,列举15个数据库应用编程实例;第7章Visual C++编程技术巧23则,在该章中每个编程技巧均给出了完整的源代码。 本书内容丰富,实用性强,所有实例中的源程序代码都经过了测试和使用,并给出详细解释,浓缩Visual C/C++系统开发程序设计的精华,是系统开发编程人员的经验之作。 本书适合具有一定Visual C/C++基础的应用编程人员和系统开人员,对刚开始用Viusal C/C++进行系统开编程的新手也有很好的参考价值。 《USB 2.0硬件设计(第2版)》 http://www.xavw.com/book/html/?6819.html USB是外围设备与计算机进行连接的快速且灵活的新式接口。本书介绍最新的USB 2.0标准,从USB 的基础开始介绍,包括实际的硬件与软件设计,并且使用汇编语言、Visual C++、Visual Basic 等来示范程序代码的编写。另外还有各种USB 芯片介绍,帮助读者快速设计自己的USB 设备。 本书共15章和1个附录,内容包括:USB 简介、USB 传输、检测设备、控制传输、USB 控制器芯片、Cypress enCoRe控制芯片、驱动程序、设备类别、设备测试、电源管理与信号编码、电路接口、集线器、HID设备、HID程序设计、HID设备开发实例以及USB参考资料等。 本书适合从事USB 硬件、软件设计的程序员和其他相关技术人员使用或参考。 查看原帖>>