0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于赤菟V307 MCU的八串口服务器设计

CHANBAEK 来源:CSDN-借过风景 作者:CSDN-借过风景 2023-01-31 14:12 次阅读

简介

串口服务器,提供串口转网络的功能,将串口转换成TCP/IP协议网络接口,实现串口和网络接口的数据双向透明传输,扩展串口设备的通讯距离。

赤菟V307是搭载沁恒自研RISC-V内核青稞V4F的高性能互联型MCU,主频支持144MHz,支持硬件浮点运算(FPU),提供八个UART接口、USB2.0高速接口(480Mbps)并内置了PHY收发器、千兆以太网MAC并集成10M PHY、2个CAN接口等丰富的外设资源。

poYBAGPYsMGAQ7WBAAFPYwKAarE566.png

基于八个UART接口、10M以太网的强大外设,通过单片赤菟V307即可实现八串口服务器,每个串口独立工作。

pYYBAGPYsMGAdIcSAAdY52N8K64478.png

源码仓库地址:https://github.com/openwch/ch32v307/tree/main/Application/8_uarts_server

网口端设计

网口端采用的是开源的轻量级TCP/IP协议栈LwIP,可以轻松实现赤菟V307网口端的TCP、UDP通信

例程中默认开启的是TCP Client模式,采用单向循环链表的方式接收TCP Server发过来的数据。

poYBAGPYsMKAPG8IAACUEFF2FP4189.png

当串口端接收到数据时,直接启动TCP Client的发送函数,并更新队列的读指针。

串口端设计

串口端为了加快数据的收发,采用DMA循环队列的方式接收数据,通过查询接收DMA 传输数据数目寄存器CNTR,与上一次该值进行比较,有变化则说明串口接收到数据,此时便更新队列写指针,并计算队列中数据长度。

poYBAGPYsMGAeigNAAB9ypu25yc016.png

根据网口接收端的链表中的数据地址及长度,启动串口端的发送DMA进行数据发送。

多任务设计

通过RT-Thread操作系统,创建两个线程,分别为用于网口端接收数据的“eth_rev”线程和用于串口端接收数据的“uart_rev”线程。

采用时间片轮转方式进行这两个线程的调度,当“eth_rev”线程收到网口端的数据时,启动串口端的发送DMA将数据通过串口发送出去;当“uart_rev”线程收到串口端的数据时,启动网口端的发送函数将数据通过网口发送出去,这样就实现了串口和网络接口的数据双向透明传输。

pYYBAGPYsMGAYBfJAABNnXDS5Hg243.png

验证

串口默认波特率为115200,实测八个串口独立工作,可以实现收发10+KB/s的速度。

pYYBAGPYsMGAQ3tdAAEi2aM7BOc097.png

该例程目前仅实现了TCP Client的收发,还有TCP Server、UDP Server/Client等需要完善,希望各位开发者能够积极提交pr,一起完善该项目。可添加微信15950380583为好友,注明:赤菟V307,邀请您进入沁恒RISC-V MCU开发者微信交流群,一起玩转RISC-V MCU。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16011

    浏览量

    343544
  • 网络接口
    +关注

    关注

    0

    文章

    75

    浏览量

    17071
  • 串口
    +关注

    关注

    14

    文章

    1483

    浏览量

    74504
  • 串口服务器
    +关注

    关注

    1

    文章

    133

    浏览量

    17165
  • RISC-V
    +关注

    关注

    41

    文章

    1899

    浏览量

    45044
收藏 人收藏

    评论

    相关推荐

    赤菟V307 MCU与Matlab的串口通信设计

    赤菟V307(CH32V307)是一款RISC-V内核的MCU,搭载的是沁恒自研RISC-V内核青稞V4F,最高主频144MHz,支持单精度浮点运算(FPU)。
    的头像 发表于 01-31 14:06 1660次阅读
    赤菟<b class='flag-5'>V307</b> <b class='flag-5'>MCU</b>与Matlab的<b class='flag-5'>串口</b>通信设计

    【教程】NA111串口服务器可配置型网关使用教程#串口服务器

    串口服务器
    电子学习
    发布于 :2023年02月08日 09:53:50

    【教程】NA111串口服务器存储型网关模式使用教程#串口服务器

    串口服务器
    电子学习
    发布于 :2023年02月08日 10:21:04

    串口服务器连接云服务器教程

    串口服务器
    电子学习
    发布于 :2023年02月08日 10:26:32

    【教程】NA111串口服务器网页配置教程#串口服务器

    串口服务器
    电子学习
    发布于 :2023年02月08日 10:31:24

    工控必备的串口服务器

    串口服务器
    亿佰特物联网应用专家
    发布于 :2023年03月08日 17:31:12

    串口服务器如何使用OneNET平台MQTT服务器通讯教程 #MQTT #串口服务器 #OneNET平台

    串口服务器
    亿佰特物联网应用专家
    发布于 :2023年10月26日 15:47:36

    串口服务器应用接线较长

    串口服务器应用接线较长1、虚拟串口模式2、点对点模式3、点对多点模式http://www.cnsmart.net4、多台主机模式
    发表于 01-06 08:47

    RS485串口服务器

    本帖最后由 maggie602451 于 2022-8-10 16:08 编辑 `RS485串口服务器ZLAN5143I的一款专门为抗雷击、抗电磁干扰、抵抗恶劣环境要求而设计的一款高可靠性
    发表于 03-24 11:27

    为什么要设计一款RS485串口服务器ZLAN5143I?

    RS485串口服务器ZLAN5143I的一款专门为抗雷击、抗电磁干扰、抵抗恶劣环境要求而设计的一款高可靠性、高性能串口服务器/Modbus网关产品,是串口服务器的旗舰级产品。可以应用于隧道监控、风力
    发表于 07-12 06:58

    串口服务器调试方法_口服务器怎么设置

    MOXA串口服务器有多种型号,其中最常用的要数5130、5232等基本型号。其功能强大性能稳定深的用户喜爱。在此我们就5130这个型号看一看MOXA串口服务器的基本调试方法串口服务器如何调试是很多用户入手新产品时必须要考虑的问题
    发表于 02-01 17:25 2.7w次阅读
    <b class='flag-5'>串口服务器</b>调试方法_<b class='flag-5'>口服务器</b>怎么设置

    串口服务器是什么 有哪些分类及特点

    串口服务器相对单串口服务器来说,具备多个串行口,其要求主CPU的性能及功能的要求更多,这也是很多厂商只有单串口服务器,而没有多串口服务器的原因。接下来我们就来为大家详细介绍下什么是多
    的头像 发表于 02-12 15:45 2198次阅读

    基于沁恒CH32V307的8串口服务器设计方案

    RT-Thread开发者大会RISC-V分论坛设立了动手实验:基于沁恒CH32V307的8串口服务器
    的头像 发表于 01-04 16:23 4552次阅读

    利用沁恒赤菟V307实现八串口服务器

    串口服务器,提供串口转网络的功能,将串口转换成TCP/IP协议网络接口,实现串口和网络接口的数据双向透明传输,扩展串口设备的通讯距离。
    的头像 发表于 01-27 18:43 2919次阅读
    利用沁恒赤菟<b class='flag-5'>V307</b>实现八<b class='flag-5'>串口服务器</b>

    串口服务器连接MQTT服务器方法说明

    串口服务器连接MQTT服务器方法参考“串口服务器用户手册”,不再重复说明。
    发表于 03-30 09:58 3994次阅读
    <b class='flag-5'>串口服务器</b>连接MQTT<b class='flag-5'>服务器</b>方法说明