一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种主从MCU之间双接口自适应的数据通讯的系统及方法与流程

2022-11-12 23:40:28 来源:中国专利 TAG:

一种主从mcu之间双接口自适应的数据通讯的系统及方法
技术领域
1.本发明涉及数据通讯技术领域,具体涉及一种主从mcu之间双接口自适应的数据通讯的系统及方法。


背景技术:

2.开发中经常用到串口通讯,串即串行,顾名思义,是指数据在一根数据线上按照二进制的数位,从低到高位一位一位的传输。单片机中的串口有uart,usart。uart/usart在许多diy电子项目中用于将gps模块、蓝牙模块、rfid读卡器模块等连接到raspberrypi、arduino或其他微控制器。
3.一些使用场景下mcu可能存在uart接口不够的问题。这就需要使用到uart扩展的功能,现有的uart扩展一般使用的扩展ic,通过i2c接口或者spi高速接口扩展出多路uart,如为开的wk21系列芯片(如图1所示)。
4.但ic扩展的方案存在一定的弊端,主要有以下几个方面:
5.a.扩展ic缓存buff有限,在大量数据收发的情况下会出现数据丢失的问题
6.b.无数据校验以及分析能力,无法对数据进行先期处理,导致无效数据的转发
7.c.对于mcu来说高度依赖与wk21之间的数字接口,如果一旦发送数据拥挤,或物理损害,将导致所有的外设不能使用的情况,没有恢复机制设计。


技术实现要素:

8.本发明提供一种主从mcu之间双接口自适应的数据通讯的系统及方法,有效地解决了现有技术中ic扩展方案存在一定弊端的问题。
9.为实现上述目的,本发明采用以下技术方案实现:
10.一种主从mcu之间双接口自适应的数据通讯的系统,包括主mcu系统和从mcu系统,通过reset接口连接;
11.所述主mcu系统包括主mcu数据调度模块、主mcu的uart1收发模块、主mcu的uart2收发模块、主复位模块,主mcu的uart1和uart2收发模块均与主mcu数据调度模块连接;
12.所述从mcu系统包括依次连接的从mcu数据收发模块、从mcu数据校验模块、从mcu数据调度模块及从mcu的uart1收发模块和从mcu的uart2收发模块,从mcu的uart1和uart2收发模块分别通过uart通讯与主mcu的uart1和uart2收发模块连接,从mcu系统还包括从复位模块,与主复位模块连接。
13.作为上述方案的优选,uart收发模块均包括uart串口及接收缓冲区和发送缓冲区。
14.一种主从mcu之间双接口自适应的数据通讯的方法,包括:
15.s1、主mcu发送数据给外部设备
16.s11、主mcu接收到业务层的数据请求,对数据进行打包增加头部id,即外设的数据通道;
17.s12、主mcu对数据位进行计算获取校验位并将校验位放入到数据包;
18.s13、主mcu首先判断当前uart1和uart2的发送缓存区哪个更加空闲,选择更加空闲的一个将数据推送到相应的缓存区;
19.s14、从设备的uart1或者uart2接收到从主mcu来的数据;
20.s15、从mcu通过校验位对数据进行有效性判断,如果是错误信息直接丢弃;
21.s16、从mcu通过头部id判断需要将数据分发到哪一路的外设接口
22.s2、外部设备发送数据给主mcu
23.s21、从mcu从外设获取到数据,增加头部id标识该数据从何而来;
24.s22、从mcu对数据进行校验位计算并添加到数据包;
25.s23、从mcu根据当前uart1和uart2的繁忙状态确定需要发送的通道,并将数据推送到相应的发送缓冲区;
26.s24、主mcu接收到uart1或者uart2的数据;
27.s25、主mcu对有效性进行判断,如果有错误信息直接丢弃;
28.s26、业务层根据头部id确定外设的信息来源并更新业务。
29.作为上述方案的优选,还包括:
30.s3、系统的reset复位
31.s31、从mcu启动一个计时器;
32.s32、主从mcu之间约定好固定时间的心跳信息;
33.s33、主设备每隔一段时间发送一个心跳信息;
34.s34、当从mcu收到心跳信息重置清0复位计数器;
35.s35、如果在规定时间内未收到主mcu的心跳信息,则认为uart通讯异常,通过reset接口重启主mcu。
36.由于具有上述结构,本发明的有益效果在于:
37.1、本技术通过采用大ram、多uart的从mcu,能够解决大量数据的缓存问题;
38.2、本技术具备高速主频能够对进行分发的数据进行预处理,保证数据的有效性;
39.3、本技术与主mcu之间采用双路uart进行通讯,uart之间相互备份,即能够分担线路通讯负载,也能够在一路出现异常的情况下,继续保证外部设备的正常工作;
40.4、本技术通过通过预留一个复位接口,让从mcu能够对主mcu进行复位,在主mcu死机或者异常的情况下,能够对其进行重启。
附图说明
41.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
42.图1为现有技术中采用扩展ic扩展uart接口的结构示意图;
43.图2为本发明一种主从mcu之间双接口自适应的数据通讯的系统硬件核心架构图;
44.图3为本发明一种主从mcu之间双接口自适应的数据通讯的系统结构框图;
45.图4为本发明一种主从mcu之间双接口自适应的数据通讯的方法流程图。
具体实施方式
46.下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.如图2、图3所示,本实施例提供一种主从mcu之间双接口自适应的数据通讯的系统,包括主mcu系统和从mcu系统,通过reset接口连接;
48.所述主mcu系统包括主mcu数据调度模块、主mcu的uart1收发模块、主mcu的uart2收发模块、主复位模块,主mcu的uart1和uart2收发模块均与主mcu数据调度模块连接;
49.所述从mcu系统包括依次连接的从mcu数据收发模块、从mcu数据校验模块、从mcu数据调度模块及从mcu的uart1收发模块和从mcu的uart2收发模块,从mcu的uart1和uart2收发模块分别通过uart通讯与主mcu的uart1和uart2收发模块连接,从mcu系统还包括从复位模块,与主复位模块连接。
50.在本实施例中,uart收发模块(主mcu的uart1收发模块、主mcu的uart2收发模块及从mcu的uart1和uart2收发模块)均包括uart串口及接收缓冲区和发送缓冲区。
51.如图4所示,本实施例还提供一种主从mcu之间双接口自适应的数据通讯的方法,包括:
52.s1、主mcu发送数据给外部设备
53.s11、主mcu接收到业务层的数据请求,对数据进行打包增加头部id,即外设的数据通道;
54.s12、主mcu对数据位进行计算获取校验位并将校验位放入到数据包;
55.s13、主mcu首先判断当前uart1和uart2的发送缓存区哪个更加空闲,选择更加空闲的一个将数据推送到相应的缓存区;
56.s14、从设备的uart1或者uart2接收到从主mcu来的数据;
57.s15、从mcu通过校验位对数据进行有效性判断,如果是错误信息直接丢弃;
58.s16、从mcu通过头部id判断需要将数据分发到哪一路的外设接口
59.s2、外部设备发送数据给主mcu
60.s21、从mcu从外设获取到数据,增加头部id标识该数据从何而来;
61.s22、从mcu对数据进行校验位计算并添加到数据包;
62.s23、从mcu根据当前uart1和uart2的繁忙状态确定需要发送的通道,并将数据推送到相应的发送缓冲区;
63.s24、主mcu接收到uart1或者uart2的数据;
64.s25、主mcu对有效性进行判断,如果有错误信息直接丢弃;
65.s26、业务层根据头部id确定外设的信息来源并更新业务。
66.在本实施例中,还包括:
67.s3、系统的reset复位
68.s31、从mcu启动一个定时复位计时器;
69.s32、主从mcu之间约定好固定时间的心跳信息;
70.s33、主设备每隔一段时间发送一个心跳信息;
71.s34、当从mcu收到心跳信息重置清0复位计数器;
72.s35、如果在规定时间内未收到主mcu的心跳信息,则认为uart通讯异常,通过reset接口重启主mcu。
73.本技术通过双串口的相互备份的方式进行主从mcu之间的通讯,即可达到负载均衡的目的,也可在1路出现异常情况下保证数据正常通讯;通过引入心跳信息,保证在双路uart同时出现错误的情况,在短时间内对从mcu进行复位,回到重新上电情况,保证了数据通路的高可靠,可恢复机制;通过数据的预校验机制,对数据的有效性进行提前判断,可将无效数据预先剔除,减少无效处理。
74.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献