Method for providing application data of an application that can be implemented in a vehicle control device, control device and calibration method thereof, and analysis and processing device
By using PMD or other communication applications in the microprocessor, combined with modern operating systems and memory virtualization, the problems that existing control equipment cannot apply to modern operating systems has been solved. sex.
Patent Information
- Application Number
- CN201980024091.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-04-06
- Filing Date
- 2019-03-19
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2039-03-19
AI Technical Summary
The existing motor vehicle control equipment lacks a memory management unit and cannot be used in modern operating systems such as Linux or QNX, limiting its application in driver assistance systems.
By using PMD or other communication applications in the microprocessor, read and write measurement and calibration data in virtual memory, combined with modern operating systems and memory virtualization, using the XCP protocol to provide measurement and calibration interfaces.
The use of modern operating systems and memory virtualization in the driver's auxiliary control device to ensure the efficient management of the memory, and can continue to use existing measurement technical protocols to reduce the matching expenses of technological changes.
Smart Images

Figure CN111954871B_ABST
Abstract
Description
Technical Field
[0001] The invention is based on a method or a control device for providing application data of at least one application. The subject matter of the invention is also a computer program. Background Art
[0002] Conventional microcontrollers with integrated peripheral components (e.g. flash or RAM memory) are often used in control devices for motor vehicles. Such modules usually do not have a memory virtualization mechanism with a memory management unit (MMU). For example, the measurement and adjustment of parameters can be realized via the XCP protocol (Universal Measurement and Calibration Protocol). In this case, any memory cell can be read and displayed on the measurement technology computer. Due to the lack of a memory management unit, such control devices are usually not suitable for use with modern operating systems (e.g. Linux or QNX).
[0003] Modern microprocessors with fast computing units, external memory and memory management units are already used in infotainment control units today. Operating systems with memory virtualization are sometimes used here. In this case, mainly simple logging mechanisms are used that limit the parameterization of the system.
[0004] Modern operating systems and microprocessors play an important role in driver assistance systems. These require extensive measurement and calibration possibilities. Summary of the invention
[0005] Against this background, with the aid of the solution presented here, a method according to the present invention for providing application data of at least one application that can be implemented on a control device of a vehicle, a control device using this method, a method for calibrating the control device, an analysis device using this method, and a corresponding computer program are proposed.
[0006] The approach proposed here is based on the knowledge that in microprocessors (e.g., microprocessors used in control units for driver assistance systems) PMD (PMD=Process Measurement Daemon) or other communication applications that can be implemented in virtual memory for communication with a measurement computer outside the control unit can be used. This makes it possible to easily read measurement and calibration data from differently allocated memory areas of the microprocessor—that is, independently of the actual memory mapping managed by the virtual memory.
[0007] Furthermore, the solution presented here describes how a measurement and calibration interface with XCP can be used on microprocessors with modern operating systems and memory virtualization. This possibility is essential for driver assistance control devices (e.g. for autonomous driving). The solution presented here makes it possible in particular to implement an XCP measurement technology interface under POSIX-compliant operating systems (Portable Operating System Interface).
[0008] This has the advantage that already established measurement technology protocols including corresponding PC tools can continue to be used in driver assistance control units. New microprocessor-based systems with memory virtualization can thus continue to be analyzed and calibrated with the aid of established measurement tools. The adaptation effort in the area of measurement technology can thus be reduced to a minimum in view of the far-reaching technological changes in control units.
[0009] A method is proposed for providing application data of at least one application executable on a control unit of a vehicle, wherein the control unit comprises a component for executing an operating system with virtual memory management, wherein the method comprises the following steps:
[0010] Reading an application address space of the first virtual memory, wherein the application address space is allocated to the process of the application and maps an area of the physical memory of the control device occupied by the application data;
[0011] An application address space of a further virtual memory is superimposed into the virtual address space which is assigned to a process of a communication application for exchanging data with an external evaluation device via a communication interface in order to provide application data via the communication interface.
[0012] Application data may, for example, relate to measurement or calibration data. Application data may be used and / or created by the process of the application or may have been used and / or created. A control device may, for example, be understood as a motor control device or a device for controlling a driver assistance function. An application may be understood as a computer program or software. An application may, for example, be understood as a mechanism of a program that acts as a slave. An application may be particularly implementable in a virtual process area. A component may, for example, relate to a microprocessor or microcontroller or a volatile or non-volatile memory. An operating system may, in particular, relate to an operating system that complies with POSIX, and may, in particular, also relate to a real-time operating system such as Linux or QNX. Virtual memory management may be understood as the following type of memory management: in this memory management, the memory addresses generated by the application constitute a virtual address space, the addresses of which do not directly enter the memory bus, but enter the memory management unit. This maps the virtual address to the address of the actual physical memory. In this sense, a virtual address space may be understood as an address space independent of the physical memory, which the operating system assigns to the process. Accordingly, the application address space can be understood as a virtual address space assigned to the application process by the operating system, which in turn points to a certain address space of the physical memory. The application address space of the application and / or the virtual address space of the communication application can have data in the form of a pointer, which points to a storage segment of the physical memory.
[0013] Physical memory can be understood as volatile or non-volatile memory, for example in the form of flash memory or RAM memory. Physical memory can be integrated in a microprocessor or microcontroller of a control device or implemented as an external memory, for example. Communication applications can be understood in particular as programming tools for code analysis, process measurement daemons (so-called PMDs), etc. A communication interface can be understood, for example, as a measurement and calibration interface for exchanging measurement and calibration data, for example, via an XCP protocol or other suitable network protocols. In terms of hardware, a communication interface can be constructed as a radio interface or a wired interface (for example, an Ethernet interface). An analysis device external to a control device can be understood, for example, as a measurement and calibration computer (for example, in the form of a laptop or PC) that can be coupled to a control device. The communication interface can have a protocol layer separated from a transport layer, so that, for example, a transport layer based on a CAN bus can be used.
[0014] According to one embodiment, in the providing step, the application data can be provided via an XCP interface as a communication interface. The XCP interface can be understood as an interface for data exchange via a standardized measurement and calibration protocol (also called a universal measurement and calibration protocol) for control device calibration. This ensures the universal applicability of the method.
[0015] The process of the communication application can be designed to carry out the reading step and the superimposing step without the aid of a hardware unit for memory management. Thus, the control device can be implemented without a so-called MMU (Memory Management Unit).
[0016] According to another embodiment, at least one physical address and / or virtual address of the application data can be read as the application address space in the reading step. The physical address can be understood as the location of the occupied area of the physical memory. The virtual address can be understood as the area of the virtual memory pointing to the physical address. This embodiment can ensure that the application address space is obtained effectively and reliably.
[0017] In addition, in the step of superimposing, the application address space can be superimposed into the virtual address space by means of a POSIX-based operating system of the control device. A POSIX-based operating system can be understood as an operating system that complies with POSIX, an operating system that complies with POSIX to a large extent, or an operating system that becomes POSIX-compliant through compatibility extensions. This embodiment can achieve efficient memory management.
[0018] According to another embodiment, the application address space can be read in response to a predetermined event of a process assigned to the application. For example, the reading step can be performed in response to the start or end of a process assigned to the application. In this way, for example, current data can always be read through the communication interface.
[0019] In the reading step, a second virtual application address space of the second virtual memory can be read, which is assigned to a process of a second application that can be implemented on the control device and represents an area of the physical memory occupied by second application data of the second application. Accordingly, in the superimposition step, the second application address space can be superimposed on the virtual address space so that the second application data can be provided through the communication interface. The second application data can be used and / or created or has been used and / or created by the process of the second application. Since multiple virtual memories of multiple applications can be accessed through the process of the communication application, data of multiple different applications of the control device can be read and calibrated together through the communication interface.
[0020] The solution proposed here also realizes a control device, which is designed to execute, control or realize the steps of the variant of the method proposed here in a corresponding device. The implementation variant of the invention in the form of a control device can also quickly and effectively achieve the object based on the invention.
[0021] For this purpose, the control device may have at least one computing unit for processing signals or data, at least one storage unit for storing signals or data, at least one interface to a sensor or actuator for reading a sensor signal from a sensor or outputting a control signal to an actuator, and / or at least one communication interface for reading or outputting data embedded in a communication protocol. The computing unit may be, for example, a signal processor, a microcontroller, etc., wherein the storage unit may be a flash memory, an EPROM, or a magnetic storage unit. The communication interface may be configured to read or output data wirelessly and / or by wire, wherein a communication interface that can read or output wired data may, for example, electrically or optically read the data from a corresponding data transmission line or output the data to a corresponding data transmission line.
[0022] Here, a control device can be understood as an electrical device that processes sensor signals and outputs control signals and / or data signals accordingly. The control device can have an interface that can be configured in hardware and / or in software. In a configuration in hardware, the interface can, for example, be part of a so-called system ASIC that contains the most different functions of the control device. However, the interface can also be an integrated circuit of its own or at least partially include discrete components. In a configuration in software, the interface can, for example, be a software module that is also present on a microcontroller in addition to other software modules.
[0023] In an advantageous embodiment, the vehicle is controlled by a control device. For this purpose, the control device can access sensor signals (such as acceleration, pressure, steering angle or environmental sensor signals). The control is carried out by actuators of the vehicle (such as brake actuators or steering actuators) or motor control devices.
[0024] According to one embodiment, the control device may have at least one microprocessor, a physical memory, a first virtual memory assigned to an application, and a second virtual memory assigned to a communication application as units. This allows the control device to be implemented with high computing performance at relatively low manufacturing costs and low space requirements.
[0025] The solution proposed here also implements a method for calibrating a control device using the application data provided in the method according to one of the above embodiments, wherein the method comprises the following steps:
[0026] reading application data via the communication interface when using a communication application;
[0027] generating calibration information for adjusting at least one parameter of the control device using the application data; and
[0028] Output the calibration information to the communication interface in order to calibrate the control device.
[0029] The calibration information may be understood to be, for example, a description file for controlling parameters within the device (eg, an A2L file) or other information suitable for performing a measurement or adjustment operation.
[0030] The methods mentioned can be implemented, for example, in the form of software or hardware or in the form of a mixture of software and hardware, for example in a control unit.
[0031] The solution proposed here also provides an evaluation device having a unit designed to carry out and / or control the method according to the above-described specific embodiments. An evaluation device may be understood to be a computer external to the control unit or external to the vehicle.
[0032] Also advantageous is a computer program product or a computer program with a program code, which can be stored on a machine-readable carrier or storage medium (e.g. a semiconductor memory, a hard disk memory or an optical memory) and is used to execute, implement and / or control the steps of the method according to one of the embodiments described above, in particular when the program product or program is implemented on a computer or a device. BRIEF DESCRIPTION OF THE DRAWINGS
[0033] Embodiments of the present invention are shown in the drawings and are explained in more detail in the following description. The drawings show:
[0034] Figure 1 A schematic diagram showing the topology of multiple XCP slave devices;
[0035] Figure 2 Show Figure 1 Schematic diagram of the control equipment;
[0036] Figure 3 A schematic diagram showing a memory organization in a control device according to an embodiment;
[0037] Figure 4 Show Figure 2 A schematic diagram of a microprocessor;
[0038] Figure 5 A flow chart showing a method for providing application data according to an embodiment;
[0039] Figure 6 A flow chart showing a method for calibrating a control device according to an embodiment;
[0040] Figure 7 A schematic diagram of an evaluation device according to an exemplary embodiment is shown. DETAILED DESCRIPTION
[0041] In the following description of advantageous exemplary embodiments of the invention, identical or similar reference numerals are used for elements which are shown in different figures and act similarly, wherein a repeated description of these elements is omitted.
[0042] Figure 1 Schematic diagram showing two topologies of multiple XCP slaves. For better comparison, the topologies are shown above each other and separated from each other by dotted lines.
[0043] The topology above includes, for example, a first control device 100 representing a first XCP slave, a second control device 102 representing a second XCP slave, and a third control device 104 representing a third XCP slave. An evaluation device 106 external to the control device (here, for example, a measurement technology PC) is coupled to each of the three control devices 100, 102, 104 via an XCP interface as a communication interface 108 for measurement and calibration purposes. The complete control device 100, 102, 104 is considered an XCP slave in each case. In this case, the evaluation device 106 can communicate simultaneously with a plurality of slaves (for example, an ESP control device and a motor control device), for example, in order to exchange measurement data and / or calibration data.
[0044] The following topology shows a control device 110 according to an exemplary embodiment of the approach proposed here. According to the approach proposed here, each instance of an application in the control device 110 is now considered an XCP slave. A first application 112, a second application 114, a third application 116 and a communication application 118 are shown as examples of entities that can be implemented in the control device 110. The communication application 118 is designed to communicate with the evaluation device 106 via the external communication interface 108, that is, to write data to the corresponding control device 110 or read data from the control device 110.
[0045] The control device 110 shown in the topology below (e.g., a POSIX control device with virtual memory management) is coupled to the analysis device 106 via a communication interface 108 in a similar manner to the control devices 100, 102, 104 shown in the topology above. Different applications 112, 114, 116, 118 can be implemented on the control device 110 in the corresponding virtual memory areas of the operating system. In this case, the first application 112 represents the first XCP slave device, the second application 114 represents the second XCP slave device, and the third application 116 represents the third XCP slave device. In addition, a communication application 118 can be implemented on the control device 110, for example, for exchanging measurement and calibration data via the communication interface 108. According to this exemplary embodiment, the communication application 118 is a process measurement daemon (PMD for short) in order to perform external code analysis with the aid of the analysis device 106.
[0046] According to one exemplary embodiment, control device 110 configures an application address space for reading application data (e.g., measurement and calibration data) of application 112 by means of an operating system. In this case, the application address space maps a physical memory area of control device 110 that is occupied by the application data. In order to make the application data accessible via communication interface 108, control device 110 overlays the application address space into a virtual process area of communication application 118. Thus, the application data is referenced in the virtual memory of communication application 118 and can be called up by means of evaluation device 106 via communication interface 108 independently of the actual memory mapping of control device 110.
[0047] According to another embodiment, the control device 110 is configured to read other application address spaces of corresponding application data of the two applications 114 and 116 in addition to the application address space of the application 112, and superimpose them into the virtual address space of the communication application 118, so that the application data of the two applications 114 and 116 can also be accessed through the virtual address space of the communication application 118.
[0048] According to one embodiment, the control device 110 does not have a hardware unit for memory management. Instead, the communication application 118 is configured to directly access the physical memory. In addition, the communication application 118 is configured to directly read the virtual memory of the applications 112, 114, 116 or to receive the application address space included in the virtual memory of the applications 112, 114, 116.
[0049] According to one embodiment, the control device 110 is arranged in the vehicle, and the evaluation device 106 is also arranged in the vehicle or arranged outside the vehicle. For example, the evaluation device 106 is only temporarily coupled to the control device 110 via the communication interface 108 (for example, during the vehicle's stay in the workshop).
[0050] Figure 2 According to an embodiment Figure 1 Schematic diagram of a control device 110. Shown is a software architecture based on a POSIX real-time operating system 200, which manages the processes of different applications 112, 114, 118 and a microprocessor 202 as a computing unit.
[0051] According to this embodiment, the control device 110 includes a plurality of mutually independent programs or applications 112, 114 in the form of ELF files (ELF=Executable and Linking Format), which are present in binary form in the non-volatile memory of the control device 110. For example, the first application 112 is based on the ELF file "A.elf", the second application 114 is based on the ELF file "B.elf", and the x-th application is based on the ELF file "X.elf".
[0052] At the start of an application 112, 114, 118, the operating system loader ensures that the required resources are physically allocated. In this case, physical memory pages (for example, 4 KB each) are reserved and superimposed at possibly different addresses in the respective virtual address space (also called application address space) of the process of the respective application 112, 114, 118 - as described below with reference to Figure 3 Just as described.
[0053] Figure 3 A control device 110 according to an embodiment is shown (eg, according to Figure 1 and Figure 2 Schematic diagram of the memory organization in the control device described in the embodiment of the present invention. It shows the physical memory 300 of the control device 110 and, for example, a first virtual memory 302 representing a virtual process area of a first application, a second virtual memory 304 representing a virtual process area of a second application, and another virtual memory 306 allocated to a communication application (here Process Measurement Daemon). The first virtual memory 302 is allocated, for example, to application or process A.elf, and the second virtual memory 304 is allocated to application or process B.elf.
[0054] The four memories 300, 302, 304, 306 are schematically shown as memory page tables with multiple rows, each of which represents a certain storage area of the same size with a clear address (e.g., a hexadecimal address from 0x...0000 to 0xF...FFFF). The storage area occupied by the corresponding application data is marked with the end ".data". Other application-related data is marked with the end ".text".
[0055] The .text and .data files of the first application are superimposed in the first virtual memory 302. Similarly, the .text and .data files of the second application are superimposed in the second virtual memory 304. The .data files of both the first application and the second application (i.e., their corresponding application data) are superimposed in another virtual memory 306 and can be called from there via the communication interface.
[0056] The data contained in the first virtual memory 302 can be understood as the application address space of the process of the first application. The data contained in the second virtual memory 304 can be understood as the application address space of the process of the second application. The data contained in the other virtual memory 306 can be understood as the virtual address space of the other virtual memory 306.
[0057] The application data are provided in the following way: the processes to be measured (here, for example, processes A.elf and B.elf of the first and second applications) inform the communication application at the beginning via interprocess communication which storage areas contain the corresponding application data. In addition, information about the physical and virtual addresses of the corresponding data segments is transmitted. The communication application now overlays the physical storage areas of the application to be measured into its virtual process area (here, the other virtual memory 306). Thus, the address space of the other virtual memory 306 can map the physical storage areas of the first and second applications that are related to the physical memory 300. Then, an external measurement program that can be implemented, for example, in a device arranged outside the control device can communicate with the communication application (for example, via Ethernet) and query the application data. In this case, the external measurement program does not require any knowledge of the memory mapping that continues in the control device 110, so that all measurement technologies known in the field of microcontrollers can be used without any changes.
[0058] The mapping between physical memory 300 and virtual memory 302, 304, 306 is indicated by a plurality of connecting lines. Here, the connecting line marked with reference numeral 308 represents the normal program mapping by means of the MMU, while the connecting line marked with reference numeral 310 represents the measurement and calibration mapping.
[0059] Figure 4 According to an embodiment Figure 2 Schematic diagram of a microprocessor 202. According to this embodiment, the microprocessor 202 includes a reading unit 400 for reading an application address space and an overlay unit 402 for overlaying the application address space into a virtual memory belonging to a communication application. The reading unit 400 and the overlay unit 402 can be implemented in software as part of a communication application and / or as part of an application that controls a device and uses the mentioned application address space.
[0060] Figure 5 FIG. 5 is a flow chart of a method 500 for providing application data according to an embodiment. The method 500 may be performed as described above according to Figures 1 to 4In this case, the control device described in the embodiment of the present invention is implemented as described in the embodiment of the present invention. In a first step 502, the following application address space is read: the application address space represents the physical storage area of the control device occupied by the application data. In a further step 504, the application address space is superimposed on the virtual memory of the communication application. Thus, the application data can be called from the outside via the virtual memory of the communication application.
[0061] Figure 6 FIG. 6 is a flow chart showing a method 600 for calibrating a control device according to an embodiment. The method 600 may be performed as described above according to Figure 1 The described evaluation device is implemented. In this case, in step 602, by responding to the communication application via the communication interface, the application data referenced in the virtual memory of the communication application are read into the evaluation device. In a further step 604, calibration information (e.g. A2L description file) for adjusting parameters in the control device is generated using the application data. In step 606, the calibration information or information derived therefrom is output to the communication interface in order to adjust the relevant parameters in the control device in a suitable manner.
[0062] Figure 7 1 shows a schematic diagram of an analysis device 106 according to an exemplary embodiment. The analysis device 106 comprises a generation unit 700, which is configured to generate at least one second data packet 704 using at least one first data packet 702, wherein the at least one first data packet represents application data provided by the control device and the at least one second data packet represents calibration information for calibrating the control device. An output unit 706 is configured to output the second data packet 704 or a data packet based on the second data packet to a communication interface.
[0063] If an exemplary embodiment includes an “and / or” relationship between a first feature and a second feature, this should be interpreted as meaning that the exemplary embodiment has both the first feature and the second feature according to one exemplary embodiment and has either only the first feature or only the second feature according to another exemplary embodiment.
Claims
1. A method (500) for providing application data of at least one application (112), the at least one application being executable on a control device (110) for a vehicle, wherein: The control device (110) comprises a component for implementing an operating system (200) with virtual memory management, wherein the method (500) comprises the following steps: Reading an application address space of a first virtual memory (302), wherein the application address space is allocated to a process of the application and maps an area of a physical memory (300) of the control device (110) occupied by the application data; The application address space is superimposed on a virtual address space of a further virtual memory (306) which is assigned to a process of a communication application (118) for exchanging data with an evaluation device (106) external to the control unit via a communication interface (108) in order to provide the application data via the communication interface (108), The process of the communication application (118) is configured to implement the reading step and the superimposing step without the aid of a hardware unit for memory management (MMU).
2. The method (500) according to claim 1, comprising the step of providing the application data via an XCP interface as the communication interface (108).
3. The method (500) according to claim 1 or 2, wherein: In the reading step, at least one physical address and / or virtual address of the application data is read as the application address space.
4. The method (500) according to claim 1 or 2, wherein: In the superimposing step, the application address space is superimposed on the virtual address space by means of a POSIX-based operating system (200) of the control device (110).
5. The method (500) according to claim 1 or 2, wherein: In the step of reading, the application address space is read in response to a predetermined event assigned to a process of the application (112).
6. The method (500) according to claim 1 or 2, wherein: In the reading step, a second virtual application address space of a second virtual memory (304) is read, the second virtual application address space being allocated to a process of a second application (114) executable on the control device (110) and representing an area of the physical memory (300) occupied by second application data of the second application (114), wherein in the superimposing step, the second virtual application address space is superimposed onto the virtual address space so as to provide the second application data via the communication interface (108).
7. A control device (110) comprising a unit, which is designed to carry out and / or control the method (500) according to any one of claims 1 to 6.
8. The control device (110) according to claim 7, wherein: The unit comprises a microprocessor (202), a physical memory (300), a first virtual memory (302) allocated to the application (112), and another virtual memory (306) allocated to the communication application (118).
9. A method (600) for calibrating a control device (110), the method using application data provided in the method (500) according to any one of claims 1 to 6, wherein: The method (600) comprises the following steps: reading the application data via the communication interface (108) using a communication application (118); generating calibration information for adjusting at least one parameter of the control device (110) using the application data; and The calibration information is output to the communication interface (108) to calibrate the control device (110).
10. An evaluation device (106) comprising a unit designed to carry out and / or control the method (600) according to claim 9. 11 . A computer program, which is designed to carry out and / or control the method ( 500 ) according to claim 1 or the method ( 600 ) according to claim 9 .
12. A machine-readable storage medium having stored thereon the computer program according to claim 11.
Citation Information
Patent Citations
Method for operating an electronic control unit during a calibration phase
US20110125865A1
Electronic device for controlling file system and operating method thereof
US20170046358A1