phonenumber +49(0)711 123722-0
|
DE EN

Windows IoT Enterprise

Windows 10/11 IoT Enterprise

Windows IoT Enterprise ist ein vollwertiges Windows das alle Arten von Windows Programme unterstützt. Gleichzeitig wurde die Speicheranforderungen (RAM 2FG und Flash 16GB) auf ein Minimum reduziert. Die Performance auf einer NXP CPU (i.MX8M Plus oder i.MX93) ist für viele klassische WinForms,  WPF oder MFC Applikationen ausreichend. Der Microsoft Edge Browser (basiert auf Chromium)  läuft flüssig und stellt auch Videos problemlos dar.


WinIoTVideo

Langfristige Betriebssystemunterstützung

Ein besonders Merkmal von Windows IoT Enterprise ist die langfristige Betriebssystemunterstützung (LTSC). Diese Version bietet eine optionale Unterstützung von bis zu 10 Jahren, was eine stabile und verlässliche Plattform für Ihre Geräte gewährleistet.

Großes Ökosystem

Mit Windows IoT Enterprise haben Sie Zugriff auf Tausende von bestehenden Apps und können ein riesiges Ökosystem nutzen. Verwenden Sie Ihre bestehenden C# .Net-Anwendungen und entwicklen Sie sie weiter.

Sicherheit und Schutz

Nutzen Sie vorhandene, unternehmensgerechte Geräteverwaltungs-Tools, um Ihre Geräte auf dem neuesten Stand zu halten und zuverlässig zu betreiben. Funktionen wie Secure Boot und Over-the-Air-Updates sind integriert, um Ihre Geräte zu schützen und sicherzustellen, dass sie immer auf dem neuesten Stand sind.

Multi-Cloud-Konnektivität

Windows IoT Enterprise ermöglicht Multi-Cloud-Konnektivität, was eine nahtlose Integration und Verwaltung Ihrer Geräte in verschiedenen Cloud-Umgebungen erlaubt.

Kontaktieren Sie uns

Für weitere Informationen zu Funktionen und Verfügbarkeit von Windows IoT Enterprise auf F&S Modulen stehen wir Ihnen gerne zur Verfügung.(Forum)

FS Forum WinIOT

 


armStoneMX8MP-V5-W10 NetDCU93 PicoCOM93-V5I PicoCore™MX8MP-V5I PicoCore™MX93-V5I
Status Production Production Samples Production Production
CPU - - - - -
Typ NXP i.MX 8M Plus NXP i.MX 93 NXP i.MX 93 NXP i.MX 8M Plus NXP i.MX 93
Kern ARM Cortex-A53
Cortex-M7
ARM Cortex-A55
Cortex-M33
NPU
ARM Cortex-A55
Cortex-M33
NPU
ARM Cortex-A53
Cortex-M7
NPU, ISP, HIFI4
ARM Cortex-A55
Cortex-M33
NPU
Anzahl Kerne 4x A53 + M7 2x A55 + M33 + NPU 2x A55 + M33 + NPU 4x A53 + 1x M7 2x A55 + M33
Frequenz 1.8GHz + 800MHz 1.7GHz + 250MHz 1.7GHz + 250MHz 1.6GHz + 800MHz 1.7GHz + 250MHz
L2-Cache 512kB 2x64kB L2 + 256kB L3 2x64kB L2 + 256kB L3 512KB 2x64kB L2 + 256kB L3
NPU 2.3 TOPS 0.5 TOPS 0.5 TOPS 2.3 TOPS 0.5 TOPS
GPU 2D, 3D: ES 3.1/3.0, CL™ 1.2, VG™ 1.1 PXP PXP 3D/2D graphic acceleration ES 3.1/3.0, CL™ 1.2 VG™ 1.1 PXP
VPU - - - 1080p60, h.265/4, VP9, VP8
Video Encode: 1080p60, h.265/4
-
Security - - - - -
Secure Element - Edgelock Secure Enclave Edgelock Secure Enclave SE050 Edgelock Secure Enclave
Betriebssystem - - - - -
Linux - Yocto
(uboot installed)
Yocto
(uboot installed)
Yocto
(uboot installed)
Yocto
(uboot installed)
Windows 10 Iot Enterprise
(UEFI installed)
11 IoT Enterprise
(UEFI installed)
11 IoT Enterprise
(UEFI installed)
10 IoT Enterprise
(UEFI installed)
11 IoT Enterprise
(UEFI installed)
Echtzeit - FreeRTOS, QNX, Zephyr - - FreeRTOS, QNX, Zephyr
Speicher - - - - -
RAM 4GB LPDDR4 max. 2GB LPDDR4
x16
2GB LPDDR4
x16
4GB LPDDR4 2GB LPDDR4
Flash EEPROM EEPROM 64kbit EEPROM 2k EEPROM EEPROM
eMMC 64GB max. 128GB 64GB 32GB 64GB
Schnittstellen - - - - -
SD-Karte 1x µSD Slot 1x on-board 1x SDIO 2x SDIO 2x SDIO
Ethernet 2x Gbit 2x 10/100Mb
IEEE1588
1x 10/100MB 2x 100/1000Mb 2x 100/1000 Mb
WLAN - IEEE 802.11ax
(2.4/ 5GHz)
- - -
BT - 5.4 - - -
USB Host 4x 2.0 1x 2.0 1x 2.0 1x 3.0 1x 2.0
USB Device 1x (USB 2.0) 1x OTG 2.0 1x OTG 2.0 1x OTG 3.0 1x OTG 2.0
CAN 2x 2x 1x CAN-FD 2x 2x CAN-FD
UART 3x 3x RS232
1x RS485
3x max. 4x 8x
I2C 4x 1x 2x max. 4x 6x
SPI 2x 1x 1x max. 2x 8x
Audio I2S Line In/Out/Mic Line In/Out
opt. I2S
Line In/ Out/ Mic/ Headphone Line In/ Out/ Mic/ Headphone
Digital I/O max. 32 max. 21
ADC 4x 4x (12bit) - - 4x
Touch Panel via I2C or USB 4-wire, analog resistive
PCAP Touch via I2C
TSC2004 via I2C or USB via I2C or USB
Kamera 1x MIPI-CSI - - 2x MIPI-CSI MIPI-CSI
(2 lanes)
PCIe - - - 1x PCIe 3.0
(1 lane)
-
RTC PCF85263ATL PCF85263ATL PCF85263ATL PCF85263ATL PCF85263ATL
sonstige Schnittstellen 4x PWM FS-Bus (8bit A/D bus) - max. 4x PWM, SPDIF, ESAI, SAI, SSI max. 4x PWM, SPDIF, ESAI, SAI, SSI
Display - - - - -
RGB - 24 Bit 18 Bit - -
LVDS 1x 4 lanes 1x 4 Lanes - 1x 4 Lanes 1x 4 Lanes
CRT/DVI DVI - - - -
MIPI-DSI 4x lanes - - 1x 4 Lanes 1x 4 Lanes
Allgemein - - - - -
V_IN 5V DC / ±5%
opt. 24V DC
+5V DC/ ±5% +3,3V DC/ ±5% +4.5V - 5.5VDC +3.8V bis 5.5VDC
T_AMB 0°C-+70°C -25°C - +85°C -25°C - +85°C -25°C - +85°C -25°C - +85°C
Größe 100x72x15mm 100x80x19,5mm 40x50mm 35x40mm 35x40mm
Verfügbarkeit 2032 2038+ 2038+ 2032 2038+
armStoneMX8MP-V5-W10 NetDCU93 PicoCOM93-V5I PicoCore™MX8MP-V5I PicoCore™MX93-V5I

Windows IoT Meets FreeRTOS: Real Time CAN Communication on the i.MX93

For our own board based on the NXP i.MX93, running Windows IoT LTSC 11, we rely consistently on the official NXP BSP. It is proven, well maintained, and covers most interfaces reliably. But for the CAN interface, we reached a point where the supplied driver no longer met our requirements. As soon as packet rates increased and the application processor was under heavy load at the same time, performance dropped noticeably. It was the fact that the entire communication ran through the application processor and its Windows scheduler. Under load, when other applications, I/O, and background processes compete for CPU time, a non real time operating system is inherently at a disadvantage for time critical bus protocols.

The idea: process CAN where real time belongs

Our answer was to move the entire CAN processing to the previously unused Cortex M33. A FreeRTOS program we developed runs there and drives the FlexCAN controller directly, with a fixed, high interrupt priority, fully decoupled from the Windows scheduler and its load. A core that previously had no function at all now handles exactly the task it is best suited for: deterministic real time response to bus events.

How the two worlds work together

To let the M33 communicate with the Windows side, we use two mechanisms the i.MX93 provides for exactly this purpose:

  • The Messaging Unit (MU1) as a hardware interrupt channel between the cores. No polling, just genuine event driven notification in both directions.
  • A shared memory region with two lock free ring buffers, one per direction, used to exchange CAN frames as a compact 20 byte structure. The buffers are designed so that the write and read indices are each modified by only one side, a deliberately simple and robust design that avoids the need for additional locking.

On the FreeRTOS side, this is handled by dedicated, clearly separated tasks. A receive task passes frames from the FlexCAN interrupt routine through an internal queue into the shared memory ring and triggers an interrupt on the Windows side through the MU registers. A transmit task, in turn, is woken by an MU interrupt as soon as Windows has placed a frame on the bus. A third task continuously monitors the connection status along with counters for sent, received, and faulty frames, so the state of the bridge is observable at all times.

 WIN FreeRTOS CAN01

 

On the A55 side we developed our own KMDF driver, canmu.sys, which maps the MU registers and the shared memory region and exposes a simple IOCTL interface to the application layer for sending frames, receiving frames, and querying status. Anyone who wants to use CAN on our board never has to deal with the complexity of the core to core communication underneath. They simply talk to the driver through DeviceIoControl, exactly as our own test application, CanTestAPI, demonstrates.

 

The result

With this architecture we specifically addressed the weaknesses of the original solution:

  • Stable performance even under high system load, because time critical bus processing is now fully decoupled from the Windows scheduler.
  • Deterministic, real time capable behavior, since FreeRTOS on the M33 runs with a fixed interrupt priority and without competing for CPU time with other Windows processes.
  • Optimal use of existing hardware, since a processor core that was previously unused now makes a real functional contribution, without any additional components.
  • A simple, stable interface for application development that fully encapsulates the underlying complexity.

The real highlight: two worlds, one seamless system

What makes this solution stand out for us is not just that we moved CAN processing onto the M33. It is that the entire result stays fully connected to and controllable from Windows IoT. A real time operating system and a general purpose operating system are fundamentally different worlds, with different scheduling models, different guarantees, and different ways of thinking about time. Bringing them together so closely that an application developer on the Windows side simply calls DeviceIoControl and never has to think about FreeRTOS, interrupt priorities, or shared memory ring buffers at all is exactly the kind of integration we have extensive experience in. FreeRTOS delivers the real time guarantees the bus needs, and Windows IoT still remains the single point of access for every application built on top of it.