7230|14

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

PC从51单片机接收高速采样数据,求教通过USB接口完成通信的可行方法 [复制链接]

如题:
下位机工作时,将产生大量采样数据(每秒近五千次,若可有效通信还可能加快),其采样频率较大程度地决定产品性能。
上位机与之通信以前都走串口,但当前PC中的串口已面临淘汰,而且其速度和稳定性也都难以达到要求,故急求USB通信的可行方法。恳请哪位有实际经验的高手相助。

请同时指教上位机软件(C#2008开发)和下位机设备(C51)皆可用的办法。

注:使用c#2008进行USB通信,和C51发送数据到USB端口,这两种技术我都不了解。

最新回复

这种情况下USB也不可靠,传输距离才这点点, USB卡来贵, 换种思路 IPC 工控PC或普通PC,加块PCI AD采集卡,主要是PC机的编程问题了  详情 回复 发表于 2008-9-2 22:27
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
如果希望使用USB 接口和PC机通信,给51加一块USB接口芯片就行了.

先到网上找找,选什么型号的USB接口芯片,看看它的传输速度能不能满足的的要求
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
直接找带USB接口的MSC-51兼容单片机,便于你的开发。一般厂方都会有相应的开发示例,包括USB的。
不过现在这种单片机也未必便宜,如果时间允许,可以考虑换ARM Cotex-M架构的CPU,外设全,功能强大。


PC上的就必须用DriverStudio进行USB的驱动开发了,不过现在这个技术也很成熟。建议去www.DriverDevelop.com论坛,里面有专门的USB开发版块,是较早进行USB开发交流的论坛了。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

4
 
支持2楼
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
每秒5000次,就是usb的通讯能力也未必胜任。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
每秒5000次,未必每秒传输5000个数据。单片机可以保存一部分的,只要确保不丢失采样的数据就行。
如果是5000个字节,那就是5KB/S,USB1.1是1.5MB/S,足够的。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(中级)

7
 
如果是5K的数据,那的确可以。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 2 楼 shuiyan 的回复:
直接找带USB接口的MSC-51兼容单片机,便于你的开发。一般厂方都会有相应的开发示例,包括USB的。
不过现在这种单片机也未必便宜,如果时间允许,可以考虑换ARM Cotex-M架构的CPU,外设全,功能强大。


PC上的就必须用DriverStudio进行USB的驱动开发了,不过现在这个技术也很成熟。建议去www.DriverDevelop.com论坛,里面有专门的USB开发版块,是较早进行USB开发交流的论坛了。
STM32 ??
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
在USB通讯协议上,采用CDC类协议,在PC端不需要任何附加的驱动程序,这一点是比较吸引人的,在工程安装实施的时候,可以省去不少麻烦。
优点是:
1、不需要专门定制的驱动程序,它使用的是Windows内置的usbser.sys
2、低成本。

这里有个例子:
作者采用PIC18F4550作为主控CPU,可以提供8路数字输出,8路数字输入,8路模拟输入
作者提供了单片机的代码和PC机端的Delphi代码。
[code]
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

10
 
希望能对你有些帮助。

首先,你提到用USB进行PC和下位机通信,那这里的USB就不仅仅是一个串口定义了,而是从通信到设备的一组串口设备规范。通信规范就分成物理层、传输层;而设备规范根据不同的USB设备来定义(USB鼠标、U盘、打印机等等)。具体的规范文件可以google找或从usb.org来下载。

然后说系统结构:现在常见的USB通信都是Host和Device之间的通信,也就是不对等的通信。Host方做为主控方;Device方做为受控方。当然最新的OTG技术有新的定义,你可以不用考虑。PC上的USB口都是Host接口,所以你的设备只能做成Device。问题是你打算把你的Device做成一个什么设备。如果你准备安装驱动,你可以定义你的设备为自定义设备;如果你不希望安装驱动,可以将设备定义为已知的BOT设备或HID设备。我觉得定义成U盘就不错,简单方便,U盘使用的传输协议一般都是BOT协议,设备协议可以参考SCSI磁盘设备的协议或找个好一点的U盘来跟踪(跟踪工具我一般用Bus Hound)。注意,所有的USB设备有USB组织分配的VID(厂商ID)和厂家自定义的PID(产品ID)。如果你实现的设备只使用一家供货商提供的USB控制芯片,可以商量着借用该控制芯片供货商的VID,并让别人给你指定PID。

最后简单的说一下实现方案:首先物理层上USB1.1的Full Speed是12Mbps(1.5MB/s);USB2.0的High Speed是480Mbps。传输层使用BOT。设备应用层参考U盘。PC工具通过Windows提供的设备读取API来读取设备的采样数据。整个实现从工具到设备都不是很复杂。唯一可能存在问题的地方是,USB控制既要接收PC的命令来回传数据、又要采集数据,是一个双接口工作的芯片,要协调好,不要造成冲突。

 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

11
 
都好好看了,待俺试一下先。不要急,甭管谁的方案最终被采用,热心者皆有分。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

12
 
vb6 ,c51

西安杨工单片机博客

http://c8051fmcu.blog.sohu.com
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

13
 
我来学习下。。。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

14
 
学习下。。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

15
 
这种情况下USB也不可靠,传输距离才这点点,
USB卡来贵,
换种思路 IPC 工控PC或普通PC,加块PCI AD采集卡,主要是PC机的编程问题了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表