找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1743|回复: 16
收起左侧

问一个通信协议问题

[复制链接]
ID:1047240 发表于 2022-12-8 22:01 | 显示全部楼层 |阅读模式
一个芯片向另一个系统进行通信的过程问题,是只需要向另一个系统发送代表传输的请求或命令就等待吗?

比如说A打开传输端口向B发送代表读取的请求,然后发出的请求由B全权处理传输给A吗?

请求的格式排列是怎么样的?比如,请求指令-数据地址......这种是怎么排列的。

还有就是有没有硬件速率问题,就是说比如A发送的频率高到B的硬件反应不过来而产生错误的情况。

如果有,解决的方式是什么?


回复

使用道具 举报

ID:230742 发表于 2022-12-9 00:12 | 显示全部楼层
自己编写协议还是有点费劲的。为什么不用现成的协议呢?比如SPI,串口。距离远的可以用232,485啥的。多么成熟的协议啊。直接拿来用就好了。
回复

使用道具 举报

ID:1047240 发表于 2022-12-9 01:56 | 显示全部楼层
啤酒瓶子老大 发表于 2022-12-9 00:12
自己编写协议还是有点费劲的。为什么不用现成的协议呢?比如SPI,串口。距离远的可以用232,485啥的。多么 ...

我没确定它的信息交换机制,协议倒是次要的,就是我下边问那些。

其实我不太理解协议这个概念,照你这么说协议不是硬件固定的传输指令?
我想就是发送请求,请求通过后机器就会选择请求中地址或注册程序的的信息发送回来,这协议在其中扮演什么作用?
回复

使用道具 举报

ID:155507 发表于 2022-12-9 08:29 | 显示全部楼层
你是不是想知道有多少种通用协议啊?
像TCP/IP
USB
MODBUS
UART
SPI
IIC
CAN
LIN

就必须先读通 其中的协议
回复

使用道具 举报

ID:155507 发表于 2022-12-9 08:42 | 显示全部楼层
你可以看一下 DS18B20协议时序
http://www.51hei.com/bbs/dpj-192978-1.html

回复

使用道具 举报

ID:123289 发表于 2022-12-9 08:46 | 显示全部楼层
犹如两个人说话:
1、一个用中文,一个非洲部落语,无法沟通。
2、说的话,听的慢,不行。
3、沟通顺畅后,同时说不行,要一说一听,谁说谁听都一样。
4、你骂他,命令他,求求他,都可以,他都能懂。反之也一样。
最后一个问题,就是说得快的人,要说慢一点,等等慢的对方。这就是解决方案!因为说得慢的人,快不起来。
回复

使用道具 举报

ID:308903 发表于 2022-12-9 08:47 | 显示全部楼层
问题1:串口和并口的问题;问题2:涉及具体协议格式;问题3:波特率的问题
回复

使用道具 举报

ID:384109 发表于 2022-12-9 10:05 | 显示全部楼层
协议是一个大而全的概念,包括硬件和软件,只是现在一般指某些特定方面罢了。要更好的理解协议,可以学习通讯原理方面的知识
回复

使用道具 举报

ID:195496 发表于 2022-12-9 11:32 | 显示全部楼层
硬件能通讯,再考虑发送数据代表什么意思,这是应用问题
回复

使用道具 举报

ID:401564 发表于 2022-12-9 13:55 | 显示全部楼层
如果你要学习单片机,那就买一本书来看,三五十块,哪怕是一百块也不算多,应该不用分期吧
如果你不想学单片机,那就没有必要问这类问题,这东西一时半会说不明白,你可以百度一下IIC协议,再认真看一遍,你也不用非得去真正理解不可,你就看一下里面有多少你不知道的专业名词吧
协议就分两种:
一种是行业标准协议,像IIC,CAN之类的,它有专门的标准,你只能按照它规定的来进行通讯,就像你说的什么排列,它是有规定,比如,第一个是地址,规定了地址是8位的,第二个是命令,规定了命令是8位..............
另一种是自己写的协议,你爱怎么写就怎么写
回复

使用道具 举报

ID:1047240 发表于 2022-12-10 03:10 | 显示全部楼层
yzwzfyz 发表于 2022-12-9 08:46
犹如两个人说话:
1、一个用中文,一个非洲部落语,无法沟通。
2、说的话,听的慢,不行。

不是,我的意思是比如两个机器的里面各有一个三极管,这两个三极管的反应时间不同。
这种情况下如果快的说慢的根本听不清,连约定说多快都做不到。

如果你说的也是这个问题的话,那实际的解决方法是什么?
我想了三种,其实是两种解决方式。一种是串联发一次1位就反馈一次或者并联发一次8位也反馈一次,这样就不会产生因为硬件反应速度的原因发送错误。另一个就是用一个被动的最高速存储硬件来解决,一边发送大量的数据后用一次触发来让另一边读取。这样就可以各自按自己的速度来工作而不产生反应速度的问题了。

事实上有没有和我说的相似的?或者是其他方式。

也许我说的不贴切,就是说A发了一个信号给B,但B硬件慢还没有醒这时候A又发了一个这时候信号就覆盖或者发布不去就再发第三个了,所以实际上是怎么解决的这个问题?
回复

使用道具 举报

ID:1047240 发表于 2022-12-10 03:22 | 显示全部楼层
Y_G_G 发表于 2022-12-9 13:55
如果你要学习单片机,那就买一本书来看,三五十块,哪怕是一百块也不算多,应该不用分期吧
如果你不想学单片机 ...

见笑了,先了解个大概。磨刀不误砍柴工嘛
回复

使用道具 举报

ID:88256 发表于 2022-12-10 09:41 | 显示全部楼层
正在学习51 发表于 2022-12-10 03:22
见笑了,先了解个大概。磨刀不误砍柴工嘛

上面的几个都说得很清楚了,你自己不去学,偏要“先了解个大概”,怎么解释都因为你没有基础而对牛弹琴,这不是来消遣人吗?
回复

使用道具 举报

ID:88256 发表于 2022-12-10 09:43 | 显示全部楼层
“两个机器的里面各有一个三极管”,这个说法让人感到很奇怪呢
回复

使用道具 举报

ID:1047240 发表于 2022-12-10 19:44 | 显示全部楼层
hhdsdy 发表于 2022-12-10 09:41
上面的几个都说得很清楚了,你自己不去学,偏要“先了解个大概”,怎么解释都因为你没有基础而对牛弹琴, ...

怎么能说消遣人,如果不想回答就不答这是个人自由啊。如果没看懂我说什么或者我说的与事实有出入那也可以讨论主流以外的方式啊。
我并不想按部就班的只玩个单片机,我希望扩展哪怕讨论到核电子。
回复

使用道具 举报

ID:73992 发表于 2022-12-12 21:22 | 显示全部楼层
正在学习51 发表于 2022-12-10 19:44
怎么能说消遣人,如果不想回答就不答这是个人自由啊。如果没看懂我说什么或者我说的与事实有出入那也可以 ...

如果第一个发送数据,第二个反应有点慢,第一个会处理其他任务,等第二个反应过来给第一个发个信号,第一个发第二个数据。协议可以约定速度,比如串口通讯,波特率要一致。也可以约定流程,比如自己约定流程。像并口通讯,可以自己定通讯流程。
回复

使用道具 举报

ID:384109 发表于 2022-12-13 22:29 | 显示全部楼层
越大的范围,越大的概念都是由细节决定的,不了解细节,讨论大的概念,就趋向于吹牛,而不是讨论知识了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表