如何使用USB虚拟的串口实现上下位机之间端到端的通信

vivvan 2009-10-22 04:04:28
想通过USB口进行串口通信,实现上下位机之间多应用程序经串口互不干扰的通信,
就象TCP/IP协议一样。

请教各位前辈有没有类似情况的解决方法啊。。
...全文
213 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin0119 2009-11-01
  • 打赏
  • 举报
回复
每个设备每个应用程序各分配一个地址……
糊里糊涂 2009-10-28
  • 打赏
  • 举报
回复
你查找一下 USB转串口或串口转USB口 的资料
砝码 2009-10-27
  • 打赏
  • 举报
回复
只能上位机用轮询的办法,如果由下位并发,串口马上死掉
hzhytec 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lfchen 的回复:]
//RS232从理论上不支持一对多操作。
[/Quote]
如果不支持,这个232可能就不会存在于世了. 一个串口支持多设备,是最起码的要求.
hzhytec 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vivvan 的回复:]
是啊,问题是这个协议怎么写比较好啊

有没有可利用或可以改的源码啊..没写过协议方面的东西,不是很懂
[/Quote]

我觉得不会这么复杂吧。 你不是在用USB吗?USB2.0不就是个通讯协议吗? 它规定了一系列的操作过程呀. 你只要把信号分开到不同的设备就可以了吧. 串口是共用一个没错,把多个设备挂在上面就可以啦,我想没有区别呀.
hzhytec 2009-10-27
  • 打赏
  • 举报
回复
我最近也在搞这个,我想思路不复杂:
1,应用程序的数据打包做好标识。这个标识能够很好地被区分.
2,把USB的信号进行广播处理,就是把信号同时发到几个USB设备上面.
3,USB设备从广播的信息里找到自已想要的并做相应处理.
另外如果不广播的话就要统一解码,然后把不同的信号统一分开. 这时你需要象路由器一样,把信号分给不同的端口再发送出去.
我现在就在按这个方案做试验,写代码.
大家可以讨论一下.
EM: hytec@sina.com.cn


vivvan 2009-10-27
  • 打赏
  • 举报
回复
我想在上位机用一个线程+链表记录需要处理的应用程序,然后下位机上传数据分块上传,上位机调用一次,则上传一块.

然后上位机轮转处理链表,若有一应用程序处理完,则删除该节点

不知道这种想法是否可行啊..
一条晚起的虫 2009-10-27
  • 打赏
  • 举报
回复
//RS232从理论上不支持一对多操作。
gamedragon 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hzhytec 的回复:]
一个串口支持多设备,是最起码的要求.
[/Quote]
你把USB和串口理解成同一个东西了吧
codelast.com 2009-10-25
  • 打赏
  • 举报
回复
你是想多个应用程序同时操纵串口吗?非驱动级的串口编程,程序对串口是独占的,办不到多个程序同时占用串口。
除非你有一个中转的程序,或者在驱动级开发。
gamedragon 2009-10-25
  • 打赏
  • 举报
回复
就参考TCP/IP就行了呗,搞简单点。
当然底层要经过个服务中转一下。其一,因为串口是独占式的,同一时刻只能由一个进程打开,多应用程序共用串口就一定要有个管理的;其二,多应用程序同时发数据,但串口就一个,应用程序发下来的请求必须在这个服务中排个队才不会乱。
用户 昵称 2009-10-25
  • 打赏
  • 举报
回复
这也用不着协议吧,多个串口跟一个串口也没有什么差别。
vivvan 2009-10-24
  • 打赏
  • 举报
回复
来个人帮帮忙啊。。。
vivvan 2009-10-22
  • 打赏
  • 举报
回复
是啊,问题是这个协议怎么写比较好啊

有没有可利用或可以改的源码啊..没写过协议方面的东西,不是很懂
vc1000 2009-10-22
  • 打赏
  • 举报
回复
我认为每个应用程序都应该有自己的协议,然后每个应用程序都接收串口的所有数据,然后根据协议解析出对自己有用的数据,其他的丢弃
getemail 2009-10-22
  • 打赏
  • 举报
回复
帮顶贴,只要2分即可

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧