WO2022240217A1 - 신호 처리 장치 및 이를 구비하는 차량용 통신 장치 - Google Patents

신호 처리 장치 및 이를 구비하는 차량용 통신 장치 Download PDF

Info

Publication number
WO2022240217A1
WO2022240217A1 PCT/KR2022/006833 KR2022006833W WO2022240217A1 WO 2022240217 A1 WO2022240217 A1 WO 2022240217A1 KR 2022006833 W KR2022006833 W KR 2022006833W WO 2022240217 A1 WO2022240217 A1 WO 2022240217A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
message
communication
cache
vehicle
Prior art date
Application number
PCT/KR2022/006833
Other languages
English (en)
French (fr)
Inventor
이상훈
홍현택
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to US18/289,986 priority Critical patent/US20240248872A1/en
Priority to EP22807864.8A priority patent/EP4339778A1/en
Publication of WO2022240217A1 publication Critical patent/WO2022240217A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Definitions

  • the present disclosure relates to a signal processing device and a vehicle communication device including the same, and more particularly, to a signal processing device capable of reducing delay time and performing high-speed data transmission during communication between processors and a vehicle communication device including the same. will be.
  • a vehicle is a device that allows a user to move in a desired direction.
  • a typical example is a car.
  • a vehicle communication device is mounted inside the vehicle.
  • a gateway that is a high-speed router may be used.
  • Korean Patent Registration No. 10-1020948 (hereinafter referred to as prior literature) relates to a network gateway and network system for vehicles, and discloses a mobile terminal supporting a wireless LAN using the Internet using a telematics module of a vehicle. do.
  • the communication method of the vehicle network gateway has a problem in that real-time data transmission and large-capacity data transmission are difficult due to low bandwidth and unnecessary memory copying using UART, SPI, and the like.
  • An object of the present disclosure is to provide a signal processing device capable of reducing delay time and performing high-speed data transmission during communication between processors and a vehicle communication device having the same.
  • another object of the present disclosure is to provide a signal processing device capable of reducing delay time and performing high-speed data transmission during inter-processor communication by minimizing buffer occupancy of the same data, and a vehicle communication device having the same.
  • another object of the present disclosure is to provide a signal processing device capable of guaranteeing real-time transmission of a high-priority event in inter-processor communication and a vehicle communication device having the same.
  • another object of the present disclosure is to provide a signal processing device capable of reducing overhead that may occur during memory access and a vehicle communication device having the same.
  • a signal processing device receives a first message including a sensor signal in a vehicle based on a first communication method, and process the signal.
  • a first processor that performs signal processing for receiving a second message including a communication message received from the outside based on a second communication method, and performing signal processing on the received second message; and a shared memory operable to transmit the first message or the second message between the processor and the second processor.
  • a transceiver receives a first message including a sensor signal in the vehicle and transmits the first message to the first processor, and based on the second communication method, communication received from the outside is received.
  • a switch receiving a second message including a message and transmitting the second message to a second processor may be further included.
  • the first processor includes a first manager including a first cache for inter-processor communication (IPC), and the second processor includes a second cache and a timer for inter-processor communication. It may be provided with a second manager including.
  • IPC inter-processor communication
  • the first processor stores or manages the first message received in the first cache when receiving the subscription request, and compares the value stored in the first cache when receiving the first message, and when the difference is greater than or equal to a predetermined value, the processor Through inter-communication, the first message may be transmitted to the second processor.
  • the first processor stores or manages the first message received in the first cache when receiving the subscription request, compares the value stored in the first cache when receiving the first message, and shares the difference when the difference is greater than or equal to a predetermined value.
  • the first message may be transmitted to the second processor through inter-processor communication using the memory.
  • the second processor may receive a subscription request of the first message from the Ethernet processor and transmit the subscription request through inter-processor communication.
  • the second processor may store the first message in the second cache when the first message is first received, and update the second cache when the first message is subsequently received.
  • the second processor may generate a thread of the timer according to reception of the first message, and transfer the value of the second cache to the Ethernet processor whenever the thread expires.
  • the second processor may transmit the value of the second cache to the Ethernet processor during a period in which the first message is not received because inter-processor communication is not performed.
  • the second processor may transmit a value updated to the second cache to the Ethernet processor during a period in which inter-processor communication is performed and the first message is received.
  • the shared memory may allow data to be transmitted between the first processor and the second processor through a first queue and a second queue having higher priority than the first queue during inter-processor communication.
  • the shared memory may transmit speed data or location information data between the first processor and the second processor through the second queue.
  • the first processor or the second processor may manage a list including applications capable of using the second queue.
  • the shared memory may allow only data corresponding to an event allocated for the second queue to be transmitted through the second queue, even if the number of events for inter-processor communication increases.
  • the shared memory may allocate a buffer having a size aligned with a memory block or a memory address during communication between processors.
  • the number of buffers smaller than the number of periodic events for inter-processor communication may be set.
  • the second processor transmits a subscription request for distance information of the preceding vehicle to the first processor according to a subscription request for distance information of the preceding vehicle, and the first processor receives the distance information of the preceding vehicle from the radar sensor.
  • the distance information of the preceding vehicle is received, compared with the value stored in the first cache, and when the difference is greater than or equal to a predetermined value, the distance information of the preceding vehicle is stored in the first cache, and the value of the stored first cache is stored in the processor. Through inter-communication, it may be transmitted to the second processor.
  • the second processor stores the received distance information of the preceding vehicle in the second cache through inter-processor communication, and transmits a subscription request for the distance information of the preceding vehicle with the distance information of the preceding vehicle stored in the second cache. As long as it can be sent to the application.
  • the second processor transmits a subscription request for distance information of the preceding vehicle to the first processor according to a subscription request for distance information of the preceding vehicle, and the first processor receives the distance information of the preceding vehicle from the radar sensor. And, when the distance information of the preceding vehicle is received, compared with the value stored in the first cache, and when the difference is less than a predetermined value, the received distance information of the preceding vehicle is not stored in the first cache, and through inter-processor communication, It is not transmitted to the second processor.
  • a first memory having an IPC channel and a second memory storing sensor data including vehicle speed data may be further included, and the shared memory may be included in the first memory.
  • the first processor executes a message router, and the message router may convert the frame of the first message into a frame format of the second message and transmit the message to the second processor.
  • a signal processing device and a vehicle communication device including the same include a first processor receiving a first message including a sensor signal in a vehicle and performing signal processing based on a first communication method. and a second processor that receives a second message including a communication message received from the outside based on the second communication method and performs signal processing on the received second message, and between the first processor and the second processor and a shared memory that operates for transmission of a first message or a second message of In this way, by performing inter-processor communication using the shared memory during communication between the first processor and the second processor, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication. data transmission can be performed.
  • a transceiver receives a first message including a sensor signal in the vehicle and transmits the first message to the first processor, and based on the second communication method, communication received from the outside is received.
  • a switch receiving a second message including a message and transmitting the second message to a second processor may be further included. Accordingly, it is possible to stably transfer the first message and the second message to the first processor and the second processor, respectively.
  • the first processor includes a first manager including a first cache for inter-processor communication (IPC), and the second processor includes a second cache and a timer for inter-processor communication. It may be provided with a second manager including. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • IPC inter-processor communication
  • the second processor includes a second cache and a timer for inter-processor communication. It may be provided with a second manager including. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the first processor stores or manages the first message received in the first cache when receiving the subscription request, and compares the value stored in the first cache when receiving the first message, and when the difference is greater than or equal to a predetermined value, the processor Through inter-communication, the first message may be transmitted to the second processor. Accordingly, by minimizing the cache occupancy or buffer occupancy of the same data, it is possible to reduce delay time and perform high-speed data transmission during communication between processors.
  • the first processor stores or manages the first message received in the first cache when receiving the subscription request, compares the value stored in the first cache when receiving the first message, and shares the difference when the difference is greater than or equal to a predetermined value.
  • the first message may be transmitted to the second processor through inter-processor communication using the memory. Accordingly, by minimizing the cache occupancy or buffer occupancy of the same data, it is possible to reduce delay time and perform high-speed data transmission during communication between processors.
  • the second processor may receive a subscription request of the first message from the Ethernet processor and transmit the subscription request through inter-processor communication. Accordingly, inter-processor communication can be performed.
  • the second processor may store the first message in the second cache when the first message is first received, and update the second cache when the first message is subsequently received. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the second processor may generate a thread of the timer according to reception of the first message, and transfer the value of the second cache to the Ethernet processor whenever the thread expires. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the second processor may transmit the value of the second cache to the Ethernet processor during a period in which the first message is not received because inter-processor communication is not performed. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the second processor may transmit a value updated to the second cache to the Ethernet processor during a period in which inter-processor communication is performed and the first message is received. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the shared memory may allow data to be transmitted between the first processor and the second processor through a first queue and a second queue having higher priority than the first queue during inter-processor communication. Accordingly, real-time transmission of high-priority events in inter-processor communication can be guaranteed.
  • the shared memory may transmit speed data or location information data between the first processor and the second processor through the second queue. Accordingly, it is possible to guarantee real-time transmission of high-priority speed data or location information data in inter-processor communication.
  • the first processor or the second processor may manage a list including applications capable of using the second queue. Accordingly, real-time transmission of high-priority events in inter-processor communication can be guaranteed.
  • the shared memory may allow only data corresponding to an event allocated for the second queue to be transmitted through the second queue, even if the number of events for inter-processor communication increases. Accordingly, real-time transmission of high-priority events in inter-processor communication can be guaranteed.
  • the shared memory may allocate a buffer having a size aligned with a memory block or a memory address during communication between processors. Accordingly, it is possible to reduce overhead that may occur during memory access.
  • the number of buffers smaller than the number of periodic events for inter-processor communication may be set. Accordingly, it is possible to reduce overhead that may occur during memory access.
  • the second processor transmits a subscription request for distance information of the preceding vehicle to the first processor according to a subscription request for distance information of the preceding vehicle, and the first processor receives the distance information of the preceding vehicle from the radar sensor.
  • the distance information of the preceding vehicle is received, compared with the value stored in the first cache, and when the difference is greater than or equal to a predetermined value, the distance information of the preceding vehicle is stored in the first cache, and the value of the stored first cache is stored in the processor.
  • it may be transmitted to the second processor. Accordingly, it is possible to transmit distance information of the preceding vehicle while reducing communication delay between processors.
  • the second processor stores the received distance information of the preceding vehicle in the second cache through inter-processor communication, and transmits a subscription request for the distance information of the preceding vehicle with the distance information of the preceding vehicle stored in the second cache. As long as it can be sent to the application. Accordingly, it is possible to transmit distance information of the preceding vehicle while reducing communication delay between processors.
  • the second processor transmits a subscription request for distance information of the preceding vehicle to the first processor according to a subscription request for distance information of the preceding vehicle, and the first processor receives the distance information of the preceding vehicle from the radar sensor. And, when the distance information of the preceding vehicle is received, compared with the value stored in the first cache, and when the difference is less than a predetermined value, the received distance information of the preceding vehicle is not stored in the first cache, and through inter-processor communication, It is not transmitted to the second processor. Accordingly, it is possible to transmit the distance information of the preceding vehicle while minimizing buffer occupancy of the same data and reducing communication delay between processors.
  • a first memory having an IPC channel and a second memory storing sensor data including vehicle speed data may be further included, and the shared memory may be included in the first memory. Accordingly, when transmitting vehicle speed data, it is possible to reduce delay time and perform high-speed data transmission when communicating between processors.
  • the first processor executes a message router, and the message router may convert the frame of the first message into a frame format of the second message and transmit the message to the second processor. Accordingly, it is possible to perform stable inter-processor communication.
  • FIG. 1 is a view showing an example of a vehicle exterior and a vehicle interior.
  • FIGS. 2a to 2c are diagrams illustrating various architectures of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • FIG. 3 is an example of an internal block diagram of a signal processing device according to an embodiment of the present disclosure.
  • FIG. 4A is a diagram illustrating an example of arrangement of a vehicle display device inside a vehicle according to an embodiment of the present disclosure.
  • 4B is a diagram illustrating another example of arrangement of a vehicle display device inside a vehicle according to an embodiment of the present disclosure.
  • FIG. 5 is an example of an internal block diagram of the vehicle display device of FIG. 4B.
  • FIG. 6 is an example of an internal block diagram of a vehicle communication device related to the present disclosure.
  • FIG. 7 is an example of an internal block diagram of a vehicle communication device according to an embodiment of the present disclosure.
  • 8A to 15B are diagrams referred to in the description of FIG. 7 .
  • module and “unit” for the components used in the following description are simply given in consideration of ease of writing this specification, and do not themselves give a particularly important meaning or role. Accordingly, the “module” and “unit” may be used interchangeably.
  • FIG. 1 is a view showing an example of a vehicle exterior and a vehicle interior.
  • the vehicle 200 is operated by a plurality of wheels 103FR, 103FL, 103RL, .. rotated by a power source, and a steering wheel 150 for adjusting the traveling direction of the vehicle 200. .
  • the vehicle 200 may further include a camera 195 for obtaining an image of the front of the vehicle.
  • the vehicle 200 may include a plurality of displays 180a and 180b for displaying images and information therein.
  • FIG. 1 illustrates a cluster display 180a and an audio video navigation (AVN) display 180b as the plurality of displays 180a and 180b.
  • APN audio video navigation
  • HUD Head Up Display
  • the AVN (Audio Video Navigation) display 180b may also be named a center information display (Center Information Dislpay).
  • the same image may be synchronized and displayed on the plurality of displays 180a and 180b.
  • the signal processing device 170 in the vehicle display device 100 synchronizes and transmits the same data to a plurality of virtual machines, and controls images displayed on the plurality of displays to be the same.
  • the vehicle 200 described in this specification may be a concept that includes all of a vehicle including an engine as a power source, a hybrid vehicle including an engine and an electric motor as a power source, and an electric vehicle including an electric motor as a power source. have.
  • FIGS. 2a to 2c are diagrams illustrating various architectures of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • FIG. 2A is a diagram illustrating a first architecture of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • the first architecture 300a may correspond to a zone-based architecture.
  • sensor devices and processors inside the vehicle may be disposed in the plurality of zones Z1 to Z4, respectively, and in the central area of the plurality of zones Z1 to Z4, the vehicle communication gateway ( A signal processing device 170a including GWDa) may be disposed.
  • the signal processing device 170a may further include an autonomous driving control module (ACC), a cockpit control module (CPG), and the like, in addition to the vehicle communication gateway (GWDa).
  • ACC autonomous driving control module
  • CPG cockpit control module
  • GWDa vehicle communication gateway
  • the vehicle communication gateway GWDa in the signal processing device 170a may be a High Performance Computing (HPC) gateway.
  • HPC High Performance Computing
  • the signal processing device 170a of FIG. 2A is an integrated HPC and may exchange data with an external communication module (not shown) or a processor (not shown) within a plurality of zones Z1 to Z4.
  • 2B is a diagram illustrating a second architecture of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • the second architecture 300b may correspond to a domain integrated architecture.
  • the body chassis control module (BSG), power control module (PTG), ADAS control module (ADG), and cockpit control module (CPG) are connected in parallel to the gateway (GWDb), and each module (BSG, PTG, ADG and CPG), a plurality of processors (ECUs) may be electrically connected to each other.
  • BSG body chassis control module
  • PTG power control module
  • ADG ADAS control module
  • CPG cockpit control module
  • each processor (ECU) may be integrally connected to the gateway (GWDb).
  • the signal processing device 170 including the gateway GWDb of FIG. 2B operates as a domain integrated signal processing device.
  • 2C is a diagram illustrating a third architecture of a communication gateway for a vehicle according to an embodiment of the present disclosure.
  • the third architecture 300c may correspond to a distributed architecture.
  • the body chassis control module (BSG), the power control module (PTG), the ADAS control module (ADG), and the cockpit control module (CPG) are connected in parallel to the gateway (GWDc).
  • the processor ECU may be connected to the gateway GWDb in parallel.
  • the third architecture has a difference in that each processor (ECU) is directly connected to the gateway (GWDb) without being connected to other modules.
  • the signal processing device 170 including the gateway GWDc of FIG. 2C operates as a distributed signal processing device.
  • FIG. 3 is an example of an internal block diagram of a signal processing device according to an embodiment of the present disclosure.
  • a signal processing device 170 includes a first processor that receives a first message including a sensor signal in a vehicle and performs signal processing based on a first communication method. 732a and a second processor 732b that receives a second message including a communication message received from the outside based on the second communication method and performs signal processing on the received second message.
  • the second communication method may have a higher communication speed or a larger bandwidth than the first communication method.
  • the second communication method may be an Ethernet communication method
  • the first communication method may be a CAN communication method
  • the first message may be a CAN message
  • the second message may be an Ethernet message
  • the signal processing apparatus 170 further includes a first memory 320 having an IPC channel and a second memory 330 storing sensor data including vehicle speed data. do.
  • the first memory 320 may be a static RAM (SRAM), and the second memory 330 may be a DDR memory.
  • the second memory 330 may be a double data rate synchronous dynamic random access memory (DDR SDRAM).
  • the signal processing apparatus 170 includes a shared memory 508 operating to transmit a first message or a second message between a first processor 732a and a second processor 732b.
  • the shared memory 508 is preferably provided in the first memory 320 . Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the first processor 732a may include a plurality of processor cores 317o, 317a, and 317b therein.
  • the first processor 732a may further include an interface 319 for receiving CAN messages from external vehicle sensors.
  • the first processor core 317o in the first processor 732a may execute a plurality of applications or execute the first AUTOSAR (AUTomotive Open System Architecture) 312 .
  • AUTOSAR AUTomotive Open System Architecture
  • the first processor core 317o may execute the second autosar 312 to execute the interprocessor communication handler (IPC Handler) 314 .
  • IPC Handler interprocessor communication handler
  • the IPC Handler 314 may exchange data with the first memory 320 or exchange IPC data with an application executed in the first processor core 317o.
  • the IPC Handler 314 may exchange interrupts with the IPC driver 348 in the second processor 732b.
  • the second processor core 317a in the first processor 732a may execute the IDS and receive CAN data from the second memory 330 .
  • the third processor core 317b in the first processor 732a may execute logging and store CAN data received through the interface 319 in the second memory 330 .
  • the third processor core 317b in the first processor 732a may execute an inter-processor communication (IPC) module 318 to exchange IPC data with the first memory 320 .
  • IPC inter-processor communication
  • the third processor core 317b in the first processor 732a may transmit an interrupt to the IPC driver 348 in the second processor 732b.
  • the first memory 320 may exchange IPC data with the IPC Handler 314 or the IPC module 318 .
  • the second processor 732b may execute an application 343, an IPC handler 345, an IPC daemon 346, an IPC driver 348, and the like.
  • the second processor 732b may further execute a service oriented architecture (SOA) adapter 341, a diagnosis server 342, and a second autosar 347.
  • SOA service oriented architecture
  • the second autosar 347 may be an adaptive autosar, and the first autosar 312 may be a classic autosar.
  • the IPC daemon 346 may exchange interrupt signals with the SOA adapter 341, the diagnosis server 342, the IPC handler 345, the IPC driver 348, and the like.
  • the first memory 320 may exchange IPC data with the SOA adapter 341, the diagnosis server 342, the IPC handler 345, and the like.
  • the IPC data described in the description of FIG. 3 may be a CAN message or an Ethernet message.
  • the IPC Handler 345 may operate as a service provider that provides data such as diagnosis, firmware upgrade, and system information based on the second autosa 347.
  • the first processor 732a executes a message router (not shown), and the message router transmits a frame of a first message such as a CAN message to a frame of a second message such as an Ethernet message. It can be converted into a frame format and transmitted to the second processor 732b.
  • the first processor 732a may further execute a CAN driver (not shown) and a CAN interface (not shown).
  • the CAN interface (not shown) is implemented with a total of 16 channels, each with 8 channels in the 4th processor core (not shown) and the 5th processor core (not shown) in the first processor 732a. It is also possible.
  • the first CAN interface (not shown) executed in the fourth processor core (not shown) corresponds to the first queue PTb (queue) during inter-processor communication
  • the second CAN interface (not shown) to be executed may correspond to the second queue PTa having a higher priority than the first queue PTb during inter-processor communication.
  • FIG. 4A is a diagram illustrating an example of arrangement of a vehicle display device inside a vehicle according to an embodiment of the present disclosure.
  • a cluster display 180a inside the vehicle, a cluster display 180a, an AVN (Audio Video Navigation) display 180b, rear seat entertainment displays 180c and 180d, a room mirror display (not shown), and the like are provided.
  • AVN Audio Video Navigation
  • rear seat entertainment displays 180c and 180d a room mirror display (not shown), and the like are provided.
  • 4B is a diagram illustrating another example of arrangement of a vehicle display device inside a vehicle according to an embodiment of the present disclosure.
  • a vehicle display apparatus 100 is a signal processing device that performs signal processing for displaying images and information on a plurality of displays 180a to 180b and the plurality of displays 180a to 180b. (170) may be provided.
  • the first display 180a is a cluster display 180a for displaying driving conditions and operation information
  • the second display 180b displays vehicle driving information, navigation maps, and various other information. It may be an AVN (Audio Video Navigation) display 180b for displaying entertainment information or images.
  • AVN Audio Video Navigation
  • the signal processing device 170 includes a processor 175 therein, and may execute a first virtual machine to a third virtual machine (not shown) on a hypervisor (not shown) in the processor 175 .
  • a second virtual machine (not shown) may operate for the first display 180a, and a third virtual machine (not shown) may operate for the second display 180b.
  • the first virtual machine (not shown) in the processor 175 is shared based on the hypervisor 505 for the same data transmission to the second virtual machine (not shown) and the third virtual machine (not shown).
  • the memory 508 can be controlled to be set. Accordingly, the same information or the same image can be synchronized and displayed on the first display 180a and the second display 180b in the vehicle.
  • the first virtualization machine (not shown) in the processor 175 shares at least a portion of data with the second virtualization machine (not shown) and the third virtualization machine (not shown) for data sharing processing. Accordingly, it is possible to divide and process data in a plurality of virtual machines for a plurality of displays in the vehicle.
  • the first virtualization machine (not shown) in the processor 175 receives and processes the wheel speed sensor data of the vehicle, and converts it into at least one of a second virtualization machine (not shown) and a third virtualization machine (not shown). , the processed wheel speed sensor data can be transmitted. Accordingly, wheel speed sensor data of the vehicle can be shared with at least one virtual machine or the like.
  • the vehicle display device 100 further includes a rear seat entertainment display 180c for displaying driving state information, simple navigation information, various entertainment information, or images.
  • a rear seat entertainment display 180c for displaying driving state information, simple navigation information, various entertainment information, or images.
  • the signal processing device 170 executes a fourth virtual machine (not shown) in addition to the first virtual machine to the third virtual machine (not shown) on a hypervisor (not shown) in the processor 175 to perform RSE.
  • the display 180c may be controlled.
  • some of the plurality of displays 180a to 180c may operate based on a Linux OS, and some may operate based on a web OS.
  • the signal processing device 170 can control displays 180a to 180c operating under various operating systems (OS) to synchronize and display the same information or the same image.
  • OS operating systems
  • the vehicle speed indicator 212a and the vehicle internal temperature indicator 213a are displayed on the first display 180a, and a plurality of applications and the vehicle speed indicator 212b are displayed on the second display 180b. and the vehicle interior temperature indicator 213b are displayed, and a second home screen 222b including a plurality of applications and the vehicle interior temperature indicator 213c is displayed on the third display 180c. Illustrate what is displayed.
  • FIG. 5 is an example of an internal block diagram of the vehicle display device of FIG. 4B.
  • a vehicle display device 100 includes an input unit 110, a communication unit 120 for communication with an external device, and a plurality of communication modules EMa to EMd for internal communication. , a memory 140, a signal processing device 170, a plurality of displays 180a to 180c, an audio output unit 185, and a power supply unit 190.
  • the plurality of communication modules EMa to EMd may be respectively disposed in a plurality of zones Z1 to Z4 of FIG. 2A .
  • the signal processing device 170 may include an Ethernet switch 736b for data communication with each of the communication modules EM1 to EM4.
  • Each of the communication modules EM1 to EM4 may perform data communication with a plurality of sensor devices SN or ECU 770 .
  • the plurality of sensor devices SN may include a camera 195 , a lidar 196 , a radar 197 , or a position sensor 198 .
  • the input unit 110 may include a physical button or pad for button input or touch input.
  • the input unit 110 may include a microphone (not shown) for user voice input.
  • the communication unit 120 may exchange data with the mobile terminal 800 or the server 900 in a wireless manner.
  • the communication unit 120 may wirelessly exchange data with the vehicle driver's mobile terminal.
  • various data communication methods such as Bluetooth, WiFi, WiFi Direct, and APiX are possible.
  • the communication unit 120 may receive weather information and road traffic condition information, eg, Transport Protocol Expert Group (TPEG) information, from the mobile terminal 800 or the server 900 . To this end, the communication unit 120 may include a mobile communication module (not shown).
  • TPEG Transport Protocol Expert Group
  • the plurality of communication modules EM1 to EM4 may receive sensor information and the like from the ECU 770 or the sensor device SN and transmit the received information to the signal processing device 170 .
  • the sensor information includes vehicle direction information, vehicle location information (GPS information), vehicle angle information, vehicle speed information, vehicle acceleration information, vehicle tilt information, vehicle forward/reverse information, battery information, fuel information, tire information, vehicle It may include at least one of lamp information, vehicle internal temperature information, and vehicle internal humidity information.
  • Such sensor information includes heading sensor, yaw sensor, gyro sensor, position module, vehicle forward/backward sensor, wheel sensor, vehicle speed sensor, It may be obtained from a vehicle body tilt detection sensor, a battery sensor, a fuel sensor, a tire sensor, a steering sensor by steering wheel rotation, a vehicle internal temperature sensor, a vehicle internal humidity sensor, and the like.
  • the position module may include a GPS module or a location sensor 198 for receiving GPS information.
  • At least one of the plurality of communication modules EM1 to EM4 may transmit location information data sensed by the GPS module or the location sensor 198 to the signal processing device 170 .
  • At least one of the plurality of communication modules EM1 to EM4 includes image data from the front of the vehicle, image data from the side of the vehicle, image data from the rear of the vehicle, and obstacles around the vehicle from the camera 195, lidar 196, or radar 197. Distance information may be received, and the received information may be transmitted to the signal processing device 170 .
  • the memory 140 may store various data for overall operation of the vehicle display device 100, such as a program for processing or controlling the signal processing device 170.
  • the memory 140 may store data related to a hypervisor and first to third virtual machines to be executed in the processor 175 .
  • the audio output unit 185 converts the electrical signal from the signal processing device 170 into an audio signal and outputs it. To this end, a speaker or the like may be provided.
  • the power supply 190 may supply power required for operation of each component under the control of the signal processing device 170 .
  • the power supply unit 190 may receive power from a battery inside the vehicle.
  • the signal processing device 170 controls the overall operation of each unit in the vehicle display device 100 .
  • the signal processing device 170 may include a processor 175 that performs signal processing for the vehicle displays 180a and 180b.
  • the processor 175 may execute a first virtual machine to a third virtual machine (not shown) on a hypervisor (not shown) in the processor 175 .
  • the first virtual machine (not shown) may be referred to as a server virtual machine, and the second virtual machine to the third virtual machine (not shown). ) may be named a guest virtual machine.
  • sensor data from a plurality of sensor devices, for example, vehicle sensor data, location information data, camera image data, audio data or touch input data It can be received, processed or processed and output.
  • the first virtual machine directly receives and processes CAN data, Ethernet data, audio data, radio data, USB data, and wireless communication data for the second to third virtual machines ( ). can do.
  • the first virtual machine may transmit the processed data to the second virtual machine to the third virtual machine 530 to 540 .
  • the first virtual machine (not shown) among the first to third virtual machines (not shown) receives sensor data, communication data, or external input data from a plurality of sensor devices to perform signal processing.
  • the burden of signal processing on other virtual machines is reduced, 1:N data communication is possible, and synchronization in data sharing is possible.
  • the first virtual machine may record data in the shared memory 508 and control the second virtual machine (not shown) and the third virtual machine (not shown) to share the same data. .
  • the first virtual machine (not shown) records the vehicle sensor data, the location information data, the camera image data, or the touch input data in the shared memory 508, and the second virtual machine (not shown) ) and a third virtual machine (not shown) to share the same data. Accordingly, it is possible to share data in a 1:N manner.
  • the first virtual machine (not shown) in the processor 175 is shared based on the hypervisor 505 for the same data transmission to the second virtual machine (not shown) and the third virtual machine (not shown).
  • the memory 508 can be controlled to be set.
  • the signal processing device 170 may process various signals such as audio signals, video signals, and data signals.
  • the signal processing device 170 may be implemented in the form of a System On Chip (SOC).
  • SOC System On Chip
  • the signal processing device 170 in the display device 100 of FIG. 5 may be the same as the signal processing device 170 of the vehicle communication device 700 of FIG. 7 .
  • FIG. 6 is an example of an internal block diagram of a vehicle communication device related to the present disclosure.
  • a vehicle communication device 600x related to the present disclosure includes a first communication gateway 630a and a second communication gateway 630b.
  • the first communication gateway 630a is for exchanging CAN signals by CAN communication with the body module 610, the chassis module 614, the CAN communication diagnosis device 616, and at least one CAN communication ECU 618.
  • a CAN transceiver 636a and a first processor 632a for signal processing the CAN signal received by the CAN transceiver 636a may be provided.
  • the first processor 632a may include an IPC manager 634a for performing inter-processor communication with the second processor 632b in the second communication gateway 630b.
  • the second communication gateway 630b exchanges Ethernet messages through Ethernet communication with the telematics control module 620, the head module 622, the Ethernet communication diagnosis device 624, and at least one Ethernet communication ECU 626.
  • An Ethernet switch 636b for processing and a second processor 632b for signal processing the Ethernet message received from the Ethernet switch 636b may be provided.
  • the second processor 632b may include an IPC manager 634b for performing inter-processor communication with the first processor 632a in the first communication gateway 630a.
  • the IPC manager 634a in the first processor 632a and the IPC manager 634b in the second processor 632b may perform inter-processor communication based on Ethernet communication.
  • communication between processors is advantageous for high-speed transmission of large amounts of data using Ethernet-based high bandwidth, but latency occurs in communication between the protocol stack and the physical layer (PHY). There are downsides.
  • the present disclosure proposes a method capable of reducing latency and performing high-speed data transmission during communication between processors. This will be described with reference to FIG. 7 below.
  • FIG. 7 is an example of an internal block diagram of a vehicle communication device according to an embodiment of the present disclosure.
  • a vehicle communication device 700 transmits sensor signals in a vehicle based on a first communication gateway 730a and a second communication gateway 730b and a first communication method.
  • a first processor 732a that receives a first message including a first message and performs signal processing, and receives a second message including a communication message received from the outside based on a second communication method, and receives a second message received from the outside. It includes a second processor 732b that performs signal processing of messages, and a shared memory 508 that operates to transmit a first message or a second message between the first processor 732a and the second processor 732b.
  • the shared memory 508 is used for inter-processor communication (IPC) between the first processor 732a and the second processor 732b, thereby delaying inter-processor communication. Latency is reduced, and high-speed data transmission can be performed.
  • IPC inter-processor communication
  • the first processor 732a, the second processor 732b, and the shared memory 508 are integrated into a single chip, the signal processing device 170. By implementing this, latency is reduced during communication between processors, and high-speed data transmission can be performed.
  • the second communication method preferably has a larger bandwidth and a higher transmission speed than the first communication method.
  • the second communication method may be an Ethernet communication method
  • the first communication method may be a CAN communication method
  • the first message may be a CAN message or a CAN signal
  • the second message may be an Ethernet message
  • the signal processing device 170 receives a first message including a sensor signal in the vehicle based on a first communication method
  • the transceiver 736a transmits the first message to the first processor 732a
  • the second message including the communication message received from the outside is received based on the second communication method
  • the second message is transmitted to the second processor 736a.
  • a switch 736b transmitting to 732b may be further included. Accordingly, it is possible to stably transfer the first message and the second message to the first processor 732a and the second processor 732b, respectively.
  • the first processor 732a or the transceiver 736a transmits a CAN signal through CAN communication with the body module 610, the chassis module 614, the CAN communication diagnosis device 616, and at least one CAN communication ECU 618. can be exchanged.
  • the first processor 732a may include a first manager 734a for Inter Processor Communication (IPC) with the second processor 732b.
  • the first manager 734a may also be referred to as an IPC manager.
  • the first manager 734a may include a first cache 735a (cache).
  • the second processor 732b or the switch 736b is used for Ethernet communication with the telematics control module 620, the head module 622, the Ethernet communication diagnosis device 624, and at least one Ethernet communication ECU 626. Ethernet messages can be exchanged by The switch 736b may also be referred to as an Ethernet switch.
  • the second processor 732b may include a second manager 734b for Inter Processor Communication (IPC) with the first processor 732a.
  • the second manager 734b may also be referred to as an IPC manager.
  • the second manager 734b may include a second manager 734b including a second cache 735b and a timer 737 .
  • the second processor 732b may receive a periodic subscription request of the first message from the Ethernet processor or the Ethernet communication ECU 626 .
  • the second processor 732b may transmit a periodic subscription request of the first message to the first processor 732a.
  • the second processor 732b may transmit a subscription request through inter-processor communication (IPC). Accordingly, inter-processor communication can be performed.
  • IPC inter-processor communication
  • the first processor 732a periodically receives CAN communication data from at least one CAN communication ECU 618 or the like.
  • the first processor 732a periodically receives a first message predefined in the CAN database (DB) from at least one CAN communication ECU 618 or the like.
  • DB CAN database
  • the periodic first message may include vehicle speed information or location information as sensor information.
  • the periodic first message may include vehicle direction information, vehicle location information (GPS information), vehicle angle information, vehicle acceleration information, vehicle tilt information, vehicle forward/backward information, battery information, fuel information, tire information, vehicle It may include at least one of lamp information, vehicle internal temperature information, and vehicle internal humidity information.
  • the first processor 732a selects a first message received with a subscription request from CAN communication data or first messages received periodically, and transmits the first message received with a subscription request through inter-processor communication to a second processor ( 732b).
  • the first processor 732a separately processes, according to an internal operation, a first message that has not received a subscription request among CAN communication data or first messages received periodically and does not transmit it to the second processor 732b.
  • the first processor 732a stores or manages in the first cache 735a when receiving the first message received with the subscription request, and compares the value stored in the first cache 735a when receiving the first message, When the difference is greater than or equal to a predetermined value, a first message may be transmitted to the second processor 732b through inter-processor communication.
  • the first processor 732a stores or manages in the first cache 735a when receiving the first message received with the subscription request, and compares the value stored in the first cache 735a when receiving the first message, When the difference is greater than or equal to a predetermined value, a first message may be transmitted to the second processor 732b through inter-processor communication using the shared memory 508 .
  • the first processor 732a compares the value stored in the first cache 735a and, if not identical, performs inter-processor communication using the shared memory 508. Through this, the first message may be transmitted to the second processor 732b.
  • the first processor 732a when receiving the first message, compares the value stored in the first cache 735a, and may not transmit the first message to the second processor 732b when the value is the same. .
  • the second processor 732b may store the first message in the second cache 735b when the first message is first received, and update the second cache 735b when the first message is subsequently received. Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the second processor 732b generates a thread of the timer 737 according to reception of the first message, and the value of the second cache 735b is transferred to the Ethernet processor or the Ethernet communication ECU 626 whenever the thread expires. can be conveyed Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the second processor 732b may transmit the value of the second cache 735b to the Ethernet processor or the Ethernet communication ECU 626 during a period in which the first message is not received because inter-processor communication is not performed.
  • the cached value stored in the second processor (732b) may be transferred to the Ethernet processor 626 without inter-processor communication.
  • the second processor 732b may transmit a value updated in the second cache 735b to the Ethernet processor or the Ethernet communication ECU 626 during a period in which inter-processor communication is performed and the first message is received. . Accordingly, it is possible to reduce delay time and perform high-speed data transmission during inter-processor communication.
  • the shared memory 508 transmits data to the first processor through a first queue PTb (queue) and a second queue PTa having higher priority than the first queue PTb during communication between processors. In 732a, it can be transmitted between the second processor 732b.
  • the shared memory 508 may allow only data corresponding to an event allocated for the second queue PTa to be transmitted through the second queue PTa even if an event for inter-processor communication increases. Accordingly, real-time transmission of high-priority events in inter-processor communication can be guaranteed.
  • the first queue PTb may be a normal priority queue
  • the second queue PTa may be a high priority queue
  • the shared memory 508 may transmit most of the data through the first queue PTb during inter-processor communication.
  • the shared memory 508 may transmit only time sensitive-critical data without delay through the second queue PTa having higher priority than the first queue PTb.
  • time sensitive-critical data may be speed data or location information data.
  • the shared memory 508 may transmit speed data or location information data between the first processor 732a and the second processor 732b through the second queue PTa. Accordingly, it is possible to guarantee real-time transmission of high-priority speed data or location information data in inter-processor communication.
  • the first processor 732a or the second processor 732b may manage a list including applications that can use the second queue PTa.
  • the second processor 732b may include and manage an application for displaying speed information as an application capable of using the second queue PTa in the second list 738b.
  • the shared memory 508 can reduce delay time and perform high-speed data transmission in inter-processor communication by assigning at least two queues.
  • the first manager 734a in the first processor 732a manages the first list 738a as a white list
  • the second manager 734b in the second processor 732b manages the second list as a white list. Illustrates managing 738b. Accordingly, real-time transmission of high-priority events in inter-processor communication can be guaranteed.
  • 8A to 15B are diagrams referred to in the description of FIG. 7 .
  • FIG. 8A illustrates a table Tba storing data of a periodic CAN message or CAN signal.
  • the table Tba0 of FIG. 8A may be data of the first message and may be periodically transmitted from the first processor 732a to the second processor 732b through inter-processor communication.
  • the white list Tbb may be implemented as an Array, Struct, or Collection, and may be stored in the first memory 320 or the second memory 330 .
  • the shared memory 508 may allocate a buffer having a size aligned with a memory block or a memory address during communication between processors. This will be described with reference to FIGS. 8C and 8D.
  • 8C and 8D are diagrams illustrating various examples of allocating an IPC buffer in a shared memory.
  • FIG. 8C illustrates an example of IPC buffer allocation in a shared memory, in which IPC buffers BFa and BFb are allocated between a plurality of memory blocks or boundaries of memory addresses MBa to MBc.
  • IPC buffers (BFa, BFb) are allocated between a plurality of memory blocks or boundaries of memory addresses (MBa to MBc)
  • dfetch is performed twice. Therefore, performance at the time of reading or writing is disadvantageous.
  • FIG. 8D illustrates, as another example of IPC buffer allocation in the shared memory, allocation of IPC buffers (BFa, BFb, and BFc) aligned at the boundary of a plurality of memory blocks or memory addresses (MBa to MBc).
  • IPC buffers (BFa, BFb, BFc) are allocated aligned on the boundary of a plurality of memory blocks or memory addresses (MBa to MBc)
  • fetching Since it is possible to read or write only once, performance delay does not occur.
  • the shared memory 508 may allocate a buffer having a size aligned with a memory block or memory address during communication between processors. Accordingly, it is possible to reduce overhead that may occur during memory access.
  • the shared memory 508 may set the number of buffers smaller than the number of periodic events for inter-processor communication. Accordingly, it is possible to reduce overhead that may occur during memory access.
  • FIG. 9 is a sequence diagram illustrating a first message subscription.
  • Ethernet processor or Ethernet communication ECU 626 transmits a subscription request for the first message (S910), and the second manager 734b in the second processor 732b sends the subscription request for the first message.
  • Ethernet processor or Ethernet communication ECU 626 may transmit a subscription request for a first message including speed data or location information data.
  • the second manager 734b in the second processor 732b may transmit a subscription request for the first message to the IPC buffer 762 in the shared memory 508 (S912).
  • the second manager 734b may execute the timer 737 within the second manager 734b.
  • the subscription request of the first message transmitted to the IPC buffer 762 in the shared memory 508 may be transferred to the first manager 734a in the first processor 732a.
  • the first manager 734a periodically receives a first message predefined in the CAN database (DB) from at least one CAN communication ECU 618 or the like.
  • DB CAN database
  • the first manager 734a compares the first message received with the subscription request among the CAN communication data or first messages received periodically, and compares the first message received with the subscription request to the IPC buffer 762 in the shared memory 508. ) can be transmitted (S916).
  • the first manager 734a separately processes the first message that has not received a subscription request among CAN communication data or first messages received periodically according to an internal operation, and stores the IPC buffer 762 in the shared memory 508. do not send to
  • the first manager 734a stores or manages in the first cache 735a when receiving the first message requested for subscription, and compares the value stored in the first cache 735a when receiving the first message, If the difference is greater than or equal to a predetermined value, the first message requested for subscription may be transmitted to the IPC buffer 762 in the shared memory 508 .
  • the first message may be transmitted from at least one CAN communication ECU 618 to the first manager 734a (S920).
  • the first manager 734a creates a first cache 735a (S922) and stores the first message in the created first cache 735a (S924).
  • the first manager 734a may transmit the value stored in the first cache 735a to the IPC buffer 762 in the shared memory 508 (S926).
  • step 914 the second manager 734b in the second processor 732b creates a second cache 735b (S923), and after creating the second cache 735b, shared memory ( A value recorded in the IPC buffer 762 in 508) can be read (S928).
  • the second manager 734b in the second processor 732b records the value received from the IPC buffer 762 in the shared memory 508 in the created second cache 735b (S930).
  • the timer 737 reads the value recorded in the second cache 735b in the first cycle (S932), receives the value recorded in the second cache 735b, and the value recorded in the second cache 735b.
  • the first message corresponding to is transmitted to the Ethernet processor or Ethernet communication ECU (626) (S934).
  • the timer 737 reads the value recorded in the second cache 735b in the second cycle after the first cycle (S936), receives the value recorded in the second cache 735b, and The first message corresponding to the value recorded in the cache 735b is transmitted to the Ethernet processor or Ethernet communication ECU 626 (S938).
  • the Ethernet processor or the Ethernet communication ECU 626 can subscribe to the first message periodically.
  • 10 is a sequence diagram related to periodic events.
  • the first message may be transmitted from at least one CAN communication ECU 618 to the first manager 734a. Yes (S1020).
  • the first manager 734a reads the value stored in the first cache 735a (S1022).
  • the first manager 734a transfers the value stored in the first cache 735a to the IPC buffer 762 in the shared memory 508, and the IPC buffer 762 in the shared memory 508,
  • the value stored in the first cache 735a is transmitted to the second manager 734b, and the second manager 734b records the received value in the second cache 735b.
  • the timer 737 in the second manager 734b in the second processor 732b reads the value recorded in the second cache 735b (S1023) and writes the value to the second cache 735b.
  • the first message corresponding to the value obtained is transmitted to the Ethernet processor or the Ethernet communication ECU (626) (S1030).
  • the first manager 734a in the first processor 732a compares the value stored in the first cache 735a with the received new first message, and when the difference is greater than or equal to a predetermined value, a new first message is received. You can control which messages are saved.
  • the first cache 735a may compare the value stored in the first cache 735a with the new first message received, and store the new first message when the difference is greater than or equal to a predetermined value.
  • the first manager 734a in the first processor 732a compares the value stored in the first cache 735a with the new received first message, and compares the difference therebetween. When is less than a predetermined value, the value stored in the first cache 735a may be controlled not to be transmitted to the IPC buffer 762 in the shared memory 508.
  • the first manager 734a in the first processor 732a compares the value stored in the first cache 735a with the new received first message, and when the difference is greater than or equal to a predetermined value, A value stored in the first cache 735a may be transmitted to the IPC buffer 762 in the shared memory 508 .
  • the first manager 734a in the first processor 732a compares the value stored in the first cache 735a with the received new first message, and when the difference is greater than or equal to a predetermined value, the first cache 735a In operation 735a, the received new first message may be recorded (S1040), and the received new first message may be transmitted to the IPC buffer 762 in the shared memory 508 (S1042).
  • the second manager 734b in the second processor 732b reads the value recorded in the IPC buffer 762 in the shared memory 508 (S1044) and writes the value in the second cache 735b. It does (S1046).
  • the first message requested for subscription when the first message requested for subscription is received, it is stored or managed in the first cache 735a, and when the first message is received, the value stored in the first cache 735a is compared, and the difference is greater than or equal to a predetermined value.
  • the first message is transmitted to the second processor 732b through inter-processor communication using the shared memory 508, thereby minimizing cache occupancy or buffer occupancy of the same data to reduce latency during inter-processor communication. and high-speed data transmission.
  • FIG. 11 is a flowchart related to the operation of the first manager 734a in the first processor 732a of FIG. 10 .
  • the first manager 734a in the first processor 732a receives a first message (signal A) based on a subscription request for the first message of the Ethernet processor or the Ethernet communication ECU 626. (S1110).
  • Step 1110 ( S1110 ) may correspond to step 1020 ( S1020 ) of FIG. 10 .
  • Step 1115 may correspond to step 1022 ( S1022 ) of FIG. 10 .
  • the first manager 734a in the first processor 732a reads the value stored in the first cache 735a.
  • the first manager 734a in the first processor 732a determines whether the value stored in the first cache 735a and the new received first message (signal A) are the same (S1120).
  • step 1110 S1110 is performed again.
  • Step 1125 may correspond to step 1040 ( S1040 ) of FIG. 10 .
  • Step 1130 may correspond to step 1042 ( S1042 ) of FIG. 10 .
  • 12A to 12C are diagrams illustrating various examples of IPC buffer tables for periodic events.
  • FIG. 12A illustrates a table Tb1 representing values of periodic events to be transmitted.
  • Table Tb1 in the drawing may be a first message according to a subscription request in the Ethernet processor or Ethernet communication ECU 626 .
  • distance information distance
  • communication state information B_CAN_status
  • speed information Speed
  • the period of each information may be different from each other.
  • the shortest period of distance information (distance) is 10 ms
  • the period of communication status information (B_CAN_status) is 20 ms longer than the period of distance information (distance)
  • the period of speed information (Speed) is 40 ms, the longest period. do.
  • 12B is a diagram illustrating a table Tb2 indicating that all periodic events to be transmitted are transmitted to the IPC buffer 762.
  • FIG. 12C illustrates a table Tb3 in which the usage of the IPC buffer 762 is reduced according to an embodiment of the present disclosure.
  • the IPC buffer 762 It is possible to reduce the usage amount, and furthermore, it is possible to reduce performance degradation in the IPC buffer 762 in a complex scenario or a high processor load state.
  • 13 is a sequence diagram based on application.
  • the ADAS application 1300 executed in the second processor 732b or a separate processor (not shown) transmits a subscription request for distance information of the vehicle in front to the second processor 732b (S1310) .
  • the second processor 732b transmits a subscription request for distance information of the preceding vehicle to the first processor 732a via the IPC buffer 762 in the shared memory 508 through inter-processor communication (S1315 ).
  • the first processor 732a receives the distance information of the preceding vehicle from the radar sensor 197 in the first cycle (S1320).
  • the first processor 732a searches for a value of the first cache 735a through a signal ID (S1325).
  • the first processor 732a compares the received distance information of the preceding vehicle with the value of the distance information of the preceding vehicle stored in the first cache 735a, and if the same or the difference is less than a predetermined value, the received preceding vehicle The distance information of is dropped without being stored in the first cache 735a (S1330).
  • the first processor 732a does not transmit the received distance information of the vehicle in front to the second processor 732b via the IPC buffer 762 in the shared memory 508 through inter-processor communication. No (S1335).
  • the second processor 732b uses the pre-stored value of the second cache 735b based on the timer 737 as the distance information of the preceding vehicle, It is transmitted to the ADAS application 1300 (S1340).
  • the ADAS application 1300 may output a control signal such as a brake control based on the distance information of the preceding vehicle, which is a value of the previously stored second cache 735b (S1345).
  • the first processor 732a receives the distance information of the preceding vehicle from the radar sensor 197 in a second period after the first period (S1350).
  • the first processor 732a searches for a value of the first cache 735a through a signal ID (S1352).
  • the first processor 732a compares the received distance information of the preceding vehicle with the distance information value of the preceding vehicle stored in the first cache 735a, and when the difference is greater than or equal to a predetermined value, the received distance information of the preceding vehicle is stored in the first cache 735a (S1354).
  • the first processor 732a transmits the stored distance information of the preceding vehicle to the second processor 732b via the IPC buffer 762 in the shared memory 508 through inter-processor communication (S1356) .
  • the second processor 732b stores the latest distance information of the preceding vehicle in the second cache 735b (S1358).
  • the second processor 732b transmits the value stored in the second cache 735b to the ADAS application 1300 as distance information of the preceding vehicle (S1360).
  • the ADAS application 1300 may output a control signal such as a brake control based on the distance information of the preceding vehicle, which is the value of the stored second cache 735b (S1362).
  • the second processor 732b transmits a subscription request for distance information of the preceding vehicle to the first processor 732a according to the subscription request for distance information of the preceding vehicle, and the first processor 732a ,
  • the distance information of the preceding vehicle is received from the radar sensor, and when the distance information of the preceding vehicle is received, compared with the value stored in the first cache 735a, and the difference is greater than or equal to a predetermined value, the first cache 735a Distance information of the preceding vehicle may be stored, and the stored value of the first cache 735a may be transmitted to the second processor 732b through inter-processor communication. Accordingly, it is possible to transmit distance information of the preceding vehicle while reducing communication delay between processors.
  • the second processor 732b stores the received distance information of the preceding vehicle in the second cache 735b through inter-processor communication, and stores the distance information of the preceding vehicle stored in the second cache 735b, A subscription request for vehicle distance information may be transmitted to the application that has transmitted the subscription request. Accordingly, it is possible to transmit distance information of the preceding vehicle while reducing communication delay between processors.
  • the second processor 732b transmits a subscription request for distance information of the preceding vehicle to the first processor 732a according to a subscription request for distance information of the preceding vehicle
  • the first processor 732a transmits a radar sensor
  • the received distance information of the preceding vehicle is compared with the first cache 735a. It is not stored in the cache 735a and is not transmitted to the second processor 732b through inter-processor communication. Accordingly, it is possible to transmit the distance information of the preceding vehicle while minimizing buffer occupancy of the same data and reducing communication delay between processors.
  • the second processor 732b transmits information for execution of the second queue PTa to the second manager 734b (S1410).
  • information for execution of the second queue PTa may include location information or application information related to location information.
  • information for execution of the second queue PTa may be information related to the second message.
  • the second manager 734b checks the second list 738b based on the received information for execution of the second queue PTa (S1415).
  • the second manager 734b determines whether information for execution of the received second queue PTa is included in the second list 738b.
  • the second manager 734b notifies the execution failure of the second queue PTa as a second queue PTa. It is transmitted to the processor 732b (S1420).
  • the second manager 734b when the received information for execution of the second queue PTa is included in the second list 738b, notifies that the execution possibility of the second queue PTa is notified to the second processor. It is transmitted to (732b) (S1425).
  • the second processor 732b can transmit location information or a second message to the second manager 734b (S1430).
  • the second manager 734b may transmit location information or a second message to the second queue PTa in the IPC buffer 762 in the shared memory 508 through inter-processor communication (S1435).
  • the first manager 734a in the first processor 732a reads the value of the second queue PTa in the IPC buffer 762 in the shared memory 508, such as location information or a second message. can do.
  • the first manager 734a in the first processor 732a may transmit the read location information or the second message to the subscribed first processor 732a or a separate processor (not shown) (S1445 ).
  • 15A is a diagram illustrating an inter-processor communication method related to the present disclosure.
  • inter-processor communication may be performed between a first processor 732a and a second processor 732b using a shared memory 508 .
  • FIG. 15A illustrates using only the first queue PTb, which is a normal priority queue.
  • the second processor 732b executes one IPC handler 345 to transmit three channels. Receive channel data.
  • processing delay occurs as the number of IPC transmission events increases, and real-time transmission of time sensitive-critical events cannot be guaranteed.
  • 15B is a diagram illustrating an inter-processor communication method according to an embodiment of the present disclosure.
  • inter-processor communication may be performed between a first processor 732a and a second processor 732b by using a shared memory 508 .
  • FIG. 15B illustrates the complex use of a first queue (PTb), which is a normal priority queue, and a second queue (PTa), which is a high priority queue.
  • PTb a first queue
  • PTa a second queue
  • FIG. 15B illustrates that 'K' data among data of each channel is separated and the second queue PTa is used, and the other data uses the first queue PTb.
  • the second processor 732b may execute the first IPC handler 345a for the first queue PTb and the second IPC handler 345b for the second queue PTa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 개시는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치에 관한 것이다. 본 개시의 일 실시예에 따른 신호 처리 장치는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서와, 제1 프로세서와 제2 프로세서 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리를 포함한다. 이에 의해, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.

Description

신호 처리 장치 및 이를 구비하는 차량용 통신 장치
본 개시는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치에 관한 것이며, 더욱 상세하게는 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치에 관한 것이다.
차량은 탑승하는 사용자가 원하는 방향으로 이동시키는 장치이다. 대표적으로 자동차를 예를 들 수 있다.
한편, 차량을 이용하는 사용자의 편의를 위해, 차량 내부에 차량용 통신 장치가 탑재되고 있다.
특히, 차량 내부의 복수의 프로세서 사이의 데이터 통신을 위해, 고속 라우터인 게이트웨이가 사용될 수 있다.
한국등록특허번호 제10-1020948호(이하, 선행 문헌이라 함)는, 차량용 네트워크 게이트웨이 및 네트워크 시스템에 관한 것으로서, 차량의 텔레매틱스 모듈을 이용하여 무선랜을 지원하는 이동 단말이 인터넷을 이용하는 내용이 개시된다.
그러나, 선행 문헌에 의하면, 차량용 네트워크 게이트웨이의 통신 방식이, UART, SPI 등으로 낮은 대역폭과 불필요한 메모리 복사로 인해, 실시간 데이터 전송 및 대용량 데이터 전송이 어렵다는 문제가 있다.
본 개시의 목적은, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 다른 목적은, 동일 데이터의 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 또 다른 목적은, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
한편, 본 개시의 또 다른 목적은, 메모리 억세스시 발생할 수 있는 오버헤드를 저감할 수 있는 신호 처리 장치 및 이를 구비하는 차량용 통신 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 개시의 일 실시예에 따른 신호 처리 장치 및 이를 구비하는 차량용 통신 장치는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서와, 제1 프로세서와 제2 프로세서 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리를 포함한다.
한편, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 제1 메시지를 제1 프로세서로 전송하는 트랜시버와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하여, 제2 메시지를 제2 프로세서로 전송하는 스위치를 더 포함할 수 있다.
한편, 제1 프로세서는, 프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제1 캐쉬(cache)를 포함하는 제1 매니저를 구비하고, 제2 프로세서는, 프로세서 간 통신을 위한 제2 캐쉬와 타이머를 포함하는 제2 매니저를 구비할 수 있다.
한편, 제1 프로세서는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 프로세서 간 통신을 통해, 제2 프로세서로 제1 메시지를 전송할 수 있다.
한편, 제1 프로세서는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 공유 메모리를 이용하여, 프로세서 간 통신을 통해, 제2 프로세서로 제1 메시지를 전송할 수 있다.
한편, 제2 프로세서는, 이더넷 프로세서로부터 제1 메시지의 구독 요청을 수신하고, 프로세서 간 통신을 통해, 구독 요청을 전송할 수 있다.
한편, 제2 프로세서는, 제1 메시지의 첫 수신시, 제2 캐쉬에 저장하고, 제1 메시지의 후속 수신시, 제2 캐쉬를 업데이트할 수 있다.
한편, 제2 프로세서는, 제1 메시지 수신에 따라 타이머의 쓰레드를 생성하고, 쓰레드의 만료마다 제2 캐쉬의 값을, 이더넷 프로세서로 전달할 수 있다.
한편, 제2 프로세서는, 프로세서 간 통신이 수행되지 않아 제1 메시지가 수신되지 않는 주기 동안에는, 제2 캐쉬의 값을, 이더넷 프로세서로 전달할 수 있다.
한편, 제2 프로세서는, 프로세서 간 통신이 수행되어 제1 메시지가 수신되는 주기 동안에는, 제2 캐쉬에 업데이트된 값을, 이더넷 프로세서로 전달할 수 있다.
한편, 공유 메모리는, 프로세서 간 통신시, 제1 큐(queue)와, 제1 큐 보다 우선권이 높이 제2 큐를 통해, 데이터를, 제1 프로세서에서 제2 프로세서 사이에 전송되도록 할 수 있다.
한편, 공유 메모리는, 속도 데이터 또는 위치 정보 데이터를, 제2 큐를 통해, 제1 프로세서와 제2 프로세서 사이에 전송되도록 할 수 있다.
한편, 제1 프로세서 또는 제2 프로세서는, 제2 큐를 이용할 수 있는 어플리케이션을 포함하는 리스트를 관리할 수 있다.
한편, 공유 메모리는, 프로세서 간 통신을 위한 이벤트가 증가하더라도, 제2 큐를 위해 할당된 이벤트에 대응하는 데이터만 제2 큐를 통해, 전송되록 할 수 있다.
한편, 공유 메모리는, 프로세서 간 통신시, 메모리 블록 또는 메모리 주소에 정렬되는 사이즈의 버퍼를 할당할 수 있다.
한편, 공유 메모리는, 프로세서 간 통신을 위한 주기적인 이벤트 횟수 보다 적은 개수의 버퍼를 설정할 수 있다.
한편, 제2 프로세서는, 전방 차량의 거리 정보의 구독 요청에 따라, 제1 프로세서로 전방 차량의 거리 정보의 구독 요청을 전송하고, 제1 프로세서는, 레이더 센서로부터의 전방 차량의 거리 정보를 수신하고, 전방 차량의 거리 정보 수신시, 제1 캐쉬에 저장된 값과 비교하여 그 차이가 소정치 이상인 경우에, 제1 캐쉬에 전방 차량의 거리 정보를 저장하고, 저장된 제1 캐쉬의 값을, 프로세서 간 통신을 통해, 제2 프로세서로 전송할 수 있다.
한편, 제2 프로세서는, 프로세서 간 통신을 통해, 수신된 전방 차량의 거리 정보를 제2 캐쉬에 저장하고, 제2 캐쉬에 저장된 전방 차량의 거리 정보를, 전방 차량의 거리 정보의 구독 요청을 전송한, 어플리케이션으로 전송할 수 있다.
한편, 제2 프로세서는, 전방 차량의 거리 정보의 구독 요청에 따라, 제1 프로세서로 전방 차량의 거리 정보의 구독 요청을 전송하고, 제1 프로세서는, 레이더 센서로부터의 전방 차량의 거리 정보를 수신하고, 전방 차량의 거리 정보 수신시, 제1 캐쉬에 저장된 값과 비교하여 그 차이가 소정치 미만인 경우에, 수신된 전방 차량의 거리 정보를 제1 캐쉬에 저장하지 않고, 프로세서 간 통신을 통해, 제2 프로세서로 전송하지 않는다.
한편, IPC 채널을 구비하는 제1 메모리와, 차량 속도 데이터를 포함하는 센서 데이터를 저장하는 제2 메모리를 더 구비하고, 공유 메모리는, 제1 메모리 내에 구비될 수 있다.
한편, 제1 프로세서는, 메시지 라우터를 실행하고, 메시지 라우터는, 제1 메시지의 프레임을 제2 메시지의 프레임 형식으로 변환하여, 제2 프로세서로 전송하도록 제어할 수 있다.
본 개시의 일 실시예에 따른 신호 처리 장치 및 이를 구비하는 차량용 통신 장치는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서와, 제1 프로세서와 제2 프로세서 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리를 포함한다. 이와 같이, 제1 프로세서와 제2 프로세서 사이의 통신시 공유 메모리를 이용한 프로세서간 통신을 수행함으로써, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 데이터 전송을 수행할 수 있게 된다.
한편, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 제1 메시지를 제1 프로세서로 전송하는 트랜시버와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하여, 제2 메시지를 제2 프로세서로 전송하는 스위치를 더 포함할 수 있다. 이에 따라, 제1 신회와 제2 메시지를 각각 안정적으로 제1 프로세서와 제2 프로세서로 전달할 수 있게 된다.
한편, 제1 프로세서는, 프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제1 캐쉬(cache)를 포함하는 제1 매니저를 구비하고, 제2 프로세서는, 프로세서 간 통신을 위한 제2 캐쉬와 타이머를 포함하는 제2 매니저를 구비할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제1 프로세서는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 프로세서 간 통신을 통해, 제2 프로세서로 제1 메시지를 전송할 수 있다. 이에 따라, 동일 데이터의 캐쉬 점유 또는 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제1 프로세서는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 공유 메모리를 이용하여, 프로세서 간 통신을 통해, 제2 프로세서로 제1 메시지를 전송할 수 있다. 이에 따라, 동일 데이터의 캐쉬 점유 또는 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서는, 이더넷 프로세서로부터 제1 메시지의 구독 요청을 수신하고, 프로세서 간 통신을 통해, 구독 요청을 전송할 수 있다. 이에 따라, 프로세서 간 통신을 수행할 수 있게 된다.
한편, 제2 프로세서는, 제1 메시지의 첫 수신시, 제2 캐쉬에 저장하고, 제1 메시지의 후속 수신시, 제2 캐쉬를 업데이트할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서는, 제1 메시지 수신에 따라 타이머의 쓰레드를 생성하고, 쓰레드의 만료마다 제2 캐쉬의 값을, 이더넷 프로세서로 전달할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서는, 프로세서 간 통신이 수행되지 않아 제1 메시지가 수신되지 않는 주기 동안에는, 제2 캐쉬의 값을, 이더넷 프로세서로 전달할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서는, 프로세서 간 통신이 수행되어 제1 메시지가 수신되는 주기 동안에는, 제2 캐쉬에 업데이트된 값을, 이더넷 프로세서로 전달할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 공유 메모리는, 프로세서 간 통신시, 제1 큐(queue)와, 제1 큐 보다 우선권이 높이 제2 큐를 통해, 데이터를, 제1 프로세서에서 제2 프로세서 사이에 전송되도록 할 수 있다. 이에 따라, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
한편, 공유 메모리는, 속도 데이터 또는 위치 정보 데이터를, 제2 큐를 통해, 제1 프로세서와 제2 프로세서 사이에 전송되도록 할 수 있다. 이에 따라, 프로세서 간 통신에서 우선권 높은 속도 데이터 또는 위치 정보 데이터의 실시간 전송을 보장할 수 있게 된다.
한편, 제1 프로세서 또는 제2 프로세서는, 제2 큐를 이용할 수 있는 어플리케이션을 포함하는 리스트를 관리할 수 있다. 이에 따라, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
한편, 공유 메모리는, 프로세서 간 통신을 위한 이벤트가 증가하더라도, 제2 큐를 위해 할당된 이벤트에 대응하는 데이터만 제2 큐를 통해, 전송되록 할 수 있다. 이에 따라, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
한편, 공유 메모리는, 프로세서 간 통신시, 메모리 블록 또는 메모리 주소에 정렬되는 사이즈의 버퍼를 할당할 수 있다. 이에 따라, 메모리 억세스시 발생할 수 있는 오버헤드를 저감할 수 있게 된다.
한편, 공유 메모리는, 프로세서 간 통신을 위한 주기적인 이벤트 횟수 보다 적은 개수의 버퍼를 설정할 수 있다. 이에 따라, 메모리 억세스시 발생할 수 있는 오버헤드를 저감할 수 있게 된다.
한편, 제2 프로세서는, 전방 차량의 거리 정보의 구독 요청에 따라, 제1 프로세서로 전방 차량의 거리 정보의 구독 요청을 전송하고, 제1 프로세서는, 레이더 센서로부터의 전방 차량의 거리 정보를 수신하고, 전방 차량의 거리 정보 수신시, 제1 캐쉬에 저장된 값과 비교하여 그 차이가 소정치 이상인 경우에, 제1 캐쉬에 전방 차량의 거리 정보를 저장하고, 저장된 제1 캐쉬의 값을, 프로세서 간 통신을 통해, 제2 프로세서로 전송할 수 있다. 이에 따라, 프로세서 간 통신의 지연을 저감하면서, 전방 차량의 거리 정보를 전송할 수 있게 된다.
한편, 제2 프로세서는, 프로세서 간 통신을 통해, 수신된 전방 차량의 거리 정보를 제2 캐쉬에 저장하고, 제2 캐쉬에 저장된 전방 차량의 거리 정보를, 전방 차량의 거리 정보의 구독 요청을 전송한, 어플리케이션으로 전송할 수 있다. 이에 따라, 프로세서 간 통신의 지연을 저감하면서, 전방 차량의 거리 정보를 전송할 수 있게 된다.
한편, 제2 프로세서는, 전방 차량의 거리 정보의 구독 요청에 따라, 제1 프로세서로 전방 차량의 거리 정보의 구독 요청을 전송하고, 제1 프로세서는, 레이더 센서로부터의 전방 차량의 거리 정보를 수신하고, 전방 차량의 거리 정보 수신시, 제1 캐쉬에 저장된 값과 비교하여 그 차이가 소정치 미만인 경우에, 수신된 전방 차량의 거리 정보를 제1 캐쉬에 저장하지 않고, 프로세서 간 통신을 통해, 제2 프로세서로 전송하지 않는다. 이에 따라, 동일 데이터의 버퍼 점유를 최소화하여 프로세서 간 통신의 지연을 저감하면서, 전방 차량의 거리 정보를 전송할 수 있게 된다.
한편, IPC 채널을 구비하는 제1 메모리와, 차량 속도 데이터를 포함하는 센서 데이터를 저장하는 제2 메모리를 더 구비하고, 공유 메모리는, 제1 메모리 내에 구비될 수 있다. 이에 따라, 차량 속도 데이터 전송시, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제1 프로세서는, 메시지 라우터를 실행하고, 메시지 라우터는, 제1 메시지의 프레임을 제2 메시지의 프레임 형식으로 변환하여, 제2 프로세서로 전송하도록 제어할 수 있다. 이에 따라, 안정적인 프로세서 간 통신을 수행할 수 있게 된다.
도 1은 차량 외부 및 차량 내부의 일예를 도시한 도면이다.
도 2a 내지 도 2c는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 다양한 아키텍쳐를 도시한 도면이다.
도 3은 본 개시의 실시에에 따른 신호 처리 장치의 내부 블록도의 일예이다.
도 4a는 본 개시의 실시에에 따른 차량 내부의 차량용 디스플레이 장치의 배치의 일예를 도시한 도면이다.
도 4b는 본 개시의 실시에에 따른 차량 내부의 차량용 디스플레이 장치의 배치의 다른 예를 도시한 도면이다.
도 5는 도 4b의 차량용 디스플레이 장치의 내부 블록도의 일예이다.
도 6은 본 개시와 관련한 차량용 통신 장치의 내부 블록도의 일예이다.
도 7은 본 개시의 실시에에 따른 차량용 통신 장치의 내부 블록도의 일예이다.
도 8a 내지 도 15b는 도 7의 설명에 참조되는 도면이다.
이하에서는 도면을 참조하여 본 개시를 보다 상세하게 설명한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
도 1은 차량 외부 및 차량 내부의 일예를 도시한 도면이다.
도면을 참조하면, 차량(200)은, 동력원에 의해 회전하는 복수의 바퀴(103FR,103FL,103RL,..), 차량(200)의 진행 방향을 조절하기 위한 스티어링휠(150)에 의해 동작한다.
한편, 차량(200)은, 차량 전방의 영상 획득을 위한 카메라(195) 등을 더 구비할 수 있다.
한편, 차량(200)은, 내부에 영상, 정보 등의 표시를 위한 복수의 디스플레이(180a,180b)를 구비할 수 있다.
도 1에서는, 복수의 디스플레이(180a,180b)로, 클러스터 디스플레이(180a), AVN(Audio Video Navigation) 디스플레이(180b)를 예시한다. 그 외, HUD(Head Up Display) 등도 가능하다.
한편, AVN(Audio Video Navigation) 디스플레이(180b)는, 센터 정보 디스플레이(Center Information Dislpay)라 명명할 수도 있다.
한편 본 개시의 실시예에 따르면, 복수의 디스플레이(180a,180b)를 구비하는 차량용 디스플레이 장치(100)에서, 복수의 디스플레이(180a,180b)에서 동일한 영상을 동기화하여 표시할 수 있다.
특히, 차량용 디스플레이 장치(100) 내의 신호 처리 장치(170)는, 복수의 가상화 머신에 동일한 데이터를 동기화하여 전송하며, 복수의 디스플레이에 표시되는 영상은 서로 동일하도록 제어할 수 있다다.
한편, 본 명세서에서 기술되는 차량(200)은, 동력원으로서 엔진을 구비하는 차량, 동력원으로서 엔진과 전기 모터를 구비하는 하이브리드 차량, 동력원으로서 전기 모터를 구비하는 전기 차량 등을 모두 포함하는 개념일 수 있다.
도 2a 내지 도 2c는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 다양한 아키텍쳐를 도시한 도면이다.
먼저, 도 2a는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 제1 아키텍쳐를 도시한 도면이다.
도면을 참조하면, 제1 아키텍쳐(300a)는, 존(zone) 기반의 아키텍체에 대응할 수 있다.
이에 따라, 복수의 존(zone)(Z1~Z4)에, 각각 차량 내부의 센서 장치와 프로세서가 배치될 수 있으며, 복수의 존(zone)(Z1~Z4)의 중앙 영역에, 차량용 통신 게이트웨이(GWDa)를 포함하는 신호 처리 장치(170a)가 배치될 수 있다.
한편, 신호 처리 장치(170a)는, 차량용 통신 게이트웨이(GWDa) 외에, 추가로, 자율 주행 제어 모듈(ACC), 칵핏 제어 모듈(CPG) 등을 더 포함할 수 있다.
이러한, 신호 처리 장치(170a) 내의 차량용 통신 게이트웨이(GWDa)는, HPC(High Performance Computing) 게이트웨이일 수 있다.
즉, 도 2a의 신호 처리 장치(170a)는 통합형 HPC로서, 외부의 통신 모듈(미도시) 또는 복수의 존(zone)(Z1~Z4) 내의 프로세서(미도시)와 데이터를 교환할 수 있다.
도 2b는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 제2 아키텍쳐를 도시한 도면이다.
도면을 참조하면, 제2 아키텍쳐(300b)는, 도메인 통합형 아키텍쳐에 대응할 수 있다.
이에 따라, 게이트웨이(GWDb)에, 바디 샤시 제어 모듈(BSG), 파워 제어 모듈(PTG), ADAS 제어 모듈(ADG), 칵핏 제어 모듈(CPG)가 병렬로 접속되며, 각 모듈(BSG,PTG,ADG,CPG)에, 복수의 프로세서(ECU)가 각각 전기적으로 접속될 수 있다.
한편, 각 프로세서(ECU)는, 게이트웨이(GWDb)에 통합하여 접속될 수 있다.
한편, 도 2b의 게이트웨이(GWDb)를 포함하는 신호 처리 장치(170)는, 도메인 통합형 신호 처리 장치로서 동작하게 된다.
도 2c는 본 개시의 실시예에 따른 차량용 통신 게이트웨이의 제3 아키텍쳐를 도시한 도면이다.
도면을 참조하면, 제3 아키텍쳐(300c)는, 분산형 아키텍쳐에 대응할 수 있다.
이에 따라, 게이트웨이(GWDc)에, 바디 샤시 제어 모듈(BSG), 파워 제어 모듈(PTG), ADAS 제어 모듈(ADG), 칵핏 제어 모듈(CPG)이 병렬 접속되며, 특히, 각 제어 모듈 내의 복수의 프로세서(ECU)가, 병렬로 게이트웨이(GWDb)에 접속될 수 있다.
도 2b와 비교하면, 제3 아키텍쳐는, 각 프로세서(ECU)가, 다른 모듈에 접속 없이, 바로 게이트웨이(GWDb)에 접속되는 것에 그 차이가 있다.
한편, 도 2c의 게이트웨이(GWDc)를 포함하는 신호 처리 장치(170)는, 분산형 신호 처리 장치로서 동작하게 된다.
도 3은 본 개시의 실시에에 따른 신호 처리 장치의 내부 블록도의 일예이다.
도면을 참조하면, 본 개시의 실시에에 따른 신호 처리 장치(170)는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서(732a)와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서(732b)를 포함한다.
이때, 제2 통신 방식은, 제1 통신 방식 보다 통신 속도가 더 빠르거나, 대역폭이 더 클 수 있다.
예를 들어, 제2 통신 방식은, 이더넷 통신 방식이며, 제1 통신 방식은 CAN 통신 방식일 수 있다. 이에 따라, 제1 메시지는 CAN 메시지일 수 있으며, 제2 메시지는 이더넷 메시지일 수 있다.
한편, 본 개시의 실시에에 따른 신호 처리 장치(170)는, IPC 채널을 구비하는 제1 메모리(320)와, 차량 속도 데이터를 포함하는 센서 데이터를 저장하는 제2 메모리(330)를 더 구비한다.
예를 들어, 제1 메모리(320)는, SRAM(Static RAM)일 수 있으며, 제2 메모리(330)는 DDR 메모리일 수 있다. 특히, 제2 메모리(330)는, DDR SDRAM(Double data rate synchronous dynamic random access memory)일 수 있다.
한편, 본 개시의 실시에에 따른 신호 처리 장치(170)는, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리(508)를 포함한다.
이와 같이, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 통신시 공유 메모리(508)를 이용한 프로세서간 통신을 수행함으로써, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 데이터 전송을 수행할 수 있게 된다.
한편, 공유 메모리(508)는, 제1 메모리(320) 내에 구비되는 것이 바람직하다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제1 프로세서(732a)는, 내부에 복수의 프로세서 코어(317o,317a,317b)를 구비할 수 있다.
한편, 제1 프로세서(732a)는, 외부의 차량 센서들로부터 CAN 메시지를 수신하는 인터페이스(319)를 더 구비할 수 있다.
예를 들어, 제1 프로세서(732a) 내의 제1 프로세서 코어(317o)는, 복수의 애플리케이션을 실행하거나, 제1 오토사(AUTomotive Open System Architecture; AUTOSAR)(312)를 실행할 수 있다.
특히, 제1 프로세서 코어(317o)는, 제2 오토사(312)를 실행하여, 프로세서 간 통신 핸들러(IPC Handler)(314)를 실행할 수 있다.
한편, IPC Handler)(314)는, 제1 메모리(320)와 데이터를 교환하거나, 제1 프로세서 코어(317o)에서 실행되는 애플리케이션과 IPC 데이터를 교환할 수 있다.
한편, IPC Handler)(314)는, 제2 프로세서(732b) 내의 IPC 드라이버(348)로, 인터럽트를 교환할 수 있다.
한편, 제1 프로세서(732a) 내의 제2 프로세서 코어(317a)는, IDS를 실행하고, 제2 메모리(330)로부터의 CAN 데이터를 수신할 수 있다.
한편, 제1 프로세서(732a) 내의 제3 프로세서 코어(317b)는, Logging을 실행하여, 인터페이스(319)를 통해 수신되는 CAN 데이터를 제2 메모리(330)에 저장할 수 있다.
한편, 제1 프로세서(732a) 내의 제3 프로세서 코어(317b)는, 프로세서 간 통신(IPC) 모듈(318)을 실행하여, 제1 메모리(320)와 IPC 데이터를 교환할 수 있다.
한편, 제1 프로세서(732a) 내의 제3 프로세서 코어(317b)는, 제2 프로세서(732b) 내의 IPC 드라이버(348)로, 인터럽트를 전송할 수 있다.
제1 메모리(320)는, IPC Handler)(314) 또는 IPC 모듈(318)과 IPC 데이터를 교환할 수 있다.
한편, 제2 프로세서(732b)는, 애플리케이션(343), IPC 핸들러(345), IPC 데몬(daemon)(346), IPC 드라이버(348) 등을 실행할 수 있다.
한편, 제2 프로세서(732b)는, 서비스 지향 아키텍쳐(Service Oriented Architecture; SOA) 어댑터(341), 진단 서버(342), 제2 오토사(347)를 더 실행할 수 있다.
제2 오토사(347)는, 어댑티브 오토사(Adaptive AUTOSAR)일 수 있으며, 제1 오토사(312)는 클래식 오토사(Classic AUTOSAR)일 수 있다.
IPC 데몬(daemon)(346)은, SOA 어댑터(341), 진단 서버(342), IPC 핸들러(345), IPC 드라이버(348) 등과 인터럽트 신호를 교환할 수 있다.
한편, 제1 메모리(320)는, SOA 어댑터(341), 진단 서버(342), IPC 핸들러(345) 등과 IPC 데이터를 교환할 수 있다.
한편, 도 3의 설명에서 기술한 IPC 데이터는, CAN 메시지 또는 이더넷 메시지일 수 있다.
한편, IPC Handler(345)는, 진단, 펌웨어 Upgrade, 시스템 정보 등의 데이터를 제2 오토사(347) 기반으로 제공하는 Service Provider로 동작할 수 있다.
한편, 도 3에는 도시하지 않았지만, 제1 프로세서(732a)는, 메시지 라우터(미도시)를 실행하고, 메시지 라우터는, CAN 메시지와 같은 제1 메시지의 프레임을, 이더넷 메시지와 같은 제2 메시지의 프레임 형식으로 변환하여, 제2 프로세서(732b)로 전송하도록 제어할 수 있다.
한편, 도 3에는 도시하지 않았지만, 제1 프로세서(732a)는, CAN 드라이버(미도시), CAN 인터페이스(미도시)를 더 실행할 수 있다.
예를 들어, CAN 인터페이스(미도시)는, 제1 프로세서(732a) 내의 제4 프로세서 코어(미도시)와 제5 프로세서 코어(미도시)에서 각각 8개의 채널로, 총 16개의 채널로 실행되는 것도 가능하다.
이때, 제4 프로세서 코어(미도시)에서 실행되는 제1 CAN 인터페이스(미도시)는, 프로세서 간 통신시의 제1 큐(PTb)(queue)에 대응하고, 제5 프로세서 코어(미도시)에서 실행되는 제2 CAN 인터페이스(미도시)는, 프로세서 간 통신시의 제1 큐(PTb) 보다 우선권이 높이 제2 큐(PTa)에 대응할 수 있다.
도 4a는 본 개시의 실시에에 따른 차량 내부의 차량용 디스플레이 장치의 배치의 일예를 도시한 도면이다.
도면을 참조하면, 차량 내부에는, 클러스터 디스플레이(180a), AVN(Audio Video Navigation) 디스플레이(180b), 뒷 좌석 엔터테인먼트(Rear Seat Entertainment) 디스플레이(180c,180d), 룸미러 디스플레이(미도시) 등이 장착될 수 있다.
도 4b는 본 개시의 실시에에 따른 차량 내부의 차량용 디스플레이 장치의 배치의 다른 예를 도시한 도면이다.
본 개시의 실시예에 따른 차량용 디스플레이 장치(100)는, 복수의 디스플레이(180a~180b), 및 복수의 디스플레이(180a~180b)에 영상, 정보 등을 표시하기 위한 신호 처리를 수행하는 신호 처리 장치(170)를 구비할 수 있다.
복수의 디스플레이(180a~180b) 중 제1 디스플레이(180a)는, 주행 상태, 동작 정보 등의 표시를 위한 클러스터 디스플레이(180a)이고, 제2 디스플레이(180b)는, 챠량 운행 정보, 네비게이션 지도, 다양한 엔테테인먼트 정보 또는 영상의 표시를 위한 AVN(Audio Video Navigation) 디스플레이(180b)일 수 있다.
신호 처리 장치(170)는, 내부에 프로세서(175)를 구비하며, 프로세서(175) 내의 하이퍼바이저(미도시) 상에서, 제1 가상화 머신 내지 제3 가상화 머신(미도시)을 실행할 수 있다.
제2 가상화 머신(미도시)은 제1 디스플레이(180a)를 위해 동작하며, 제3 가상화 머신(미도시)은, 제2 디스플레이(180b)를 위해 동작할 수 있다.
한편, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 제2 가상화 머신(미도시) 및 제3 가상화 머신(미도시)으로, 동일한 데이터 전송을 위해, 하이퍼바이저(505) 기반의 공유 메모리(508)가 설정되도록 제어할 수 있다. 이에 따라, 차량 내의 제1 디스플레이(180a)와 제2 디스플레이(180b)에 동일한 정보 또는 동일한 영상을 동기화하여 표시할 수 있게 된다.
한편, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 데이터 분담 처리를 위해, 제2 가상화 머신(미도시)과 제3 가상화 머신(미도시)에 데이터의 적어도 일부를 공유한다. 이에 따라, 차량 내의 복수의 디스플레이를 위한 복수의 가상화 머신에서 데이터를 분담하여 처리할 수 있게 된다.
한편, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 차량의 휠 속도 센서 데이터를 수신하고, 처리하여, 제2 가상화 머신(미도시) 또는 제3 가상화 머신(미도시) 중 적어도 하나로, 처리된 휠 속도 센서 데이터를 전송할 수 있다. 이에 따라, 차량의 휠 속도 센서 데이터를, 적어도 하나의 가상화 머신 등에 공유할 수 있게 된다.
한편, 본 개시의 실시예에 따른 차량용 디스플레이 장치(100)는, 주행 상태 정보, 간이 네비게이션 정보, 다양한 엔테테인먼트 정보 또는 영상의 표시를 위한 뒷 좌석 엔터네인먼트(Rear Seat Entertainment) 디스플레이(180c)를 더 구비할 수 있다.
신호 처리 장치(170)는, 프로세서(175) 내의 하이퍼바이저(미도시) 상에서, 제1 가상화 머신 내지 제3 가상화 머신(미도시) 외에 추가로 제4 가상화 머신(미도시)를 실행하여, RSE 디스플레이(180c)를 제어할 수 있다.
이에 따라, 하나의 신호 처리 장치(170)를 이용하여, 다양한 디스플레이(180a~180c)를 제어할 수 있게 된다.
한편, 복수의 디스플레이(180a~180c) 중 일부는, 리눅스 OS 기반 하에 동작하며, 다른 일부는 웹 OS 기반 하에 동작할 수 있다.
본 개시의 실시예에 따른 신호 처리 장치(170)는, 다양한 운영 체제(Operating system;OS) 하에 동작하는 디스플레이(180a~180c)에서도, 동일한 정보 또는 동일한 영상을 동기화하여 표시하도록 제어할 수 있다.
한편, 도 4b에서는, 제1 디스플레이(180a)에, 차량 속도 인디케이터(212a), 차량 내부 온도 인디케이터(213a)가 표시되고, 제2 디스플레이(180b)에, 복수의 애플리케이션과 차량 속도 인디케이터(212b)와 차량 내부 온도 인디케이터(213b)를 포함하는 홈 화면(222)이 표시되고, 제3 디스플레이(180c)에, 복수의 애플리케이션과 차량 내부 온도 인디케이터(213c)를 포함하는 제2 홈 화면(222b)이 표시되는 것을 예시한다.
도 5는 도 4b의 차량용 디스플레이 장치의 내부 블록도의 일예이다.
도면을 참조하면, 본 개시의 실시예에 따른 차량용 디스플레이 장치(100)는, 입력부(110), 외부 장치와의 통신을 위한 통신부(120), 내부 통신을 위한 복수의 통신 모듈(EMa~EMd), 메모리(140), 신호 처리 장치(170), 복수의 디스플레이(180a~180c), 오디오 출력부(185), 전원 공급부(190)를 구비할 수 있다.
복수의 통신 모듈(EMa~EMd)은, 예를 들어, 도 2a의 복수의 존(zone)(Z1~Z4)에 각각 배치될 수 있다.
한편, 신호 처리 장치(170)는, 내부에, 각 통신 모듈(EM1~EM4)과의 데이터 통신을 위한 이더넷 스위치(736b)를 구비할 수 있다.
각 통신 모듈(EM1~EM4)은, 복수의 센서 장치(SN) 또는 ECU(770)와 데이터 통신을 수행할 수 있다.
한편, 복수의 센서 장치(SN)는, 카메라(195), 라이더(196), 레이더(197) 또는 위치 센서(198)를 포함할 수 있다.
입력부(110)는, 버튼 입력, 터치 입력 등을 위한 물리적인 버튼, 패드 등을 구비할 수 있다.
한편, 입력부(110)는, 사용자 음성 입력을 위한 마이크(미도시)를 구비할 수 있다.
통신부(120)는, 이동 단말기(800) 또는 서버(900)와 무선(wireless) 방식으로, 데이터를 교환할 수 있다.
특히, 통신부(120)는, 차량 운전자의 이동 단말기와, 무선으로 데이터를 교환할 수 있다. 무선 데이터 통신 방식으로는, 블루투스(Bluetooth), WiFi, WiFi Direct, APiX 등 다양한 데이터 통신 방식이 가능하다.
통신부(120)는, 이동 단말기(800) 또는 서버(900)로부터, 날씨 정보, 도로의 교통 상황 정보, 예를 들어, TPEG(Transport Protocol Expert Group) 정보를 수신할 수 있다. 이를 위해, 통신부(120)는, 이동 통신 모듈(미도시)를 구비할 수 있다.
복수의 통신 모듈(EM1~EM4)은, ECU(770) 또는 센서 장치(SN)로부터, 센서 정보 등을 수신하고, 수신한 정보를 신호 처리 장치(170)로 전송할 수 있다.
여기서, 센서 정보는, 차량 방향 정보, 차량 위치 정보(GPS 정보), 차량 각도 정보, 차량 속도 정보, 차량 가속도 정보, 차량 기울기 정보, 차량 전진/후진 정보, 배터리 정보, 연료 정보, 타이어 정보, 차량 램프 정보, 차량 내부 온도 정보, 차량 내부 습도 정보 중 적어도 하나를 포함할 수 있다.
이러한 센서 정보는, 헤딩 센서(heading sensor), 요 센서(yaw sensor), 자이로 센서(gyro sensor), 포지션 모듈(position module), 차량 전진/후진 센서, 휠 센서(wheel sensor), 차량 속도 센서, 차체 경사 감지센서, 배터리 센서, 연료 센서, 타이어 센서, 핸들 회전에 의한 스티어링 센서, 차량 내부 온도 센서, 차량 내부 습도 센서 등으로부터 획득될 수 있다.
한편, 포지션 모듈은, GPS 정보 수신을 위한 GPS 모듈 또는 위치 센서(198)을 포함할 수 있다.
한편, 복수의 통신 모듈(EM1~EM4) 중 적어도 하나는, GPS 모듈 또는 위치 센서(198)에서 센싱된 위치 정보 데이터를 신호 처리 장치(170)로 전송할 수 있다.
한편, 복수의 통신 모듈(EM1~EM4) 중 적어도 하나는, 카메라(195) 또는 라이더(196) 또는 레이더(197) 등으로부터 차량 전방 영상 데이터, 차량 측방 영상 데이터, 차량 후방 영상 데이터, 차량 주변 장애물 거리 정보 등을 수신하고, 수신한 정보를 신호 처리 장치(170)로 전송할 수 있다.
메모리(140)는, 신호 처리 장치(170)의 처리 또는 제어를 위한 프로그램 등, 차량용 디스플레이 장치(100) 전반의 동작을 위한 다양한 데이터를 저장할 수 있다.
예를 들어, 메모리(140)는, 프로세서(175) 내에서 실행하기 위한, 하이퍼바이저, 제1 가상화 머신 내지 제3 가상화 머신에 관한 데이터를 저장할 수 있다.
오디오 출력부(185)는, 신호 처리 장치(170)로부터의 전기 신호를 오디오 신호로 변환하여 출력한다. 이를 위해, 스피커 등을 구비할 수 있다.
전원 공급부(190)는, 신호 처리 장치(170)의 제어에 의해, 각 구성요소들의 동작에 필요한 전원을 공급할 수 있다. 특히, 전원 공급부(190)는, 차량 내부의 배터리 등으로부터 전원을 공급받을 수 있다.
신호 처리 장치(170)는, 차량용 디스플레이 장치(100) 내의 각 유닛의 전반적인 동작을 제어한다.
예를 들어, 신호 처리 장치(170)는, 차량용 디스플레이(180a,180b)를 위한 신호 처리를 수행하는 프로세서(175)를 포함할 수 있다.
프로세서(175)는, 프로세서(175) 내의 하이퍼바이저(미도시) 상에서, 제1 가상화 머신 내지 제3 가상화 머신(미도시)을 실행할 수 있다.
제1 가상화 머신 내지 제3 가상화 머신(미도시) 중 제1 가상화 머신(미도시)은, 서버 가상화 머신(Server Virtual Maschine)이라 명명할 수 있으며, 제2 가상화 머신 내지 제3 가상화 머신(미도시)은 게스트 가상화 머신(Guest Virtual Maschine)이라 명명할 수 있다.
예를 들어, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 복수의 센서 장치로부터의 센서 데이터, 예를 들어, 차량 센서 데이터, 위치 정보 데이터, 카메라 영상 데이터, 오디오 데이터 또는 터치 입력 데이터를 수신하고, 처리 또는 가공하여 출력할 수 있다.
이와 같이, 제1 가상화 머신(미도시)에서 대부분의 데이터 처리를 수행함으로써, 1:N 방식의 데이터의 공유가 가능하게 된다.
다른 예로, 제1 가상화 머신(미도시)은, 제2 가상화 머신 내지 제3 가상화 머신()을 위해, CAN 데이터, 이더넷 데이터, 오디오 데이터, 라디오 데이터, USB 데이터, 무선 통신 데이터를 직접 수신하고 처리할 수 있다.
그리고, 제1 가상화 머신(미도시)은, 처리된 데이터를 제2 가상화 머신 내지 제3 가상화 머신(530~540)으로 전송할 수 있다.
이에 따라, 제1 가상화 머신 내지 제3 가상화 머신(미도시) 중 제1 가상화 머신(미도시)만, 복수의 센서 장치로부터의 센서 데이터, 통신 데이터, 또는 외부 입력 데이터를 수신하여, 신호 처리를 수행할 수행함으로써, 다른 가상화 머신에서의 신호 처리 부담이 경감되며, 1:N 데이터 통신이 가능하게 되어, 데이터 공유시의 동기화가 가능하게 된다.
한편, 제1 가상화 머신(미도시)은, 데이터를 공유 메모리(508)에 기록하여, 제2 가상화 머신(미도시) 및 제3 가상화 머신(미도시)으로 동일한 데이터를 공유하도록 제어할 수 있다.
예를 들어, 제1 가상화 머신(미도시)은, 차량 센서 데이터, 상기 위치 정보 데이터, 상기 카메라 영상 데이터, 또는 상기 터치 입력 데이터를 공유 메모리(508)에 기록하여, 제2 가상화 머신(미도시) 및 제3 가상화 머신(미도시)으로 동일한 데이터를 공유하도록 제어할 수 있다. 이에 따라, 1:N 방식의 데이터의 공유가 가능하게 된다.
결국, 제1 가상화 머신(미도시)에서 대부분의 데이터 처리를 수행함으로써, 1:N 방식의 데이터의 공유가 가능하게 된다.
한편, 프로세서(175) 내의 제1 가상화 머신(미도시)은, 제2 가상화 머신(미도시) 및 제3 가상화 머신(미도시)으로, 동일한 데이터 전송을 위해, 하이퍼바이저(505) 기반의 공유 메모리(508)가 설정되도록 제어할 수 있다.
한편, 신호 처리 장치(170)는, 오디오 신호, 영상 신호, 데이터 신호 등 다양한 신호를 처리할 수 있다. 이를 위해, 신호 처리 장치(170)는, 시스템 온 칩(System On Chip,SOC)의 형태로 구현될 수 있다.
한편, 도 5의 디스플레이 장치(100) 내의 신호 처리 장치(170)는, 도 7 등의 차량용 통신 장치(700)의 신호 처리 장치(170)와 동일할 수 있다.
도 6은 본 개시와 관련한 차량용 통신 장치의 내부 블록도의 일예이다.
도면을 참조하면, 본 개시와 관련한 차량용 통신 장치(600x)는, 제1 통신 게이트웨이(630a), 제2 통신 게이트 웨이(630b)를 구비한다.
제1 통신 게이트웨이(630a)는, 바디 모듈(610), 샤시 모듈(614), CAN 통신 진단 장치(616), 적어도 하나의 CAN 통신 ECU(618) 등과의 CAN 통신에 의한 CAN 신호를 교환하기 위한 CAN 트랜시버(636a)와, CAN 트랜시버(636a)에서 수신되는 CAN 신호를 신호 처리하는 제1 프로세서(632a)를 구비할 수 있다.
한편, 제1 프로세서(632a)는, 제2 통신 게이트 웨이(630b) 내의 제2 프로세서(632b)와 프로세서 간 통신을 수행하기 위한 IPC 매니저(634a)를 구비할 있다.
제2 통신 게이트웨이(630b)는, 텔레메틱스 제어 모듈(620), 헤드 모듈(622), 이더넷 통신 진단 장치(624), 적어도 하나의 이더넷 통신 ECU(626) 등과의 이더넷 통신에 의한 이더넷 메시지를 교환하기 위한 이더넷 스위치(636b)와, 이더넷 스위치(636b)에서 수신되는 이더넷 메시지를 신호 처리하는 제2 프로세서(632b)를 구비할 수 있다.
한편, 제2 프로세서(632b)는, 제1 통신 게이트 웨이(630a) 내의 제1 프로세서(632a)와 프로세서 간 통신을 수행하기 위한 IPC 매니저(634b)를 구비할 있다.
한편, 제1 프로세서(632a) 내의 IPC 매니저(634a)와 제2 프로세서(632b) 내의 IPC 매니저(634b)는, 이더넷 통신에 기반하여, 프로세서 간 통신을 수행할 수 있다.
이러한 방식에 의하면, 프로세서 간 통신이, 이더넷 기반의 High Bandwidth를 활용한 대용량 데이터의 고속 전송에는 유리하지만, 프로토콜 스택(Protocol Stack), 물리 계층(PHY) 간 통신에서 지연 시간(Latency)이 발생하는 단점이 있다.
이에 본 개시에서는, 프로세서 간 통신시 지연 시간(Latency) 저감 및 고속의 데이터 전송을 수행할 수 있는 방안을 제시한다. 이에 대해서는 도 7 이하를 참조하여 기술한다.
도 7은 본 개시의 실시에에 따른 차량용 통신 장치의 내부 블록도의 일예이다.
도면을 참조하면, 본 개시의 실시에에 따른 차량용 통신 장치(700)는, 제1 통신 게이트웨이(730a), 제2 통신 게이트 웨이(730b)와 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서(732a)와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 제2 메시지의 신호 처리를 수행하는 제2 프로세서(732b)와, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 제1 메시지 또는 제2 메시지 전송을 위해 동작하는 공유 메모리(508)를 포함한다.
도 6의 통신 장치(600x)와 비교하여, 제1 프로세서(732a)와 제2 프로세서(732b) 사이의 프로세서 간 통신(IPC)을 위해, 공유 메모리(508)를 이용함으로써, 프로세서 간 통신시 지연 시간(Latency)이 저감되며, 고속의 데이터 전송을 수행할 수 있게 된다.
또한, 도 6의 통신 장치(600x)와 비교하여, 제1 프로세서(732a)와 제2 프로세서(732b), 및 공유 메모리(508)를 하나의 칩(Chip)인 하나의 신호 처리 장치(170)으로 구현함으로써, 프로세서 간 통신시 지연 시간(Latency)이 저감되며, 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 통신 방식은, 제1 통신 방식 보다, 대역폭이 더 크며, 전송 속도가 더 빠른 것이 바람직하다.
예를 들어, 제2 통신 방식은, 이더넷 통신 방식이며, 제1 통신 방식은 CAN 통신 방식일 수 있다. 이에 따라, 제1 메시지는 CAN 메시지 또는 CAN 신호일 수 있으며, 제2 메시지는 이더넷 메시지일 수 있다.
한편, 본 개시의 일 실시예에 따른 신호 처리 장치(170) 및 이를 구비하는 차량용 통신 장치(700)는, 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 제1 메시지를 제1 프로세서(732a)로 전송하는 트랜시버(736a)와, 제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하여, 제2 메시지를 제2 프로세서(732b)로 전송하는 스위치(736b)를 더 포함할 수 있다. 이에 따라, 제1 신회와 제2 메시지를 각각 안정적으로 제1 프로세서(732a)와 제2 프로세서(732b)로 전달할 수 있게 된다.
제1 프로세서(732a) 또는 트랜시버(736a)는, 바디 모듈(610), 샤시 모듈(614), CAN 통신 진단 장치(616), 적어도 하나의 CAN 통신 ECU(618) 등과의 CAN 통신에 의한 CAN 신호를 교환할 수 있다.
한편, 제1 프로세서(732a)는, 제2 프로세서(732b)와 프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제1 매니저(734a)를 구비할 수 있다. 제1 매니저(734a)는, IPC 매니저라 명명할 수도 있다.
한편, 제1 매니저(734a)는, 제1 캐쉬(735a)(cache)를 포함할 수 있다.
한편, 제2 프로세서(732b) 또는 스위치(736b)는, 텔레메틱스 제어 모듈(620), 헤드 모듈(622), 이더넷 통신 진단 장치(624), 적어도 하나의 이더넷 통신 ECU(626) 등과의 이더넷 통신에 의한 이더넷 메시지를 교환할 수 있다. 스위치(736b)는, 이더넛 스위치라 명명할 수도 있다.
한편, 제2 프로세서(732b)는, 제1 프로세서(732a)와 프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제2 매니저(734b)를 구비할 수 있다. 제2 매니저(734b)는, IPC 매니저라 명명할 수도 있다.
한편, 제2 매니저(734b)는, 제2 캐쉬(735b)와 타이머(737)를 포함하는 제2 매니저(734b)를 구비할 수 있다.
한편, 제2 프로세서(732b)는, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로부터 제1 메시지의 주기적인 구독 요청을 수신할 수 있다.
이에 따라, 제2 프로세서(732b)는, 제1 메시지의 주기적인 구독 요청을 제1 프로세서(732a)로 전송할 수 있다.
특히, 제2 프로세서(732b)는, 프로세서 간 통신(IPC)을 통해, 구독 요청을 전송할 수 있다. 이에 따라, 프로세서 간 통신을 수행할 수 있게 된다.
한편, 제1 프로세서(732a)는, 적어도 하나의 CAN 통신 ECU(618) 등으로부터 주기적으로 CAN 통신 데이터를 수신한다.
예를 들어, 제1 프로세서(732a)는, CAN 데이터 베이스(DB)에 미리 정의된 제1 메시지를, 적어도 하나의 CAN 통신 ECU(618) 등으로부터 주기적으로 수신한다.
예를 들어, 주기적인 제1 메시지는, 센서 정보로서, 차량 속도 정보 또는 위치 정보 등을 포함할 수 있다.
다른 예로, 주기적인 제1 메시지는, 차량 방향 정보, 차량 위치 정보(GPS 정보), 차량 각도 정보, 차량 가속도 정보, 차량 기울기 정보, 차량 전진/후진 정보, 배터리 정보, 연료 정보, 타이어 정보, 차량 램프 정보, 차량 내부 온도 정보, 차량 내부 습도 정보 중 적어도 하나를 포함할 수 있다.
한편, 제1 프로세서(732a)는, 주기적으로 수신되는 CAN 통신 데이터 또는 제1 메시지 중에서 구독 요청 받은 제1 메시지를 선별하고, 구독 요청 받은 제1 메시지를, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 전송할 수 있다.
한편, 제1 프로세서(732a)는, 주기적으로 수신되는 CAN 통신 데이터 또는 제1 메시지 중에서 구독 요청 받지 않은 제1 메시지를, 내부 동작에 따라 별도로 처리하고, 제2 프로세서(732b)로 전송하지 않는다.
구체적으로, 제1 프로세서(732a)는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬(735a)에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 제1 메시지를 전송할 수 있다.
한편, 제1 프로세서(732a)는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬(735a)에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 공유 메모리(508)를 이용하여, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 제1 메시지를 전송할 수 있다.
예를 들어, 제1 프로세서(732a)는, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 동일하지 않은 경우에, 공유 메모리(508)를 이용하여, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 제1 메시지를 전송할 수 있다.
다른 예로, 제1 프로세서(732a)는, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 동일한 경우에, 제2 프로세서(732b)로 제1 메시지를 전송하지 않을 수 있다.
이에 따라, 동일 데이터의 캐쉬 점유 또는 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다. 이에 따라, 동일 데이터의 캐쉬 점유 또는 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서(732b)는, 제1 메시지의 첫 수신시, 제2 캐쉬(735b)에 저장하고, 제1 메시지의 후속 수신시, 제2 캐쉬(735b)를 업데이트할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서(732b)는, 제1 메시지 수신에 따라 타이머(737)의 쓰레드를 생성하고, 쓰레드의 만료마다 제2 캐쉬(735b)의 값을, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전달할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 제2 프로세서(732b)는, 프로세서 간 통신이 수행되지 않아 제1 메시지가 수신되지 않는 주기 동안에는, 제2 캐쉬(735b)의 값을, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전달할 수 있다.
즉, 구독한 제1 메시지의 값이 주기 내에 변경되지 않는 경우, 프로세서 간 통신 없이, 제2 프로세서((732b)에 저장된 캐쉬 값이, 이더넷 프로세서(626)로 전달될 수 있다.
이에 따라, FIFO로 운영되는 공유 메모리(508) 내의 IPC 버퍼의 사용을 최소화할 수 있게 된다. 또한, IPC 버퍼의 사용을 최소로 유지함으로써, 제1 메시지 또는 제2 메시지 등의 데이터를, 프로세서 간 통신을 통해, 신속하게 전송할 수 있게 된다.
한편, 제2 프로세서(732b)는, 프로세서 간 통신이 수행되어 제1 메시지가 수신되는 주기 동안에는, 제2 캐쉬(735b)에 업데이트된 값을, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전달할 수 있다. 이에 따라, 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
한편, 공유 메모리(508)는, 프로세서 간 통신시, 제1 큐(PTb)(queue)와, 제1 큐(PTb) 보다 우선권이 높이 제2 큐(PTa)를 통해, 데이터를, 제1 프로세서(732a)에서 제2 프로세서(732b) 사이에 전송되도록 할 수 있다.
특히, 공유 메모리(508)는, 프로세서 간 통신을 위한 이벤트가 증가하더라도, 제2 큐(PTa)를 위해 할당된 이벤트에 대응하는 데이터만 제2 큐(PTa)를 통해, 전송되록 할 수 있다. 이에 따라, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
예를 들어, 제1 큐(PTb)는, 노말 순위 큐(Normal Priority Queue)일 수 있으며, 제2 큐(PTa)는 하이 순위 큐(High Priority Queue)일 수 있다.
구체적으로, 공유 메모리(508)는, 프로세서 간 통신시, 제1 큐(PTb)를 통해, 대부분의 데이터를 전송할 수 있다.
다만, 공유 메모리(508)는, 시간에 민감하고 중요한(Time sensitive-critical) 데이터만, 제1 큐(PTb) 보다 우선권이 높이 제2 큐(PTa)를 통해, 지연없이 전송되도록 할 수 있다.
예를 들어, 시간에 민감하고 중요한(Time sensitive-critical) 데이터는, 속도 데이터 또는 위치 정보 데이터 등일 수 있다.
즉, 공유 메모리(508)는, 속도 데이터 또는 위치 정보 데이터를, 제2 큐(PTa)를 통해, 제1 프로세서(732a)와 제2 프로세서(732b) 사이에 전송되도록 할 수 있다. 이에 따라, 프로세서 간 통신에서 우선권 높은 속도 데이터 또는 위치 정보 데이터의 실시간 전송을 보장할 수 있게 된다.
한편, 제1 프로세서(732a) 또는 제2 프로세서(732b)는, 제2 큐(PTa)를 이용할 수 있는 어플리케이션을 포함하는 리스트를 관리할 수 있다.
예를 들어, 제2 프로세서(732b)는, 속도 정보 표시를 위한 어플리케이션을, 제2 큐(PTa)를 이용할 수 있는 어플리케이션으로서, 제2 리스트(738b) 내에 포함시켜 관리할 수 있다.
한편, 제2 큐(PTa)를 이용한 실시간 데이터 전송을 위해, 시나리오 또는 애플리케이션이 중복되지 않도록 최소한으로 동작하도록 제어하는 것이 바람직하다.
이와 같이, 시간에 민감하고 중요한 데이터를 제2 큐(PTa)를 이용한 실시간 데이터 전송을 수행함으로써, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
한편, 공유 메모리(508)는, 최소 2개의 큐 할당으로, 프로세서 간 통신에서의 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
도면에서는, 제1 프로세서(732a) 내의 제1 매니저(734a)가 화이트 리스트인 제1 리스트(738a)를 관리하며, 제2 프로세서(732b) 내의 제2 매니저(734b)가 화이트 리스트인 제2 리스트(738b)를 관리하는 것을 예시한다. 이에 따라, 프로세서 간 통신에서 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
도 8a 내지 도 15b는 도 7의 설명에 참조되는 도면이다.
먼저, 도 8a는 주기적인 CAN 메시지 또는 CAN 신호의 데이터를 저장하는 테이블(Tba)을 예시한다.
도면에서는, 2048개의 데이터를 예시하나, 다양한 변형이 가능하다.
한편, 도 8a의 테이블(Tba0은, 제1 메시지의 데이터일 수 있으며, 주기적으로, 프로세서 간 통신을 통해, 제1 프로세서(732a)에서 제2 프로세서(732b)로 전송될 수 있다.
도 8b는 제1 프로세서(732a) 또는 제2 프로세서(732b) 내에서 관리되는 화이트 리스트(Tbb)를 예시한다.
화이트 리스트(Tbb)는, Array, Struct, Collection 등으로 구현될 수 있으며, 제1 메모리(320) 또는 제2 메모리(330)에 저장될 수 있다.
한편, 공유 메모리(508)는, 프로세서 간 통신시, 메모리 블록 또는 메모리 주소에 정렬되는 사이즈의 버퍼를 할당할 수 있다. 이에 대래서는, 도 8c와 도 8d를 참조하여 기술한다.
도 8c와 도 8d는 공유 메모리 내의 IPC 버퍼 할당시의 다양한 예를 도시하는 도면이다.
먼저, 도 8c는 공유 메모리 내의 IPC 버퍼 할당의 일예로서, 복수의 메모리 블록 또는 메모리 주소(MBa~MBc)의 경계 사이에, IPC 버퍼(BFa,BFb)가 할당되는 것을 예시한다.
도면과 같이, 복수의 메모리 블록 또는 메모리 주소(MBa~MBc)의 경계 사이에, IPC 버퍼(BFa,BFb)가 할당되는 경우, 프로세서 간 통신을 위한 메모리 억세스시, 가져오기(dfetch)를 2번 해야 하므로, 읽기(read) 또는 쓰기(write) 시의 성능이 불리하게 된다.
다음, 도 8d는 공유 메모리 내의 IPC 버퍼 할당의 다른 예로서, 복수의 메모리 블록 또는 메모리 주소(MBa~MBc)의 경계에, 정렬되어 IPC 버퍼(BFa,BFb,BFc)가 할당되는 것을 예시한다.
도면과 같이, 복수의 메모리 블록 또는 메모리 주소(MBa~MBc)의 경계에, 정렬되어 IPC 버퍼(BFa,BFb,BFc)가 할당되는 경우, 프로세서 간 통신을 위한 메모리 억세스시, 가져오기(dfetch)를 1번만으로, 읽기(read) 또는 쓰기(write)가 가능하므로, 성능 지연이 발생하지 않게 된다. 또한, 메모리 블록 또는 메모리 주소(MBa~MBc) 단위의 메시지를 주기 마다, 전송 또는 수신을 반복할 수 있게 된다.
즉, 공유 메모리(508)는, 프로세서 간 통신시, 메모리 블록 또는 메모리 주소에 정렬되는 사이즈의 버퍼를 할당할 수 있다. 이에 따라, 메모리 억세스시 발생할 수 있는 오버헤드(overhead)를 저감할 수 있게 된다.
한편, 공유 메모리(508)는, 프로세서 간 통신을 위한 주기적인 이벤트 횟수 보다 적은 개수의 버퍼를 설정할 수 있다. 이에 따라, 메모리 억세스시 발생할 수 있는 오버헤드를 저감할 수 있게 된다.
도 9는 제1 메시지 구독을 예시하는 시퀀스 다이아그램이다.
도면을 참조하면, 이더넷 프로세서 또는 이더넷 통신 ECU(626)는, 제1 메시지의 구독 요청을 전송하고(S910), 제2 프로세서(732b) 내의 제2 매니저(734b)는, 제1 메시지의 구독 요청을 수신한다.
예를 들어, 이더넷 프로세서 또는 이더넷 통신 ECU(626)는, 속도 데이터 또는 위치 정보 데이터를 포함하는 제1 메시지의 구독 요청을 전송할 수 있다.
다음, 제2 프로세서(732b) 내의 제2 매니저(734b)는, 공유 메모리(508) 내의 IPC 버퍼(762)로 제1 메시지의 구독 요청을 전송할 수 있다(S912).
다음, 제2 매니저(734b)는, 제2 매니저(734b) 내에 타이머(737)를 실행할 수 있다.
한편, 도면에서는 되시되지 않았지만, 공유 메모리(508) 내의 IPC 버퍼(762)에 전송된 제1 메시지의 구독 요청은, 제1 프로세서(732a) 내의 제1 매니저(734a)로 전달될 수 있다.
한편, 제1 매니저(734a)는, CAN 데이터 베이스(DB)에 미리 정의된 제1 메시지를, 적어도 하나의 CAN 통신 ECU(618) 등으로부터 주기적으로 수신한다.
한편, 제1 매니저(734a)는, 주기적으로 수신되는 CAN 통신 데이터 또는 제1 메시지 중에서 구독 요청 받은 제1 메시지를 비교하고, 구독 요청 받은 제1 메시지를, 공유 메모리(508) 내의 IPC 버퍼(762)로 전송할 수 있다(S916).
한편, 제1 매니저(734a)는, 주기적으로 수신되는 CAN 통신 데이터 또는 제1 메시지 중에서 구독 요청 받지 않은 제1 메시지를, 내부 동작에 따라 별도로 처리하고, 공유 메모리(508) 내의 IPC 버퍼(762)로 전송하지 않는다.
구체적으로, 제1 매니저(734a)는, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬(735a)에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 구독 요청 받은 제1 메시지를, 공유 메모리(508) 내의 IPC 버퍼(762)로 전송할 수 있다.
한편, 제1 메시지가, 적어도 하나의 CAN 통신 ECU(618)에서 제1 매니저(734a)로 전송될 수 있다(S920).
다음, 제1 매니저(734a)는, 제1 캐쉬(735a)를 생성하고(S922), 생성된 제1 캐쉬(735a)에 제1 메시지를 저장한다(S924).
한편, 제1 매니저(734a)는, 제1 캐쉬(735a) 저장된 값을, 공유 메모리(508) 내의 IPC 버퍼(762)로 전송할 수 있다(S926).
한편, 제914 단계(S914) 이후, 제2 프로세서(732b) 내의 제2 매니저(734b)는, 제2 캐쉬(735b)를 생성하고(S923), 제2 캐쉬(735b) 생성 이후, 공유 메모리(508) 내의 IPC 버퍼(762)에 기록된 값을 독출(read)할 수 있다(S928).
다음, 제2 프로세서(732b) 내의 제2 매니저(734b)는, 공유 메모리(508) 내의 IPC 버퍼(762)에서 수신한 값을, 생성된 제2 캐쉬(735b)에 기록한다(S930).
타이머(737)는, 제1 주기에 제2 캐쉬(735b)에 기록된 값을 읽고(S932), 제2 캐쉬(735b)에 기록된 값을 수신하며, 제2 캐쉬(735b)에 기록된 값에 대응하는 제1 메시지를, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전송한다(S934).
그 이후, 타이머(737)는, 제1 주기 이후의 제2 주기에 제2 캐쉬(735b)에 기록된 값을 읽고(S936), 제2 캐쉬(735b)에 기록된 값을 수신하며, 제2 캐쉬(735b)에 기록된 값에 대응하는 제1 메시지를, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전송한다(S938).
이에 따라, 이더넷 프로세서 또는 이더넷 통신 ECU(626)는, 주기적으로 제1 메시지를 구독할 수 있게 된다. 특히, CAN 통신 기반의 속도 정보 등을 주기적으로 구독할 수 있게 된다.
도 10은 주기적인 이벤트와 관련한 시퀀스 다이아그램이다.
도면을 참조하면, 이더넷 프로세서 또는 이더넷 통신 ECU(626)의 제1 메시지의 구독 요청에 기초하여, 제1 메시지가, 적어도 하나의 CAN 통신 ECU(618)에서 제1 매니저(734a)로 전송될 수 있다(S1020).
다음, 제1 매니저(734a)는, 제1 캐쉬(735a)에 저장된 값을 읽는다(S1022).
그리고, 제1 매니저(734a)는, 제1 캐쉬(735a)에 저장된 값을, 공유 메모리(508) 내의 IPC 버퍼(762)로 전송하고, 공유 메모리(508) 내의 IPC 버퍼(762)는, 제1 캐쉬(735a)에 저장된 값을 제2 매니저(734b)로 전송하고, 제2 매니저(734b)는 제2 캐쉬(735b)에 수신된 값을 기록한다.
한편, 제2 프로세서(732b) 내의 제2 매니저(734b) 내의 타이머(737)는, 제2 캐쉬(735b)에 기록된 값을 독출(read)하며(S1023), 제2 캐쉬(735b)에 기록된 값에 대응하는 제1 메시지를, 이더넷 프로세서 또는 이더넷 통신 ECU(626)로 전송한다(S1030).
한편, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지를 비교하여, 그 차이가 소정치 이상인 경우에, 새로운 제1 메시지를 저장되도록 제어할 수 있다.
구체적으로, 제1 캐쉬(735a)는, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지를 비교하여, 그 차이가 소정치 이상인 경우에, 새로운 제1 메시지를 저장할 수 있다.
이와 관련하여, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 제1030 단계(S1030) 이후, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지를 비교하여, 그 차이가 소정치 미만인 경우에, 제1 캐쉬(735a)에 저장된 값이, 공유 메모리(508) 내의 IPC 버퍼(762)로 전송되지 않도록 제어할 수 있다.
한편, 그 이후, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지를 비교하여, 그 차이가 소정치 이상인 경우에, 제1 캐쉬(735a)에 저장된 값을, 공유 메모리(508) 내의 IPC 버퍼(762)로 전송할 수 있다.
즉, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지를 비교하여, 그 차이가 소정치 이상인 경우에, 제1 캐쉬(735a)에, 수신된 새로운 제1 메시지를 기록하고(S1040), 수신된 새로운 제1 메시지를 공유 메모리(508) 내의 IPC 버퍼(762)로 전송할 수 있다(S1042).
다음, 제2 프로세서(732b) 내의 제2 매니저(734b)는, 공유 메모리(508) 내의 IPC 버퍼(762)에 기록된 값을 독출하고(S1044), 제2 캐쉬(735b)에 그 값을 기록한다(S1046).
도 10과 같이, 구독 요청 받은 제1 메시지 수신시 제1 캐쉬(735a)에 저장 또는 관리하고, 제1 메시지 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 공유 메모리(508)를 이용하여, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 제1 메시지를 전송함으로써, 동일 데이터의 캐쉬 점유 또는 버퍼 점유를 최소화하여 프로세서 간 통신시 지연 시간 저감 및 고속의 데이터 전송을 수행할 수 있게 된다.
도 11은 도 10의 제1 프로세서(732a) 내의 제1 매니저(734a)의 동작과 관련한 순서도이다.
도면을 참조하면, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 이더넷 프로세서 또는 이더넷 통신 ECU(626)의 제1 메시지의 구독 요청에 기초하여, 제1 메시지(signal A)를 수신한다(S1110). 제1110 단계(S1110)는 도 10의 제1020 단계(S1020)에 대응할 수 있다.
다음, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 제1 메시지의 아이디에 기초하여, 제1 메시지를 위한 캐쉬 데이터를 독출한다(S1115). 제1115 단계(S1115)는 도 10의 제1022 단계(S1022)에 대응할 수 있다.
즉, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 제1 캐쉬(735a)에 저장된 값을 읽는다.
다음, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지(signal A)가 동일한지 여부를 판단한다(S1120).
그리고, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지(signal A)가 동일한 경우, 제1110 단계(S1110)를 다시 수행한다.
한편, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지(signal A)가 다른 경우, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 제1 캐쉬(735a)에, 새로운 제1 메시지(signal A)를 기록한다(S1125). 제1125 단계(S1125)는 도 10의 제1040 단계(S1040)에 대응할 수 있다.
다음, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 수신된 새로운 제1 메시지(signal A)를, 프로세서 간 통신을 통해, 공유 메모리(508) 내의 IPC 버퍼(762)로 전송한다(S1130). 제1130 단계(S1130)는 도 10의 제1042 단계(S1042)에 대응할 수 있다.
도 12a 내지 도 12c는 주기적인 이벤트에 대한 IPC 버퍼 테이블의 다양한 예를 예시하는 도면이다.
먼저, 도 12a는 전송되어야 하는 주기적인 이벤트의 값을 나타내는 테이블(Tb1)을 예시한다.
도면에서의 테이블(Tb1)은, 이더넷 프로세서 또는 이더넷 통신 ECU(626)에서 구독 요청에 따른 제1 메시지일 수 있다.
도면에서는 제1 메시지로, 거리 정보(distance), 통신 상태 정보(B_CAN_status), 속도 정보(Speed) 등을 예시한다.
한편, 각 정보의 주기는 서로 다를 수 있다. 도면에서는 거리 정보(distance)의 주기가 가장 짧은 10ms 이고, 통신 상태 정보(B_CAN_status)의 주기가 거리 정보(distance)의 주기 보다 긴 20ms이고, 속도 정보(Speed)의 주기가 가장 긴 40ms인 것을 예시한다.
도 12b는 전송되어야 하는 주기적인 이벤트를 IPC 버퍼(762)로 모두 전송한 것을 나타내는 테이블(Tb2)을 예시하는 도면이다.
도면을 참조하면, 도 12a의 각 종 정보를 포함하는 제1 메시지를 모두 전송하므로, 특히, 동일한 값의 데이터도 모두 더 전송하므로, 17 index의 데이터가 IPC 버퍼(762)로 기록된다.
도 12c는 본 개시의 실시예에 따라 IPC 버퍼(762)의 사용량을 저감한 테이블(Tb3)을 예시한다.
도면을 참조하면, 도 12a의 각 종 정보를 포함하는 제1 메시지 중 동일한 값의 데이터는 제외하고, 전송하므로, 도 12b의 17 index 보다 감소된 10 index의 데이터가 IPC 버퍼(762)로 기록된다.
즉, 도 11의 설명에서와 같이, 제1 캐쉬(735a)에 저장된 값과, 수신된 새로운 제1 메시지(signal A)가 다른 경우에만, 새로운 제1 메시지를 전송하므로, IPC 버퍼(762)의 사용량을 저감할 수 있으며, 나아가, 복잡한 시나리오 또는 프로세서의 부하가 높은 상태에서, IPC 버퍼(762)에서의 성능 저하를 저감할 수 있게 된다.
도 13은 어플리케이션에 기반한 시퀀스 다이아그램이다.
도면을 참조하면, 제2 프로세서(732b) 또는 별도의 프로세서(미도시)에서 실행되는 ADAS 어플리케이션(1300)은, 전방 차량의 거리 정보의 구독 요청을 제2 프로세서(732b)로 전송한다(S1310).
다음, 제2 프로세서(732b)는, 프로세서 간 통신을 통해, 공유 메모리(508) 내의 IPC 버퍼(762)를 거쳐, 전방 차량의 거리 정보의 구독 요청을 제1 프로세서(732a)로 전송한다(S1315).
한편, 제1 프로세서(732a)는, 제1 주기에, 레이더 센서(197)로부터 전방 차량의 거리 정보를 수신한다(S1320).
다음, 제1 프로세서(732a)는, 신호 아이디(signal ID)를 통해, 제1 캐쉬(735a)의 값을 검색한다(S1325).
제1 프로세서(732a)는, 수신한 전방 차량의 거리 정보와, 제1 캐쉬(735a)에 저장된 전방 차량의 거리 정보 값을 비교하여, 동일하거나, 그 차이가 소정치 미만인 경우, 수신한 전방 차량의 거리 정보를 제1 캐쉬(735a)에 저장하지 않고 드랍한다(S1330).
그리고, 제1 프로세서(732a)는, 드랍된 수신한 전방 차량의 거리 정보를, 프로세서 간 통신을 통해, 공유 메모리(508) 내의 IPC 버퍼(762)를 거쳐, 제2 프로세서(732b)로 전송하지 않는다(S1335).
한편, 제2 프로세서(732b)는, 최신의 전방 차량의 거리 정보가 드랍되어 전송되지 않으므로, 타이머(737) 기반으로, 기 저장된 제2 캐쉬(735b)의 값을, 전방 차량의 거리 정보로서, ADAS 어플리케이션(1300)에 전송한다(S1340).
다음, ADAS 어플리케이션(1300)은, 기 저장된 제2 캐쉬(735b)의 값인 전방 차량의 거리 정보에 기초하여, 브레이크 컨트롤 등의 제어 신호를 출력할 수 있다(S1345).
한편, 제1 프로세서(732a)는, 제1 주기 이후인 제2 주기에, 레이더 센서(197)로부터 전방 차량의 거리 정보를 수신한다(S1350).
다음, 제1 프로세서(732a)는, 신호 아이디(signal ID)를 통해, 제1 캐쉬(735a)의 값을 검색한다(S1352).
제1 프로세서(732a)는, 수신한 전방 차량의 거리 정보와, 제1 캐쉬(735a)에 저장된 전방 차량의 거리 정보 값을 비교하여, 그 차이가 소정치 이상인 경우, 수신한 전방 차량의 거리 정보를 제1 캐쉬(735a)에 저장한다(S1354).
그리고, 제1 프로세서(732a)는, 저장된 전방 차량의 거리 정보를, 프로세서 간 통신을 통해, 공유 메모리(508) 내의 IPC 버퍼(762)를 거쳐, 제2 프로세서(732b)로 전송한(S1356).
한편, 제2 프로세서(732b)는, 최신의 전방 차량의 거리 정보가 전송되므로, 제2 캐쉬(735b)에 이를 저장한다(S1358).
그리고, 제2 프로세서(732b)는, 제2 캐쉬(735b)에 저장된 값을, 전방 차량의 거리 정보로서, ADAS 어플리케이션(1300)에 전송한다(S1360).
다음, ADAS 어플리케이션(1300)은, 저장된 제2 캐쉬(735b)의 값인 전방 차량의 거리 정보에 기초하여, 브레이크 컨트롤 등의 제어 신호를 출력할 수 있다(S1362).
도 13에 따르면, 제2 프로세서(732b)는, 전방 차량의 거리 정보의 구독 요청에 따라, 제1 프로세서(732a)로 전방 차량의 거리 정보의 구독 요청을 전송하고, 제1 프로세서(732a)는, 레이더 센서로부터의 전방 차량의 거리 정보를 수신하고, 전방 차량의 거리 정보 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여 그 차이가 소정치 이상인 경우에, 제1 캐쉬(735a)에 전방 차량의 거리 정보를 저장하고, 저장된 제1 캐쉬(735a)의 값을, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 전송할 수 있다. 이에 따라, 프로세서 간 통신의 지연을 저감하면서, 전방 차량의 거리 정보를 전송할 수 있게 된다.
한편, 제2 프로세서(732b)는, 프로세서 간 통신을 통해, 수신된 전방 차량의 거리 정보를 제2 캐쉬(735b)에 저장하고, 제2 캐쉬(735b)에 저장된 전방 차량의 거리 정보를, 전방 차량의 거리 정보의 구독 요청을 전송한, 어플리케이션으로 전송할 수 있다. 이에 따라, 프로세서 간 통신의 지연을 저감하면서, 전방 차량의 거리 정보를 전송할 수 있게 된다.
한편, 제2 프로세서(732b)는, 전방 차량의 거리 정보의 구독 요청에 따라, 제1 프로세서(732a)로 전방 차량의 거리 정보의 구독 요청을 전송하고, 제1 프로세서(732a)는, 레이더 센서로부터의 전방 차량의 거리 정보를 수신하고, 전방 차량의 거리 정보 수신시, 제1 캐쉬(735a)에 저장된 값과 비교하여 그 차이가 소정치 미만인 경우에, 수신된 전방 차량의 거리 정보를 제1 캐쉬(735a)에 저장하지 않고, 프로세서 간 통신을 통해, 제2 프로세서(732b)로 전송하지 않는다. 이에 따라, 동일 데이터의 버퍼 점유를 최소화하여 프로세서 간 통신의 지연을 저감하면서, 전방 차량의 거리 정보를 전송할 수 있게 된다.
도 14는 화이트 리스트 관리와 관련한 다이아그램이다.
도면을 참조하면, 제2 프로세서(732b)는, 제2 매니저(734b)로 제2 큐(PTa)의 실행을 위한 정보를 전송한다(S1410).
예를 들어, 제2 큐(PTa)의 실행을 위한 정보는, 위치 정보 또는 위치 정보 등과 관련한 애플리케이션 정보를 포함할 수 있다.
다른 예로, 제2 큐(PTa)의 실행을 위한 정보는, 제2 메시지와 관련한 정보일 수 있다.
다음, 제2 매니저(734b)는, 수신된 제2 큐(PTa)의 실행을 위한 정보에 기초하여, 제2 리스트(738b)를 체크한다(S1415).
예를 들어, 제2 매니저(734b)는, 제2 리스트(738b) 내에, 수신된 제2 큐(PTa)의 실행을 위한 정보가 포함되는 지 여부를 판단한다.
그리고, 제2 매니저(734b)는, 제2 리스트(738b) 내에, 수신된 제2 큐(PTa)의 실행을 위한 정보가 포함되지 않는 경우, 제2 큐(PTa)의 실행 불가 통지를 제2 프로세서(732b)로 전송한다(S1420).
한편, 제2 매니저(734b)는, 제2 리스트(738b) 내에, 수신된 제2 큐(PTa)의 실행을 위한 정보가 포함되는 경우, 제2 큐(PTa)의 실행 가능 통지를 제2 프로세서(732b)로 전송한다(S1425).
이에 따라, 제2 프로세서(732b)는, 제2 큐(PTa)의 실행이 가능하므로, 위치 정보 또는 제2 메시지 등을 제2 매니저(734b)로 전송할 수 있다(S1430).
다음, 제2 매니저(734b)는, 프로세서 간 통신을 통해, 공유 메모리(508) 내의 IPC 버퍼(762) 내의 제2 큐(PTa)로 위치 정보 또는 제2 메시지 등을 전송할 수 있다(S1435).
다음, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 공유 메모리(508) 내의 IPC 버퍼(762) 내의 제2 큐(PTa)의 값인, 위치 정보 또는 제2 메시지 등을 독출(read)할 수 있다.
그리고, 제1 프로세서(732a) 내의 제1 매니저(734a)는, 독출한 위치 정보 또는 제2 메시지 등을, 구독한 제1 프로세서(732a) 또는 별도의 프로세서(미도시)로 전송할 수 있다(S1445).
이와 같이, 우선 순위가 높인 제2 큐(PTa)를 사용하여, 우선권 높은 이벤트의 실시간 전송을 보장할 수 있게 된다.
도 15a는 본 개시와 관련한 프로세서 간 통신 방식을 도시한 도면이다.
도면을 참조하면, 도 7의 차량용 통신 장치(700)에서, 제1 프로세서(732a)와 제2 프로세서(732b) 사이에, 공유 메모리(508)을 이용하여, 프로세서 간 통신 수행할 수 있다.
특히, 도 15a는, 노말 순위 큐(Normal Priority Queue)인 제1 큐(PTb)만을 사용하는 것을 예시한다.
이에 따라, 제1 프로세서(732a)에서 제2 프로세서(732b), 3개의 채널을 통해, 데이터를 전송하는 경우, 제2 프로세서(732b)는, 하나의 IPC 핸들러(345)를 실행하여, 3개의 채널의 데이터를 수신한다.
한편, 도 15a의 방식에 의하면, IPC 전송 이벤트가 많아질수록 처리 지연이 발생되며, 시간에 민감하고 중요한(Time sensitive-critical) 이벤트의 실시간 전송이 보장할 수 없게 된다.
도 15b는 본 개시의 실시예에 따른 프로세서 간 통신 방식을 도시한 도면이다.
도면을 참조하면, 도 7의 차량용 통신 장치(700)에서, 제1 프로세서(732a)와 제2 프로세서(732b) 사이에, 공유 메모리(508)을 이용하여, 프로세서 간 통신이 수행될 수 있다.
특히, 도 15b는, 노말 순위 큐(Normal Priority Queue)인 제1 큐(PTb)와, 하이 순위 큐(High Priority Queue)인 제2 큐(PTa)를 복합적으로 사용하는 것을 예시한다.
도 15b는 도 15a와 달리, 각 채널의 데이터 중 'K' 데이터를 분리하여, 제2 큐(PTa)를 이용하고, 그 외의 데이터는 제1 큐(PTb)를 이용하는 것을 예시한다.
이에 따라, 제2 프로세서(732b)는, 제1 큐(PTb)를 위한 제1 IPC 핸들러(345a)와, 제2 큐(PTa)를 위한 제2 IPC 핸들러(345b)를 실행할 수 있다.
한편, 도 15b의 방식에 의하면, IPC 전송 이벤트가 많아지더라도, 제2 큐(PTa)의 실행에 의해, 우선 순위 높은 이벤트의 실시간 전송이 가능하게 된다. 특히, 시간에 민감하고 중요한(Time sensitive-critical) 이벤트의 실시간 전송이 가능하게 된다.
한편, 이상에서는 본 개시의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (20)

  1. 제1 통신 방식에 기초하여, 차량 내의 센서 신호를 포함하는 제1 메시지를 수신하여, 신호 처리를 수행하는 제1 프로세서;
    제2 통신 방식에 기초하여, 외부로부터 수신하는 통신 메시지를 포함하는 제2 메시지를 수신하고, 수신되는 상기 제2 메시지의 신호 처리를 수행하는 제2 프로세서;
    상기 제1 프로세서와 상기 제2 프로세서 사이의 상기 제1 메시지 또는 상기 제2 메시지 전송을 위해 동작하는 공유 메모리;를 포함하는 것을 특징으로 하는 신호 처리 장치.
  2. 제1항에 있어서,
    상기 제1 프로세서는,
    프로세서 간 통신(Inter Processor Communication; IPC)을 위한 제1 캐쉬(cache)를 포함하는 제1 매니저;를 구비하고,
    상기 제2 프로세서는,
    상기 프로세서 간 통신을 위한 제2 캐쉬와 타이머를 포함하는 제2 매니저;를 구비하는 것을 특징으로 하는 신호 처리 장치.
  3. 제2항에 있어서,
    상기 제1 프로세서는,
    구독 요청 받은 상기 제1 메시지 수신시 상기 제1 캐쉬에 저장 또는 관리하고, 상기 제1 메시지 수신시, 상기 제1 캐쉬에 저장된 값과 비교하여, 그 차이가 소정치 이상인 경우에, 상기 프로세서 간 통신을 통해, 상기 제2 프로세서로 상기 제1 메시지를 전송하는 것을 특징으로 하는 신호 처리 장치.
  4. 제2항에 있어서,
    상기 제2 프로세서는,
    이더넷 프로세서로부터 상기 제1 메시지의 구독 요청을 수신하고, 상기 프로세서 간 통신을 통해, 상기 구독 요청을 전송하는 것을 특징으로 하는 신호 처리 장치.
  5. 제2항에 있어서,
    상기 제2 프로세서는,
    상기 제1 메시지의 첫 수신시, 상기 제2 캐쉬에 저장하고, 상기 제1 메시지의 후속 수신시, 상기 제2 캐쉬를 업데이트하는 것을 특징으로 하는 신호 처리 장치.
  6. 제2항에 있어서,
    상기 제2 프로세서는,
    상기 제1 메시지 수신에 따라 상기 타이머의 쓰레드를 생성하고, 상기 쓰레드의 만료마다 상기 제2 캐쉬의 값을, 이더넷 프로세서로 전달하는 것을 특징으로 하는 신호 처리 장치.
  7. 제2항에 있어서,
    상기 제2 프로세서는,
    상기 프로세서 간 통신이 수행되지 않아 상기 제1 메시지가 수신되지 않는 주기 동안에는, 상기 제2 캐쉬의 값을, 이더넷 프로세서로 전달하는 것을 특징으로 하는 신호 처리 장치.
  8. 제2항에 있어서,
    상기 제2 프로세서는,
    상기 프로세서 간 통신이 수행되어 상기 제1 메시지가 수신되는 주기 동안에는, 상기 제2 캐쉬에 업데이트된 값을, 이더넷 프로세서로 전달하는 것을 특징으로 하는 신호 처리 장치.
  9. 제2항에 있어서,
    상기 공유 메모리는,
    상기 프로세서 간 통신시, 제1 큐(queue)와, 상기 제1 큐 보다 우선권이 높이 제2 큐를 통해, 데이터를, 상기 제1 프로세서에서 상기 제2 프로세서 사이에 전송되도록 하는 것을 특징으로 하는 신호 처리 장치.
  10. 제9항에 있어서,
    상기 공유 메모리는,
    속도 데이터 또는 위치 정보 데이터를, 상기 제2 큐를 통해, 상기 제1 프로세서와 상기 제2 프로세서 사이에 전송되도록 하는 것을 특징으로 하는 신호 처리 장치.
  11. 제9항에 있어서,
    상기 제1 프로세서 또는 상기 제2 프로세서는,
    상기 제2 큐를 이용할 수 있는 어플리케이션을 포함하는 리스트를 관리하는 것을 특징으로 하는 신호 처리 장치.
  12. 제9항에 있어서,
    상기 공유 메모리는,
    상기 프로세서 간 통신을 위한 이벤트가 증가하더라도, 상기 제2 큐를 위해 할당된 이벤트에 대응하는 데이터만 상기 제2 큐를 통해, 전송되록 하는 것을 특징으로 하는 신호 처리 장치.
  13. 제2항에 있어서,
    상기 공유 메모리는,
    상기 프로세서 간 통신시, 메모리 블록 또는 메모리 주소에 정렬되는 사이즈의 버퍼를 할당하는 것을 특징으로 하는 신호 처리 장치.
  14. 제2항에 있어서,
    상기 공유 메모리는,
    상기 프로세서 간 통신을 위한 주기적인 이벤트 횟수 보다 적은 개수의 버퍼를 설정하는 것을 특징으로 하는 신호 처리 장치.
  15. 제2항에 있어서,
    상기 제2 프로세서는,
    전방 차량의 거리 정보의 구독 요청에 따라, 상기 제1 프로세서로 상기 전방 차량의 거리 정보의 구독 요청을 전송하고,
    상기 제1 프로세서는, 레이더 센서로부터의 상기 전방 차량의 거리 정보를 수신하고, 상기 전방 차량의 거리 정보 수신시, 상기 제1 캐쉬에 저장된 값과 비교하여 그 차이가 소정치 이상인 경우에, 상기 제1 캐쉬에 상기 전방 차량의 거리 정보를 저장하고, 상기 저장된 제1 캐쉬의 값을, 상기 프로세서 간 통신을 통해, 상기 제2 프로세서로 전송하는 것을 특징으로 하는 신호 처리 장치.
  16. 제15항에 있어서,
    상기 제2 프로세서는,
    상기 프로세서 간 통신을 통해, 수신된 상기 전방 차량의 거리 정보를 상기 제2 캐쉬에 저장하고, 상기 제2 캐쉬에 저장된 상기 전방 차량의 거리 정보를, 상기 전방 차량의 거리 정보의 구독 요청을 전송한, 어플리케이션으로 전송하는 것을 특징으로 하는 신호 처리 장치.
  17. 제2항에 있어서,
    상기 제2 프로세서는,
    전방 차량의 거리 정보의 구독 요청에 따라, 상기 제1 프로세서로 상기 전방 차량의 거리 정보의 구독 요청을 전송하고,
    상기 제1 프로세서는, 레이더 센서로부터의 상기 전방 차량의 거리 정보를 수신하고, 상기 전방 차량의 거리 정보 수신시, 상기 제1 캐쉬에 저장된 값과 비교하여 그 차이가 소정치 미만인 경우에, 상기 수신된 상기 전방 차량의 거리 정보를 상기 제1 캐쉬에 저장하지 않고, 상기 프로세서 간 통신을 통해, 상기 제2 프로세서로 전송하지 않는 것을 특징으로 하는 신호 처리 장치.
  18. 제1항에 있어서,
    IPC 채널을 구비하는 제1 메모리;
    차량 속도 데이터를 포함하는 상기 센서 데이터를 저장하는 제2 메모리;를 더 구비하고,
    상기 공유 메모리는, 상기 제1 메모리 내에 구비되는 것을 특징으로 하는 신호 처리 장치.
  19. 제1항에 있어서,
    상기 제1 프로세서는, 메시지 라우터를 실행하고,
    상기 메시지 라우터는, 상기 제1 메시지의 프레임을 상기 제2 메시지의 프레임 형식으로 변환하여, 상기 제2 프로세서로 전송하도록 제어하는 것을 특징으로 하는 신호 처리 장치.
  20. 제1항 내지 제19항 중 어느 한 항의 신호 처리 장치를 포함하는 것을 특징으로 하는 차량용 통신 장치.
PCT/KR2022/006833 2021-05-14 2022-05-12 신호 처리 장치 및 이를 구비하는 차량용 통신 장치 WO2022240217A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/289,986 US20240248872A1 (en) 2021-05-14 2022-05-12 Signal processing apparatus and communication apparatus for vehicle, comprising same
EP22807864.8A EP4339778A1 (en) 2021-05-14 2022-05-12 Signal processing apparatus and communication apparatus for vehicle, comprising same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210062797 2021-05-14
KR10-2021-0062797 2021-05-14

Publications (1)

Publication Number Publication Date
WO2022240217A1 true WO2022240217A1 (ko) 2022-11-17

Family

ID=84029319

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/006833 WO2022240217A1 (ko) 2021-05-14 2022-05-12 신호 처리 장치 및 이를 구비하는 차량용 통신 장치

Country Status (3)

Country Link
US (1) US20240248872A1 (ko)
EP (1) EP4339778A1 (ko)
WO (1) WO2022240217A1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100561636B1 (ko) * 2004-11-22 2006-03-15 한국전자통신연구원 이더넷 패킷 스위치 장치
KR20090132770A (ko) * 2008-06-23 2009-12-31 주식회사 만도 차량용 게이트웨이 전자제어장치 및 그의 주행정보기록방법
KR101020948B1 (ko) 2008-04-22 2011-03-09 현대자동차주식회사 차량용 네트워크 게이트웨이 및 네트워크 시스템
KR20170099701A (ko) * 2016-02-24 2017-09-01 (주)제이엔디 차량 간 정보 수집 및 공유 시스템
KR20200125133A (ko) * 2019-04-26 2020-11-04 현대자동차주식회사 차량 및 차량 내 메시지 전송 방법
KR102244569B1 (ko) * 2018-11-26 2021-04-26 한국전자통신연구원 오토모티브 이더넷에 기초하여 차량 내부 네트워크에서 차량 내 디바이스간 통신 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100561636B1 (ko) * 2004-11-22 2006-03-15 한국전자통신연구원 이더넷 패킷 스위치 장치
KR101020948B1 (ko) 2008-04-22 2011-03-09 현대자동차주식회사 차량용 네트워크 게이트웨이 및 네트워크 시스템
KR20090132770A (ko) * 2008-06-23 2009-12-31 주식회사 만도 차량용 게이트웨이 전자제어장치 및 그의 주행정보기록방법
KR20170099701A (ko) * 2016-02-24 2017-09-01 (주)제이엔디 차량 간 정보 수집 및 공유 시스템
KR102244569B1 (ko) * 2018-11-26 2021-04-26 한국전자통신연구원 오토모티브 이더넷에 기초하여 차량 내부 네트워크에서 차량 내 디바이스간 통신 방법 및 장치
KR20200125133A (ko) * 2019-04-26 2020-11-04 현대자동차주식회사 차량 및 차량 내 메시지 전송 방법

Also Published As

Publication number Publication date
US20240248872A1 (en) 2024-07-25
EP4339778A1 (en) 2024-03-20

Similar Documents

Publication Publication Date Title
WO2019132344A1 (en) Method for controlling earpiece and electronic device for supporting the same
WO2013058423A1 (ko) 전자기기 및 전자기기의 동작 방법
WO2016023148A1 (zh) 报文的控制方法、交换机及控制器
WO2022182103A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2019066343A1 (en) METHOD AND DEVICE FOR COMMUNICATION BETWEEN ELECTRONIC DEVICES
WO2021137569A1 (en) Method for transceiving data in bluetooth network environment and electronic device thereof
WO2022240217A1 (ko) 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
WO2017049432A1 (zh) 一种数据传输方法及装置
WO2023277637A1 (ko) 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
WO2023239009A1 (ko) 차량의 신호 처리 장치 및 이를 구비하는 차량용 통신 장치용 통신 장치
WO2024111709A1 (ko) 차량의 신호 처리 시스템 및 이를 구비하는 차량
WO2015093790A1 (en) Method and apparatus for controlling virtual switching
WO2023136369A1 (ko) 차량용 디스플레이 장치
WO2023113079A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2024034709A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023195559A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2017206882A1 (zh) 一种传感器控制方法、装置、存储介质及电子设备
WO2023136376A1 (ko) 차량용 디스플레이 장치
WO2024053802A1 (ko) 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
WO2024034708A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2023101070A1 (ko) 차량용 통신 장치 및 이를 구비하는 차량용 디스플레이 장치
WO2024085283A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
EP4165950A1 (en) Audio output apparatus for wirelessly receiving data from electronic device and method of operating the same
WO2023136373A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
WO2022103093A1 (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22807864

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18289986

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2022807864

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022807864

Country of ref document: EP

Effective date: 20231214