BROWSE ARTICLES BY TECHNOLOGY

DIGITAL EDITION

RTC Magazine Digital Edition

INDUSTRY NEWS

RECENT COMMENTS

  • Hi Juan, This article shows you how to implement a quadrature encoder interface on the FPGA using digital lines. It was written for our PCI or P...

    Meghan Meckstroth Kerry - See Article

  • Good coverage on the general advantages of COM, and X86 implementations. It would have been nice to ARM options for lower-power (handheld) applicat...

    Brian Empey, P.Eng. - See Article

  • Your article about Application Service Platforms in RTC April is another example of great reporting by RTC. Can we have a new RTC index category -...

    Kenneth G Blemel - See Article

  • Static analysis tools/scanners are a great arsenal for companies who require high quality code. It does a great job of finding a wide range of pro...

    Andrew Yang - See Article

  • I hope that the microcessor based Insulin Pump riding on my belt would be held to a higher standard. If it quits, I can work around that inconvenie...

    Karl Williamson - See Article

WHITEPAPERS

QUICK DOWNLOADS

RTEC10 is an index made up of 10 public companies which have revenue that is derived primarily from sales in the embedded sector. The companies are made up of both software and hardware companies being traded on public exchanges.

COMPANY PRICECHANGE
Kontron
7.81
4.577%
Adlink
1.54
2.388%
Advantech
2.32
1.505%
Interphase
1.61
-3.012%
Radisys
9.26
-1.016%
-   Performance Technologies2.100.000%
-   Enea5.630.000%
PLX
3.62
-3.209%
Mercury Computer
11.76
-2.931%
Elma
412.98
-0.476%
HIGH LOW MKT CAP
7.85
7.43
435.04
1.58
1.52
185.11
2.33
2.30
1,198.70
1.70
1.61
11.00
9.41
9.24
223.74
2.102.1023.34
5.635.54101.86
3.74
3.61
134.28
12.17
11.76
279.57
412.98
412.98
94.25
RTEC10 Index: 490.94 (1.11%)
RTEC10 is sponsored by VDC research

SOFTWARE & DEVELOPMENT TOOLS

Embedded Windows

Windows Plus Real Time on a Single CPU: A Marriage of Control and Flexibility

PC technology and standard Windows operating systems can be combined with a real-time extension to build highly reliable and extensible real-time platforms, adopting a “single-computer dual-OS” system approach.

PAUL FISCHER, TENASYS

  • Page 1 of 3
    Bookmark and Share

Many of today’s embedded applications require the stability and reliability provided by a deterministic hard real-time operating system (RTOS). Simultaneously, the markets these embedded applications serve benefit from the flexibility and extensibility associated with a general-purpose operating system, like Microsoft Windows.

With the undisputed lion’s share of all PC installations, there is no more popular software platform than Microsoft Windows. Windows provides access to third-party applications from specialized communication protocols to database applications and mathematical analysis tools, all of which can easily transform a dedicated data acquisition and control system into a sophisticated analysis and enterprise system resource.

Optimized Solutions

Balancing the flexibility of Windows with the deterministic requirements of embedded applications often results in two distinct computing elements built into one system. One piece of hardware to run Windows for the GUI, third-party applications and enterprise-related functions and a second hardware element to host a dedicated RTOS that controls the time-critical elements of the machine.

The drawbacks to this approach are numerous. A second control computer adds substantial cost of goods and manufacturing complexity. The additional design costs, in terms of time and effort spent on engineering tools and staff, is generally sufficient justification to seek a simpler and more cost-effective solution.

The real-time embedded tasks of a system are generally very well defined. Thus, with the aid of a real-time extension for Windows, it is frequently possible to compress these two dissimilar computing elements (Windows and real-time) into one off-the-shelf computing platform. The solution is a flexible cost-effective alternative to the “dual-computer dual-OS” system.

Efficiency in Hardware and Software

When system requirements surpass the ability of Windows to properly service a task, there are alternative solutions to merely adding hardware and complexity to a system. Before a real-time extension to Windows can be considered as a viable option it must, at the very least, be safe, secure, reliable and extensible. It must be implemented on a platform that supports dependable, hard real-time functionality, and the application must be easy to design, build and integrate using standard tools. Such a real-time extension for Windows implements a virtual dual-computer dual-OS architecture using a single piece of hardware, resulting in a “single-computer dual-OS” solution: One compute platform supports two virtual machines.

Like the dual-computer dual-OS approach, applications built for a single-computer dual-OS system must be divided into two basic parts: deterministic and non-deterministic. The non-deterministic part executes on the Windows virtual machine, and the deterministic part(s) executes on the real-time virtual machine. In order for these two parts to work together as a single application, they must have managed access to a variety of shared objects such as mailboxes, semaphores, mutexes and shared memory.

A significant advantage of the virtual machine approach is that developers can leverage standard development tools for both environments. To ensure efficient implementation of real-time threads, they should be provided with an environment that supports direct access to I/O and memory, a fixed priority scheduling system with priority-inversion protection, and simplified interrupt-handling services. Developers can then create and deploy real-time applications without the need to write complex and cumbersome device drivers for access to real-time hardware.

Real-time processes and threads also need to have access to high-speed interval timers for accurate, low-drift time measurements and for generating accurate periodic events to ensure precise control of real-time systems. The accuracy and drift of these timer elements are strong functions of the specific platform, being optimal on uniprocessor and multiprocessor systems with an advanced programmable interrupt controller (APIC), which represent the vast majority of embedded and desktop Windows platforms built today.

The net result of this virtual dual-computer dual-OS approach is that it avoids redundant computer and communication hardware. The real-time kernel and its processes run on the same hardware as the standard Windows kernel, sharing the CPU, memory and I/O resources.

Architecture is Key to Reliability

The architecture of a real-time Windows extension has a strong bearing on the security of the system. Intel’s 32-bit x86 processors (80386 through modern Pentiums) include unique hardware features that accommodate the ability to simultaneously run multiple operating systems. A real-time extension that takes full advantage of these features to build a secure environment in which real-time and Windows processes are isolated and separate on the same machine will be the optimal solution.

Real-time extensions that utilize these unique x86 features are able to meld deterministic, hard real-time control with standard Windows operating systems without the need for additional hardware. The solution is to create two virtual machines on a single CPU, and provide isolation between the two kernels. This dual kernel approach (Figure 1) provides protection from Windows “blue screen” crashes, which is critical to hard real-time applications. The solution is cost-effective, easy to develop and maintain and delivers microsecond response time.

LEAVE A COMMENT