找回密码
 立即注册
查看: 1488|回复: 24

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

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

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-5 22:29:56 来自手机 | 显示全部楼层 |阅读模式
一直以为双串口是可以实现两个串口。硬件方面的。最近关注了一下,好像可能大概是软件方面的。具体怎么实现的不知道。
如果只是软件方面的。那stc32g12k128是不是就是四串口了。
为什么今天关注这个问题呢?我的想法就是我以为这个双窗口说的是两个硬件方面的串口。但是看了一下详细的说明书,好像不是。
因为最近的一个需求就是。需要对串口数据进行过滤,将不必要的数据给过滤掉,然后再转发出去。这样正好就可能会想到双串口。但是如果不是我想的那个意思的话。可能用stc32g12k128在程序中。在需要的时候告诉切换窗口的输出引脚进行数据转发会更加实在。
还请大佬给说一下是不是这么回事儿?
下面我说一个例子。
比如主机a要每隔200毫秒。就要发送轮询数据。
主机b需要每隔一二百秒才会发送一次数据。
主机a发送数据的时候主机b被迫接受。通过筛选器之后。把主机a发送的所有数据。都不发送给主机b
如果以上想法是对的话。
那接下来的想法就是。有主机ABC。分别需要对从机123 4 5进行采样。为了使主机ABC不互相干扰。需要对他们的轮询命令进行屏蔽。这时候就主机就要屏蔽掉其他主机的轮询命令和操作命令。想法就是这么个想法。
现在我认为。如果用串口3.0 3.1准备接收数据。这个时候。可是另一组串口。1.6 1.7那里来了数据会不会接收不到?毕竟数据是双向的。这里理解不了,所以一直以为多路窗口没有用,还请指教。谢谢🙏
回复

使用道具 举报 送花

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

34

主题

2096

回帖

2210

积分

荣誉版主

积分
2210
发表于 2024-7-5 23:05:40 | 显示全部楼层
本帖最后由 晓飛飛 于 2024-7-5 23:07 编辑

关于“双串口”是本论坛特有的一个概念,是相对于“单串口”而言的,这里讲的“双串口”并不是单片机有两个串口的意思,而是基于STC8H8K64U STC8H2K08U STC8H2K32U等型号开发的USB转双UART固件或预烧了这些固件的单片。
最早的例程是USB转UART的单串口,实现的是类似CH340之类USB转串口的功能,后来开发出了USB转两个UART和USB转HID+2UART的例程,就习惯性的叫做了“双串口”
事实上,STC8H8K64和STC32G12K128都有四个独立的物理串口, STC8H2K08U和STC8H2K32U有两个独立串口,
这里提到的串口,都是支持同时全双工收发的,而且支持DMA操作,不存在互相打断或占用的概念。

至于哪个串口接收,数据如何解析筛选,是需要代码编程来实现,您提到的数据解析和分发的功能我认为市面上不可能有现成的芯片可以支持,本身单片机和嵌入式系统的应用开发方式就是硬件结合软件编程的,我想您能够理解这个道理吧。


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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:30
  • 最近打卡:2024-08-13 08:17:43

2

主题

13

回帖

45

积分

新手上路

积分
45
发表于 2024-7-5 23:43:14 来自手机 | 显示全部楼层
{:5_361:}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-7-6 02:04:18 | 显示全部楼层
是 1 USB -> 2 UART
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

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

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-6 08:11:28 | 显示全部楼层
晓*** 发表于 2024-7-5 23:05
关于“双串口”是本论坛特有的一个概念,是相对于“单串口”而言的,这里讲的“双串口”并不是单片机有两个 ...

理解,想到的思路就是用一个芯片做过滤,等主站发,然后处理,转发到从站,然后等50-100ms后得到特定数据就发给主站,如果没有得到就放弃,接着等主站的命令,只有得到主站的命令才处理,每次处理一条。这样就实现了过滤了。实现其它主站的指今不会发到通信主站上的目的。
回复 支持 反对

使用道具 举报 送花

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

36

主题

561

回帖

1942

积分

荣誉版主

积分
1942
发表于 2024-7-6 08:39:21 | 显示全部楼层
双串口的解释别人已经答了,我就不啰嗦了。
主站1 01
主站2 02
从站1 03
从站2 04
...      ...
最简单的描述:对每一个需要通信的MCU进行编码,只需要读是不是来自给它的指令,是就用,不是就不管,就实现了你说的过滤。
至于主动 被动接收在于你的程序怎么写。因为串口通信是可以全双工的。
回复 支持 反对

使用道具 举报 送花

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

36

主题

561

回帖

1942

积分

荣誉版主

积分
1942
发表于 2024-7-6 08:41:27 | 显示全部楼层
那接下来的想法就是。有主机ABC。分别需要对从机123 4 5进行采样。为了使主机ABC不互相干扰。需要对他们的轮询命令进行屏蔽。这时候就主机就要屏蔽掉其他主机的轮询命令和操作命令。想法就是这么个想法。
每一个MCU都有了编码了,至于是屏蔽还是接收,接收后处理不处理,还是转发,都可以。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 10:59:33

25

主题

1154

回帖

2391

积分

超级版主

积分
2391
发表于 2024-7-6 08:58:19 | 显示全部楼层
【新提醒】立创开源【STC最简 USB 转 双串口】@STC8H2K08U-45I-SOP16 - 第8页 - 单片机创意设计大赛 @【STC & 嘉立创EDA】 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区  https://www.stcaimcu.com/forum.p ... %2B2UART&page=8

   烧录下面这个程序,实现
USB-CDC 转 双串口

烧录 如上 这个程序,实现
USB-CDC 转 双串口
1,STC-USB-CDC1-UART1 串口 通信或烧录
===烧录支持 自动停电/上电,免手动 关/开 电源
2,STC-USB-CDC2-UART2 串口 通信或烧录
===烧录不支持 自动停电/上电,需要外部 手动 关/开 电源


========================================================

烧录下面这个程序,实现:
(一) ,USB-CDC 转 双串口
(二) ,HID 转 串口 烧录


烧录 如上 这个程序,实现
(一) ,USB-CDC 转 双串口
1,STC-USB-CDC1-UART1 串口 通信或烧录
===烧录支持 自动停电/上电,免手动 关/开 电源
2,STC-USB-CDC2-UART2 串口 通信或烧录
===烧录不支持 自动停电/上电,需要外部 手动 关/开 电源
(二) ,HID 转 串口 烧录
===烧录支持 自动停电/上电,免手动 关/开 电源


==================================================

在电脑上连接上
两个 【一箭双雕之USB转双串口】  和
两个 【STC-USB Link1D】 的效果


这个好

第一个
一箭双雕之USB转双串口:
HID+2CDC  复合设备
1, USB-HID 烧录:
     STC-USB-HID-UART1 (2CDC+HID1)
2, USB-CDC, USB转双串口
    STC-CDC1-UART1 (COMa), 2CDC+HID
    STC-CDC2-UART2 (COMb), 2CDC+HID

第二个
一箭双雕之USB转双串口:
HID+2CDC  复合设备
1, USB-HID 烧录:
     STC-USB-HID-UART1 (2CDC+HID2)
2, USB-CDC, USB转双串口
    STC-CDC1-UART1 (COMc), 2CDC+HID
    STC-CDC2-UART2 (COMd), 2CDC+HID

第一个
STC-USB Link1D:
HID+2CDC  复合设备
1, USB-HID 烧录:
     STC-USB-HID-UART1(Link1)
2, USB-CDC, USB转双串口
    STC-USB-CDC1-UART1 (COMe), Link
    STC-USB-CDC2-UART2 (COMf), Link

第二个
STC-USB Link1D:
HID+2CDC  复合设备
1, USB-HID 烧录:
     STC-USB-HID-UART1 ( Link2)
2, USB-CDC, USB转双串口
    STC-USB-CDC1-UART1 (COMg), Link
    STC-USB-CDC2-UART2 (COMh), Link


第三个
STC-USB Link1D:
HID+2CDC  复合设备
1, USB-HID 烧录:
     STC-USB-HID-UART1 ( Link3)
2, USB-CDC, USB转双串口
    STC-USB-CDC1-UART1 (COMi), Link
    STC-USB-CDC2-UART2 (COMl), Link

HID-UART 可以区分是第几个STC-USB Link1D】
===Link1/Link2/Link3

CDC-UART 无法区分是第几个STC-USB Link1D】
===此处的 Link/Link/Link 无法区分是第几个
同一台电脑上插了 第几个 【STC-USB Link1D】



STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

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

43

主题

336

回帖

595

积分

高级会员

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

485网需要用一个串口485  所以需要换串口。中间加过滤器,判断好了再操做,先口1  收到命令再发口2然后收到再发口1再等口1命令!
回复 支持 反对

使用道具 举报 送花

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

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-6 17:04:49 来自手机 | 显示全部楼层
晓飛飛 发表于 2024-7-5 23:05
关于“双串口”是本论坛特有的一个概念,是相对于“单串口”而言的,这里讲的“双串口”并不是单片机有两个 ...

STC32G12K128都有四个独立的物理串口
上面这一句我的理解就是。这个芯片可以有4组独立的串口缓存。只要接收到数据。就会存下来。等到需要访问的时候再访问即可。不知道这么理解对不对?
因为网上有人有这种设备,就是两个主机。多个从站。通过一个设备。同时扫描两个主机的。485输入。然后根据输入的指令再进行指令的下发。然后再回传回相应的主机上。如果用这种思路的话我认为需要两个串口同时进行接收。才能够实现。

点评

STC32G12K128有四个独立的物理串口,就是字面意思,没有其它含义。 你说的4组独立缓存也好,数据保存也罢,都需要代码实现,单片机能提供给你的就是足够的串口、存储空间和指令处理能力,其它的都需要通过代码实现。  详情 回复 发表于 2024-7-6 20:16
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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