找回密码
 立即注册
楼主: qepuemc

双串口芯片stc8h2k08是怎么个双串口法?

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-6 17:14:30 来自手机 | 显示全部楼层
Yim_Hom 发表于 2024-7-6 08:41
那接下来的想法就是。有主机ABC。分别需要对从机123 4 5进行采样。为了使主机ABC不互相干扰。需要对他们的 ...

这样说的不太清楚。假如有主机ABC。他们都对123 4 5进行采样。比如说主机b还需要联网。但是每次的采样周期都相对比较长,比如一分钟。
而主机a作为CPU处理器。可能每200毫秒就要采集一个数据。毕竟要采集多种数据,可能需要更长时间。这个时候他就会把。数据统一发送的问询的485网络。这个时候12345可以接受的数据如果这条数据是发给三的,那么三就做处理1245不予理会。但是这时候这些数据不管是发的还是回的都会发到。主机b。这样的话主机b也会比较繁忙。接受了很多他不需要的数据。还有可能加上主机c呢。要想屏蔽掉这些无用的信息。我觉得一种方法就是加上一个转换模块。接收到主机的信息就去分机上请求。并把请求完成的数据发给主机。平时就是等待主机的命令。也就是把串口引脚设置到主机的位置。等到接收到指令后再换从机的位置。
用一个芯片能不能同时接收两个串口中断。这个我没有试过,所以还不知道。

点评

要纠结的话,同一优先级,也会有很轻微的先后,可以忽略不计。 但是01 02 03…编码,或者叫帧头+地址码+功能码+校验码+帧尾的方式,是能实现你的需求的。长度你自己可控啊。 比如 FF FE 做帧头 01 02…做地址码 03 0  详情 回复 发表于 2024-7-6 23:52
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:418
  • 最近打卡:2025-05-04 00:25:16
已绑定手机

34

主题

2096

回帖

2210

积分

荣誉版主

积分
2210
发表于 2024-7-6 20:16:46 | 显示全部楼层
qepu*** 发表于 2024-7-6 17:04
STC32G12K128都有四个独立的物理串口
上面这一句我的理解就是。这个芯片可以有4组独立的串口缓存。只要接 ...

STC32G12K128有四个独立的物理串口,就是字面意思,没有其它含义。
你说的4组独立缓存也好,数据保存也罢,都需要代码实现,单片机能提供给你的就是足够的串口、存储空间和指令处理能力,其它的都需要通过代码实现。
标准的RS-485总线是一主多从的结构,你可以使用一个单片机的多个串口接入多个485总线,并接收各个网络里面的主机指令,至于指令什么过滤,怎么转发,只要逻辑清楚都可以通过代码实现。

睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-04 00:16:27
已绑定手机

19

主题

3191

回帖

4930

积分

论坛元老

积分
4930
发表于 2024-7-6 22:18:00 | 显示全部楼层
MCU都是一步一步执行任务的多串口应该也是有任务延时吧。不可能同时发送同时接收。

点评

简而言之,某个串口的收发不会阻塞其它串口的收发  详情 回复 发表于 2024-7-7 10:44
MCU的处理速度比485接收速度快多了,基于中断或者DMA的收发方式其效果和同时收发没什么差别。  发表于 2024-7-7 10:44
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:215
  • 最近打卡:2025-05-03 00:37:12
已绑定手机

36

主题

561

回帖

1942

积分

荣誉版主

积分
1942
发表于 2024-7-6 23:52:57 | 显示全部楼层
qepu*** 发表于 2024-7-6 17:14
这样说的不太清楚。假如有主机ABC。他们都对123 4 5进行采样。比如说主机b还需要联网。但是每次的采样周 ...

要纠结的话,同一优先级,也会有很轻微的先后,可以忽略不计。
但是01 02 03…编码,或者叫帧头+地址码+功能码+校验码+帧尾的方式,是能实现你的需求的。长度你自己可控啊。
比如
FF FE 做帧头
01
02…做地址码
03 04 78 89 90 1A做功能码
FE FF做帧尾
根据地址码再确定处理与否
把串口当作类modbus来用也不是不行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-7 08:02:37 | 显示全部楼层
Yim_*** 发表于 2024-7-6 23:52
要纠结的话,同一优先级,也会有很轻微的先后,可以忽略不计。
但是01 02 03…编码,或者叫帧头+地址码+ ...

这么说明,主机从机都是我自己做的。不过也是符合modbus协议的。也有校验。这样方便加其它设备通信。现在在加有人的DR154上云,这就需要地modbus的。本地当然也可以做两套从站协议,不过还是有过多的数据发送到串口总线。  然后还要加触摸屏幕的通信。所以要做到数据过滤。免得上云设备数据太多(估计有边缘处理功能就不用了)。现在是没有。所以需要这样的考虑。

点评

那你肯定也是先采集数据,然后往外发或者到云端完成数据的发送和处理,大家都明白你的意思,重要的是思路和方法,不然怕是没有mcu能满足你。  详情 回复 发表于 2024-7-7 08:16
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-7 08:07:10 | 显示全部楼层
晓*** 发表于 2024-7-6 20:16
STC32G12K128有四个独立的物理串口,就是字面意思,没有其它含义。
你说的4组独立缓存也好,数据保存也罢 ...

你这意思和工程师说的不一样可能。他们说的就是只有一个串口。但是可以设备多组引脚。
我的意思是如果有30 31   16  17   36  37  这个时候设置为等16  17 的中断数据就不可以等36 37的中断数据,所以没法处理两个485串口过来的数据。 是不是只能设置16 17 口中断然后等数据来了。再处理然后再发到36 37  然后再去16 17 口去等待呢?

点评

单片机有4个串口,每个串口占用的IO可以通过寄存器配置,最多有四种选择,建议你仔细看芯片手册,里面都有非常详细的描述。多串口不是通过把一个串口配置到多组IO实现的,而是实实在在的四个串口,使用各自的IO操作  详情 回复 发表于 2024-7-7 10:49
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-7 08:09:01 | 显示全部楼层
so*** 发表于 2024-7-6 22:18
MCU都是一步一步执行任务的多串口应该也是有任务延时吧。不可能同时发送同时接收。 ...

就是这样意思。我咨询过。不可以是4个口都设备中断。只能选用其中一个。32脚的话只有三个。所以理解不了四个串口

点评

你自己看过芯片手册就不会有这样的疑惑了,因为芯片资源太多,不得已才通过交叉复用的方式把资源分配到一些固定的IO上,如果选了引脚较少的芯片,那些删减掉的引脚的资源自然无法引出。你可以选择64PIN的芯片,4个串  详情 回复 发表于 2024-7-7 10:47
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:215
  • 最近打卡:2025-05-03 00:37:12
已绑定手机

36

主题

561

回帖

1942

积分

荣誉版主

积分
1942
发表于 2024-7-7 08:16:44 | 显示全部楼层
qepu*** 发表于 2024-7-7 08:02
这么说明,主机从机都是我自己做的。不过也是符合modbus协议的。也有校验。这样方便加其它设备通信。现在 ...

那你肯定也是先采集数据,然后往外发或者到云端完成数据的发送和处理,大家都明白你的意思,重要的是思路和方法,不然怕是没有mcu能满足你。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:418
  • 最近打卡:2025-05-04 00:25:16
已绑定手机

34

主题

2096

回帖

2210

积分

荣誉版主

积分
2210
发表于 2024-7-7 10:44:43 | 显示全部楼层
so*** 发表于 2024-7-6 22:18
MCU都是一步一步执行任务的多串口应该也是有任务延时吧。不可能同时发送同时接收。 ...

简而言之,某个串口的收发不会阻塞其它串口的收发
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:418
  • 最近打卡:2025-05-04 00:25:16
已绑定手机

34

主题

2096

回帖

2210

积分

荣誉版主

积分
2210
发表于 2024-7-7 10:47:16 | 显示全部楼层
qepu*** 发表于 2024-7-7 08:09
就是这样意思。我咨询过。不可以是4个口都设备中断。只能选用其中一个。32脚的话只有三个。所以理解不了 ...

你自己看过芯片手册就不会有这样的疑惑了,因为芯片资源太多,不得已才通过交叉复用的方式把资源分配到一些固定的IO上,如果选了引脚较少的芯片,那些删减掉的引脚的资源自然无法引出。你可以选择64PIN的芯片,4个串口都可以使用。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 10:26 , Processed in 0.176675 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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