|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
关于单片机通过usb和pc机传输数据的问题 |
作者:alloy518 栏目:通信技术 |
有一个单片机系统,需要由单片机定时(1秒钟一次)通过usb向pc机发送数据,请问这个单片机系统中usb接口芯片应该选什么?子节点芯片(PD12)可以么?我看资料中说usb通信必须是主机向子机节点先发送控制命令,子机节点才能反馈数据,如果是这样的话,单片机系统想要每秒发送一定数据,让pc机等待接受,然后pc机处理数据,单片机系统是不是就不能使用PD12之类的子节点usb接口芯片了,必须使用主节点芯片?有人说可以使用中断传输解决这个问题,请问可以么?单片机系统每秒数据量大概在2K-3KBytes,谢谢 |
2楼: | >>参与讨论 |
作者: chunyang 于 2005/12/8 9:24:00 发布:
必须使用Host型的USB接口 不过也可将控制权交给PC,每秒定时查询就是。 |
3楼: | >>参与讨论 |
作者: computer00 于 2005/12/8 10:11:00 发布:
使用HOST的片子?那如何跟PC通信? 我觉得使用USB的中断传输模式就够了。查询时间可以设置,时间间隔最小好象可以到1mS。 这样使用D12是完全可以的。 |
4楼: | >>参与讨论 |
作者: chunyang 于 2005/12/8 10:19:00 发布:
用Host时,可以参考PC USB互连技术,不过要有中间设备 相当于一个交换设备。 |
5楼: | >>参与讨论 |
作者: computer00 于 2005/12/8 11:19:00 发布:
那样?到最后还不是要变成中断模式传输? 就是你所说的那个“中间设备”,如果跟PC USB通信的话,应该也是要使用中断传输模式吧? 那还不如做一个DEVICE,直接使用中断传输模式跟PC通信,楼主要求每秒发送一定数据, 我想时间要求也不会是太严格的,使用USB中断传输模式完全够用拉。USB鼠标、键盘就是此 类传输模式。 |
6楼: | >>参与讨论 |
作者: chunyang 于 2005/12/8 13:14:00 发布:
是的 技术上的可行性是一回事,实用性是另一回事,就性价比而言,中断传输是最好的。 |
7楼: | >>参与讨论 |
作者: alloy518 于 2005/12/8 15:54:00 发布:
usb通信 我要求1秒发送一次数据,这个时间必须准确,也就是说必须由单片机进行控制,而pc机只要在1秒钟中完成对数据的处理即可,并不需要一定要立刻监测到数据,这样用中断传输可以么?谢谢 |
8楼: | >>参与讨论 |
作者: javie 于 2005/12/8 16:47:00 发布:
查询?中断? 关注中... |
9楼: | >>参与讨论 |
作者: chunyang 于 2005/12/8 17:18:00 发布:
问题是,1S时数据必须送PC且时间上不能有误差吗? |
10楼: | >>参与讨论 |
作者: alloy518 于 2005/12/8 20:19:00 发布:
数据通信 恩,也就是说单片机利用硬件定时器定时1秒(可能有一定误差,但是每个1秒间隔是不变的),然后每次定时中断后发送2-3K数据到PC机,PC机必须在下次单片机发送的数据到来前把当前次的数据全部接收取走并且处理完毕(处理所需要的时间很短,可以忽略) |
11楼: | >>参与讨论 |
作者: chunyang 于 2005/12/9 9:53:00 发布:
那没问题 用中断传输即可 |
12楼: | >>参与讨论 |
作者: alloy518 于 2005/12/9 10:16:00 发布:
工作过程 是不是PC机控制usb进入中断传输过程,发送要求进行中断传送的控制包,然后超时设置〉1秒,当每次接收到数据之后,PC机重新发送控制包并且重新设置超时?谢谢 |
13楼: | >>参与讨论 |
作者: computer00 于 2005/12/9 10:34:00 发布:
建议去看看USB的中断模式是怎么回事 由于USB是主从机制,所以设备不能主动发送数据。 USB中断传输模式是这么回事,由USB HOST每间隔一定时间(例如,1毫秒,这个时间可由设备指定)查询设备是否有数据。 这个查询过程不用你的软件负责,HOST会一直查询,且永远不会超时。所以,当你准备发送数据后,HOST会保证在一个 时间内接收到这个数据(例如,最多2mS,USB总线会为中断传输保留带宽)。例如,你在1S时刻有数据要发送了, 那么在1S到1.002S之间,你肯定会收到一个IN包的,但具体是哪个时刻是未知的(假设查询时间为1mS)。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |