C
onsumer products are getting highly sophisticated with numerous connectivity options, including Bluetooth and Wi-Fi. Innovative applications over wireless depend a lot on complex software protocols. While the hardware associated with the wireless interfaces are well understood by designers, the critical role that protocol software plays in the success of the product is only just being realized.
CHALLENGES TO DESIGNERS
Flexible, self-sufficient software
To manage complexity of a wide range of products, a suite of protocols (profiles) is defined that specify standard message interchange for basic common scenarios. But actual application may include a wider set of use cases. Take for instance the Bluetooth hands-free profile. While the basic message sequences are the same for the hands-free profile in headsets and car hands-free kits, these two products are quite different in their design requirements.
Resource efficient, yet portable
Consumer products face price pressures. A software product must be sensitive to this issue. An obvious factor is the size of the code and data memory used by the software.
Quick-to-market, maintainable
Consumer product life cycles are ever shrinking in a market driven by innovation and price pressures.
Hence, the software stack must aid the product developer with a significantly reduced product development time and still allow for product longevity. High-volume products are often ROM-based. In spite of best intentions, code changes may have to be effected. The protocol software must provide sufficient hooks to handle unsolicited events, errors, patching of ROM etc., without adding considerable overheads like housekeeping code or data memory.
EtherMind is the suite of Bluetooth protocol software that has addressed the above issues. Architecturally, EtherMind stack is capable of being instantiated over a bare kernel executive or chip support library, or a proprietary RTOS or a high level operating system. Concurrency control and synchronization are easily adopted depending on the platform.
Efficient memory allocation with zero copy data movement across layers makes it very efficient in terms of data memory and MIPS. Protocol state machines are designed to trap unsolicited events and invoke application defined exception handlers.
The 100% ANSI C code, together with endianness and word-length independence, makes EtherMind inherently portable across processors. Escalating asserts make the error handling meaningful at every layer. In addition to callable APIs, message based APIs are provided for easy integration with legacy applications. APIs and call back functions are subject to rigorous design rules to ensure reentrancy and avoid recursive invocations.
To facilitate the stack’s adoption into a variety of use case scenarios, an “abstract application model” is provided. This application model manages all aspects of the Bluetooth connectivity in the presence of multiple profiles and complex use case scenarios.
At the same time, this model can be included in a custom application by inheriting the above control logic while adding product specific control logic and MMI behavior.
By addressing these challenges EtherMind brings immense value to end product integrators. It has one of the smallest footprints in the industry while being compliant to multiple industry standards. It has been integrated into a variety of designs ranging from niche satellite gateways to mass-market products like headsets, on diverse platforms.
Author information
You can reach Dr Raghunath Govindachari at raghunathg@mindtree.com
caption: EtherMind has been integrated into designs such as headsets.