CN113422738A - 一种智能主机的mcu通信服务方法 - Google Patents
一种智能主机的mcu通信服务方法 Download PDFInfo
- Publication number
- CN113422738A CN113422738A CN202110537243.9A CN202110537243A CN113422738A CN 113422738 A CN113422738 A CN 113422738A CN 202110537243 A CN202110537243 A CN 202110537243A CN 113422738 A CN113422738 A CN 113422738A
- Authority
- CN
- China
- Prior art keywords
- data
- communication
- message
- mcu
- communication service
- 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.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 178
- 238000004891 communication Methods 0.000 title claims abstract description 175
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 238000013507 mapping Methods 0.000 claims abstract description 4
- 239000000872 buffer Substances 0.000 claims description 32
- 230000005540 biological transmission Effects 0.000 claims description 30
- 238000007639 printing Methods 0.000 claims description 13
- 238000007726 management method Methods 0.000 claims description 8
- 238000009432 framing Methods 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 4
- 239000012536 storage buffer Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种智能主机的MCU通信服务方法,应用于包含有MCU与SoC的智能主机,至少包括:监测外部硬件链路中虚拟通道接收到的数据,对数据进行解析;其中,数据通信开始之前,初始化赋值,设计不同的初始化条件,如:将多个虚拟通道映射到单一物理通信链路上,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收。能够在底层对用户数据进行解析,避免冗余数据的产生。另外,添加了发送数据去重更新,避免数据发送处理的无用操作。
Description
技术领域
本发明涉及车用智能主机通信方法,尤其涉及一种智能主机的MCU通信服务方法。
背景技术
随着科学技术的不断进步,汽车朝着智能化、自动化、无人化方面发展,现阶段,智能主机集成了中控娱乐系统、仪表报警系统和以太网360全景环视系统等,智能主机主功能具体包含有车身信息显示、空调控制、收音机、音视频播放、蓝牙、WiFi、雷达报警、驾驶辅助和360环视等功能。如此众多的车身信号给智能主机硬件结构和通信提出了空前的挑战。现有技术的智能主机为了满足如此众多功能的需求,采用高性能的处理器、GPU集成一体,但由于涉及较多传感器的通信,且不同传感器的数据类型以及总线传感器可能不相同,使其存在多种不同类型的数据的解析以及通信,使其通信效率低下。另外,现有技术中数据类型的解析往往都在用户层在进行解析,在用户层解析将产生较多的冗余数据。鉴于现有技术存在的缺陷,本申请旨在提供一种智能主机以解决现有技术中存在的缺陷。
发明内容
基于现有技术中存在的缺陷,本申请提供一种智能主机的MCU通信服务方法,该方法应用于包含有MCU与SoC的智能主机,
具体至少包括:
监测外部硬件链路中虚拟通道接收到的数据,将数据存入数据接收缓冲区,根据预设协议对数据进行分帧、校验和解包,获取Payload数据并通知处理任务服务对数据进行解析;
处理任务服务通过与通道标识相对应的回调函数对数据进行解析后写入消息队列,并通过消息队列传输到对应的用户任务;
其中,数据通信开始之前,至少包括:
将多个虚拟通道映射到单一物理通信链路上,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收。
一种智能主机的MCU通信服务方法,进一步地,数据通信开始之前,还包括:通信双方需要同步两端的信息,两端的信息至少包括:通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到对端的控制信息来打开或关闭自身通道的数据发送功能。
一种智能主机的MCU通信服务方法,进一步地,数据通信开始之前,还包括:通过watchdog数据帧判断待通信的对端是否处于正常通信。
一种智能主机的MCU通信服务方法,进一步地,通讯双方需要按照指定的周期发送watchdog数据帧,倘若通讯过程中有一方检测到另外一方发送的watchdog数据帧周期不正常,则认为通讯异常,停止自身通讯数据的发送。
一种智能主机的MCU通信服务方法,进一步地,当需要发送数据时,用户任务根据需求调用消息发送接口服务将数据通过消息队列传输消息的方式将数据传输到处理任务服务中进行处理;
处理任务服务调用服务处理程序将数据传输至数据发送缓冲区中进行封装后传输至外部硬件链路中与数据类型相对应的虚拟通道后进行发送给外部设备。
一种智能主机的MCU通信服务方法,进一步地,通过时间管理服务提供内部的时间参照,同时处理MCU通信服务中与时间计时相关的操作。
一种智能主机的MCU通信服务方法,进一步地,消息发送接口服务,被用于提供给用户任务通过指定的虚拟通道发送消息,并指定需要发送数据的通道、指向要发送数据存储区域的指针、发送数据的长度;
同时根据数据发送状态提供返回值。
一种智能主机的MCU通信服务方法,进一步地,判断数据发送缓冲区中是否存在要发送的消息数据,如果存在,当满足更新条件,则使用新的消息数据覆盖,并更新发送缓冲区中的数据;
满足更新条件包括:获取消息数据写入数据发送缓冲区的时刻Ta,在Ta时刻,消息数据环形读指针的开始位置;计算Ta时刻,环形读指针的位置与环形写指针的位置之间的距离并记为第一距离;
在经过一段时间后达到时刻Tb,计算环形读指针走过的距离并记为第二距离;当第二距离小于第一距离时,则对数据发送缓冲区中的消息数据进行更新。
一种智能主机的MCU通信服务方法,进一步地,根据预设协议对数据进行分帧、校验和解包具体包括:
步骤S301,从硬件链路接口中的接收缓存中读取一个字节的数据;
步骤S2,判断是否为0xAA,若是0xAA,则对校验读取的数据,若不是0xAA,则返回步骤S1;
步骤S302,从硬件链路接口中的接收缓存中读取2个字节数据,获取消息Payload的长度,并对校验读取的数据;
步骤S303,根据消息Payload长度读取硬件链路中接收到的缓存消息数据,并对校验读取的数据;
步骤S304,根据消息中的虚拟通道标识调用通道回调函数。
一种智能主机的MCU通信服务方法,进一步地,在接收或发送数据之前,还包括:对MCU通信服务的所有通道进行初始化;
具体包括硬件链路的初始化,以及通道相关的数据存储缓冲区的初始化。
一种智能主机的MCU通信服务方法,进一步地,更新发送缓冲区中的数据处理具体包括:
S401,获取消息开始地址,根据消息地址到数据发送缓冲区读取消息数据;
S402,判断消息数据Magic ID,若不存在,则打印更新出错消息,结束;若存在,获取Magic ID的参数;
S403,判断消息数据reversed,若不存在,则打印更新出错消息,结束;若存在,获取reversed的参数;
S404,判断消息数据中的length,若不存在,则打印更新出错消息,结束;若存在,获取length的参数;
S405,判断消息数据的channel,若不存在,则打印更新出错消息,结束;若存在,获取channel的参数;
S406,更新消息数据的最新值。
一种智能主机的MCU通信服务方法,进一步地,数据通信开始之前,设计通信服务所需的结构体变量,对结构体变量初始化,MCU服务有关的管理信息赋予初始值,并且为服务回调函数指定相应的操作;
结构体变量至少包括:当前MCU通讯服务软件架构所对应的协议的版本,通讯双方的连接状态,当前MCU通讯服务使用的虚拟通道的总个数,通讯双方服务信息同步的状态,通讯服务watchdog数据帧发送定时器,通讯双方的连接状态监测计时器,监测通讯连接是否断开,MCU通讯服务模块当前的工作状态,MCU通讯服务成功接收到一帧数据时的回调解析函数。
有益效果:
1.本发明智能主机采用SoC和MCU的结构,并在SoC与MCU的通信中,采用多个虚拟通道映射到单一物理通信链路上,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收,能够在底层对用户数据进行解析,避免冗余数据的产生。
2.本发明提供智能主机的MCU通信服务方法,对于双方通信,通过周期性的发送watchdog帧判断双方是否处于正常通信以及同步两端的信息,如通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到对端的控制信息来打开或关闭自身通道的数据发送功能。通过这种设计,能够降低通信故障,提高通信效率,避免对端处于失败时仍然发送信息,导致资源浪费。
3.针对本发明采用SoC和MCU的结构的智能主机,在某些场景下的某些上层应用中发现,上层应用在同一处理周期内可能发送多条相同ID的消息数据,对于这种数据来说,当有新的数据产生时,旧的数据已经失去了意义,不需要再通过MCU服务通道传输,否则不但占用传输链路,而且对通讯双方产生了无用的处理负荷。因此为解决本实施例提供该智能主机架构下存在的这种技术问题,在MCU通信服务模块发送数据时添加了独特的数据去重更新处理,及时更新MCU数据发送缓冲区中的消息数据,减少数据发送处理的无用操作。
4.通过设计结构体变量以及对结构体变量初始化赋值,确保智能主机的MCU系统能够稳定的运行。
附图说明
以下附图仅对本发明做示意性说明和解释,并不限定本发明的范围。
图1为本发明一实施例中智能主机的结构示意图。
图2为本发明一实施例中智能主机通道控制信息同步处理流程。
图3为本发明一实施例中MCU通信服务模块的接收与发送数据流程示意图。
图4为本发明一实施例中MCU通信服务模块的接收数据处理流程图。
图5为本发明一实施例中MCU通信服务模块的发送数据更新处理流程图。
图6为本发明一实施例中MCU通信服务模块的发送数据更新条件示意图。
具体实施方式
为了对本文的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式,在各图中相同的标号表示相同的部分。为使图面简洁,各图中的示意性地表示出了与本发明相关部分,而并不代表其作为产品的实际结构。另外,为使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。
关于控制系统,功能模块、应用程序(APP)本领域技术人员熟知的是,其可以采用任何适当的形式,既可以是硬件也可以是软件,既可以是离散设置的多个功能模块,也可以是集成到一个硬件上的多个功能单元。作为最简单的形式,所述控制系统可以是控制器,例如组合逻辑控制器、微程序控制器等,只要能够实现本申请描述的操作即可。当然,控制系统也可以作为不同的模块集成到一个物理设备上,这些都不偏离本发明的基本原理和保护范围。
本发明中“连接”,即可包括直接连接、也可以包括间接连接、通信连接、电连接,特别说明除外。
本文中所使用的术语仅为了描述特定实施方案的目的并且不旨在限制本公开。如本文中所使用地,单数形式“一个”、“一种”、以及“该”旨在也包括复数形式,除非上下文明确地另作规定。还将理解的是,当在说明书中使用时,术语“包括”和/或“包含”是指存在有所陈述的特征、数值、步骤、操作、元件和/或组分,但是并不排除存在有或额外增加一个或多个其它的特征、数值、步骤、操作、元件、组分和/或其组成的群组。作为在本文中所使用的,术语“和/或”包括列举的相关项的一个或多个的任何和全部的组合
应当理解,此处所使用的术语“车辆”或“车辆的”或其它类似术语一般包括机动车辆,例如包括运动型多用途车辆(SUV)、公共汽车、卡车、各种商用车辆的乘用汽车,包括各种舟艇、船舶的船只,航空器等等,并且包括混合动力车辆、电动车辆、可插式混合动力电动车辆、氢动力车辆以及其它替代性燃料车辆(例如源于非石油的能源的燃料)。正如此处所提到的,混合动力车辆是具有两种或更多动力源的车辆,例如汽油动力和电力动力两者的车辆。
此外,本公开的控制器可被具体化为计算机可读介质上的非瞬态计算机可读介质,该计算机可读介质包含由处理器、控制器或类似物执行的可执行程序指令。计算机可读介质的示例包括,但不限于,ROM、RAM、光盘(CD)-ROM、磁带、软盘、闪存驱动器、智能卡和光学数据存储设备。计算机可读记录介质也可分布在通过网络耦合的计算机系统中,使得计算机可读介质例如通过远程信息处理服务器或控制器区域网络(CAN)以分布式方式存储和执行。
本实施例提供一种智能主机,如图1所示,智能主机的结构至少包括:MCU(微控制器)和SoC(系统级芯片),MCU与SoC相连接;具体地,MCU与SoC通过外部硬件通信链路相连接,具体地,外部硬件通信链路为UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)。
SoC(系统级芯片),也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。
本实施例在智能主机方案设计时选取合适的处理器芯片(SoC)和微控制器芯片(MCU)作为主机的控制处理单元,虽然当前市场上主流的处理器芯片也都集成有微控制核与CAN控制模块,但是为了提供智能主机系统的稳定性,本实施中采用SoC和MCU对不同类别的信号分别进行处理;
系统中车身信息的采集和显示是由MCU单元和SoC单元分别完成的,MCU从车身总线上接收到的信号需要经过MCU通讯服务模块将数据组包后转化成相应的消息数据,传输到SoC并通过显示屏幕呈现给用户,同时接收SoC传输的命令消息,经MCU通讯服务校验解包之后转给相应的MCU服务处理。
为了提供适合于MCU和SoC的通信方法,本实施例基于上述智能主机架构,提供了一种智能主机的MCU通信服务方法,具体至少包括:其中,数据通信开始之前,至少包括:
将多个虚拟通道映射到单一物理通信链路上,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收。
具体地,由于智能主机集成较多的系统,如中控娱乐系统、仪表报警系统和以太网360全景环视系统,具体包含有车身信息显示、空调控制、收音机、音视频播放、蓝牙、WiFi、雷达报警、驾驶辅助和360环视等功能,由于如此众多的信号,如果采用传统的单一不区别数据类型的通信方式,将数据类型放入用户层才进行解析,产生较多冗余数据,另外,数据类型解析也较为耗时耗力。因此,本发明设计整体通信架构时提出了虚拟通道,例如:将256个虚拟通道映射到一条物理通信链路上,对所传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送和接收。正常情况下,通信端只负责管理自身通道数据的接收,而数据的发送则由对端来管控。虚拟通道中有些通道是为整个通信架构服务的,不能作为普通通道传输数据,如control通道用于通信端的同步和控制信息传输,watchdog通道用于通信端传输watchdog数据帧。
在正常的数据通信开始之前,通信双方需要同步两端的信息,两端的信息至少包括:通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到对端的控制信息来打开或关闭自身通道的数据发送功能。具体方法参见图2.
具体地,通道控制信息同步处理方法包括:
步骤S100,打开虚拟通道接收数据,同步控制信息;
步骤S101,判断协议架构版本是否兼容,若不兼容,执行步骤S103,;若兼容,则执行步骤S102;
步骤S102,根据控制信息使能通道数据发送,跳转执行步骤S104;
步骤S103,打印警告提示信息,保持消息通道发送关闭状态通知对端同步失败;
步骤S104,通信服务进入正常通信工作状态;
需要说明的是,本实施中,通信服务进入正常通信工作并不一定进行通信,例如,当发现通信双方的协议不兼容时,尽管处于正常通信状态,但双方无法通信。
通过watchdog数据帧判断待通信的对端是否处于正常通信。
由于智能主机工作环境的复杂性和不确定性,在主机系统运行过程中可能存在通讯双方(即MCU和SoC)服务软件无法正常工作的情况,如SoC端通讯服务阻塞、硬件通讯链路损坏等,这种情况下通讯数据无法正常传输,需要通讯服务软件及时发现报出警告信息,同时调整自身工作状态,降低不必要的工作负荷,本实施例在设计通讯服务架构时添加了watchdog数据帧,具体地:
通讯双方需要按照指定的周期发送watchdog数据帧,倘若通讯过程中有一方检测到另外一方发送的watchdog数据帧周期不正常,则认为通讯异常,应当停止自身通讯数据的发送,具体包括:
步骤S201,发送watchdog数据帧的时间是否已到,若否,则执行步骤S202;若是,则发送watchdog数据帧;
步骤S202,判断接收watchdog数据帧是否超时,若是,则关闭发送通道;若否,返回步骤S201。
在正常的数据通信开始之前,对MCU通信服务的所有通道进行初始化;
具体包括硬件链路的初始化,以及通道相关的数据存储缓冲区的初始化。
为了确保MCU服务模块正常通信,本实施例定义的结构体变量,以支撑MCU服务模块的运行。具体地,在正常的数据通信开始之前,对结构体变量初始化,MCU服务有关的管理信息赋予初始值,并且为服务回调函数指定相应的操作。
定义MCU通信服务模块的结构体变量,具体如下:
u8Version:当前MCU通讯服务软件架构所对应的协议的版本
u8CurConnection:通讯双方的连接状态,即MCU与SoC的通信服务连接状态
u8TotalChannel:当前MCU通讯服务使用的虚拟通道的总个数
bChannelSync:通讯双方服务信息同步的状态
u32WatchdogTimer MCU:通讯服务watchdog数据帧发送定时器
u32ConLostTimer:通讯双方的连接状态监测计时器,监测通讯连接是否断开
eWorkStatus:MCU通讯服务模块当前的工作状态
IpcFrameRxCallback:MCU通讯服务成功接收到一帧数据时的回调解析函数。
MCU通信服务模块进行初始化,此过程会将MCU通信服务模块有关的管理信息赋予初始值,并且为MCU通信服务回调函数指定相应的操作,如果不进行初始化操作,MCU通信服务将无法正常运行。
在智能主机中,MCU的数据接收参见图3,具体地,MCU的数据接收至少包括:
监测外部硬件链路(DevUART)中虚拟通道接收到的数据,将数据存入数据接收缓冲区,根据预设协议对数据进行分帧、校验和解包,获取Payload数据并通知处理任务服务对数据进行解析,处理任务服务通过与通道标识相对应的回调函数对数据进行解析后写入消息队列,通过消息队列将解析后的数据传输至用户任务;
具体地,数据的分帧、校验和解包以及Payload数据的解析由MCU通信服务模块(IPC Module)。
参见图4,根据预设协议对数据进行分帧、校验和解包具体包括:
步骤S301,从硬件链路接口中的接收缓存中读取一个字节的数据;
步骤S302,判断是否为0xAA,若是0xAA,则对校验读取的数据,若不是0xAA,则返回步骤S301;
步骤S303,从硬件链路接口中的接收缓存中读取2个字节数据,获取消息Payload的长度,校验读取的数据;
步骤S304,根据消息Payload长度读取硬件链路中接收到的缓存消息数据,校验读取的数据;
步骤S305,根据消息中的虚拟通道标识调用对应的回调函数进行解析。
本实施例中,MCU的数据帧的起始字节为固定值0xAA,当然也可以设计其它数值。
当从数据接收缓冲区中读取到此数据时,即认为读到了一帧数据的起始字节,接着读取数据长度和数据帧校验值,上述处理将会被周期性地调用执行。
具体地,本实施例中存在多个虚拟通道,每个通道都设置相应标识,不同数据类型只能通过与标识相对应的虚拟通道进行传输;
在后续的数据解析中,为了避免在用户层解析时导致的冗余数据,对来自不同虚拟通道的Payload数据,直接调用与虚拟通道标识相对应的回调函数对Payload数据进行解析;
每种虚拟通道传送的数据都有相应的回调函数对数据进行解析;
本实施例中,MCU通信服务模块还包括数据发送;
数据发送方法至少包括:
当需要发送数据时,用户任务(APPTasks)根据需求调用消息发送接口服务将数据通过消息队列传输消息的方式将数据传输到处理任务服务(HandlerTask)中进行处理;
处理任务服务(HandlerTask)调用服务处理程序(IpcHandler)将数据传输至数据发送缓冲区中进行封装后传输至外部硬件链路中与数据类型相对应的虚拟通道后进行发送给外部设备。
具体地,数据的封装在MCU通信服务模块(IPC Module)中进行;
服务处理程序(IpcHandler)只允许处理任务服务(HandlerTask)进行调用,而不允许其他任务进行调用,其目的是统一通信接口,降低MCU程序软件的解耦性。因此,让数据只能在task中进行通信,如声音task、视频task、按键控制信号task等可以进行相互通信,但是,这些task不能直接与服务处理程序进行通信,而是通过设置处理任务服务与这些任务通信,由处理任务服务与服务处理程序进行通信,在处理任务服务中调用服务处理程序将数据传送给MCU通信服务模块进行交互。
消息发送接口服务,被用于提供给用户任务通过指定的虚拟通道发送消息,并指定需要发送数据的通道、指向要发送数据存储区域的指针、发送数据的长度;
同时根据数据发送状态提供返回值。
具体地,数据发送处理流程包括:通道的发送功能是由通讯对端控制的,如果某个通道没有使能,说明对端不需要接收该通道数据,在MCU通信服务发送数据时,首先要检测数据传输的通道是否打开,如果通道已打开,将数据写入到外部硬件链路的发送数据缓冲区中,否则将把数据丢弃;
上述数据发送处理流程仅在上层用户程序发送数据时才被调用执行;
需要说明的是,外部硬件链路在本实施例中是指数据的发送和接口的接口,如可以为CAN接口、URAT接口或车载以太网PHY接口。
在实际MCU与SoC的智能主机通信,在该场景下的某些上层应用中发现,上层应用在同一处理周期内可能发送多条相同ID的消息数据,对于这种数据来说,当有新的数据产生时,旧的数据已经失去了意义,不需要再通过MCU服务通道传输,否则不但占用传输链路,而且对通讯双方产生了无用的处理负荷。因此解决本实施例提供该智能主机架构下存在的这种技术问题,在MCU通信服务发送数据时添加了独特的数据去重更新处理,及时更新MCU数据发送缓冲区中的消息数据,减少数据发送处理的无用操作。
具体地,参见图5,发送数据更新处理具体包括::
判断数据发送缓冲区中是否存在要发送的消息数据,如果存在,当满足更新条件,则使用新的消息数据覆盖,并更新发送缓冲区中的数据。
更新发送缓冲区中的数据处理方法具体包括:
S401,获取消息开始地址,根据消息地址到数据发送缓冲区读取消息数据;
S402,判断消息数据Magic ID,若不存在,则打印更新出错消息,结束;若存在,获取Magic ID的参数;
S403,判断消息数据reversed,若不存在,则打印更新出错消息,结束;若存在,获取reversed的参数;
S404,判断消息数据中的length,若不存在,则打印更新出错消息,结束;若存在,获取length的参数;
S405,判断消息数据的channel,若不存在,则打印更新出错消息,结束;若存在,获取channel的参数;
S406,更新消息数据的最新值。
具体地,数据发送缓冲区的消息数据更新是有条件的,如果错误的更新错误,但是对端并未发现,则会产生行车安全事故。因此,需要确保消息数据更新是正确的,并且不能对已部分发送的旧数据产生影响;
具体地,为了确定数据何时可以更新,本实施例定义多个记录或计算消息数据相关的变量;
具体地包括:
定义第一变量u16ID用来记录当前MCU通信服务模块的消息的ID号;
定义变量u16StartAddr用来记录当前MCU通信服务的消息在数据发送缓冲区中的开始位置,该位置就是当前环形写指针所在的位置;
定义第二变量u16RingreadAddr用来记录当前时刻,环形读指针所在的位置;
定义变量u8ReadCnt用来记录环形读指针在数据发送缓冲区中循环的次数;
定义变量bReWriteFlag用来记录是否需要覆盖的标志。
具体地,如图6所示,假设Ta时刻有一条消息写入(上图中S1位置),并保存于数据发送缓冲区里面;Tb时刻消息还需要再次写入,可以通过上面定义的变量,计算出Ta时刻到Tb时刻,环形读指针(r1)走过的距离,该指针走过的位置,代表数据已经被发送。
计算出Ta时刻,环形读指针(r1)的位置到该消息在数据发送缓冲区中的开始位置的第一距离D1。
若S2代表Tb时刻环形的读指针r1所在的位置,其走过的距离是第二距离D2。
当S2落在P1处,说明读指针已经跑完一圈了,数据帧已发送,不用替换;
落在P2位置的时候,图中灰色部分数据是未被访问过的完整数据帧,可以替换;
落在P3处说明访问了部分MCU通信服务的数据,Tb时刻的MCU通信服务的消息帧数据已被部分读取,不可替换;
P4位置表示Ta时刻MCU通信服务消息已经全部发送出,也不用替换。如果D2小于D1,即说明发送缓冲区中消息帧数据可以替换,反之则不可替换。
因此,可以获知,数据更新的条件如下:
获取消息数据写入数据发送缓冲区的时刻Ta,在Ta时刻,消息数据环形读指针的开始位置;计算Ta时刻,环形读指针的位置与环形写指针的位置之间的距离并记为第一距离;
在经过一段时间后达到时刻Tb,计算环形读指针走过的距离并记为第二距离;
当第二距离小于第一距离时,则对数据发送缓冲区中的消息数据进行更新。
软件运行速率大于硬件,当软件运行速率过高,硬件的速率过低,导致硬件来不及处理该发送的消息。
时间管理服务是处理MCU通信服务内部有关定时器和计时器等信息的处理,如何时发送watchdog数据帧,怎样判断通信连接断开等,保证通讯服务内部时间计时周期的稳定性。时间管理服务在MCU软件系统中的运行设计,时间管理服务通过MCU通信服务模块调用进行计算有关定时器或计算器等信息操作。
通过时间管理服务提供内部的时间参照,同时处理MCU通信服务中与时间计时相关的操作。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。本领域的技术人员可以清楚,该实施例中的形式不局限于此,同时可调整方式也不局限于此。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (11)
1.一种智能主机的MCU通信服务方法,应用于包含有MCU与SoC的智能主机,其特征在于,至少包括:
监测外部硬件链路中虚拟通道接收到的数据,将数据存入数据接收缓冲区,根据预设协议对数据进行分帧、校验和解包,获取Payload数据并通知处理任务服务对数据进行解析;
其中,数据通信开始之前,至少包括:
将多个虚拟通道映射到单一物理通信链路上,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收。
2.如权利要求1所述的一种智能主机的MCU通信服务方法,其特征在于,数据通信开始之前,还包括:通信双方需要同步两端的信息,两端的信息至少包括:通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到对端的控制信息来打开或关闭自身通道的数据发送功能。
3.如权利要求1所述的一种智能主机的MCU通信服务方法,其特征在于,数据通信开始之前,还包括:通过watchdog数据帧判断待通信的对端是否处于正常通信。
4.如权利要求3所述的一种智能主机的MCU通信服务方法,其特征在于,通讯双方需要按照指定的周期发送watchdog数据帧,倘若通讯过程中有一方检测到另外一方发送的watchdog数据帧周期不正常,则认为通讯异常,停止自身通讯数据的发送。
5.如权利要求1所述的一种智能主机的MCU通信服务方法,其特征在于,当需要发送数据时,用户任务根据需求调用消息发送接口服务将数据通过消息队列传输消息的方式将数据传输到处理任务服务中进行处理;
处理任务服务调用服务处理程序将数据传输至数据发送缓冲区中进行封装后传输至外部硬件链路中与数据类型相对应的虚拟通道后进行发送给外部设备。
6.如权利要求1所述的一种智能主机的MCU通信服务方法,其特征在于,通过时间管理服务提供内部的时间参照,同时处理MCU通信服务中与时间计时相关的操作。
7.如权利要求1所述的一种智能主机的MCU通信服务方法,其特征在于,消息发送接口服务,被用于提供给用户任务通过指定的虚拟通道发送消息,并指定需要发送数据的通道、指向要发送数据存储区域的指针、发送数据的长度;
同时根据数据发送状态提供返回值。
8.如权利要求1所述的一种智能主机的MCU通信服务方法,其特征在于,判断数据发送缓冲区中是否存在要发送的消息数据,如果存在,当满足更新条件,则使用新的消息数据覆盖,并更新发送缓冲区中的数据。
9.如权利要求1所述的一种智能主机的MCU通信服务方法,其特征在于,根据预设协议对数据进行分帧、校验和解包具体包括:
步骤S301,从硬件链路接口中的接收缓存中读取一个字节的数据;
步骤S2,判断是否为0xAA,若是0xAA,则校验读取的数据,若不是0xAA,则返回步骤S1;
步骤S302,从硬件链路接口中的接收缓存中读取2个字节数据,获取消息Payload的长度,并校验读取的数据;
步骤S303,根据消息Payload长度读取硬件链路中接收到的缓存消息数据,并校验读取的数据;
步骤S304,根据消息中的虚拟通道标识调用通道回调函数。
10.如权利要求1所述的一种智能主机的MCU通信服务方法,其特征在于,在接收或发送数据之前,还包括:对MCU通信服务的所有通道进行初始化;
具体包括硬件链路的初始化,以及通道相关的数据存储缓冲区的初始化。
11.如权利要求8所述的一种智能主机的MCU通信服务方法,其特征在于,更新发送缓冲区中的数据处理具体包括:
S401,获取消息开始地址,根据消息地址到数据发送缓冲区读取消息数据;
S402,判断消息数据MagicID,若不存在,则打印更新出错消息,结束;若存在,获取MagicID的参数;
S403,判断消息数据reversed,若不存在,则打印更新出错消息,结束;若存在,获取reversed的参数;
S404,判断消息数据中的length,若不存在,则打印更新出错消息,结束;若存在,获取length的参数;
S405,判断消息数据的channel,若不存在,则打印更新出错消息,结束;若存在,获取channel的参数;
S406,更新消息数据的最新值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110537243.9A CN113422738B (zh) | 2021-05-18 | 2021-05-18 | 一种智能主机的mcu通信服务方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110537243.9A CN113422738B (zh) | 2021-05-18 | 2021-05-18 | 一种智能主机的mcu通信服务方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113422738A true CN113422738A (zh) | 2021-09-21 |
CN113422738B CN113422738B (zh) | 2023-07-21 |
Family
ID=77712441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110537243.9A Active CN113422738B (zh) | 2021-05-18 | 2021-05-18 | 一种智能主机的mcu通信服务方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422738B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114802059A (zh) * | 2022-06-24 | 2022-07-29 | 中国第一汽车股份有限公司 | 一种液晶仪表系统用车辆故障报警方法及系统 |
CN114859868A (zh) * | 2022-05-11 | 2022-08-05 | 中国第一汽车股份有限公司 | 一种乘用车组合仪表系统下线配置防错处理方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040151170A1 (en) * | 2003-01-31 | 2004-08-05 | Manu Gulati | Management of received data within host device using linked lists |
US20040228345A1 (en) * | 2003-05-16 | 2004-11-18 | Kyu-Hyung Cho | Apparatus and method for switching broadcast channel using VCC information |
WO2006058051A2 (en) * | 2004-11-24 | 2006-06-01 | Qualcomm Incorporated | Methods and systems for updating a buffer |
CN101262439A (zh) * | 2008-04-21 | 2008-09-10 | 湖北融合通信技术有限公司 | 一种多业务路由器 |
CN101365999A (zh) * | 2005-02-03 | 2009-02-11 | 五级网络公司 | 发送完成事件批处理 |
CN101421791A (zh) * | 2005-02-03 | 2009-04-29 | Level5网络有限公司 | 用于主机和外围设备之间通信的队列深度管理 |
CN101860894A (zh) * | 2010-03-04 | 2010-10-13 | 宇龙计算机通信科技(深圳)有限公司 | 一种移动终端处理器间通讯的系统、方法及移动终端 |
CN102520911A (zh) * | 2011-12-19 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种优化收包设备上的软件操作pci空间寄存器效率的系统和方法 |
US10176126B1 (en) * | 2015-06-29 | 2019-01-08 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for a PCI implementation handling multiple packets |
CN109739800A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 节点控制器的调度系统及fpga板卡 |
CN110083461A (zh) * | 2019-03-29 | 2019-08-02 | 郑州信大捷安信息技术股份有限公司 | 一种基于fpga的多任务处理系统及方法 |
CN111800304A (zh) * | 2019-04-09 | 2020-10-20 | 安克创新科技股份有限公司 | 进程运行的监测方法、存储介质和虚拟装置 |
CN112235302A (zh) * | 2020-10-15 | 2021-01-15 | 天津津航计算技术研究所 | 一种适用于多种总线的协议解析方法 |
-
2021
- 2021-05-18 CN CN202110537243.9A patent/CN113422738B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040151170A1 (en) * | 2003-01-31 | 2004-08-05 | Manu Gulati | Management of received data within host device using linked lists |
US20040228345A1 (en) * | 2003-05-16 | 2004-11-18 | Kyu-Hyung Cho | Apparatus and method for switching broadcast channel using VCC information |
WO2006058051A2 (en) * | 2004-11-24 | 2006-06-01 | Qualcomm Incorporated | Methods and systems for updating a buffer |
CN101365999A (zh) * | 2005-02-03 | 2009-02-11 | 五级网络公司 | 发送完成事件批处理 |
CN101421791A (zh) * | 2005-02-03 | 2009-04-29 | Level5网络有限公司 | 用于主机和外围设备之间通信的队列深度管理 |
CN101262439A (zh) * | 2008-04-21 | 2008-09-10 | 湖北融合通信技术有限公司 | 一种多业务路由器 |
CN101860894A (zh) * | 2010-03-04 | 2010-10-13 | 宇龙计算机通信科技(深圳)有限公司 | 一种移动终端处理器间通讯的系统、方法及移动终端 |
CN102520911A (zh) * | 2011-12-19 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种优化收包设备上的软件操作pci空间寄存器效率的系统和方法 |
US10176126B1 (en) * | 2015-06-29 | 2019-01-08 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for a PCI implementation handling multiple packets |
CN109739800A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 节点控制器的调度系统及fpga板卡 |
CN110083461A (zh) * | 2019-03-29 | 2019-08-02 | 郑州信大捷安信息技术股份有限公司 | 一种基于fpga的多任务处理系统及方法 |
CN111800304A (zh) * | 2019-04-09 | 2020-10-20 | 安克创新科技股份有限公司 | 进程运行的监测方法、存储介质和虚拟装置 |
CN112235302A (zh) * | 2020-10-15 | 2021-01-15 | 天津津航计算技术研究所 | 一种适用于多种总线的协议解析方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114859868A (zh) * | 2022-05-11 | 2022-08-05 | 中国第一汽车股份有限公司 | 一种乘用车组合仪表系统下线配置防错处理方法 |
CN114859868B (zh) * | 2022-05-11 | 2024-04-16 | 中国第一汽车股份有限公司 | 一种乘用车组合仪表系统下线配置防错处理方法 |
CN114802059A (zh) * | 2022-06-24 | 2022-07-29 | 中国第一汽车股份有限公司 | 一种液晶仪表系统用车辆故障报警方法及系统 |
CN114802059B (zh) * | 2022-06-24 | 2022-09-06 | 中国第一汽车股份有限公司 | 一种液晶仪表系统用车辆故障报警方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113422738B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010415B (zh) | 针对车联网的数据传输方法和装置 | |
US10630538B2 (en) | Software update method and apparatus for vehicle | |
EP4099655A1 (en) | Software version rollback method, apparatus and system | |
CN104853142B (zh) | 用于车载以太网的控制器及其控制方法 | |
JP7562661B2 (ja) | ソフトウェアアップグレード方法、装置、およびシステム | |
CN113422738A (zh) | 一种智能主机的mcu通信服务方法 | |
CN113973088B (zh) | 一种智能主机的mcu通信服务系统 | |
CN107920007B (zh) | 车辆网络中的多个通信节点的第一通信节点及其操作方法 | |
CN103780697A (zh) | 车载电子处理单元公共平台系统及其数据通讯方法 | |
US20240020110A1 (en) | Terminal Upgrade Method and Apparatus | |
CN107026889B (zh) | 网络中的通信节点的操作方法 | |
CN112003772A (zh) | 通信系统以及通信控制方法 | |
CN113671926B (zh) | 一种车载网联终端及电动汽车 | |
CN113905461B (zh) | 一种集成网关的无线通讯模块 | |
CN111885173A (zh) | 一种符合austosar架构的ecu及其睡眠/唤醒管理方法 | |
CN117319261A (zh) | 一种基于autosar的管理方法、设备及系统 | |
CN117749624A (zh) | 一种车辆数据采集可配置化的方法 | |
CN103257648B (zh) | 汽车标定系统 | |
CN103176929B (zh) | 一种适配总线与非总线车型的导航设备及其适配方法 | |
CN115291595B (zh) | 自主式多数据源的智能信息处理系统及电子设备 | |
CN111694581B (zh) | 一种汽车降噪系统的软件升级方法及汽车降噪系统 | |
WO2024000354A1 (zh) | 一种节点升级方法以及装置 | |
WO2024152148A1 (zh) | 一种设备救援方法及相关设备 | |
WO2024026592A1 (zh) | 一种数据存储方法及相关装置 | |
WO2023223819A1 (ja) | 情報処理方法、通信システムおよび情報処理プログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |