A data processing method, domain controller, device and storage medium
By adopting a dual processor and dual operating system solution in the domain controller, the problem of low processing efficiency of domain controllers when processing video data and audio data is solved, and data processing efficiency is improved and processing capability is enhanced.
Patent Information
- Application Number
- CN202311122364.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-31
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2043-08-31
AI Technical Summary
Domain controllers are less efficient when processing video data and audio data, making it difficult to meet the growing data processing needs.
Using a dual processor and a dual operating system solution, data storage and acquisition are carried out through the first operating system of the first processor, and data processing and encoding are carried out by the second operating system of the second processor, so as to achieve balanced allocation of computing power and improve data processing efficiency.
Through the combination of dual processors and dual operating systems, data processing efficiency is improved, multiple data streams can be processed more effectively, and the processing capability of domain controllers is improved.
Smart Images

Figure CN117130788B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of automobile technology, and relates to but is not limited to a data processing method, a domain controller, a device and a storage medium. Background Art
[0002] As vehicle technology continues to advance, domain controllers are required to process more and more data.
[0003] In a domain controller, processing of video data, audio data and other data is generally achieved through a single chip, resulting in low processing efficiency. Summary of the invention
[0004] The present application provides a data processing method, a domain controller, a device and a storage medium. The solution can process the target data stream through dual processors and dual operating systems, achieve balanced distribution of computing power, and improve processing efficiency.
[0005] The technical solution of this application is implemented as follows:
[0006] In a first aspect, the present application provides a data processing method, the method being applied to a domain controller, the domain controller comprising a first processor and a second processor; the method comprising:
[0007] The first service stores the target data stream in the first shared memory; the first service runs on the first operating system on the first processor;
[0008] The second service obtains the target data stream from the first shared memory; the second service runs on a second operating system on the first processor;
[0009] The second service processes the target data stream and sends it to the third service for use by business applications related to the target data stream on the second processor; wherein the third service runs on a second operating system on the second processor.
[0010] In a second aspect, the present application provides a domain controller, the domain controller comprising a first processor and a second processor;
[0011] The first processor is used to: store the target data stream to the first shared memory through the first service; the first service runs the first operating system on the first processor; obtain the target data stream from the first shared memory through the second service; the second service runs the second operating system on the first processor; encode and compress the target data stream through the second service and send it to the third service for use by the second processor; wherein the third service runs the second operating system on the second processor.
[0012] In a possible implementation manner, at least one computer program is running on the domain controller, and when the domain controller is running on a vehicle device, it is used to implement the data processing method according to any one of claims 1 to 7.
[0013] In a third aspect, the present application further provides a vehicle device comprising: the vehicle device comprises a domain controller, the domain controller comprises a first processor, a second processor and a memory, a computer program is stored on the memory, and when the computer program is executed by the first processor and / or the second processor, the data processing method provided in the above-mentioned first aspect is implemented.
[0014] In a fourth aspect, the present application also provides a storage medium on which a computer program is stored, and the computer program implements the above-mentioned data processing method when executed by a processor.
[0015] The data processing method, apparatus, device and storage medium provided in the present application are applied to a domain controller, wherein the domain controller includes a first processor and a second processor; including: a first service stores a target data stream in a first shared memory; the first service runs a first operating system on the first processor; a second service obtains the target data stream from the first shared memory; the second service runs a second operating system on the first processor; the second service processes the target data stream and sends it to a third service for use by business applications related to the target data stream on the second processor; wherein the third service runs the second operating system on the second processor.
[0016] It can be seen that: for the solution of the present application, when processing the target data stream, it is implemented through the combination of dual processors and dual operating systems. Specifically, the first service running on the first operating system of the first processor is used to obtain and store the target data stream; and the obtained target data stream is stored in the first shared memory for acquisition by the second service running on the second operating system of the first processor. For data that needs to be used by the second processor, after the first service obtains the target data stream, the first service processes the target data stream and sends it to the second service for use by business applications related to the target data stream on the second processor. In this way, on the one hand, the balanced distribution of computing power is achieved through dual processors to improve processing efficiency. On the other hand, the cooperation of dual operating systems further improves data processing efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 A schematic diagram of a first optional structure of a domain controller provided in an embodiment of the present application;
[0018] Figure 2A schematic diagram of a first optional flow chart of a data processing method provided in an embodiment of the present application;
[0019] Figure 3 A second optional flow chart of the data processing method provided in the embodiment of the present application;
[0020] Figure 4 A third optional flow chart of the data processing method provided in the embodiment of the present application;
[0021] Figure 5 An optional structural diagram of the A and B cores provided in the embodiment of the present application;
[0022] Figure 6 An optional structural diagram of the interface relationship between the A and B cores provided in the embodiment of the present application;
[0023] Figure 7 An optional structural diagram of the software architecture of the A and B cores provided in the embodiment of the present application;
[0024] Figure 8 An optional structural diagram of the software and hardware architecture of the A and B core parts provided in an embodiment of the present application. DETAILED DESCRIPTION
[0025] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the specific technical solution of the application will be further described in detail below in conjunction with the drawings in the embodiments of the present application. The following embodiments are used to illustrate the present application, but are not used to limit the scope of the present application.
[0026] In the following description, reference is made to “some embodiments”, which describe a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0027] In the following description, the terms "first\second\third" are used only as examples to distinguish different objects, and do not represent a specific order for the objects, nor do they have a limitation on the order of precedence. It is understandable that "first\second\third" can be interchanged with a specific order or order of precedence where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0028] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.
[0029] The embodiments of the present application provide a data processing method, device, equipment and storage medium. In practical applications, the data processing method can be implemented by a data processing device, and each functional entity in the data processing device can be collaboratively implemented by hardware resources of an electronic device (such as a vehicle device), such as computing resources such as a processor, and communication resources (such as for supporting various communication methods such as optical cables and cellular).
[0030] The following describes various embodiments of the data processing method, apparatus, device, and storage medium provided in the embodiments of the present application.
[0031] In the first aspect, the embodiment of the present application provides a data processing method, which is applied to a data processing device. The function implemented by the method can be implemented by calling a program code by a processor or a domain controller in a vehicle device, and of course the program code can be stored in a computer storage medium. It can be seen that the vehicle device or the domain controller at least includes a processor and a storage medium.
[0032] Below, the data processing method provided in the embodiment of the present application is described by taking the domain controller as the execution subject as an example.
[0033] A domain controller refers to an electronic device with relevant data processing capabilities. For example, the domain controller may be a cockpit domain controller of a vehicle device.
[0034] The domain controller includes a first processor and a second processor; the first processor and the second processor can communicate with each other.
[0035] The first processor may refer to a main processor or a sub-processor.
[0036] The second processor is different from the first processor. When the first processor refers to a main processor, the second processor refers to a sub-processor; when the first processor refers to a sub-processor, the second processor refers to a main processor.
[0037] Exemplarily, the first processor and the second processor may be integrated into a cabin domain controller (CDC) shell.
[0038] Multiple operating systems are running on the first processor and the second processor. Exemplarily, the first processor runs the first operating system and the second operating system; the second processor runs the first operating system and the second operating system.
[0039] In a possible implementation, the first processor and the second processor may be deployed on different boards. For example, the first processor is deployed on board 1, and the second processor is deployed on board 2.
[0040] The embodiment of the present application does not specifically limit the communication method between the first processor and the second processor, and can be configured according to actual conditions.
[0041] Example 1: The second processors may be connected to each other via Ethernet to communicate data via Ethernet.
[0042] Example 2: The first processor and the second processor may be connected via a conversion chip to communicate data via the conversion chip.
[0043] The first processor and the second processor may also include multiple external interfaces, connected to a camera, a display screen, a radio, a Wireless Fidelity (WIFI) network, a Universal Serial Bus (USB) device, and the like.
[0044] Exemplary, reference Figure 1 As shown in the figure, the domain controller 10 includes a first processor 101 and a second processor 102. The first processor 101 and the second processor 102 communicate data via Ethernet 103.
[0045] The first processor 101 includes a first operating system 1011 and a second operating system 1012 running on the first processor 101 .
[0046] The second processor 102 includes a first operating system 1021 and a second operating system 1022 running on the second processor 102 .
[0047] The first operating system 1011 is an operating system of a different type from the second operating system 1012 .
[0048] Figure 2 Schematic diagram of the data processing method of the present application embodiment. Figure 2 As shown, the process may include but is not limited to the following S201 to S203.
[0049] S201. A first service stores a target data stream in a first shared memory.
[0050] The first service runs on a first operating system on the first processor.
[0051] The first operating system is any real-time operating system.
[0052] The embodiment of the present application does not limit the specific type of the first operating system, and can be configured according to actual needs. For example, the first operating system can be a QNX operating system.
[0053] The first processor here can be a main processor or a sub-processor, and can be configured according to actual conditions.
[0054] The target data stream refers to the data stream to be processed. The specific type and content of the target data stream are not limited in the embodiment of the present application, and can be determined according to actual needs. Exemplarily, the target data stream may include: video data, audio data, audio and video data, map data, etc.
[0055] The target data stream here can be the original video stream or processed video stream captured by the camera, or the obtained map data, etc.
[0056] The first shared memory refers to a memory accessible to both the first operating system and the second operating system running in the first processor. The present application embodiment does not limit the storage location and storage size of the first shared memory, and can be configured according to actual conditions.
[0057] In a possible real-time manner, S201 may be implemented as follows: the first service obtains data (map data or video data) collected by other devices (such as cameras) as a target data stream, and stores the target data stream in a first shared memory.
[0058] In a possible real-time manner, S201 may be implemented as follows: the first service determines the data generated by the first processor as a target data stream, and stores the target data stream in the first shared memory.
[0059] Since the processing speed of the real-time operating system is relatively fast, the target data stream to be processed is obtained through the first service (the first operating system running on the first processor), which has the characteristics of high efficiency. In addition, the first service stores the target data stream in the first shared memory, which can realize the sharing of the target data stream by the first operating system and the second operating system in the first processor, thereby increasing the flexibility of processing in the application process.
[0060] S202: The second service obtains the target data stream from the first shared memory.
[0061] The second service runs on a second operating system on the first processor.
[0062] The second operating system is any intelligent operating system.
[0063] The embodiment of the present application does not limit the specific type of the second operating system, and can be configured according to actual needs. Exemplarily, the second operating system can be an Android operating system.
[0064] Since the first shared memory is a memory accessible to both the first operating system and the second operating system running in the first processor, and the second service runs on the second operating system on the first processor, the second service can access the shared memory to obtain the target data stream.
[0065] S203: The second service processes the target data flow and sends it to the third service for use by a business application related to the target data flow on the second processor.
[0066] The third service runs on a second operating system on the second processor.
[0067] The second service is a real-time streaming control service of a second operating system running on the first processor; and the third service is a real-time streaming control service of a second operating system running on the second processor.
[0068] The embodiment of the present application does not limit the specific types of the first service and the second service. For example, the first service may be a service of a real-time streaming protocol (RTSP) server. The second service may be a service of an RTSP client.
[0069] The present application embodiment does not specifically limit the processing process of the third service after acquiring the target data stream, and can be configured according to actual conditions. For example, when the target data stream is map data, further overlay processing can be performed in the second processor.
[0070] S203 may be implemented as follows: the data transmission protocol specified in the second service and the third service of the domain controller is used to realize the transmission of the target data stream. Specifically, the target data stream is encoded and compressed and then sent from the second service to the third service for use by the business application related to the target data stream on the second processor.
[0071] The target data stream between the first service and the second service may be transmitted via Ethernet; or may be transmitted via a conversion chip.
[0072] The embodiments of the present application do not impose any unique restrictions on the specific method of encoding and the specific method of compression, and can be configured according to actual conditions.
[0073] Coding can improve the security of data transmission, and compression can improve the transmission efficiency of data transmission.
[0074] The data processing method provided in this embodiment of the present application is applied to a domain controller, and the domain controller includes a first processor and a second processor; the method includes: a first service stores a target data stream to a first shared memory; the first service runs a first operating system on the first processor; a second service obtains the target data stream from the first shared memory; the second service runs a second operating system on the first processor; the second service processes the target data stream and sends it to a third service for use by business applications related to the target data stream on the second processor; wherein the third service runs the second operating system on the second processor.
[0075] It can be seen that: for the solution of the present application, when processing the target data stream, it is implemented through the combination of dual processors and dual operating systems. Specifically, the first service running on the first operating system of the first processor is used to obtain and store the target data stream; and the obtained target data stream is stored in the first shared memory for acquisition by the second service running on the second operating system of the first processor. For data that needs to be used by the second processor, after the first service obtains the target data stream, the first service encodes and compresses the target data stream and sends it to the second service for use by business applications related to the target data stream on the second processor. In this way, on the one hand, the balanced distribution of computing power is achieved through dual processors to improve processing efficiency. On the other hand, the cooperation of dual operating systems further improves data processing efficiency.
[0076] The data processing method provided in the embodiment of the present application may further include applying the first processor to the target data stream.
[0077] Specifically, refer to Figure 3 The data processing method may also include but is not limited to the following S204.
[0078] S204: A fourth service calls the target data stream for use by a business application related to the target data stream on the first processor.
[0079] The fourth service runs on the first operating system or the second operating system on the first processor.
[0080] The fourth service here can be any application.
[0081] The embodiment of the present application does not limit the specific type of the fourth service, and can be configured according to actual conditions. For example, when the target data stream is a video stream collected by a camera, the fourth service can be a camera application. When the target data stream is a map data stream, the fourth service can be a navigation application or a map application.
[0082] It can be seen that for the target data stream that still needs to be processed by the first processor, it can be directly called through the fourth service. In this way, the target data stream can be used simultaneously by the business applications related to the target data stream on the first processor and the second processor, that is, it can be applied to multiple scenarios without affecting each other. Furthermore, the target data stream can also be used simultaneously by the first processor and the second processor, which improves the application efficiency. Furthermore, when the target data stream is used by different applications, the application can be configured to different processors, the first processor or the second processor according to actual needs; it can also be further configured to the first operating system or the second operating system of the first processor, and the first operating system or the second operating system of the second processor, which has the characteristics of flexible implementation and a wide range of applications.
[0083] In practice, applications with high real-time requirements can be configured to the first operating system, and applications with low real-time requirements but high intelligence requirements can be configured to the second operating system.
[0084] Next, the first operating system and the second operating system are described.
[0085] In a possible implementation manner, the first operating system includes: a QNX operating system or a UNIX operating system;
[0086] The second operating system includes: Android operating system, Apple operating system or Hongmeng operating system.
[0087] The first operating system may also be other real-time operating systems, which are not listed here one by one. The second operating system may also be other intelligent operating systems, which are not listed here one by one.
[0088] The following describes the process in S201 where the first service stores the target data stream into the first shared memory.
[0089] In a possible implementation, when the first processor is a sub-processor, the sub-processor is connected to a camera of an occupancy monitoring system (OMS) and / or a driver monitoring system (DMS), and the target data stream includes video data, the process can be implemented as the following S2011 and S2012.
[0090] Passenger Monitoring System, a system used to monitor passenger behavior to improve safety.
[0091] The video data of the passenger monitoring system refers to the video data of passengers collected in the passenger monitoring system.
[0092] Driver monitoring system is a system used to monitor driver behavior and improve driving safety.
[0093] The video data of the driver monitoring system refers to the video data of the driver collected by the driver monitoring system.
[0094] S2011. The first service collects the video data of the camera of the OMS and / or the DMS.
[0095] Since the sub-processor is connected to the camera of the OMS and / or DMS, the first service running on the sub-processor (first processor) can collect video data from the camera of the OMS and / or DMS, and use the collected video data as the target data stream to be processed.
[0096] S2012. The first service stores the video data in the first shared memory.
[0097] The first service stores the video data in the first shared memory.
[0098] Correspondingly, after the video data is stored in the first shared memory, the second service obtains the video data from the first shared memory; the video data is encoded and compressed by the second service and then sent to the third service for use by the second processor.
[0099] It can be seen that for the video data of the cameras of the OMS and / or DMS, the data processing method provided in the embodiment of the present application can be used to transmit the video data of the cameras of the OMS and / or DMS on the first processor side to the second processor side for use by the second processor, thereby improving the application scenarios of the video data, being able to process the video data in multiple scenarios, and being efficient and flexible.
[0100] Next, the process of processing map data is described.
[0101] In the case where the first processor is a main processor, the second processor is a sub-processor, and the target data stream includes first map data.
[0102] In this case, first, the first service stores the first map data in the first shared memory; the second service obtains the first map data from the first shared memory; and the third service encodes and compresses the first map data and sends it to the third service for use by the sub-processor.
[0103] In other words, after S203 , that is, after the first map data is transmitted to the sub-processor, further processing is performed on the sub-processor and then returned to the main processor after processing.
[0104] Specifically, refer to Figure 4As shown in the content, the process of processing the map data may include but is not limited to the following S401 to S406.
[0105] S401: The first service stores first map data in a first shared memory.
[0106] In a possible implementation, the first map data includes lane guidance data. In short, the first map data is partial map data, that is, map data of a key area that needs to be displayed.
[0107] For the specific implementation of S401, reference may be made to the detailed description in S201, which will not be described in detail here.
[0108] S402: The second service obtains first map data from the first shared memory.
[0109] For the specific implementation of S402, reference may be made to the detailed description in S202, which will not be described in detail here.
[0110] S403: The second service processes the first map data and sends the processed first map data to the third service for use by an upper layer application on the sub-processor that is related to the first map data.
[0111] For the specific implementation of S403, reference may be made to the detailed description in S203, which will not be described in detail here.
[0112] S404: The third service stores the first map data in a second shared memory.
[0113] The second shared memory refers to a memory accessible to both the first operating system and the second operating system running in the second processor. The storage location and storage size of the second shared memory are not limited in the present embodiment and can be configured according to actual conditions.
[0114] In other words, in this process, the second shared memory is a memory that can be accessed by both the first operating system and the second operating system running in the sub-processor.
[0115] For the specific implementation of S404, reference may be made to the detailed description in S201, which will not be described in detail here.
[0116] S405: The fifth service obtains the first map data from the second shared memory; and superimposes the first map data with auxiliary data to obtain second map data.
[0117] The fifth service runs on the first operating system on the sub-processor.
[0118] The auxiliary data includes at least one of the following: vehicle model data, instrument data and travel data.
[0119] The cockpit and the controller overlay the first map data and the auxiliary data into one layer through a rendering engine (such as Unity) in the sub-processor, and use the data overlaid into one image as the second map data.
[0120] In a possible implementation, the second map data may be superimposed with the first map data and the vehicle model data.
[0121] In yet another possible implementation, the second map data may be superimposed with the first map data, instrument data, and travel data.
[0122] In yet another possible implementation, the second map data may be superimposed with the first map data, instrument data, travel data, and vehicle model data.
[0123] The vehicle model here refers to the three-dimensional model of the vehicle equipment to which the domain controller belongs.
[0124] S406: The fifth service processes the second map data and sends the processed second map data to the sixth service, so that the second map data is sent to a remote screen for display based on the sixth service.
[0125] The sixth service runs on the first operating system on the main processor.
[0126] Among them, the process of the fifth service encoding and compressing the second map data and sending it to the main processor is similar to the process of the first service encoding and compressing the first map data and sending it to the sub-processor. The specific implementation can refer to the detailed description of S203, which will not be repeated here.
[0127] Exemplarily, the remote screen refers to a display screen located in front of the driver's field of vision and used to replace the instrument panel.
[0128] The main processor and the remote screen are pre-connected, so the second map data can be sent to the remote screen for display via the main processor.
[0129] In this way, the remote screen can display information superimposed with lane guidance data, instrument data, travel data, and vehicle model data. Displaying navigation information on the remote screen can improve the convenience of navigation, thereby improving the safety performance of vehicle driving.
[0130] In a possible implementation manner, the first map data includes lane guidance data; and the auxiliary data includes at least one of the following: vehicle model data, instrument data, and trip number.
[0131] The execution timing of the first service storing the target data stream in the first shared memory in S201 is described below.
[0132] In a possible implementation manner, the above S201 is performed for the target data stream in any case. That is, for the target data stream in any case, the data processing method provided in the embodiment of the present application is performed.
[0133] In another possible implementation, when the target data stream meets the preset conditions, the above S201 is executed. In this possible implementation, the resolution and transmission rate of the target data stream are detected; it is determined whether the resolution of the target data stream is less than the resolution threshold and whether the transmission rate is less than the transmission rate threshold; when the resolution of the target data stream is less than the resolution threshold and the transmission rate is less than the transmission rate threshold, the first service is executed to store the target data stream in the first shared memory; the first service runs on the first operating system on the first processor; the second service obtains the target data stream from the first shared memory; the second service runs on the second operating system on the first processor; the second service processes the target data stream and sends it to the third service for use by the business application related to the target data stream on the second processor; wherein the third service runs on the second operating system on the second processor.
[0134] That is, when the target data stream meets the preset conditions, the data processing method provided in the embodiment of the present application is executed.
[0135] Among them, the specific values of the resolution threshold and the transmission rate threshold can be configured according to actual needs, and the embodiments of the present application do not make specific limitations on this.
[0136] It should be noted that when the target video stream does not meet the preset conditions, data can also be transmitted by direct video transmission, which can ensure the transmission efficiency of data with high real-time requirements and achieve load balancing.
[0137] Below, taking the first processor as A core and the second processor as B core as an example, the data processing method provided in the embodiment of the present application is described.
[0138] First, the hardware structure of the A and B cores is described.
[0139] refer to Figure 5The content shown includes: A core 501, B core 502. A core 501 and B core 502 are integrated in the CDC shell. The connection between A core 501 and B core 502 includes: B2B connector 503, Ethernet 504, video conversion transmission 505, high-speed serial computer expansion bus (peripheral component interconnect express, PCIE) 506, physical port (Physical, PHY) 507. Among them, PHY507 can be connected to gateway (GateWay, GW) 5071 through Ethernet, and GW5071 is connected to microcontroller unit (Microcontroller Unit, MCU) 5072 through variable speed CAN bus (CAN with Flexible Data rate, CANFD).
[0140] The A core 501 can be connected to multiple external devices, including: a central control screen 5011, a 2K screen 5012, an analog microphone (MIC) 5013, an analog power amplifier 5014, a connector (AMP) 5015, a USB 5016, an electronic exterior rearview mirror 5017, and a reserved 2K screen 5018.
[0141] The B core 502 can be connected to multiple external devices, including: a reserved 2K screen 5021, a remote screen 5022, a DMS / OMS 5023, and a 360 panoramic camera 5024.
[0142] Next, the interface relationship between the A and B cores is described.
[0143] refer to Figure 6 As shown, the A core 601 is connected to the conversion chip 1 603 (MIPI convert) through the DSI1 interface 6011, the A core 601 is connected to the conversion chip 2 604 (DP2MIPI convert) through the CSI interface 6012, the A core 601 is connected to the remote screen 605 through the DP interface 6013 and DS60UB983, the A core 601 is connected to the central control screen 606 through the DSI0 interface 6014 and DS60UB981, and the A core 601 is connected to the RGMII interface 6021 in the B core 602 through the PCIE interface 6015 and the network converter (Eth Switch).
[0144] The B core 602 is connected to the conversion chip 2 604 (DP2MIPI convert) via the DP interface 6022, the B core 602 is connected to the conversion chip 1 603 (MIPI convert) via the CSI interface 6023, and the B core 602 is connected to the DMS / OMS 607 via the CSI interface 6024 and MAX96712. Figure 6The dotted line in the figure represents the camera data transmission link, and the solid line represents the display screen data transmission link.
[0145] Next, the software architecture of the A and B cores is described.
[0146] refer to Figure 7 The content shown includes A core 701 and B core 702. Among them, A core 701 includes QNX operating system 7011, Android operating system 7012 and virtual machine (Hypervisor) 7013. B core 702 includes QNX operating system 7021, Android operating system 7022 and virtual machine (Hypervisor) 7023.
[0147] Among them, the data transmission link between A and B cores can refer to Figure 7 The link is shown in solid line.
[0148] For example, core A has complete map data (similar to the map navigation data displayed on the central control screen), and part of the map data (mainly turn arrows, etc.) will be transmitted from core A to core B (corresponding to the virtual display screen) through the virtual display screen. Figure 7 In the B core, this part of the map data and the 3D model (for example, the 3D vehicle model) are superimposed using the unity engine. The purpose is to superimpose the 3D model and part of the map data on one layer. The superimposed data is then transmitted from the B core to the A core through the virtual display screen (corresponding to Figure 7 In the DP to Cam driver line), the A core calls the display interface of the remote screen to display on the remote screen.
[0149] The display effects achieved include: complete map data is displayed on the central control screen, and partial map data and 3D models are displayed on the remote screen.
[0150] The transmission process of DMS / OMS data may include: DMS / OMS data is obtained through the QNX camera driver (camdriver) of the B core and stored in the shared memory, the Android AIS Client Lib of the B core reads and encodes from the shared memory and sends it to the RTSP server, the RTSP server obtains the encoded video stream and compresses it, and transmits it to the RTSP client of the A core via Ethernet, and the camera application of the A core can obtain the video stream through V4L2 for use by the upper-layer application of the A core.
[0151] The camera application of the B-core Android can also obtain the video stream through V4L2 (the A-core and B-core use the same architecture) for use by the upper-layer application of the A-core.
[0152] Among them, the video driver (Video4Linux, V4L2) is a driver framework for video acquisition related devices under Linux, which provides a unified interface specification for drivers and applications.
[0153] Below, some of the software and hardware architecture of the A and B cores are explained.
[0154] refer to Figure 8 The content shown includes A core 801 and B core 802. Among them, A core 801 includes QNX operating system 8011, Android operating system 8012 and virtual machine (Hypervisor) 8013. B core 802 includes QNX operating system 8021, Android operating system 8022 and virtual machine (Hypervisor) 8023.
[0155] The QNX operating system 8021 of the B core 802 includes: WFD_Client 80211 and WFD_Server 80212, and the external interface in the WFD_Server 80212 is connected to the A core 801. The virtual machine (Hypervisor) 8023 of the B core 802 is fed back to the WFD_Client 80211 through HAB and WFD_BE.
[0156] The Android operating system 8022 of the B core 802 includes: APP80221, Fwk80222, hardwarecomposer80223, and UHAB80224. Among them, UHAB80224 is connected to Hypervisor8023.
[0157] The QNX operating system 8011 of the A core 801 includes: Cluster APP 80111, display screen 80112, WFD_Client 80113, WFD_Server 80114. The external interface in WFD_Server 80114 is respectively connected to the B core 801, the central control screen 803, and the remote screen 804. The virtual machine (Hypervisor) 8013 of the A core 801 is fed back to the WFD_Client 80113 through HAB and WFD_BE.
[0158] The Android operating system 8012 of the A core 801 includes: APP80121, Fwk80122, hardwarecomposer80123, and UHAB80124. Among them, UHAB80124 is connected to Hypervisor8013.
[0159] Next, the processing division of each operating system of the A and B cores is explained.
[0160] After the video data is received by the B core, the processing by the B core Android system includes: forwarding the data (forwarding via Ethernet or video link), transmitting the video data to the A core.
[0161] The processing performed by the B-core QNX system includes: face recognition, gesture recognition and other processing based on video data.
[0162] The processing by the A-core Android system includes: application layer processing based on video data, such as processing of applications such as photo taking.
[0163] The processing by the A-core QNX system includes: transmitting the processed video data to the central control screen and the remote screen for display.
[0164] Next, the processing of map data in A, B and different operating systems is described.
[0165] Among them, the complete map data (road network, lane guidance, etc.) is displayed on the vehicle's central control screen, and only part of the map data (such as lane guidance data) is displayed on the vehicle's remote screen.
[0166] Including: the vehicle's central control screen uses the existing method to display the complete map data. Core A distinguishes the lane guidance data and other data in the complete map data of the map application, the QNX system of core A stores the lane guidance data in the shared memory, the Android system of core A reads the lane guidance data in the shared memory, and sends the lane guidance data to the Android system of core B. The QNX system of core B overlays the lane guidance data, instrument data, vehicle travel data, etc., and sends them to core A through the Android system of core B. Core A sends the overlaid map data to the remote screen of the vehicle for display.
[0167] In a second aspect, an embodiment of the present application provides a domain controller, wherein the domain controller includes a first processor and a second processor;
[0168] The first processor is used to: store the target data stream to the first shared memory through the first service; the first service runs on the first operating system on the first processor; obtain the target data stream from the first shared memory through the second service; the second service runs on the second operating system on the first processor; encode and compress the target data stream through the second service and send it to the third service for use by the second processor; wherein the third service runs on the second operating system on the second processor. .
[0169] In some embodiments, the first processor is further used to: call the target data stream through a fourth service for use by a business application related to the target data stream on the first processor; wherein the fourth service runs on the first operating system or the second operating system on the first processor.
[0170] In some embodiments, the first operating system includes: a QNX operating system or a UNIX operating system; the second operating system includes: an Android operating system, an Apple operating system, or a Hongmeng operating system.
[0171] In some embodiments, when the first processor is a sub-processor connected to a camera of an occupant monitoring system OMS and / or a driver monitoring system DMS, the target data stream includes video data,
[0172] The first processor is further configured to execute:
[0173] The video data of the camera of the OMS and / or the DMS is collected through the first service; and the video data is stored in the first shared memory through the first service.
[0174] In some embodiments, when the first processor is a main processor, the second processor is a sub-processor, and the target data stream includes first map data, after the first processor (main processor) completes processing the target data stream and sends it to the third service, the second processor (sub-processor) is used to execute:
[0175] The first map data is stored in the second shared memory through the third service; the first map data is obtained from the second shared memory through the fifth service; and the first map data is superimposed with auxiliary data to obtain second map data; the fifth service runs on the first operating system on the sub-processor; the fifth service processes the second map data and sends it to the sixth service, so as to send the second map data to the remote screen for display based on the sixth service; the sixth service runs on the first operating system on the main processor.
[0176] In some embodiments, the first map data includes lane guidance data; the auxiliary data includes at least one of the following: vehicle model data, instrument data, and travel data.
[0177] In some embodiments, the first processor or the second processor is further configured to: detect a resolution and a transmission rate of the target data stream; determine whether the resolution of the target data stream is less than a resolution threshold and whether the transmission rate is less than a transmission rate threshold;
[0178] When the resolution of the target data stream is less than the resolution threshold and the transmission rate is less than the transmission rate threshold, the first processor executes the first service to store the target data stream in the first shared memory.
[0179] It should be noted that the data processing device provided in the embodiment of the present application includes the various units included, which can be implemented by a processor in an electronic device; of course, it can also be implemented by a specific logic circuit; in the implementation process, the processor can be a central processing unit (CPU, Central Processing Unit), a microprocessor (MPU, Micro Processor Unit), a digital signal processor (DSP, Digital Signal Processor) or a field programmable gate array (FPGA, Field-Programmable Gate Array), etc.
[0180] The description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.
[0181] It should be noted that in the embodiment of the present application, if the above-mentioned data processing method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the relevant technology can be embodied in the form of a software product, which is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a disk or an optical disk. In this way, the embodiment of the present application is not limited to any specific combination of hardware and software.
[0182] In a third aspect, an embodiment of the present application provides a vehicle device, wherein the vehicle device includes a domain controller, wherein the domain controller includes a first processor, a second processor and a memory, wherein a computer program is stored in the memory, and when the computer program is executed by the first processor and / or the second processor, the steps in the data processing method provided in the first aspect of the above embodiment are implemented.
[0183] In a fourth aspect, an embodiment of the present application provides a storage medium, that is, a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps in the data processing method provided in the above embodiment are implemented.
[0184] It should be noted here that the description of the above storage medium and device embodiments is similar to the description of the above method embodiments, and has similar beneficial effects as the method embodiments. For technical details not disclosed in the storage medium and device embodiments of this application, please refer to the description of the method embodiments of this application for understanding.
[0185] It should be understood that "one embodiment" or "an embodiment" mentioned throughout the specification means that specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in some embodiments" appearing throughout the specification may not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application. The above-mentioned sequence numbers of the embodiments of the present application are for description only and do not represent the advantages and disadvantages of the embodiments.
[0186] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.
[0187] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.
[0188] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units; they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0189] In addition, all functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may be a separate unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0190] A person skilled in the art can understand that all or part of the steps of implementing the above method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above method embodiment; and the aforementioned storage medium includes: mobile storage devices, read-only memories (ROM), magnetic disks or optical disks, etc., various media that can store program codes.
[0191] Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application can be essentially or partly embodied in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including several instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0192] The above is only an implementation method of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A data processing method, characterized in that: The method is applied to a domain controller, the domain controller includes a first processor and a second processor; the method includes: The first service stores the target data stream in the first shared memory; the first service runs on the first operating system on the first processor; The second service obtains the target data stream from the first shared memory; the second service runs on a second operating system on the first processor; The second service processes the target data stream and sends it to the third service for use by business applications related to the target data stream on the second processor; wherein the third service runs on a second operating system on the second processor.
2. The method according to claim 1, characterized in that The method further comprises: The fourth service calls the target data stream for use by a business application related to the target data stream on the first processor; wherein the fourth service runs on the first operating system or the second operating system on the first processor.
3. The method according to claim 1, characterized in that The first operating system includes: a QNX operating system or a UNIX operating system; The second operating system includes: Android operating system, Apple operating system or Hongmeng operating system.
4. The method according to claim 1, characterized in that: In the case where the first processor is a subprocessor connected to a camera of an occupant monitoring system OMS and / or a driver monitoring system DMS, the target data stream includes video data, The first service stores the target data stream in the first shared memory, including: The first service collects the video data of the camera of the OMS and / or the DMS; The first service stores the video data in the first shared memory.
5. The method according to claim 1, characterized in that In the case where the first processor is a main processor, the second processor is a sub-processor, and the target data stream includes first map data, After the second service processes the target data stream and sends it to the third service, the method further includes: The third service stores the first map data in a second shared memory; The fifth service obtains the first map data from the second shared memory; and superimposes the first map data with auxiliary data to obtain second map data; the fifth service runs on the first operating system on the sub-processor; The fifth service processes the second map data and sends it to the sixth service, so that the second map data is sent to the remote screen for display based on the sixth service; the sixth service runs on the first operating system on the main processor.
6. The method according to claim 5, characterized in that The first map data includes lane guidance data; The auxiliary data includes at least one of the following: vehicle model data, instrument data and travel data.
7. The method according to claim 1, characterized in that The method further comprises: Detecting the resolution and transmission rate of the target data stream; Determine whether the resolution of the target data stream is less than a resolution threshold, and whether the transmission rate is less than a transmission rate threshold; When the resolution of the target data stream is less than the resolution threshold and the transmission rate is less than the transmission rate threshold, the step of storing the target data stream in the first shared memory by the first service is performed.
8. A domain controller, characterized in that: The domain controller includes a first processor and a second processor; The first processor is used to: store the target data stream into the first shared memory through the first service; the first service runs on the first operating system on the first processor; Acquire the target data stream from the first shared memory through a second service; The second service runs on a second operating system on the first processor; The target data stream is encoded and compressed by the second service and then sent to a third service for use by the second processor; wherein the third service runs on a second operating system on the second processor.
9. A vehicle device, characterized in that: The vehicle equipment includes a domain controller, which includes a first processor, a second processor and a memory, wherein a computer program is stored in the memory, and when the computer program is executed by the first processor and / or the second processor, the data processing method described in any one of claims 1 to 7 is implemented.
10. A computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium, and when the computer program on the computer-readable storage medium is executed, the data processing method according to any one of claims 1 to 7 is implemented.
Citation Information
Patent Citations
Cabin area controller system based on X9 platform and Xen technology and application method
CN112947235A
Intelligent cabin area controller based on CPU hard isolation system design method
CN114879551A