CONNECTIVITY FRAMEWORK HAVING UNIFIED STACK AND MESSAGING PROTOCOL FOR EMBEDDED SECURE CONNECTIVITY
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.
1 . 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 storing processor-executable instructions comprising an application layer protocol stack, the processor-executable instructions adapted such that, when executed by the one or more processors, cause the one or more processors to perform operations for communicating messages to and from the computing device via respective ones of the multiple peripheral communication devices, the operations comprising:
communicating the messages via the respective ones of the multiple peripheral communication devices according to a unified messaging protocol that is common to the messages communicated via the respective ones of the multiple peripheral communication devices.
2 . The apparatus of claim 1 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors of the computing device to perform the operations comprising:
using a common message queue for storing the respective ones of messages communicated to and from the computing device via the respective ones of the multiple peripheral communication devices.
3 . The apparatus of claim 2 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors of the computing device to perform further operations for establishing secure communication sessions with respective destination devices via respective ones of the multiple peripheral communication devices, the further operations comprising:
establishing the secure communication sessions with the respective destination devices via the respective ones of the multiple peripheral communication devices according to an exchange of messages of a mutual authentication and key exchange protocol that is common to establishment of the secure communication sessions.
4 . The apparatus of claim 1 , wherein the processor-executable instructions of the application layer protocol stack are to process function calls to a set of functions associated with an application programming interface (API) exposed to an application of the computing device, the set of functions comprising communication functions invoked by the application, the communication functions for communicating the messages to and from the computing device.
5 . The apparatus of claim 1 , wherein the processor-executable instructions of the application layer protocol stack 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 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.
6 . A non-transitory processor-readable medium comprising:
processor-executable instructions stored on the non-transitory processor-readable medium, the processor-executable instructions comprising an application layer protocol stack to be executed by one or more processors of a computing device including multiple peripheral communication devices of different communication protocol types, the processor-executable instructions adapted such that, when executed by the one or more processors, cause the one or more processors to perform operations for communicating messages to and from the computing device via respective ones of the multiple peripheral communication devices, the operations comprising:
communicating the messages via the respective ones of the multiple peripheral communication devices according to a unified messaging protocol that is common to the messages communicated via the respective ones of the multiple peripheral communication devices.
7 . The non-transitory processor-readable medium of claim 6 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors of the computing device to perform the operations comprising:
using a common message queue for storing the respective ones of messages communicated to and from the computing device via the respective ones of the multiple peripheral communication devices.
8 . The non-transitory processor-readable medium of claim 6 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors to perform further operations for establishing secure communication sessions with respective destination devices via respective ones of the multiple peripheral communication devices, the further operations comprising:
establishing the secure communication sessions with the respective destination devices via the respective ones of the multiple peripheral communication devices according to an exchange of messages of a mutual authentication and key exchange protocol that is common to establishment of the secure communication sessions.
9 . The non-transitory processor-readable medium of claim 6 , wherein the processor-executable instructions of the application layer protocol stack 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 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.
10 . The non-transitory processor-readable medium of claim 6 , wherein the application layer protocol stack is adapted to interface between an application of the computing device and respective input/output (I/O) buffers of the multiple peripheral communication devices for communicating the messages via the respective ones of the multiple peripheral communication devices according to the unified messaging protocol.
11 . The non-transitory processor-readable medium of claim 6 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors of the computing device to perform the operations comprising:
preparing the messages with a predetermined message format of the unified messaging protocol for sending the messages via the respective ones of the multiple peripheral communication devices, the predetermined message format being common to the messages to be sent via the respective ones of the multiple peripheral communication devices.
12 . The non-transitory processor-readable medium of claim 6 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors of the computing device to perform the operations comprising:
preparing the messages with a predetermined message format of the unified messaging protocol for sending the messages via the respective ones of the multiple peripheral communication devices, the predetermined message format including a header and a payload, the header including a plurality of header fields having respective header field definitions, the plurality of header fields having the respective header field definitions being common to the messages sent via the respective ones of the multiple peripheral communication devices.
13 . A non-transitory processor-readable medium comprising:
processor-executable instructions stored on the non-transitory processor-readable medium, the processor-executable instructions comprising an application layer protocol stack to be executed by one or more processors of a computing device including multiple peripheral communication devices of different communication protocol types, the application layer protocol stack adapted to interface between an application of the computing device and respective input/output (I/O) buffers of the multiple peripheral communication devices, the processor-executable instructions adapted such that, when executed by the one or more processors, cause the one or more processors to perform operations for sending messages from the computing device via respective ones of the multiple peripheral communication devices, the operations comprising:
sending the messages via the respective ones of the multiple peripheral communication devices according to a unified messaging protocol that is common to the messages sent via the respective ones of the multiple peripheral communication devices.
14 . The non-transitory processor-readable medium of claim 13 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors of the computing device to perform the operations comprising:
using a common message queue for storing the respective ones of messages to be sent from the computing device via the respective ones of the multiple peripheral communication devices.
15 . The non-transitory processor-readable medium of claim 13 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors to perform further operations for establishing secure communication sessions with respective destination devices via respective ones of the multiple peripheral communication devices, the further operations comprising:
establishing the secure communication sessions with the respective destination devices via the respective ones of the multiple peripheral communication devices according to an exchange of messages of a mutual authentication and key exchange protocol that is common to establishment of the secure communication sessions.
16 . The non-transitory processor-readable medium of claim 13 , wherein the processor-executable instructions of the application layer protocol stack 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 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.
17 . The non-transitory processor-readable medium of claim 13 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors of the computing device to perform the operations comprising:
preparing the messages with a predetermined message format of the unified messaging protocol for sending the messages via the respective ones of the multiple peripheral communication devices, the predetermined message format being common to the messages sent via the respective ones of the multiple peripheral communication devices.
18 . The non-transitory processor-readable medium of claim 13 , wherein the processor-executable instructions of the application layer protocol stack are to cause the one or more processors of the computing device to perform the operations comprising:
preparing the messages with a predetermined message format of the unified messaging protocol for sending the messages via the respective ones of the multiple peripheral communication devices, the predetermined message format including a header and a payload, the header including a plurality of header fields having respective header field definitions, the plurality of header fields having the respective header field definitions being common to the messages sent via the respective ones of the multiple peripheral communication devices.
19 . The non-transitory processor-readable medium of claim 13 , wherein the processor-executable instructions of the application layer protocol stack 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 low-speed peripheral communication devices and one or more high-speed peripheral communication devices.