GE Intelligent Platforms Embedded Systems, Inc.
Goleta, California
(805) 965-8000
CEI-x30-SW Distribution for Version 3.10
----------------------------------------
This is the distribution media for the CEI-x30-SW, API Version 3.10.
It contains an API (Application Programming Interface) library for use with
all CEI-x30 products. It also contains example code in source form and
32-bit demonstration executables. The API routines are documented within
the distributed source and the CEI-x30 User's Manual.
This document covers product release notes and history. Supplemental
information on installation, removal, and distribution contents can be
found in the file:
INSTALL.TXT - Installation notes for CEI-x30-SW software.
===============================================================================
Compilation Notes:
------------------
Microsoft Visual C++ 6.0 was used to build the default Windows 32-bit API
library and Test Config executable.
Microsoft Visual Studio 2008 was used to build the Windows 64-bit API library
and respective Test Config executable, as well as an additional version of
the 32-bit API library and .NET example solutions.
When compiling the API under either toolset, you must declare the compiler
directive /Zm500 to account for the large static data content.
Microsoft Visual Basic 6.0 SP5 was used to build the Vb example application.
Overview:
---------
The CEI-x30 API provides the essential interface to configure CEI-x30 products
and process the ARINC protocols. View the example source file TST_CNFG.C for
a demonstration of the order in which the API functions should be utilized in
your application.
===============================================================================
Release Notes:
--------------
Version 3.10 6 Oct 2011
------------------------
1) Added support for the CEI-430A, a native PC/104-Plus (PCI-104) CEI-x30 board
for the Windows and Linux operating systems.
2) Corrected the ARINC 429 slew rate assignment for custom baud rate selections
by the host via the ar_set_device_config routine.
3) Modified the operation of the routine ar_modify_msg_block to allow a message
scheduler table entry's transmit count to be modified if it had been created
with or previously modified to have a limited transmit count and the current
transmit count is zero.
4) Corrected the snapshot buffer table content returned from ar_get_latest when
the entire table is requested using the label parameter ARU_ALL_LABELS option.
5) Corrected the function of ar_init_slave so it only resets/flushes the transmit
and receive buffers and does not initialize the snapshot buffer, label filter
table, or message scheduler table.
6) Added support for creating a 1 second host time-stamp format with the option
AR_TIMETAG_HOST_SEC_32BIT in ar_convert_time_to_string.
7) Corrected an issue in ar_getblock_t, where in merged mode the actual receive
channel was not returned unless time-tags were returned (when the time-tag
array pointers are not NULL).
8) Introduced support for the CEI-x20 discrete I/O configuration options
ARU_DISCRETE_VALUES, ARU_DISCRETE_INPUTS and ARU_DISCRETE_OUTPUTS, in the
ar_set_config and ar_get_config routines.
Version 3.00 6 Dec 2010
------------------------
1) Added support for 64-bit Windows 7, Vista, and XP operating systems.
2) Modified the internal wrap receiver-to-transmitter channel assignments for
the RAR-EC to match the previous standard CEI-x30 firmware configuration,
(the initial enhanced firmware RAR-EC internal wrap deviated from the
standard firmware configuration).
Version 2.10 23 July 2010
--------------------------
Added support for the RAR-PCIE, native PCI Express CEI-x30 board for Windows
and Linux operating systems.
Version 2.00 31 Aug 2009
-------------------------
1) Introduced the CEI-x30 Enhanced Firmware Interface, with respective API
updates. Note this firmware implementation is not backward compatible with
previous versions of the API; however, it is downloaded by the API so
previous API releases will remain functional with new boards.
- Modified all methods to access Channel Registers and Buffers,
Message Scheduler Table, Label Filter Table, and Snapshot Buffer.
- Added Interrupt Queue access routines and a generic interrupt
handler (with provisions for designating a user-defined handler):
cei_utl_interrupt_queue_read
cei_utl_interrupt_handler
ar_hw_interrupt_buffer_read
ar_interrupt_queue_read
ar_set_isr_function
- Added the routine ar_get_latest_t to provide a method to
retrieve the label-only snapshot mode message & time-stamp.
- Added support for the ARS_BAD_MESSAGE return status from
the following API routines, indicating a "bad msg length"
ARINC 429 message was encountered on the respective receiver:
ar_getword ar_getwordt ar_getword_xt
ar_getnext ar_getnextt ar_getnext_xt
ar_getblock ar_getblock_t ar_get_429_message
ar_get_data ar_get_data_xt
- Added a test for the Enhanced CEI-x30 Interface to the routine
ar_get_device_config, and ar_set_device_config options to both update
a standard x30 device to the enhanced interface and restore an
enhanced interface to a standard interface.
2) Implemented the functional support within the following API routines
required for backward compatibility to the CEI-x20 product line/API:
ar_get_boardname ar_init_dual_port ar_get_label_filter
ar_init_slave ar_get_timercnt ar_int_control
ar_sleep ar_setchparms ar_get_raw_mode
3) Replaced the previous VxWorks driver and CDF files with the latest common
driver and CDF files for GE Fanuc Avionics products.
4) Replaced the previous Integrity driver with the latest common driver for
GE Fanuc Avionics products.
Version 1.70 29 Jan 2009
-------------------------
1) Removed the multi-process semaphore acquisition in ar_loadslv(); use of the
API in a multi-process Windows or Linux environment now requires a master
process to provide an initial invocation of ar_loadslv prior to invocation
of subsequent processes invoking ar_loadslv().
2) Replaced the general VXWORKS compilation directive with one directive for
each VxWorks processor type - VXW_PCI_X86 & VXW_PCI_PPC; with other VxWorks
target specific directives now defined in the header file target_defines.h
instead of the project build settings.
3) Replaced the previous VxWorks driver and CDF files with the latest common
driver and CDF files for GE Fanuc Avionics products.
4) Replaced the previous Integrity driver with the latest common driver for
GE Fanuc Avionics products.
5) Removed some instances of the LABVIEW_RT compiler directive usage for
CVI and LabVIEW 8.x tools supporting 64-bit integer data types.
6) Replaced the prevous compiler directive _INTEGRITY_ with two directives,
INTEGRITY_PCI_PPC and INTEGRITY_VME_PPC, where the INTEGRITY_PCI_PPC
applies to the CEI-x30 product line under Integrity.
7) Updated the firmware for the CEI-830 to revision 4.5; updated the firmware
for the R830RX-32 to version 1.1. In both cases correcting an issue when
an ARINC 429 message was received following reception of an invalid ARINC
429 message.
Version 1.60 7 May 2008
-------------------------
1) Added support for multiple process access to a single CEI-x30 board. This
support is dependent on the invocation of the new CEI-x30 API routine
ar_set_preload_config() prior to invocation of ar_loadslv() in any process
accessing the board. See the ar_set_preload_config() routine description
in the CEI-x30 User's Manual for more information.
2) Moved C source for the following routines from the files CDEVTIME.C and
LVRTTIME.C to CDEV_API.C and removed both of these files from the CEI-x30-SW
distribution. Note there are two versions of each of these routines, one
for systems supporting a 64-bit integer data type and another for systems
that support only 32-bit integer data types.
acquire_formatted_time_tag (API local)
is_irig_calibrated (API local)
ar_convert_time_to_string
ar_get_time
ar_get_data
ar_set_time
3) Modified the CDEV_API.C include scheme so the respective operating-system
specific interface C source file must be included with CDEV_API.C in the
project for the compilation of the API, as shown below:
VxWorks - CDEV_VXW.C
Linux - CDEV_LNX.C
Windows - CDEV_WIN.C
Integrity - CDEV_INT.C
4) Modified the API initialization routine ar_initialize_api() to reference the
uncompressed firmware header files by default. In order to compile with the
compressed firmware, the CDEV_API.C compilation must now define the compiler
directive COMPRESSED_FW.
5) Added a generic CEI-x30 Configuration File for use with Wind River Tornado
and Workbench VxWorks x86 and PowerPC kernel builds.
Version 1.51 5 March 2008
---------------------------
Added support to the API routine ar_get_boardtype for reporting the board type
RAREC, when the RAR-EC is installed and detected.
Version 1.50 25 January 2008
------------------------------
1) Added support for the RAR-CPCI and RAR-EC products under the Windows
operating system, supporting native CompactPCI and ExpressCard platforms.
2) Updated the Windows low-level device driver interface library to support a
new implementation for accessing all previous Condor Engineering products.
Support for newer Windows Vista Device Manager policies and procedures are
also incorporated into this new version of CEI_LL.DLL.
3) Moved the firmware include declarations from CDEV_API.C to a new header
file called CDEV_FW.H.
Version 1.41 3 September 2007
-------------------------------
1) Added support for the R830RX (32 Channel Receive-only) product to the API.
2) Added R830RX board type support to ar_get_boardtype().
3) Modified the IRIG sample time processing to A) eliminate reporting a time in
which the Day value was zero; and B) properly handle end-of-year rollover
when applying IRIG offset values.
Version 1.40 9 July 2007
--------------------------
1) Added support for the CEI-530 product to the API.
2) Added the "CEI-530" board type to ar_get_boardtype().
3) Added the API routine ar_query_device() to report the type of board
accessed based on the supplied device/board index.
4) Modified the firmware load files to be compressed in the header file arrays
by default. The compiler directive UNCOMPRESSED_FW is provided to allow the
compilation of the API load routines for uncompressed firmware header files.
Version 1.32 13 October 2006
-----------------------------
1) Modified the API routines AR_GETBLOCK & AR_GETBLOCK_T to bypass access of
received message time-tags when the timetag parameter is null.
2) Added the routine AR_MODIFY_MSG_BLOCK to support the modification of
message values on a previously defined block of scheduled messages.
3) Added the compiler directive TARGET_EMBEDDED to omit the execution of most
API routine parameter validation, improving throughput for embedded target
usage.
4) Added the ARU_TX_FIFO_COUNT option validation to the internal API routine
VALIDATE_CHANNEL_REQUEST().
5) Updated the CEI-430 firmware to version 2.0
6) Updated the CEI-830 firmware to version 4.3
7) Added support for the AMC-A30 product
8) Renamed the file extension on the platform specific C source files from .H
to .C, including: CDEV_WIN.C, CDEV_VXW.C, CDEV_LNX.C, CDEV_INT.C, CDEV_LRT.C,
CDEVTIME.C and LVRTTIME.C
9) Converted all API constants, variables and function parameters to the 64-bit
compatible data types as defined in the header file CEI_TYPES.H. While this
altered all function prototype declarations in CDEV_API.H, the actual base
data types for the arguments did not change. Applications written for any
CEI-x30 product will not have to modify their variable declarations for this
modification.
Version 1.31 May 9 2006
------------------------
Support for the CEI-830 N configuration was added, providing support for
Discrete I/O channels.
Version 1.30 April 14 2006
---------------------------
1) Support for the CEI-430 was added, requiring modifications to the following:
CDEV_API.C and CDEV_API.H
a) Renamed the subroutine programX30device() to programXilinx9056().
b) Added the subroutine programXilinx9030 to support 430 FPGA loading.
c) Modified the API routine AR_INITIALIZE_API() to detect the target
board as either a CEI-830 or CEI-430.
d) Added the new differential "discrete" input channel type detection
to the subroutine DETERMINE_CHANNEL_SUPPORT().
e) Added API support for the Differential In/Out Channel Type configuration
channel enable/disable and state set/get to AR_GET/SET_DEVICE_CONFIG().
f) Incorporated the subroutine INITIALIZE_ENH_CHANNELS() into the routine
AR_INITIALIZE_DEVICE().
g) Added the CEI-430 board type support to AR_GET_BOARDTYPE().
CDEV_HW.H - added constants for Differential In/Out and PLX-9030 register
definitions.
CDEV_GLB.H - added constants for Differential In/Out channel types
CDEV_VXW.H - modified acquireDevice() to support multiple boards of
either the CEI-830 or CEI-430 board type.
2) Added support for the Linux operating system - Kernel Version 2.6 for x86
a) Added the compiler directive "_LINUX_X86_"
b) Added the file CDEV_LNX.H containing O/S-specific processing
3) Added support for the Integrity operating system for PowerPC, version 5.2:
a) Added the compiler directive "_INTEGRITY_"
b) Added the file CDEV_INT.H containing O/S-specific processing
4) Modified the routine AR_GETBLOCK_T and the underlying received data IRIG
time conversion routine to decrease the overhead for the received data
time-tag conversion from the 64-bit internal timer reference to the IRIG
time reference.
5) Added channel count reporting options to the AR_GET_DEVICE_CONFIG routine,
reporting a protocol-specific channel count using the following constants:
ARU_CHAN_COUNT_429 448 for ARINC 429 channel count
ARU_CHAN_COUNT_573 449 for ARINC 573/717 channel count
ARU_CHAN_COUNT_DISC 450 for Discrete I/O channel count
ARU_CHAN_COUNT_DIFF 451 for Differential I/O channel count
6) Fixed a bug in the 32-bit integer math time-related functions routine
in LVRTTIME.H, where the addition of both the fixed IRIG and User
Programmable IRIG offsets had previously been omitted.
Version 1.20 20 July 2005
-------------------------
1) The CEI-830-nnnn-J configuration was created, adding support for the ARINC
573/717 HBP and BPRZ protocols. Additional support for these protocols
includes the following enhancements to the API:
a) Modified the CEI-830 firmware load to support the -J configurations
b) Incorporated API routines AR_SET/GET_573_CONFIG and AR_PUT/GET_573_FRAME
2) A bug was fixed in the routine AR_DEFINE_MSG_BLK to correct access to the
application-defined message array.
Version 1.10 18 April 2005
--------------------------
1) The following "testType" parameter options were added to the AR_EXECUTE_BIT
API invocation in support of CEI-830 SRAM memory testing:
AR_BIT_PARTIAL_SRAM - non-destructive test of unused SRAM locations
AR_BIT_FULL_SRAM - destructive test of all SRAM locations
AR_BIT_SELECT_SRAM_MIN to - destructive test of select blocks of SRAM
AR_BIT_SELECT_SRAM_MAX there are 1024 blocks of 512 locations each
2) The compiler directive NO_INT64 was added to CDEV_API.C in support of
VxWorks versions that do not provide for a 64-bit integer data type.
3) The routine AR_GET_STATUS was modified to support FIFO status reporting
for a total of 16 individual receiver FIFO's.
4) A delay was added in the FPGA loading routine ProgramX30Device to account
for a PLX local bus to configuration register write operation anomaly.
5) The routine ProgramX30Device was modified to correct an invalid successful
return status indication, even when the FPGA download failed.
6) A new API routine added to support retrieval of a block of received messages
with 64-bit time-tags, called AR_GETBLOCK_T.
7) A new API routine added to support transmission of a block of messages on
multiple transmit channels, called AR_PUTBLOCK_MULTI_CHAN.
8) When programming a custom bus speed, the slew rate was automatically
adjusted from low to high at a 50KHz transition. This was changed to
perform the low/high slew rate assignment based on a crossover bus speed
of 15KHz.
Version 1.00 2 August 2004
----------------------------
Initial release of the CEI-x30-SW product, supporting the Windows/Intel and
VxWorks/PowerPC host operating systems.
Questions?
----------
If you have any questions or need more technical information, please contact:
GE Intelligent Platforms Embedded Systems, Inc.
6769 Hollister Ave.
Goleta, CA. 93117
USA
phone: (805) 965-8000
fax: (805) 963-9630
e-mail: support.avionics.ip@ge.com
Internet: http://defense.ge-ip.com/products/family/avionics