发布信息

用户域与设备的通信方法、装置以及汽车与流程 专利技术说明

作者:admin      2022-11-26 09:15:20     801



电子通信装置的制造及其应用技术1.本技术涉及车辆技术领域::,特别涉及一种用户域与设备的通信方法、装置以及汽车。背景技术:::2.随着车辆搭载的硬件性能的不断提高,硬件性能已经出现冗余,在此条件下,虚拟化技术开始广泛使用在车载系统上。目前车载虚拟化系统中,qnx(quickunix,一种商用的类unix实时操作系统)为主要选择,但考虑到其高昂的使用成本,故在非安全领域开始尝试其他开源虚拟化技术的使用。3.xen虚拟化技术(xenhypervisor,虚拟监视器)作为一种type1(类型1)虚拟化技术,开源且兼容性强作为其主要特点,但在实际使用过程中发现:在没有smmu(systemmemorymanagementunit,系统内存管理单元)的硬件设备中,无法对像usb(universalserialbus,通用串行总线)摄像头这样的外接设备进行硬件直通或者在用户域中无法使用该外接设备。技术实现要素:4.本技术实施例提供了一种用户域与设备的通信方法、装置以及汽车,可以在没有smmu的情况下使得虚拟化平台的用户域使用外接设备,技术方案如下。5.一方面,提供了一种用户域与设备的通信方法,由运行虚拟化平台的车载终端执行,所述方法包括:响应于监测到外接设备的第一设备节点,所述虚拟化平台的用户域通过前端驱动向共享存储系统写入信道建立请求,所述信道建立请求用于请求与所述虚拟化平台的后端驱动进行通信,所述后端驱动运行在所述虚拟化平台的特权域上,所述后端驱动能够与所述外接设备进行通信;在所述特权域上的所述后端驱动监测到所述共享存储系统中的所述信道建立请求的情况下,基于所述信道建立请求建立共享通信信道,所述后端驱动与所述前端驱动通过所述共享通信信道进行通信;所述用户域通过所述共享通信信道与所述外接设备进行通信。6.在一种可能的实施方式中,响应于所述特权域的所述后端驱动监测到控制信息,将所述控制信息转发给所述外接设备包括:响应于所述特权域的所述后端驱动监测到所述控制信息,将所述控制信息转发给所述外接设备的真实驱动,由所述真实驱动将所述控制信息转发至所述外接设备,所述真实驱动为所述外接设备的软件接口。7.在一种可能的实施方式中,响应于监测到外接设备的第一设备节点,所述虚拟化平台的用户域通过前端驱动向共享存储系统写入信道建立请求之前,所述方法还包括:在所述外接设备启动的情况下,所述特权域创建所述外接设备的所述第一设备节点,所述第一设备节点供所述用户域的所述前端驱动使用;在所述第一设备节点创建完成的情况下,所述特权域启动所述用户域。8.在一种可能的实施方式中,所述外接设备为usb摄像头。9.一方面,提供了一种用户域与设备的通信装置,所述装置包括:信道建立请求写入模块,用于响应于监测到外接设备的第一设备节点,虚拟化平台的用户域通过前端驱动向共享存储系统写入信道建立请求,所述信道建立请求用于请求与所述虚拟化平台的后端驱动进行通信,所述后端驱动运行在所述虚拟化平台的特权域上,所述后端驱动能够与所述外接设备进行通信;共享通信信道建立模块,用于在所述特权域上的所述后端驱动监测到所述共享存储系统中的所述信道建立请求的情况下,基于所述信道建立请求建立共享通信信道,所述后端驱动与所述前端驱动通过所述共享通信信道进行通信;通信模块,用于所述用户域通过所述共享通信信道与所述外接设备进行通信。10.在一种可能的实施方式中,所述信道建立请求写入模块,用于响应于监测到外接设备的第一设备节点,所述用户域确定与该第一设备节点匹配的所述前端驱动;所述用户域通过所述前端驱动向所述共享存储系统写入信道建立请求。11.在一种可能的实施方式中,所述信道建立请求写入模块,用于所述用户域通过所述前端驱动向所述共享存储系统写入初始化状态;所述用户域通过所述前端驱动接收等待状态,基于所述等待状态向所述共享存储系统写入信道建立请求,所述等待状态是所述特权域上的所述后端驱动监测到所述共享存储系统中的所述初始化状态的情况下,向所述共享存储系统写入的。12.在一种可能的实施方式中,所述信道建立请求写入模块,用于响应于所述用户域的所述前端驱动监测到所述等待状态,所述用户域通过所述前端驱动在所述共享存储系统中创建共享内存;在所述共享内存创建完毕的情况下,所述用户域通过所述前端驱动向所述共享内存中写入所述信道建立请求,所述信道建立请求用于表示所述用户域完成了初始化,所述信道建立请求携带所述共享内存的地址。13.在一种可能的实施方式中,所述信道建立请求写入模块,用于所述用户域通过所述前端驱动,采用环形数据结构在所述共享存储系统中创建所述共享内存。14.在一种可能的实施方式中,所述信道建立请求写入模块,用于所述用户域通过所述前端驱动,利用授权表机制导出所述共享内存的内存页;所述用户域通过所述前端驱动,基于所述共享内存的内存页生成授权索引;所述用户域通过所述前端驱动,基于所述授权索引向所述共享内存中写入所述信道建立请求。15.在一种可能的实施方式中,所述信道建立请求携带所述用户域通过所述前端驱动在所述共享存储系统创建的共享内存的地址,所述共享通信信道建立模块,用于在所述特权域上的所述后端驱动监测到所述共享存储系统中的所述信道建立请求的情况下,所述特权域通过所述后端驱动将所述共享内存的地址写入处理器域,向所述共享内存写入连接状态;所述特权域通过所述后端驱动,基于所述外接设备的第二设备节点建立与所述前端驱动之间的所述共享通信信道,所述第二设备节点是所述用户域的前端驱动监测到所述连接状态后创建的。16.在一种可能的实施方式中,所述通信模块,用于所述用户域的所述前端驱动向所述共享通信信道发送控制信息;响应于所述特权域的所述后端驱动监测到所述控制信息,将所述控制信息转发给所述外接设备,以实现所述用户域与所述外接设备之间的通信。17.在一种可能的实施方式中,所述通信模块,用于响应于所述特权域的所述后端驱动监测到所述控制信息,将所述控制信息转发给所述外接设备的真实驱动,由所述真实驱动将所述控制信息转发至所述外接设备,所述真实驱动为所述外接设备的软件接口。18.在一种可能的实施方式中,所述装置还包括:启动模块,用于在所述外接设备启动的情况下,所述特权域创建所述外接设备的所述第一设备节点,所述第一设备节点供所述用户域的所述前端驱动使用;在所述第一设备节点创建完成的情况下,所述特权域启动所述用户域。19.在一种可能的实施方式中,所述外接设备为usb摄像头。20.一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条计算机程序,所述计算机程序由所述一个或多个处理器加载并执行以实现所述用户域与设备的通信方法。21.一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现所述用户域与设备的通信方法。22.一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述用户域与设备的通信方法。23.通过本技术实施例提供的技术方案,用户域能够通过前端驱动向共享存储系统写入信道建立请求。特权域的后端驱动监测到该信道建立请求,基于该信道建立请求建立共享通信信道,通过该共享通信信道能够实现用户域的前端驱动与特权域的后端驱动之间的通信。由于特权域上运行的后端驱动能够与外接设备进行通信,那么通过该共享通信信道也就能够实现用户域与外接设备之间的通信,从而在没有smmu的硬件设备中实现用户域对外接设备的使用。附图说明24.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。25.图1是本技术实施例提供的一种用户域与设备的通信方法的实施环境的示意图;图2是本技术实施例提供的一种用户域与设备的通信方法流程图;图3是本技术实施例提供的另一种用户域与设备的通信方法流程图;图4是本技术实施例提供的又一种用户域与设备的通信方法流程图;图5是本技术实施例提供的一种用户域与设备的通信方法的架构图;图6是本技术实施例提供的一种用户域与设备的通信装置的结构示意图;图7是本技术实施例提供的一种车载终端的结构示意图。具体实施方式26.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式做进一步的详细描述。27.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。28.xen:xen是一个开源的可直接运行于硬件层之上的虚拟化软件,它属于type-i型虚拟化系统,支持万贯虚拟化和超虚拟化,以高性能、占用资源少著称。xen仅对cpu和memory直接接管,而其他io硬件驱动则由其上运行的第一个虚拟机(特权域)来提供支持,它能够在计算机硬件上并发的运行多个客户操作系统(guestos)。29.xenstore:xenstore是xen提供的一个域间共享的存储系统,它以字符串形式存放了管理程序和前、后端驱动程序的配置信息。dom0管理所有的数据,而domu通过共享内存,向dom0请求与自己相关的键值,以此实现域间通信。xen提供了多种接口用来操作xenstore:命令行的xenstore-*命令、用户空间的xs_系列函数、内核的xenbus接口,都可以用来方便地操作xenstore的数据。30.smmu:smmu处于io设备和总线之间,负责将设备的输入iova转化为系统总线的物理地址pa;smmu硬件包含configurationlookup(配置查找)/tlb(translationlookasidebuffer,转换检测缓冲区)/pagetablewalk(页面表格漫游,ptw)以及cmdq(commandqueuing,命令队列)/eventq(事件队列,eventqueue)等部分,其中configurationlookup部分查找streamid(流标识)所对应的配置(ste(streamtableentry,流表条目)/cd(contextdescriptor,上下文描述符)),最终指向pagetable基地址等;smmu通过configurationlookup找到设备的配置及页表基地址等,然后查询tlb中是否存在输入地址input的映射,如果tlb命中,直接返回输出pa(physicaladdress,物理地址);若tlb没有命中,ptw模块逐级查询页表,找到页表中的映射,输出pa;软件/smmu驱动通过cmdq/eventq进行交互,驱动通过cmdq发送命令给smmu硬件(如tlbi/sync等);smmu硬件通过eventq通知驱动有事件需要处理(如设备缺页等)软件/驱动建立和维护内存中的配置和页表。31.v4l2:v4l2是专门为linux设备设计的一套视频框架,其主体框架在linux内核,可以理解为是整个linux系统上面的视频源捕获驱动框架。相机驱动层位于halmoudle(硬件抽象层)与硬件层之间,借助linux内核驱动框架,以文件节点的方式暴露接口给用户空间,让halmodule通过标准的文件访问接口,从而能够将请求顺利下发到内核中。按照v4l2标准,他将一个数据流设备抽象成一个videox(视频x)节点,从属的子设备都对应着各自的v4l2_subdev(子设备)实现,并且通过mediacontroller(媒体管理器)进行统一管理,整个流程复杂但高效。32.设备节点:设备节点也是一种特殊文件,称为设备文件,是连接内核空间驱动程序和用户空间应用程序的桥梁。应用程序若想使用驱动程序提供的服务or操作设备,则需要通过访问该设备文件来完成。33.cpu(centralprocessingunit,cpu)域地址空间:指cpu的核心能直接访问到的地址空间集合。34.图1是本技术实施例提供的一种用户域与设备的通信方法的实施环境示意图,参见图1,该实施环境中可以包括车载终端110和服务器140。35.车载终端110通过无线网络或有线网络与服务器140相连。车载终端110安装和运行有xen虚拟化平台。36.服务器140是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、分发网络(contentdeliverynetwork,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。37.在介绍完本技术实施例的实施环境之后,下面对本技术实施例的应用场景进行介绍,本技术实施例提供的技术方案能够应用各类运行xen虚拟化平台的车载终端中,xen虚拟化平台包括特权域(domain0或者dom0)或者叫特权虚拟机,以及用户域(domainu或者domu)或者叫其他虚拟机,在车载终端不存在smmu的情况下,用户域无法直接使用外接设备,比如,在车载终端上连接有usb摄像头的情况下,该用户域无法直接使用。采用本技术实施例提供的技术方案,用户域能够通过前端驱动向共享存储系统写入信道建立请求。特权域的后端驱动监测到该信道建立请求,基于该信道建立请求建立共享通信信道,通过该共享通信信道能够实现用户域的前端驱动与特权域的后端驱动之间的通信。由于后端驱动能够与外接设备进行通信,那么通过该共享通信信道也就能够实现用户域与外接设备之间的通信,比如,在该外接设备为外接摄像头的情况下,用户域能够获取该摄像头采集的图像。38.在介绍完本技术实施例的实施环境和应用场景之后,下面对本技术实施例提供的技术方案进行说明,参见图2,以执行主体为运行虚拟化平台的车载终端为例,方法包括下述步骤。39.s201、响应于监测到外接设备的第一设备节点,该虚拟化平台的用户域通过前端驱动向共享存储系统写入信道建立请求,该信道建立请求用于请求与该虚拟化平台的后端驱动进行通信,该后端驱动运行在该虚拟化平台的特权域上,该后端驱动能够与该外接设备进行通信。40.其中,外接设备包括能够与车载终端连接的各类设备,比如包括外接摄像头、外接麦克风以及外接鼠标等,通过在车载终端上连接外接设备,能够扩展车载终端的功能,从而为用户提供更好的体验。第一设备节点供xen的用户域使用,前端驱动运行在用户域上,后端驱动运行在特权域上,用户域和特权域通过该前端驱动和后端驱动能够实现域间的设备数据交互,相应地,信道建立请求也即是用于请求建立该前端驱动与该后端驱动之间进行通信的信道的。由于后端驱动能够与外接设备进行通信,那么通过前端驱动与后端驱动之间的信道也就能够实现用户域与外接设备之间的数据交互。在一些实施例中,该虚拟化平台为xen虚拟化平台,相应地,用户域(domu)也被称为用户虚拟机,特权域(dom0)也被称为特权虚拟机。41.s202、在该特权域上的该后端驱动监测到该共享存储系统中的该信道建立请求的情况下,基于该信道建立请求建立共享通信信道,该后端驱动与该前端驱动通过该共享通信信道进行通信。42.其中,该共享通信信道也即是该前端驱动和该后端驱动之间进行通信的信道,通过该共享通信信道能够实现用户域与外接设备之间的数据交互,该共享通信信道的建立实现了跨域通信。在虚拟化平台为xen虚拟化平台的情况下,共享存储系统为xen提供的共享存储系统,共享指的是域间共享,特权域和用户域能够通过该共享存储系统实现域间数据交互。43.s203、该用户域通过该共享通信信道与该外接设备进行通信。44.其中,用户域通过与该外接设备进行通信,能够实现用户域对该外接设备的使用,比如,在该外接设备为外接摄像头的情况下,该用户域也能够使用该外接摄像头,从而获取该外接摄像头采集的图像。45.通过本技术实施例提供的技术方案,用户域能够通过前端驱动向共享存储系统写入信道建立请求。特权域的后端驱动监测到该信道建立请求,基于该信道建立请求建立共享通信信道,通过该共享通信信道能够实现用户域的前端驱动与特权域的后端驱动之间的通信。由于特权域上运行的后端驱动能够与外接设备进行通信,那么通过该共享通信信道也就能够实现用户域与外接设备之间的通信,从而在没有smmu的硬件设备中实现用户域对外接设备的使用。46.上述步骤s201-s203是对本技术实施例提供的技术方案的简单介绍,下面将结合一些例子对本技术实施例提供的技术方案进行更加清楚地说明,参见图3,以执行主体为运行虚拟化平台的车载终端为例,方法包括下述步骤。47.s301、在外接设备启动的情况下,虚拟化平台的特权域创建该外接设备的该第一设备节点,该第一设备节点供虚拟化平台的用户域的前端驱动使用。48.其中,外接设备包括能够与车载终端连接的各类设备,比如包括外接摄像头、外接麦克风以及外接鼠标等,通过在车载终端上连接外接设备,能够扩展车载终端的功能,从而为用户提供更好的体验。在一些实施例中,该虚拟化平台为xen虚拟化平台,特权域(dom0)也被称为特权虚拟机,特权域是第一个运行的虚拟机,特权域为除cpu和memory之外的其他硬件驱动提供支持。用户域(domu)也被称为用户虚拟机,是xen中除特权域之外的域。xen中的域是在硬件和操作系统(guestos)之间的层级,可以说操作系统运行在域之上。第一设备节点是一种设备文件,也被称为第一设备文件,该第一设备文件是由特权域在该外接设备启动的情况下生成的。该第一设备节点携带该外接设备的设备标识、驱动程序、设备类型、生产厂商以及生产时间等。前端驱动也被称为前端设备的驱动程序,是在xen的设备分离驱动模式下提供的驱动程序,前端设备可以视作外接设备的“替身”,用户域的操作系统将发送给外接设备的数据发送给该前端设备即可,后续由该前端设备将数据传达至外接设备。49.在一种可能的实施方式中,在监测到该外接设备启动的情况下,该特权域上的操作系统(dom0guest)创建该外接设备的第一设备节点,也即是,该特权域上的操作系统生成该外接设备的第一设备文件,该第一设备节点用于表示该外接设备启动,该第一设备节点供该用户域的操作系统(domuguest)通过前端驱动使用。50.在这种实施方式下,在该外接设备启动的情况下,特权域上的操作系统能够创建该外接设备的第一设备节点,该第一设备节点能够用于提醒用户域上的操作系统该外接设备已经启动,从而执行后续的步骤以使用该外接设备。51.举例来说,在监测到该外接设备启动的情况下,该特权域上的操作系统(dom0guest)在设备树中创建该外接设备的第一设备节点,也即是在设备树文件中生成第一设备文件,其中,该设备树包括多个设备节点,该设备树能够反映设备之间的关系。52.s302、在该第一设备节点创建完成的情况下,该特权域启动虚拟化平台的用户域。53.其中,该用户域的数量为一个或者多个,本技术实施例对此不作限定,在下述说明过程中,以该用户域的数量为一个为例进行说明。54.在一种可能的实施方式中,在该第一设备节点创建完成的情况下,该特权域启动虚拟化平台的用户域,并在该用户域上启动操作系统,该操作系统用于调用该用户域的硬件资源来实现相应的功能。55.举例来说,在该虚拟化平台为xen虚拟化平台的情况下,在该第一设备节点创建完成的情况下,该特权域使用xen提供的xl工具启动该用户域。在该用户域启动的情况下,启动该用户域的操作系统。56.在这种实施方式下,用户域无需与特权域同时启动,用户域是在第一设备节点创建完毕之后才启动的,这样能够节省运算资源。57.其中,xl工具是一个基于libxenlight库的一个轻量级vm管理工具,用于创建和启动用户域(虚拟机)。58.s303、响应于监测到外接设备的第一设备节点,该虚拟化平台的用户域通过前端驱动向共享存储系统写入信道建立请求,该信道建立请求用于请求与该虚拟化平台的后端驱动进行通信,该后端驱动运行在该虚拟化平台的特权域上,该后端驱动能够与该外接设备进行通信。59.其中,前端驱动运行在用户域上,后端驱动运行在特权域上,用户域和特权域通过该前端驱动和后端驱动能够实现域间的设备数据交互,相应地,信道建立请求也即是用于请求建立该前端驱动与该后端驱动之间进行通信的信道的。由于后端驱动能够与外接设备进行通信,那么通过前端驱动与后端驱动之间的信道也就能够实现用户域与外接设备之间的数据交互。在该虚拟化平台为xen虚拟化平台的情况下,共享存储系统为xen提供的共享存储系统,共享指的是域间共享,特权域和用户域能够通过该共享存储系统实现域间数据交互。在一些实施例中,在该虚拟化平台为xen虚拟化平台的情况下,该共享存储系统为xenstore,xenstore是xen提供的一个域间共享的存储系统,它以字符串形式存放了管理程序和前、后端驱动程序的配置信息。特权域管理所有的数据,而用户域通过共享内存,向特权域请求与自己相关的键值,以此实现域间通信。60.在一种可能的实施方式中,响应于监测到外接设备的第一设备节点,该用户域确定与该第一设备节点匹配的该前端驱动。该用户域通过该前端驱动向该共享存储系统写入信道建立请求。61.在这种实施方式下,在监测到外接设备的第一设备节点的情况下,该用户域能够确定与该第一设备节点匹配的前端驱动,从而基于该前端驱动写入信道建立请求,后续能够基于该信道建立请求来建立前端驱动和后端驱动之间的通信信道。62.为了对上述实施方式进行更加清楚地说明,下面将分为两个部分对上述实施方式进行说明。63.第一部分、响应于监测到外接设备的第一设备节点,该用户域确定与该第一设备节点匹配的该前端驱动。64.在一种可能的实施方式中,响应于监测该第一设备节点,该用户域基于该第一设备节点的设备标识,确定与该第一设备节点匹配的前端驱动。65.举例来说,响应于用户域的操作系统监测到设备树中新创建的该第一设备节点,该用户域的操作系统基于该第一设备节点的设备标识进行查询,得到与该第一设备节点匹配的前端驱动。66.在这种实施方式下,用户域能够根据第一设备节点的标识来确定匹配的前端驱动,前端驱动确定的效率较高。67.第二部分、该用户域通过该前端驱动向该共享存储系统写入信道建立请求。68.在一种可能的实施方式中,该用户域通过该前端驱动向该共享存储系统写入初始化状态。该用户域通过该前端驱动接收等待状态,基于该等待状态向该共享存储系统写入信道建立请求,该等待状态是该特权域上的该后端驱动监测到该共享存储系统中的该初始化状态的情况下,向该共享存储系统写入的。69.也即是,该用户域通过该前端驱动向该共享存储系统写入初始化状态。在该特权域上的该后端驱动监测到该共享存储系统中的该初始化状态的情况下,向该共享存储系统写入等待状态。该用户域通过该前端驱动,基于该等待状态向该共享存储系统写入信道建立请求。70.其中,初始化状态携带该用户域的初始化参数,用于表示该用户域开始进行初始化。等待状态用于表示该特权域等待该用户域初始化完成。71.在这种实施方式下,用户域和特权域能够通过在共享存储系统中写入初始化状态和等待状态来实现通信,从而最终写入信道建立请求,通过共享存储系统实现了域间的信息交互。72.举例来说,该用户域通过该前端驱动向该共享存储系统写入初始化状态,该初始化状态能够触发用户域的监视。在该特权域上通过该后端驱动监测到该共享存储系统中的该初始化状态的情况下,向该共享存储系统写入等待状态。响应于该用户域的该前端驱动监测到该等待状态,该用户域通过该前端驱动在该共享存储系统中创建共享内存。在该共享内存创建完毕的情况下,该用户域通过该前端驱动向该共享内存中写入该信道建立请求,该信道建立请求用于表示该用户域完成了初始化。在一些实施例中,该信道建立请求也被称为初始化完成状态。73.为了对上述举例进行更加清楚地说明,下面将再分为几个部分对上述举例进行说明。74.部分a、该用户域通过该前端驱动向该共享存储系统写入初始化状态。75.在一种可能的实施方式中,该用户域上的操作系统通过该前端驱动向该共享存储系统写入初始化状态,该初始化状态能够触发用户域的操作系统的监视。76.部分b、在该特权域上通过该后端驱动监测到该共享存储系统中的该初始化状态的情况下,向该共享存储系统写入等待状态。77.在一种可能的实施方式中,在该特权域上的操作系统通过该后端驱动监测到该共享存储系统中的该初始化状态的情况下,向该共享存储系统写入等待状态。78.部分c、响应于该用户域的该前端驱动监测到该等待状态,该用户域通过该前端驱动在该共享存储系统中创建共享内存。79.其中,共享内存是该特权域和该用户域共享的存储空间,该特权域和该用户域能够通过该共享内存实现该外接设备相关数据的传输。在一些实施例中,该共享内存是共享存储系统的第一个部分,特权域能够在该共享存储系统中写入该共享内存对应的索引,后续其他用户域就能够通过该索引来查找该共享内存以及该共享内存对应的外接设备,该共享内存对应的外接设备也即是用户域可使用的外接设备。80.在一种可能的实施方式中,响应于该用户域上的操作系统通过该前端驱动监测到该等待状态,该用户域上的操作系统通过该前端驱动,采用环形数据结构在该共享存储系统中创建该共享内存。81.其中,环形数据是指一种数据结构,在环形数据中,数据以先进先出或者先进后出的方式进行存储。82.在这种实施方式下,采用环形数据能够最大化地利用存储空间。83.举例来说,该用户域上的操作系统通过该前端驱动,采用环形数据结构在该共享存储系统中创建该共享内存。84.部分d、在该共享内存创建完毕的情况下,该用户域通过该前端驱动向该共享内存中写入该信道建立请求。85.在一种可能的实施方式中,在该共享内存创建完毕的情况下,该用户域通过该前端驱动,利用授权表机制导出该共享内存的内存页。该用户域通过该前端驱动,基于该共享内存的内存页生成授权索引。该用户域通过该前端驱动,基于该授权索引向该共享内存中写入该信道建立请求。86.举例来说,在该共享内存创建完毕的情况下,该用户域上的操作系统通过该前端驱动,利用授权表机制导出该共享内存的内存页。该用户域上的操作系统通过该前端驱动,基于该共享内存的内存页生成授权索引。该用户域上的操作系统通过该前端驱动,基于该授权索引向该共享内存中写入该信道建立请求。87.s304、在该特权域上的该后端驱动监测到该共享存储系统中的该信道建立请求的情况下,基于该信道建立请求建立共享通信信道,该后端驱动与该前端驱动通过该共享通信信道进行通信。88.其中,该共享通信信道也即是该前端驱动和该后端驱动之间进行通信的信道,通过该共享通信信道能够实现用户域与外接设备之间的数据交互,该共享通信信道的建立实现了跨域通信。89.在一种可能的实施方式中,该信道建立请求携带该用户域通过该前端驱动在该共享存储系统创建的共享内存的地址,在该特权域上的该后端驱动监测到该共享存储系统中的该信道建立请求的情况下,该特权域通过该后端驱动将该共享内存的地址写入处理器域,向该共享内存写入连接状态。该特权域通过该外接设备的后端驱动,基于该第二设备节点建立与该前端驱动之间的该共享通信信道,该第二设备节点是该用户域的前端驱动监测到该连接状态后创建的。90.在这种实施方式下,特权域能够将共享内存的地址写入处理器域,以便特权域调用的处理器能够直接访问该共享内存,从而通过该共享内存建立共享通信信道,实现域间通信。91.其中,处理器域是指处理器的核心能够直接方位的地址空间的集合,将该共享内存的地址写入处理器域之后,处理器的核心也就能够基于该地址访问共享内存。第二设备节点是在用户域中创建的设备节点,也即是在用户域的设备树中创建的设备节点,该第二设备节点携带该外接设备的设备标识和设备类型。92.举例来说,该信道建立请求携带该用户域通过该前端驱动在该共享存储系统创建的共享内存的地址,在该特权域上的操作系统通过该后端驱动监测到该共享存储系统中的该信道建立请求的情况下,该特权域上的操作系统通过该后端驱动将该共享内存的地址写入处理器域,与此同时,该特权域上的操作系统通过该后端驱动向该共享内存写入连接状态,也即是向共享存储系统中共享内存所在的位置写入连接状态。响应于该用户域上的操作系统通过前端驱动监测到该连接状态,用户域创建该外接设备的第二设备节点。该特权域的操作系统通过该后端驱动,基于该第二设备节点建立与该前端驱动之间的该共享通信信道,该共享通信信道在该共享内存中,该共享通信信道也被称为该外接设备的设备信道。93.下面将结合图4对上述步骤s301-s304进行说明,参见图4,在该虚拟化平台为xen虚拟化平台的情况下,在外接设备启动的情况下,特权域上的后端(backend)设备向共享存储系统(xenstore)发送节点创建请求(creatnode),该节点创建请求用于请求创建该外接设备的第一设备节点,该后端设备同时发送设备监测请求(watchnode),该设备监测请求用于请求监测该第一设备节点的节点状态。响应于该节点创建请求,在共享存储系统中创建该第一设备节点。该第一设备节点创建触发用户域上的前端(frondend)设备的监测,该前端设备注册该外接设备,在该共享存储系统中写入初始化状态,该初始化状态用于表示正在进行初始化。该初始化状态触发该后端设备的监测,在监测到该初始化状态的情况下,该后端设备向该共享存储系统写入等待状态,该等待状态用于表示等待该前端设备初始化完成,该等待状态为该后端设备的状态。该等待状态触发该前端设备的监测,在检测到该等待状态的情况下,该前端设备向共享存储系统发送共享内存创建请求,该共享内存创建请求用于请求在该共享存储系统中创建共享内存。在该共享内存创建完成的情况下,该用户域通过该前端驱动,利用授权表机制导出该共享内存的内存页。该用户域通过该前端驱动,基于该共享内存的内存页生成授权索引。该用户域通过该前端驱动,基于该授权索引向该共享存储系统中写入信道建立请求。在该特权域上的该后端驱动监测到该共享存储系统中的该信道建立请求的情况下,该特权域通过该后端驱动将该共享内存的地址写入处理器域,向该共享内存写入连接状态。响应于该用户域的前端驱动监测到该连接状态,用户域创建该外接设备的第二设备节点。94.s305、该用户域通过该共享通信信道与该外接设备进行通信。95.其中,用户域通过与该外接设备进行通信,能够实现用户域对该外接设备的使用,比如,在该外接设备为外接摄像头的情况下,该用户域也能够使用该外接摄像头,从而获取该外接摄像头采集的图像,该外接摄像头也即是usb摄像头。96.在一种可能的实施方式中,该用户域的该前端驱动向该共享通信信道发送控制信息。响应于该特权域的该后端驱动监测到该控制信息,将该控制信息转发给该外接设备,以实现该用户域与该外接设备之间的通信。97.在这种实施方式下,用户域能够通过该共享通信信道向外接设备发送控制信息,从而实现用户域对外接设备的控制,相应地,外接设备也能够通过该共享通信信道来向用户域传递信息,实现了外接设备与用户域之间的双向通信。98.举例来说,该用户域的该前端驱动向该共享通信信道发送控制信息。响应于该特权域的该后端驱动监测到该控制信息,将该控制信息转发给该外接设备的真实驱动,由该真实驱动将该控制信息转发至该外接设备,该真实驱动为该外接设备的软件接口。99.其中,该真实驱动为该操作系统与该外接设备进行通信的接口,在该外接设备为外接摄像头的情况下,该真实驱动为v412框架,其中,v4l2是专门为linux设备设计的一套视频框架,其主体框架在linux内核,可以理解为是整个linux系统上面的视频源捕获驱动框架。相机驱动层位于halmoudle与硬件层之间,借助linux内核驱动框架,以文件节点的方式暴露接口给用户空间,让halmodule通过标准的文件访问接口,从而能够将请求顺利下发到内核中。100.下面将结合图5对上述步骤s301-s305提供的方法架构进行说明,参见图5,以外接设备(haedwar)为外接摄像头(camera)为例,特权域(dom0)包括后端(benken)驱动和外接摄像头的真实驱动(drive)。用户域(domu)包括驾驶员监控系统(drivermonitorsystem,dms)、前端(fronden)驱动。其中,后端(benken)驱动通过mmap的方式在共享存储系统(sharememory)中读取和写入文件,前端(fronden)驱动通过malloc内存分配方法在共享存储系统(sharememory)中创建共享内存,驾驶员监控系统(dms)运行在用户域上,能够通过本技术实施例提供的技术方案获取外接设备提供的数据。外接摄像头的真实驱动(drive)与外接设备之间进行通信。101.上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。102.通过本技术实施例提供的技术方案,用户域能够通过前端驱动向共享存储系统写入信道建立请求。特权域的后端驱动监测到该信道建立请求,基于该信道建立请求建立共享通信信道,通过该共享通信信道能够实现用户域的前端驱动与特权域的后端驱动之间的通信。由于特权域上运行的后端驱动能够与外接设备进行通信,那么通过该共享通信信道也就能够实现用户域与外接设备之间的通信,从而用户域对外接设备的使用。也即是,即使车载终端没有smmu,用户域也能够使用外接设备。103.图6是本技术实施例提供的一种用户域与设备的通信装置的结构示意图,参见图6,装置包括:信道建立请求写入模块601、共享通信信道建立模块602以及通信模块603。104.信道建立请求写入模块601,用于响应于监测到外接设备的第一设备节点,虚拟化平台的用户域通过前端驱动向共享存储系统写入信道建立请求,该信道建立请求用于请求与该虚拟化平台的后端驱动进行通信,该后端驱动运行在该虚拟化平台的特权域上,该后端驱动能够与该外接设备进行通信。105.共享通信信道建立模块602,用于在该特权域上的该后端驱动监测到该共享存储系统中的该信道建立请求的情况下,基于该信道建立请求建立共享通信信道,该后端驱动与该前端驱动通过该共享通信信道进行通信。106.通信模块603,用于该用户域通过该共享通信信道与该外接设备进行通信。107.在一种可能的实施方式中,该信道建立请求写入模块601,用于响应于监测到外接设备的第一设备节点,该用户域确定与该第一设备节点匹配的该前端驱动。该用户域通过该前端驱动向该共享存储系统写入信道建立请求。108.在一种可能的实施方式中,该信道建立请求写入模块601,用于该用户域通过该前端驱动向该共享存储系统写入初始化状态。该用户域通过该前端驱动接收等待状态,基于该等待状态向该共享存储系统写入信道建立请求,该等待状态是该特权域上的该后端驱动监测到该共享存储系统中的该初始化状态的情况下,向该共享存储系统写入的。109.在一种可能的实施方式中,该信道建立请求写入模块601,用于响应于该用户域的该前端驱动监测到该等待状态,该用户域通过该前端驱动在该共享存储系统中创建共享内存。在该共享内存创建完毕的情况下,该用户域通过该前端驱动向该共享内存中写入该信道建立请求,该信道建立请求用于表示该用户域完成了初始化,该信道建立请求携带该共享内存的地址。110.在一种可能的实施方式中,该信道建立请求写入模块601,用于该用户域通过该前端驱动,采用环形数据结构在该共享存储系统中创建该共享内存。111.在一种可能的实施方式中,该信道建立请求写入模块601,用于该用户域通过该前端驱动,利用授权表机制导出该共享内存的内存页。该用户域通过该前端驱动,基于该共享内存的内存页生成授权索引。该用户域通过该前端驱动,基于该授权索引向该共享内存中写入该信道建立请求。112.在一种可能的实施方式中,该信道建立请求携带该用户域通过该前端驱动在该共享存储系统创建的共享内存的地址,该共享通信信道建立模块602,用于在该特权域上的该后端驱动监测到该共享存储系统中的该信道建立请求的情况下,该特权域通过该后端驱动将该共享内存的地址写入处理器域,向该共享内存写入连接状态。该特权域通过该后端驱动,基于该外接设备的第二设备节点建立与该前端驱动之间的该共享通信信道,该第二设备节点是该用户域的前端驱动监测到该连接状态后创建的。113.在一种可能的实施方式中,该通信模块603,用于该用户域的该前端驱动向该共享通信信道发送控制信息。响应于该特权域的该后端驱动监测到该控制信息,将该控制信息转发给该外接设备,以实现该用户域与该外接设备之间的通信。114.在一种可能的实施方式中,该通信模块603,用于响应于该特权域的该后端驱动监测到该控制信息,将该控制信息转发给该外接设备的真实驱动,由该真实驱动将该控制信息转发至该外接设备,该真实驱动为该外接设备的软件接口。115.在一种可能的实施方式中,该装置还包括:启动模块,用于在该外接设备启动的情况下,该特权域创建该外接设备的该第一设备节点,该第一设备节点供该用户域的该前端驱动使用。在该第一设备节点创建完成的情况下,该特权域启动该用户域。116.在一种可能的实施方式中,该外接设备为usb摄像头。117.需要说明的是:上述实施例提供的用户域与设备的通信装置在进行用户域与设备之间的通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的用户域与设备的通信装置与用户域与设备的通信方法的实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。118.通过本技术实施例提供的技术方案,用户域能够通过前端驱动向共享存储系统写入信道建立请求。特权域的后端驱动监测到该信道建立请求,基于该信道建立请求建立共享通信信道,通过该共享通信信道能够实现用户域的前端驱动与特权域的后端驱动之间的通信。由于特权域上运行的后端驱动能够与外接设备进行通信,那么通过该共享通信信道也就能够实现用户域与外接设备之间的通信,从而在没有smmu的硬件设备中实现用户域对外接设备的使用。119.本技术实施例提供了一种汽车,该汽车包括车载终端,用于执行上述方法,对车载终端的结构进行介绍:图7是本技术实施例提供的一种车载终端的结构示意图。该车载终端700可以是:智能手机、平板电脑、笔记本电脑或台式电脑。车载终端700还可能被称为用户设备、便携式车载终端、膝上型车载终端、台式车载终端等其他名称。120.通常,车载终端700包括有:一个或多个处理器701和一个或多个存储器702。121.处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。122.存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器701所执行以实现本技术中方法实施例提供的用户域与设备的通信方法。123.在一些实施例中,车载终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、显示屏705、摄像头组件706、音频电路707和电源708中的至少一种。124.外围设备接口703可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。125.射频电路704用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。126.显示屏705用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。127.摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。通常,前置摄像头设置在车载终端的前面板,后置摄像头设置在车载终端的背面。128.音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。129.电源708用于为车载终端700中的各个组件进行供电。电源708可以是交流电、直流电、一次性电池或可充电电池。130.在一些实施例中,车载终端700还包括有一个或多个传感器709。该一个或多个传感器709包括但不限于:加速度传感器710、陀螺仪传感器711、压力传感器712、光学传感器713以及接近传感器714。131.加速度传感器710可以检测以车载终端700建立的坐标系的三个坐标轴上的加速度大小。132.陀螺仪传感器711可以检测车载终端700的机体方向及转动角度,陀螺仪传感器711可以与加速度传感器710协同采集用户对车载终端700的3d动作。133.压力传感器712可以设置在车载终端700的侧边框和/或显示屏705的下层。当压力传感器712设置在车载终端700的侧边框时,可以检测用户对车载终端700的握持信号,由处理器701根据压力传感器712采集的握持信号进行左右手识别或快捷操作。当压力传感器712设置在显示屏705的下层时,由处理器701根据用户对显示屏705的压力操作,实现对ui界面上的可操作性控件进行控制。134.光学传感器713用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器713采集的环境光强度,控制显示屏705的显示亮度。135.接近传感器714用于采集用户与车载终端700的正面之间的距离。136.本领域技术人员可以理解,图7中示出的结构并不构成对车载终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。137.在示例性实施例中,还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,上述计算机程序可由处理器执行以完成上述实施例中的用户域与设备的通信方法。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。138.在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述用户域与设备的通信方法。139.在一些实施例中,本技术实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。140.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。141.上述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。当前第1页12当前第1页12









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部