CN113973088A - 一种智能主机的mcu通信服务系统 - Google Patents
一种智能主机的mcu通信服务系统 Download PDFInfo
- Publication number
- CN113973088A CN113973088A CN202110537250.9A CN202110537250A CN113973088A CN 113973088 A CN113973088 A CN 113973088A CN 202110537250 A CN202110537250 A CN 202110537250A CN 113973088 A CN113973088 A CN 113973088A
- Authority
- CN
- China
- Prior art keywords
- data
- communication
- mcu
- communication service
- message
- 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 243
- 238000004891 communication Methods 0.000 title claims abstract description 239
- 238000012545 processing Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims abstract description 13
- 239000000872 buffer Substances 0.000 claims description 42
- 230000005540 biological transmission Effects 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 40
- 238000004458 analytical method Methods 0.000 claims description 9
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 7
- 238000009432 framing Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000007639 printing Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000004378 air conditioning Methods 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
- 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
- 239000012536 storage buffer Substances 0.000 description 1
- 238000012546 transfer Methods 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)
Abstract
本发明提供了一种智能主机的MCU通信服务系统,系统应用于包含有MCU与SoC的智能主机,具体包括:外部硬件通信接口链路与MCU通信服务装置相连接;多个虚拟通道映射到单一物理通信链路,外部硬件通信接口链路通过对应的虚拟通道与外部设备进行通信;MCU通信服务装置,至少被配置为处理MCU内部与外部设备的数据通信。MCU通信服务装置设置包括:数据接收处理模块、发送数据更新模块、数据发送处理模块等,本发明提供通信服务系统能够在底层对用户数据进行解析,避免冗余数据的产生。另外,添加了发送数据去重更新,避免数据发送处理的无用操作。
Description
技术领域
本发明涉及车用智能主机通信方法,尤其涉及一种智能主机的MCU通信服务系统。
背景技术
随着科学技术的不断进步,汽车朝着智能化、自动化、无人化方面发展,现阶段,智能主机集成了中控娱乐系统、仪表报警系统和以太网360全景环视系统等,智能主机主功能具体包含有车身信息显示、空调控制、收音机、音视频播放、蓝牙、WiFi、雷达报警、驾驶辅助和360环视等功能。如此众多的车身信号给智能主机硬件结构和通信提出了空前的挑战。现有技术的智能主机为了满足如此众多功能的需求,采用高性能的处理器、GPU集成一体,但由于涉及较多传感器的通信,且不同传感器的数据类型以及总线传感器可能不相同,由此会造成通信较为复杂,数据处理负担重。另外,由于来自众多不同类型传感器,其存在传感器的数据类型不同,现有技术中往往都是将数据传输到用户层后才进行解析,这样会导致用户层解析后产生较多的冗余数据。鉴于现有技术存在的缺陷,本申请旨在提供一种智能主机以解决现有技术中存在的缺陷。
发明内容
基于现有技术中存在的缺陷,本申请提供一种智能主机的MCU通信服务系统,该系统应用于包含有MCU与SoC的智能主机,
具体至少包括:
外部硬件通信接口链路与MCU通信服务装置相连接;
多个虚拟通道映射到单一物理通信链路,外部硬件通信接口链路通过对应的虚拟通道与外部设备进行通信;
MCU通信服务装置,至少被配置为处理MCU内部与外部设备的数据通信。
一种智能主机的MCU通信服务系统,进一步地,MCU通信服务装置包括:
发送数据更新模块,至少被配置为判断数据发送缓冲区的数据是否存在要发送的消息数据,如果存在,当满足更新条件,则使用新的消息数据覆盖和更新数据发送缓冲区中的数据。
一种智能主机的MCU通信服务系统,进一步地,MCU通信服务装置包括:
数据接收处理模块,至少被配置为监控外部硬件通信接口链路接收到的数据,将数据存入数据接收缓冲区,根据预设协议对数据进行分帧、校验和解包,获取Payload数据并通知处理任务服务进行解析处理。
一种智能主机的MCU通信服务系统,进一步地,MCU通信服务装置包括:
数据发送处理模块,至少被配置为将数据发送缓冲区的数据按照预设的协议进行封包处理。
一种智能主机的MCU通信服务系统,进一步地,当需要发送数据时,用户任务根据需求调用消息发送接口服务将数据通过消息队列传输消息的方式传输到处理任务服务中进行处理;
处理任务服务调用服务处理程序将数据传输至MCU通信服务装置的数据发送缓冲区中并由数据发送处理模块进行封装后传输至外部硬件通信接口链路中相应的虚拟通道;
其中,服务处理程序,负责预定义的服务与外部数据的交互;
处理任务服务,负责服务处理以及服务与任务之间的数据交互;
服务处理程序只允许与处理任务服务调用。
一种智能主机的MCU通信服务系统,进一步地,MCU通信服务装置包括:
同步分类模块,至少被配置为在接收或发送数据之前,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收;
通信双方需要同步两端的信息,两端的信息至少包括:通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到的对端的控制信息来打开或关闭自身通道的数据发送功能。
一种智能主机的MCU通信服务系统,进一步地,MCU通信服务装置包括:通信判断模块,被配置为通过watchdog数据帧的状态判断待通信的对端是否处于正常通信;
对端是否处于正常通信的判断方式包括:通讯双方需要按照指定的周期发送watchdog数据帧,倘若通讯过程中有一方检测到另外一方发送的watchdog数据帧周期不正常,则认为通讯异常,停止自身通讯数据的发送。
一种智能主机的MCU通信服务系统,进一步地,处理任务服务进行解析处理具体包括:
处理任务服务调用与虚拟通道标识相对应的回调函数对Payload数据进行解析并写入消息队列,通过消息队列传输给用户任务;
回调函数与通道标识相对应,不同的数据类型有对应的回调函数。
一种智能主机的MCU通信服务系统,进一步地,消息发送接口服务,被用于提供给用户任务通过指定的虚拟通道发送消息,并指定需要发送数据的通道、指向要发送数据存储区域的指针、发送数据的长度;同时根据数据发送状态提供返回值。
一种智能主机的MCU通信服务系统,进一步地,数据接收处理模块中,根据预设协议对数据进行分帧、校验和解包具体包括:
步骤S1,从硬件链路接口中的接收缓存中读取一个字节的数据;
步骤S2,判断是否为0xAA,若是0xAA,则对校验读取的数据,若不是0xAA,则返回步骤S1;
步骤S3,从硬件链路接口中的接收缓存中读取2个字节数据,获取消息Payload的长度,并对校验读取的数据;
步骤S4,根据消息Payload长度读取硬件链路中接收到的缓存消息数据,并对校验读取的数据;
步骤S5,根据消息中的虚拟通道标识调用相应的回调函数对Payload进行解析。
一种智能主机的MCU通信服务系统,进一步地,MCU通信服务装置包括:初始化模块,至少被配置为硬件链路的初始化、与通道相关的数据发送缓冲区、数据接收缓冲区的初始化。
一种智能主机的MCU通信服务系统,进一步地,数据发送缓冲区的数据更新条件包括:
获取消息数据写入数据发送缓冲区的时刻Ta和Ta时刻消息数据环形读指针的开始位置,计算Ta时刻,环形读指针的位置与环形写指针的位置之间的距离并记为第一距离;
在当前时刻Tb,计算环形读指针走过的距离记为第二距离;
当第二距离小于第一距离时,则对数据缓冲区中的消息数据进行更新。
一种智能主机的MCU通信服务系统,进一步地,MCU通信服务装置包括:变量结构体处理模块,用于配置设计通信服务所需的结构体变量,对结构体变量初始化,对MCU通信服务有关的管理信息赋予初始值,并且为通信服务回调函数指定相应的操作;
结构体变量至少包括:当前MCU通讯服务软件架构所对应的协议的版本,通讯双方的连接状态,当前MCU通讯服务使用的虚拟通道的总个数,通讯双方服务信息同步的状态,通讯服务watchdog数据帧发送定时器,通讯双方的连接状态监测计时器,监测通讯连接是否断开,MCU通讯服务模块当前的工作状态,MCU通讯服务成功接收到一帧数据时的回调解析函数。
有益效果:
1.本发明智能主机采用SoC和MCU的结构,并在SoC与MCU的通信中设计MCU通信服务系统,采用多个虚拟通道映射到单一物理通信链路上,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收,通过调用与通信表示对应的回调函数对payload数据进行解析。使得能够在底层对用户数据进行解析,避免在用户层进行解析产生冗余数据。
2.本发明提供智能主机的MCU通信服务系统,对于双方通信,通过周期性的发送watchdog帧判断双方是否处于正常通信以及同步两端的信息,如通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到对端的控制信息来打开或关闭自身通道的数据发送功能。通过这种设计,避免对端处于失败时仍然发送信息,导致资源浪费的技术问题,其能够提高通信效率。
3.本发明提供智能主机的MCU通信服务系统,在某些场景下的某些上层应用中发现,上层应用在同一处理周期内可能发送多条相同ID的消息数据,对于这种数据来说,当有新的数据产生时,旧的数据已经失去了意义,不需要再通过MCU服务通道传输,否则不但占用传输链路,而且对通讯双方产生了无用的处理负荷。因此为解决本实施例提供的该智能主机架构下存在的这种技术问题,在MCU通信服务装置发送数据时添加了独特的数据去重更新处理,及时更新MCU数据发送缓冲区中的消息数据,减少数据发送处理的无用操作。
4.本发明提供智能主机的MCU通信服务系统设计了结构体变量,确保MCU通信服务装置能够正常通信,在正常的数据通信开始之前,对结构体变量初始化,给MCU服务有关的管理信息赋予初始值,并且为回调函数指定相应的操作,确保系统稳定的通信运行。
附图说明
以下附图仅对本发明做示意性说明和解释,并不限定本发明的范围。
图1为本发明一实施例中智能主机的结构示意图。
图2为本发明一实施例中智能主机中的MCU通信服务装置结构示意图。
图3为本发明一实施例中MCU的数据接收处理流程示意图。
图4为本发明一实施例中MCU的数据发送数据处理流程图。
图5为本发明一实施例中MCU通信服务装置的通道控制信息同步处理流程。
图6为本发明一实施例中MCU通信服务装置的接收数据处理示意图。
图7为本发明一实施例中MCU通信服务装置的发送数据更新条件示意图。
图8为本发明一实施例中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通信服务装置,具体至少包括:
外部硬件通信接口链路与MCU通信服务装置相连接;
多个虚拟通道映射到单一物理通信链路,外部硬件通信接口链路通过对应的虚拟通道与外部设备进行通信;
MCU通信服务装置,至少被配置为处理MCU内部与外部设备的数据通信;
虚拟通道设有通道标识,通道标识设有相对应的回调函数,根据通道标识调用相应的回调函数对Payload数据进行解析。
参见图2,MCU通信服务装置至少包括:时间管理模块、数据接收处理模块、数据发送处理模块、同步分类模块,初始化服务模块、通信判断模块、变量结构体模块中的一种或多种;
具体地,同步分类模块,至少被配置为在接收或发送数据之前,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收;
通信双方需要同步两端的信息,两端的信息至少包括:通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到的对端的控制信息来打开或关闭自身通道的数据发送功能。
具体地,由于智能主机集成较多的系统,如中控娱乐系统、仪表报警系统和以太网360全景环视系统,具体包含有车身信息显示、空调控制、收音机、音视频播放、蓝牙、WiFi、雷达报警、驾驶辅助和360环视等功能,由于如此众多的信号,如果采用传统的单一不区别数据类型的通信方式,将数据类型放入用户层才进行解析,使得在用户层解析后获得非必要的冗余数据。为了解决现有技术存在的技术问题,本实施例在设计整体通信架构时提出了多个虚拟通道映射单一物理链路上,例如:将256个虚拟通道映射到一条物理通信链路上,对所传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送和接收。并且,设计接收处理服务,接收处理服务根据通道标识调用相应的回调函数对数据进行解析。正常情况下,通信端只负责管理自身通道数据的接收,而数据的发送则由对端来管控。虚拟通道中有些通道是为整个通信架构服务的,不能作为普通通道传输数据,如control通道用于通信端的同步和控制信息传输,watchdog通道用于通信端传输watchdog数据帧。通过以上设计,使得本实施例提供的MCU通信与SoC的通信中数据的解析能够在系统底层就可以进行快速方便的进行解析,而不必等待用户层再进行解析,避免用户层解析导致非必要的冗余数据。
在正常的数据通信开始之前,通信双方需要同步两端的信息,两端的信息至少包括:通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到对端的控制信息来打开或关闭自身通道的数据发送功能。具体方法参见图3.
具体地,通道控制信息同步处理方法包括:
步骤S100,打开虚拟通道接收数据,同步控制信息;
步骤S101,判断协议架构版本是否兼容,若不兼容,执行步骤S103,;若兼容,则执行步骤S102;
步骤S102,根据控制信息使能通道数据发送,跳转执行步骤S104;
步骤S103,打印警告提示信息,保持消息通道发送关闭状态通知对端同步失败;
步骤S104,通信服务进入正常通信工作状态;
由于智能主机工作环境的复杂性和不确定性,在主机系统运行过程中可能存在通讯双方(即MCU和SoC)服务软件无法正常工作的情况,如SoC端通讯服务阻塞、硬件通讯链路损坏等,这种情况下通讯数据无法正常传输,需要通讯服务软件及时发现报出警告信息,同时调整自身工作状态,降低不必要的工作负荷,本实施例在设计通讯服务架构时设计了通信判断模块并添加了watchdog数据帧;
通信判断模块,被配置为通过watchdog数据帧的状态判断待通信的对端是否处于正常通信;
对端是否处于正常通信的判断方式包括:通讯双方需要按照指定的周期发送watchdog数据帧,倘若通讯过程中有一方检测到另外一方发送的watchdog数据帧周期不正常,则认为通讯异常,停止自身通讯数据的发送;
需要说明的是,本实施例中,通信服务进入正常通信工作并不一定进行通信,例如,当发现通信双发的协议不兼容时,尽管处于正常通信状态,但双方无法通信。
通过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通信服务装置将无法正常运行。
具体地,MCU通信服务系统具备数据接收功能,数据接收功能由MCU通信服务装置、外部硬件通信接口链路(DevUART)、处理任务服务(Handler Task)、用户任务(App task),具体参见图4:
数据接收处理模块(IPC Rx Process),至少被配置为监控外部硬件通信接口链路接收到的数据,将数据存入数据接收缓冲区,根据预设协议对数据进行分帧、校验和解包,获取Payload数据并通知处理任务服务(Handler Task)进行解析处理;
处理任务服务进行解析处理具体包括:
Handler Task调用与虚拟通道标识相对应的回调函数对Payload数据进行解析并写入消息队列,通过消息队列传输给用户任务(APP task)。
回调函数与通道标识相对应,不同的数据类型有对应的回调函数;
参见图5,MCU通信服务装置中,对数据进行分帧、校验和解包具体包括:
步骤S301,从硬件链路接口中的接收缓存中读取一个字节的数据;
步骤S302,判断是否为0xAA,若是0xAA,则对校验读取的数据,若不是0xAA,则返回步骤S301;
步骤S303,从硬件链路接口中的接收缓存中读取2个字节数据,获取消息Payload的长度,校验读取的数据;
步骤S304,根据消息Payload长度读取硬件链路中接收到的缓存消息数据,校验读取的数据;
步骤S305,根据消息中的虚拟通道标识调用对应的回调函数进行解析。
本实施例中,MCU的数据帧的起始字节为固定值0xAA,当然也可以设计其它数值。
当从数据接收缓冲区中读取到此数据时,即认为读到了一帧数据的起始字节,接着读取数据长度和数据帧校验值,上述处理将会被周期性地调用执行。
具体地,本实施例中存在多个虚拟通道,每个通道都设置相应标识,不同数据类型只能通过与标识相对应的虚拟通道进行传输;
在后续的数据解析中,为了在系统底层进行解析,避免冗余数据,对来自不同虚拟通道的Payload数据,调用与虚拟通道标识相对应回调函数对Payload数据进行解析;
每种虚拟通道传送的数据都有相应的回调函数对数据进行解析;
本实施例中,MCU通信服务系统还包括数据发送功能;
具体地,MCU通信服务系统具备数据发送功能,数据发送功能由MCU通信服务装置、外部硬件通信接口链路(DevUART)、处理任务服务(Handler Task)、IPC handler(服务处理程序)、用户任务(App task),具体参见图6:
MCU通信服务装置中,数据发送处理模块,至少被配置为将数据发送缓冲区的数据按照预设的协议进行封包处理。
当需要发送数据时,用户任务(APPTasks)根据需求调用消息发送接口服务将数据通过消息队列传输消息的方式将数据传输到处理任务服务(HandlerTask)中进行处理;
处理任务服务(HandlerTask)调用服务处理程序(IpcHandler)将数据传输至数据发送缓冲区中进行封装后传输至外部硬件链路中与数据类型相对应的虚拟通道后进行发送给外部设备。
具体地,数据的封装在MCU通信服务装置(IPC Module)中进行;
其中,服务处理程序,负责预定义的服务与外部数据的交互;
处理任务服务,负责服务处理以及服务与任务之间的数据交互;
服务处理程序只允许与处理任务服务调用。
服务处理程序(IpcHandler)只允许处理任务服务(HandlerTask)进行调用,而不允许其他任务进行调用,对服务处理程序的限定其目的是统一通信接口,降低MCU程序软件的解耦性。因此,让数据只能在用户任务中进行通信,如声音task、视频task、按键控制信号task等可以进行相互通信,但是,这些task不能直接与服务处理程序进行通信,而是通过设置处理任务服务与这些任务通信,由处理任务服务与服务处理程序进行通信,在处理任务服务中调用服务处理程序将数据传送给MCU通信服务装置进行交互。
消息发送接口服务,被用于提供给用户任务通过指定的虚拟通道发送消息,并指定需要发送数据的通道、指向要发送数据存储区域的指针、发送数据的长度;
同时根据数据发送状态提供返回值。
具体地,数据发送处理流程包括:通道的发送功能是由通讯对端控制的,如果某个通道没有使能,说明对端不需要接收该通道数据,在MCU通信服务发送数据时,首先要检测数据传输的通道是否打开,如果通道已打开,将数据写入到外部硬件链路的发送数据缓冲区中,否则将把数据丢弃;
上述数据发送处理流程仅在上层用户程序发送数据时才被调用执行;
需要说明的是,外部硬件链路在本实施例中是指数据的发送和接口的接口,如可以为CAN接口、UART接口或车载以太网PHY接口。
在实际MCU与SoC的智能主机通信,在该场景下的某些上层应用中发现,上层应用在同一处理周期内可能发送多条相同ID的消息数据,对于这种数据来说,当有新的数据产生时,旧的数据已经失去了意义,不需要再通过MCU服务通道传输,否则不但占用传输链路,而且对通讯双方产生了无用的处理负荷。因此解决本实施例提供该智能主机架构下存在的这种技术问题,在MCU通信服务发送数据时添加了独特的数据去重更新处理,及时更新MCU数据发送缓冲区中的消息数据,减少数据发送处理的无用操作。
为了解决该问题,MCU通信服务装置设有发送数据更新处理模块,用于判断数据发送缓冲区中是否存在要发送的消息数据,如果存在,当满足更新条件,则使用新的消息数据覆盖,并更新发送缓冲区中的数据。
具体地,数据发送缓冲区的消息数据更新是有条件的,如果错误的更新错误,但是对端并未发现,则会产生行车安全事故。因此,需要确保消息数据更新是正确的,并且不能对已部分发送的旧数据产生影响;
为了数据发送缓冲区的数据更新条件进行判断,本实施例提供的一种方法:
定义多个记录或计算消息数据相关的变量,具体地包括:
定义第一变量u16ID用来记录当前MCU通信服务装置的消息的ID号;
定义变量u16StartAddr用来记录当前MCU通信服务的消息在数据发送缓冲区中的开始位置,该位置就是当前环形写指针所在的位置;
定义第二变量u16RingreadAddr用来记录当前时刻,环形读指针所在的位置;
定义变量u8ReadCnt用来记录环形读指针在数据发送缓冲区中循环的次数;
定义变量bReWriteFlag用来记录是否需要覆盖的标志。
根据定义的变量能够计算相应的参数指标。
具体地,如图7所示,假设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,计算环形读指针走过的距离并记为第二距离;
当第二距离小于第一距离时,则对数据发送缓冲区中的消息数据进行更新。
具体地,参见图8,当数据需要更新时,本实施例提供了发送数据更新具体处理方法包括::
更新发送缓冲区中的数据处理方法具体包括:
S401,获取消息开始地址,根据消息地址到数据发送缓冲区读取消息数据;
S402,判断消息数据Magic ID,若不存在,则打印更新出错消息,结束;若存在,获取Magic ID的参数;
S403,判断消息数据reversed,若不存在,则打印更新出错消息,结束;若存在,获取reversed的参数;
S404,判断消息数据中的length,若不存在,则打印更新出错消息,结束;若存在,获取length的参数;
S405,判断消息数据的channel,若不存在,则打印更新出错消息,结束;若存在,获取channel的参数;
S406,更新消息数据的最新值。
软件运行速率大于硬件,当软件运行速率过高,硬件的速率过低,导致硬件来不及处理该发送的消息。
时间管理服务是处理MCU通信服务内部有关定时器和计时器等信息的处理,如何时发送watchdog数据帧,怎样判断通信连接断开等,保证通讯服务内部时间计时周期的稳定性。
本实施例中,在MCU通信服务装置设有时间管理模块,时间管理服务在MCU软件系统中的运行设计,时间管理模块用于计算有关定时器或计算器等信息操作。
通过时间管理模块提供内部的时间参照,同时处理MCU通信服务中与时间计时相关的操作。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。本领域的技术人员可以清楚,该实施例中的形式不局限于此,同时可调整方式也不局限于此。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (10)
1.一种智能主机的MCU通信服务系统,其特征在于,至少包括:
外部硬件通信接口链路与MCU通信服务装置相连接;
多个虚拟通道映射到单一物理通信链路,外部硬件通信接口链路通过对应的虚拟通道与外部设备进行通信;
MCU通信服务装置,至少被配置为处理MCU内部与外部设备的数据通信。
2.如权利要求1所述的一种智能主机的MCU通信服务系统,其特征在于,MCU通信服务装置包括:
发送数据更新模块,至少被配置为判断数据发送缓冲区的数据是否存在要发送的消息数据,如果存在,当满足更新条件,则使用新的消息数据覆盖和更新数据发送缓冲区中的数据。
3.如权利要求1所述的一种智能主机的MCU通信服务系统,其特征在于,MCU通信服务装置包括:
数据接收处理模块,至少被配置为监控外部硬件通信接口链路接收到的数据,将数据存入数据接收缓冲区,根据预设协议对数据进行分帧、校验和解包,获取Payload数据并通知处理任务服务进行解析处理。
4.如权利要求1所述的一种智能主机的MCU通信服务系统,其特征在于,MCU通信服务装置包括:
数据发送处理模块,至少被配置为将数据发送缓冲区的数据按照预设的协议进行封包处理。
5.如权利要求1所述的一种智能主机的MCU通信服务系统,其特征在于,当需要发送数据时,用户任务根据需求调用消息发送接口服务将数据通过消息队列传输消息的方式传输到处理任务服务中进行处理;
处理任务服务调用服务处理程序将数据传输至MCU通信服务装置的数据发送缓冲区中并由数据发送处理模块进行封装后传输至外部硬件通信接口链路中相应的虚拟通道;
其中,服务处理程序,负责预定义的服务与外部数据的交互;
处理任务服务,负责服务处理以及服务与任务之间的数据交互;
服务处理程序只允许与处理任务服务调用。
6.如权利要求1所述的一种智能主机的MCU通信服务系统,其特征在于,
MCU通信服务装置包括:
同步分类模块,至少被配置为在接收或发送数据之前,对传输的数据进行分类,同一类别的通信数据通过同一个虚拟通道发送或接收;
通信双方需要同步两端的信息,两端的信息至少包括:通信协议架构的版本、允许匹配标识虚拟通道的数据,通信端需要根据接收到的对端的控制信息来打开或关闭自身通道的数据发送功能。
7.如权利要求1所述的一种智能主机的MCU通信服务系统,其特征在于,MCU通信服务装置包括:通信判断模块,被配置为通过watchdog数据帧的状态判断待通信的对端是否处于正常通信;
对端是否处于正常通信的判断方式包括:通讯双方需要按照指定的周期发送watchdog数据帧,倘若通讯过程中有一方检测到另外一方发送的watchdog数据帧周期不正常,则认为通讯异常,停止自身通讯数据的发送。
8.如权利要求3所述的一种智能主机的MCU通信服务系统,其特征在于,处理任务服务进行解析处理具体包括:
处理任务服务调用与虚拟通道标识相对应的回调函数对Payload数据进行解析并写入消息队列,通过消息队列传输给用户任务;
回调函数与通道标识相对应,不同的数据类型有对应的回调函数。
9.如权利要求5所述的一种智能主机的MCU通信服务系统,其特征在于,消息发送接口服务,被用于提供给用户任务通过指定的虚拟通道发送消息,并指定需要发送数据的通道、指向要发送数据存储区域的指针、发送数据的长度;同时根据数据发送状态提供返回值。
10.如权利要求3所述的一种智能主机的MCU通信服务系统,其特征在于,数据接收处理模块中,根据预设协议对数据进行分帧、校验和解包具体包括:
步骤S1,从硬件链路接口中的接收缓存中读取一个字节的数据;
步骤S2,判断是否为0xAA,若是0xAA,则校验读取的数据,若不是0xAA,则返回步骤S1;
步骤S3,从硬件链路接口中的接收缓存中读取2个字节数据,获取消息Payload的长度,并校验读取的数据;
步骤S4,根据消息Payload长度读取硬件链路中接收到的缓存消息数据,并校验读取的数据;
步骤S5,根据消息中的虚拟通道标识调用相应的回调函数对Payload进行解析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110537250.9A CN113973088B (zh) | 2021-05-18 | 2021-05-18 | 一种智能主机的mcu通信服务系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110537250.9A CN113973088B (zh) | 2021-05-18 | 2021-05-18 | 一种智能主机的mcu通信服务系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113973088A true CN113973088A (zh) | 2022-01-25 |
CN113973088B CN113973088B (zh) | 2024-07-19 |
Family
ID=79586306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110537250.9A Active CN113973088B (zh) | 2021-05-18 | 2021-05-18 | 一种智能主机的mcu通信服务系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113973088B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412478A (zh) * | 2022-08-30 | 2022-11-29 | 奥特酷智能科技(南京)有限公司 | 一种面向服务的汽车域控制器数据转发系统及方法 |
CN115987898A (zh) * | 2022-12-26 | 2023-04-18 | 北斗星通智联科技有限责任公司 | 汽车业务层通信方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070008884A1 (en) * | 2003-10-08 | 2007-01-11 | Bob Tang | Immediate ready implementation of virtually congestion free guarantedd service capable network |
CN101262439A (zh) * | 2008-04-21 | 2008-09-10 | 湖北融合通信技术有限公司 | 一种多业务路由器 |
CN101350908A (zh) * | 2008-08-28 | 2009-01-21 | 广东威创视讯科技股份有限公司 | 用于网络视频会议的视频数据传输系统及方法 |
CN103077153A (zh) * | 2013-02-01 | 2013-05-01 | 北京航空航天大学 | 基于授权拷贝的虚拟机域间通信通道系统 |
CN103210618A (zh) * | 2010-11-19 | 2013-07-17 | 思科技术公司 | 动态排队和绑定以提高虚拟环境中的上行链路上的服务质量 |
CN103714024A (zh) * | 2013-12-18 | 2014-04-09 | 国核自仪系统工程有限公司 | 一种基于SoC FPGA的多串口并行处理架构 |
CN110765059A (zh) * | 2019-09-29 | 2020-02-07 | 苏州浪潮智能科技有限公司 | 一种pcie数据优先级管理方法和装置 |
CN111800304A (zh) * | 2019-04-09 | 2020-10-20 | 安克创新科技股份有限公司 | 进程运行的监测方法、存储介质和虚拟装置 |
CN112235302A (zh) * | 2020-10-15 | 2021-01-15 | 天津津航计算技术研究所 | 一种适用于多种总线的协议解析方法 |
-
2021
- 2021-05-18 CN CN202110537250.9A patent/CN113973088B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070008884A1 (en) * | 2003-10-08 | 2007-01-11 | Bob Tang | Immediate ready implementation of virtually congestion free guarantedd service capable network |
CN101262439A (zh) * | 2008-04-21 | 2008-09-10 | 湖北融合通信技术有限公司 | 一种多业务路由器 |
CN101350908A (zh) * | 2008-08-28 | 2009-01-21 | 广东威创视讯科技股份有限公司 | 用于网络视频会议的视频数据传输系统及方法 |
CN103210618A (zh) * | 2010-11-19 | 2013-07-17 | 思科技术公司 | 动态排队和绑定以提高虚拟环境中的上行链路上的服务质量 |
CN103077153A (zh) * | 2013-02-01 | 2013-05-01 | 北京航空航天大学 | 基于授权拷贝的虚拟机域间通信通道系统 |
CN103714024A (zh) * | 2013-12-18 | 2014-04-09 | 国核自仪系统工程有限公司 | 一种基于SoC FPGA的多串口并行处理架构 |
CN111800304A (zh) * | 2019-04-09 | 2020-10-20 | 安克创新科技股份有限公司 | 进程运行的监测方法、存储介质和虚拟装置 |
CN110765059A (zh) * | 2019-09-29 | 2020-02-07 | 苏州浪潮智能科技有限公司 | 一种pcie数据优先级管理方法和装置 |
CN112235302A (zh) * | 2020-10-15 | 2021-01-15 | 天津津航计算技术研究所 | 一种适用于多种总线的协议解析方法 |
Non-Patent Citations (1)
Title |
---|
梁丽倩: "基于MCU和CAN控制器的SOC片上系统设计", 《中国优秀硕士学位论文全文数据库》, 15 January 2013 (2013-01-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412478A (zh) * | 2022-08-30 | 2022-11-29 | 奥特酷智能科技(南京)有限公司 | 一种面向服务的汽车域控制器数据转发系统及方法 |
CN115412478B (zh) * | 2022-08-30 | 2023-06-02 | 奥特酷智能科技(南京)有限公司 | 一种面向服务的汽车域控制器数据转发系统及方法 |
CN115987898A (zh) * | 2022-12-26 | 2023-04-18 | 北斗星通智联科技有限责任公司 | 汽车业务层通信方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113973088B (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7562661B2 (ja) | ソフトウェアアップグレード方法、装置、およびシステム | |
CN113973088A (zh) | 一种智能主机的mcu通信服务系统 | |
CN106878124A (zh) | 用于控制车辆内大容量诊断通信的方法和车辆控制器 | |
CN113422738B (zh) | 一种智能主机的mcu通信服务方法 | |
CN107920007B (zh) | 车辆网络中的多个通信节点的第一通信节点及其操作方法 | |
US20240020110A1 (en) | Terminal Upgrade Method and Apparatus | |
EP4191355A1 (en) | Uds-based communication method, ecu and upper computer | |
CN110928561B (zh) | 车辆控制器软件版本管理方法、装置、车辆和存储介质 | |
CN112003772A (zh) | 通信系统以及通信控制方法 | |
CN114879551A (zh) | 一种基于cpu硬隔离系统设计方法的智能座舱域控制器 | |
CN115032973B (zh) | 一种数据传输系统、方法、装置、设备及介质 | |
CN114860437A (zh) | 数据采集方法、边缘计算主机及计算机可读存储介质 | |
CN117135100B (zh) | 一种汽车车载光纤以太网信号传输的测试系统及方法 | |
CN113905461A (zh) | 一种集成网关的无线通讯模块 | |
CN116319402A (zh) | 一种车辆数据采集和监测方法、系统、设备和介质 | |
CN113341853B (zh) | 一种ip核、fpga芯片、交流伺服驱动器及通讯方法 | |
CN103257648B (zh) | 汽车标定系统 | |
CN114116554B (zh) | 一种基于fpga的雷达数据转发架构及转发方法 | |
CN113096269B (zh) | 一种信息采集方法、装置、电子设备以及存储介质 | |
CN116418615A (zh) | 车辆数据处理系统和方法、电子设备及可读存储介质 | |
CN103024087B (zh) | 同时支持大容量存储和以太网通信的系统及方法 | |
US7577560B2 (en) | Microcomputer logic development device | |
CN115291595B (zh) | 自主式多数据源的智能信息处理系统及电子设备 | |
WO2024000354A1 (zh) | 一种节点升级方法以及装置 | |
CN111694581B (zh) | 一种汽车降噪系统的软件升级方法及汽车降噪系统 |
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 |