如何让上位机识别识别是哪个下位机发过来的数据?

Engineast 2004-08-04 10:51:07
上位机是一台PC机,下位机是多台单片机,如何让上位机识别识别是哪个下位机发过来的数据?

是否采用数据包?
数据包格式怎样?
如何用实现?

谢谢!
...全文
444 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Engineast 2004-08-11
  • 打赏
  • 举报
回复
通信过程如下:

1. 主机向从机发送从机地址.(注意:超时重发)

2. 从机接收到自身地址,置SM2=0,并返回自身地址.(是否也要注意超时重发?)

3. 主机确认发送和接收的从机地址是否相符.
若不符,则主机发送复位信号,从机收到,置SM2=1,转监听状态.
(问题:如果收不到,该怎样把置SM2=1?)
若相符,则主机发送命令(复位命令 或者 接受数据命令).

4. 从机发送操作结果或者数据.(注意:可能不需要起始结束标志,但需要数据校验)

书上的例子是这样做的,有些实际通信中的问题,应该怎样处理?

比如超时重传的具体问题!!!
一条晚起的虫 2004-08-11
  • 打赏
  • 举报
回复
下位机通讯格式中加地址信息
danielzhu 2004-08-11
  • 打赏
  • 举报
回复
采用主从式通讯协议,轮询
phant 2004-08-10
  • 打赏
  • 举报
回复
数据通信都要有规约协议在其中,要不程序怎么解析数据内容,CDT,POLLING等。就像TCP.UDP提出提出报文一样,有ip,端口,等等,你可以使看一下。
yxlab 2004-08-10
  • 打赏
  • 举报
回复
在数据中加入位置编码,再去识别,就可以了。
lion1900 2004-08-05
  • 打赏
  • 举报
回复
RS232是点对点通信的,怎么可能接多个下位机呢?
485的话要制定规约了,你可以参照很多现用的串行通信规约
比如部颁CDT
Engineast 2004-08-05
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/TopicView.asp?id=3241875
Engineast 2004-08-04
  • 打赏
  • 举报
回复
采用中断方式效率更高些!!!
请问如何解决?
kendy008 2004-08-04
  • 打赏
  • 举报
回复
这个得看你与下位机的通讯方式如何了。如果下面的单片机是采用查询方式,则上位机一般先是发一个地址码,启动下面相对应的单片机系统,然后 此单片机系统响应并发送数据,这样就自然区分了是哪台下位机了。如果下位机是采用中断方式,那就是另一种方式了。
Engineast 2004-08-04
  • 打赏
  • 举报
回复
能具体讲讲吗?
danielzhu 2004-08-04
  • 打赏
  • 举报
回复
呵呵,可以使用主从式通讯协议!
Engineast 2004-08-04
  • 打赏
  • 举报
回复
希望大家帮忙看看我的这个贴:
http://community.csdn.net/Expert/TopicView.asp?id=3241875

是整个系统的设计方案,多指教啊!
Engineast 2004-08-04
  • 打赏
  • 举报
回复
用RS232或者485
lion1900 2004-08-04
  • 打赏
  • 举报
回复
你用什么通信的?485串口,还是CAN总线?
Engineast 2004-08-04
  • 打赏
  • 举报
回复
对这些帧进行解析,但是如何确认每个帧的序列呢?
zhangnanonnet 2004-08-04
  • 打赏
  • 举报
回复
数据包中包含下位机的编码信息,上位机解析就知道了

2,640

社区成员

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

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