You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today.

NAI's software capabilities are designed to provide efficient solutions for motion control, process control, monitoring, and data transfer needs. Our unique blend of on-board processors and FPGAs in our COSA® designs enables I/O functions to pre-process data, leaving SBCs free to handle high-level system requirements. Our Software Support Kits (SSKs) include high-level APIs and device drivers for specific host processor types, making it easy for system integrators to develop successful applications for our embedded I/O boards and systems. Sample code and HTML-formatted help documentation are also included in our SSKs. Trust NAI's software solutions for comprehensive and customizable solutions for your I/O board and system needs.

Configurable Open Systems Architecture™ (COSA®)

NAI’s COSA® designs feature a unique blend of on-board processors and FPGAs. These components perform complex and time-critical tasks, including motion control, process control, monitoring, data transfer, and communication protocols. Each I/O function can "pre-process" data, reducing the burden on the host and leaving Single Board Computers (SBC) free to handle high-level system requirements. Additionally, the architecture provides extensive Background Built-In-Test (BIT) to ensure dependable performance. Trust NAI's COSA® designs to provide efficient solutions for your motion control, process control, monitoring, and data transfer needs.

COSA Modules Boards Systems Diagram

Click to enlarge

COSA Software and Processing Diagram

Click to enlarge

API / Libraries (SSK-Software Support Kits)

NAI offers Software Support Kits (SSKs) that provide system integrators with the necessary software components and knowledge base to develop successful applications for our embedded I/O boards and systems. Our SSKs include high-level APIs and device drivers for specific host processor types (such as Intel®, NXP®, and ARM®), enabling users to access various I/O functions from a user application. Sample code is also included in our SSKs to help users quickly familiarize themselves with our software library and APIs. Our intelligent I/O functions have fixed memory maps that can be expanded as enhancements are added, without impacting existing code. Additionally, keeping up with technology insertion is seamless, as future processor upgrades require no new device drivers and will work with existing I/O cards.

Our common operating system-specific SSKs are independent of the single board computer (SBC) used and are supplied with source code and board-specific library APIs. The SBC-specific Board Support Package (BSP) does not need to be updated when new or enhanced function support is added since the SSK libraries are independent of the BSP. The low-level API Register-Transfer-Level (RTL) library is written in ANSI-C for portability and is used in multiple OS platforms. Our SSKs also include HTML-formatted help documentation that defines I/O function-specific API calls and their respective parameter requirements.

The latest version of a board-specific SSK can be downloaded here. Our SSKs provide out-of-the-box support for operating systems like Windows® (7,10), Linux (Ubuntu, RedHat, AlmaLinux), PetaLinux (2014, 2018, etc), LabVIEW/LabVIEW-RT Linux/PharLab, DEOS (Real-Time O/S) and VxWorks (6.9, 7, 653, etc). For other operating system support, please contact our factory at 1 (631) 567-1100. NAI's SSKs provide comprehensive and customizable software solutions for your I/O board and system needs.


North Atlantic Industries and VITA Partnership
North Atlantic Industries and PICMG Partnership
North Atlantic Industries and FACE Partnership
North Atlantic Industries and SOSA Partnership
North Atlantic Industries and Stony Brook University Partnership
North Atlantic Industries and Stony Brook University Partnership

Memory Mapped Registers

Memory mapped access is a method of configuring hardware or software systems by modifying values stored in specific memory locations, known as memory-mapped registers. This approach is often used in embedded systems and other systems where low-level hardware control is necessary. It can provide a flexible and efficient means of configuring complex systems, particularly those with numerous hardware components that require coordination and synchronization.

Various aspects of the system's behavior can be configured, such as enabling or disabling specific features, setting operating modes or performance levels, and specifying input/output configurations. For example, memory-mapped registers can be used to configure the behavior of sensors, actuators, and other hardware components. Designers can adjust sampling rate, sensitivity, response time, power consumption, and more. Overall, memory-mapped registers provide a powerful mechanism for controlling the behavior of hardware components in a system control application. By fine-tuning the values stored in these registers, designers can achieve fine-grained control over the system's behavior, increasing efficacy and efficiency.