Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Design philosophy  





2 Features  





3 Implementation  





4 Supported devices  





5 References  














OpenTag







Add links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


OpenTag
DeveloperJP Norair
Written inC
OS familyEmbedded operating system
Working stateCurrent
Source modelOpen source
Initial release2011; 13 years ago (2011)
Latest release0.4.0 / November 8, 2012; 11 years ago (2012-11-08)
Marketing targetWireless sensor networks
Available inEnglish
PlatformsMSP430, STM32
Kernel typeExokernel
LicenseOpenTag License
Official websiteOpenTag wiki

OpenTag is a DASH7 protocol stack and minimal Real-Time Operating System (RTOS), written in the C programming language. It is designed to run on microcontrollers 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 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

[edit]

OpenTag implements DASH7 Mode 2, which specifies a monolithic system encompassing OSI layers one through six, part of layer seven, as well as the application layer. 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+RF transceiver architecture, utilized by WSN and M2M nodes.[1] However, the OpenTag RTOS employs an exokernel architecture (as of version 0.4), so a monolithic kernel is not required. Applications developed for OpenTag may safely reference the library or directly access the hardware, as befits the exokernel design model.

Features

[edit]

Implementation

[edit]

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.[2]

Kernel events use callbacks 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.[3]

OpenTag's external API uses a simplified client-server model[4] 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

[edit]

At the time of writing, most OpenTag hardware is implemented on the Texas Instruments CC430 or MSP430 devices, which are endorsed for use with OpenTag.[5] Current OpenTag source trees support many other MCUs and RF transceivers, however, such as various types of STM32, CC11xx, and Semtech SX12xx components.[6]

References

[edit]
  1. ^ "OpenTag Features Overview". OpenTag Wiki. Indigresso.com. Archived from the original on 6 December 2019. Retrieved 9 July 2012.
  • ^ Norair, JP (13 May 2011). "Building DASH7 Apps with OpenTag". Retrieved 9 July 2012.
  • ^ "OpenTag API". OpenTag Wiki. Retrieved 9 July 2012.
  • ^ "OpenTag Client-Server Architecture". OpenTag Wiki.
  • ^ "The all new CC430 combines leading MSP430 MCU and low power RF technology". ti.com. Texas Instruments. Retrieved 9 July 2012.
  • ^ "OpenTag Mainline Repository". GitHub. Retrieved 9 July 2012.

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=OpenTag&oldid=1182332012"

    Category: 
    Wireless sensor network
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Wikipedia articles that are too technical from September 2013
    All articles that are too technical
     



    This page was last edited on 28 October 2023, at 17:05 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki