打印
[MCU]

串口通信的字节数

[复制链接]
1437|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhn11212023|  楼主 | 2015-12-22 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在弄串口通信,MCU通过RS232与从机相连,为了保证数据安全可靠,选择用包的形式传输,但是不知道包的大小怎么设定,想问下一般是怎么选择包的大小的呀?谢谢啦~~

相关帖子

沙发
JY-DX-JY| | 2015-12-22 10:26 | 只看该作者
需要多大设多大。你都要传输那些数据呀。一般是帧头,字节数,数据,校验和。

使用特权

评论回复
板凳
ningling_21| | 2015-12-22 10:41 | 只看该作者
根据传送的数据量的多少自己定义,几个到几百个字节都可以

使用特权

评论回复
地板
zhn11212023|  楼主 | 2015-12-22 10:49 | 只看该作者
JY-DX-JY 发表于 2015-12-22 10:26
需要多大设多大。你都要传输那些数据呀。一般是帧头,字节数,数据,校验和。 ...

没有一个通用的大小么?我的格式是帧头(2),长度(1),数据(n),CRC(2),帧尾(1),但是不知道数据多长合适

使用特权

评论回复
5
zhn11212023|  楼主 | 2015-12-22 10:49 | 只看该作者
ningling_21 发表于 2015-12-22 10:41
根据传送的数据量的多少自己定义,几个到几百个字节都可以

帧头(2),长度(1),数据(n),CRC(2),帧尾(1),这是我的格式 。为了考虑到效率啦,容错啦,有一般性的长度么?

使用特权

评论回复
6
JY-DX-JY| | 2015-12-22 10:52 | 只看该作者
zhn11212023 发表于 2015-12-22 10:49
没有一个通用的大小么?我的格式是帧头(2),长度(1),数据(n),CRC(2),帧尾(1),但是不知道数 ...

没有通用大小

使用特权

评论回复
7
JY-DX-JY| | 2015-12-22 10:52 | 只看该作者
zhn11212023 发表于 2015-12-22 10:49
没有一个通用的大小么?我的格式是帧头(2),长度(1),数据(n),CRC(2),帧尾(1),但是不知道数 ...

没有通用大小

使用特权

评论回复
8
ningling_21| | 2015-12-22 12:17 | 只看该作者
zhn11212023 发表于 2015-12-22 10:49
帧头(2),长度(1),数据(n),CRC(2),帧尾(1),这是我的格式 。为了考虑到效率啦,容错啦,有一 ...

如果波特率够高,数据包可以大点几百个,波特率低就小点几十个

使用特权

评论回复
9
yhn1973| | 2015-12-22 12:27 | 只看该作者
可以用modbus协议

使用特权

评论回复
10
justtest111| | 2015-12-22 13:01 | 只看该作者
字节数可以根据你的波特率和闪存大小自己决定啊

使用特权

评论回复
11
zhn11212023|  楼主 | 2015-12-22 13:51 | 只看该作者
justtest111 发表于 2015-12-22 13:01
字节数可以根据你的波特率和闪存大小自己决定啊

可以详细一点么?

使用特权

评论回复
12
zhn11212023|  楼主 | 2015-12-22 13:52 | 只看该作者
ningling_21 发表于 2015-12-22 12:17
如果波特率够高,数据包可以大点几百个,波特率低就小点几十个

115200,你觉得怎么样一个范围合适呢?

使用特权

评论回复
13
sjnh| | 2015-12-22 14:02 | 只看该作者
zhn11212023 发表于 2015-12-22 13:52
115200,你觉得怎么样一个范围合适呢?

既然用RS232说明通信距离很近,干扰也少,115200可以;

使用特权

评论回复
14
ningling_21| | 2015-12-22 14:19 | 只看该作者
zhn11212023 发表于 2015-12-22 13:52
115200,你觉得怎么样一个范围合适呢?

不知道你的数据量有多少

使用特权

评论回复
15
changmiao| | 2015-12-22 14:26 | 只看该作者
你这个问题就好像进入自助餐厅后问服务员,我可以吃多少东西呢?

使用特权

评论回复
16
qq4988| | 2015-12-22 15:54 | 只看该作者
一个包的字节数多少,看你使用单片机的RAM多少,可以任意定的。自己定义一个协议,就可以

使用特权

评论回复
17
zhn11212023|  楼主 | 2015-12-22 17:36 | 只看该作者
sjnh 发表于 2015-12-22 14:02
既然用RS232说明通信距离很近,干扰也少,115200可以;

是的,可是我问的是数据的长度耶。。。

使用特权

评论回复
18
justtest111| | 2015-12-22 20:47 | 只看该作者

这个真得根据你的需求来定啊,你要传输什么数据,多少时间传输1帧数据,你的闪存有多大,大量数据校验耗时是否很长,这些都是影响因素啊,我跟你说我一帧数据几百个字节也没用啊。

使用特权

评论回复
19
lentgi| | 2015-12-23 09:23 | 只看该作者
根据经验,一般控制在250个以内最好,波特率19200以上

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

27

帖子

1

粉丝