HOME

TheInfoList



OR:

OpenTag is a
DASH7 DASH7 Alliance Protocol (D7A) is an open-source wireless sensor and actuator network protocol, which operates in the 433 MHz, 868 MHz and 915 MHz unlicensed ISM band/SRD band. DASH7 provides multi-year battery life, range of up to ...
protocol stack The protocol stack or network stack is an implementation of a computer networking protocol suite or protocol family. Some of these terms are used interchangeably but strictly speaking, the ''suite'' is the definition of the communication protoco ...
and minimal Real-Time Operating System (RTOS), written in the
C programming language ''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as ...
. It is designed to run on
microcontrollers A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs ( processor cores) along with memory and programmab ...
or radio Systems on a Chip (SoC). OpenTag was engineered to be a very compact software package. However, with proper configuration, it can also run in any
POSIX The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inte ...
environment. OpenTag can also provide all functionality required for any type of DASH7 Mode 2 device, rather than just the eponymous “tag”-type endpoint device.


Design philosophy

OpenTag implements DASH7 Mode 2, which specifies a
monolithic system Monolithic system can have different meanings in the contexts of computer software and hardware. In software A software system is called "monolithic" if it has a monolithic architecture, in which functionally distinguishable aspects (for example ...
encompassing
OSI OSI may refer to: Places * Osijek Airport (IATA code: OSI), an airport in Croatia * Ősi, a village in Veszprém county, Hungary * Oši, an archaeological site in Semigallia, Latvia * Osi, a village in Ido-Osi, Ekiti State, Nigeria * Osi, Ekiti L ...
layers one through six, part of layer seven, as well as the
application layer An application layer is an abstraction layer that specifies the shared communications protocols and interface methods used by hosts in a communications network. An ''application layer'' abstraction is specified in both the Internet Protocol ...
. OpenTag is designed to be light and compact, as it is targeted to run on resource-constrained micro-controllers. As a monolithic system, it does not implement different layers of the OSI model in a way that will enable them to be deployed on systems that differ from the typical, and nearly universal,
MCU The Marvel Cinematic Universe (MCU) is an American media franchise and shared universe centered on a series of superhero films produced by Marvel Studios. The films are based on characters that appear in American comic books published by ...
+ RF transceiver architecture, utilized by
WSN Wireless sensor networks (WSNs) refer to networks of spatially dispersed and dedicated sensors that monitor and record the physical conditions of the environment and forward the collected data to a central location. WSNs can measure environmental c ...
and M2M nodes. However, the OpenTag RTOS employs an
exokernel Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems. Operating systems generally present hardware resources to applications through high-lev ...
architecture (as of version 0.4), so a
monolithic kernel A monolithic kernel is an operating system architecture where the entire operating system is working in kernel space. The monolithic model differs from other operating system architectures (such as the microkernel architecture) in that it alone d ...
is not required. Applications developed for OpenTag may safely reference the library or directly access the hardware, as befits the exokernel design model.


Features

* It has a lightweight
pre-emptive multitasking In computing, preemption is the act of temporarily interrupting an executing task, with the intention of resuming it at a later time. This interrupt is done by an external scheduler with no assistance or cooperation from the task. This preemp ...
exokernel RTOS. * Most kernels use fixed priority tasks. * It contains a complete DASH7 Mode 2 protocol stack, including ** Remote wake up; *** Native query protocol; and *** UDP &
SCTP The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol in the transport layer of the Internet protocol suite. Originally intended for Signaling System 7 (SS7) message transport in telecommunication, the p ...
adaptation layers. * It uses a Wear-leveling,
Flash Flash, flashes, or FLASH may refer to: Arts, entertainment, and media Fictional aliases * Flash (DC Comics character), several DC Comics superheroes with super speed: ** Flash (Barry Allen) ** Flash (Jay Garrick) ** Wally West, the first Kid F ...
-based lightweight
filesystem In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
(Veelite). * It has an internal C-based
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
. * It has an external NDEF-based messaging API for client-server interaction.


Implementation

OpenTag implements a multitasking real-time kernel designed specifically to implement DASH7. User tasks can be managed by the kernel, and they can preempt the kernel, although they must be allocated at compile-time. The scheduling frequency, or kernel resolution, is implementation-dependent, but it must be at least 1024 Hz and it must be an integer multiple of 1024 Hz. Kernel events use
callbacks In computer programming, a callback or callback function is any reference to executable code that is passed as an argument to another piece of code; that code is expected to ''call back'' (execute) the callback function as part of its job. This ...
to invoke custom application code, which are called "applets". Extensive templating is used to provide callback functionality that is efficient for embedded environments. Thus callbacks in OpenTag may be dynamic (assigned during runtime), or they may be static, which requires assignment at compile-time but reduces overhead. As OpenTag implements an exokernel, user tasks may either be managed entirely by the kernel, they may be managed partly by the kernel and partly by external events, or they may be managed entirely by external events. Communication between tasks and the kernel is accomplished through an API of system calls and a message pipe interface. OpenTag's external API uses a simplified client-server model and NDEF for data wrapping. The NDEF wrapper is particularly used for wireline communication between client and server, where the client is typically a human-interface device and the server is the OpenTag SoC. The internal API is exposed in a 1:1 manner with the external API, permitting the client to act much like an external process of the OpenTag kernel.


Supported devices

At the time of writing, most OpenTag hardware is implemented on the
Texas Instruments Texas Instruments Incorporated (TI) is an American technology company headquartered in Dallas, Texas, that designs and manufactures semiconductors and various integrated circuits, which it sells to electronics designers and manufacturers globa ...
CC430 or MSP430 devices, which are endorsed for use with OpenTag. Current OpenTag source trees support many other MCUs and RF transceivers, however, such as various types of STM32, CC11xx, and
Semtech Semtech Corporation is a supplier of analog and mixed-signal semiconductors and advanced algorithms for consumer, enterprise computing, communications and industrial end-markets. It is based in Camarillo, Ventura County, Southern California. It ...
SX12xx components.


References

{{Wireless Sensor Network