CAN Queue Manager Priority Inversion and Expiration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Controller Area Networks (CANs) in aircraft face issues such as priority inversion and message expiration due to bus loading and network conditions, leading to delayed transmission and stale data, which existing solutions like FlexCAN's priority-based hardware do not adequately address.
Innovation Solution
Implementing a queue manager module with computer-readable instructions that prioritizes messages based on priority and expiration indicators, manages queue overflow by removing lower-priority messages, and ensures timely transmission and removal of expired messages to prevent priority inversion and stale data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If messages are arbitrated using standard CAN protocol, then all nodes can communicate on the bus, but low priority messages continuously lose arbitration and hold up higher priority messages (Priority Inversion)
Solution Approach 1:
The patent applies preliminary action by checking message priority and queue status before inserting a message into the transmission queue. The queue manager module evaluates whether to insert, refuse, or remove messages based on priority comparisons and queue fullness, preventing priority inversion before it occurs rather than resolving it after
Solution Approach 2:
The patent implements dynamics by making the message insertion behavior adaptive based on current queue conditions. The queue manager dynamically adjusts insertion decisions based on real-time factors including queue fullness, message priorities, and expiration indicators, transitioning between different insertion modes (insert, refuse, remove) as conditions change
2Reliability
If the controller continuously attempts to resend buffered messages, then message delivery is ensured, but messages may expire prior to transmission due to loss of arbitration or network conditions
Solution Approach 1:
The patent applies preliminary action by checking the expiration indicator against current time before allowing message transmission. Messages are pre-screened for expiration status, and expired messages are rejected or removed from the queue before transmission attempts, preventing wasted retransmission cycles on stale data
Solution Approach 2:
The patent implements feedback by continuously monitoring message expiration status and using this information to control transmission behavior. The queue manager receives feedback about current time versus expiration indicators and adjusts message handling accordingly, removing expired messages and preventing their transmission
3Reliability
If a queue manager module implements deterministic arbitration with expiration checks, then high priority messages are transmitted first and expired messages are removed, but the device complexity increases
Solution Approach 1:
The patent applies self-service by implementing the queue manager module within the same controller that handles message transmission. The controller autonomously manages its own message queue, performing priority-based arbitration and expiration checking without requiring external management, thereby containing complexity within a single integrated component
Data Source
AI summary
A controller area network has a plurality of nodes in communication through a bus. The nodes have controllers and computer readable instructions that, when executed, perform the steps of: receiving a new message; inserting the new message into the queue in order of priority if the queue is not full; refusing the new message if the queue is full and the priority of the new message is lower than the priorities of current messages in the queue; inserting the new message into the queue in order of priority if the queue is full and the priority of the new message is higher than a priority of at least one of the current messages; removing the new message from the queue if the current time exceeds an expiration indicator; sending the new message to the controller for transmission and holding the new message in the queue during transmission; and removing the new message from the queue after successful transmission.


