IP Library Granted Patent US 12,580,990
Granted Patent B2
US 12,580,990 · App. 18/603,984 · Granted Mar 17, 2026

Connectivity framework having unified stack and messaging protocol for embedded secure connectivity

Inventor: Paolo Trere (Santa Clara, CA)
Assignee: Microchip Technology Incorporated
H04L67/141H04L5/0044H04L45/745H04L63/061H04L63/0869H04L67/12H04L69/08H04L69/18H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,580,990
App. No.
18/603,984
Granted
Mar 17, 2026
Kind
B2
Abstract

An apparatus comprises a computing device including one or more processors, multiple peripheral communication devices of different communication protocol types operably connected to the one or more processors, and a memory to store processor-executable instructions comprising an application layer protocol stack. The processor-executable instructions are such that, when executed by the one or more processors, cause the one or more processors to perform operations for respective ones of messages to be communicated to and from the computing device via respective ones of the multiple peripheral communication devices. The operations comprise communicating the respective ones of messages via the respective ones of the multiple peripheral communication devices according to a unified messaging protocol that is common to the multiple peripheral communication devices.

Claims (45)

1 . A non-transitory processor-readable medium to store processor-executable instructions that, when executed by one or more processors of a computing device including multiple peripheral communication devices of different communication protocol types, cause the one or more processors to perform operations, the operations comprising:

receiving and processing function calls to at least some functions of a set of functions of the processor-executable instructions, the set of functions associated with a set of application programming interfaces (APIs) exposed to an application of the computing device that invokes the function calls; and

at least partially responsive to receiving a function call to a function to send a message to a destination device, the function call indicating input parameters to identify data to send, a destination identifier of the destination device, and an interface identifier of one of the multiple peripheral communication devices through which to transmit the message:

preparing a message having a message format according to a predetermined messaging protocol, the message including the data;

storing the message in a message queue;

writing one or more data portions of the message from the message queue to the peripheral communication device associated with the interface identifier, until the message is transmitted via the peripheral communication device; and

repeating the preparing, the storing, and the writing for respective ones of one or more additional function calls to send messages through respective other ones of the multiple peripheral communication devices.

2 . The non-transitory processor-readable medium of claim 1 , wherein the processor-executable instructions comprise an application layer protocol stack adapted to execute the set of functions associated with the set of APIs exposed to the application.

3 . The non-transitory processor-readable medium of claim 2 , wherein the predetermined messaging protocol comprises a unified messaging protocol which is common to messages transmitted via the multiple peripheral communication devices.

4 . The non-transitory processor-readable medium of claim 3 , wherein the message queue comprises a common message queue to store the messages transmitted via the multiple peripheral communication devices.

5 . The non-transitory processor-readable medium of claim 4 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations with respect to the multiple peripheral communication devices comprising one or more embedded peripheral communication devices and one or more non-embedded peripheral communication devices.

6 . The non-transitory processor-readable medium of claim 4 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations with respect to the multiple peripheral communication devices comprising two or more of a Universal Asynchronous Receiver-Transmitter (UART) interface, an Inter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface (SPI) interface, a Controller Area Network (CAN) interface, a T i S interface, a Bluetooth or Bluetooth Low Energy (BLE) interface, and an IEEE 802.15.4 or low-rate wireless personal area network (LR-WPAN) interface, and one or more of a Wi-Fi interface, an Ethernet interface, and a Universal Serial Bus (USB) interface.

7 . The non-transitory processor-readable medium of claim 1 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations comprising: prior to sending the message, encrypting the data of the message based on one or more session keys.

8 . The non-transitory processor-readable medium of claim 1 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations comprising: at least partially responsive to receiving a function call to a function to write a data portion of the message to a peripheral communication device, the function call indicating input parameters to identify the data portion and a location of an input buffer of the peripheral communication device to write the data portion: writing the data portion of the message from the message queue to the location of the input buffer of the peripheral communication device.

9 . The non-transitory processor-readable medium of claim 8 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations comprising: at least partially responsive to respective ones of additional function calls to write the data portion of the message to the peripheral communication device: repeating the writing for respective ones of next data portions of the message from the message queue to the input buffer of the peripheral communication device at the location.

10 . The non-transitory processor-readable medium of claim 1 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations comprising: at least partially responsive to receiving a function call to a function to read a data portion from a peripheral communication device, the function call indicating input parameters to identify a location of an output buffer of the peripheral communication device from which to read the data portion: reading the data portion from the output buffer of the peripheral communication device at the location and storing the data portion.

11 . The non-transitory processor-readable medium of claim 10 , wherein the data portion comprises a header of a message having the message format according to the predetermined messaging protocol, and the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations comprising: reserving a portion of the message queue according to a payload length indicated in the header; and at least partially responsive to respective ones of additional function calls to read the data portion from the peripheral communication device: repeating the reading of respective ones of next data portions from the output buffer of the peripheral communication device at the location for storing in the message queue until the message comprising the data portion and next data portions is received in the message queue.

12 . The non-transitory processor-readable medium of claim 11 , wherein the message has a payload including data, and wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations comprising: processing the message according to a type indicated in the header; storing, in a memory cache of the computing device, the data of the message; and providing an indication to the application of receipt of the data stored in the memory cache.

13 . An apparatus comprising:

a computing device comprising one or more processors, multiple peripheral communication devices of different communication protocol types operably connected to the one or more processors, and a memory to store processor-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising:

receiving and processing function calls to at least some functions of a set of functions of the processor-executable instructions, the set of functions associated with a set of application programming interfaces (APIs) exposed to an application of the computing device that invokes the function calls; and

at least partially responsive to receiving a function call to a function to send a message to a destination device, the function call indicating input parameters to identify data to send, a destination identifier of the destination device, and an interface identifier of one of the multiple peripheral communication devices through which to transmit the message:

preparing a message having a message format according to a predetermined messaging protocol, the message including the data;

storing the message in a message queue;

writing one or more data portions of the message from the message queue to the peripheral communication device associated with the interface identifier, until the message is transmitted via the peripheral communication device; and

repeating the preparing, the storing, and the writing for respective ones of one or more additional function calls to send messages through respective other ones of the multiple peripheral communication devices.

14 . The apparatus of claim 13 , wherein the processor-executable instructions comprise an application layer protocol stack adapted to execute the set of functions associated with the set of APIs exposed to the application.

15 . The apparatus of claim 14 , wherein the message format according to the predetermined messaging protocol is common to messages transmitted via the multiple peripheral communication devices.

16 . The apparatus of claim 15 , wherein the message queue comprises a common message queue to store the messages transmitted via the multiple peripheral communication devices.

17 . The apparatus of claim 16 , wherein the multiple peripheral communication devices comprise one or more embedded peripheral communication devices and one or more non-embedded peripheral communication devices.

18 . The apparatus of claim 16 , wherein the multiple peripheral communication devices comprise two or more of a Universal Asynchronous Receiver-Transmitter (UART) interface, an Inter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface (SPI) interface, a Controller Area Network (CAN) interface, a T1S interface, a Bluetooth or Bluetooth Low Energy (BLE) interface, and an IEEE 802.15.4 or low-rate wireless personal area network (LR-WPAN) interface, and one or more of a Wi-Fi interface, an Ethernet interface, and a Universal Serial Bus (USB) interface.

19 . A computing device comprising:

one or more processors;

multiple peripheral communication devices of different communication protocol types operably connected to the one or more processors;

a memory to store processor-executable instructions comprising an application layer protocol stack;

the processor-executable instructions of the application layer protocol stack adapted such that, when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising:

receiving a function call to a function to send a message to a destination device from an application of the computing device, the function provided in a set of application programming interfaces (APIs) exposed to the application, the function call indicating one or more input parameters to identify data to send and a destination identifier of the destination device; and

in response to receiving the function call to the function to send the message:

preparing a message having a message format according to a unified messaging protocol, the message including the data;

storing the message in a message queue;

sending the message including the data from the message queue to the destination device associated with the destination identifier via one of the multiple peripheral communication devices; and

repeating the preparing, the storing, and the sending for respective ones of one or more additional function calls to send messages through respective other ones of the multiple peripheral communication devices,

wherein the unified messaging protocol is common to the messages sent via the multiple peripheral communication devices; and

wherein the message queue is a common message queue to store the messages sent via the multiple peripheral communication devices.

20 . The computing device of claim 19 , wherein the processor-executable instructions are to cause the one or more processors to perform the operations with respect to the multiple peripheral communication devices comprising two or more of a Universal Asynchronous Receiver-Transmitter (UART) interface, an Inter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface (SPI) interface, a Controller Area Network (CAN) interface, a T1S interface, a Bluetooth or Bluetooth Low Energy (BLE) interface, and an IEEE 802.15.4 or low-rate wireless personal area network (LR-WPAN) interface, and one or more of a Wi-Fi interface, an Ethernet interface, and a Universal Serial Bus (USB) interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2025
From: TRERE, PAOLO
To: MICROCHIP TECHNOLOGY INCORPORATED
Reel/Frame 071838/0687 →
Continuity (2)
Provisional Application 63489828 · Mar 13, 2023
Related Publication 20240314223A1 · Sep 19, 2024
References Cited (87)
US 4677611A · Yanosy et al. · 1987 [cited by applicant]
US 6279041B1 · Baber et al. · 2001 [cited by applicant]
US 6757825B1 · Mackenzie et al. · 2004 [cited by applicant]
US 8918631B1 · Kumar et al. · 2014 [cited by applicant]
US 9031064B2 · Ranganathan et al. · 2015 [cited by applicant]
US 9258117B1 · Roth et al. · 2016 [cited by applicant]
US 9294983B2 · Kidron et al. · 2016 [cited by applicant]
US 9794249B1 · Truskovsky et al. · 2017 [cited by applicant]
US 10243741B2 · Cohen et al. · 2019 [cited by applicant]
US 10819556B1 · Rangasamy et al. · 2020 [cited by applicant]
US 10878323B2 · Trivelpiece · 2020 [cited by applicant]
US 10887310B2 · Bernsen · 2021 [cited by applicant]
US 11146665B2 · Masputra et al. · 2021 [cited by applicant]
US 11277369B1 · Motamedi et al. · 2022 [cited by applicant]
US 11902239B2 · Andolina · 2024 [cited by applicant]
US 20030101283A1 · Lewis et al. · 2003 [cited by applicant]
US 20050188193A1 · Kuehnel et al. · 2005 [cited by applicant]
US 20050216736A1 · Smith · 2005 [cited by applicant]
US 20050262205A1 · Nikolov et al. · 2005 [cited by applicant]
US 20060026317A1 · Niikura · 2006 [cited by applicant]
US 20060104308A1 · Pinkerton · 2006 [cited by examiner]
US 20070162751A1 · Braskich et al. · 2007 [cited by applicant]
US 20070283153A1 · Metke et al. · 2007 [cited by applicant]
US 20080092211A1 · Klemets et al. · 2008 [cited by applicant]
US 20090158414A1 · Chaudhry · 2009 [cited by applicant]
US 20090198994A1 · Tan · 2009 [cited by examiner]
US 20090217043A1 · Metke et al. · 2009 [cited by applicant]
US 20090249074A1 · Madhavan et al. · 2009 [cited by applicant]
US 20100281154A1 · Bedi et al. · 2010 [cited by applicant]
US 20110087883A1 · Campagna et al. · 2011 [cited by applicant]
US 20110202755A1 · Orsini et al. · 2011 [cited by applicant]
US 20120018506A1 · Hammad · 2012 [cited by examiner]
US 20120131115A1 · Levell et al. · 2012 [cited by applicant]
US 20140143404A1 · Kennedy et al. · 2014 [cited by applicant]
US 20140173287A1 · Mizunuma · 2014 [cited by applicant]
US 20160373418A1 · Per · 2016 [cited by applicant]
US 20170041262A1 · Guo et al. · 2017 [cited by applicant]
US 20170244792A1 · Yin et al. · 2017 [cited by applicant]
US 20180167476A1 · Hoffner et al. · 2018 [cited by applicant]
US 20180288503A1 · Chayat et al. · 2018 [cited by applicant]
US 20190045034A1 · Alam · 2019 [cited by applicant]
US 20190074977A1 · Fries et al. · 2019 [cited by applicant]
US 20190149449A1 · Morris · 2019 [cited by applicant]
US 20190286598A1 · Chivetta et al. · 2019 [cited by applicant]
US 20190303915A1 · Hammad · 2019 [cited by examiner]
US 20200177461A1 · Zhu et al. · 2020 [cited by applicant]
US 20210167794A1 · Richart et al. · 2021 [cited by applicant]
US 20210184869A1 · Trere · 2021 [cited by applicant]
US 20210209046A1 · Lefebvre et al. · 2021 [cited by applicant]
US 20210389140A1 · Soryal et al. · 2021 [cited by applicant]
US 20220070557A1 · Vallejos et al. · 2022 [cited by applicant]
US 20220116361A1 · Lewin et al. · 2022 [cited by applicant]
US 20220224551A1 · Le Saint · 2022 [cited by applicant]
US 20220345855A1 · May · 2022 [cited by applicant]
US 20220382605A1 · Griffin et al. · 2022 [cited by applicant]
US 20230014876A1 · Shekhar et al. · 2023 [cited by applicant]
US 20230040980A1 · Kamasaka et al. · 2023 [cited by applicant]
US 20230041490A1 · Vangati et al. · 2023 [cited by applicant]
US 20230309163A1 · Mitty et al. · 2023 [cited by applicant]
US 20240089337A1 · Wakabayashi et al. · 2024 [cited by applicant]
US 20240314227A1 · Trere · 2024 [cited by examiner]
US 20240362964A1 · Gomyo et al. · 2024 [cited by applicant]
CN 101516090A · 2009 [cited by applicant]
CN 101523801A · 2009 [cited by applicant]
CN 106452782A · 2017 [cited by applicant]
CN 107396350A · 2017 [cited by applicant]
CN 108366069A · 2018 [cited by applicant]
CN 110190955A · 2019 [cited by applicant]
CN 114978683A · 2022 [cited by applicant]
DE 102014204252A1 · 2015 [cited by applicant]
FR 3030821A1 · 2016 [cited by applicant]
WO 2009103214A1 · 2009 [cited by applicant]
WO 2015132403A1 · 2015 [cited by applicant]
WO 2016102832A1 · 2016 [cited by applicant]
WO 2017045552A1 · 2017 [cited by applicant]
Chinese First Office Action and Search Report for Chinese Patent Application No. 202080086694.9, dated Oct. 27, 2023, 28 pages with English translation. [cited by applicant]
Dolev et al.; “Vehicle authentication via monolithically certified public key and attributes”, Springer, Jul. 2015, pp. 879-892 (Year: 2015). [cited by applicant]
International Search Report of International Application No. PCT/US2024/019476, issued Jun. 21, 2024, 3 pages. [cited by applicant]
International Search Report of International Application No. PCT/US2024/019744, mailed Sep. 30, 2024, 5 pages. [cited by applicant]
International Search Report of International Application No. PCT/US2024/019745, issued Jul. 12, 2024, 3 pages. [cited by applicant]
International Search Report of International Application No. PCT/US2024/019747, mailed Sep. 27, 2024, 5 pages. [cited by applicant]
Invitation to Pay Additional Fees in International Application No. PCT/US2024/019744, mailed Jul. 11, 2024, 10 pages. [cited by applicant]
Invitation to Pay Additional Fees of International Application No. PCT/US2024/019747, mailed Jul. 3, 2024, 9 pages. [cited by applicant]
Written Opinion of the International Searching Authority of International Application No. PCT/US2024/019476, issued Jun. 21, 2024, 7 pages. [cited by applicant]
Written Opinion of the International Searching Authority of International Application No. PCT/US2024/019744, mailed Sep. 30, 2024, 12 pages. [cited by applicant]
Written Opinion of the International Searching Authority of International Application No. PCT/US2024/019745, mailed Jul. 12, 2024, 8 pages. [cited by applicant]
Written Opinion of the International Searching Authority of International Application No. PCT/US2024/019747, mailed Sep. 27, 2024, 11 pages. [cited by applicant]