FireSpy® Bus Analyzers

Advanced I/O Solutions

1394 Interface Solutions

1394b IP Solutions

AS5643 Dev.Suite


Integrated Solutions


Services and Consulting


Demo Downloads

FireStack® - 1394 SW Stack

FireStack® is DapTechnology’s homegrown 1394 software stack. Initially developed in conjunction with the company’s 1394 Link Layer Controller FireLink®, the product was architectured from ground up in order to support the advanced features of the FireLink® IP (Basic and Extended) solution. Since then additional mechanisms have been added to FireStack® to enable support  for generic OHCI compliant Link layers.

But FireStack® is also a specialty software stack as it targets usage in areas where requirements deviate a bit from the “standard” needs. For example, PCs and consumer electronics implementations differ significantly from their industrial, vision and aerospace counterparts. In many of these latter examples the focus lies on performance, latency, robustness, etc. 

Conceptually, FireStack® addresses all these issues. It complies with IEEE1394 requirements as well as select higher protocol layers e.g. IIDC). And as the only product in the market it natively supports AS5643 features and functions. Due to the time critical aspects of that AS5643 protocol FireStack® is only supported when running on top of an LLC with embedded AS5643 HW support (see FireLink® and FireTrac®).

FireStack® is also an alternative to using general purpose SW implementations with standard OHCI I/O interfaces as it offers a more deterministic approach. Modern plug & play solutions are not always recommended for use in enclosed systems since they typically add undesired bus traffic, latencies, etc.. The ability to customize FireStack® modules allows focusing on the task requirements without unwanted system, traffic and data overhead.

Operating System $ Supported Platforms

DESIGN FEATURES: Optimized Transaction Management

FireStack® features an innovative 1394 packet handler, whose objective is to reduce resource burden when receiving and transmitting 1394 packets. The consistent utilization of zero-copy operations greatly enhances the overall system performance. FireStack® provides memory buffers accessible by both the user application and the 1394 Link Layer DMA engine.

For example, when transmitting an asynchronous packet and the user application has filled the memory buffer with the needed packet data, FireStack® will hand the buffer directly to the Link Layer for reading the packet into the packet transmission FIFO without having the CPU copy memory to memory.

Likewise, displaying a video stream from an IIDC camera only requires creation of DMA-capable reception buffers for the video frame data and registration of notification upon filling of a complete frame. Once notified the buffers holding the received data can be accessed directly by the video rendering engine in order to move the data to video card memory. 

Inbound Transactions (IBT):

Inbound Transactions (handling of incoming requests) are defined in two separate methods:

Map Local Memory: The user can "map" a memory buffer to a specific address space. The contents of the memory buffer can be accessed by the user application at any point in time. At the same time when the stack receives a request packet from a remote device it will automatically perform the response operation (read, write or lock) and will send a response packet back to the requester. The user has the option to be notified by the notification callback function when the transaction completes.

Transaction Handler: Similar to the Map Local Memory above the user can "register for" a specific address space instead of "mapping" local memory. When the stack receives a request packet it will call the user-specified handler callback function. The user can then perform any operation within the callback function. Upon returning from the handler callback, the FireStack® may transmit a response packet. The notification callback function will be called after completion of the response process.

Outbound Transactions (OBT):

This module can be used to perform memory transactions (read, write, lock) on remote nodes. When a memory transaction is initiated FireStack® will automatically determine the maximum speed to the destination node by performing the needed PHY remote accesses.

Outbound Transactions can be used in the following ways with respect to result indication: In Blocking mode the TX functions will not return until the response packet is received and thus making the code sequential. In contrast to that the Non-Blocking mode can be used to initiate a series of “split” transactions i.e. a series of requests that are then followed by the corresponding - but not necessarily sequential - responses.

Isochronous Messaging:

The Isochronous Streaming modules build on the mechanisms for efficient data processing defined by OHCI and provide a flexible and user-friendly API around it. Linked lists of buffers can be setup by the user application and will be automatically processed by the Link Layer DMA engine. Notification mechanisms are available for buffer and/or packet completion.

 © 1998-2017 DapTechnology