想做一个单片机基础上的USB接口,要求能够实现两台电脑之间的信息传输。
两台电脑,直接可以使用USB连接的,不用使用单片机的。
如果是要单片机在二台电脑上进行数据传输,应该是单片机支持两种的USB,每一种与一台电脑连接,并把一个USB口的数据转到另一个USB口上
两个USB口一个是主一个是从。
电脑上的USB接口都是host,而USB传输必须要在Host和device之间传输,所以两台电脑之间不能直接通过USB传输数据。
单片机要使用USB与电脑通讯,需要在单片机上使用device类型的USB接口,主要在单片机上实现简单的HID或者CDC(虚拟串口),就可以通过USB在下位机和上位机之间通讯了。如果使用STM32作为下位机的主控,在STM32CubeMX中可以直接选中USB Deivce,选择USB的CDC,做基本的配置就能实现STM32的CDC设置,生成工程后编译下载到下位机即可,上位机如果是Win10的话,虚拟串口免驱动。
首先单片机要跑USB,一般要移植USB的协议栈,这个USB协议栈包括USB设备检测,还有速度检测等,比较复杂,自己写比较困难,像STM32可以用那个cubemx生成一个初始化的USB工程,那里面就会带USB协议栈
然后一般单片机的USB做Device(PC一般没有USB Device的),然后使用HID或者CDC的协议,这样可以直接通信
设计电脑间用USB传递的设备实现其实可能性很高,但市场需求可能没有,因为用网络更方便,速度也可以更高。