Method and system for transmission of signals with efficient bandwidth utilization
A system and method for transmitting a plurality of signals. The system includes a transmitting terminal configured to obtain and pack the plurality of signals in multiple signal sequences, with each of the plurality of signals having respective predefined periods. A receiving terminal is configured to receive and unpack the multiple signal sequences from the transmitting terminal. A controller is in communication with the transmitting terminal and the receiving terminal and configured to store a look-up table. The look-up table includes a respective pre-identifier and respective identifier for each of the plurality of signals. The controller is configured to determine if the respective predefined periods vary in magnitude within a frame. If so, the controller is configured to obtain the respective pre-identifiers and respective identifiers for each of the plurality of signals. The multiple signal sequences are based at least partially on the respective pre-identifiers and the respective identifiers.
Latest General Motors Patents:
The present disclosure relates generally to a method and system for transmission of signals with efficient bandwidth utilization. Due to the ever increasing complexity of devices (including but not limited to vehicles), a variety of network layer protocols, physical interfaces, digital hierarchies and transmission mediums are employed to facilitate communication between various sub-systems of the respective devices. However, the increase in the number of signals being communicated between various sub-systems of the respective devices results in an increased load and bandwidth requirement.
SUMMARYDisclosed herein is a system and method for transmitting a plurality of signals. The system includes a transmitting terminal configured to obtain and pack the plurality of signals in multiple signal sequences, with each of the plurality of signals having respective predefined periods. A receiving terminal is configured to receive and unpack the multiple signal sequences from the transmitting terminal. The multiple signal sequences are configured to be packed in a frame and transported from the transmitting terminal to the receiving terminal via a network connection. A controller is in communication with the transmitting terminal and the receiving terminal and configured to store a look-up table. The look-up table includes a respective pre-identifier and respective identifier for each of the plurality of signals.
The controller includes a processor and tangible, non-transitory memory on which is recorded instructions. Execution of the instructions by the processor causing the controller to determine if the respective predefined periods vary in magnitude within the frame. If the respective predefined periods vary in magnitude within the frame, then the controller is configured to (and the method includes) obtain the respective pre-identifiers for each of the plurality of signals. The multiple signal sequences are based at least partially on the respective pre-identifiers and the respective identifiers. A secondary receiving terminal may be configured to receive and unpack the multiple signal sequences from the transmitting terminal at a same time as the receiving terminal.
The transmitting terminal may include a first communication layer and a first driver layer. The first driver layer may be configured to operate an interface between the network connection and the transmitting terminal. The controller may be configured to pack the plurality of signals in the multiple signal sequences into a first plurality of interaction layer protocol data units in the first communication layer. The controller may be configured to package the first plurality of interaction layer protocol data units in the frame using a frame identifier in the first driver layer. The receiving terminal may include a second communication layer and a second driver layer. The second driver layer may be configured to operate an interface between the network connection and the receiving terminal. The controller may be configured to extract the frame into a second plurality of interaction layer protocol data units based in part on the look-up table. The controller may be configured to unpack the multiple signal sequences from the second plurality of interaction layer protocol data units in the second driver layer into the plurality of signals.
Prior to determining if the respective predefined periods vary in magnitude within a frame, the controller may be configured to sort and initialize the plurality of signals. If the respective predefined period is a constant, then the controller is configured to determine a respective bandwidth utilization factor for a plurality of potential frames. The plurality of signals may be added to one of the plurality of potential frames that has the minimum value of the respective bandwidth utilization factor.
Each of the multiple signal sequences has a respective payload portions and respective header portions. If the respective predefined period varies in magnitude, then the controller is configured to add a respective reset bit to the respective payload portions of the multiple signal sequences. The reset bit is configured to have a first value when a transmission of the frame has been reset and second value when the transmission of the frame has not been reset. The controller is configured to set the reset bit with at least one of a first value and a second value upon occurrence of a transmission error. The reset bit is set with the first value when a transmission of the frame has been reset and with the second value when the transmission of the frame has not been reset.
If the respective predefined periods vary in magnitude, then the controller may be configured to determine if the frame is new or existing. If the frame is new, a respective entry is created with a respective identifier and the respective pre-identifier. The controller is configured to populate the respective entry in the look-up table. If the frame is existing (i.e., there is already an entry in the look-up table with the respective identifier), the controller may be configured to locate the respective entry in the look-up table having an identical value as the respective identifier and determine if the respective pre-identifier is new or existing. If the respective pre-identifier is existing, the controller is configured to populate the respective entry in the look-up table. If the respective pre-identifier is new, then respective entry is created with a respective pre-identifier and the controller is configured to populate the respective entry in the look-up table.
The method includes creating a look-up table in the controller, the look-up table including a respective pre-identifier and a respective identifier for each of the plurality of signals. The method includes obtaining and packing the plurality of signals in multiple signal sequences, via the transmitting terminal, with each of the plurality of signals having respective predefined periods. The method includes packing the multiple signal sequences into a frame and transporting from the transmitting terminal to the receiving terminal through a network connection, via the controller. The method includes receiving and unpacking the multiple signal sequences in the frame, via the receiving terminal.
The method includes packing the plurality of signals in the multiple signal sequences into a first plurality of interaction layer protocol data units in the first communication layer and packaging the first plurality of interaction layer protocol data units in the frame using a frame identifier in the first driver layer. The method includes extracting the frame into a second plurality of interaction layer protocol data units based in part on the look-up table and unpacking the multiple signal sequences from the second plurality of interaction layer protocol data units in the second driver layer into the plurality of signals.
The above features and advantages and other features and advantages of the present disclosure are readily apparent from the following detailed description of the best modes for carrying out the disclosure when taken in connection with the accompanying drawings.
Referring to the drawings, wherein like reference numbers refer to like components,
Referring to
Referring to
Referring to
The controller C is configured to store a look-up table (labeled as “T” in
Referring to
Referring to
Referring to
Referring now to
Referring to
The respective bandwidth utilization factor (“BWU” in
32*ta+[28+(5(p−16)/64)+10p)]*td
Here p is the payload size in bytes, ta is the duration of transmission for each bit on an arbitration phase and td is the duration of transmission for each bit in a data phase. It is to be appreciated that the formula of the bandwidth utilization factor may be varied. In block 110 of
If the respective predefined period varies in magnitude within the frame, the method 100 proceeds to block 112, where the controller C is configured to obtain or assign respective pre-identifiers for each of the plurality of signals 18. The respective pre-identifiers may be assigned based on periodicity or frequency. The respective sequence of the plurality of signals 18 is based at least partially on the respective pre-identifiers.
Each of the plurality of signals 18 has respective payload portions and respective header portions. If the respective predefined period varies in magnitude, per block 114 of
The method 100 proceeds to block 116, where the controller C is configured to determine if the frame is new or existing. If the frame is new, per block 118, a respective entry is created with a respective identifier and the respective pre-identifier. Per block 120 of
If the frame is existing (i.e., there is already an entry in the look-up table T with the respective identifier), the method 100 proceeds from block 116 to block 122, where the controller C is configured to locate the respective entry in the look-up table T having an identical value as the respective identifier. With respect to the example Table shown above, the controller C is configured to search if the identifier “100” already exists as an entry in the look-up table.
From block 122, the method 100 proceeds to block 124 where the controller C is configured to determine if the respective pre-identifier is new or existing. If the respective pre-identifier is existing, the method 100 proceeds from block 124 to block 120, where controller C is configured to populate the respective entry in the look-up table T. As indicated by line 121 in
If the respective pre-identifier is new, the method 100 proceeds from block 124 to block 126, where a respective entry is created with the respective pre-identifier. Per block 120, the controller C is configured to populate the respective entry in the look-up table. As indicated by line 121 in
In summary, the system 10 is configured to employ the same frame (such as frame 62, with identifier F100 in
The controller C includes a computer-readable medium (also referred to as a processor-readable medium), including a non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media and volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (DRAM), which may constitute a main memory. Such instructions may be transmitted by one or more transmission media, including coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to a processor of a computer. Some forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, other magnetic media, a CD-ROM, DVD, other optical media, punch cards, paper tape, other physical media with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, other memory chips or cartridges, or other media from which a computer can read.
Look-up tables, databases, data repositories or other data stores described herein may include various kinds of mechanisms for storing, accessing, and retrieving various kinds of data, including a hierarchical database, a set of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), etc. Each such data store may be included within a computing device employing a computer operating system such as one of those mentioned above, and may be accessed via a network in one or more of a variety of manners. A file system may be accessible from a computer operating system, and may include files stored in various formats. An RDBMS may employ the Structured Query Language (SQL) in addition to a language for creating, storing, editing, and executing stored procedures, such as the PL/SQL language mentioned above.
The detailed description and the drawings or FIGS. are supportive and descriptive of the disclosure, but the scope of the disclosure is defined solely by the claims. While some of the best modes and other embodiments for carrying out the claimed disclosure have been described in detail, various alternative designs and embodiments exist for practicing the disclosure defined in the appended claims. Furthermore, the embodiments shown in the drawings or the characteristics of various embodiments mentioned in the present description are not necessarily to be understood as embodiments independent of each other. Rather, it is possible that each of the characteristics described in one of the examples of an embodiment can be combined with one or a plurality of other desired characteristics from other embodiments, resulting in other embodiments not described in words or by reference to the drawings. Accordingly, such other embodiments fall within the framework of the scope of the appended claims.
Claims
1. A system for transmission of a plurality of signals, the system comprising:
- a transmitting terminal configured to obtain and pack the plurality of signals in multiple signal sequences, each of the plurality of signals having respective predefined periods;
- a receiving terminal configured to receive and unpack the multiple signal sequences from the transmitting terminal;
- wherein the multiple signal sequences are configured to be packed in a frame and transported from the transmitting terminal to the receiving terminal via a network connection;
- wherein the transmitting terminal includes a first communication layer and a first driver layer, the first driver layer being configured to operate an interface between the network connection and the transmitting terminal;
- a controller in communication with the transmitting terminal and the receiving terminal and configured to store a look-up table having respective identifiers and respective pre-identifiers for each of the plurality of signals;
- wherein the controller includes a processor and tangible, non-transitory memory on which instructions are recorded, execution of the instructions by the processor causing the controller to: pack the plurality of signals in the multiple signal sequences into a first plurality of interaction layer protocol data units in the first communication layer; package the first plurality of interaction layer protocol data units in the frame using a frame identifier in the first driver layer; determine if the respective predefined periods vary in magnitude within the frame; if the respective predefined periods vary in magnitude within the frame, then obtain the respective pre-identifiers and the respective identifiers for each of the plurality of signals; and
- wherein the multiple signal sequences are based at least partially on the respective pre-identifiers and the respective identifiers in the look-up table.
2. The system of claim 1, wherein:
- the receiving terminal includes a second communication layer and a second driver layer;
- the controller is configured to extract the frame into a second plurality of interaction layer protocol data units based in part on the look-up table; and
- the controller is configured to unpack the multiple signal sequences from the second plurality of interaction layer protocol data units in the second Driver layer into the plurality of signals.
3. The system of claim 2, wherein:
- the controller includes a counter unit configured to track respective occurrences of a plurality of instances of the frame; and
- prior to determining if the respective predefined periods vary in magnitude within the frame, the controller is configured to sort and initialize the plurality of signals.
4. The system of claim 1, wherein:
- if the respective predefined periods are a constant, the controller is configured to:
- determine a respective bandwidth utilization factor for a plurality of potential frames; and
- add the plurality of signals to one of the plurality of potential frames having a minimum value of the respective bandwidth utilization factor.
5. The system of claim 1, wherein:
- the multiple signal sequences include a respective payload portion and a respective header portion;
- if the respective predefined periods vary in magnitude, then the controller is configured to add at least one reset bit to the respective payload portion of the multiple signal sequences;
- wherein the controller is configured to set the at least one reset bit with at least one of a first value and a second value upon occurrence of a transmission error, the at least one reset bit being set with the first value when a transmission of the frame has been reset and the at least one reset bit being set with the second value when the transmission of the frame has not been reset.
6. The system of claim 1, wherein the controller is configured to:
- if the respective predefined periods vary in magnitude, then determine if the frame is new or existing; and
- if the frame is new, then create a respective entry with the respective identifier and the respective pre-identifier and populate the respective entry in the look-up table.
7. The system of claim 6, wherein the controller is configured to:
- if the frame is existing, then locate the respective entry in the look-up table having an identical value as the respective identifier and determine if the respective pre-identifier is new or existing;
- if the respective pre-identifier is existing, then populate the respective entry in the look-up table; and
- if the respective pre-identifier is new, then create the respective entry with a respective pre-identifier and populate the respective entry in the look-up table.
8. The system of claim 1, further comprising:
- a secondary receiving terminal configured to receive and unpack the multiple signal sequences from the transmitting terminal at a same time as the receiving terminal.
9. A method for transmission of a plurality of signals in a device having a transmitting terminal, a receiving terminal and a controller having a processor and tangible, non-transitory memory on which instructions are recorded, the method comprising:
- creating a look-up table in the controller, the look-up table including a respective pre-identifier and a respective identifier for each of the plurality of signals;
- obtaining and packing the plurality of signals in multiple signal sequences, via the transmitting terminal, each of the plurality of signals having respective predefined periods;
- packing the multiple signal sequences into a frame and transporting from the transmitting terminal to the receiving terminal through a network connection, via the controller;
- receiving and unpacking the multiple signal sequences in the frame, via the receiving terminal;
- determining if the respective predefined periods vary in magnitude within a frame, via the controller;
- providing a first communication layer and a first driver layer in the transmitting terminal;
- packing the plurality of signals in the multiple signal sequences into a first plurality of interaction layer protocol data units in the first communication layer;
- packaging the first plurality of interaction layer protocol data units in the frame using a frame identifier in the first driver layer;
- if the respective predefined periods vary in magnitude within the frame, then obtaining the respective pre-identifiers for each of the plurality of signals, via the controller; and
- wherein the multiple signal sequences are based at least partially on the respective pre-identifiers and the respective identifiers in the look-up table.
10. The method of claim 9, further comprising:
- providing a second communication layer and a second driver layer in the receiving terminal;
- extracting the frame into a second plurality of interaction layer protocol data units based in part on the look-up table; and
- unpacking the multiple signal sequences from the second plurality of interaction layer protocol data units in the second driver layer into the plurality of signals.
11. The method of claim 10, further comprising:
- prior to determining if the respective predefined periods vary in magnitude within the frame, sorting and initializing the plurality of signals, via the controller.
12. The method of claim 10, further comprising:
- if the respective predefined periods are a constant, then determining a respective bandwidth utilization factor for a plurality of potential frames, via the controller; and
- adding the plurality of signals to one of the plurality of potential frames having a minimum value of the respective bandwidth utilization factor, via the controller.
13. The method of claim 10, wherein each of the plurality of signals has respective payload portions and respective header portions, and further comprising:
- if the respective predefined periods vary in magnitude, then adding at least one reset bit to the respective payload portions; and
- setting the at least one reset bit with at least one of a first value and a second value upon occurrence of a transmission error, via the controller, the at least one reset bit being set with the first value when a transmission of the frame has been reset and the at least one reset bit being set with the second value when the transmission of the frame has not been reset.
14. The method of claim 10, further comprising:
- if the respective predefined periods vary in magnitude, then determining if the frame is new or existing; and
- if the frame is new, then creating a respective entry with the respective identifier and the respective pre-identifier and populating the respective entry in the look-up table.
15. The method of claim 14, further comprising:
- if the frame is existing, then locating the respective entry in the look-up table having an identical value of the respective identifier and determining if the respective pre-identifier is new or existing;
- if the respective pre-identifier is existing, then populating the respective entry in the look-up table; and
- if the respective pre-identifier is new, then creating the respective entry with a respective pre-identifier and populate the respective entry in the look-up table.
16. A system for transmission of a plurality of signals, the system comprising:
- a transmitting terminal configured to obtain and pack the plurality of signals in multiple signal sequences, each of the plurality of signals having respective predefined periods;
- a receiving terminal configured to receive and unpack the multiple signal sequences from the transmitting terminal;
- wherein the multiple signal sequences are configured to be packed in a frame and transported from the transmitting terminal to the receiving terminal via a network connection;
- a secondary receiving terminal configured to receive and unpack the multiple signal sequences from the transmitting terminal at a same time as the receiving terminal;
- a controller in communication with the transmitting terminal and the receiving terminal and configured to store a look-up table having respective identifiers and respective pre-identifiers for each of the plurality of signals;
- wherein the controller includes a processor and tangible, non-transitory memory on which instructions are recorded, execution of the instructions by the processor causing the controller to: determine if the respective predefined periods vary in magnitude within the frame; if the respective predefined periods vary in magnitude within the frame, then obtain the respective pre-identifiers and the respective identifiers for each of the plurality of signals; and
- wherein the multiple signal sequences are based at least partially on the respective pre-identifiers and the respective identifiers in the look-up table.
17. The system of claim 16, wherein:
- if the respective predefined periods are a constant, the controller is configured to:
- determine a respective bandwidth utilization factor for a plurality of potential frames; and
- add the plurality of signals to one of the plurality of potential frames having a minimum value of the respective bandwidth utilization factor.
18. The system of claim 16, wherein:
- the multiple signal sequences include a respective payload portion and a respective header portion;
- if the respective predefined periods vary in magnitude, then the controller is configured to add at least one reset bit to the respective payload portion of the multiple signal sequences;
- wherein the controller is configured to set the at least one reset bit with at least one of a first value and a second value upon occurrence of a transmission error, the at least one reset bit being set with the first value when a transmission of the frame has been reset and the at least one reset bit being set with the second value when the transmission of the frame has not been reset.
19. The system of claim 16, wherein the controller is configured to:
- if the respective predefined periods vary in magnitude, then determine if the frame is new or existing; and
- if the frame is new, then create a respective entry with the respective identifier and the respective pre-identifier and populate the respective entry in the look-up table.
20. The system of claim 19, wherein the controller is configured to:
- if the frame is existing, then locate the respective entry in the look-up table having an identical value as the respective identifier and determine if the respective pre-identifier is new or existing;
- if the respective pre-identifier is existing, then populate the respective entry in the look-up table; and
- if the respective pre-identifier is new, then create the respective entry with a respective pre-identifier and populate the respective entry in the look-up table.
5809460 | September 15, 1998 | Hayata |
9369772 | June 14, 2016 | Fei |
20140133350 | May 15, 2014 | Triess |
20170264718 | September 14, 2017 | Hamed |
- Prachi Joshi, S. S. Ravi, Shoheil Samil, Unmesh D. Bordoloi, Sandeep K. Shukla, and Haibo Zeng; “Offset Assignment to Signals for improving Frame Packing in CAN-FD”, presented at (Year: 2017).
- Prachi Joshi, S. S. Ravi, Soheil Samii, Unmesh D. Bordoloi, Sandeep K Shukla, and Haibo Zeng; “Offset Assignment to Signals for Improving Frame Packing in CAN-FD”, presented at RTSS, Dec. 7, 2017.
Type: Grant
Filed: Jan 24, 2018
Date of Patent: Dec 31, 2019
Patent Publication Number: 20190229866
Assignee: GM Global Technology Operations LLC (Detroit, MI)
Inventors: Prathap Venugopal (Troy, MI), Unmesh Dutta Bordoloi (Troy, MI), Soheil Samii (Royal Oak, MI), Prachi Joshi (Blacksburg, VA)
Primary Examiner: Chuong T Ho
Application Number: 15/878,597
International Classification: G06F 11/00 (20060101); H04L 5/00 (20060101);