CN115185594B - 基于虚拟显示的数据交互方法、装置、电子设备及介质 - Google Patents
基于虚拟显示的数据交互方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN115185594B CN115185594B CN202211083069.6A CN202211083069A CN115185594B CN 115185594 B CN115185594 B CN 115185594B CN 202211083069 A CN202211083069 A CN 202211083069A CN 115185594 B CN115185594 B CN 115185594B
- Authority
- CN
- China
- Prior art keywords
- data
- virtual display
- sent
- receiving end
- transmitting
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明公开了一种基于虚拟显示的数据交互方法、装置、电子设备及介质,该方法包括:打开预先创建的虚拟显示设备节点以获取待发送数据;将所述待发送数据提交给已加载的虚拟显示驱动;所述虚拟显示驱动用于实现支持预设操作系统的应用程序操作显示;通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据。本发明提供无需用户自定义的跨域共享机制,提高通用性和可扩展性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于虚拟显示的数据交互方法、装置、电子设备及介质。
背景技术
当代汽车设计中,智能座舱成为提升用户用车体验的重要环节,而在智能座舱系统中,功能域(例如仪表域、娱乐域)的内容越来越丰富,对算力的要求不断提高,因此,使用多个SoC,多系统来实现成为一种趋势。为了更好的在车辆行进中为用户提供更好的服务,需要多个SoC中共享内容,保证驾驶员安全地使用多个SoC,多个系统提供的数据和服务。
在现有的方案中,不同功能域之间进行数据交互时,需要调用底层驱动才能获取数据,如果传输的不同类型的数据,底层驱动需要定制处理,用户层软件接口不通用。
发明内容
本发明实施例的目的是提供一种基于虚拟显示的数据交互方法、装置、电子设备及介质,提高在复杂的SOC中提高资源和内存访问的灵活性和安全性。
在第一方面,为实现上述目的,本发明实施例提供了一种基于虚拟显示的数据交互方法,包括步骤:
打开预先创建的虚拟显示设备节点以获取待发送数据;
将所述待发送数据提交给已加载的虚拟显示驱动;
通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据。
在第二方面,为了解决相同的技术问题,本发明实施例提供了一种基于虚拟显示的数据交互装置,包括:
获取模块,用于打开预先创建的虚拟显示设备节点以获取待发送数据;
处理模块,用于将所述待发送数据提交给已加载的虚拟显示驱动;
发送模块,用于通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据。
在第三方面,为了解决相同的技术问题,本发明实施例提供了一种集成基于虚拟显示的数据交互装置的电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述存储器与所述处理器耦接,且所述处理器执行所述计算机程序时,实现上述任一项所述的基于虚拟显示的数据交互方法中的步骤。
在第四方面,为了解决相同的技术问题,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在的设备执行上述任一项所述的基于虚拟显示的数据交互方法中的步骤。
本发明实施例提供了一种基于虚拟显示的数据交互方法、装置、电子设备及介质,本发明在多个SoC之间传输数据,作为数据发送的一方通过DMA设备提供的DMA传输功能和中断功能,创建出虚拟显示设备,将待传输的数据经过虚拟显示通路,将数据发送给接收端,软件接口可以兼容物理显示设备,对用户层来说,接口通用,且可扩展性强。
附图说明
图1为本发明实施例提供的基于虚拟显示的数据交互方法的一种流程示意图;
图2为本发明实施例异构多核的基于虚拟显示的数据交互装置的结构示意图;
图3为本发明实施例提供的基于虚拟显示的数据交互方法的的另一种流程示意图;
图4为本发明实施例提供的基于虚拟显示系统的数据交互软件架构的结构示意图;
图5为本发明实施例提供的虚拟显示系统的结构示意图;
图6为本发明实施例提供的基于虚拟显示的数据交互方法的的另一种流程示意图;
图7为本发明实施例提供的在每个SoC中独立显示图像数据的场景示意图;
图8为本发明实施例提供的2个不同SoC之间的共享显示图像数据的场景示意图;
图9为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解的是,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
请参见图1和图2,图1为本发明实施例提供的基于虚拟显示的数据交互方法的一种流程示意图,图2为本发明实施例提供的基于虚拟显示的数据交互装置的结构示意图,基于虚拟显示的数据交互方法应用于发送端100,其中方法包括:
步骤S101、打开预先创建的虚拟显示设备节点以获取待发送数据;
具体的,在智能异构多核框架中,整个智能座舱系统中由多个不同的功能域组成,不同功能域所支持的操作系统可以一致也可以不同。本发明不同功能域所支持的操作系统包括但是不限于Linux操作系统、Android操作系统和Qnx操作系统、嵌入式开源实时操作系统(例如FreeRTOS)、其他实时操作系统(RTOS)。
示例性的,娱乐域的主核A76支持Android操作系统,仪表域的从核A55支持Linux操作系统,信息安全域的从核M4支持嵌入式操作系统。
步骤S102、将所述待发送数据提交给已加载的虚拟显示驱动;所述虚拟显示驱动用于实现支持预设操作系统的应用程序操作显示;
具体的,所述预设操作系统包括:Linux操作系统、Android操作系统和Qnx操作系统、嵌入式开源实时操作系统、其他实时操作系统中的任意一种。
步骤S103、通过所述虚拟显示驱动将所述待发送数据传输给接收端200,直至关闭所述发送端100创建的传输通道后停止传输数据。
具体的,本发明提出的在双芯片的数据发送端100创建一个或者多个虚拟显示设备,以发送控制数据和流数据,虚拟显示驱动包含以下两个部分:
消息发送单元:基于DMA传输硬件,创建消息传送模块,在数据发送端100和接收端200实现消息传递,包括数据信息控制的异步通知机制,实时数据传输信号的同步机制,用户层通过显示参数配置接口配置待传输数据信息和传输状态信息;
数据发送单元:基于DMA传输硬件,创建虚拟显示设备,用户层通过显示接口将数据流发送给接收端200;
如图2中所示,底层物理层为DMA传输设备;驱动层基于显示框架DRM模块,DMA设备模块和Rpmsg模块创建虚拟显示驱动,显示虚拟显示通路,其中,DMA设备模块实现数据发送单元中流数据的传输,Rpmsg模块实现消息传送单元中控制数据的传输,DRM模块为中间接口层提供控制数据和流数据传输的接口;应用层经中间接口层调用通用显示API接口(Linux/Android中使用DRM(Direct Rendering Manager)接口)将待传输数据经过虚拟显示通路发送给接收端200。
本发明设计了一种基于虚拟显示的方法和系统,使得一个SoC作为数据发送端100,以便像将数据提交给本地显示设备一样,将数据发送给SOC接收端200。由于车载系统中,通常需要在多个SOC,或者同一个SOC的不同系统之间进行图像数据的传输,本发明通过在数据发送端100创建虚拟显示设备和系统,经虚拟显示通路将数据发送给接收端200。本发明简化了系统设计,对用户层无需自定义软件接口,且可与系统中的物理显示设备及接口兼容,而且本发明支持两个及以上SoC之间,独立地发送一路或者多路数据,通用性和可扩展性强,此外,在同一个SoC上的不同系统之间发送数据,也同样适用。
请参见图3,图3为本发明实施例提供的基于虚拟显示的数据交互方法的另一种流程示意图,其中所述打开预先创建的虚拟显示设备节点之前包括步骤:
步骤S301、创建并加载所述虚拟显示驱动,然后创建对应的虚拟显示设备节点;
步骤S302、注册并初始化预设消息传输组件;
步骤S303、注册并初始化预设内存设备组件,并设置所述预设内存设备组件对应的中断程序;
步骤S304、通过所述虚拟显示驱动进行环境搭建后判断是否满足触发条件,在满足触发条件后打开预先创建的虚拟显示设备节点。
具体的,前期初始化完成后,只是解决了一帧视频数据的格式和大小问题,而连续视频帧数据的采集需要用帧缓冲区队列的方式来解决,即要通过驱动程序在内存中申请几个帧缓冲区来存放视频数据。应用程序通过API接口提供的方法drmModeAddFB2申请若干个视频数据的帧缓冲区,申请帧缓冲区数量一般不低于3个,每个帧缓冲区存放一帧视频数据,这些帧缓冲区在内核空间。应用程序通过API接口drmModeAtomicCommit()提交一帧待发送的数据,将该数据经过DMA设备发送给接收端200;通过回调函数page_flip_done通知应用层这帧数据传输完毕。
在一些实施例中,所述创建并加载所述虚拟显示驱动包括步骤:
按照预设操作系统的显示驱动框架,创建所述虚拟显示驱动并进行加载;所述虚拟显示驱动与所述显示驱动框架通信。
如图4为发送端100为Android系统,DMA传输设备为PCIE Link的虚拟显示系统的软件架构图,Android Application通过指定display id即显示序号ID,经由Framework层gralloc/surfacefinliner/hwcomposer,调用虚拟显示驱动(virtual display driver),将待发送的数据交给PCIE (DMA) 设备,发送给接收端200。该系统能同时兼容物理显示设备和虚拟显示设备,且在Application层调用接口一致,只需要通过参数来区分使用物理显示设备和虚拟显示设备。虚拟显示系统如图4所示,虚拟显示驱动创建了一个或多个虚拟显示设备,发送端100将需要传输的数据经过虚拟显示通路提供给底层传输的DMA设备,并由高精度定时器timer提供vsync中断(vblank事件)。其中,图4所示的显示接口符合DP(DisplayPort)高清数字显示接口标准,通过显示接口(例如DP接口)可以连接显示器以进行图像数据的传输。
其中,gralloc模块是Android中负责申请和释放GraphicBuffer的模块,gralloc模块为了显示内存分配与释放,gralloc模块是从Android Eclair开始加入的一个HAL模块,gralloc的含义为是Graphics Alloc(图形分配)。gralloc模块对上为libui提供服务,为其分配显存,刷新显示等,gralloc模块对下对framebuffer进行管理。
其中,surfaceflinger模块是Android中负责图层合成的一个模块,作用是接受多个来源的图形显示数据,将他们合成,然后发送到显示设备。比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每个层是单独更新和渲染,这些界面都是有surfaceflinger合成一个刷新到硬件显示。
其中,hwcomposer模块的作用:一是可以打开gralloc模块的FB设备,负责将图像缓冲区的内容渲染到FB显示缓冲区,gralloc模块可以打开两种设备,一种负责分配图形缓冲区,另一种打开FB设备,负责渲染FB缓冲区。二是负责管理硬件hwcomposer模块,HWC(hwcomposer)是Android中进行窗口(Layer)合成和显示的HAL层模块,通常由显示设备制造商(OEM)完成,为surfaceflinger服务提供硬件支持。由于surfaceflinger可以使用OpenGL ES合成Layer,这需要占用并消耗GPU资源,大多数GPU都没有针对图层合成进行优化,因此,当surfaceflinger通过GPU合成图层时,应用程序无法使用GPU进行自己的渲染。而HWC通过硬件设备进行图层合成,可以减轻GPU的合成压力。硬件hwcomposer负责产生硬件VSync信号。HWC也提供了VSync事件,用于管理渲染和图层合成时机。
在一些实施例中,所述通过所述虚拟显示驱动进行环境搭建包括步骤:
通过所述预设消息传输组件查询判断所述接收端200是否处于预设状态;所述预设状态用于表明所述接收端200等待接收数据;
监听应用层是否接收到数据配置信息;所述数据配置信息包括待发送数据的数据类型和数据包大小;
若接收到所述数据配置信息,通过所述应用层调用所述显示驱动框架的应用接口向DMA设备提交一帧待发送数据以完成环境搭建。
具体的,基于虚拟显示系统的软件框架如图5所示:
1.消息发送:用户层打开虚拟显示设备节点,调用libdrm API,经过DRM ioctl接口配置发送数据类型和大小,并通过Rpmsg模块与发送端100同步所传输的数据类型,数据包大小,实时数据传输信号通知等信息。其中,ioctl接口既可以读数据也可以写数据,ioctl接口一般是作用在一些标准接口无法实现的功能。如和主控芯片链接的很多外设ic,主控对这些芯片的功能设置以及状态的获取等,所以ioctl接口是系统进行功能扩展的的专用接口。图5中的渲染框架为DRM(即Direct Rendering Manager的缩写)框架,DRM将数据从一个地址空间复制到另外一个地址空间,其主要功能是在不需要处理器参与的情况下进行数据传输,DRM属于一个内核级的设备驱动,既可以编译到内核中也可以作为标准模块进行加载。
2.数据发送:通过libdrm接口将待发送数据对应的缓冲区地址配置为底层传输的DMA设备的源地址。发送端100调用libdrm接口drmModeAtomicCommit()将数据提交给DMA模块,等待DMA传输完成中断和接收端200确认中断后,通过底层传输的DMA设备将下一帧数据发送到接收端200。
在一些实施例中,所述判断是否满足触发条件包括步骤:
监听所述虚拟显示驱动是否接收到所述显示驱动框架的应用接口提交的待发送数据;
若接收到所述待发送数据确定满足所述触发条件。
在一些实施例中,所述通过所述虚拟显示驱动将所述待发送数据传输给接收端200,直至关闭所述发送端100创建的传输通道后停止传输数据包括步骤:
通过所述虚拟显示驱动发送所述待发送数据至所述接收端200;
监听DMA设备是否生成中断信号;所述中断信号表征所述DMA设备完成一帧数据的传输进程;
若获取到所述中断信号,通过回调函数向所述应用层通知所述待发送数据完成传输;
等待所述应用层调用显示驱动框架的应用接口向DMA设备提交下一帧待发送数据;
在确定数据发送完毕后,等待所述接收端200发送接收确认中断信息,以控制所述虚拟显示驱动关闭传输通道。
具体的,数据发送端100流程如图6所示:
1.虚拟显示系统驱动流程:
a)系统加载虚拟显示驱动;
b)创建虚拟显示设备节点/dev/dri/vcardX;
c)注册并初始化Rpmsg;
d)注册并初始化DMA设备中断;
e)通过Rpmsg查询接收端200是否已准备好接收数据;
f)等待应用层配置待发送数据类型和数据包大小;
g)等待应用层通过drmModeAtomicCommit()提交一帧待发送的数据,将该数据经过DMA设备发送给接收端200;
h)当DMA设备将数据传输完毕,接收端200将接收到DMA传输设备接收完成中断,进一步通知接收端200处理数据;
i)等待接收端200将数据处理完毕,接收端200发送接收确认中断;
j)通过回调函数page_flip_done通知应用层这帧数据传输完毕;
k)等待应用层通过drmModeAtomicCommit()提交下一帧待发送的数据,重复虚拟显示系统驱动流程中的f)至k)。
l)接收到关闭数据发送通道,取消注册Rpmsg和DMA中断。
2.虚拟显示系统应用层调用流程:
a)接收到数据发送请求;
b)打开虚拟显示设备节点(dev/dri/vcardX);
c)通过libdrm接口调用虚拟显示驱动接口配置待发送数据的数据包类型和大小;
d)等待接收一帧待发送的数据;
e)通过libdrm接口drmModeAtomicCommit()接口向虚拟显示驱动提交一帧待发送数据;
f)通过page_flip_done等待驱动层通知这帧数据传输完毕;
g)通过drmModeAtomicCommit()接口提交下一帧待发送数据。
h)重复虚拟显示系统应用层调用流程中的d) 至f)。接收到关闭数据发送通道请求,调用驱动层取消注册Rpmsg和DMA中断。
初始化设备节点和初始化状态同步,以完成服务进程的初始化与配置。具体为首先创建一个Service进程,在创建这个Service进程的同时,会相应的去配置和初始化虚拟显示驱动、虚拟显示设备节点、Rpmsg和DMA设备等模块,待所有模块都正确创建和初始化后,Service进程进入休眠等待。
类似的,首先初始化DMA设备,然后构造请求消息向处理器注册相关服务,并获取虚拟块参数(即虚拟块的相关参数,包括支持的块大小,容量等),然后根据虚拟块参数创建虚拟显示驱动和虚拟显示设备节点,同时根据获取到的系统配置参数(包括内存基地址,大小,最大支持传输大小,存储大小等存储块信息、工作模式、并发数等)初始化状态机的数据结构和状态。也就是说,虚拟显示系统向处理器请求服务获取配置信息完成初始化和配置。此时虚拟显示系统根据虚拟块参数就可以创建一个虚拟显示驱动,然后对外(上层应用)暴露出来相关的文件API作为虚拟显示设备节点。其中,虚拟块参数和系统配置参数都由处理器根据需求通过DTS,Linux驱动文件接口等方式从获取预先设置好的外部配置信息中提取,然后按需传递给虚拟显示系统进行相关配置。
示例性的,本发明方案所示以两个SoC之间共享显示画面为例来说明:
如图8所示,SoC1为数据发送端100,主要负责娱乐域功能,基于Android/Linux,启动了多个应用,例如地图,倒车,前视等。SoC2为数据接收端200,主要负责仪表域功能,基于Linux/RTOS。如图7所示,SoC1系统上通过PCIE Link提供的DMA传输和中断功能,设计虚拟显示系统,创建3个虚拟显示设备。SoC1的上层应用通过调用显示接口,将3个显示画面的数据经虚拟显示通路发送给接收端200。SoC2系统上通过PCIE Link将发送端100SoC1发送过来的3路数据显示在SoC2仪表屏的对应区域。
本发明中的智能座舱系统中的一个SoC为数据发送端100,另一个SoC为数据接收端200的情况下,能够在数据发送端100的SoC上虚拟一个或者多个显示设备,模拟一个或者多个独立的数据传输通道,将待发送数据经虚拟显示通路发送给接收端200。由于该虚拟显示设备与系统中的物理显示设备驱动和接口兼容,简化系统设计。而且通过本发明在任意一个SoC作为发送端100的情况下都适用。
本发明实施例提供的基于虚拟显示的数据交互装置,包括:
获取模块,用于打开预先创建的虚拟显示设备节点以获取待发送数据;
处理模块,用于将所述待发送数据提交给已加载的虚拟显示驱动;
发送模块,用于通过所述虚拟显示驱动将所述待发送数据传输给接收端200,直至关闭所述发送端100创建的传输通道后停止传输数据。
具体实施时,以上各个模块和/或单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块和/或单元的具体实施可参见前面的方法实施例,具体可以达到的有益效果也请参看前面的方法实施例中的有益效果,在此不再赘述。
请参见图9,图9为本发明实施例提供的电子设备的一种结构示意图,如图9所示,图9示出了本发明实施例提供的电子设备的具体结构框图,该电子设备可以用于实施上述实施例中提供的基于虚拟显示的数据交互方法。该电子设备900可以为移动终端如智能手机或笔记本电脑等设备。
RF电路910用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。RF电路910可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。RF电路910可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for Mobile Communication, GSM)、增强型移动通信技术(EnhancedData GSM Environment, EDGE),宽带码分多址技术(Wideband Code Division MultipleAccess, WCDMA),码分多址技术(Code Division Access, CDMA)、时分多址技术(TimeDivision Multiple Access, TDMA),无线保真技术(Wireless Fidelity, Wi-Fi)(如美国电气和电子工程师协会标准 IEEE 802.11a, IEEE 802.11b, IEEE802.11g 和/或 IEEE802.11n)、网络电话(Voice over Internet Protocol, VoIP)、全球微波互联接入(Worldwide Interoperability for Microwave Access, Wi-Max)、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
存储器920可用于存储软件程序以及模块,如上述实施例中基于虚拟显示的数据交互方法对应的程序指令/模块,处理器980通过运行存储在存储器920内的软件程序以及模块,从而执行各种功能应用以及资源访问,即实现如下功能:
打开预先创建的虚拟显示设备节点以获取待发送数据;
将所述待发送数据提交给已加载的虚拟显示驱动;所述虚拟显示驱动用于实现支持预设操作系统的应用程序操作显示;
通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据。
存储器920可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器920可进一步包括相对于处理器980远程设置的存储器,这些远程存储器可以通过网络连接至电子设备900。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入单元930可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元930可包括触敏表面931以及其他输入设备932。触敏表面931,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面931上或在触敏表面931附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面931可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器980,并能接收处理器980发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面931。除了触敏表面931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元940可用于显示由用户输入的信息或提供给用户的信息以及电子设备900的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元940可包括显示面板941,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板941。进一步的,触敏表面931可覆盖显示面板941,当触敏表面931检测到在其上或附近的触摸操作后,传送给处理器980以确定触摸事件的类型,随后处理器980根据触摸事件的类型在显示面板941上提供相应的视觉输出。虽然在图中,触敏表面931与显示面板941是作为两个独立的部件来实现输入和输出功能,但是在某些实施例中,可以将触敏表面931与显示面板941集成而实现输入和输出功能。
电子设备900还可包括至少一种传感器950,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板941的亮度,接近传感器可在翻盖合上或者关闭时产生中断。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子设备900还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路960、扬声器961,传声器962可提供用户与电子设备900之间的音频接口。音频电路960可将接收到的音频数据转换后的电信号,传输到扬声器961,由扬声器961转换为声音信号输出;另一方面,传声器962将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据输出处理器980处理后,经RF电路910以发送给比如另一终端,或者将音频数据输出至存储器920以便进一步处理。音频电路960还可能包括耳塞插孔,以提供外设耳机与电子设备900的通信。
电子设备900通过传输模块970(例如Wi-Fi模块)可以帮助用户接收请求、发送信息等,它为用户提供了无线的宽带互联网访问。虽然图中示出了传输模块970,但是可以理解的是,其并不属于电子设备900的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器980是电子设备900的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行电子设备900的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器980可包括一个或多个处理核芯;在一些实施例中,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地,上述调制解调处理器也可以不集成到处理器980中。
电子设备900还包括给各个部件供电的电源990(比如电池),在一些实施例中,电源可以通过电源管理系统与处理器980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源990还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,电子设备900还包括显示(如前置显示、后置显示)、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备的显示单元是触摸屏显示器,移动终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行一个或者一个以上程序包含用于进行以下操作的指令:
打开预先创建的虚拟显示设备节点以获取待发送数据;
将所述待发送数据提交给已加载的虚拟显示驱动;所述虚拟显示驱动用于实现支持预设操作系统的应用程序操作显示;
通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于计算机可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的基于虚拟显示的数据交互方法中任一实施例的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的基于虚拟显示的数据交互方法任一实施例中的步骤,因此,可以实现本发明实施例所提供的任一种基于虚拟显示的数据交互方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种基于虚拟显示的数据交互方法、装置、电子设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。并且,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (4)
1.一种基于虚拟显示的数据交互方法,其特征在于,应用于智能座舱系统,所述智能座舱系统中的一个SOC为发送端,另一个SOC为接收端,所述基于虚拟显示的数据交互方法应用于所述发送端,包括步骤:
01)系统加载虚拟显示驱动;
02)创建虚拟显示设备节点/dev/dri/vcardX;
03)注册并初始化Rpmsg;
04)注册并初始化DMA设备中断;
05)通过Rpmsg查询接收端是否已准备好接收数据;
06)等待应用层配置待发送数据类型和数据包大小;
07)通过驱动程序在内存中申请帧缓冲区来存放视频数据,等待应用层通过drmModeAtomicCommit()接口提交一帧待发送数据,将所述待发送数据经过DMA设备发送给接收端;
08)当DMA设备将数据传输完毕,接收端将接收到DMA传输设备的接收完成中断,进一步通知接收端处理数据;
09)等待接收端将数据处理完毕,接收端发送接收确认中断;
10)通过回调函数page_flip_done通知应用层这帧数据传输完毕;
11)等待应用层通过drmModeAtomicCommit()接口提交下一帧待发送数据,重复虚拟显示系统驱动流程中的06)至11);
12)接收到关闭数据发送通道,取消注册Rpmsg和DMA中断;
13)接收到数据发送请求;
打开预先创建的虚拟显示设备节点以获取待发送数据;
所述打开预先创建的虚拟显示设备节点以获取待发送数据具体包括:
21)打开虚拟显示设备节点(dev/dri/vcardX);
22)通过DRM ioctl接口调用虚拟显示驱动接口配置待发送数据的数据包类型和大小;
23)等待接收一帧待发送数据;
将所述待发送数据提交给已加载的虚拟显示驱动;所述虚拟显示驱动用于实现支持预设操作系统的应用程序操作显示;
所述将所述待发送数据提交给已加载的虚拟显示驱动具体包括:
31)通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据;
所述通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据具体包括:
41)通过drmModeAtomicCommit()接口向虚拟显示驱动提交一帧待发送数据;
42)通过page_flip_done等待驱动层通知这帧数据传输完毕;
43)通过drmModeAtomicCommit()接口提交下一帧待发送数据;
44)重复虚拟显示系统应用层调用流程中的23) 至42),接收到关闭数据发送通道请求,调用驱动层取消注册Rpmsg和DMA中断。
2.一种基于虚拟显示的数据交互装置,其特征在于,应用于智能座舱系统,所述智能座舱系统中的一个SOC为发送端,另一个SOC为接收端,所述基于虚拟显示的数据交互装置应用于所述发送端,包括:
处理模块,用于01)系统加载虚拟显示驱动;02)创建虚拟显示设备节点/dev/dri/vcardX;03)注册并初始化Rpmsg;04)注册并初始化DMA设备中断;05)通过Rpmsg查询接收端是否已准备好接收数据;06)等待应用层配置待发送数据类型和数据包大小;07)通过驱动程序在内存中申请帧缓冲区来存放视频数据,等待应用层通过drmModeAtomicCommit()接口提交一帧待发送数据,将所述待发送数据经过DMA设备发送给接收端;08)当DMA设备将数据传输完毕,接收端将接收到DMA传输设备的接收完成中断,进一步通知接收端处理数据;09)等待接收端将数据处理完毕,接收端发送接收确认中断;10)通过回调函数page_flip_done通知应用层这帧数据传输完毕;11)等待应用层通过drmModeAtomicCommit()接口提交下一帧待发送数据,重复虚拟显示系统驱动流程中的06)至11);12)接收到关闭数据发送通道,取消注册Rpmsg和DMA中断;13)接收到数据发送请求;
获取模块,用于打开预先创建的虚拟显示设备节点以获取待发送数据;具体包括:21)打开虚拟显示设备节点(dev/dri/vcardX);22)通过DRM ioctl接口调用虚拟显示驱动接口配置待发送数据的数据包类型和大小;23)等待接收一帧待发送数据;
处理模块,用于将所述待发送数据提交给已加载的虚拟显示驱动;具体包括:31)通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据;
发送模块,用于通过所述虚拟显示驱动将所述待发送数据传输给接收端,直至关闭发送端创建的传输通道后停止传输数据;具体包括:41)通过drmModeAtomicCommit()接口向虚拟显示驱动提交一帧待发送数据;42)通过page_flip_done等待驱动层通知这帧数据传输完毕;43)通过drmModeAtomicCommit()接口提交下一帧待发送数据;44)重复虚拟显示系统应用层调用流程中的23) 至42),接收到关闭数据发送通道请求,调用驱动层取消注册Rpmsg和DMA中断。
3.一种集成基于虚拟显示的数据交互装置的电子设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述存储器与所述处理器耦接,且所述处理器执行所述计算机程序时,实现如权利要求1所述的基于虚拟显示的数据交互方法中的步骤。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在的设备执行如权利要求1所述的基于虚拟显示的数据交互方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211083069.6A CN115185594B (zh) | 2022-09-06 | 2022-09-06 | 基于虚拟显示的数据交互方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211083069.6A CN115185594B (zh) | 2022-09-06 | 2022-09-06 | 基于虚拟显示的数据交互方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115185594A CN115185594A (zh) | 2022-10-14 |
CN115185594B true CN115185594B (zh) | 2023-01-06 |
Family
ID=83523238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211083069.6A Active CN115185594B (zh) | 2022-09-06 | 2022-09-06 | 基于虚拟显示的数据交互方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115185594B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116088784B (zh) * | 2023-02-28 | 2023-06-06 | 南京芯驰半导体科技有限公司 | 图像投屏方法、装置、电子设备、芯片、存储介质及车辆 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111028787A (zh) * | 2018-10-10 | 2020-04-17 | 乐金显示有限公司 | 通道控制单元和使用通道控制单元的显示装置 |
CN114327700A (zh) * | 2021-01-18 | 2022-04-12 | 海信视像科技股份有限公司 | 一种虚拟现实设备及截屏图片播放方法 |
CN114827658A (zh) * | 2021-01-18 | 2022-07-29 | 深圳市洲明科技股份有限公司 | 一种显示单元及其数据传输方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092623B (zh) * | 2013-01-18 | 2016-05-18 | 福建升腾资讯有限公司 | 一种基于多表面显示截获的变化数据的方法 |
WO2020107405A1 (en) * | 2018-11-30 | 2020-06-04 | Intel Corporation | Apparatus and method for efficient local display sharing for a virtualized graphics processor |
US11294693B2 (en) * | 2020-04-14 | 2022-04-05 | Ncr Corporation | Virtualized transaction terminal platform |
WO2022120780A1 (en) * | 2020-12-11 | 2022-06-16 | Citrix Systems, Inc. | Data object delivery for distributed cluster computing |
-
2022
- 2022-09-06 CN CN202211083069.6A patent/CN115185594B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111028787A (zh) * | 2018-10-10 | 2020-04-17 | 乐金显示有限公司 | 通道控制单元和使用通道控制单元的显示装置 |
CN114327700A (zh) * | 2021-01-18 | 2022-04-12 | 海信视像科技股份有限公司 | 一种虚拟现实设备及截屏图片播放方法 |
CN114827658A (zh) * | 2021-01-18 | 2022-07-29 | 深圳市洲明科技股份有限公司 | 一种显示单元及其数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115185594A (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437631B2 (en) | Operating system hot-switching method and apparatus and mobile terminal | |
CN106233249B (zh) | 用于管理睡眠模式的处理器的图形缓冲区的装备和方法 | |
EP3617869B1 (en) | Display method and apparatus | |
WO2015067143A1 (zh) | 显示帧生成方法和终端设备 | |
EP2752766B1 (en) | Touch event processing method and portable device implementing the same | |
CN110300328B (zh) | 一种视频播放控制方法、装置及可读存储介质 | |
WO2018161534A1 (zh) | 一种显示图像的方法、双屏终端和计算机可读的非易失性存储介质 | |
CN107066268B (zh) | 微件应用的显示位置切换方法及装置 | |
WO2011050683A1 (zh) | 一种应用程序图像的显示方法和装置 | |
CN114817120A (zh) | 一种跨域数据共享方法、系统级芯片、电子设备及介质 | |
EP4123437A1 (en) | Screen projection display method and system, terminal device, and storage medium | |
CN115185594B (zh) | 基于虚拟显示的数据交互方法、装置、电子设备及介质 | |
CN110244884B (zh) | 一种桌面图标管理方法及终端设备 | |
US20130117762A1 (en) | Information processing apparatus, information processing method, and computer product | |
US20230073017A1 (en) | Screen Locking Method and Apparatus | |
CN114218560B (zh) | 资源访问方法、装置、电子设备及存储介质 | |
CN108874554B (zh) | 信息通信方法及装置 | |
WO2020015571A1 (zh) | 移动终端和应用程序后台运行的方法、装置 | |
CN115185711B (zh) | 基于虚拟摄像头的数据交互方法、装置、电子设备及介质 | |
CN112817685B (zh) | 一种显示切换方法、装置、电子设备和存储介质 | |
US11914813B2 (en) | Ranging method and apparatus thereof, storage medium, and terminal device | |
CN109033773B (zh) | 双屏终端操作权限管理方法、终端及计算机可读存储介质 | |
CN109923606B (zh) | 一种广色域图像显示方法及设备 | |
CN111026457B (zh) | 一种硬件配置方法、装置、存储介质及终端设备 | |
CN104040501A (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 |