Vehicular Communications 24 (2020) 100234
Contents lists available at ScienceDirect
Vehicular Communications www.elsevier.com/locate/vehcom
An efficient formulation for optimization of FlexRay frame scheduling Ricardo M. Vaz, Kleber N. Hodel, Max M.D. Santos ∗ , Benedito A. Arruda, Marcio Lobo Netto, João F. Justo a r t i c l e
i n f o
Article history: Received 26 March 2019 Received in revised form 20 November 2019 Accepted 17 January 2020 Available online 23 January 2020 Keywords: FlexRay In-vehicle network Static and dynamic segments Scheduling Optimization Real-time
a b s t r a c t FlexRay is a communication bus for automotive applications, designed to ensure high data rates, fault tolerance, and operates on a time cycle, split in static and dynamic segments for event-triggered and time-triggered communications. Therefore, it becomes suitable for hard real-time and safety-critical applications. Furthermore, it enables cyclic and acyclic communication in the static and dynamic segments according to their specifications, ensuring synchronized, error-free communication between transmitters and receivers. One challenge for applying this protocol, however, is the complexity of the task of message scheduling, for which some techniques have already been developed and we explored to show our method. Here, we carried out the analysis for a specific application that deploys the FlexRay bus, through a heuristic method with the support of a computer software to search for the best combination of message scheduling of the entire system. The effectiveness of the proposed approach is demonstrated by a case study performed within the automotive domain. © 2020 Elsevier Inc. All rights reserved.
1. Introduction Over the last few years, the incorporation of several electronic devices to automotive systems has been increasingly providing new functions to improve fuel consumption, safety, and comfort for the driver, as well as accurate and fast maintenance resources for repairers. With the better performance and reliability of modern electronic components and the flexibility offered by software engineering, it is now possible to replace a large number of mechanical and hydraulic components installed in the vehicle by complex, software-controlled electronic devices [1]. Among other considerations, one important classification of these vehicular systems is given according to their safety criticality. The so-called safety-critical systems are, by definition, those whose failure could result in loss of life, significant property damage, or environmental damage. On the other hand, non-safety-critical systems belong to a group in which failures are somehow more tolerable, although still undesirable. As more systems became software powered, there was also an increase in the number of electronic control units (ECUs), which are devices with a microcontroller, a set of sensors and actuators and software making the appropriate decisions based on the information received from sensors. Finally, the use of networks to interlink the ECUs in a vehicle assures the integration of all systems. The information collected or generated by an ECU, here
*
Corresponding author. E-mail address:
[email protected] (M.M.D. Santos).
https://doi.org/10.1016/j.vehcom.2020.100234 2214-2096/© 2020 Elsevier Inc. All rights reserved.
called signal, is packed into a data frame, which carries signals with the same properties, destination and timing constraints, and sent over the network through their binary representations, called messages. The ECUs work as senders and receivers of the messages, determining, through their algorithm, what information is to be transmitted and among those received which should be used. Receiving ECUs unpack the information within a message and process them. Each ECU in a network, also called node, has an internal transmission table containing the messages to be transmitted together with their timing characteristics. Those messages can be cyclic (transmitted regularly with a fixed interval), or sporadic (transmitted when an event occurs). The available communication protocols follow two different transmission standards [2]. There are event-triggered message transmissions, such as Local Interconnect Network (LIN), Controller Area Network (CAN), and Media Oriented Systems Transport (MOST), and time-triggered message transmissions, such as TTP, Byteflight, FlexRay, and TTCAN. For event-triggered protocols, a node can request network access to transmit a message at no particular time and the occurrence of two nodes trying to use the network at the same time is recurring. The communication protocol must then define arbitration rules for granting access to the bus. For instance, the strategy used in the CAN protocol is to assign a priority to each message frame. Event-triggered communication is very efficient in terms of bandwidth usage since only required messages are transmitted. However, guaranteeing the determinism in message delivery is one of its downfalls. This means that when several subsystems are con-
2
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
nected to the same network, the overall system may fail to satisfy some timing requirements, although each system may behave correctly when tested separately. Although not as flexible as in the event-triggered model, in time-triggered communication, message frames are transmitted at a predetermined time. This is well suited for the periodic transmission of messages as required in distributed control loops. Each frame is “scheduled” for transmission at one specific interval of time, known as “slot”, and the schedule repeats cyclically. This medium access scheme is referred to as time-division multiple access (TDMA). As the frame scheduling is statically defined, the temporal behavior is fully predictable. Therefore, it is easy to verify whether timing constraints on the data exchange process are met. In this protocol, a missing message due to transmission failure can be identified immediately, thus allowing a prompt detection of nodes with an operational problem. The next generation of road vehicular systems has features that demand in-vehicle communication with flexibility, dependability, high speed, bandwidth, and determinism. Therefore, the current challenge is to establish electrical vehicular architectures whose elements guarantee proper performance, safety, and comfort. They should also meet cost constraints and potential updates for further improvements. In order to meet these requirements, special attention has been given to the design of the In-Vehicle Networking. In view of this, the OEMs and suppliers have collaborated to provide a suitable network technology called FlexRay. It consists of a modern standard of serial data communication with highly deterministic and high-speed communication up to 10 Mbps, and two different message transmission policies: TDMA (Time Division Multiple Access) and FTDMA (Flexible Time Division Multiple Access). The organization of the communication in this protocol is given in repeated cycles, and each cycle consists of a Static Segment with TDMA message transmission rules, followed by a Dynamic Segment with FTDMA message transmission rule. Initially used by German manufacturers, in 2006 the FlexRay communication protocol was first applied to the electronic damper control system equipping the BMW X5 series, being later applied in other vehicles for a number of applications, such as in BMW 7 series, X5, X6, Mercedes Benz S-Class, Audi A8, and others. Due to its expensive cost and relatively complicated network setup, it was not widely applied in the vehicular communication network systems; but only for some luxury vehicles. The FlexRay network message scheduling is similar to the multi-core parallel scheduling problem of a computer system, but with complex constraints that hinder getting a suitable schedule. Here, we explored the message schedule optimization for the static and dynamic segments of the FlexRay protocol based on a technique that prioritizes messages with shorter deadlines for scheduling in the static segment. As verified, the jitter, defined here as the variation in the time spent between the instant in which a message is ready to be transmitted and its reception by the receiver node, is directly related to the use of the network demand, as well as the messages planning in the dynamic segment. 2. Outline FlexRay communication systems provide high data rates, fault tolerance, and operates on a time cycle, split in static and dynamic segments for event-triggered and time-triggered communications. On the one hand, we considered the static segment, in which the maximum timeout value for transmission and jitter have been observed. We verified the influence of the transmission variables according to the properties of the messages. The study also considered the transmission slots and cycles with different time-base. On the other hand, in the dynamic segment, we first evaluated the re-
sults obtained by applying the same scheduling technique used in the static segment. Besides, we also evaluated the protocol flexibility by increasing the duration time of the dynamic segment by two different procedures: by increasing the duration of the communication cycles while keeping the length of the static segment and by reducing the duration time of the static segment while keeping the duration of the communication cycle. We also evaluated the use of the dynamic segment for the transmission of cyclic messages with high repetition rates [3]. This investigation took into consideration the efficient use of the FlexRay frame scheduling by combining different existing methods and validation carried out in a software tool, such as LabView, regardless of the version of FlexRay standard. The proposed method and software tool allow automatization of the process workflow to set up the appropriate parameters for scheduling of messages in the FlexRay protocol. During the experiments, the processes of message packing and unpacking were not considered, neither the time it consumes. For all instances, the initial time starts when the message is already packed and ready to be transmitted. The remainder of this paper is organized as follows. Section 3 presents the related investigations on FlexRay scheduling, Section 4 presents an analysis of timing constraints of the two transmission segments in the FlexRay protocol messages. Section 5 presents a timing analysis of the FlexRay protocol. Section 6 shows the optimization procedure for message scheduling. Section 7 discusses the results obtained from the application of the software with tests based as a set of messages as reference. Finally, Section 8 presents the conclusions and some proposals for future research and developments. 3. Related work The problem of the FlexRay message scheduling can be handled likewise to the multi-core parallel scheduling problem of a distributed computer system, but it has more complexity in constraints that make it harder to achieve a superior scheduling performance. Therefore, the mathematical analytical model, in order to formulate it as an optimization problem, is welcome towards the network efficiency [4,5]. Here, we describe an overview of recent investigations on the scheduling static and dynamic segments in the FlexRay networks that motivated this work. 3.1. FlexRay static segment Considering the FlexRay static segment, an approach of the scheduling of the static segment was presented, which complied with the automotive-specific AUTOSAR standard [6]. For the determination of an optimal schedule in terms of the number of used slots, a fast greedy heuristic, as well as a complete approach based on Integer Linear Programming, was presented with a scheme for the transformation of the scheduling problem into a bin packing problem. Moreover, a metric and optimization method for the extensibility of partially used slots was introduced. Finally, the results provided evidence on the advantages of the proposed method. In Ref. [7], the bin-packing algorithm and the hybrid genetic algorithm based on the bin-packing algorithm was proposed. The authors computed the response times of all tasks and messages in the system, such that the message could be transmitted successfully before the deadline. Another investigation presented a method that computes the required number of retransmissions of frames that ensures the specified reliability goal [8]. That proposed frame packing also ensured that none of the signals violated its deadline and that the desired reliability goal for guaranteeing fault-tolerance is met at
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
the minimum bandwidth cost. Extensive experiments on synthetic as well as an industrial case study demonstrated the advantages of that method. Another study, presented in [9], considered the problem of the ECU and FlexRay bus scheduling synthesis from the perspective of the application designer, in order to optimize the scheduling subject to time constraints with respect to latency- or extensibilityrelated metric functions. Then, a solution was presented for the message scheduling problem, including different task scheduling policies based on current industry standards. The solutions were based on the Mixed-Integer Linear Programming optimization framework. A modular framework that enables scheduling for time-triggered distributed embedded systems was also proposed [10]. The framework provided a symbolic representation that was used by an Integer Linear Programming (ILP) solver to determine a schedule that complies with all bus and processor constraints as well as end-to-end timing constraints. Unlike other approaches, this technique complies with automotive specific requirements at system-level and is fully extensible. Formulations for common time-triggered automotive operating systems and bus systems were presented. The proposed model supported the FlexRay 2.1 and 3.0 automotive bus systems. For the operating systems, formulations for an eCos-based non-preemptive component and a preemptive OSEKtime operating system were also introduced. A method to minimize bandwidth consumption (BC) in the static segment of the FlexRay communication cycle was proposed [11], considering a frame-packing algorithm called BC minimizing with various periodic signals (BCMVPS), which is formulated as generalized integer linear programming that allowed the packing of signals with different periods into a message frame. They also presented the lower and upper bounds of the size of a static slot, as well as a heuristic called BC best fit decreasing for linear frame selection for reducing the computing time of the BCMVPS algorithm. Then, a performance of the proposed algorithm was compared to existing algorithms using the Society of Automotive Engineers benchmark data and GNU linear programming kit. The results showed that BC of the proposed algorithms is less than that of the existing frame-packing algorithms. In Ref. [12], the authors studied the problem of scheduling static messages in FlexRay that assumed the static messages have precedence relations. This implied that each message must be sent after the transmission of all its predecessors. The problem model supported slot multiplexing, as defined in the FlexRay v3.0 protocol specification. Therefore, the main goal was to provide a schedule that satisfied FlexRay specifications and precedence relations between messages and minimized bandwidth usage. Therefore, to solve the problem, a scheme for the transformation of the message scheduling problem to Strip Packing Problem (SPP) was proposed. The solution was presented with the solution of the optimization problem using a Linear Integer Programming formulation. In Ref. [13], the authors studied a holistic scheduling problem for handling real-time applications in time-triggered in-vehicle networks, where practical aspects in system design and integration were captured. This investigation designed a novel scheduling algorithm, referred to as Unfixed Start Time (UST) algorithm, which scheduled tasks and messages in a flexible way to enhance schedulability. Additionally, to tolerate assignment conflicts and further improve schedulability, it proposed two rescheduling and backtracking methods, namely, Rescheduling with Offset Modification (ROM) and Backtracking and Priority Promotion (BPP) procedures. Extensive performance evaluation studies were carried to quantify the performance of the proposed algorithm under a variety of scenarios.
3
3.2. FlexRay dynamic segment In Ref. [14], the authors explored the problem of timing analysis of frames transmitted in the FlexRay dynamic segment, providing a tight upper bound to the worst-case response times. Then, they proposed a novel algorithm to assign identifiers (priorities) to frames, to optimize a design objective. They have shown the results of the application of the method to a vehicle communication system. In Ref. [15], the authors proposed a new approach for timing analysis of the event-triggered component of the FlexRay, known as the dynamic segment. This technique takes into account that the FlexRay standard allows slot multiplexing, i.e., the same priority can be assigned to more than one message. Existing techniques have either ignored slot multiplexing in their analysis or made simplifying assumptions that severely limit achieving high bandwidth utilization. In Ref. [16], the goal was to overcome the limitations of previous investigations and presented a more general approach for the response-time analysis of the FlexRay dynamic segment, which accurately takes into account slot-multiplexing. The applicability of the proposed approach was illustrated with an industrial casestudy and synthetic test cases. 3.3. The chronological description for related investigations on scheduling The problem of scheduling of FlexRay networks has been recently studied by several investigations. One investigation proposed a holistic scheduling scheme, called HOSA [17], which can provide scalable performance by using flexible and the dualchannel communication in FlexRay. Another investigation designed a novel scheduling algorithm, referred to as Unfixed Start Time (UST) algorithm, which schedules tasks and messages in a flexible way to enhance schedulability [18]. Additionally, in order to tolerate assignment conflicts and further improve schedulability, it proposes two rescheduling and backtracking methods, namely, Rescheduling with Offset Modification (ROM) and Backtracking and Priority Promotion (BPP) procedures. In Ref. [19], the authors evaluated the minimum number of allocated slots using traditional Response Time Analysis (RTA), in order that the use of RTA techniques allowed to consider the timing requirements associated to each of the asynchronous message streams. In Ref. [20], the authors formulated a novel scheduling problem to capture a unique feature commonly existing in the safety-critical time-triggered systems, i.e., in task graphs running in such systems, some nodes (i.e., tasks and messages) are strictly periodic while others are not. An investigation explored the Flexray for networked control system [21], proposing for the first time a hybrid model of NCS with FlexRay for this purpose. In Ref. [22], the authors presented the problem of mapping an application task graph onto a FlexRaybased distributed hardware platform, to meet security and deadline requirements while minimizing the number of hardware coprocessors needed in the system. Another investigation focused on the optimal scheduling of the time-triggered component of FlexRay known as the static (ST) segment using a two-dimensional binpacking technique [23]. In terms of sub-networks, in Ref. [24], the authors proposed a heuristic algorithm that decomposes the scheduling problem to the electronic control unit (ECU)-to-channel assignment subproblem, which decides which channel the ECUs should be connected to and the channel scheduling subproblem that creates static segment communication schedules for both channels. In Ref. [25], the authors addressed the problem of synthesizing schedules for the
4
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
Fig. 1. Dual-channel bus configuration for FlexRay analysis.
static FlexRay segment for asynchronous scheduling, following the design approach of current automotive architectures. In Ref. [26], the authors proposed an approach that divides the holistic scheduling problem to two sub-problems: the sub-problem of message scheduling and the sub-problem of task scheduling, while precedence relations and end-to-end information passing between task instances and messages are preserved and the end-toend deadlines are guaranteed. This helps to reduce the workload on the problem-solvers and improves efficiency and scalability. Another investigation analyzed the literature to establish the system reliability constraints needed to evaluate the necessary time and slot usage, and the proposed cost function is used to evaluate the performance and efficiency when the number of messages is increased [27]. Another investigation explored the FlexRay network static segment scheduling algorithm and optimization strategy, and improve the scheduling efficiency of vehicle network and optimize the performance of communication network [28]. In Ref. [29], the authors have proposed an efficient and robust heuristic algorithm, which creates the schedules for internal communication of new vehicle variants. 4. FlexRay properties FlexRay protocol refers to an automotive communication network technology developed by the FlexRay Consortium [30]. The reliability of data communication is obtained by using two channels, which broadcast the same data simultaneously; providing redundancy. It is also possible to transmit different data in each channel, doubling the maximum transmission rate (from 10 Mb/s to 20 Mb/s). FlexRay supports different interconnection topologies. It can be a single or dual channel bus network, a single or dual-channel star network, or in various hybrid combinations of bus and star topologies. For convenience, here we consider only a dual-channel bus configuration. The network topology, shown in Fig. 1, is called “linear passive dual bus”. 4.1. The FlexRay communication cycle The communication in this protocol is determined by a FlexRay cycle (FC) with a fixed duration that is repeatedly executed. It consists of four parts, including 1) static segment; 2) dynamic segment; 3) symbol window; and 4) network idle time (NIT). Fig. 2 presents the main elements of the FlexRay communication cycle. The following is a brief description of each segment. 1) The Static Segment supports the TDMA standard based on time-triggered protocols. The TDMA architecture guarantees that each node will have access to the medium in each communication cycle. This is crucial in safety-critical systems. In the static segment, the slot amount is fixed. Each slot has a fixed size, regardless whether messages are transmitted or not over the bus in that cycle. Each time slot is identified by a unique identifier (ID) [36], and one node may share a single slot to transmit different messages in the distinct communication cycle. This is called Single Sender Slot Multiplexing [36]. 2) The Dynamic Segment is divided into equal parts, called minislots. They are smaller in size than the slots of the static
Fig. 2. FlexRay communication cycle.
segment. The number of minislots in the dynamic segment are parameters that can be configured. This segment uses FTDMA standard to transmit messages. As shown in Fig. 2, different frames in the dynamic segment may use a different number of minislots. At the end of the transmission of a frame, the minislot counter is incremented and the process continues normally. This segment is optional. 3) The Symbol Window is reserved for network maintenance and identification of special cycles, such as cold-start cycles. Most high-level applications do not interact with the symbol window. This segment is optional. 4) The Network Idle Time (NIT) is a pre-defined “quiet time” interval, used by the ECUs to adjust (re-synchronization) any drift that may have occurred during a previous cycle. So, it helps to maintain long-term synchronization between clocks of nodes. The static segment offers the predictability demanded by hard real-time systems, while the dynamic segment offers the flexibility for transmitting sporadic messages without wasting bandwidth when there is no data to be transmitted. There is a slot counter for each segment of the communication cycle [31]. In both segments, the right to use the bus is given to the node that has the message with the ID equal to the current value of the slot counter. During the FlexRay communication system development stage, IDs must be assigned to the nodes, such that each one has one or more slots available for the transmission of messages. Those conflicts are self-avoided since two or more nodes cannot share the same ID. At this point, it is also worth noting the role of all participants of the network should be synchronized so that there is a common understanding of the time table. As a result, it is important to know the timing characteristics of the messages to be transmitted, both for the static and the dynamic segments, in order to allocate them appropriately into the communication cycle. Fig. 3 illustrates the Dynamic Segment access procedure. Here, the smallest unit of time is minislot and the transmission rights are assigned using a virtual token. The message scheduling is performed by the following steps.
• The segment is divided into minislots; • An index is assigned for each minislot, starting at 1; • Outgoing dynamic messages (of variable size) are associated with a minislot index;
• If no message ID matches the minislot index, there is no message transmission, then after a time interval corresponding to a minislot, the index is incremented (m, m + 1, m + 2, . . .); • If there is a message ID matching the minislot index, the message is transmitted. During the transmission, the minislot in-
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
5
Fig. 5. Structure of the FlexRay timing hierarchy.
scaled value from a local oscillator or counter and it is not synchronized with the rest of the system. • The macrotick level comprises a multiple integer of microticks. The microticks quantity per macroticks can vary between nodes and between other macroticks within the same node. It is the smallest time base on a network domain. Macroticks are synchronized at a cluster level. • The communication cycle is the fundamental element of the media-access scheme within FlexRay. The duration of a cycle is typically around 1-5 ms. Fig. 3. Dynamic segment scheduling.
dex remains the same. The slot counter is increased only after the transmission is finished. • In dual channel systems, although minislots are aligned, the transmitted messages are not. • The dynamic segment ends after the last minislot. A safety margin (pLatestTx) is taken into account, to ensure there is no overlap with the following cycle. It allows that safety-related messages are sent even if the transmission of the previous message is not finished completely. 4.2. FlexRay message structure Fig. 4 shows the FlexRay frame structure, with three segments: header, payload, and trailer segments. It can carry up to 254 bytes as payload, while CAN network supports only 8 bytes per frame. For convenience, a timing hierarchy of the FlexRay protocol is divided into three levels [32]:
• The microtick level represents the smallest time base in a node domain. Its value is given in units of microseconds. It is a
Fig. 5 shows the FlexRay timing hierarchy structure. A macrotick comprises an integer number of microticks and a communication cycle comprises an integer number of macroticks, which is found in the protocol specification as gdMacrotick. FlexRay communication is performed in periodic cycles and all network nodes have a cycle counter that goes from 0 to 63, which is found in the protocol specification as vCycleCounter. When the cycle counter reaches 63 (found in the protocol specification as cCyclerCountMax), the counter is reset and Cycle 0 begins again [33], repeating all set configurations for the next 64 cycles. 4.3. Target applications In a real-time application, it is fundamental that all frames are transmitted at the right times. In order to control the allocation of the time window to message frames, the schedule table (Fig. 6) is used. In this example, the cycle multiplexing is used to increase the utilization of the bus. The typical cycle time is around 5 ms, but sometimes the application process does not need this data refresh rate. In this case, one can use slower cycle repetition time. The value of the cycle repetition is always a power of two (2n , n ∈ {0, . . . , 6}) to allow a harmonic occurrence even when the cycle counter is reset and the next set of 64 cycles begin. The cycle
Fig. 4. FlexRay frame format.
6
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
Fig. 8. Transmission synchronized with the generation of messages.
Fig. 6. Cycle multiplexing schedule table. Fig. 9. Effect of a wrong choice of the slot.
Fig. 7. Jitter in a static segment. (For interpretation of the colors in the figure(s), the reader is referred to the web version of this article.)
multiplexing technique maximizes the utilization if the static segment. 5. The message transmission analysis in FlexRay The structure of the FlexRay creates time constraints that provide a high degree of predictability. 5.1. Time constraints 5.1.1. Time constraints in the static segment Occurrences of delay in sending messages and jitter can also be found in this protocol and must be predicted during the scheduling of messages. Due to the cyclical characteristics of the message transmission, their time constraints are based on the relationship between the period and deadline of the messages to be sent with the duration of each cycle. In Fig. 7, each layer represents one communication cycle, where M, SS, DS, SW, and NIT denote respectively a Message, Static Segment, Dynamic Segment, Symbol Window, and Network Idle Time. The numbers on the right column indicate the time elapsed since the start of transmission, in which the red ones represent where the generation of the signal to be transmitted occurs. The num-
bers on the left column indicate the communication cycles, in which the red ones represent where the message transmission occurs. Generally, it is expected that a message is transmitted in the current cycle of its generation. This is the best in terms of transmission delay and jitter occurrence. However, this is not always possible, due to the difference between the message generation and transmission rates. For example, a message generated at instant 0 (right side) was sent in the same cycle 0 (left side), so there is no jitter. The message generated at instant 15 (right side) was generated in cycle 3 (left side) that is not its transmission cycle. So this message has to wait for the next transmission cycle 4 (left side) to be sent, occurring jitter. Fig. 8 illustrates the messages generated every 10 ms (M2) and scheduled for transmission using alternate communication cycles (0, 2, 4, . . . , 64). Thus, the timing synchronism between the generation and transmission of the message is guaranteed. The message scheduling should be considered in order to choose the correct slot for transmission, it must also be considered the time taken to pack the signal into a frame. Fig. 9 shows the case of a signal that is acquired at the beginning of each communication cycle, but the processing time of the node and its packing process makes it available for transmission only when the first slot is already being transmitted. If the message containing information of such signal is scheduled for transmission in the first slot, it must wait the whole period equivalent to the duration of a communication cycle. In this case, the time taken to transmit the message is equal to the duration of a communication cycle, which is the amount of time that the message waits for bus access, plus the period equivalent to one slot, which is the time consumed for the transmission of the message until its last bit. The signals, whose periods of generation do not coincide with a multiple of the duration of the communication cycle, are subject to larger transmission delays and has higher levels of jitter. These effects can be minimized by increasing the frequency of transmission of the message. However, the slot oversampling results in larger bandwidth consumption of the network. Therefore, in order to get the maximum benefit from the transmission of messages in a FlexRay network, the generation of messages from each participating node, as well as the function of the actuators that depend on the information provided, must be synchronized with the com-
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
7
Fig. 12. Worst-case delay of a message in the dynamic segment.
be transmitted by the network soon after the transmission start of the minislot assigned to it, represented by the upmost cycle in Fig. 12. The initial delay of a message in a dynamic segment is given by Eq. (2). Fig. 10. Timing of the tasks of the sensors, actuators and control engines [31].
munication cycles, as shown in the example of the Fig. 10. In that case, it is also important that the processing speed of the ECUs, connected to the network, is compatible with the data transmission in the FlexRay. Another constraint related to the static segment of the FlexRay concerns to the scheduling of messages with periods shorter than the duration of a communication cycle. For example, a message with a period equal to 2.5 ms to be scheduled in a network with 5 ms of the communication cycle requires two slots in the static segment. This situation may become unfeasible, depending on the number of messages that must be scheduled for transmission in this segment [36]. Fig. 11 shows Messages 2.5 ms scheduled in a cycle of 5 ms. Likewise, messages with periods much longer than the highest repetition rate of transmission available in the FlexRay protocol can generate a large number of oversampling slots. These cases suggest the analysis of possible scheduling in the dynamic segment [3]. 5.1.2. Time constraints in the dynamic segment In the configuration of the FlexRay dynamic segment, it should be noted that messages using minislots with higher values can be excluded from a cycle if there are many messages to be transmitted in previous minislots. The internal variable zMinislot accounts the minislots in the Dynamic Segment, and that no message may be transmitted when the counter reaches the value pLatestTx, here labeled Nlatest. The pLatestTx is calculated using Eq. (1) and represents the last minislot to be used [14,15].
pLatestTx = Nm − M max + 1
(1)
where Nm is the maximum number of minislots in a dynamic segment (between 0 and 7986) and M max is the number of minislots needed for the longest message. The worst-case delay of message transmission in the dynamic segment is divided into two parts [33]. The first one is characterized when the message is ready to
t D ,init = N MS − aDS ( D ) + 1 T MS + T SW + T NIT
(2)
where N MS is the number of minislots in the dynamic segment, aDS is the ID of the message D, T MS is the duration of a minislot, T sw is the duration of the symbol window and T NIT is the network idle time. The second part of the case is given by the next cycle, when the worst delay occurs when all other messages with lower IDs are transmitted, occupying all available space in a dynamic segment, represented by the middle cycle in Fig. 12. However, stand out: 1) the transmission of the last message cannot be started after the minislots counter reaches the value of Nlatest. 2) messages transmitted in a cycle must wait its minimum repetition period to enter the cycle again [33]. When the message is transmitted, it should be considered the number of minislots occupied by other messages that were transmitted in the same cycle, in addition to minislots occupied by the message being analyzed, this can be visualized in the bottommost cycle in Fig. 12. Therefore, in order to calculate the maximum time spent from the point in time when a message is ready to occupy the network until its last bit is fully transmitted, considering the worst-case delay, Eq. (3) is used [33]. The maximum time for broadcast in the dynamic segment is given by
w D = t D ,init + ( f − 1) · T c + T S S + J ∗D , f + N D ,MS · T MS
(3)
where f is the difference between the cycle in which the message is transmitted and the one it was generated, T c is the length of a communication cycle, T S S is the duration of the static segment, J ∗D , f is the maximum time consumed by messages having a smaller ID than the analyzed message, and N D ,MS is the number of minislots that message occupies. This worst-case condition is most likely to happen with sporadic messages since cyclic messages can have their generation synchronized with the communication cycles to be ready for transmission before their assigned minislot.
Fig. 11. Messages 2.5 ms scheduled in a cycle of 5 ms [34].
8
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
Fig. 14. Parameters of the static segment. Fig. 13. Allocation of slots in the static segment.
5.2. Flexibility analysis 5.2.1. Flexibility in case of the static segment The scheduling of messages to be transmitted in the smallest possible number of slots provides flexibility to add other nodes or to add more messages to the nodes already included. Analyzing Fig. 13, the same time slot was used by one node to transmit the intercalated messages M1 and M2, and the space available in the Static Segment, shown horizontally after M1 and M2, allows the transmission of other messages of nodes already connected to the network, or new nodes connected in a later time. Scheduling messages that occupy the maximum possible space, from left to right, bottom-up, is more effective than leaving unused slots spread in each cycle. However, the entire timeframe of the FlexRay communication cycles must be planned, which restricts its flexibility. In the case of new nodes added in a later phase of the project, when backward compatibility must be considered, it is necessary to verify if the available slots satisfy the requirements of the time constraints. 5.2.2. Flexibility in case of the dynamic segment The dynamic segment in the FlexRay protocol was designed for the transmission of non-periodic messages. For this reason, it is flexible to variations in the generation periods of messages. The expansion of the dynamic segment length can be performed in two ways: by increasing the total duration of the communication cycle or decreasing the length of the static segment. In both cases, the action may compromise the operation of the network already established. For this reason, when the initial planning of the network is performed, and the values of the static and dynamic segment lengths in the communication cycle are defined, one should provide some empty minislots for later inclusion of messages. 5.3. Scheduling of messages 5.3.1. Structure of the protocol The settings related to the structure of a FlexRay network depend on a number of variables that must be set within the standards established by the protocol specification [32]. Among these definitions, we highlight: transmission rate, length of the communication cycles, length of the static and dynamic segments, the symbol window and network idle time, length and number of slots in the static segment, length and number of the dynamic segment minislots, and macrotick duration. 5.3.2. Parameters of messages to be transmitted We considered the following parameters for each message to be transmitted in the network:
• N i is the identifier of the ECU sender; • T i is the message generation period, which may be fixed for periodic messages, or variable for sporadic messages. For sporadic messages the minimum period between the occurrences of messages must be known; • C i is the message size in bits; • D i is the message deadline. 5.3.3. Scheduling of static segment Similar to other protocols that follow the TDMA standard, the message-scheduling task on FlexRay static segment requires prior planning. The challenge is to find a common point between the timing properties of messages to be sent and the set of parameters, for the time requirements of each message and optimizing the bandwidth. FlexRay adopts the AUTOSAR standard [35] to set its parameters, which was developed to standardize automotive software development that can be used independently of the hardware. Therefore, for scheduling of message frames in the static segment, within AUTOSAR standard, the following three parameters, shown in Fig. 14, must be set:
• The slot used for the transmission frame (parameter FRIF_SLOT _ID).
• The base cycle (parameter FRIF_BASE_CYCLE), which is the chosen cycle out of the 64 available to start the schedule for the message transmission. • The rate of repetition of the message (parameter FRIF_CYCLE_REPETITION), which is the number of times that the transmission of the message will be repeated within the 64 cycles. The task of scheduling messages in the static segment of the FlexRay consists in defining a list of those three parameters, based on the timing characteristics of each message to be sent and the network parameter setting, such that timing requirements of all messages are met. At the same time, the scheduling must optimize the use of available slots, increasing network flexibility for the incorporation of more nodes in the future. Based on the generation period of a cyclic message (T i ), the corresponding transmission period (T iFR ) must be found. Each signal should be transmitted at least once, that is, no signal must be overwritten in a transmission buffer if it has not been transmitted [3]. Furthermore, the message transmission should occur before the message deadline. To guarantee the optimized use of available slots for transmission, initially, T iFR takes the maximum power of 2, from 1 to 64, given by T i , multiplied by the duration of the communication cycle, provided that the value is less than the period of a message generation, as Eq. (4).
T iFR = T i · gdC ycle
(4)
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
where T i is calculated using Eq. (5).
T i = max 2n | n ∈ N , n ≤ 6 and 2n · gdC ycle ≤ T i
(5)
The value of T i is fixed and represents the maximum repetition of the message transmission. For example, T i = 8, it means that the maximum transmission rate of the message is every 8 cycles of the communication cycle. However, there are cases when this repetition rate to transmit a message does not meet its timing requirements, requiring a reduction in the value of T iFR , i.e. the information is oversampled. Therefore, a careful analysis of the parameters chosen for transmitting a message, considering its timing constraints, is required. This is especially true when the acquisition of the signals by the nodes and generation of messages is not synchronized with the schedule for transmission. The maximum time spent to send a message in the static segment can be estimated by Eq. (6).
A i = p max · g + O FR i − O i mod g + slotSize
(6)
where g = mod T i ), slotSize is the size of a slot, is the elapsed time from the start of the network communication until the occurrence of the slot selected for transmission, given by the base cycle and the slot number chosen for the transmission, and O i is the offset of the message. The value of p max is given by Eq. (7) and represents the maximal duration between signal generation and the beginning of transmission of the first frame carrying that signal. (T iFR ,
p max =
O FR i
PackingTime + T iFR − (( O FR − O i )mod g ) i g
−1
(7)
where PackingTime is the time taken for the construction of a frame. Here, we can only adjust the values of message offset of the (O FR ) and the transmission rate (T iFR ). The jitter can be calcui lated by Eq. (8).
Jm =
2 · ( T iFR − b) · b T i · T iFR
(8)
where b = T i mod T iFR . The base cycle is the first one in which the transmission message is scheduled. It is from the base cycle that the message repetition accounting starts. Its value cannot be greater than the message transmission rate. In order to avoid conflicts, it assigns different values of the cycle basis for different messages that share the same slot. The selection of the slots for a specific node should be done carefully, considering the timing characteristics of the messages to be transmitted in the network. After setting the transmission rate of messages, check from the number of available slots, which can be chosen for sending messages, according to its deadline. The definition of the base cycle and the slot that sends a message must be carefully performed, as these two variables can affect the maximum transmission time. The combination of temporal variables (period, offset, chosen slot, cycle base, and its repetition rate) may result in different values of the maximum time for transmission and jitter, which can be above the desired range. Grenier et al. [3] proposed a heuristic for the message scheduling in the FlexRay static segment: 1- Build a list of all messages that each node in the network can transmit in each one of the empty slots. This process should be performed by filling the slots with the maximum possible number of messages, according to the following procedure: b. After testing all base cycles and repetition rates for the messages to be transmitted, build a list L of frames that meet the time constraints of signals that comprise them. This list
9
is obtained by testing all base cycles and possible repetitions for a signal. c. Organize the list with values of T i .gdCycle/ T iFR . In order to favor messages with repetition rates closer to their natural generation period, to avoid oversampling slots, the smaller the value of T i . gdC ycle / T iFR . The idea here is to prioritize frames with repeating values closer to the natural period of the signal, to prevent slot oversampling. The value T i is used as a tiebreaker. d. Assign the first frame in the list L to the slot and remove from the list all frames that are in conflict with this choice (i.e., frames scheduled for transmission on the same base cycle). If list L is not empty, return to step 1b, otherwise, return the set of messages transmitted with this schedule. 2- Among the schedules returned by step 1c, establish the one that can transmit the greatest number of messages. If there is still at least one slot to be scheduled, return to Step 1. If there are no more slots available, no scheduling solution was found. 5.3.4. Scheduling of dynamic segment The scheduling of the dynamic segment is performed by calculating the worst-case delay of the messages [33]. The choice of a minislot is based on the message that has the smallest difference between its deadline value and the worst delay time it scheduled. The knowledge of the minimum message repetition rate is required because the scheduling must be performed by designating an ID for the message such that even in the worst-case delay, its transmission infringes its deadline. Therefore, even a periodic message can be scheduled in the dynamic segment, assuring it complies with its deadline [3]. The restriction lies in the fact that, in the dynamic segment, the instant of transmission inside the communication cycle depends on the minislot assigned to the message, causing jitter. Besides, depending on the number of messages with higher priority and their generation period, the transmission of a certain message may not occur in a given communication cycle. 6. Optimization of the message scheduling Here, the optimization of the message scheduling is on both the static and dynamic segments. 6.1. Static segment We developed a software application for scheduling messages in the static segment FlexRay, based on heuristics proposed by Grenier et al. [3]. In order to facilitate tests, the optimization process was divided into three stages: 1) calculation of temporal variables; 2) calculation per slot; and 3) calculation of initial mask. Stage 1 – Calculation of temporal variables In this stage, the calculation of the timing aspects of messages is performed considering the input variables: slot, base cycle, message variables, and desired jitter. If the maximum transmission rate is not enough to meet the timing requirements of the message, this value is reduced until a satisfactory result is found. If this value is reduced to a minimum limit of one transmission per cycle, and yet a result is not found, it is concluded that the message cannot be scheduled in the selected slot, and a flag is activated to indicate this fact. The restriction on the jitter was added to the original heuristics [3], offering a way to impose a time restriction for all messages as a whole. The formula used for its calculation is the same used in [36].
10
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
The calculation process in this stage is:
• T i is computed based on the generation period of the signal,
obtaining maximum n that 2n is below T i . This value multiplied by the duration of the cycle, which has the value of 5 in our experiments, is also the initial value of the variable T iFR . • Based on the input variables, we calculate A i and jitter and compare them to the desired limits. If the results are not satisfactory, a new calculation is performed with a new value of T iFR . Furthermore, they calculate variables related to the repetition rate in the analysis: 1) the values of the maximum base cycle allowed, 2) the factor that will dictate the message order in the list L, and 3) the height of the message. Message height refers to the number of times that it appears within 64 cycles. • The process ends when a value of T iFR that meets the timing constraints of the message is found, or when the minimum repetition rate of the message is achieved, but a condition to transmit the message meeting its timing constraints was not found. In this case, a Boolean variable is modified to indicate this fact. In addition to the calculations described in the previous section, Eq. (9) is used to compute the message order.
POSITION =
Ti ·5 T iFR
· 1000 − T i + ordernumber
(9)
The order calculation of the list of candidates for scheduling messages in slots is performed based on two variables that prioritize, respectively, messages that have their repetition rate nearest to the ideal transmission rate, and those messages with a longer generation period. However, to ensure that the software can distinguish exactly what message is being analyzed, a third criterion was added, if two or more messages have the same value. This new criterion is called order number and consists of a single value for each message of each node and its implementation does not change the results obtained from the previous heuristic procedure. Stage 2 – Calculation per slot At this stage, the analysis is performed for a unique slot. It is verified which messages comply with their timing constraints and if they are scheduled in the slot that is being analyzed, based on the calculations performed by the software at Stage 1. From the list of messages, the one with the lowest order is chosen as a candidate for scheduling. Based on its repetition rate, the available space in the slot is calculated and then the software tries to schedule a new message on a different base cycle. The process ends if there are no more messages to be scheduled or if there is no more space in the analyzed slot. The messages to be scheduled belonging to a single node are sent to this stage through a table, in which each row represents a different message and each column corresponds to one of its characteristics. Therefore, the process is carried out line by line, that is, each message is evaluated separately in every possible cycle basis. The first process consists of separating each variable of the message, which is carried by reading the values contained in each column in the row under consideration. Then, these variables are sent to Stage 1. If the message is not subject to scheduling in the analyzed slot, and the base cycle in the analysis is equal or greater than the maximum allowed, based on T i , the message is excluded from the initial list without being included in the temporary list of candidate messages of that node. However, if the message is subject to scheduling, and its order value is the lowest of all messages analyzed so far, it is included in the temporary list of candidate messages along with their values of A i and jitter, overwriting any other message that is on the list scheduled in the same base cycle.
After analyzing all messages belonging to the node, the message contained in the temporary list is transferred to a definitive list of messages belonging to the node, pre-scheduled in the slot, along with information of the analyzed base cycle. Based on information about the quantity of non-scheduled messages, the repetition rate of pre-scheduled messages, and the remaining space in the slot, it is decided whether there is an analysis of a new base cycle to the same slot. Stage 3 – Calculation of initial mask This stage is the highest level of software. For each slot of the static segment, a comparison of the values returned by Stage 2 is performed, considering the messages of each node. The slot being analyzed is then assigned to the node that can schedule the greatest number of messages. Each occupied slot is listed on a new table, along with the characteristics of the scheduled messages that are erased from the initial table, in order to avoid entering in the process again. The process ends when there are no more available slots or when all messages of all nodes have already been scheduled. Then, the number of pre-scheduled messages of the node in the analysis is estimated. For each available slot in the static segment, first, the number of rows in each table is checked, representing each component of the network node. It is intended to check the amount of nonscheduled messages contained in each of the nodes. For each node, the number of lines different from zero is performed lifting of candidate scheduling messages to Stage 2 through the software. Completing this stage, based on information on the amount of pre-scheduled messages provided by each node, it is decided which one will have the right to use the analyzed slot. Then, the pre-scheduled messages of this node are definitely included in the list of scheduled messages and erased from the list of unscheduled messages. 6.2. Dynamic segment The software developed for studies on the dynamic segment is based on the heuristic proposed in [33]. For the dynamic segment, the software was also divided into three stages: 1) Simulation of worst response time, 2) Calculation of worst response time case, and 3) Scheduling of the messages. Stage 1: Simulation of worst response time At this stage, we simulate the messages scheduled previously, in the same communication cycle, until reaching the value of Nlatest. This aims to verify when transmission of analyzed messages becomes unviable. When this occurs, the process must be repeated in the next communication cycle, until it is no longer possible to block the message being analyzed. This stage has as input the ID analysis information, the value of Nlatest and the size and the candidate message deadline. This stage has as output the number of cycles and minislots that occurred before transmission of the ID and the end of the analysis. The first step is the creation of a table with the number of rows equal to the deadline of the analyzed message, and the number of columns equal to the value of the ID to be assigned. This table, which is initialized with the boolean value “false”, defines the instant in which the previously scheduled IDs will be transmitted on the analysis to be performed. Then, for each communication cycle, by changing the logic value of the created table in the previous step, the IDs are enabled and the messages are added to the network one by one. Every time the transmission of a message is added, a calculation of the total amount of occupied minislots in the dynamic segment is performed. This value is equal to 1 if the message is not transmitted, otherwise, the number of assigned minislots by the
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
message is equal to N D,M S . Based on the total amount of assigned minislots, it is verified whether the minislot available for transmission of the message under analysis is less than Nlatest. In that case, the next ID is enabled for transmission and the calculation is performed again. If the value of Nlatest has been achieved, the minimum period of transmission for each enabled ID is divided by the communication cycle length. The result is added to the cycle in the analysis, in order to indicate in the transmission table the next cycle in which the message will be transmitted again, and a new communication cycle is analyzed. The process ends when there are no more IDs to be enabled for transmission in a given communication cycle, and the value of Nlatest has not yet been reached, indicating the possibility of transmission of the analyzed message in that transmission cycle. Stage 2: Calculation of the worst response time The calculation of the number of cycles and minislots required for message transmission in the worst case is carried using the process described in Stage 1. It is performed using the information on the characteristics of the analyzed message and ID, along with the parameters of the network and the messages already scheduled. With this information, w D is computed, and the difference between the message deadline value and the value of w D is given by Eq. (3).
11
Therefore, for each empty minislot of the dynamic segment, an analysis of all messages that are not yet scheduled in the network is carried out. The process described in Stage 2 is used for calculation of the difference between its deadline and the worst-case delay. The resulting values are stored and, in the next step, the smallest one is chosen and the corresponding message is excluded from the list of candidate messages, and included in the list of scheduled messages, along with the results obtained during the analysis. The process ends when there are no more messages to be scheduled. 7. Experimental results This section presents a quantitative analysis of the message scheduling optimization study of the FlexRay network, both for the static and dynamic segments. The initial settings of the FlexRay protocol were adjusted to those adopted by BMW [3]. They were considered the following parameter settings:
• Communication through only one channel, at 10 Mbit/s; • Communication cycles lasting 5 ms, in which 3 ms is dedicated to the static segment and 2 ms to the dynamic one, the symbol window and network idle time; • Duration of a macrotick (gdMacrotick) of 2 μs;
Stage 3: Scheduling of the messages in the dynamic segment Taking as reference the message of information relative to its deadline, size and minimum rate of generation, along with information related to the protocol FlexRay, such as duration of the communication cycle, the duration of the dynamic segment and the number of minislots available for use, the software can schedule all messages, meeting their timing constraints and using the lowest possible number of minislots. Results show the initial information of the scheduled message, as well as its ID and maximum waiting time in the transmission queue. The number of successfully scheduled messages will also be informed. Additionally, the software must enable manually increasing the number of minislots and expand the dynamic segment according to the selected option, namely, by increasing the duration of the communication cycle or reducing the length of the static segment. Based on the size of the largest message to be scheduled and the number of minislots in the dynamic segment, the Nlatest variable is calculated using Eq. (1). Being selected as expanding the dynamic segment, the increase in the number of minislots can be calculated in a different way: a) If it is decided to keep the size of the communication cycle and expand the dynamic segment by reducing the static segment time, a new value must be calculated for the duration of the Static Segment, to be given by Eq. (10).
T ss(new) = T ss − N add · T MS
7.1. Tests on the static segment For tests related to the static segment, the following parameters were considered: 93 available slots on the static segment; and fixed size of slots in the static segment, with frames of 16 bytes. The tests were performed to verify the temporal characteristics of the static segment of the FlexRay protocol using the optimization process described in the item IV-A (Stage 1). A dataset of messages was built with different periods, chosen randomly. In the following, five tests (Test #1∼#5) were performed for the static segment.
• Test #1 was carried to observe the values of A i and jitter when •
•
(10)
where T ss(new) is the new Static Segment duration, T ss is its former duration, and N add is the number of minislots added to the Static Segment. b) If it is decided to expand the dynamic segment by increasing the communication cycle time, a new value for the duration of the communication cycle time must be calculated according to Eq. (11):
T c (ne w ) = T c + N add · T MS
For all instances, the value P acking T ime was not considered.
(11)
where T c (ne w ) is the new duration of the communication cycle, and T c is its former duration.
• •
scheduling the messages to be transmitted in slot 1 and base cycle 0 with the maximum possible repetition rate. Test #2 was carried to verify the relationship of the choice of transmission base cycle with the message time characteristics. Therefore, this test verified the values of A i and jitter for messages, scheduling them in the highest possible base cycle. Slot 1 was chosen for transmission. Test #3 was carried to verify the relationship between the selected slot for transmission and the variables A i and the jitter for each message. Therefore, the value of the base cycle was kept equal to 0, and only the slot for the transmission of the messages was varied. Test #4 did not consider any constraint related to jitter. Test #5 considered the dataset of messages was scheduled, with a restriction of 0.1 as the jitter for all messages.
The techniques used for scheduling messages in the static segment were applied in tests 4 and 5, for a dataset of 31 messages distributed in 6 nodes of a FlexRay network, with periods up to 500 ms and deadline values randomly selected, which may or may not be equal to the period of the messages. Table 1 shows the results of tests #1, #2 and #3. They evaluated the parameters A i and jitter having as input data: period, deadline and offset of the generated message.
12
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
Table 1 Timing properties of the static segment. Messages
Test 1
Test 2
Test 3
Period (ms)
Deadline (ms)
Offset (ms)
Aimax (ms)
Jitter
Aimax (ms)
Jitter
Aimax (ms)
Jitter
5 7 10 13 15 19 21 25 30 40 50 83 97 110 123 135 221 240 379 417 501
5 7 10 13 15 19 21 25 30 40 50 83 97 110 123 135 221 240 379 417 501
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0.064516 4.06452 0.064516 9.06452 5.06452 9.06452 19.0645 15.0645 10.0645 0.064516 30.0645 79.0645 79.0645 70.0645 79.0645 75.0645 159.065 80.0645 319.065 319.065 319.065
0 0.3428 0 0.323 0.3333 0.0947 0.0904 0.3 0.333 0 0.3 0.06957 0.276 0.3409 0.3233 0.25463 0.3416 0.3333 0.2539 0.3242 0.3139
0.0645 4.06452 5.0645 9.06452 5.06452 9.06452 19.0645 15.0645 15.0645 35.0645 35.0645 79.0645 79.0645 75.0645 79.0645 75.0645 159.065 155.065 319.065 319.065 319.065
0 0.3428 0 0.323 0.3333 0.0947 0.0904 0.3 0.333 0 0.3 0.06957 0.276 0.3409 0.3233 0.25463 0.3416 0.3333 0.2539 0.3242 0.3139
3 5 3 10 8 10 20 18 13 3 33 80 80 73 80 78 160 83 320 320 320
0 0.3428 0 0.323 0.3333 0.0947 0.0904 0.3 0.333 0 0.3 0.06957 0.276 0.3409 0.3233 0.25463 0.3416 0.3333 0.2539 0.3242 0.3139
Table 2 Analyzed messages in tests of scheduling - static segment. Signal
Periods (ms)
Deadline (ms)
Offset (ms)
Nodes
Signal
Periods (ms)
Deadline (ms)
Offset (ms)
Nodes
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
5 6 15 15 30 30 34 34 40 40 80 80 135 135 200 200
5 6 15 5 30 10 34 20 40 20 80 5 135 20 200 100
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...
265 265 310 310 7 320 320 400 400 400 400 479 479 500 500 ...
265 5 310 20 7 320 5 400 15 15 400 479 5 500 35 ...
0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 ...
3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 ...
The results of test #1 show that the messages presenting the best results are those which period coincides with one of the possible transmission rates, that is, one of the powers of two below 64 times the communication cycle duration. Messages with generation periods equal to multiples of the length of the communication cycles (in this case multiples of 5 ms) also presented good results with very low jitter. It was applied in tests #4 and #5 (Table 2), for a dataset of 31 messages distributed into 6 nodes participating in the network, with periods of up to 500 ms and deadline values randomly chosen, and may be equal or not to the period of the messages. Table 2 shows the data messages with the same period and different deadline generation as well as the messages 25 and 26 with offset different from zero. Some messages, having a generation period equal to a power of two times the duration of the communication cycle, were included with smaller deadlines values to verify the necessity of assigning a transmission rate different from the maximum value. Therefore, during these tests, we aimed to verify the uniformity when assigning the available slots, as well as the use of the available bandwidth and how the algorithm prioritized messages. Test #4 did not consider any constraint related to jitter. Therefore, the scheduling process was only based on the period, dead-
line, and offset values of each message to be transmitted. Table 3 shows the results, with the first columns presenting information related to each slot used, with the assigned node, the number of scheduled messages and a variable called space, which represents the empty band of the slot, available for the scheduling of other messages. In the other columns, the table displays information on messages that were scheduled, with their height, the base cycle assigned to start their transmission, the jitter values, and maximum rate of aging, which must be smaller than the desired jitter and the deadline of each message, respectively. As shown in Table 3 (result of test #4), this technique provides good results, since it schedules messages in order to follow their deadlines with only 14 slots. However, node 1 allocated 4 messages in slot 0 and messages number 7 and 11 were allocated on slot 6, although the sum of their heights was less than the threshold 64 (8 + 8 + 4 + 16 + 16 + 4 = 56), allowing, in a first analysis, all messages to be transmitted in the same slot. This occurred due to the base cycle limitation that could be chosen with respect to the message transmission period that complies with their time requirements. This is better seen in Fig. 15, where a) compares the height of slots 0 and 6 showing that slot 0 still had enough space for both messages, but b) shows that base cycles 4 and 5 available
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
13
Table 3 Scheduling results of messages without jitter constraints. Slot
Node
Amount of messages
Space
Signal
Height
Base cycle
Jitter
Ai (ms)
0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 4 4 4 5 5 6 6 7 7 8 9 10 11 12 13 14
1 1 1 1 2 2 2 2 4 4 4 4 3 3 3 5 5 5 0 0 1 1 4 4 0 0 0 0 3 3 5
4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1
28 28 28 28 38 38 38 38 57 57 57 57 44 44 44 54 54 54 16 16 44 44 59 59 0 0 32 0 0 0 0
9 8 10 6 13 15 12 14 25 26 23 21 19 18 16 30 29 27 2 4 7 11 24 22 0 1 5 3 20 17 28
8 8 4 16 16 4 4 2 4 1 1 1 16 2 2 8 1 1 32 16 16 4 4 1 64 64 32 64 64 64 64
3 2 1 0 3 2 1 0 3 2 1 0 2 1 0 2 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0
0 0 0 0.247059 0.055556 0.2 0.25463 0.3 0 0.3 0.3 0 0.032258 0.060484 0.272406 0.04 0.315 0.334016 0.333333 0.333333 0.247059 0 0 0 0 0.266667 0 0 0.342857 0 0.00334
15.03226 10.03226 5.032258 18.03226 15.06452 50.06452 75.06452 120.0645 13.09677 248.0968 245.0968 0.096774 10.12903 155.129 155.129 30.16129 305.1613 319.1613 5.193548 10.19355 19.22581 0.225806 5.258065 0.258065 0.290323 4.322581 0.354839 0.387097 4.419355 0.451613 4.483871
Fig. 15. Slot multiplexing problems for messages 7 and 11.
for starting their transmission would mean missing the deadline at the first transmission. The use of the bandwidth can be observed in Fig. 16, which represents the percentage of use of each slot. Table 4 shows, for each of the messages belonging to node 1, a variation in the value of the maximum delay for transmission for each base cycle. Except for message 11, which could not be scheduled in slot 0 due to its deadline of 5 ms, all other messages could be scheduled in the same slot. However, considering how the classification is carried in the list L during scheduling, message 7 has no priority over the others to be scheduled on a base cycle under three. The same happened with messages from node 4. In
the case of message 22, for example, its classification in the list, L did not allow to use the base cycle that would meet the deadline of 5 ms. In test #5, the dataset of messages shown in Table 4 was again scheduled, with a restriction of 0.1 as the jitter for all messages. The messages that did not meet this limit would not be scheduled. The results are shown in Table 5. In this test, some messages had their transmission rates modified in order to meet the jitter constraint. The results indicate that messages, in which generation period is equal to a power of two multiplied by the communication cycle length, are those least affected by the time constraints. Still, the messages 1 and 20 were not scheduled because they
14
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
Table 4 Variation of Ai value in accordance with the base cycle. Signal
Slot
Number time
Base cycle 0
Base cycle 1
Base cycle 2
Base cycle 3
Base cycle 4
Base cycle 5
Base cycle 6
6 7 8 9 10 11
0 0 0 0 0 0
16 16 8 8 4 XXX
18.032 18.032 XXX XXX XXX XXX
19.032 19.032 5.032 5.032 5.032 XXX
18.032 18.032 10.032 10.032 10.032 XXX
19.032 19.032 15.032 15.032 15.032 XXX
XXX XXX 20.032 XXX 20.032 XXX
XXX XXX 25.032 XXX 25.032 XXX
XXX XXX 30.032 XXX 30.032 XXX
Table 5 Scheduling results of messages with limited jitter at 0.1. Slot
Node
Messages Number
Space
Signal
Amount
Base Cvclc
Jitter
Ai (ms)
1
4
5
46
1
2
4
16
2
1
3
44
3
3
3
38
4
5
3
52
5 6
0 0
1 2
0 0
7 8 9 10 11 12 13 14
0 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 0 60 0 0 0 63 0
26 25 24 23 21 13 12 15 14 9 8 10 19 16 18 30 29 27 0 5 4 2 3 11 6 7 17 22 28
4 4 4 4 2 16 16 8 8 8 8 4 16 8 2 8 2 2 64 32 32 64 64 4 64 64 64 1 64
4 3 2 1 0 3 2 1 0 2 1 0 2 1 0 2 1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0.055556 0.055556 0 0 0 0 0 0.032258 0.070755 0.060484 0.04 0.07 0.004149 0 0 0 0 0 0 0.047059 0.047059 0 0 0.00334
18.032258 13.032258 10.032258 5.03228 160.032258 15.064516 15.064516 5.064516 0.064516 10.096774 5.096774 0.096774 10.129032 35.129032 150.129032 30.16129 145.16129 159.16129 0.193548 5.225806 0.225806 0.258065 0.290323 0.322581 4.354839 4.387097 0.419355 0.451613 4.483871
Fig. 16. Bandwidth percentage use – scheduling without jitter constraints.
Fig. 17. Bandwidth percentage use – scheduling with jitter constraints.
failed to comply with the jitter value, remaining above 0.2. This occurred due to the generation period of these messages. By analyzing Fig. 17, one can notice that the input of jitter constraints did not impact the bandwidth significantly. On the other hand, we conclude that the use of message scheduling software in the static segment provided good results, since the scheduling of messages met their timing constraints, and a reduced number of slots were used. Although two messages were
left out when the value of the jitter was limited, the software was dynamic enough to schedule other messages using the same number of slots of the previous process. 7.2. Dynamic segment For tests related to the dynamic segment, the following parameters were considered: duration of a minislot equal to 5 μs;
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
15
Table 6 Message dataset of analyzed messages on the dynamic segment. Signal
Deadline (ms)
Size (minislot)
Repetition
Signal
Deadline (ms)
Size (minislot)
Repetition
0 1 2 3 4
5
8 5 7 5 8
10
20 21 22 23 24
6
8 6 8 5 7
10
5 6 7 8
10
6 8 5 5
20
25 26 27 28
13
6 8 5 7
15
9 10 11 12 13 14 15 16 17 18 19
15
20
7 8 7 6 6 8 8 7 5 5 7
20
25
duration of the symbol window equal to 100 μs; and duration of the network idle time equal to 800 μs. Table 6 presents, for each message, its deadline values, the number of minislots it occupies during its transmission and its minimum rate of repetition. According to the technique applied, for each empty minislot, the respective ID is assigned to the message with the smallest difference between its deadline and the worst-case delay if scheduled in the analyzed position. Test #6 verified prioritization of messages according to this technique. The results are shown in Table 7 that, in addition to the characteristics of each message that served as the basis for the calculations, displays their assigned ID´s and their maximum waiting time for transmission. The scheduling process, as configured in the software, prioritized messages with lower deadline values. This is evidenced by the way that messages 5 to 14 were scheduled. They have the same generation period and different deadlines. Still, among the messages with the same value of deadline, those with the largest size gained priority. Results also show that all deadlines were met. The total number of minislots used was 123, the length of the communication cycle was maintained at 5 ms, and the length of the static segment remained at 2.97 ms. Tests #7 and #8 were performed with the same dataset of messages, within the IDs assigned by the previous test. In test #7, the length of the static segment was fixed and, as more minislots were added, the size of the communication cycle was increased, as shown in the first two rows of Table 8. This test considered 11 different values of the variable total number of minislots in the dynamic segment, and the results in the table show the messages could be scheduled in each step of the test, along with its value w D max . Results (Table 8) show that as the total number of minislots was increased, more messages could be scheduled. However, as it can be seen in the rightmost columns of the table, the duration of the communication cycle started to affect the attendance of the deadline for most of the messages, and the algorithm was not able to find suitable scheduling for them. In the present case, the scheduled messages in the static segment also experienced changes in their maximum transmission time which compromised the attendance of their timing constraints. In Test #8, the value of the communication cycle was fixed at 4.485 ms, in order to meet the shortest deadline value in the list,
29 30 31 32 33 34 35 36 37 38 39
5 6 6 8 8 7
19
7
20
5 7 7 7 5
15
Table 7 Results of scheduling messages in the dynamic segment. Signal
Deadline (ms)
Size (minislot)
Repetition
ID
WD max
0 4 2 1 3
5
8 8 7 5 5
10
0 1 2 3 4
4.53 4.565 4.595 4.615 4.635
20 22 24 21 23
6
8 8 7 6 5
5 6 7 8 9
4.67 4.705 4.735 4.76 4.78
36 37 38 35 39
7
7 7 7 5 5
15
10 11 12 13 14
4.81 4.84 4.87 4.89 4.91
6 9 5 7 8
10
8 7 6 5 5
20
15 16 17 18 19
4.945 4.975 5 9.515 9.535
26 28 25 27 29
13
8 7 6 5 5
15
20 21 22 23 24
9.57 9.625 9.65 9.67 9.69
10 14 11 12 13
15
8 8 7 6 6
20
25 26 27 28 29
9.725 9.76 9.82 9.845 9.87
32 33 34 30 31 15 16
19
8 8 7 6 6 8 7
30 31 32 33 34 35 36
9.905 9.94 14.81 14.835 14.895 19.685 19.715
19 17 18
20
7 5 5
37 38 39
19.745 19.77 19.79
25
16
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
Table 8 Results from increasing the communication cycle. Mini Slots Numbers
8
20
30
40
50
60
70
100
117
191
195
Cycle Time (ms)
3,94
4
4,05
4,1
4,15
4,2
4,25
4,4
4,485
4,855
4,875
3.985
4.045 4.08
4.095 4.13 4.16 4.18
4.145 4.18 4.21 4.23 4.25 4.285
4.195 4.23 4.26 4.28 4.3 4.335 4.37
4.295 4.33 4.36 4.38 4.4 4.435 4.47 4.5 4.525 4.545
4.445 4.48 4.51 4.53 4.55 4.585 4.62 4.65 4.675 4.695 4.725 4.755 4.785 4.805 4.825 8.465 8.495 8.52 8.54 8.58 8.615 8.645 8.67 8.69 8.71 8.775 13.73 13.76
4.53 4.565 4.595 4.615 4.635 4.67 4.705 4.735 4.76 4.78 4.81 4.84 4.87 4.89 4.91 4.945 4.975 8.52 8.54 8.56 8.595 8.655 8.68 8.7 8.72 8.755 8.79 8.82 8.88 8.905 13.82 13.85 13.91 17.63 17.66 17.72 17.73 17.8 17.85 17.87
4.9 4.935 4.965 4.985
4.92 4.955 4.985
ID 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
W D max
and the size of the static segment was varied. The values of w D max for each message are the same verified when all messages were scheduled in the previous test. Therefore, the resulting values from this test represent the size of the static segment at the time the message was scheduled. Table 9 shows results of Test #8, confirming that this method of expansion of the dynamic segment preserves the timing properties of the messages once scheduled, but reduces the bandwidth dedicated for the transmission of messages in the static segment, reducing its capacity to schedule messages from other nodes added later. However, it showed better results than the previous test to maintain the duration of communication cycles. This way can ensure that messages scheduled in the static segment continue to comply with their time constraints. As it can be observed, the number of minislots needed to schedule ID0 and ID1 is the same. This happens because the duration of the communication cycle allows message ID0 to be transmitted in cycle n, and message ID1 to be transmitted in cycle n + 1 while attending to all deadline restrictions. Test #9, for the dynamic segment, we checked the scheduling of messages with very long periods of generation, amidst other messages with shorter periods. Results are shown in Table 10. Assuming periodic messages as those with a longer generation time and sporadic signals those with shorter generation time, the
4.245 4.28 4.31 4.33 4.35 4.385 4.42 4.45
Table 9 Results from the reduction of the static segment. ID
Static segment time (ms)
MiniSlot number
ID
Static segment time (ms)
MiniSlot number
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
3.545 3.545 3.505 3.47 3.435 3.41 3.385 3.345 3.305 3.27 3.24 3.215 3.18 3.145 3.11 3.085 3.085 3.085 3.085 3.085
8 8 16 23 30 35 40 48 56 63 69 74 81 88 95 100 100 100 100 100
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
3.085 3.085 3.085 3.085 3.085 3.085 3.085 3.085 3.085 3.06 3.06 3.06 3.06 3.06 3.06 3.06 3.045 3.045 3.035 3.015
100 100 100 100 100 100 100 100 100 105 105 105 105 105 105 105 108 108 110 114
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
Table 10 Messages scheduling with a long generation period. Signal
Deadline (ms)
Size (minislot)
Repetition
ID
WD max
5 7 10 6 8 9 4 2 0 3 1
10 10 10 15 20 25 400 500 700 900 1000
8 8 8 8 8 8 8 8 8 8 8
10 10 10 15 20 25 400 500 700 900 100
0 1 2 3 4 5 6 7 8 9 10
4.445 4.48 4.515 4.55 4.585 4.62 4.655 4.69 4.725 4.76 4.795
results evidenced the feasibility of scheduling periodic messages in the dynamic segment since they did not influence the integrity of other messages. 8. Conclusions The FlexRay is a reliable protocol for the next generation of vehicular systems. Several automakers have already launched their new generations of ECUs compatible with this protocol. It is important to note that the FlexRay non-synchronism between the generation of messages to be sent and the protocol of transmission parameters may cause unacceptable results. This problem still needs to be studied to be solved. Through tests performed on the scheduling process of the messages in a FlexRay network, this investigation has shown that the results obtained with the timing relationships between messages to be transmitted in both segments, and set parameters for operation of the protocol are difficult to predict, despite critical for the correct scheduling of all messages. The two heuristics tested the scheduling of all messages not yet scheduled for each slot or minislot available. This ensured that all messages are scheduled in a way that complies with their requirements for the deadline or jitter, using the bandwidth for transmission optimally available. As a proposal of improvement in the heuristic, as observed during the tests with the scheduling of messages in the static segment, it is possible to further optimize the use of slots by a technique that prioritizes messages with shorter deadlines to be scheduled in the first base cycles of a slot. This can be done by changing the way those messages are organized in the list L. Another improvement for the scheduling of messages on the static segment is the effect caused by the use of a tie-breaker if two nodes can transmit the same number of messages in a free slot. The result of the first test of message scheduling showed that node 1, for example, failed to schedule message 11 because its transmission in the analyzed slot would not follow its deadline. A tiebreaker could designate the slot 0 for node 2, and slot 1 for node 1 so that both would not have any restrictions to transmit their messages. Research should now be performed to compare FlexRay with other protocols that are being developed for the next generation of cars, such as Ethernet or CAN FD. Declaration of competing interest The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper. References [1] G. Leen, D. Hefferman, In-vehicle networks, expanding automotive electronic systems, IEEE Trans. Comput. (2002) 88–93.
17
[2] E. Armengaud, A. Steininger, M. Horauer, R. Pallierer, H. Firedl, A monitoring concept for an automotive distributed network – the FlexRay example, in: 7th IEEE International Workshop on Design and Diagnostics of Electronic Circuits and Systems, DDECS 2004, 2004, pp. 1–6. [3] M. Grenier, L. Havet, N. Navet, Configuring the communication on FlexRay – the case of the static segment, in: 4th European Congress on Embedded Real Time Software, ERTS 2008, Toulouse, France, 2008. [4] K. Park, M. Kang, B. Kim, A scheduling algorithm for reducing FlexRay message response time using empty minislots in dynamic segment, in: Proc. Digest of Technical Papers International Conference on Consumer Electronics, 2010, pp. 307–308. [5] G. Han, H. Zeng, Y. Li, et al., Security-aware FlexRay scheduling engine, in: Design Automation and Test in Europe, 2014, pp. 1–4. [6] M. Lukasiewycz, M. Glaß, J. Teich, P. Milbredt, FlexRay schedule optimization of the static segment, in: 7th IEEE/ACM International Conference on Hardware/Software Codesign and System Synthesis, 2009, pp. 363–372. [7] S. Ding, Scheduling approach for static segment using hybrid genetic algorithm in FlexRay systems, in: 10th IEEE International Conference on Computer and Information Technology, 2010, pp. 2355–2360. [8] B. Tanasa, U. Bordoloi, P. Eles, Z. Peng, Reliability-aware frame packing for the static segment of FlexRay, in: Proceedings of the Ninth ACM International Conference on Embedded Software, 2011, pp. 175–184. [9] H. Zeng, M. Di Natale, A. Ghosal, A. Sangiovanni-Vincentelli, Schedule optimization of time-triggered systems communicating over the FlexRay static segment, IEEE Trans. Ind. Inform. 7 (1) (2011) 1–17. [10] M. Lukasiewycz, R. Schneider, D. Goswami, S. Chakraborty, Modular scheduling of distributed heterogeneous time-triggered automotive systems, in: 17th Asia and South Pacific Design Automation Conference, 2012, pp. 665–670. [11] M. Kang, K. Park, M.K. Jeong, Frame packing for minimizing the bandwidth consumption of the FlexRay static segment, IEEE Trans. Ind. Electron. 60 (9) (2013) 4001–4008. [12] A. Darbandi, M.K. Kim, Schedule optimization of static messages with precedence relations in FlexRay, in: Sixth International Conference on Ubiquitous and Future Networks, 2014, pp. 495–500. [13] M. Hu, J. Luo, Y. Wang, M. Lukasiewycz, Z. Zeng, Holistic scheduling of realtime applications in time-triggered in-vehicle networks, IEEE Trans. Ind. Inform. 10 (3) (2014) 1817–1828. [14] H. Zeng, A. Ghosal, M. Di Natale, Timing analysis and optimization of FlexRay dynamic segment, in: 10th IEEE International Conference on Computer and Information Technology, CIT, 2010, pp. 1932–1939. [15] B. Tanasa, U. Bordoloi, S. Kosuch, P. Eles, Z. Peng, Schedulability analysis for the dynamic segment of FlexRay: a generalization to slot multiplexing, in: 18th IEEE Real-Time and Embedded Technology and Applications Symposium, 2012, pp. 185–194. [16] M. Neukirchner, M. Negrean, R. Ernst, T.T. Bone, Response-time analysis of the FlexRay dynamic segment under consideration of slot-multiplexing, in: 7th IEEE International Symposium on Industrial Embedded Systems, 2012, pp. 21–30. [17] Y. Hua, X. Liu, W. He, Design and implementation of holistic scheduling and efficient storage for FlexRay, IEEE Trans. Parallel Distrib. Syst. 25 (10) (Oct. 2014) 2529–2539. [18] M. Hu, J. Luo, Y. Wang, Holistic scheeduling of real-time applications in timetriggered in-vehicle networks, IEEE Trans. Ind. Inform. 10 (3) (Aug. 2014) 1817–1828. [19] L. Rodrigo, F. Vasques, R. Oliveira, A scheme for slot allocation of the FlexRay static segment based on response time analysis, Comput. Commun. 63 (Jun. 2015) 65–76. [20] H. Menglan, J. Luo, Y. Wang, Scheduling periodic task graphs for safety-critical time-triggered avionic systems, IEEE Trans. Aerosp. Electron. Syst. 51 (3) (Jul. 2015) 2294–2304. [21] W. Wang, D. Nesic, R. Postoyan, Emulation-based stabilization of networked control systems implemented on FlexRay, Automatica 59 (Sep. 2015) 73–83. [22] Z. Gu, G. Han, H. Zeng, Security-aware mapping an scheduling with hardware co-processors for FlexRay-based distributed embedded systems, IEEE Trans. Parallel Distrib. Syst. 27 (10) (Oct. 2016) 3044–3057. [23] R. Zhao, G. Qin, J. Liu, Optimal scheduling of the FlexRay static segment based on two-dimensional bin-packing algorithm, Int. J. Automot. Technol. 17 (4) (Aug. 2016) 703–715. [24] J. Dvorak, Z. Hanzalek, Using two independent channels with gateway for FlexRay static segment scheduling, IEEE Trans. Ind. Inform. 12 (5) (Oct. 2016) 1887–1895. [25] F. Sagstetter, M. Lukasiewycz, S. Chakraborty, Generalized asynchronous timetriggered scheduling for FlexRay, IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 36 (2) (Feb. 2017) 214–226. [26] A. Darbandi, S. Yoon, M. Kim, Schedule construction under precedence constraints in FlexRay in-vehicle networks, Int. J. Automot. Technol. 18 (4) (Aug. 2017) 671–683. [27] T. Lee, I. Lin, J. Jun, et al., A reliability scheduling algorithm for the static segment of FlexRay on vehicle networks, Sensors 18 (11) (Nov. 2018) 1–14.
18
R.M. Vaz et al. / Vehicular Communications 24 (2020) 100234
[28] S. Jin, M. Liu, Y. Wu, Research of message scheduling for in-vehicle FlexRay network static segment based on next fit decreasing (NFD) algorithm, Appl. Sci., Basel 8 (11) (Nov. 2018) 1–13. [29] J. Dvorak, Z. Hanzalek, Multi-variant scheduling of critical time-triggered communication in incremental development process: application to FlexRay, IEEE Trans. Veh. Technol. 68 (1) (Jan. 2019) 155–169. [30] FlexRay Communications System Protocol Specification – Version 3.0.1, 2010. [31] T. Pop, et al., Timing analysis of the FlexRay communication protocol, in: Euromicro Conference on Real-Time Systems, IEEE Computer Society, 2006, pp. 203–216. [32] FlexRay Consortium, FlexRay Communications System – Protocol Specification, Version 2.1, Revision A, Dec. 2005.
[33] J. Berwanger, A. Schedl, C. Temple, FlexRay hits the road, EETimes website, available in: http://www.eetimes.com/design/automotive-design/4011111/ FlexRay-hits-the-road, 2006. [34] A. Schedl, Goals and architecture of FlexRay at BMW, in: Vector FlexRay Symposium, Stuttgart, 2007. [35] S. Leef, AUTOSAR and FlexRay: A Tale of Two Standards, available in: http:// www.mentor.com, 2009. [36] Y. Hua, X. Liu, W.B. He, D. Feng, Design and implementation of holistic scheduling and efficient storage for FlexRay, IEEE Trans. Parallel Distrib. Syst. 25 (10) (2014) 2529–2539.