Kithara Driver Collection
Function Library for Hardware-dependent Programming and Driver Development
Kithara Driver Collection supports all important function mechanisms for hardware-dependent programming and driver development of devices and hardware components.
By using the comprehensive and simply applicable API, access from the ordinary programming environment to the hardware components is possible as if a real device driver was developed with huge effort.
Via I/O ports, physical memory as well as handler for reactions to hardware interrupts it is possible to address each hardware component of the PC system, as far as the access details are known. For the hardware-dependent programming all known bus types are supported, for examples: ISA, PCI, PCIe as well as PCMCIA, CardBus and ExpressCard. Even USB devices are programmable. Additionally, functions for timer, keyboard handling and serial communication via UART ports are included in this comprehensive product.
The enormous popularity of Kithara Driver Collection shows that numerous users appreciate especially the broad range of applications. Although the product does not provide real-time capabilities, extensive hardware-dependent projects can be achieved. An individual combination of the function modules as well as real-time capability is provided by
Kithara RealTime Suite.
Technical details
-
Direct access to all I/O registers of the PC (8 bit, 16 bit and 32 bit)
-
Direct access to physical memory
-
High-performance mechanisms for interrupt programming
-
Communication with USB devices via USB 1.0, USB 1.1, USB 2.0, USB 3.0, USB 3.1, USB 3.2, USB4
-
Generic WDM-driver for plug and play installation included
-
Includes a Windows programming interface for communication devices (ReadFile, WriteFile, DeviceIoControl)
-
Interception of system events, e. g. FailSafe handler
-
Processing of PS/2 keyboard events
-
Serial UART communication in real-time
-
Highly-accurate system time and short time delay logging
-
Unlimited distribution of the runtime files
-
Code execution on the kernel-level supported by C, C++ and Delphi
Modules
Kithara Driver Collection consists of following modules, which only provide the mentioned real-time capabilities if the module is part of
Kithara RealTime Suite.
Basic Functions
Base/Kernel Module
-
Supports the following operating systems: Windows 10 and 11 (32 bit and 64 bit) as well as Windows Server 2016, 2019 and 2022, each with Dedicated Mode
-
Supports multi-core processors, hyper-threading and NUMA multi-processor PCs
-
Functions for: opening the driver, execution of real-time code at kernel level, real-time memory management, device handling, version information, debugging support, system information
-
Real-time tasks, events, callbacks, shared memory, data and message pipes, fast mutex objects
Further information …
System Module
-
Interception of system events, e. g. protection faults and system crashes at the kernel level (e. g. FailSafe-Handler/“BlueScreen-Handler”)
Further information …
Hardware Access
IoPort Module
-
Access to all I/O registers of the PC application or DLL
-
Determination of the PCI configuration data and resource data
Further information …
Memory Module
-
Access to external physical memory (Dual-Port-RAM)
-
Provision of PC memory for external hardware (DMA memory)
Further information …
Interrupt Module
-
Processing of hardware interrupts at the application or kernel level
-
Use of the operating system mechanisms for interrupt processing
-
By using the RealTime Tasking Module, real-time interrupts on PCI or PCIe hardware can be applied
Further information …
Communication
Serial/UART Module
-
Serial communication in real time with special hardware drivers on UART16550-compatible hardware
-
Signal and handshake lines can be controlled directly
-
Handler for all interface events in real time
-
Includes alternative API for all Windows-based COM ports without real time
Further information …
Device Module
-
Includes a Windows programming interface for communication devices (ReadFile, WriteFile, DeviceIoControl)
-
Any device names possible, for example virtual COM ports
Further information …
USB Driver Module
-
Communication with USB devices via Windows driver stack
-
Low, full, high-speed
-
Control, bulk, interrupt and isochronous transfers
-
Response to all plug and play and power management events
Further information …
Timer
Timer Module
-
Determining the system time in different time and user-specific formats, resolution up to 0.1 μs
-
Highly accurate short time delays
-
Long-term synchronization of system clocks, synchronization with EtherCAT Distributed Clocks (DC) and IEEE 1588
-
Creation of simple Windows timers
Further information …
Platforms
Real-time capability can only be achieved on the kernel level. For this purpose a programming language is required that is able to generate native machine code, e. g. C, C++ or Delphi and others. Nevertheless
Kithara RealTime Suite supports various platforms, for example a .NET environment. The solution is to transfer the time-critical code into a DLL, which will be loaded directly into the real-time context at the kernel level. A number of usable program frameworks for the aforementioned platforms are provided with every software purchase.
System Requirements
The products of Kithara RealTime Suite support a wide range of hardware and software combinations. If you have questions regarding the system support,
please contact us!
Operating system
The software supports the following operating systems:
-
Windows 10 and 11 (32 bit and 64 bit), dedicated mode
-
Windows Server 2016, 2019 and 2022, dedicated mode
Hardware
The software runs on the following hardware:
-
CPU: AMD (Athlon) or Intel (Pentium 2), 32 or 64 bit
-
Dual- or multi-core; optional hyper-threading with multi-core, currently up to 48 logical CPUs, above on request
-
ACPI recommended (Advanced Control and Power Interface)
-
the PC must be able to support PAE (Page Address Extension)
-
Gigabit-Ethernet up to 200 Gbit/s, almost every controller of Intel and RealTek is supported
Compiler
Immediately usable program frameworks for the following programming languages / compilers are included in the supplied software (other programming languages can be supported on request):
-
Visual Studio 20xx C++ with MFC user interface (provided project files: VS 2010/12/13/15/17/19/22)
-
C++ Builder (Embarcadero, formerly Borland) VCL user interface
-
Delphi (Embarcadero, formerly Borland) VCL user interface
-
Visual Studio 20xx C# with WPF user interface (incl. C++ DLL for real-time execution, provided project files: VS 2010/12/13/15/17/19/22)
In order to execute code in a real-time context, any compiler that can generate a DLL with native machine code, is generally usable. Furthermore, the Windows application can also be generated with other programming languages, such as C#.
EtherCAT® and Safety over EtherCAT® are registered trademarks and patented technologies, licensed by
Beckhoff Automation GmbH, Germany.
CANopen® is a registered trademark of the
CAN in Automation e. V.
GigE Vision® is a registered trademark of the
Automated Imaging Association.
USB3 Vision® is a registered trademark of the
Automated Imaging Association.