CN112673586A - 数据包处理方法和装置 - Google Patents

数据包处理方法和装置 Download PDF

Info

Publication number
CN112673586A
CN112673586A CN202080004426.8A CN202080004426A CN112673586A CN 112673586 A CN112673586 A CN 112673586A CN 202080004426 A CN202080004426 A CN 202080004426A CN 112673586 A CN112673586 A CN 112673586A
Authority
CN
China
Prior art keywords
computer
signaling
upper computer
lower computer
data packet
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
Application number
CN202080004426.8A
Other languages
English (en)
Other versions
CN112673586B (zh
Inventor
覃大选
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112673586A publication Critical patent/CN112673586A/zh
Application granted granted Critical
Publication of CN112673586B publication Critical patent/CN112673586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms

Abstract

本申请实施例提供一种数据包处理方法和装置,涉及通信技术领域,包括:上位机向下位机发送目标数据包;上位机根据预设条件确定未接收到下位机的第一反馈信令;上位机向下位机发送继续信令;上位机接收下位机的第二反馈信令;上位机向下位机发送目标数据包。其中,第一反馈信令为下位机响应于上位机的数据包的反馈信令;第二反馈信令为下位机响应于上位机的信令的反馈信令;继续信令用于指示继续发送目标数据包。这样,在进行数据包传输过程中,如果通信异常造成数据传输中断,可以将未成功发送的数据包重新发送,不需要重新传输全部的数据,因此可以提高数据的传输效率。

Description

数据包处理方法和装置
技术领域
本申请涉及通信技术领域,尤其涉及一种数据包处理方法和装置。
背景技术
随着移动通信技术的不断发展,智能运输设备、智能家居设备、机器人等各类电子设备正在逐步进入人们的日常生活,为了满足用户对于电子设备使用的各种需求,各类电子设备的更新速度都在逐渐加快,针对于该电子设备的应用程序的下载和升级就尤为必要。例如,在汽车电子技术领域中,包括:智能网联汽车、自动驾驶汽车或新能源汽车等各类型的汽车,各类型的汽车中包含的电子控制单元(electronic control unit,ECU),比如车载电子设备、控制器及各类电控产品越来越复杂,相应的伴随着越来越高频率电控产品的应用程序的更新。在主机厂的生产线上,可以预先将引导加载程序(如bootloader)通过联合测试工作组(joint test action group,JTAG)接口烧写到汽车的ECU单板中。在针对于电控产品的应用程序进行更新时,上位机就可以通过串行接口与ECU单板中已烧写好的bootloader交互,完成应用程序的下载或更新。
通常情况下,需要利用上位机与ECU单板中各自配置的控制器局域网络(controller area network,CAN)接口,进行上位机与bootloader的数据交互,进而实现对ECU中的应用程序的下载或更新。
然而,上述下载或更新应用程序的过程中,在通信出现异常的情况下,传输效率较低。
发明内容
本申请实施例提供一种数据包处理方法和装置,在进行数据包传输过程中,如果通信异常造成数据传输中断,可以将未成功发送的数据包重新发送,不需要重新传输全部的数据,因此可以提高数据的传输效率。
第一方面,本申请实施例提供一种数据包处理方法,包括:上位机向下位机发送目标数据包;上位机根据预设条件确定未接收到下位机的第一反馈信令;第一反馈信令为下位机响应于上位机的数据包的反馈信令;上位机向下位机发送继续信令;继续信令用于指示继续发送目标数据包;上位机接收下位机的第二反馈信令;上位机向下位机发送目标数据包;第二反馈信令为下位机响应于上位机的信令的反馈信令。这样,在进行数据包传输过程中,如果通信异常造成数据传输中断,可以将未成功发送的数据包重新发送,不需要重新传输全部的数据,因此可以提高数据的传输效率。
在一种可能的实现方式中,上位机向下位机发送目标数据包之前,还包括:上位机向下位机发送开始信令;开始信令用于指示数据传输开始;上位机向下位机发送目标数据包,包括:上位机接收到下位机的第二反馈信令;上位机向下位机发送目标数据包。这样,利用开始信令可以更为便捷的控制开始数据包的传输过程。
在一种可能的实现方式中,还包括:上位机确定数据包发送完毕;上位机向下位机发送结束信令;结束信令用于指示数据传输结束。这样,利用结束信令可以更为便捷控制结束数据包的传输过程。
在一种可能的实现方式中,上位机向下位机发送目标数据包之前,还包括:上位机将待发送数据分为多个数据包,多个数据包包括目标数据包,每个数据包包括编号;编号用于下位机组合多个数据包。这样,可以多个数据包分包发送,在数据包较大的情况下更便于数据的传输。
在一种可能的实现方式中,上位机根据预设条件确定未接收到下位机的第一反馈信令包括:上位机确定在预设的时间阈值内未接收到下位机的第一反馈信令。这样,就能够通过一定的时间阈值,便捷的判断是否接收到下位机的第一反馈信令。
在一种可能的实现方式中,上位机向下位机发送继续信令之前,还包括:上位机为目标数据包设置未成功发送的标识;上位机向下位机发送目标数据包,包括:上位机根据未成功发送的标识向下位机发送目标数据包。这样,可以根据未成功发送的标识,更为便捷的获取该未成功发送的数据包。
第二方面,本申请实施例提供一种数据包处理方法,包括:下位机接收来自上位机的继续信令;继续信令用于指示继续发送目标数据包;下位机响应于继续信令向上位机发送第二反馈信令;第二反馈信令为下位机响应于上位机的信令的反馈信令;下位机接收来自上位机的目标数据包。这样,在进行数据包传输过程中,如果通信异常造成数据传输中断,可以将未成功发送的数据包重新发送,不需要重新传输全部的数据,因此可以提高数据的传输效率。
在一种可能的实现方式中,下位机接收来自上位机的继续信令之前,还包括:下位机接收来自上位机的开始信令;开始信令用于指示数据传输开始;下位机响应于开始信令,向上位机发送第二反馈信令。这样,就可以通过第二反馈信令,反馈下位机的接收状态,便于上位机的下一步操作。
在一种可能的实现方式中,下位机接收来自上位机的继续信令之前,还包括:下位机确定未接收到来自上位机的目标数据包;下位机为已接收的数据包设置成功接收的标识。这样,就可以根据该成功接收的标识,更为便捷的获取已接收的数据。
在一种可能的实现方式中,还包括:下位机接收来自上位机的结束信令;结束信令用于指示数据传输结束;下位机响应于结束信令,向上位机发送第二反馈信令。这样,就可以通过第二反馈信令,反馈下位机的接收状态,便于上位机的下一步操作。
在一种可能的实现方式中,下位机响应于结束信令,向上位机发送第二反馈信令之后,还包括:下位机组合已接收到的多个数据包,其中,多个数据包包括编号和成功接收的标识。这样,下位机就可以组合已接收到的多个数据包,获得准确且完整的传输数据。
第三方面,本申请实施例提供一种数据包处理装置,该数据包处理装置可以是上位机,也可以是上位机内的芯片或者芯片系统。该数据包处理装置可以包括处理单元和通信单元。当该数据包处理装置是上位机时,该处理单元可以是处理器,该通信单元可以是通信接口或接口电路。该数据包处理装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该上位机实现第一方面或第一方面的任意一种可能的实现方式中描述的一种数据包处理方法。当该数据包处理装置是上位机内的芯片或者芯片系统时,该处理单元可以是处理器,该通信单元可以是通信接口。例如通信接口可以为输入/输出接口、管脚或电路等。该处理单元执行存储单元所存储的指令,以使该上位机实现第一方面或第一方面的任意一种可能的实现方式中描述的一种数据包处理方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该上位机内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
示例性的,通信单元,用于向下位机发送目标数据包;处理单元,用于根据预设条件确定未接收到下位机的第一反馈信令;第一反馈信令为下位机响应于上位机的数据包的反馈信令;通信单元,还用于向下位机发送继续信令;继续信令用于指示继续发送目标数据包;通信单元,还用于接收下位机的第二反馈信令;第二反馈信令为下位机响应于上位机的信令的反馈信令;通信单元,还用于向下位机发送目标数据包。这样,在进行数据包传输过程中,如果通信异常造成数据传输中断,可以将未成功发送的数据包重新发送,不需要重新传输全部的数据,因此可以提高数据的传输效率。
在一种可能的实现方式中,通信单元,具体用于向下位机发送开始信令;开始信令用于指示数据传输开始;通信单元,还具体用于向下位机发送目标数据包,通信单元,还具体用于接收到下位机的第二反馈信令;向下位机发送目标数据包。
在一种可能的实现方式中,处理单元,还用于确定数据包发送完毕;通信单元,还用于向下位机发送结束信令;结束信令用于指示数据传输结束。
在一种可能的实现方式中,处理单元,还用于将待发送数据分为多个数据包,多个数据包包括目标数据包,每个数据包包括编号;编号用于下位机组合多个数据包。
在一种可能的实现方式中,处理单元,还具体用于确定在预设的时间阈值内未接收到下位机的第一反馈信令。
在一种可能的实现方式中,处理单元,还用于为目标数据包设置未成功发送的标识;通信单元,还用于向下位机发送目标数据包,通信单元,还具体用于根据未成功发送的标识向下位机发送目标数据包。
第四方面,本申请实施例提供一种数据包处理装置,该数据包处理装置可以是下位机,也可以是下位机内的芯片或者芯片系统。该数据包处理装置可以包括处理单元和通信单元。当该数据包处理装置是下位机时,该处理单元可以是处理器,该通信单元可以是通信接口或接口电路。该数据包处理装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该下位机实现第二方面或第二方面的任意一种可能的实现方式中描述的一种数据包处理方法。当该数据包处理装置是下位机内的芯片或者芯片系统时,该处理单元可以是处理器,该通信单元可以是通信接口。例如通信接口可以为输入/输出接口、管脚或电路等。该处理单元执行存储单元所存储的指令,以使该下位机实现第一方面或第一方面的任意一种可能的实现方式中描述的一种数据包处理方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该下位机内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
示例性的,通信单元,用于接收来自上位机的继续信令;继续信令用于指示继续发送目标数据包;通信单元,用于响应于继续信令向上位机发送第二反馈信令;第二反馈信令为下位机响应于上位机的信令或数据包的反馈信令;通信单元,还用于接收来自上位机的目标数据包。
在一种可能的实现方式中,通信单元,还用于接收来自上位机的开始信令;开始信令用于指示数据传输开始;下位机响应于开始信令,向上位机发送第二反馈信令。
在一种可能的实现方式中,处理单元,还用于确定未接收到来自上位机的目标数据包;下位机为已接收的数据包设置成功接收的标识。
在一种可能的实现方式中,通信单元,还用于接收来自上位机的结束信令;结束信令用于指示数据传输结束;下位机响应于结束信令,向上位机发送第二反馈信令。
在一种可能的实现方式中,处理单元,还用于组合已接收到的多个数据包,其中,多个数据包包括编号和成功接收的标识。
第五方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行如第一方面和第二方面的任意一种实现方式中描述的数据包处理方法。
第六方面,本申请实施例提供一种包括指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面和第二方面的任意一种实现方式中描述的数据包处理方法。
第七方面,本申请实施例提供一种数据包处理系统,该系统包括如下中任一个或多个:第三方面及第三方面的各种可能的实现方式中描述的数据包处理装置,第四方面及第四方面的各种可能的实现方式中描述的数据包处理装置。
第八方面,本申请实施例提供一种数据包处理装置,该装置包括处理器和存储介质,存储介质存储有指令,指令被处理器运行时,实现如第一方面和第二方面任意的实现方式描述的数据包处理方法。
第九方面,本申请提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以进行第一方面和第二方面任意的实现方式中任一项所描述的数据包处理方法。
其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
第十方面,本申请提供一种计算机程序产品,该计算机程序产品中存储有指令,当指令被一个或多个处理器运行时,实现前述任意方面或实现方式中的数据包处理方法。
应当理解的是,本申请的第三方面至第十方面与本申请的第一方面至第二方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的一种通过CAN接口下载应用程序的示意图;
图2为本申请实施例提供的一种数据包处理的场景示意图;
图3为本申请实施例提供的一种图2中的汽车201的功能框图;
图4为本申请实施例提供的一种图2中的计算机202的结构示意图;
图5为本申请实施例提供的一种数据包处理方法的流程示意图;
图6为本申请实施例提供的一种上位机与下位机交互传输数据的示意图;
图7为本申请实施例提供的一种上位机的数据包处理方法流程示意图;
图8为本申请实施例提供的一种下位机的数据包处理方法流程示意图;
图9为本申请实施例提供的一种上位机与下位机交互的应用程序下载示意图;
图10为本申请实施例提供的一种数据包处理装置的结构示意图;
图11为本申请实施例提供的一种数据包处理装置的硬件结构示意图;
图12为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一值和第二值仅仅是为了区分不同的值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
示例性的,图1为一种通过CAN接口下载应用程序的示意图。
如图1所示,引导加载程序101已经通过JTAG接口102预先烧写到ECU单板中。在将应用程序传输到ECU时,上位机就可以通过串行接口,如CAN接口103基于统一的诊断服务(unified diagnostic services,UDS)与ECU单板中的引导加载程序101交互,完成针对于ECU的应用程序的下载或更新。
在上述上位机通过CAN接口103基于UDS诊断协议与ECU中的引导加载程序101交互,将应用程序传输到ECU的过程中,当CAN接口103由于接触不良、网络异常等情况导致通信异常时,引导加载程序101则无法继续接收到上位机发来的该应用程序的部分数据包,此时需要等待通信恢复,上位机重新传输该应用程序对应的所有数据包。这种在通信异常时需要重传数据包的传输方法,导致数据的传输效率较低,进而影响针对于ECU的应用程序的下载或更新进度。
因此,本申请实施例提供了一种数据包处理方法和装置,上位机向下位机发送目标数据包;在上位机根据预设条件确定未接收到下位机的第一反馈信令的情况下,上位机向下位机发送继续信令;上位机接收下位机的第二反馈信令;上位机向下位机发送目标数据包。这种数据包的处理方法,考虑到了通信异常可能造成的数据传输中断的情况,可以将未成功发送的数据包重新发送,不需要重新传输全部的数据包,可以提高数据的传输效率。
为了更好的理解本申请实施例的方法,下面首先对本申请实施例适用的应用场景进行描述。
本申请实施例中提供的数据包处理方法可以应用于各类型汽车需要更新和下载应用程序的场景中。如智能网联汽车、自动驾驶汽车或新能源汽车等汽车的ECU内的软件(例如bootloader)与上位机中的上位机软件进行交互,下载或更新针对于ECU的应用程序的场景中。其中,下位机可以是汽车中的ECU;上位机可以是与下位机交互的计算机。
示例性的,图2示出了本申请实施例提供的一种数据包处理的场景示意图。
如图2所示,该场景中可以包括汽车201、计算机202和连接线203。其中汽车201包含ECU(或可以称为下位机)。示例性的,当汽车下载应用程序时,可以利用连接线203将该汽车201,和用于给汽车中的ECU下载应用程序的计算机202相连接,这样计算机202(或者称为上位机)中的上位机软件可以通过与汽车201中的下位机软件的交互,将该应用程序的安装数据包(或称安装包)传输到下位机中。当对汽车中的应用程序进行更新时,上位机与下位机交互的过程与上述下载过程相同,后续可以将该应用程序的更新数据包(或称更新包)传输到下位机中。
一种可能的实现方式中,本申请实施例提供的一种数据包处理方法也可以应用在利用空中下载技术(over the air technology,OTA)更新和下载应用程序的场景中。OTA是一种通过空中接口对数据及应用进行远程管理的技术。其中,空中接口可以采用无线应用协议(wireless application protocol,WAP)、通用分组无线业务(general packet radioservice,GPRS)、码分多址(code division multiple access,CDMA)、无线网(WiFi)及4G技术等其他技术。
示例性的,运营商可以将应用程序的安装包或更新包置于OTA服务器中。当汽车中的应用程序需要下载(或更新)时,汽车用户可以在车机屏幕或手机上搜索需要的应用程序的安装包(或更新包),并触发下载(或更新)该应用程序对应的按钮,OTA服务器中的该应用程序的安装包(或更新包)就可以利用本申请实施例提供的数据包处理方法,通过空中接口传输到汽车的下位机中,实现汽车中的该应用程序的下载(或更新)。
示例性的,该汽车也可以定期检查当前应用程序的版本状态,利用本申请实施例提供的数据包处理方法,通过空中接口将OTA服务器中的最新版本的应用程序的更新包自动下载到汽车中。实现汽车的相关应用程序的更新。利用OTA技术,能够节省时间、人工等方面的成本,更加灵活方便的满足市场和客户的需求。其中,上位机可以是OTA服务器。
可以理解的是,本申请实施例中提供的数据包处理方法也可以应用于下位机与上位机交互传输数据的其他场景中,本申请实施例中对数据包处理方法的具体应用场景不做限定。
示例性的,图3为图2中的汽车201的功能框图。其中,汽车201中包含电子控制单元312(或可以称为下位机)。
汽车201可包括各种子系统,例如行进系统302、传感器系统304、控制系统306、一个或多个外围设备308以及电源310、电子控制单元312和用户接口316。可选地,汽车201可包括更多或更少的子系统,并且每个子系统可包括多个元件。另外,汽车201的每个子系统和元件可以通过有线或者无线互连。
行进系统302可包括为汽车201提供动力运动的组件。在一个实施例中,行进系统302可包括引擎318、能量源319、传动装置320和车轮/轮胎321。引擎318可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎318将能量源319转换成机械能量。
传感器系统304可包括感测关于汽车201周边的环境的信息的若干个传感器。例如,传感器系统304可包括定位系统322(定位系统可以是全球定位系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertial measurement unit,IMU)324、雷达326、激光测距仪328以及相机330。传感器系统304还可包括被监视汽车201的内部系统的传感器(例如,车内空气质量监测器、燃油量表和机油温度表等)。控制系统306为控制汽车201及其组件的操作。控制系统306可包括各种元件,其中包括转向系统332、油门334、制动单元336、计算机视觉系统340、路线控制系统342以及障碍物避免系统344。
当然,在一个实例中,控制系统306可以增加或替换地包括除了所示出和描述的那些以外的组件。或者也可以减少一部分上述示出的组件。
汽车201通过外围设备308与外部传感器、其他汽车、其他计算机系统或用户之间进行交互。外围设备308可包括无线通信系统346、车载电脑348、麦克风350和/或扬声器352。
无线通信系统346可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统346可使用3G蜂窝通信,例如:CDMA、EVD0、全球移动通信系统(globalsystem for mobile communications,GSM)/通用分组无线服务(general packet radioservice,GPRS),或者4G蜂窝通信,例如LTE。或者5G蜂窝通信。无线通信系统346可利用无线保真(wireless-fidelity,WiFi)与无线局域网(wireless local area network,WLAN)通信。
电子控制单元(或称ECU)312中包含引导加载程序(例如bootloader)313。其中,bootloader313可以是用于完成下位机交互操作的软件。
在一些实施例中,ECU由中央处理器(central processing unit,CPU)、随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、输入/输出接口(input/output,I/O)、模数转换器(analog to digital converter,A/D)。ECU最早应用于发动机的控制,后来随着车辆电子化的发展,ECU逐渐用于实现包括防抱死制动系统(antilock brake system,ABS)、四轮驱动系统、电控自动变速器、主动悬架系统或安全气囊系统等的控制,并逐渐延伸到了车身各类安全、网络或娱乐等系统的控制。随着车辆电子化程度的提升,尤其是主动安全、自动驾驶等功能的增加,车辆的ECU数量不断增加。
示例性的,汽车中可以有多个ECU,每个ECU都有自己的bootloader程序,当对某个ECU进行更新时,上位机可以用串行接口或者空中接口(可用于OTA)与ECU中的bootloader进行通信,将应用程序安装包(或更新包)下载到ECU中用于安装(或更新)。上述安装(或更新)过程可以利用本实施例中提供的数据包处理方法来传输应用程序的安装包(更新包)。
示例性的,以控制汽车201中的车载电脑348的ECU为例,当需要对车载电脑348的应用程序进行下载或更新时,汽车201可以通过用户接口316与上位机建立通信连接,上位机可以将用于下载或更新车载电脑348的安装包或更新包传输到控制车载电脑的ECU中。
在一些实施例中,外围设备308提供汽车201的用户与用户接口316交互的手段。例如,车载电脑348可向汽车201的用户提供信息。用户接口316还可操作车载电脑348来接收用户的输入。车载电脑348可以通过触摸屏进行操作。在其他情况中,外围设备308可提供用于汽车201与位于车内的其它设备通信的手段。例如,麦克风350可从汽车201的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器352可向汽车201的用户输出音频。
电源310可向汽车201的各种组件提供电力。在一个实施例中,电源310可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为汽车201的各种组件提供电力。在一些实施例中,电源310和能量源319可一起实现,例如一些全电动车中那样。
在此处所描述的各个方面中,处理器可以位于远离该汽车并且与该汽车进行无线通信。在其它方面中,此处所描述的过程中的一些在布置于汽车内的处理器上执行而其它则由远程处理器执行,包括采取执行单一操纵的必要步骤。
用户接口316,用于向汽车201的用户提供信息或从其接收信息。可选地,用户接口316可包括在外围设备308的集合内的一个或多个输入/输出设备,例如无线通信系统346、车载电脑348、麦克风350和扬声器352。
可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图3不应理解为对本申请实施例的限制。
上述汽车201可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场汽车、施工设备、电车、高尔夫球车、火车、和手推车等,本申请实施例不做特别的限定。
示例性的,图4为图2中的计算机202的结构示意图。本申请实施例中,计算机202中包含与图3中的下位机交互的应用程序443。
如图4所示,计算机202包括处理器413,处理器413和系统总线405耦合。处理器413可以是一个或者多个处理器,其中每个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)407,显示适配器407可以驱动显示器409,显示器409和系统总线405耦合。系统总线405通过总线桥411和输入输出(I/O)总线耦合。I/O接口415和I/O总线耦合。I/O接口415和多种I/O设备进行通信,比如输入设备417(如:键盘,鼠标,触摸屏等),多媒体盘(media tray)421,(例如,CD-ROM,多媒体接口等)。收发器423(可以发送和/或接收无线电通信信号),摄像头455(可以捕捉静态和动态数字视频图像)和外部USB接口425。其中,可选地,和I/O接口415相连接的接口可以是通用串行总线(universal serial bus,USB)接口。
其中,处理器413可以是任何传统处理器,包括精简指令集计算(reducedinstruction set computing,RISC)处理器、复杂指令集计算(complex instruction setcomputer,CISC)处理器或上述的组合。可选地,处理器可以是诸如专用集成电路(application specific integrated citcuit,ASIC)的专用装置。可选地,处理器413可以是神经网络处理器或者是神经网络处理器和上述传统处理器的组合。
计算机202可以通过网络接口429和软件部署服务器449通信。网络接口429是硬件网络接口,比如,网卡。网络427可以是外部网络,比如因特网,也可以是内部网络,比如以太网或者虚拟私人网络(virtual private network,VPN)。可选地,网络427还可以是无线网络,比如WiFi网络,蜂窝网络等。
硬盘驱动接口431和系统总线405耦合。硬盘驱动接口431和硬盘驱动器433相连接。系统内存435和系统总线405耦合。运行在系统内存435的软件可以包括计算机202的操作系统(operating system,OS)437和应用程序443。
操作系统包括壳(shell)439和内核(kernel)441。shell 439是介于使用者和操作系统之内核间的一个接口。shell是操作系统最外面的一层。shell管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。
内核441由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。直接与硬件交互,操作系统的内核441通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理、IO管理等等。
应用程序443中可以包含汽车201中,针对于电控产品的应用程序的下载和更新所需要的应用程序。通过应用程序443与汽车201中的下位机的交互,可以将汽车201所需的应用程序从计算机202中传输到汽车201的下位机中。应用程序443也存在于软件部署服务器(deploying server)449的系统上。
传感器453和计算机系统关联。传感器453用于探测计算机202周围的环境。举例来说,传感器453可以探测动物,汽车,障碍物和人行横道等。
下面对本申请实施例中所描述的词汇进行说明。可以理解,该说明是为更加清楚的解释本申请实施例,并不必然构成对本申请实施例的限定。
本申请实施例所描述的上位机可以是,用于发送操作指令的计算机或单片机,可以为用户提供操作交互界面并向用户展示反馈数据。
本申请实施例所描述的上位机软件可以是,用于完成上位机交互操作的软件。
本申请实施例所描述的下位机可以是,根据指令执行相应的动作或读取相应的数据的电子设备,例如,指令可以是从上位机接收的。示例性的,下位机如本申请实施例所描述的ECU。
本申请实施例所描述的下位机软件可以是,用于完成下位机交互操作的软件。示例性的,下位机软件如本申请实施例所描述的bootloader。其中,bootloader可以是在系统运行之前执行的一段程序,通过该程序可以初始化硬件设备,建立内存空间的映射表,从而建立适当的系统软硬件环境。
本申请实施例所描述的ECU可以为,以单片机为核心的电子控制装置,具有强大数学运算与逻辑判断、数据管理和数据处理功能。ECU可以分为硬件和软件部分,硬件部分是构成ECU的物理元器件,软件部分是实现ECU控制功能的指令和数据系统。ECU对传感器传来的信号进行处理,利用控制指令控制相应的执行元件按指令动作。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以独立实现,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
示例性的,图5为本申请实施例提供的一种数据包处理方法的流程示意图,如图5所示,该方法包括:
S501、上位机向下位机发送目标数据包。
本申请实施例中,上位机与下位机建立通信连接,上位机可以向下位机传输用于下载或更新下位机中的应用程序的安装包(或更新包)。
示例性的,当上位机向下位机发送用于下载应用程序的安装包时,目标数据包可以为该安装包中的某个数据包;当上位机向下位机发送用于更新应用程序的更新包时,目标数据包可以为该更新包中的某个数据包。
S502、上位机根据预设条件确定未接收到下位机的第一反馈信令。
本申请实施例中,第一反馈信令为下位机响应于上位机的数据包的反馈信令。其中,该第一反馈信令也可能称为反馈信令等,第一反馈信令具体可以为:字符、字符串、数字或其他类型的信令。
示例性的,当第一反馈信令为字符时,可以用a或n等其他字符表示;当第一反馈信令为字符串时,可以用ack或acknowledge等其他字符串表示;当第一反馈信令为数字时,可以用1、1或111等其他数字表示。可以理解的是,第一反馈信令可以根据实际场景的不同包括其他内容,本申请实施例中对此不做限定。
示例性的,上位机根据预设条件判断未接收到下位机的第一反馈信令的一种可能实现为,当下位机发生串行接口异常或网络异常等情况导致不能回复第一反馈信令,或者下位机向上位机回复第一反馈信令的过程中上位机发生串行接口异常或网络异常等情况导致上位机不能成功接收第一反馈信令时,上位机可以判断未接收到下位机发送的第一反馈信令。
示例性的,上位机根据预设条件判断未接收到下位机的第一反馈信令的另一种可能实现为,上位机发送目标数据包,上位机在一定时间内没接收到下位机的第一反馈信令,上位机可以判断未接收到下位机发送的第一反馈信令。
S503、上位机向下位机发送继续信令。
本申请实施例中,继续信令用于指示继续发送目标数据包。其中,该继续信令可以为:字符、字符串、数字或其他类型的信令。
示例性的,当继续信令为字符时,可以用c或g等其他字符表示;当继续信令为字符串时,可以用continue或goon等其他字符串表示;当继续信令为数字时,可以用2、22或222等其他数字表示。可以理解的是,继续信令可以根据实际场景的不同包括其他内容,本申请实施例中对此不做限定。
示例性的,上位机可以判断串行接口通信或网络通信情况,若上位机判断串行接口通信或网络通信恢复,上位机可以向下位机发送继续信令。
示例性的,上位机向下位机发送继续信令的一种可能实现为,上位机在一定周期内循环向下位机发送继续信令,或者,通过人为操作控制上位机向下位机发送继续信令,或者,当上位机循环向下位机发送继续信令,且仍未发送成功时,可以人为暂停发送继续信令的过程,待通信恢复正常,再继续向下位机发送该继续信令。
S504、上位机接收下位机的第二反馈信令。
本申请实施例中,第二反馈信令为下位机响应于上位机的信令的反馈信令。
需要说明的是,第二反馈信令也可能称为反馈信令,本申请实施例描述的第一反馈信令和第二反馈信令是用于区分不同场景下反馈信令的作用,用于表示第一反馈信令的内容和用于表示第二反馈信令的内容可以相同也可以不同相同。例如,第一反馈信令和第二反馈信令均可以用ack或acknowledge等表示。第二反馈信令的具体形式可以参照第一反馈信令的描述,在此不再赘述。
下位机接收到上位机的继续信令,向上位机发送第二反馈信令,可以表示下位机同意接收到来自上位机的目标数据包,或者表示下位机为接收后续上位机的目标数据包做好准备。
S505、上位机向下位机发送目标数据包。
本申请实施例中,该目标数据包可以包括:由于串行接口异常或网络异常等情况未成功发送的数据包。
上位机可以向下位机发送该未成功发送的目标数据包。本申请实施例对上位机向下位机发送目标数据包采用的具体通信协议和通信路径等不作限定。
综上,本申请实施例中,在通信异常造成数据传输中断时,上位机可以将未成功发送的数据包重新发送,上位机不需要重新传输全部的数据包,可以提高数据的传输效率。
示例性的,图6示出了一种上位机与下位机交互传输数据的示意图。如图6所示,上位机与下位机交互传输数据可以包括以下步骤:
S601、上位机将待发送数据分为多个数据包。
本申请实施例中,多个数据包中包括上述实施例的目标数据包,目标数据包可以是多个数据包中的任意数据包。可能的实现方式中,每个数据包可以包括编号;编号用于下位机组合多个数据包。
示例性的,上位机与下位机通信连接,上位机可以将待发送数据分为多个数据包,并可以将分包处理的多个数据包编号为包1,包2,…,包n。一种可能的实现方式中,可以根据数据包的大小进行编号。可以理解的是,多个数据包的编号方法也可以根据实际场景包括其他内容,本申请实施例中对此不做限定。
S602、上位机向下位机发送开始信令。
本申请实施例中,开始信令用于指示数据传输开始,该开始信令可以为:字符、字符串、数字或其他类型的信令。
示例性的,当开始信令为字符时,可以用b或s等其他字符表示;当开始信令为字符串时,可以用begin或start等其他字符串表示;当开始信令为数字时,可以用0、00或000等其他数字表示。可以理解的是,开始信令可以根据实际场景的不同包括其他内容,本申请实施例中对此不做限定。
本申请实施例中,上位机向下位机发送开始信令,可以启动数据包传输的过程。
S603、下位机向上位机发送第二反馈信令。
本申请实施例中,下位机接收来自上位机的开始信令;下位机响应于开始信令向上位机发送第二反馈信令。
示例性的,上位机与下位机通信连接,下位机完成初始化硬件,等待上位机发送的开始信令。当下位机接收到上位机发送的开始信令时,下位机向上位机发送第二反馈信令。
S604、上位机向下位机发送目标数据包。
S605、下位机确定未接收到上位机的目标数据包。
示例性的,下位机判断未接收到上位机的目标数据包的一种可能实现为,当下位机发生串行接口异常或网络异常等情况导致未接收到目标数据包,或者上位机向下位机发送目标数据包的过程中上位机发生串行接口异常或网络异常等情况导致下位机未接收到目标数据包时,下位机可以判断未接收到上位机发送的目标数据包。
示例性的,下位机判断未接收到上位机的目标数据包的另一种可能实现为,下位机在一定时间内没接收到上位机的目标数据包,下位机可以判断未接收到上位机发送的目标数据包。
S606、下位机为已接收的数据包设置成功接收的标识。
本申请实施例中,下位机为已接收的数据包设置成功接收的标识的方法可以是为已接收的数据包设定如receive等表示成功接收的标签。可以理解的是,为已接收的数据包设置成功接收的标识的方法可以根据实际场景的不同包括其他内容,本申请实施例中对此不做限定。
S607、上位机确定在时间阈值内未接收到下位机的第一反馈信令。
本申请实施例中,该时间阈值可以根据实际应用场景设置,例如时间阈值可以设置为上位机接收下位机的第一反馈信令所消耗的最长时间相同或相近的值,或者其他值,本申请实施例对此不作具体限定。
示例性的,下位机发送第一反馈信令,上位机在时间阈值内未接收到下位机的第一反馈信令,上位机可以判断未接收到下位机发送的第一反馈信令。
S608、上位机为目标数据包设置未成功发送的标识。
示例性的,上位机为目标数据包设置未成功发送的标识的方式可以为,上位机为目标数据包设置如fail等表示未成功发送的标签,或者,上位机可以将目标数据包缓存到特定区域等其他方式。可以理解的是,为目标数据包设置未成功发送的标识的方法可以根据实际场景的不同包括其他内容,本申请实施例中对此不做限定。
S609、上位机向下位机发送继续信令。
S610、下位机向上位机发送第二反馈信令。
S611、上位机向下位机发送目标数据包。
本申请实施例中,上位机可以根据S608中为目标数据包设置的未成功发送的标识向下位机发送目标数据包。
示例性的,下位机可以根据上位机设定的fail等标签,或者,地址索引的方式等方式获取目标数据包,并向下位机发送该将目标数据包。
S612、下位机向上位机发送第一反馈信令。
本申请实施例中,下位机接收来自上位机的目标数据包,下位机响应于目标数据包向上位机发送第一反馈信令。
S613、上位机确定数据包发送完毕。
本申请实施例中,上位机可以重复执行如S604-S612的操作,直到将所有数据包发送完毕。
一种可能的实现方式中,上位机可以根据数据包的编号等方法确定数据包发送完毕,例如,待发送数据的多个数据包标号包括:包1-包n,上位机判断编号包1-包n的数据包全部成功发送到下位机,则上位机可以确定数据包发送完毕。
S614、上位机向下位机发送结束信令。
本申请实施例中,结束信令用于指示数据传输结束。其中,该结束信令可以为:字符、字符串、数字或其他类型的信令。
示例性的,当结束信令为字符时,可以用e或f等其他字符表示;当结束信令为字符串时,可以用end或finish等其他字符串表示;当结束信令为数字时,可以用3、33或333等其他数字表示。可以理解的是,结束信令可以根据实际场景的不同包括其他内容,本申请实施例中对此不做限定。
S615、下位机向上位机发送第二反馈信令。
本申请实施例中,下位机接收来自上位机的结束信令,下位机响应于结束信令向上位机发送第二反馈信令。
S616、下位机组合已经收到的多个数据包。
本申请实施例中,上位机可以采用任一种可能的方式组合该多个数据包,本申请实施例不做具体限定。
示例性的,多个数据包包括编号和成功接收的标识,下位机组合携带成功接收的标识的多个数据包的一种可能实现为,下位机可以根据数据包的编号组合已经收到的多个数据包。例如,上位机传输的数据包为包1、包2、包3和包4,下位机按照数据包的编号顺序组合包1、包2、包3和包4,得到完整数据。
可以理解的是,S601、S602、S603、S605、S606、S607、S608、S612、S613、S614、S615或S616是可选步骤,具体实现中,可以根据实际应用场景,选择适应的步骤。
需要说明的是,由于通信协议中的控制信令不具有通用性,例如:UDS诊断协议的控制信令只针对于CAN协议,使得通常的数据的传输过程受到不同通信协议的限制。而本申请实施例中通过反馈信令(包括第一反馈信令和第二反馈信令)、继续信令、开始信令和结束信令控制数据传输过程,只要能正确传输四种信令和数据包即可,因此在通信协议中具有通用性。
可以理解的是,上述是以上位机和下位机交互的过程进行说明的实施例,对应于上位机的执行步骤,示例性的,图7示出了本申请实施例提供的一种上位机的数据包处理方法流程示意图,在图7对应的实施例中,以反馈信令为“ack”,继续信令为“continue”,开始信令为“start”,结束信令为“end”,为例进行示例说明,该示例并不构成对本申请实施例的限定。
如图7所示,上位机的数据包处理步骤可以包括:
S701、数据传输开始。
示例性的,上位机与下位机建立通信连接,上位机可以将用于下载或更新的应用程序的安装包(或更新包)分为:包1,包2,…,包m,…,包n,当上位机发送数据包时,可以按照数据包的编号依次发送,也可以随机发送,本申请实施例中对此不作限定。
S702、上位机向下位机发送start。
S703、上位机判断是否收到下位机发送的ack。
示例性的,当上位机接收到下位机发送的ack时,则上位机可以执行S704所示的步骤;当上位机未收到下位机发送的ack时,则可以结束传输过程。
S704、上位机判断数据包是否发送完。
本申请实施例中,当上位机判断数据包已经发完时,上位机向下位机发送end,结束传输过程;当上位机判断未发送完所有数据包时,上位机可以执行S705所示的步骤。
S705、上位机向下位机发送下一包m。
S706、上位机判断是否收到下位机发送的ack。
本申请实施例中,当上位机在一定时间阈值内接收到ack时,上位机可以执行S704所示的步骤;当上位机在一定时间阈值内未接收到ack时,上位机可以执行S707所示的步骤。
S707、上位机为未成功发送的数据包设置标识。
示例性的,上位机为该包m设置未成功发送的标识。
S708、上位机等待发送continue。
本申请实施例中,当发生串行接口异常或网络异常时,上位机等待发送continue;当恢复串行接口通信或网络通信时,上位机向下位机发送continue;若通信无法恢复正常,则上位机一直处于等待发送continue的阶段。
S709、上位机判断是否收到下位机发送的ack。
本申请实施例中,当上位机收到下位机发送的ack时,上位机执行S705所示的步骤;当上位机未收到下位机发送的ack时,上位机执行S708所示的步骤。
本申请实施例的有益效果可以参照上述以上位机和下位机双侧通信实施例中的描述,在此不再赘述。
可以理解的是,上述是以上位机的执行步骤进行说明的实施例,对应于下位机的执行步骤,示例性的,图8示出了本申请实施例提供的一种下位机的数据包处理方法流程示意图。在图8对应的实施例中,以反馈信令(包括第一反馈信令和第二反馈信令)为“ack”,继续信令为“continue”,开始信令为“start”,结束信令为“end”,为例进行示例说明,该示例并不构成对本申请实施例的限定。
如图8所示,下位机的数据包处理步骤可以包括:
S801、数据传输开始。
本申请实施例中,上位机与下位机建立通信连接,下位机完成硬件初始化。
S802、下位机等待上位机发送的start。
S803、下位机判断是否收到上位机发送的start。
本申请实施例中,当下位机收到上位机发送的start时,则下位机可以执行S804所示的步骤;当下位机未收到上位机发送的start时,结束传输过程。
S804、下位机向上位机回复ack。
S805、下位机等待上位机发送的包m。
S806、下位机判断是否收到上位机发送的包m。
本申请实施例中,当下位机在一定时间阈值内收到上位机发送的包m,则下位机可以执行S807所示的步骤;当下位机在一定时间阈值内未收到上位机发送的包m,则下位机可以执行S811所示的步骤。
S807、下位机向上位机回复ack。
S808、下位机等待上位机发送的end。
S809、下位机判断是否收到上位机发送的end。
本申请实施例中,当下位机未收到上位机发送的end时,下位机执行S805所示的步骤;当下位机收到上位机发送的end时,下位机可以执行S810所示的步骤。
S810、下位机向上位机回复ack。
本申请实施例中,下位机向上位机回复ack,下位机根据数据包的编号和成功接收的标识组合已接收到的多个数据包,结束传输过程。其中,该多个数据包,包括包m。
S811、下位机为已接收的数据包设置成功接收的标识。
S812、下位机等待上位机发送的continue。
S813、下位机判断是否收到上位机发送的continue。
本申请实施例中,当下位机收到上位机发送的continue时,则下位机可以执行S814所示的步骤;当下位机未收到上位机发送的continue时,则下位机可以执行S812所示的步骤。
S814、下位机向上位机回复ack。
本申请实施例中,下位机向上位机回复ack,下位机执行S805所示的步骤。
本申请实施例的有益效果可以参照上述以上位机和下位机双侧通信实施例中的描述,在此不再赘述。
示例性的,图9示出了一种上位机与下位机交互的应用程序下载示意图。其中,未接收到表示下位机未接收到上位机发送的信令或数据包,或者上位机未收到下位机发送的信令。
如图9所示,上位机将待传输数据分成多个数据包,该多个数据包包括:包1,包2,…,包m,…,包n。
上位机向下位机发送开始信令,下位机接收到开始信令向上位机回复第二反馈信令。
上位机开始传输数据包,上位机向下位机发送包1,下位机接收到包1向上位机回复第二反馈信令。
上位机向下位机发送包2,当下位机发生串行接口异常或网络异常时,下位机未接收到上位机发送的包2。
当恢复串行接口通信或网络通信,上位机向下位机发送继续信令,下位机接收到继续信令向上位机回复第二反馈信令。
可以理解的是,若发送串行接口异常或网络异常等,导致数据包m或其他任意数据包未成功发送时,均可以执行上述如包2的发送过程,在此不再赘述。
上位机利用上述数据包传输方法传输多个数据包,上位机向下位机发送包n,下位机向上位机回复第一反馈信令。
上位机判断数据包发送完毕,上位机向下位机发送结束信令,下位机向上位机回复第二反馈信令,结束数据传输过程。
上面结合图5-图9,对本申请实施例的方法进行了说明,下面对本申请实施例提供的执行上述方法的数据包处理装置进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本申请实施例提供的一种数据包处理装置可以执行上述数据包处理方法中上位机所执行的步骤。另一种数据包处理装置可以执行上述实施例中的数据包处理方法中下位机所执行的步骤。
如图10所示,图10示出了本申请实施例提供的一种数据包处理装置的结构示意图,该数据包处理装置可以是本申请实施例中的上位机或下位机,也可以为应用于上位机或下位机的芯片。该数据包处理装置包括:处理单元101和通信单元102。其中,通信单元102用于支持数据包处理装置执行信息发送或接收的步骤,处理单元101用于支持数据包处理装置执行信息处理的步骤。
在一种可能的实施例中,数据包处理装置还可以包括:存储单元103。处理单元101、通信单元102、存储单元103通过通信总线相连。
存储单元103可以包括一个或者多个存储器,存储器可以是一个或者多个设备、电路中用于存储程序或者数据的器件。
存储单元103可以独立存在,通过通信总线与数据包处理装置具有的处理单元101相连。存储单元103也可以和处理单元集成在一起。
数据包处理装置可以用于通信设备、电路、硬件组件或者芯片中。
以数据包处理装置可以是本申请实施例中上位机或下位机的芯片或芯片系统为例,则通信单元102可以是输入或者输出接口、管脚或者电路等。示例性的,存储单元103可以存储上位机或下位机侧的方法的计算机执行指令,以使处理单元101执行上述实施例中上位机或下位机侧的方法。存储单元103可以是寄存器、缓存或者RAM等,存储单元103可以和处理单元101集成在一起。存储单元103可以是ROM或者可存储静态信息和指令的其他类型的静态存储设备,存储单元103可以与处理单元101相独立。
本申请实施例提供了一种数据包处理装置,该数据包处理装置包括一个或者多个模块,用于实现上述图5-图9中所包含的步骤中的方法,该一个或者多个模块可以与上述图5-图9中所包含的步骤中的方法的步骤相对应。
图11所示为本申请实施例提供的数据包处理装置的硬件结构示意图。本申请实施例中的上位机或下位机的硬件结构均可以参考如图11所示的数据包处理装置的硬件结构示意图。该数据包处理装置包括处理器111,通信线路114以及至少一个通信接口(图11中示例性的以通信接口113为例进行说明)。
处理器111可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路114可包括通路,在上述组件之间传送信息。
通信接口113,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线局域网(wireless local area networks,WLAN),RAN等。
可能的,该数据包处理装置还可以包括存储器112。
存储器112可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路114与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器112用于存储执行本申请方案的计算机执行指令,并由处理器111来控制执行。处理器111用于执行存储器112中存储的计算机执行指令,从而实现本申请实施例提供的数据包处理方法。
可能的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器111可以包括一个或多个CPU,例如图11中的CPU0和CPU1。
在具体实现中,作为一种实施例,数据包处理装置可以包括多个处理器,例如图11中的处理器111和处理器115。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
图12是本发明实施例提供的芯片120的结构示意图。芯片120包括一个或两个以上(包括两个)处理器1210和通信接口1230。
在一种可能的实施例中,如图12所示的芯片120还包括存储器1240,存储器1240可以包括只读存储器和随机存取存储器,并向处理器1210提供操作指令和数据。存储器1240的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。
在一些实施方式中,存储器1240存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,通过调用存储器1240存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
一种可能的实现方式中为:上位机或下位机所用的芯片的结构类似,不同的装置可以使用不同的芯片以实现各自的功能。
处理器1210控制上位机或下位机的操作,处理器1210还可以称为中央处理单元(central processing unit,CPU)。存储器1240可以包括只读存储器和随机存取存储器,并向处理器1210提供指令和数据。存储器1240的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。例如应用中存储器1240、通信接口1230以及存储器1240通过总线系统1220耦合在一起,其中总线系统1220除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图12中将各种总线都标为总线系统1220。
以上通信单元可以是一种该装置的接口电路或通信接口,用于从其它装置接收信号。例如,当该装置以芯片的方式实现时,该通信单元是该芯片用于从其它芯片或装置接收信号或发送信号的接口电路或通信接口。
上述本发明实施例揭示的方法可以应用于处理器1210中,或者由处理器1210实现。处理器1210可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1210中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1210可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1240,处理器1210读取存储器1240中的信息,结合其硬件完成上述方法的步骤。
一种可能的实现方式中,通信接口1230用于执行图5-图9所示的实施例中的上位机或下位机的接收和发送的步骤。处理器1210用于执行图5-图9所示的实施例中的上位机或下位机的处理的步骤。
在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digitalversatile disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请实施例还提供了一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
作为一种可能的设计,计算机可读介质可以包括RAM,ROM,EEPROM,CD-ROM或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,DVD,软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
本申请实施例还提供了一种计算机程序产品。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,可以全部或者部分得通过计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照上述方法实施例中描述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、基站、终端或者其它可编程装置。
本申请结合多个流程图详细描述了多个实施例,但应理解,这些流程图及其相应的实施例的相关描述仅为便于理解而示例,不应对本申请构成任何限定。各流程图中的每一个步骤并不一定是必须要执行的,例如有些步骤是可以跳过的。并且,各个步骤的执行顺序也不是固定不变的,也不限于图中所示,各个步骤的执行顺序应以其功能和内在逻辑确定。
本申请描述的多个实施例之间可以任意组合或步骤之间相互交叉执行,各个实施例的执行顺序和各个实施例的步骤之间的执行顺序均不是固定不变的,也不限于图中所示,各个实施例的执行顺序和各个实施例的各个步骤的交叉执行顺序应以其功能和内在逻辑确定。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。

Claims (15)

1.一种数据包处理方法,其特征在于,包括:
上位机向下位机发送目标数据包;
所述上位机根据预设条件确定未接收到所述下位机的第一反馈信令;所述第一反馈信令为所述下位机响应于所述上位机的数据包的反馈信令;
所述上位机向所述下位机发送继续信令;所述继续信令用于指示继续发送所述目标数据包;
所述上位机接收所述下位机的所述第二反馈信令;所述第二反馈信令为所述下位机响应于所述上位机的信令的反馈信令;
所述上位机向所述下位机发送所述目标数据包。
2.根据权利要求1所述的方法,其特征在于,所述上位机向下位机发送目标数据包之前,还包括:
所述上位机向所述下位机发送开始信令;所述开始信令用于指示数据传输开始;
所述上位机向下位机发送目标数据包,包括:所述上位机接收到所述下位机的所述第二反馈信令;所述上位机向所述下位机发送所述目标数据包。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
所述上位机确定数据包发送完毕;
所述上位机向所述下位机发送结束信令;所述结束信令用于指示数据传输结束。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述上位机向下位机发送目标数据包之前,还包括:
所述上位机将待发送数据分为多个数据包,所述多个数据包包括所述目标数据包,每个所述数据包包括编号;所述编号用于所述下位机组合所述多个数据包。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述上位机根据预设条件确定未接收到所述下位机的第一反馈信令包括:
所述上位机确定在预设的时间阈值内未接收到所述下位机的所述第一反馈信令。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述上位机向所述下位机发送继续信令之前,还包括:
所述上位机为所述目标数据包设置未成功发送的标识;
所述上位机向所述下位机发送所述目标数据包,包括:
所述上位机根据所述未成功发送的标识向所述下位机发送所述目标数据包。
7.一种数据包处理方法,其特征在于,包括:
下位机接收来自上位机的继续信令;所述继续信令用于指示继续发送目标数据包;
所述下位机响应于所述继续信令向所述上位机发送第二反馈信令;所述第二反馈信令为所述下位机响应于所述上位机的信令反馈信令;
所述下位机接收来自所述上位机的所述目标数据包。
8.根据权利要求7所述的方法,其特征在于,所述下位机接收来自上位机的继续信令之前,还包括:
所述下位机接收来自所述上位机的开始信令;所述开始信令用于指示数据传输开始;
所述下位机响应于所述开始信令,向所述上位机发送所述第二反馈信令。
9.根据权利要求7或8所述的方法,其特征在于,所述下位机接收来自上位机的继续信令之前,还包括:
所述下位机确定未接收到来自所述上位机的所述目标数据包;
所述下位机为已接收的数据包设置成功接收的标识。
10.根据权利要求7-9任一项所述的方法,其特征在于,还包括:
所述下位机接收来自所述上位机的结束信令;所述结束信令用于指示数据传输结束;
所述下位机响应于所述结束信令,向所述上位机发送所述第二反馈信令。
11.根据权利要求10所述的方法,其特征在于,所述下位机响应于所述结束信令,向所述上位机发送所述第二反馈信令之后,还包括:
所述下位机组合已接收到的多个数据包,其中,所述多个数据包包括编号和所述成功接收的标识。
12.一种数据包处理装置,其特征在于,包括:至少一个处理器,用于调用存储器中的程序,以执行权利要求1-6任一项所述的方法,或执行权利要求7-11任一项所述的方法。
13.一种数据包处理装置,其特征在于,包括:至少一个处理器和接口电路,所述接口电路用于为所述至少一个处理器提供信息输入和/或信息输出,所述至少一个处理器用于执行权利要求1-6任一项所述的方法,或执行权利要求7-11任一项所述的方法。
14.一种芯片,其特征在于,包括至少一个处理器和接口;
所述接口,用于为所述至少一个处理器提供程序指令或者数据;
所述至少一个处理器用于执行所述程序行指令,以实现如权利要求1-6中任一项所述的方法,或实现如权利要求7-11中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如权利要求1-6任一项所述的方法,或执行如权利要求7-11任一项所述的方法。
CN202080004426.8A 2020-12-08 2020-12-08 数据包处理方法和装置 Active CN112673586B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/134667 WO2022120599A1 (zh) 2020-12-08 2020-12-08 数据包处理方法和装置

Publications (2)

Publication Number Publication Date
CN112673586A true CN112673586A (zh) 2021-04-16
CN112673586B CN112673586B (zh) 2022-10-28

Family

ID=75413903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080004426.8A Active CN112673586B (zh) 2020-12-08 2020-12-08 数据包处理方法和装置

Country Status (3)

Country Link
EP (1) EP4246844A4 (zh)
CN (1) CN112673586B (zh)
WO (1) WO2022120599A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149583A (zh) * 2023-10-26 2023-12-01 中国证券登记结算有限责任公司 一种业务处理方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794691B (zh) * 2023-01-06 2023-06-20 极限人工智能有限公司 一种串口通信方法、下位机及串口通信系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060388A (zh) * 2006-04-19 2007-10-24 华为技术有限公司 数据混合自动重传方法及装置
CN102750241A (zh) * 2012-06-13 2012-10-24 中国科学院声学研究所 一种上位机和下位机之间的通信方法及系统
CN103019792A (zh) * 2012-12-21 2013-04-03 北京经纬恒润科技有限公司 一种应用程序的重编程方法及系统
CN105224362A (zh) * 2015-09-18 2016-01-06 深圳市新产业生物医学工程股份有限公司 上位机对下位机进行程序升级的方法及系统
CN105573958A (zh) * 2016-01-12 2016-05-11 西北工业大学 一种基于rs-422串行总线技术的数据可靠交互方法
CN108749764A (zh) * 2018-03-30 2018-11-06 北汽福田汽车股份有限公司 锁车控制方法、车载终端、发动机电子控制单元和车辆
CN112040443A (zh) * 2020-08-31 2020-12-04 经纬恒润(天津)研究开发有限公司 多客户端ota升级处理方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1097782A (en) * 1978-06-05 1981-03-17 John J. Den Otter Modular time division switching system
CA1249886A (en) * 1986-05-02 1989-02-07 Claude J. Champagne Method of duplex data transmission using a send-and- wait protocol
JP7005514B2 (ja) * 2016-06-17 2022-01-21 オッポ広東移動通信有限公司 データ伝送方法及び装置
CN106775904A (zh) * 2017-03-03 2017-05-31 北京电擎科技股份有限公司 一种微控制器嵌入式系统的程序烧写系统及方法
US10459776B2 (en) * 2017-06-05 2019-10-29 Advanced Micro Devices, Inc. Transmission of large messages in computer systems
CN109976767B (zh) * 2017-12-27 2023-06-09 深圳市优必选科技有限公司 软件烧录方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060388A (zh) * 2006-04-19 2007-10-24 华为技术有限公司 数据混合自动重传方法及装置
CN102750241A (zh) * 2012-06-13 2012-10-24 中国科学院声学研究所 一种上位机和下位机之间的通信方法及系统
CN103019792A (zh) * 2012-12-21 2013-04-03 北京经纬恒润科技有限公司 一种应用程序的重编程方法及系统
CN105224362A (zh) * 2015-09-18 2016-01-06 深圳市新产业生物医学工程股份有限公司 上位机对下位机进行程序升级的方法及系统
CN105573958A (zh) * 2016-01-12 2016-05-11 西北工业大学 一种基于rs-422串行总线技术的数据可靠交互方法
CN108749764A (zh) * 2018-03-30 2018-11-06 北汽福田汽车股份有限公司 锁车控制方法、车载终端、发动机电子控制单元和车辆
CN112040443A (zh) * 2020-08-31 2020-12-04 经纬恒润(天津)研究开发有限公司 多客户端ota升级处理方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149583A (zh) * 2023-10-26 2023-12-01 中国证券登记结算有限责任公司 一种业务处理方法及装置

Also Published As

Publication number Publication date
EP4246844A4 (en) 2024-01-03
EP4246844A1 (en) 2023-09-20
WO2022120599A1 (zh) 2022-06-16
CN112673586B (zh) 2022-10-28

Similar Documents

Publication Publication Date Title
CN112673586B (zh) 数据包处理方法和装置
US11347219B2 (en) Trailer for autonomous delivery
WO2021102955A1 (zh) 车辆的路径规划方法以及车辆的路径规划装置
US10442432B2 (en) Lead vehicle monitoring for adaptive cruise control
CN209842367U (zh) 一种基于自动驾驶系统的网络架构的集散式域控制器系统
CN112817617A (zh) 软件升级方法、装置和系统
US11815979B2 (en) Application priority based power management for a computer device
US20230421571A1 (en) Method for obtaining file based on over-the-air ota technology and related device
US11670120B2 (en) System and method for monitoring test data for autonomous operation of self-driving vehicles
CN112738171A (zh) 车辆的控制方法、装置、系统、设备及存储介质
US11740889B2 (en) Software update apparatus, software update method, non-transitory storage medium storing program, vehicle, and OTA master
CN113183955B (zh) 车辆控制装置、车辆、车辆控制方法以及存储介质
US20200034140A1 (en) Relay apparatus, transfer method, and computer program
US10379197B2 (en) Dongles for controlling vehicle drive assist systems
CN112913190A (zh) 基于空中下载技术ota的升级方法及装置
US11341789B2 (en) Remote/offline processing of vehicle data
CN114200873B (zh) 基于soa架构的模块化车载智能控制软件系统及控制方法
CN113614749B (zh) 人工智能模型的处理方法、装置、设备及可读存储介质
WO2022268127A1 (zh) 一种ota升级方法、装置及计算机可读存储介质
CN114691346A (zh) 一种算力资源的配置方法及设备
CN115291907A (zh) 车辆升级方法、装置及系统
CN114880658A (zh) 一种车辆中数据的处理方法以及相关设备
CN114327842A (zh) 多任务部署的方法及装置
JP2020188407A (ja) 電子制御装置および移動体制御システム
US20210105321A1 (en) Vehicle software check

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