野狼王 发表于 2015-3-14 10:43:00

[新手]求 用C51实现两台电脑之间USB通信的思路

已有材料:一条USB公对公的线,两台电脑A,B
实现功能:用C51分别在两台电脑上实现一个客户端,在A上输入一个字符,在B电脑上可以接收,反之亦可。
楼主基础:自己在电路板上实现过跑马灯。

PS:之所以选用USB线,是因为本实验纯属练手之用,并非为了实现通信的功能。

求思路,求拍醒~

{:2_27:}

zhoujustin108 发表于 2015-3-14 10:56:40

电脑的USB都是主,USB通讯要一主一客,你这个从硬件和协议上就不行

野狼王 发表于 2015-3-14 11:03:21

zhoujustin108 发表于 2015-3-14 10:56
电脑的USB都是主,USB通讯要一主一客,你这个从硬件和协议上就不行

硬件上?不是一根公对公的线正好能把两台电脑连接起来么?Orz

至于协议上,不知道具体是什么意思?

anyway,依你之见,该怎样才能利用USB接口实现两台电脑的通信呢?

{:2_34:}

tongdayusu 发表于 2015-3-14 11:07:08

你的意思是直接用usb线连接两台电脑,想通过c51编程序实现通讯?这不可能。

tongdayusu 发表于 2015-3-14 11:08:45

普通电脑是普通的usb2.0吧? 没用otg功能。不能直接通讯。

野狼王 发表于 2015-3-14 11:09:04

tongdayusu 发表于 2015-3-14 11:07
你的意思是直接用usb线连接两台电脑,想通过c51编程序实现通讯?这不可能。 ...

对的,就是这个意思。

Question1:为什么不可能呢?

Question2:要怎样才能有可能呢?

{:2_26:}

carollim 发表于 2015-3-14 11:10:18

用串口吧    USB有他的协议

野狼王 发表于 2015-3-14 11:14:13

carollim 发表于 2015-3-14 11:10
用串口吧    USB有他的协议

1、可怜楼主电脑上没有RS232哎~
2、就想熟悉一下USB,USB2.0或者USB3.0均可~

{:2_25:}

carollim 发表于 2015-3-14 11:15:24

USB转串口

野狼王 发表于 2015-3-14 11:15:41

tongdayusu 发表于 2015-3-14 11:08
普通电脑是普通的usb2.0吧? 没用otg功能。不能直接通讯。

USB3.0呢?

jianplx 发表于 2015-3-14 11:17:58

电脑A 《=》USB 《=》232《=》USB 《=》电脑B

野狼王 发表于 2015-3-14 11:19:07

carollim 发表于 2015-3-14 11:15
USB转串口

Good idea! 如果实在行不通,我会考虑你的建议的~感谢carollim

{:2_27:} 但作死的楼主还是想再多了解一下,我的idea是否确实是不行的。

wye11083 发表于 2015-3-14 11:55:30

野狼王 发表于 2015-3-14 11:19
Good idea! 如果实在行不通,我会考虑你的建议的~感谢carollim

但作死的楼主还是想再多了解一 ...

涉及到USB协议,你自己看协议去。用两个USB DEVICE互通是没问题的,需要自己写接口。

野狼王 发表于 2015-3-14 12:16:30

wye11083 发表于 2015-3-14 11:55
涉及到USB协议,你自己看协议去。用两个USB DEVICE互通是没问题的,需要自己写接口。 ...

啊西!

这就是我想要的答案!

{:2_26:} 感谢~

czzhouyun 发表于 2015-3-14 12:17:17

usb->单片机串口->USB

野狼王 发表于 2015-3-14 12:18:43

czzhouyun 发表于 2015-3-14 12:17
usb->单片机串口->USB

尽量不进行转接。

{:2_27:}

谢冲 发表于 2015-3-14 12:50:53

理论上能实现,不过串口好好的不用,为什么化简为难呢

野狼王 发表于 2015-3-14 13:50:00

谢冲 发表于 2015-3-14 12:50
理论上能实现,不过串口好好的不用,为什么化简为难呢

谢谢回复,我是纯属练习{:2_27:}

merphy 发表于 2015-3-14 13:54:14

PL2303转换芯片

rmdyj 发表于 2015-3-14 14:25:02

本帖最后由 rmdyj 于 2015-3-14 14:26 编辑

实在不行,可以搞两个USB转串口,把这两个USB转串口的 RX \TX 交换对接,就可以实现LZ的想法,用FT232,波特率可以1MBPS.

kafeiwutang 发表于 2015-3-14 22:42:28

c51写上位机usb程序,这个真沒听过

fuxinaries 发表于 2015-3-15 00:37:09

2楼精辟,一语道破天机{:smile:}

huangqi412 发表于 2015-3-15 08:40:34

太牛逼51敢连usb的水平想上usb3

NJ8888 发表于 2015-3-15 08:59:28

用网线啊

mkliop 发表于 2015-3-15 09:00:51

直接用以太网连接路由器

野狼王 发表于 2015-3-15 18:49:06

谢冲 发表于 2015-3-14 12:50
理论上能实现,不过串口好好的不用,为什么化简为难呢

纯属了解技术,练习用的,其实是老师的作业-->楼主是学软件的,结果对硬件的课程感觉甚是费解。

我试试去查一下USB的通信协议。

{:2_27:}

野狼王 发表于 2015-3-15 18:50:15

merphy 发表于 2015-3-14 13:54
PL2303转换芯片

这是啥子呦,容楼主先躲角落里去恶补一番

{:2_29:}

野狼王 发表于 2015-3-15 18:51:28

rmdyj 发表于 2015-3-14 14:25
实在不行,可以搞两个USB转串口,把这两个USB转串口的 RX \TX 交换对接,就可以实现LZ的想法,用FT232,波 ...

好有道理的样子,容楼主试试再回来做评论~

{:2_26:}

野狼王 发表于 2015-3-15 18:53:09

kafeiwutang 发表于 2015-3-14 22:42
c51写上位机usb程序,这个真沒听过

层主的头像辣么萌,这个真没见过。

{:2_35:} 谢谢关注撒~

野狼王 发表于 2015-3-15 18:54:37

NJ8888 发表于 2015-3-15 08:59
用网线啊

就想试试行不行,不仅仅是为了实现功能的

{:2_27:}

野狼王 发表于 2015-3-15 20:14:22

mkliop 发表于 2015-3-15 09:00
直接用以太网连接路由器

不是为了实现功能的呢,就是想试试行不行的通,楼主学生党,奈何老师爱折腾的呢~

{:2_27:}

labtech 发表于 2015-3-16 06:39:27

如果你的cpu是51单片机的话,用c51还有可能。
x86,你用c51。
你老师让你这么折腾滴?可以休了他么。

takashiki 发表于 2015-3-16 07:05:58

野狼王 发表于 2015-3-15 20:14
不是为了实现功能的呢,就是想试试行不行的通,楼主学生党,奈何老师爱折腾的呢~

...

首先,USB协议规定在同一网络中不允许多个HOST的,当然有桥接器可以实现,两头都可以插PC,价格嘛,向你老师申请经费吧,大约也就几千美金一个。
USB转TTL的,明显速度上不去。最快的我也只见过号称最烂的PL2303,6Mbps。而且局限了只能虚拟串口。

xwkm 发表于 2015-3-16 07:31:38

你这样转接需要一个有两个usb device口的器件才行。STM32好像用。8051就别想了

devcang 发表于 2015-3-16 08:19:03


2000年的时候,就使用过这样的成品的“线”,,,,,只是两端都要安装一个驱动、使用专用的软件传输

大米饭 发表于 2015-3-16 08:23:39

11楼正解
使用单片机和USB芯片来,自己定义HID设备,自己写上位机,不过只是跑过跑马灯,还有一段距离的路得走啊

weimas 发表于 2015-3-16 08:34:28

楼主太看得起51单片机了

野狼王 发表于 2015-3-16 08:40:12

labtech 发表于 2015-3-16 06:39
如果你的cpu是51单片机的话,用c51还有可能。
x86,你用c51。
你老师让你这么折腾滴?可以休了他么。 ...

老师的意思最后要实现传送文件的功能,从他的语气感觉这对学硬件的学生来说应该是不太难的

不一定非得用51,据他估计最后驱动+文件系统应该在500行代码之内。

你看这有戏么?

{:2_27:}

takashiki 发表于 2015-3-16 09:17:16

野狼王 发表于 2015-3-16 08:40
老师的意思最后要实现传送文件的功能,从他的语气感觉这对学硬件的学生来说应该是不太难的

不一定非得用 ...

这个就好弄了,用两个USB转TTL吧,然后TXD、RXD交叉,直接用超级终端的XModem、YModem、ZModem之类的发送接收文件就OK了,单片机根本就是不必要的,一句程序也不用写。为了完成任务,用单片机直接控制两个D+的上拉电阻,显得高大上一些。

xwkm 发表于 2015-3-16 09:44:01

野狼王 发表于 2015-3-16 08:40
老师的意思最后要实现传送文件的功能,从他的语气感觉这对学硬件的学生来说应该是不太难的

不一定非得用 ...

51连硬USB控制器都没有。单51加两USB根本没戏!
如果用双USB控制器的STM32倒可以。不过怕是固件+驱动下不了6000行。

bbs2009 发表于 2015-3-16 12:27:38

野狼王 发表于 2015-3-17 18:08:06

各位说的方法我都去查查看是否可行,回头再回复大家,非常感谢你们的关注~

交差之后我会尽量回来写Blog的~

{:2_27:}

logsoft 发表于 2015-3-29 16:52:22

楼主学软件的,可以想办法改写驱动底层,把一台电脑写成设备就行了,在平板上有这样做的

1826772880 发表于 2015-3-29 22:57:05

我只知道网上买有usb对拷的线,中间有个小显示屏。具体我没看,是看电影时候广告推送的

xiaoseaip 发表于 2015-4-7 10:51:58

USB转TTL,多串口单片机,这样是不是很容易,但总感觉浪费资源了

野狼王 发表于 2015-4-7 20:01:50

logsoft 发表于 2015-3-29 16:52
楼主学软件的,可以想办法改写驱动底层,把一台电脑写成设备就行了,在平板上有这样做的 ...

我确实就是学软件的,表示对硬件的设计毫无概念啊!
能麻烦再说的明白点么?

要是按照你说的这样,大概需要多少行代码呢?是用C还是汇编呢?

PIC16F54 发表于 2015-4-7 20:10:18

莫非这老师有毛病。。。

y595906642 发表于 2015-4-7 21:29:34

这个老师简直有病

野狼王 发表于 2015-4-9 00:47:34

PIC16F54 发表于 2015-4-7 20:10
莫非这老师有毛病。。。

我是学软件的,只是有一门学习接口的课程,想来老师也是想要我们自学一些东西吧。
如果不用转接口的话(从老师的意思,似乎对我们来说,反倒是转接的话会更麻烦一些),直接就只有一根公对公的USB线,
要自己写代码么?具体用汇编写还是C语言呢?我应该从那些方面开始了解这个问题呢?

takashiki 发表于 2015-4-9 07:10:13

野狼王 发表于 2015-4-9 00:47
我是学软件的,只是有一门学习接口的课程,想来老师也是想要我们自学一些东西吧。
如果不用转接口的话( ...

这老师逆天了,不是有病而是病入膏肓了。
叫他自己看USB协议去,两个USB HOST直接相连这个课题要能完成,太阳都能绕地球转了。

PIC16F54 发表于 2015-4-9 21:13:30

大家说的很清楚了,USB设计的时候就是主从模型,从来没打算让两个主机直接通信的。

nhztb 发表于 2015-4-9 23:22:46

otg是咋回事

野狼王 发表于 2015-4-10 11:10:42

takashiki 发表于 2015-4-9 07:10
这老师逆天了,不是有病而是病入膏肓了。
叫他自己看USB协议去,两个USB HOST直接相连这个课题要能完成, ...

有啥好法子,能委婉得绕过老师的错误,并且实现老师的功能(修改一下老师要求的条件,但是还是能让俩电脑进行通信)么?

作为一个只会用C++和Matlab写算法的计算机专业学生,实在不懂这些底层的问题哎~

{:2_25:}

takashiki 发表于 2015-4-10 11:25:13

野狼王 发表于 2015-4-10 11:10
有啥好法子,能委婉得绕过老师的错误,并且实现老师的功能(修改一下老师要求的条件,但是还是能让俩电脑 ...

买一条电脑USB对拷线,两头都是公的,完全满足你老师的要求,也不用要各种接口转来转去了。
单片机就随便从USB线上拉出VCC、GND点个灯交差得了。

野狼王 发表于 2015-4-10 12:56:36

takashiki 发表于 2015-4-10 11:25
买一条电脑USB对拷线,两头都是公的,完全满足你老师的要求,也不用要各种接口转来转去了。
单片机就随便 ...

感谢回复~

xwkm 发表于 2015-4-12 07:54:39

nhztb 发表于 2015-4-9 23:22
otg是咋回事

OTG是复合设备。一个断点上同时有Host和Device,需要专用的控制器实现。

野狼王 发表于 2015-7-28 10:10:35

此贴暂时终结,楼主放弃了。
页: [1]
查看完整版本: [新手]求 用C51实现两台电脑之间USB通信的思路