TIME ALIGNMENT OF DEVICE TRACK DATA
Synchronized trace data timestamps through TSN Ethernet in microcontroller networks address the challenge of analyzing trace data from multiple interacting units, improving fault diagnosis in computer-controlled systems.
Patent Information
- Application Number
- DE102025134512
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-28
- Filing Date
- 2025-08-28
- Publication Date
- 2026-03-05
AI Technical Summary
Microcontroller trace data analysis from multiple interacting units is challenging due to unsynchronized local clocks, complicating the diagnosis of complex errors and unexpected behavior in computer-controlled systems.
Implementing a time-sensitive packet-switched network protocol like TSN Ethernet for synchronization of local clocks across multiple microcontrollers, enabling synchronized trace data timestamps and chronological merging of trace information using a centralized tracking tool.
Facilitates accurate chronological ordering and diagnosis of complex faults by ensuring synchronized trace data timestamps across multiple microcontrollers, enhancing fault analysis in systems like automotive safety and infotainment systems.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] The microcontrollers (MCUs) of computer-controlled systems, such as vehicles or industrial equipment, often include a debugging subsystem to support monitoring of system performance and to respond to unexpected behavior, errors, glitches, and the like that could affect the system. Debugging subsystems frequently include tracking modules that enable monitoring of system operation and assistance in debugging unexpected behavior by generating trace data logs of operations, such as executed instructions and memory accesses. Microcontroller trace data is typically analyzed by only one microcontroller at a time, as analyzing trace data from multiple interacting microcontrollers can be particularly challenging for various reasons. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Some examples of circuits, devices, and / or procedures are described below only as examples. Reference is made to the accompanying figures. Fig. Figure 1 illustrates an exemplary computer-controlled system according to some embodiments of the disclosure. Fig. Figure 2 illustrates an exemplary embodiment of a zone control system of Fig. 1. Fig. Figure 3 illustrates exemplary additional features of some embodiments of the zone control of Fig. 2 Fig. Figure 4 is a flowchart of an exemplary process according to some embodiments of the disclosure for implementation by, for example, a zone control or a central control of Fig. 1. DETAILED DESCRIPTION
[0003] The present disclosure will now be described with reference to the accompanying drawing figures, using the same reference numerals throughout to refer to the same elements, and the illustrated structures and devices are not necessarily drawn to scale.
[0004] Many computer-controlled systems contain multiple integrated circuit (IC) microcontrollers located throughout the system. For example, an automobile may have dozens of MCUs located in various places throughout the vehicle. In some systems, one or more of the MCUs include a trace infrastructure as part of the NCU debugging system. The trace infrastructure connects to targeted system resources to generate trace data from operations performed by those resources. Targeted system resources might include processors, memory access modules (such as DMA modules – Direct Memory Access modules), and data buses.Generated trace data can include, for example, program traces that log instructions executed by processors, data traces that log memory accesses by memory access modules, and bus traces that log bus transactions.
[0005] The generated trace data comprises records that generally include an identification of the system resource, a characterization of the operation performed, and a corresponding timestamp. The timestamp can be used to determine the sequence of tracked operations and thus help diagnose unexpected behavior of the system resource. The timestamps are based on a local clock of the MCU that encompasses the trace infrastructure. If multiple MCUs, each with its own independent local clock, have system resources that interact and are tracked together, the timestamped sequence of tracked operations may differ from the actual chronological sequence of tracked operations if the respective clocks of the multiple MCUs are not sufficiently synchronized.Insufficient synchronization can complicate the analysis and diagnosis of complex errors involving multi-resource operations, as it can be difficult to determine the actual temporal sequence of operations across resources from their respective timestamps.
[0006] In some embodiments according to the disclosure, MCUs configured to operate in a network include a tracking infrastructure that uses a local clock which is regularly synchronized with the local clocks of other network components. This enables a tracking tool to correctly order tracked operations from multiple network components in the actual sequence of operations, which aids in the analysis and diagnosis of unexpected behavior of interconnected and interacting network components.
[0007] In some embodiments according to the disclosure, the network uses a time-sensitive packet-switched (or packet-based) network protocol, such as a Time Sensitive Networking (TSN) Ethernet protocol. TSN Ethernet includes a set of standards that enhance conventional Ethernet networks to support real-time communication, which can be particularly useful for automotive safety systems, industrial robotic systems, audio / video streaming, and the like. TSN Ethernet enables the development and deployment of standardized, modular, flexible, packet-switched communication networks that provide features that would otherwise require direct connections between nodes and specialized communication protocols, while simultaneously eliminating the need for direct connections between all pairs of nodes and specialized communication protocols.
[0008] TSN Ethernet is particularly useful in automotive environments. For vehicle safety systems such as ADAS (Advanced Driver Assistance Systems), TSN Ethernet enables, for example, the synchronization of multiple sensors for sensor fusion and real-time processing with guaranteed communication bandwidth between components. For vehicle infotainment systems, TSN Ethernet enables, for example, synchronized audio and video streams, precise distribution of audio signals to different speakers within a vehicle, improved communication, and an enhanced user experience.
[0009] Nodes in a TSN Ethernet network, such as MCUs, can be synchronized by establishing a clock tree for the network with one node designated as the grandmaster clock. The grandmaster clock is then cascaded one level at a time through the clock tree between pairs of directly connected nodes until the local clocks of all nodes are synchronized with the grandmaster clock. Pairs of directly connected nodes have consistent delay times between them and can therefore synchronize their respective local clocks quite precisely (e.g., within a few nanoseconds). Cascading synchronization of node clocks can be performed according to a precision time protocol (PTP), such as that defined in the IEEE 1588 standard.
[0010] TSN Ethernet enables certain system implementations, as disclosed, to provide consistent and synchronized track data timestamps for operations through system resources across multiple MCUs. Some Ethernet standards that may be relevant to these systems include IEEE 802.1Q for virtual local area networks (VLANs) and IEEE 802.1AS for time synchronization.
[0011] Each MCU is therefore capable of generating and providing synchronized trace information to a system tracing tool. The system-internal or system-external tracing tool can then chronologically merge and / or adjust trace information received from multiple MCUs in the system via TSN Ethernet, which, for example, improves the ability to diagnose complex faults involving multiple MCUs.
[0012] Fig. Figure 1 illustrates an exemplary computer-controlled system 100 according to some embodiments of the disclosure. The system 100 can, for example, correspond to an automotive system. The system 100 comprises a central controller 101 and a plurality of zone controllers 103 (e.g., zone controllers 103(1)-103(6)). The central controller 101 and the zone controllers 103 correspond to the MCUs described above. The system 100 further includes an ADAS (Advanced Driver Assistance System) module 105 and an infotainment module 106. The controllers and modules 101, 103, 105, and 106 of the system 100 are communicatively interconnected by a TSN Ethernet network 102n, which includes an Ethernet switch 102, to route network frames between the various nodes of the network. The Ethernet 102n network can include additional connections, switches, routers, bridges and other network infrastructure (not shown).The TSN Ethernet Network 102n enables its nodes to establish and maintain synchronized local clocks and to communicate using TSN Ethernet network frames.
[0013] An optional external track tool 110 can selectively connect to the central controller 101, one of the zone controllers 103, or another node (not shown) of the network 102n. The external track tool 110 can be a component of a debugging solution, such as the Multi-Core Debug Solution (MCDS) from Infineon Technologies AG in Neubiberg, Germany. While connected to a node of the network 102n, the external track tool 110 can communicate with any of the controllers 101 and 103 using the network 102n. This is particularly useful for communicating with deeply embedded and difficult-to-access zone controllers 103 and for obtaining time-sensitive track data from them.
[0014] Each of the zone controllers 103 and the central controller 101 are configured to generate TSN Ethernet frames to encapsulate track information and to transmit the frames using the TSN Ethernet network 102n. It should be noted that "frames" is the term commonly used to refer to data packets at the data link layer, such as Ethernet frames, while "packets" is generally understood to refer to data packets at the network layer, such as IP packets. The generation of track information can be initiated and terminated in response to, for example, a request from the external debug tool 110, error processing by the central controller 101, or a scheduled event.
[0015] In one exemplary implementation, the external track tool 110 establishes tracking sessions on zone controllers 103(1) and 103(6) and then receives corresponding track data from these zone controllers. In another exemplary implementation, because zone controllers 103(1) and 103(6) have synchronized clocks, the track tool 110 can trigger mechanisms within its respective track units to be activated at a predefined time. This allows the track tool 110 to start tracking on multiple devices (e.g., zone controllers 103(1) and 103(6)) simultaneously (with an error margin that can be on the nanosecond scale).
[0016] Fig. Figure 2 illustrates an embodiment of a zone control 103 of the system 100 of Fig. 1. The zone controller 103 is an integrated circuit device (IC device) comprising a tracking unit 201, an Ethernet network connector 202, a safety module 205, and control core modules 206, wherein the elements 201, 202, 205, and 206 are interconnected by an interconnect fabric 202f, which may include one or more buses. The zone controller 103 is connected to the rest of the system 210 via the TSN Ethernet network 102n. A tracking tool 209 can be connected to the controller 103, for example, via the rest of the system 210 or directly (not shown) via the network 102n. The tracking tool 209 can be connected to the removable external tracking tool 110. Fig. 1 correspond to or alternatively correspond to a module of the system 100, such as a (not shown) tracking tool module of the central control 101.
[0017] The Track Unit 201 is configured to generate and provide track data in response to a track request. As noted above, track data generally comprises a sequential, timestamped log of operations performed or controlled by one or more modules within the Zone Controller 103. Such modules may include, for example, processors of the Control Core Modules 206, the Ethernet Port 202, the Interconnect Fabric 202f, and / or sensors and devices (not shown) controlled by the Zone Controller 103. A track request may specify particular components or operations to be tracked. The track data generated by the Track Unit 201 can be used to create corresponding track data payloads, which also include appropriate timing information (e.g., timestamps), and which are provided to the Ethernet Port 202.The time information is based on a local clock synchronized via Ethernet port 202, as referenced below. Fig. 3 described in more detail.
[0018] Ethernet port 202 is configured to send and receive TSN Ethernet frames, which includes encapsulating payloads for transmission with an appropriate Ethernet header and decapsulating received payloads for processing by the appropriate module of zone controller 103. Ethernet port 202 is also configured to adjust one or more local time resources (for example, clocks and clock-triggered counters) based on time information received according to TSN Ethernet protocols. Adjusting local time resources is equivalent to generating time information according to the TSN Ethernet protocol.
[0019] The Ethernet port 202 can assign network frames generated by the Ethernet port 202 to corresponding traffic class (TC) priority classifications. In some example implementations, where the TSN Ethernet network 102n uses eight TC classifications ranging from TC0 to TC7, TC7 represents the highest priority, TC0 represents the lowest priority, and intermediate classifications represent corresponding priority levels. TC0 frames can be considered a "best effort" priority level, sent after higher-priority streams have completed their communication requests, but with the option to set a minimum quality of service (QoS) bandwidth.
[0020] To avoid disrupting the nominal Ethernet communication of controller 103, typical track data frames can be assigned a low-priority TC classification, such as TC0. However, some track data frames, such as critical track information frames, can be assigned an intermediate priority classification.
[0021] The Security Module 205 can be used to control access to track features and encrypt generated track data. Track features can be used by malicious actors to hack System 100, obtain illicit information, or perform actions that could be harmful to System 100, its owner, or operator. Access control can be achieved by requiring valid signature keys to grant access to track requests (which would otherwise be blocked by default).
[0022] The Security Module 205 can additionally support encryption of generated track data. Accordingly, the Security Module 205 can be configured to verify that track requests are received from trusted requesters and, if so, to allow access to the Track Unit 201 and provide appropriate security configuration information (e.g., encryption keys or encrypted data) for processing (e.g., encryption) track data received from the Track Unit 201. The Security Module 205 can be a hardware security module (HSM). In some embodiments, the Security Module 205 can be implemented using ARM TrustZone technology (ARM and TrustZone are registered trademarks of ARM Limited in Cambridge, UK).
[0023] Fig. Figure 3 illustrates exemplary additional features of some embodiments of the zone control 103. Fig. 2. The track unit 201 comprises a local clock 310, a relative counter 311, an absolute counter 312, and a local reset circuit 313. The counters count ticks received at their corresponding counter increment terminals (indicated by the symbol "++" in the diagrams), incrementing by one count with each input tick. Counter ticks typically correspond to up ticks of the corresponding input signal (for example, a clock signal), but can alternatively correspond to down ticks, or to both up ticks and down ticks. The counters are reset to zero in response to reset signals received at their corresponding reset terminals (indicated by the symbol "R" in the diagrams), which can also be called an overflow or forced overflow.When zone controller 103 starts up, both counters 311 and 312 receive reset signals, for example from the local reset circuit 313, as part of the startup process. The counters can receive additional reset signals during operation, as described below.
[0024] Ethernet port 202 outputs a periodic pulse signal 202P based on the generated time information described above. In other words, the periodic pulse signal 202P is synchronized with the network time of network 102n, as described above. The periodic pulse signal 202P can be a pulse-per-second (PPS) signal, providing one tick every second (e.g., a 1 Hz signal). The PPS signal 202P is provided to the reset terminal of the relative counter 311 and the counter increment terminal of the absolute counter 312. The PPS signal 202P is relatively easy to implement and route, as it is a simple, slow, single-wire signal.It should be noted that, although in this example the PPS signal 202P is provided through Ethernet port 202, in alternative implementations an alternative PPS signal similar to PPS signal 202P may be generated and / or provided by one or more modules other than an Ethernet port. It should also be noted that the periodic pulse signal 202P may have a period longer or shorter than 1 second; in particular, the period should be set such that the relative counter 311 is reset before the relative counter 311 is incremented to overflow.
[0025] The relative counter 311, which can also be called an emulation counter or high-resolution counter, counts the so-called fast time based on the local clock 310. The local clock 310 generates a local clock signal 310C, the frequency of which is derived from the processor frequency of the zone controller 103. The processor frequency can also be called the CPU frequency (Central Processing Unit) and can be based, for example, on the oscillation frequency of a local oscillator crystal (not shown). The local clock signal 310C can have the same frequency as the processor frequency or it can have a lower or higher frequency. A lower frequency for the clock signal 310C can be achieved, for example, by using a frequency divider, which can provide a precise partial frequency (for example, one half, one third, or one quarter of the input frequency) of the processor frequency.A higher frequency for the clock signal 310C can be achieved, for example, by using a phase-locked loop (PLL) circuit with the processor frequency as input. In some implementations, the clock signal 310C of the local clock 310 can have a frequency on the order of a few gigahertz (for example, between 10 MHz and 10 GHz) and thus a period on the order of a few nanoseconds (for example, between 100 picoseconds and 100 nanoseconds). In some implementations, the clock signal 310C has a period in the range of 1–1000 nanoseconds.
[0026] The relative counter 311 receives the clock signal 310C at its counter increment terminal and increments its count with each tick of the clock signal 310C (which can correspond, for example, to an up tick, a down tick, or both). The count value of the relative counter 311 is used by the track unit 201 as a timestamp for tracked operations. This timestamp can be referred to as a tick count. Tracked operations, which identify the operation and its corresponding source / destination and include the corresponding timestamp from the relative counter 311, can be provided to a track buffer 314 via path 314t. The contents of the track buffer 314 can then be intermittently transferred to the track tool 209 via Ethernet terminal 202. The track tool can add a time increment value to the track record, corresponding to the timestamp and based on the frequency of the local clock 310.For example, a relative counter value of 1830 from a track unit 201, whose clock signal 310C frequency is 250 MHz (i.e., has a time interval of 4 nanoseconds), corresponds to a time of 7320 nanoseconds.
[0027] It should be noted that in some alternative implementations, the contents of track buffer 314 are provided to the tracking tool 209 via a different path that bypasses Ethernet port 202. In some alternative implementations, the tracked operations are provided directly to Ethernet port 202 by track unit 201 without using a track buffer. In some alternative implementations, the tracked operations are provided to the tracking tool by track unit 201 via a different path that bypasses Ethernet port 202 and without using a track buffer.
[0028] Exhibiting a clock signal 310C frequency similar to the CPU frequency of the Zone Control 103 processors allows for the identification of the correct sequence of tracked operations using their corresponding timestamps. In addition to ordering and correlating tracked operations, a tracked operation can also be correlated with System 100 system events that are not tracked operations but are tracked in other ways. For example, tracked operations can be correlated with timestamped sensor readings, which can shed light on the causes and / or effects of sensor-detected anomalies or other events. When the various system components, including timestamped operations and sensor readings, are synchronized, relationships between them can be more accurately assessed.
[0029] The relative counter 311 receives the PPS signal 202P at its reset terminal. This ensures that the relative counter is regularly synchronized with the network time of network 102n – for example, every second. This regular synchronization prevents time drift that might otherwise occur due to differences between the various clocks of system 100, which would complicate accurate analysis and evaluation of system operations.
[0030] The absolute counter 312, also known as the reference clock counter or low-resolution counter, counts the so-called slow time. In some implementations, the slow time has a frequency of 1 hertz with a period of one second. The absolute counter 312 receives the PPS signal 202P at its counter increment terminal, which increments a counter value every second, synchronized with other System 100 components that synchronize their clocks using the time-sensitive network protocols of the Network 102n.
[0031] One count of the absolute counter 312 corresponds to a large number of relative counter values. For example, if the clock signal 310C has a frequency of 100 MHz and the PPS signal 202P has a frequency of 1 Hz, the relative counter 311 would count increments one hundred millionth the duration of the increments counted by the absolute counter 312. Accordingly, the relative counter 311 would increment 100 million counts for one count of the absolute counter 312. In some implementations, the time increments counted by the relative counter 311 are no larger than one millionth of the time increments counted by the absolute counter 312. To allow counting to 100 million, the relative counter 311 could then be implemented as a 27-bit-wide counter.It should be noted that in some implementations narrower counters for a relative counter may be sufficient to track time differences between operations (for example, a 10-bit wide counter may be sufficient because the more important bits would remain relatively constant for long sequences of operations).
[0032] The count value of the absolute counter 312 can be associated with a large set of corresponding track records. There are several ways in which an absolute count value can be linked to corresponding track records. The absolute count value can be added to each corresponding track record. However, since the track unit 201 can record millions of tracked operations per second, the same absolute count value would be unnecessarily repeated in each track record, occupying superfluous space in the limited-sized track buffer 314 and unnecessarily consuming extraneous bandwidth of the network 102n.
[0033] In some implementations, track records are organized into paragraphs, where a paragraph has a header and a payload, the payload comprising a plurality of track records. The header contains information applicable to all track records within the plurality of track records, such as a corresponding absolute timestamp. Each track record contains a relative counter timestamp and an identification of a corresponding operation.
[0034] In some implementations, a transmission compression scheme is used that is similar to intracoded frames (I-frames) and predictively coded frames (P-frames) in video transmission. Specifically, uncompressed datasets are intermittently generated and transmitted, with each uncompressed dataset typically followed by a sequence of compressed datasets containing changes (or "deltas") from the previous dataset. For example, an uncompressed (or "key") dataset might contain both an absolute counter value and a relative counter value (as well as additional relevant information), and a sequence of compressed (or "delta") datasets might follow, containing the delta of the relative counter value for each dataset from the previous dataset, omitting not only the absolute counter value but also the fullness of the relative counter value.For example, a key record can be timestamped with an absolute counter value of 18 and a relative counter value of 25,000. The following five delta records can be timestamped with delta values of 0, 5, 1, 1, and 6. These example delta values correspond to relative counter values of 25,000, 25,005, 25,006, 25,007, and 25,013, but can be stored and transmitted using fewer bits than the full relative counter values. Note that one key record is followed by another (for example, if the absolute counter is incremented immediately after a key record is created, another key record is required to specify the new absolute counter value).
[0035] In some implementations, the track records can omit the inclusion of an absolute counter value, and the tracker tool 209 can derive the corresponding absolute counter value based on the relative counter values and the synchronization of the clocks of the tracker tool 209 and the zone controller 103 to the network time of network 102n. Since the relative counter 311 is reset to zero simultaneously with the advance of the absolute counter 312, the tracker tool 209 can reliably determine that newly received track records showing a reset correspond to a new absolute counter time interval, and the track records can be linked accordingly.
[0036] In some implementations, particularly when track records are correlated with events outside the zone controls, it can be useful to associate a set of track records with an epoch time. The epoch time (e.g., Unix time or POSIX time) is measured in seconds from a specific epoch start time (e.g., 00:00:00 UTC on January 1, 1970, for Unix epoch time) and allows the identification of a specific point in time to the second. For example, the C library function `time_t time(time_t * seconds)` returns the time since the start of the Unix epoch, measured in seconds. The epoch time can be specified, for example, by a 64-bit integer. For similar reasons to those mentioned above regarding absolute counter values, it would be undesirable to timestamp and transmit a corresponding epoch time value with every track record.However, as noted, it can sometimes be useful for the tracing tool 209 to link a set of track records with a corresponding epoch time. One way to achieve this is to determine an initial epoch time ET(i) for a track recoding that involves a relative counter value TSR (timestamp relative) with a corresponding absolute counter value TSA (timestamp absolute) for a corresponding initial absolute counter value TSA(i) (e.g., 1), and then calculate the respective epoch time ET as follows: ET=ET(i)+(TSA−TSA(i))+TSRfTU, where f TUThe frequency of the local clock 310 of track unit 201 is [missing information]. A typical TSA(i) would be 1, as this represents the first time (after the device has booted up) that the PPS signal 202P is received by the absolute counter 312, and thus represents a useful synchronization start time. However, any subsequent TSA value can also be used.
[0037] In some implementations, it may be desirable to calculate an epoch time for an event or a timestamp of some local clock ticks after a relative counter timestamp. In such a case, the epoch time can be determined using a modification of the above equation (1) as follows: ET=ET(i)+(TSA−TSA(i))+TSR+∑TicksfTU, where Σ Ticks is the number of local clock ticks from the TSR timestamp to the current track message. This allows the use and encoding of lower bit-width tick values instead of higher bit-width timestamp values. For an ET(i) of 2024-07-25 18:18 32 CET, a TSA(i) of 1, a TSA of 17, a TSR of 64075345, a Σ Ticks of 783045, and a local clock frequency f TU At 200MHz, the epoch time for the current track message would be 2024-07-25 18:18 48 s 324 ms 292 µs CET.
[0038] The track unit 201 can start generating track records after startup (when counters 311 and 312 are reset to zero) and before the clock of zone controller 103 is synchronized with the network time of network 102n and the first PPS signal 202P is provided to counters 311 and 312. Since the track tool 209 can determine the absolute time and epoch times for the first PPS signal 202P, and since the relative time differences for the track records are accurate before synchronization, the track tool can use this initial epoch time and the relative time differences to determine the actual absolute and epoch times for these track records and modify these track records accordingly.
[0039] Although various embodiments of a zone control 103 have been provided above, it should be noted that the central control 101 of the system 100 of Fig. 1. A zone controller 103 may comprise all of the modules described above. A central controller 101 may contain additional control-related modules not present in a zone controller 103, or alternatively, it may comprise the same or fewer modules. It should also be noted that, although the exemplary zone controller 103 has been shown having a single track unit 201, in some embodiments a zone controller comprises a plurality of track units 201, each having its own corresponding relative counter 311 and absolute counter 312. In such implementations, each track unit may also have its own local clock and local reset circuit; alternatively, two or more track units may share a local clock and / or a local reset circuit.
[0040] Fig. Figure 4 is a flowchart of an exemplary process 400 according to some embodiments of the disclosure for implementation by, for example, a zone control 103 or a central control 101 of Fig.1-3. Process 400 begins with step 401, which receives network synchronization time frames, for example, according to a time-sensitive packet-switched network protocol such as TSN Ethernet. The process proceeds to step 402, which generates a time signal based on the received network synchronization time frames. Then, in step 403, a first counter is reset based on the generated time signal. The process then proceeds to step 404, which increments the first counter based on a local clock. Later, in step 405, a second counter is incremented based on the generated time signal. Process 400 then proceeds to step 406, which generates a set of local track records, including track records that contain a timestamp based on the first counter, an identification of a corresponding system resource, and an identification of a corresponding operation.The process can be completed with step 407, which provides the set of local track data records to the tracking tool.
[0041] Although embodiments have been illustrated and described with reference to one or more implementations, modifications and / or alterations to the illustrated examples may be made without altering the nature and scope of protection of the appended claims. It is intended, with particular consideration for the various functions performed by the components or structures (assemblies, devices, circuits, circuit arrangements, systems, etc.) described above, that the expressions used to describe such components, unless otherwise specified, correspond to any component or structure that performs the specified function of the described component (which is, for example, functionally equivalent), even if it is not structurally equivalent to the disclosed structure that performs the function in the exemplary implementations illustrated herein.
[0042] Examples may include an object such as a method, a means of performing actions or blocks of the method, at least one machine-readable medium containing information which, when executed by a machine, causes the machine to perform actions of the method or of a device or system for detecting a non-transmitting target according to embodiments and examples described herein.
[0043] Example 1 is an integrated circuit (IC) microcontroller (MCU) that includes: a local clock, a first counter, a network interface, a set of one or more system resources configured to perform operations, and a tracking unit. The local clock is configured to advance the first counter. The network interface is configured to receive network synchronization time frames and generate a time signal based on these frames. The tracking unit is configured to: reset the first counter based on the generated time signal, generate a set of local tracking records, including a timestamp based on the first counter and an identification of the corresponding operation, and provide the set of local tracking records to a tracking tool.
[0044] Example 2 includes the subject of Example 1, optionally including or omitting elements, further comprising a second counter, wherein the track unit is configured to advance the second counter based on the generated time signal, the first counter is a relative counter that counts increments of the first time unit from a reset of the first counter, and the second counter is an absolute counter that counts increments of the network time unit from a reset of the second counter.
[0045] Example 3 includes the subject of Example 2, optionally including or omitting elements, where the increment of the first time unit is no more than one millionth of the increment of the network time unit.
[0046] Example 4 includes the subject of Example 3, optionally including or omitting elements, wherein: the increment of the first time unit is in a range of 1-1000 nanoseconds, the generated time signal from the network port is a pulse-per-second (PPS) signal, and the increment of the network time unit is one second.
[0047] Example 5 includes the subject of Example 1, optionally including or omitting elements, wherein the set includes one or more system resources: one or more processors configured to perform the operation of executing an instruction, one or more memory access modules configured to perform the operation of accessing a given memory address, and one or more buses configured to perform the operation of transferring data.
[0048] Example 6 includes the subject of Example 1, optionally including or omitting elements, with the tracking unit configured to provide the set of local track records to the tracking tool via the network connection.
[0049] Example 7 includes the subject of Example 6, optionally including or omitting elements, wherein: the MCU has a local track buffer, the track unit is configured to provide the set of local track records to the network port by storing the local track records in the local track buffer, and the network port is configured to access the local track buffer for forwarding to the tracing tool.
[0050] Example 8 includes the subject of Example 1, optionally including or omitting elements, wherein the received network synchronization time frames are according to an Ethernet Time-Sensitive Networking (TSN) protocol.
[0051] Example 9 includes the subject of Example 1, optionally including or omitting elements, with the track unit configured to generate track records for system resources outside the MCU and communicatively connected to it.
[0052] Example 10 includes the subject of Example 2, optionally including or omitting elements, wherein the set of local track records further includes track records that contain a second timestamp based on the second counter.
[0053] Example 11 includes the subject of Example 1, optionally including or omitting elements, where the track records that include a second timestamp are paragraph header track records.
[0054] Example 12 is a tracking system with a tracking tool that is communicatively connected to a set of one or more target devices, each target device comprising: a local clock, a first counter, a network port, a set of one or more system resources configured to perform operations, and a tracking unit. The local clock is configured to advance the first counter. The network port is configured to receive network synchronization time frames and generate a time signal based on the received network synchronization time frames.The tracking unit is configured to: reset the first counter based on the generated time signal; generate a set of local tracking records, including a timestamp based on the first counter and an identification of a corresponding operation; and provide the set of local tracking records to the tracking tool. The tracking tool is configured to receive the sets of local tracking records from target devices within the set of target devices and to generate a global set of tracking records that combines the received sets of local tracking records, with the global set of tracking records ordered by corresponding timestamps.
[0055] Example 13 includes the subject of Example 12, optionally including or omitting elements, wherein the received local track records include track records for system resources that are outside the target device and are communicatively connected to it.
[0056] Example 14 includes the subject of Example 12, optionally including or omitting elements, wherein the received set of local track records further includes track records including a second timestamp based on a second counter.
[0057] Example 15 includes the subject of Example 12, optionally including or omitting elements, wherein the tracking tool is configured to calculate a respective epoch time, ET, for a track record, including a first counter value, TSR, with a corresponding second counter value, TSA, by determining an initial epoch time, ET(i), for a corresponding initial second counter value, TSA(i), and calculating the respective epoch time as follows: ET=ET(i)+(TSA−TSA(i))+TSRfTU, where f TU a frequency of the local clock of the track unit.
[0058] Example 16 includes the subject of Example 12, optionally including or omitting elements, wherein: the tracking unit includes a second counter, the tracking unit is configured to advance the second counter based on the generated time signal, the tracking unit includes a local reset circuit configured to reset the first and second counters upon startup of the target device, the local clock is configured to advance the first counter before the first counter is reset by a first generated time signal after startup of the target device, and the tracking tool is configured to determine a customized timestamp from the timestamp based on the first counter of any received local tracking record generated before the first counter is reset by the first generated time signal after startup of the target device.
[0059] Example 17 includes the subject of Example 12, optionally including or omitting elements, with the tracking tool running on a removable computer tool or a central IC controller.
[0060] Example 18 is a method for a tracking system comprising a tracking tool and a targeting device. The method includes the targeting device for: receiving network synchronization time frames, generating a time signal based on the received network synchronization time frames, resetting a first counter based on the generated time signal, advancing the first counter based on a local clock, generating a set of local track records including a timestamp based on the first counter and an identification of a corresponding operation, and providing the set of local track records to the tracking tool.
[0061] Example 19 includes the subject matter of Example 18, optionally including or omitting elements, wherein the tracking system comprises a set of targeting devices including the targeting device and an additional targeting device, and the method further comprises the tracking tool for: receiving sets of local track data records from the targeting devices of the set of targeting devices and generating a global set of track data records that combines the received sets of local track data records, wherein the global set of track data records is ordered by appropriate timestamps.
[0062] Example 20 includes the subject of Example 18, which optionally includes or omits elements, and further includes calculating a respective epoch time, ET, for a track record including a first counter value, TSR, with a corresponding second counter value, TSA, by determining an initial epoch time, ET(i), for a corresponding initial second counter value, TSA(i), and calculating the respective epoch time as follows: ET=ET(i)+(TSA−TSA(i))+TSRfTU, where f TU a frequency of the local clock.
[0063] The preceding description of one or more implementations provides an illustration and description; however, it is not intended to be exhaustive or to limit the scope of protection of the exemplary embodiments to the exact disclosed form. Modifications and changes are possible in light of the above teachings or can be obtained from the practice of various implementations of the exemplary embodiments.
[0064] The above description of illustrated embodiments of the subject matter, including what is described in the abstract, is not intended to be exhaustive or to limit the disclosed embodiments to the exact forms disclosed. While specific embodiments and examples are described here for illustrative purposes, various modifications are possible which, as a person skilled in the relevant field may recognize, are considered to be within the scope of protection of such embodiments and examples.
[0065] While the disclosed subject matter has been described in connection with various embodiments and, where applicable, corresponding figures, it is understood that other similar embodiments may be used, or modifications and additions may be made to the described embodiments, in order to perform the same, a similar, alternative, or replacement function as the disclosed subject matter without deviation from it. Therefore, the disclosed subject matter should not be limited to any single embodiment described herein, but rather should be interpreted in the meaning and scope of protection according to the claims appended below.
[0066] In the present disclosure, the same reference numerals are used to refer throughout to the same elements, and the structures and devices shown are not necessarily drawn to scale.
[0067] As used herein, the terms "module," "component," "system," "circuit," "circuit assembly," "element," and the like are intended to refer to a computer-related entity, hardware, software (e.g., in execution), and / or firmware. For example, a circuit assembly or similar term may be a processor, a process running on a processor, a controller, an object, an executable program, a storage device, and / or a computer with a processing device. For illustration, an application running on a server and the server itself may also be circuit assemblies. One or more circuit assemblies may reside within a process, and a circuit assembly may be localized on one computer and / or distributed across two or more computers.A set of elements or a set of other circuit arrangements may be described herein, in which the term "set" can be interpreted as "one or more".
[0068] As another example, a circuit arrangement or similar term can be a device with a specific functionality provided by mechanical parts operated by an electrical or electronic circuit arrangement, wherein the electrical or electronic circuit arrangement can be operated by a software application or a firmware application executed by one or more processors. The one or more processors can be located inside or outside the device and can execute at least part of the software or firmware application.As yet another example, a circuit arrangement can be a device that provides a specific functionality through electronic components without mechanical parts; the electronic components may include field gates, logic components, hardware-coded logic, register transfer logic, one or more processors within it to execute software and / or firmware that at least partially provide the functionality of the electronic components.
[0069] It is understood that when an element is described as "electrically connected" or "electrically coupled" to another element, it may be physically connected or coupled to the other element such that current and / or electromagnetic radiation can flow along a conductive path formed by the elements. Intermediate conductive, inductive, or capacitive elements may be present between the element and the other element when the elements are described as electrically coupled or connected. Furthermore, when electrically coupled or connected, an element may be capable of inducing a voltage or current flow, or propagating an electromagnetic wave, in the other element without physical contact or intervening components.Furthermore, when a voltage, current or signal is described as being “applied” to an element, the voltage, current or signal may be transmitted to the other element by means of a physical connection or by means of capacitive, electromagnetic or inductive coupling that does not involve a physical connection.
[0070] The use of the word "exemplary" is intended to illustrate concepts in a concrete way. The terminology used herein serves only to describe specific examples and is not intended to limit the examples. As used here, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, it should be understood that the terms "comprises," "comprehensive," "includes," and / or "containing," when used herein, specify the presence of specified features, integers, steps, processes, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, processes, elements, components, and / or groups thereof.
Claims
[1] Microcontroller (MCU) with integrated circuit (IC) (103), comprising: a local clock (310); a first counter (311); a network connection (202); a set of one or more system resources configured to perform operations; and a track unit (201), wherein: the local clock (310) is configured to advance the first counter (311); The network port (202) is configured for: Receiving network synchronization time frames; and Generating a time signal (202P) based on the received network synchronization time frames; and the track unit (201) is configured to: Resetting the first counter (311) based on the generated time signal (202P); Generating a set of local track records that includes track records containing a timestamp based on the first counter (311) and an identification of a corresponding operation; and Providing the set of local track data records to a tracking tool. [2] MCU (103) according to claim 1, further comprising a second counter, wherein: the track unit (201) is configured to advance the second counter based on the generated time signal (202P); the first counter (311) is a relative counter that counts increments of the first time unit from a first counter reset; and The second counter is an absolute counter that counts the increments of the network time unit from the second counter reset. [3] MCU (103) according to claim 2, wherein the increment of the first time unit is not more than one millionth of the increment of the network time unit. [4] MCU (103) according to claim 3, wherein: the increment of the first time unit lies in a range of 1-1000 nanoseconds; the generated time signal (202P) from the network port (202) is a pulse-per-second (PPS) signal; and The increment of the network time unit is one second. [5] MCU (103) according to any one of claims 1 to 4, wherein the set comprises one or more system resources: one or more processors configured to perform the operation of executing an instruction; one or more memory access modules configured to perform the operation of accessing a given memory address; and one or more buses configured to perform the process of transferring data. [6] MCU (103) according to any one of claims 1 to 5, wherein the tracking unit (201) is configured to provide the set of local tracking data sets to the tracking tool via the network port (202). [7] MCU (103) according to claim 6, wherein: the MCU (103) includes a local track buffer; the track unit (201) is configured to provide the set of local track records to the network port (202) by storing the local track records in the local track buffer; and The network port (202) is configured to access the local track buffer for forwarding to the tracking tool. [8] MCU (103) according to any one of claims 1 to 7, wherein the received network synchronization time frames are according to an Ethernet Time-Sensitive-Networking (TSN) protocol. [9] MCU (103) according to any one of claims 1 to 8, wherein the track unit (201) is configured to generate track data sets for system resources outside the MCU (103) and to be communicatively connected to it. [10] MCU (103) according to any one of claims 2 to 9, wherein the set of local track data records further includes track data records comprising a second timestamp based on the second counter. [11] MCU (103) according to claim 10, wherein the track data records comprising a second timestamp are paragraph header track data records. [12] Tracking system comprising a tracking tool that is communicatively connected to a set of one or more targeting devices, wherein: Each aiming device includes: a local clock (310); a first counter (311); a network connection (202); a set of one or more system resources configured to perform operations; and a track unit (201); The local clock (310) is configured to advance the first counter (311); the network port (202) is configured to: Receiving network synchronization time frames; and Generating a time signal (202P) based on the received network synchronization time frames; the track unit (201) is configured to: Resetting the first counter (311) based on the generated time signal (202P); and Generating a set of local track records that includes track records containing a timestamp based on the first counter (311) and an identification of a corresponding operation; and Providing the set of local track data records to the tracking tool; and the tracking tool is configured to: Receiving the sets of local track data records from target devices of the set of target devices; and Generating a global set of track records that combines the received sets of local track records, with the global set of track records ordered by appropriate timestamps. [13] Tracking system according to claim 12, wherein the received local tracking data sets comprise tracking data sets for system resources that are outside the targeting device and are communicatively connected to it. [14] Tracking system according to one of claims 12 or 13, wherein the received set of local track data records further includes track data records comprising a second timestamp based on a second counter. [15] Tracking system according to any one of claims 12 to 14, wherein the tracking tool is configured to calculate a respective epoch time, ET, for a track data set which includes a first counter value, TSR, with a corresponding second counter value, TSA, by: Determining an initial epoch time, ET(i), for a corresponding initial second numerator value, TSA(i); and Calculate the respective epoch period as follows: ET=ET(i)+(TSA−TSA(i))+TSRfTU where f TU is a frequency of the local clock (310) of the track unit (201). [16] Tracking system according to any one of claims 12 to 15, wherein: the track unit (201) includes a second counter; the track unit (201) is configured to advance the second counter based on the generated time signal (202P); the track unit (201) includes a local reset circuit configured to reset the first and second counters when the targeting device is powered up; the local clock (310) is configured to advance the first counter (311) before the first counter (311) is reset by an initial generated time signal (202P) after the target device is powered up; and the tracking tool is configured to determine a customized timestamp from the timestamp based on the first counter (311) of any received local tracking record, which is generated before the first counter (311) is reset by the first generated time signal (202P) after the target device is powered up. [17] Tracking system according to any one of claims 12 to 16, wherein the tracking tool is executed on a removable computer tool or a central IC controller. [18] Method (400) for a tracking system comprising a tracking tool and a targeting device, wherein the method comprises the targeting device for: Receiving (401) network synchronization time frames; Generating (402) a time signal (202P) based on the received network synchronization time frames; Resetting (403) a first counter (311) based on the generated time signal (202P); Advance (404) of the first counter (311) based on a local clock (310); Generating (406) a set of local track records, which includes track records that comprise a timestamp based on the first counter (311) and an identification of a corresponding operation; and Provide (407) the set of local track data records to the tracking tool. [19] Method (400) according to claim 18, wherein: the tracking system comprises a set of targeting devices, including the targeting device and an additional targeting device; and The procedure (400) and the tracking tool also include: Receiving sets of local track data from target devices of the set of target devices; and Generating a global set of track records that combines the received sets of local track records, with the global set of track records ordered by appropriate timestamps. [20] Method according to one of claims 18 or 19, further comprising calculating a respective epoch time, ET, for a track data set which includes a first counter value, TSR, with a corresponding second counter value, TSA, by: Determining an initial epoch time, ET(i), for a corresponding initial second numerator value, TSA(i); and Calculate the respective epoch period as follows: ET=ET(i)+(TSA−TSA(i))+TSRfTU where f TU a frequency of the local clock (310).