2个回答
展开全部
我来说下我做过的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,一两个星期完全没有问题,祝你好运!
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,一两个星期完全没有问题,祝你好运!
2013-03-29
展开全部
中国IT实验室 www. chinaitlab .com 很多计算机相关书籍 喜欢的朋友可以去瞧瞧;(不过顶一下再走,呵呵) 给出部分书的名称: 精通Visual C++图像编程 MFC中文帮助 MFC程序员的WTL指南 VC6从入门到精通-开发者眼中的VC VC6从入门到精通-附录 MS VC++6.0程序员指南 VC6从入门到精通-基础篇 VC6从入门到精通-VC与INTERNET Visual C++ 使用指南 Visual C++知识库 Visual C++ MFC入门教程 Visual C++ 6 参考大全 跟我学 VISUAL C++ 6.0 Visual C++ 6.0语言参考手册 Visual Lisp开发人员手册 Visual C++ 从入门到精通 Visual J++ 6.0 WFC 类库手册 Visual InterDev 从入门到精通 Visual C++ 6.0用户开发手册 VC编程指南 VC++6.0 类库参考手册 VC++database编程大全 VC6.0 运行库参考手册 Visual C++6.0运行库参考手册 VC++6.0模板库手册 VC++面向对象入门 VC新手学堂 Visual C++ 6.0预处理器参考手册 VC5.0开发人员参考手册 VC6中文版程序员开发指南 Visual J++ 6.0 WFC类库参考手册一 VC6 模板库参考手册 VC++编程指南 Visual J++ 6.0 WFC类库参考手册二 VC6.0 MFC类库参考手册 VC6从入门到精通-VC与数据库管理 MS VC++ 6.0 MFC类库参考手册 一 MS VC++ 6.0 MFC类库参考手册 二 走进Visual C++ 实例篇 Visual C++ 实践与提高-图形图像编程篇 Visual C++ 数字图像处理 VC-MFC编程实例 Visual C++实践与提高_环境剖析IDE篇 Visual C++程序设计:基础与实例分析 Visual C++ 6.0实例 Visual C++课程设计案例精编 Visual C++ 6.0开发与实例 VISUAL C++扩展编程实例 Visual C++6.0高级编程技巧与实例 VC++扩展编程实例 Visual C++编程技巧与范例 战胜Visual C++必做练习50题 Visual C++6.0编程与实例解析 VC-MFC扩展编程实例 MFC资源大全 精通Visual C++ 6.0 Visual C++程序模块集锦 Visual C++_Turbo C串口通信编程 Visual C++ 6.0应用编程150例 Visual C++ 6.0实例教程电子教案 教程篇 MFC Windows程序设计 Visual C++网络通信协议分析 VC6.0数据库编程 Visual C++ 学习教程 Visual_C++_新起点—6.0实用教程 Visual C++ 6-24学时学习教程 Visual C++ 6.0 21天自学教程 VC++网络教程 Visual C++ MFC 简明教程 VC 数据库编程三部教学 Visual C++ 6.0 数据库编程大全 VC新手学堂简明教程 Visual C++ 6.0 开发宝典 Visual C++ 6.0 教程 Visual C++ 6.0 高级编程 VC++6.0培训教程 Visual J++ 6.0 即学即用 Visual C++与面向对象程序设计教程 Visual C++6.0高级开发教程 Visual C++.NET 宝典 Visual C++5.0 程序设计 技术与应用 VC++6.0 用户界面制作技术与应用实例 深入浅出WINDOWS MFC程序设计 Visual C++ 角色扮演游戏程序 Visual C++6.0程序设计提高篇 VC++编程资料 VC++ 函数经典 VC++与Matlab混合编程的快速实现 Visual C++ 5.0易学活用 VISUAL C++ 设计WIN32应用程序 Visual C++入门与应用 Visual C++6.0开发宝典 Visual C++6.0技术内幕 VC++6编程方法 深入VC编程内幕 VC编程经验总结 用VC++编写USB接口通信程序 用VC开发CGI 疯狂VC技巧集 VC6开发宝典 Visual C++经典 Visual C++ 6 轻松进阶 VC编程常用捷径 MFC技术内幕 VC深入编程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询