CN115328840A - 一种主从mcu之间双接口自适应的数据通讯的系统及方法 - Google Patents
一种主从mcu之间双接口自适应的数据通讯的系统及方法 Download PDFInfo
- Publication number
- CN115328840A CN115328840A CN202211021499.5A CN202211021499A CN115328840A CN 115328840 A CN115328840 A CN 115328840A CN 202211021499 A CN202211021499 A CN 202211021499A CN 115328840 A CN115328840 A CN 115328840A
- Authority
- CN
- China
- Prior art keywords
- mcu
- data
- slave
- main
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种主从MCU之间双接口自适应的数据通讯的系统及方法,包括主MCU系统和从MCU系统,两者均包括UART1和UART2收发模块及复位模块和数据调度模块,从MCU系统还包括数据收发模块和数据校验模块。本申请通过采用大RAM、多UART的从MCU,能够解决大量数据的缓存问题;通过双串口的相互备份的方式进行主从MCU之间的通讯,且UART之间相互备份,即能够分担线路通讯负载,也能够在一路出现异常的情况下,继续保证外部设备的正常工作;通过预留一个复位接口,让从MCU能够对主MCU进行复位,在主MCU死机或者异常的情况下,能够对其进行重启。
Description
技术领域
本发明涉及数据通讯技术领域,具体涉及一种主从MCU之间双接口自适应的数据通讯的系统及方法。
背景技术
开发中经常用到串口通讯,串即串行,顾名思义,是指数据在一根数据线上按照二进制的数位,从低到高位一位一位的传输。单片机中的串口有UART,USART。UART/USART在许多DIY电子项目中用于将GPS模块、蓝牙模块、RFID读卡器模块等连接到RaspberryPi、Arduino或其他微控制器。
一些使用场景下MCU可能存在UART接口不够的问题。这就需要使用到UART扩展的功能,现有的UART扩展一般使用的扩展IC,通过I2C接口或者SPI高速接口扩展出多路UART,如为开的WK21系列芯片(如图1所示)。
但IC扩展的方案存在一定的弊端,主要有以下几个方面:
A.扩展IC缓存buff有限,在大量数据收发的情况下会出现数据丢失的问题
B.无数据校验以及分析能力,无法对数据进行先期处理,导致无效数据的转发
C.对于MCU来说高度依赖与WK21之间的数字接口,如果一旦发送数据拥挤,或物理损害,将导致所有的外设不能使用的情况,没有恢复机制设计。
发明内容
本发明提供一种主从MCU之间双接口自适应的数据通讯的系统及方法,有效地解决了现有技术中IC扩展方案存在一定弊端的问题。
为实现上述目的,本发明采用以下技术方案实现:
一种主从MCU之间双接口自适应的数据通讯的系统,包括主MCU系统和从MCU系统,通过RESET接口连接;
所述主MCU系统包括主MCU数据调度模块、主MCU的UART1收发模块、主MCU的UART2收发模块、主复位模块,主MCU的UART1和UART2收发模块均与主MCU数据调度模块连接;
所述从MCU系统包括依次连接的从MCU数据收发模块、从MCU数据校验模块、从MCU数据调度模块及从MCU的UART1收发模块和从MCU的UART2收发模块,从MCU的UART1和UART2收发模块分别通过UART通讯与主MCU的UART1和UART2收发模块连接,从MCU系统还包括从复位模块,与主复位模块连接。
作为上述方案的优选,UART收发模块均包括UART串口及接收缓冲区和发送缓冲区。
一种主从MCU之间双接口自适应的数据通讯的方法,包括:
S1、主MCU发送数据给外部设备
S11、主MCU接收到业务层的数据请求,对数据进行打包增加头部ID,即外设的数据通道;
S12、主MCU对数据位进行计算获取校验位并将校验位放入到数据包;
S13、主MCU首先判断当前UART1和UART2的发送缓存区哪个更加空闲,选择更加空闲的一个将数据推送到相应的缓存区;
S14、从设备的UART1或者UART2接收到从主MCU来的数据;
S15、从MCU通过校验位对数据进行有效性判断,如果是错误信息直接丢弃;
S16、从MCU通过头部ID判断需要将数据分发到哪一路的外设接口
S2、外部设备发送数据给主MCU
S21、从MCU从外设获取到数据,增加头部ID标识该数据从何而来;
S22、从MCU对数据进行校验位计算并添加到数据包;
S23、从MCU根据当前UART1和UART2的繁忙状态确定需要发送的通道,并将数据推送到相应的发送缓冲区;
S24、主MCU接收到UART1或者UART2的数据;
S25、主MCU对有效性进行判断,如果有错误信息直接丢弃;
S26、业务层根据头部ID确定外设的信息来源并更新业务。
作为上述方案的优选,还包括:
S3、系统的RESET复位
S31、从MCU启动一个计时器;
S32、主从MCU之间约定好固定时间的心跳信息;
S33、主设备每隔一段时间发送一个心跳信息;
S34、当从MCU收到心跳信息重置清0复位计数器;
S35、如果在规定时间内未收到主MCU的心跳信息,则认为UART通讯异常,通过RESET接口重启主MCU。
由于具有上述结构,本发明的有益效果在于:
1、本申请通过采用大RAM、多UART的从MCU,能够解决大量数据的缓存问题;
2、本申请具备高速主频能够对进行分发的数据进行预处理,保证数据的有效性;
3、本申请与主MCU之间采用双路UART进行通讯,UART之间相互备份,即能够分担线路通讯负载,也能够在一路出现异常的情况下,继续保证外部设备的正常工作;
4、本申请通过通过预留一个复位接口,让从MCU能够对主MCU进行复位,在主MCU死机或者异常的情况下,能够对其进行重启。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为现有技术中采用扩展IC扩展UART接口的结构示意图;
图2为本发明一种主从MCU之间双接口自适应的数据通讯的系统硬件核心架构图;
图3为本发明一种主从MCU之间双接口自适应的数据通讯的系统结构框图;
图4为本发明一种主从MCU之间双接口自适应的数据通讯的方法流程图。
具体实施方式
下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2、图3所示,本实施例提供一种主从MCU之间双接口自适应的数据通讯的系统,包括主MCU系统和从MCU系统,通过RESET接口连接;
所述主MCU系统包括主MCU数据调度模块、主MCU的UART1收发模块、主MCU的UART2收发模块、主复位模块,主MCU的UART1和UART2收发模块均与主MCU数据调度模块连接;
所述从MCU系统包括依次连接的从MCU数据收发模块、从MCU数据校验模块、从MCU数据调度模块及从MCU的UART1收发模块和从MCU的UART2收发模块,从MCU的UART1和UART2收发模块分别通过UART通讯与主MCU的UART1和UART2收发模块连接,从MCU系统还包括从复位模块,与主复位模块连接。
在本实施例中,UART收发模块(主MCU的UART1收发模块、主MCU的UART2收发模块及从MCU的UART1和UART2收发模块)均包括UART串口及接收缓冲区和发送缓冲区。
如图4所示,本实施例还提供一种主从MCU之间双接口自适应的数据通讯的方法,包括:
S1、主MCU发送数据给外部设备
S11、主MCU接收到业务层的数据请求,对数据进行打包增加头部ID,即外设的数据通道;
S12、主MCU对数据位进行计算获取校验位并将校验位放入到数据包;
S13、主MCU首先判断当前UART1和UART2的发送缓存区哪个更加空闲,选择更加空闲的一个将数据推送到相应的缓存区;
S14、从设备的UART1或者UART2接收到从主MCU来的数据;
S15、从MCU通过校验位对数据进行有效性判断,如果是错误信息直接丢弃;
S16、从MCU通过头部ID判断需要将数据分发到哪一路的外设接口
S2、外部设备发送数据给主MCU
S21、从MCU从外设获取到数据,增加头部ID标识该数据从何而来;
S22、从MCU对数据进行校验位计算并添加到数据包;
S23、从MCU根据当前UART1和UART2的繁忙状态确定需要发送的通道,并将数据推送到相应的发送缓冲区;
S24、主MCU接收到UART1或者UART2的数据;
S25、主MCU对有效性进行判断,如果有错误信息直接丢弃;
S26、业务层根据头部ID确定外设的信息来源并更新业务。
在本实施例中,还包括:
S3、系统的RESET复位
S31、从MCU启动一个定时复位计时器;
S32、主从MCU之间约定好固定时间的心跳信息;
S33、主设备每隔一段时间发送一个心跳信息;
S34、当从MCU收到心跳信息重置清0复位计数器;
S35、如果在规定时间内未收到主MCU的心跳信息,则认为UART通讯异常,通过RESET接口重启主MCU。
本申请通过双串口的相互备份的方式进行主从MCU之间的通讯,即可达到负载均衡的目的,也可在1路出现异常情况下保证数据正常通讯;通过引入心跳信息,保证在双路UART同时出现错误的情况,在短时间内对从MCU进行复位,回到重新上电情况,保证了数据通路的高可靠,可恢复机制;通过数据的预校验机制,对数据的有效性进行提前判断,可将无效数据预先剔除,减少无效处理。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种主从MCU之间双接口自适应的数据通讯的系统,其特征在于:包括主MCU系统和从MCU系统,通过RESET接口连接;
所述主MCU系统包括主MCU数据调度模块、主MCU的UART1收发模块、主MCU的UART2收发模块、主复位模块,主MCU的UART1和UART2收发模块均与主MCU数据调度模块连接;
所述从MCU系统包括依次连接的从MCU数据收发模块、从MCU数据校验模块、从MCU数据调度模块及从MCU的UART1收发模块和从MCU的UART2收发模块,从MCU的UART1和UART2收发模块分别通过UART通讯与主MCU的UART1和UART2收发模块连接,从MCU系统还包括从复位模块,与主复位模块连接。
2.根据权利要求1所述的一种主从MCU之间双接口自适应的数据通讯的系统,其特征在于:UART收发模块均包括UART串口及接收缓冲区和发送缓冲区。
3.根据权利要求1或2所述的一种主从MCU之间双接口自适应的数据通讯的方法,其特征在于:包括:
S1、主MCU发送数据给外部设备
S11、主MCU接收到业务层的数据请求,对数据进行打包增加头部ID,即外设的数据通道;
S12、主MCU对数据位进行计算获取校验位并将校验位放入到数据包;
S13、主MCU首先判断当前UART1和UART2的发送缓存区哪个更加空闲,选择更加空闲的一个将数据推送到相应的缓存区;
S14、从设备的UART1或者UART2接收到从主MCU来的数据;
S15、从MCU通过校验位对数据进行有效性判断,如果是错误信息直接丢弃;
S16、从MCU通过头部ID判断需要将数据分发到哪一路的外设接口
S2、外部设备发送数据给主MCU
S21、从MCU从外设获取到数据,增加头部ID标识该数据从何而来;
S22、从MCU对数据进行校验位计算并添加到数据包;
S23、从MCU根据当前UART1和UART2的繁忙状态确定需要发送的通道,并将数据推送到相应的发送缓冲区;
S24、主MCU接收到UART1或者UART2的数据;
S25、主MCU对有效性进行判断,如果有错误信息直接丢弃;
S26、业务层根据头部ID确定外设的信息来源并更新业务。
4.根据权利要求3所述的一种主从MCU之间双接口自适应的数据通讯的方法,其特征在于:还包括:
S3、系统的RESET复位
S31、从MCU启动一个计时器;
S32、主从MCU之间约定好固定时间的心跳信息;
S33、主设备每隔一段时间发送一个心跳信息;
S34、当从MCU收到心跳信息重置清0复位计数器;
S35、如果在规定时间内未收到主MCU的心跳信息,则认为UART通讯异常,通过RESET接口重启主MCU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211021499.5A CN115328840A (zh) | 2022-08-24 | 2022-08-24 | 一种主从mcu之间双接口自适应的数据通讯的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211021499.5A CN115328840A (zh) | 2022-08-24 | 2022-08-24 | 一种主从mcu之间双接口自适应的数据通讯的系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115328840A true CN115328840A (zh) | 2022-11-11 |
Family
ID=83926894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211021499.5A Pending CN115328840A (zh) | 2022-08-24 | 2022-08-24 | 一种主从mcu之间双接口自适应的数据通讯的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328840A (zh) |
-
2022
- 2022-08-24 CN CN202211021499.5A patent/CN115328840A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103957155A (zh) | 报文传输方法、装置及互联接口 | |
CN106407065A (zh) | 一种密码键盘usb通信异常恢复方法及系统 | |
RU99106677A (ru) | Способ обработки услуг и протокола системы сети мобильной связи | |
CN113645600A (zh) | 数据传输方法、装置、终端及存储介质 | |
CN112995070B (zh) | 一种双卡切换系统及方法 | |
CN107241216A (zh) | 维持关键数据稳定传输的方法及装置 | |
CN115328840A (zh) | 一种主从mcu之间双接口自适应的数据通讯的系统及方法 | |
EP1424817A2 (en) | Circuit connection restoration method and program for restoring connection in short time | |
US10230625B2 (en) | Information processing apparatus, information processing system, and communication device | |
CN218772141U (zh) | 双处理器电路及分布式控制系统的控制主板 | |
KR100459035B1 (ko) | 에이티엠 교환 시스템 내 보드간의 이중화 구조 및 그운용 방법 | |
US20080298381A1 (en) | Apparatus for queue management of a global link control byte in an input/output subsystem | |
CN103024783A (zh) | 基带资源热备份系统及方法 | |
EP1816791A1 (en) | Wireless terminal and wireless communication method | |
JPH114259A (ja) | 仮想コネクション通信装置及び通信方法 | |
KR100735435B1 (ko) | 이중화 보드에서의 데이터 처리 방법 | |
CN114158067B (zh) | 专网中数据传输的方法和装置 | |
KR100480951B1 (ko) | 하나의 물리채널을 다수 개의 가상채널로 확장한 다중접속통신장치 | |
CN1914938B (zh) | 电信网络用户个人数据的备份方法和移动通信设备 | |
US7664921B2 (en) | Method for accessing shared memories and multiprocessor system using the method | |
CN111865396B (zh) | 卫星载荷数据接收监测和自主复位装置及方法 | |
CN116980231B (zh) | 一种双链路冗余安全通信方法和装置 | |
KR100661519B1 (ko) | 코어 프로세서와 통신 프로세서의 버퍼 디스크립터 미스매치 복구 기능을 가지는 프로세서 장치 및 그 방법 | |
CN108833000B (zh) | Pon系统保护倒换信息传递方法及系统 | |
EP4242897A1 (en) | Interconnect bus safety |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |