Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
User’s Manual
Copyrights
Software Copyright © 2003-2008 GE Fanuc Intelligent Platforms, Inc. All rights reserved.
User’s Manual Copyright © 2003-2008 GE Fanuc Intelligent Platforms, Inc. All rights reserved.
This software product is copyrighted and all rights are reserved. The distribution and sale of this product
are intended for the use of the original purchaser only per the terms of the License Agreement.
This document may not, in whole or part, be; copied; photocopied; reproduced; translated; reduced or
transferred to any electronic medium or machine-readable form without prior consent in writing from GE
Fanuc Intelligent Platforms, Inc.
Microsoft is a registered trademark of Microsoft Corporation.
Windows is a registered trademark of Microsoft Corporation.
GE Fanuc Intelligent Platforms, Inc. acknowledges the trademarks of other organizations for their
respective products or services mentioned in this document.
Hardware Revision: 1
Software Revision: 2.00
Document Revision: 2.00
Document Date: January 17, 2008
Contents
Tables
Table 1. CEI-715 Channel Configurations ................................................... 3
Table 2. CEI-715-XX (ARINC 429 only) 37-Pin D Subminiature Adapter
I/O Connections................................................................................... 10
Table 3. CEI-715-XX (ARINC 429 only) PC Card P2 I/O Connections .. 11
Table 4. CEI-715-M 37-Pin D Subminiature Adapter I/O Connections .... 11
Table 5. CEI-715-M PC Card P2 I/O Connections .................................... 12
Table 6. CEI-715-41-D / CEI-9100 37-Pin D Subminiature Adapter I/O
Connections ......................................................................................... 14
Table 7. CEI-715-41-D / CEI-9100 PC Card P2 I/O Connections ............ 14
Table 8. CEI-715 Host Memory Map ......................................................... 92
Table 9. Transmitter/Receiver Hardware Channel Allocation ................. 104
Table 10. Transmitter/Receiver Internal Wrap Channel Allocation......... 105
Overview
The CEI-715 is a multiple channel, multiple protocol interface that has
been built to the PCMCIA’s PC Card Specification, Release 95. This is a
small form factor module that can be inserted into compatible PC Card
slots.
Specifications
PC Card Interface
Compatible with PCMCIA’s PC Card Standard – March 1997.
32-bit and 16-bit host support only.
Attribute Memory for CIS and FCR.
Common Memory consisting of 256 bytes allocated for Control, Status,
and Data registers.
Transmit Channels
Up to four independent differential serial transmit channels.
Automatic parity generation.
2048 message transmit buffer for each channel.
Baud rate/slew rate software-programmable for each channel.
Receiver Channels
Up to eight independent differential receive channels.
2048 message buffered mode receive FIFO buffer for each channel.
2048 message merged mode receive FIFO buffer.
Independent merged/individual receive FIFO buffer operation.
64-bit, 1 µsec time-tag is stored with each data element in the FIFO.
parity error detection.
Physical Dimensions
Type II, 85.6 mm x 54 mm x 5mm (per PC CARD specification).
Weight
1.1 ounces.
Configurations
Software Installation
Prior to installing the software for the CEI-715 device, Windows 95, 98A,
and NT resources should be checked. Installation under Windows 98SE,
Me, 2000, and XP does not require resource verification. If you are
installing under Windows 95, 98A, or NT, verify your computer has the
resources available for use by the CEI-715. Only a single CEI-715 can be
installed on any computer under Windows 95 and NT 4.0.
4. Use the Browse button to locate the Setup.exe file in the Setup\Disk1
folder.
5. Double-click the file Setup.Exe. Then, click OK to launch the setup
program.
6. Follow the installation instructions that appear on your screen.
7. Note which device number is allocated during this installation.
8. Following successful completion of the installation, leave the computer
powered-on and do not restart.
Hardware Installation
Once the software has been successfully installed, follow these steps to
install the hardware and Windows device driver.
When Windows Vista prompts to install the driver, select “Locate and
install driver software (recommended)”. It may then display a
Windows Security dialog box regarding the inability to verify the
software publisher of the driver software, select “Install this driver
software anyway”.
Windows Vista, XP, and 2000 do not require a computer restart.
2. If Windows does not detect the new hardware, you must manually
install the device driver:
Click Start and point to Settings. Select the Control Panel.
Select Add New Hardware.
3. If the device drivers aren’t automatically detected and you are
prompted for a path to the driver location, enter C:\Windows\Inf and
click OK.
4. To check for proper driver installation, right mouse click on the My
Computer Desktop icon:
For Windows Vista, XP, and 2000, select the Manage option, then
under System Tools select the Device Manager option, and expand
the Condor Engineering Devices class.
For Windows Me/98/95, select the Properties option to open the
System Properties window.select the Device Manager tab, scroll
down to and expand the WinRT class.
Verify the CEI-715 DevX device is shown with no exclamation
point overlaying the icon. If this is true, the device driver was
properly installed. You have completed installation of the
hardware.
5. If the CEI-715 DevX icon shows an exclamation point overlaying it’s
icon, highlight it and click the Properties button.
6. Select the Resources tab and view which resource is conflicting with
another device in the system.
7. Clear Use automatic settings.
8. Highlight the Interrupt Request resource type, and select the Change
Setting button.
9. Select an available Interrupt Request Value that does not conflict with
any device you are currently using on your computer. Click the OK
button, (if necessary, use an existing interrupt such as a printer or other
device that doesn’t conflict during operation of the CEI-715).
10. Highlight the Memory Range resource type, and select the Change
Setting button.
11. Select an available Memory Range Value that does not conflict with
any device you are currently using on your computer. Click the OK
button, (use the range, or one of the ranges, recorded when you
performed the procedures in the section, “Checking Windows 95 and
98A Resources”).
12. When Windows requests you to restart your computer, restart the
computer and repeat Step 4.
13. When the device driver resources are validated by the operating
system, the exclamation point overlay is removed from the CEI-715
(Board 0) DevX icon appearing in the Device Manager dialog box.
Installation Verification
To verify the device driver is properly installed, run the program, CEI-715
Test Configuration.
1. Click Start, and then Programs.
2. Select GE Fanuc CEI-715 and click CEI-715 Test Configuration.
This program executes an internal wrap test on all available channels
and notifies you of success or failure. If the program reports success
on all channels tested, you are ready to use your new GE Fanuc board.
I/0 Connections
Input/Output Connectors
The following mating connectors are compatible with the connector used
on the CEI-715 PC Card. An adapter cable is supplied providing a
transition from the 15 pin PC Card receptacle connectors to a 37-pin
Subminiature D receptacle connector:
Part No. Description Manufacturer
Directly connected
RMC-E32MY- Pigtail Cable Honda
OM03-A2B3
Using adapter cable 37 pin Subminiature D
Table 2 describes the pin-out for the CEI-715-XX module (-22, -42, -44,
-84), supporting the ARINC 429 protocol and Discrete I/O only. The exact
Table 4 describes the pin-out for the CEI-715-M module, supporting the
ARINC 429, 561, 573/717 and CSDB protocols. Table 5 describes the
CEI-715-M P2 connector pin-out.
Notes: 1. The ARINC 573 RX HI signal is supported on this pin for both the
BPRZ and HBP protocols. The CSDB RX HI signal is also
supported on this pin. The input protocol processed is based on the
selection of the Channel Enable bit field in the respective Receive
Channel Configuration register. See the API routine
AR_SET_DEVICE_CONFIGURATION for the method to modify the
Channel Enable bit field selection for each of these channels.
2. The ARINC 573 RX LO signal is supported on this pin for both the
BPRZ and HBP protocols. The CSDB RX LO signal is also
supported on this pin. The input protocol processed is based on the
selection of the Channel Enable bit field in the respective Receive
Channel Configuration register. See the API routine
AR_SET_DEVICE_CONFIGURATION for the method to modify the
Channel Enable bit field selection for each of these channels.
3. The ARINC 573 TX HI signal is supported on this pin for both the
BPRZ and HBP protocols. The CSDB TX HI signal is also
supported on this pin. The input protocol processed is based on the
selection of the Channel Enable bit field in the respective Transmit
Channel Configuration register. See the API routine
AR_SET_DEVICE_CONFIGURATION for the method to modify the
Channel Enable bit field selection for each of these channels.
4. The ARINC 573 TX LO signal is supported on this pin for both the
BPRZ and HBP protocols. The CSDB TX LO signal is also
supported on this pin. The input protocol processed is based on the
selection of the Channel Enable bit field in the respective Transmit
Channel Configuration register. See the API routine
AR_SET_DEVICE_CONFIGURATION for the method to modify the
Channel Enable bit field selection for each of these channels.
5. These ground pins are provided for shielding if needed.
Notes: 1. The ARINC 573 RX HI signal is supported on this pin for both the
BPRZ and HBP protocols. The CSDB RX HI signal is also
supported on this pin. The input protocol processed is based on the
selection of the Channel Enable bit field in the respective Receive
Channel Configuration register. See the API routine
AR_SET_DEVICE_CONFIGURATION for the method to modify the
Channel Enable bit field selection for each of these channels.
2. The ARINC 573 RX LO signal is supported on this pin for both the
BPRZ and HBP protocols. The CSDB RX LO signal is also
supported on this pin. The input protocol processed is based on the
selection of the Channel Enable bit field in the respective Receive
Channel Configuration register. See the API routine
AR_SET_DEVICE_CONFIGURATION for the method to modify the
Channel Enable bit field selection for each of these channels.
3. The ARINC 573 TX HI signal is supported on this pin for both the
BPRZ and HBP protocols. The CSDB TX HI signal is also
supported on this pin. The input protocol processed is based on the
selection of the Channel Enable bit field in the respective Transmit
Channel Configuration register. See the API routine
AR_SET_DEVICE_CONFIGURATION for the method to modify the
Channel Enable bit field selection for each of these channels.
4. The ARINC 573 TX LO signal is supported on this pin for both the
BPRZ and HBP protocols. The CSDB TX LO signal is also
supported on this pin. The input protocol processed is based on the
selection of the Channel Enable bit field in the respective Transmit
Overview
An extensive software Application Programmers Interface (API) is
supplied for the CEI-715 module. Functions are supplied to setup the
interface and transmit and receive data running under a 32-bit Windows
environment (Vista/XP/2000/NT).
This library of utility routines provides the ability to write your own
programs to interface with the CEI-715. The routines are described here.
They are written in C and are delivered in a Microsoft Visual C++ 6.0
compiler-compatible format. They can be called from other languages by
adhering to the procedures defined in the applicable Microsoft
documentation. The C header files CDEV_API.H and CDEV_HW.H
should be included in all programs that call one or more utility routines.
Windows OS Programming
For the CEI-715 modules, a 32-bit Windows DLL is provided. Any code
that is linked with the respective library must define “_WIN32”. In 32-bit
Windows, all function prototypes are declared “_stdcall”. The API
libraries included in the installation are:
C715_API.LIB Microsoft Visual C++ LIB
C715_API.DLL Microsoft Visual C++ DLL
Included with the installation is the Windows device driver interface
library:
CEI_LL.LIB Microsoft Visual C++ LIB
CEI_LL.DLL Microsoft Visual C++ DLL
When calling the utility routines that return a status value, it is important to
verify the returned status indicates success. Otherwise, the application may
not be aware that an important function may have failed to fulfill a
requested operation.
Visual Basic
A text file, CDEV_API_VB.TXT, is provided to aid the Visual Basic
programmer in using the C715_API DLL in the Examples\VB folder of the
software distribution. This text file contains the Function Declaration and
Global Constant statements required to interface to C715_API.DLL using
Visual Basic 6.0. An alternate text file, CDEV_API_VB_NET.TXT,
contains the declarations required for use with Visual Basic 2005 (.NET).
You can manually copy and paste text from these files to your project, or
you can use the Microsoft API Text Viewer Utility included with Visual
Basic. For more information on the API Text Viewer, consult Microsoft
Visual Basic documentation.
Although you can import the entire CDEV_API_VB.TXT file into your
Visual Basic project, it is recommended that you include only the
declarations, constants, etc. that are needed by your program to reduce
memory usage. The CDEV_API_VB.TXT is designed for use with 32-bit
versions of Visual Basic (Visual Basic 4.0 32-bit, Visual Basic 5.0, or
Visual Basic 6.0).
Example
the Visual Basic variable has a range of -32768 to 32767. The C argument
has a range of 0 to 65535. A Visual Basic error is generated if an integer
type is set to value greater than 32767.
Solutions
There are two solutions to this problem. The easiest is to set the value of
variables directly in Hex. To set an integer variable to 65535 use:
myVariable = &HFFFF. (note the &H syntax) . For setting long variables
use the ending “&” as in myvar = &H12&.
The second solution is to convert the desired unsigned value to the signed
equivalent. This can be accomplished in a small utility function:
Function u_conv (unsigned as Long) as Integer
Dim signed as Integer
If unsigned > 32767 then
signed = unsigned - 65536
Else
signed = unsigned
End If
u_conv = signed
End Function
When using returned values from CEI-715 API functions the opposite
conversion can be made. Often, the returned values from CEI-715 API
functions simply need to be compared to the predefined values.
LabWindows/CVI
API Routines
Return Values
The following return values are used by the CEI-715 API routines. They
are defined in the C header file CDEV_API.H and are used in the
following context:
ARS_FAILURE -1 Requested operation failed
ARS_NODATA 0 No data was received
ARS_NORMAL 1 Normal successful completion
ARS_GOTDATA 4 Data was received
ARS_INVHARVAL 1003 Invalid configuration value
ARS_XMITOVRFLO 1004 Transmit buffer overflow
ARS_INVBOARD 1005 Invalid board argument
ARS_INVARG 1019 General invalid argument value
ARS_WINRTFAIL 1022 Windows device driver error
ARS_CHAN_TIMEOUT 1023 Channel timeout on data function
AR_INITIALIZE_DEVICE
Syntax short ar_initialize_device (short board)
Description This routine resets the device’s receive and transmit FIFO buffers, and
assigns the default state of all channel configuration registers. The
resulting state of the installed protocol configuration registers is defined as
follows:
ARINC 429 Transmitter FIFOs enabled, speed set for 100Kbps and ODD
parity enabled.
ARINC 429 Receiver FIFOs enabled, speed set for 100Kbps, ODD
parity, Merged Mode disabled, and Internal Wrap disabled.
ARINC 561 Receiver FIFO enabled, Merged Mode disabled, and
Internal Wrap disabled.
ARINC 573/717 Transmitter FIFO disabled, Transmitter disabled, speed
set for 768bps, transmission set for BPRZ encoding.
ARINC 573/717 Receiver FIFO disabled, speed set for 768bps/64-word
sub-frames, reception set for BPRZ encoding with Frame-sync auto-
detect enabled, Merged Mode disabled, and Internal Wrap disabled.
CSDB Transmitter FIFO disabled, Transmitter disabled, speed set for
50Kbps.
CSDB Receiver FIFO disabled, set for 50Kbps, ODD parity, Merged
Mode disabled, and Internal Wrap disabled.
AR_INITIALIZE_API
Syntax short ar_initialize_api (short board)
Description This routine acquires the resources allocated by Windows for the device
and initializes API local variables.
AR_BOARD_TEST
Syntax short ar_board_test (short board)
Description This routine performs a basic internal wrap test on the first ARINC 429
channel using the Merged Mode receive configuration.
AR_BYPASS_WRAP_TEST
Syntax short ar_bypass_wrap_test (short board , short bypass)
AR_CLOSE
Syntax short ar_close (short board)
Description This routine releases all resources acquired during the initialization of the
specified device. Once this routine has been executed, invocation of other
API routines will result in the return of an invalid status.
AR_GET_BASE_ADDR
Syntax unsigned long ar_get_base_addr (short board)
Description This routine returns the allocated base address of the specified device.
Return Value Any positive value exceeding $80000 is the base address of the device.
AR_GETBLOCK
Syntax short ar_getblock (unsigned int board, unsigned int channel, int
maxMessages, int offset, int *actualCount, long * data, long *timeTags);
Description This routine retrieves all of the available ARINC messages from the
requested receive channel buffer and copies them to the desired
destination. If the timeTags parameter is not NULL, the 32-bit time-tag
data associated with each retrieved message is also copied.
AR_GET_BOARDTYPE
Syntax unsigned long ar_get_boardtype (short board)
Description This routine returns the API/device type for the specified device.
AR_GET_CONFIG
Syntax long ar_get_config (short board, short item)
Description This routine returns the active state of API information, board level
settings, and limited ARINC 429 channel configuration register bit fields.
It is provided for backward compatibility to CEI-x20 based applications.
The routine AR_GET_DEVICE_CONFIG is the desired routine for
acquiring information regarding channel and board-level configuration.
See the ARU_* definitions in the file CDEV_API.H for the most current
list of parameter options supported by this function and the values
associated with those definitions.
If the specified board is invalid or has not been initialized, this function
returns:
ARS_INVBOARD
ARU_RX_CH01_BIT_RATE –
ARU_RX_CH08_BIT_RATE receiver 1 - 8 bit rate.
ARU_TX_CH01_BIT_RATE –
ARU_TX_CH04_BIT_RATE transmitter 1 - 4 bit rate.
ARU_RX_CH01_PARITY –
ARU_RX_CH08_PARITY receiver 1 - 8 parity.
ARU_TX_CH01_PARITY –
ARU_TX_CH04_PARITY transmitter 1 – 4 parity.
ARU_TX_CH01_SHUT_OFF –
ARU_TX_CH04_SHUT_OFF transmitter 1-4 enable.
AR_GET_DEVICE_CONFIG
Syntax short ar_get_device_config (short board, short channel, short item, short *
value)
Description This routine returns the state of the device configuration register attribute
based on the combined item/value. It is designed to support the ARINC
429 and all discrete/digital I/O configuration register attributes available to
the device.
AR_GET_573_CONFIG
Syntax long ar_get_573_config (short board, short item, long * value)
Description This routine returns the state of the device configuration register attribute
based on the combined item/value. It is designed to support the ARINC
573/717 configuration register attributes available to the device.
AR_GET_561_CONFIG
Syntax long ar_get_561_config (short board, short item, long * value)
Description This routine returns the state of the device configuration register attribute
based on the combined item/value. It is designed to support the ARINC
561 configuration register attributes available to the device.
AR_GET_CSDB_CONFIG
Syntax long ar_get_csdb_config (short board, short item, long * value)
Description This routine returns the state of the device configuration register attribute
based on the combined item/value. It is designed to support the CSDB
configuration register attributes available to the device.
AR_GET_ERROR
Syntax char * ar_get_error (short status);
Description Many of the ARINC routines described here return status values, which
may indicate an error condition. When passed such an error value, this
routine returns a pointer to a message string describing the error.
Review the section, API Routines – Return Values, for the current list of
possible error codes and their explanations.
AR_GET_429_MESSAGE
Syntax short ar_get_429_message (short board, short channel, short waitState,
void * data, void * timetag);
Description This function retrieves the most recent ARINC 429 data and 32-bit time-
tag from the specified channel. If no data is present in the receiver buffer,
this function attempts to retrieve data for up to one-half second. If no data
is present after one-half second, a time-out status is returned. If “no wait” is
specified and no data is available, the return status is so indicated.
AR_GET_561_MESSAGE
Syntax short ar_get_561_message (short board, short waitState, void * data, void *
timetag);
Description This function retrieves the most recent ARINC 561 data and 32-bit time-
tag from the CEI-715-M ARINC 561 channel. If no data is present in the
receiver buffer, this function attempts to retrieve data for up to one-half
second. If no data is present after one-half second, a time-out status is
returned. If “no wait” is specified and no data is available, the return status
is so indicated.
AR_GET_573_FRAME
Syntax short ar_get_573_frame (short board, unsigned int * numberWords,
unsigned short * arincData);
Description This function retrieves numberWords of ARINC 573/717 data from the
ARINC 573/717 channel. If any data is available, the actual number of
words received is indicated in the return value of numberWords. If
automatic synchronization is configured for the ARINC 573/717 channel,
this function will search the receive buffer for any occurrence of the first
sub-frame sync word (defined via invocation of AR_SET_573_CONFIG
with the item set to ARU_573_SYNC_WORD1) and return the specified
number of words of frame data following the instance of that sync word.
With automatic synchronization selected and the full frame size specified
in numberWords, this function will wait until the full frame is received and
copied to the destination array. The acquisition of an entire ARINC
573/717 frame may require up to four seconds to complete.
unsigned int *
numberWords (input/output) As an input this specifies the
number of words to retrieve from the receive
buffer. As an output this indicates how
many words were retrieved from the receive
buffer, less than or equal to the input value
of numberWords.
unsigned short *
arincData (output) The address that is to receive the
frame data. The format of each data word in
the ARINC 573/717 frame is defined as
follows:
15 14 13 – 12 11 - 0
sync word RESERVED subframe data
AR_GET_CSDB_MESSAGE
Syntax short ar_get_csdb_message (short board, short waitState, void * data, void
* timetag);
Description This function retrieves the most recent CSDB data and 32-bit time-tag
from the CSDB channel. If no data is present in the receiver buffer, this
function attempts to retrieve data for up to one-half second. If no data is
present after one-half second, a time-out status is returned. If “no wait” is
specified and no data is available, the return status is so indicated.
AR_GETNEXT
Syntax short ar_getnext (short board, short channel, void * destination);
Description This function retrieves the next unread message from the specified receive
channel. If no data is present in the receiver FIFO buffer, this function
attempts to retrieve data for up to one-half second. If no data is present
after one-half second, a time-out status is returned.
AR_GETNEXTT
Syntax short ar_getnextt (short board, short channel, void * destination, void *
timetag);
Description This function retrieves the next unread message and 32-bit time-tag from
the specified receive channel. If no data is present in the receiver FIFO
buffer, this function attempts to retrieve data for up to one-half second. If
no data is present after one-half second, a time-out status is returned.
AR_GETWORD
Syntax short ar_getword (short board, short channel, long * destination);
Description This function gets the next available message from the requested receive
channel FIFO buffer and copies it to the desired destination. If it
successfully returns data, there may or may not be more data in the buffer.
It only means there was at least one message in the buffer. Subsequent
calls would be required to determine if more data words are available in the
buffer. If this function returns ARS_NODATA, the buffer is empty.
AR_GETWORDT
Syntax short ar_getwordt (short board, short channel, void * destination, void *
timetag);
Description This function retrieves the next unread message and 32-bit time-tag from
the specified receive channel FIFO buffer. If it successfully returns data,
there may or may not be more data in the buffer. It means only that there
was at least one message in the buffer. Subsequent calls are required to
determine if more data words are available in the buffer. If this function
returns ARS_NODATA, the buffer is empty.
AR_GET_DATA
Syntax short ar_get_data (short board, short * channel, unsigned long * data,
unsigned long * timeTagLo, unsigned long * timeTagHi);
Description This function retrieves the next unread message and 64-bit time-tag from
the specified channel. If it successfully returns data, there may or may not
be more data in the buffer. It means only that there was at least one
message in the buffer. Subsequent calls are required to determine if more
data words are available in the buffer. If this function returns
ARS_NODATA, the buffer is empty.
AR_GET_STORAGE_MODE
Syntax short ar_get_storage_mode (short board, short * mode)
Description This routine is only provided for CEI-710 legacy support. It returns the
current state of the API receive storage mode. When the API receive
storage mode is buffered, each receiver is assigned an independent circular
buffer for data storage (merged mode is disabled). When the storage mode
is merged, all receivers are set to enable merged receive mode and data
received on each is stored in the merged FIFO buffer, (referenced via
channel 0). Each receive data API routine processes the active storage
mode internally, acquiring data from the appropriate buffer.
AR_GET_TRANSMITTER_MODE
Syntax short ar_get_transmitter_mode (short board, short * mode)
Description This routine returns the current state of API transmitter mode. The
transmitter mode indicates the hardware definition for adapter output pins
12 and 13 of the P2 connector (connector pins P2-B7 and P2-B9). Valid
protocol transmission for these pins are CSDB, ARINC 573-HBP or
ARINC 573-BPRZ.
Note: CSDB, ARINC 573-HBP and ARINC 573-BPRZ are only supported on
the CEI-715-M.
AR_GO
Syntax short ar_go (short board);
Description This routine assigns the global enable register Global Enable bit to be
enabled for the specified device.
AR_LABEL_FILTER
Syntax short ar_label_filter (short board, short channel, unsigned short label, short
action);
Description This device supports the ability to filter ARINC 429 and 561 messages by
the 8-bit label value. Once filtering has been enabled for a specified
channel/label combination, data received with that label value would be
discarded until label filtering for the specified label has been disabled.
Label filtering is disabled for all labels by default. Label filtering changes
are effective immediately on completion of this routine.
AR_LOADSLV
Syntax short ar_loadslv (short board, unsigned long base_seg, int base_port,
unsigned short ram_size);
Description This routine acquires the address space allocated to the device and invokes
an initialization/reset procedure. If any portion of the initialization fails or
the board is not detected, a status other than ARS_ NORMAL is returned.
AR_NUM_RCHANS
Syntax short ar_num_rchans (short board);
Description This routine retrieves the number of receive channels supporting various
serial protocols installed on the specified device.
Return Value Any value less than 40 number of installed receive channels.
AR_NUM_XCHANS
Syntax short ar_num_xchans (short board);
Description This routine retrieves the number of transmit channels supporting various
serial protocols installed on the specified device.
Return Value Any value less than 40 number of installed transmit channels.
AR_PUT_429_MESSAGE
Syntax short ar_put_429_message (short board, short channel, long data);
Description This routine places the provided ARINC 429 message data in the specified
channel transmit buffer. If the specified transmit buffer is full, an overrun
status is returned.
Note: Since ARINC data rates are relatively slow, a moderately fast PC can
generate data at a much faster rate than data is transmitted.
AR_PUT_573_FRAME
Syntax short ar_put_573_frame (short board, unsigned int numberWords,
unsigned int * transmitCount, unsigned short * arincData);
Note: Since ARINC data rates are relatively slow, a moderately fast PC can
generate data at a much faster rate than data is transmitted.
AR_PUTBLOCK
Syntax short ar_putblock (unsigned int board, unsigned int channel, int
maxMessages, int offset, long * data, int *actualCount);
Description This routine transfers the array of messages to the specified channel
transmit buffer. When this routine returns, the data has not necessarily
been sent, it has only been placed in the transmit buffer. If other data is in
the transmit buffer ahead of it, this data is transmitted in turn.
Note: Since most transmit data rates are relatively slow, almost any PC can
generate transmit data at a much faster rate than data is transmitted.
AR_PUT_CSDB_MESSAGE
Syntax short ar_put_csdb_message (short board, long data);
Description This routine transfers the CSDB message data to the device CSDB transmit
buffer. If the CSDB transmit buffer is full, an overrun status is returned.
Note: Since CSDB data rates are relatively slow, a moderately fast PC can
generate data at a much faster rate than data is transmitted.
AR_PUTWORD
Syntax short ar_putword (short board, short channel, long arincdata);
Description This routine transfers the data word to the specified channel transmit
buffer. The transmit channel reference is based on the device channel
definition and is independent of the protocol assigned to that channel.
Note: Since most transmit data rates are relatively slow, a moderately fast PC
can generate data at a much faster rate than data is transmitted.
AR_RESET
Description This routine assigns the global enable register Global Enable bit to be
disabled and reinitializes the device to the same initial state as that
following an invocation of AR_LOADSLV. As a result, all FIFO buffers
will be reset and any data contained therein will be lost.
AR_SET_CONFIG
Syntax short ar_set_config (short board, short item, unsigned long value);
Description This routine is designed to provide compatibility with other ARINC device
APIs. It is provided for backward compatibility to CEI-x20 based
applications. The routine AR_SET_DEVICE_CONFIG is the
recommended routine for manipulating device configuration attributes.
ARU_RX_CH01_BIT_RATE –
ARU_RX_CH08_BIT_RATE receiver 1 - 8 bit rate.
ARU_TX_CH01_BIT_RATE –
ARU_TX_CH04_BIT_RATE transmitter 1 - 4 bit rate.
ARU_RX_CH01_PARITY –
ARU_RX_CH08_PARITY receiver 1 - 8 parity.
ARU_TX_CH01_PARITY –
ARU_TX_CH04_PARITY transmitter 1 - 4 parity.
AR_SET_DEVICE_CONFIG
Syntax short ar_set_device_config (short board, short channel, short item, short
value);
Description This is the recommended routine to define the general device, ARINC 429,
and discrete/digital I/O configuration attributes. Protocol-specific items
supported by this routine are intended for the ARINC 429 channels. See
the routines AR_SET_573_CONFIG, AR_SET_561_CONFIG and
AR_SET_CSDB_CONFIG regarding support for manipulation of
configuration attributes for protocols other than ARINC 429.
Note Any raw transmit baud rate value resulting in a bus speed at or below
17KHz should by specified with a slow slew rate selection. Raw transmit
baud rate values above 17KHz should be specified with a fast slew rate
selection.
Note: See Table 10 for the internal wrap channel definition for your CEI-715
configuration.
AR_SET_573_CONFIG
Syntax short ar_set_573_config (short board, short item, long value);
Description This is the recommended routine for manipulating the ARINC 573/717
channel configuration attributes.
AR_SET_561_CONFIG
Syntax short ar_set_561_config (short board, short item, long value)
Description This is the recommended routine for manipulating the ARINC 561 channel
configuration attributes.
AR_SET_CSDB_CONFIG
Syntax long ar_set_csdb_config (short board, short item, long value)
Description This is the recommended routine for manipulating the CSDB channel
configuration attributes.
Note Any raw transmit baud rate value resulting in a bus speed at or below
17KHz should by specified with a slow slew rate selection. Raw transmit
baud rate values above 17KHz should be specified with a fast slew rate
selection.
AR_SET_RAW_MODE
Syntax short ar_set_raw_mode (short board, short direction, short channel, short
control);
Description This routine is designed to provide compatibility with other ARINC device
APIs. The routine AR_SET_DEVICE_CONFIG is the recommended
routine for manipulating the channel parity attribute.
Each transmit and receive channel can be configured to run in "raw" mode,
where parity is disabled. When raw mode is selected every 32-bit ARINC
word is transmitted or received with the parity bit (msb) unchanged. This
differs from a standard ARINC 429 data transfer in which the message
parity is always calculated. Raw mode is typically used for older ARINC
specifications such as ARINC 575.
AR_SET_ STORAGE_MODE
Syntax short ar_set_storage_mode (short board, short mode);
Description This routine is designed to provide compatibility with other ARINC device
APIs. The routine AR_SET_DEVICE_CONFIG is the recommended
routine for manipulating the receive channel merged mode operation. This
device is capable of receiving data in individual FIFO buffers or in a single
merged FIFO buffer on a channel-by-channel basis. This function allows
you to a single invocation to select the universal receive mode for all
channels on the device as BUFFERED or MERGED.
AR_SET_TRANSMITTER_MODE
Syntax short ar_set_transmitter_mode (short board, short mode)
Description This routine is designed to provide compatibility with other ARINC device
APIs. The routine AR_SET_DEVICE_CONFIG is the recommended
routine for manipulating the CSDB and ARINC 573/717 transmitter enable
and encoding operations. This routine defines the state of the adapter
output pins 12 and 13 (connector pins P2-B7 and P2-B9), to support CSDB
or ARINC 573.717 transmission. When either ARINC 573/717 encoding is
specified, the transmitter encoding in the mode register is also defined.
Valid protocol selections for the output mode are CSDB, ARINC 573/717
transmitter are Harvard Bi-phase (HBP) and Bi-polar Return-to-Zero
(BPRZ). The transmitter mode is assigned to be BPRZ during
initialization.
AR_STOP
Syntax short ar_stop (short board);
Description This routine assigns the global enable register Global Enable bit to be
disabled for the specified device.
AR_VERSION
Syntax void ar_version (char *verstr);
Description This routine retrieves the current software version number of the device
API.
AR_WAIT
Syntax void ar_wait (float nsecs);
Description This routine delays the calling application by the specified number of
seconds. The delay is based on the Win32 OS timeGetTime() utility.
Overview
This chapter describes the low level programming of the CEI-715.
Note: The information in this chapter is provided if you intend to author your
own software interface and device driver.
ARINC 429 requires bit 32 to be parity. The hardware can either calculate
this automatically or pass through the raw value you provide (see the
Transmit Configuration register description). The latter case is useful for
applications that must support some forms of ARINC 575 and other similar
protocols that require bit 32 for data.
CEI-715 Interface
Table 8 summarizes all memory-mapped registers for the CEI-715 devices.
They are described in detail in the following sections.
0x0050 Common Read only Receive Buffer Word 0 (time-tag least significant 32 bits)
0x0054 Common Read only Receive Buffer Word 1 (time-tag most significant 32 bits)
0x0058 Common Read only Receive Buffer Word 2 (receive channel identifier)
The fields in the Receive Channel Select register are described as follows:
ARINC ARINC
Not Used
Not Used
Not Used
Merge ARINC Internal
Baud Channel 717 Auto 717 Parity
Mode 717 Wrap
Rate Enable Sync Rate & Enable
Enable Encoding Enable
Enable Size
BAUD RATE 2 This bit field controls the baud rate for
the ARINC 429, ARINC 561, and Baud Rate =
CSDB protocols. The value of this
field is used as a divisor for the 16MHz 16,000,000 / (N+2)
clock reference.
The label filter table contains a location for each ARINC 429/561 label
value from octal 000 to 377. When the Label Filter Enable bit is zero for a
specified label, any message received containing that label value will be
recorded in the FIFO. When the Label Filter Enable bit is set to one for a
specified label, any message received containing that label value will not
be recorded in the FIFO.
For the Receive Status register, a FIFO Not Empty bit value of one
indicates data is available in the respective receive channel FIFO. A FIFO
Not Empty bit value of zero indicates there is no data in the respective
receive channel FIFO
The Receive Channel Type bit field contains the channel type assigned to
the channel currently selected in the Receive Channel Select register.
Values available for this bit field are defined as follows:
When the Receive Status register indicates the FIFO is not empty, Receive
Buffer Word 0 contains the least significant 32 bits of the 64-bit time-tag.
The resolution of this time-tag low word is 1μsec.
When the Receive Status register indicates the FIFO is not empty, Receive
Buffer Word 1 contains the most significant 32 bits of the 64-bit time-tag.
The resolution of this time-tag high word is approximately 71.58 minutes.
Channel
When the Receive Status register indicates the FIFO is not empty, Receive
Buffer Word 2 contains the channel on which this data was received. This
information is useful when the Merged Mode channel is enabled and
utilized for the respective receive channel.
Data
When the Receive Status register indicates the FIFO is not empty, Receive
Buffer Word 3 contains the data that was received.
Note: When the host reads the most significant byte of the long word 3, the
receiver FIFO for the selected channel is incremented to the next entry.
This could result in a FIFO Not Empty reset in the respective Receive
Status register if the FIFO becomes empty. This implies that Receive
Buffer Word 3 must be the last register accessed when reading a FIFO
buffer entry. This also implies that it is NOT necessary to read all four
Receive Buffer Word registers from the FIFO if the data is not needed.
The format for the data retrieved from Receive Buffer Word 3 is dependent
on the protocol assigned to the respective channel. The protocol data
format is described as follows:
If the Parity Enable bit is set to one in the respective Receive Configuration
register, the Parity Indication will be set by the device to indicate the parity
of the message. A Parity Indication bit value of zero indicates this message
was received with odd parity, where a Parity Indication value of one
indicates the message was received with even parity. If the Receive
Configuration register Parity Enable bit is set to zero, this bit is not
manipulated by the device; instead, it reflects the value of bit 31 as
transmitted from the ARINC 429 source.
Sync Sub-frame
Unused Unused Data Word
Indication Identification
When the Sync Indication bit is set to one, it is an indication this word was
detected as a sync word. A Sync Indication bit value of zero indicates the
message was treated as a data word. The Sub-frame Identification bit field
identifies the sub-frame assignment for this word; where a value of one
indicates sub-frame 1, two indicates sub-frame 2, three indicates sub-frame
3, and zero indicates sub-frame 4.
If the Parity Enable bit is set to one in the respective Receive Configuration
register, the CSDB message Parity Indication bit field is set by the device
to indicate the type of parity calculated for the Data Word portion of the
received message. A Parity Indication bit value of zero is an indication the
message was received with odd parity. A Parity Indication bit value of one
is an indication the message was received with even parity.
The fields in the Transmit Channel Select register are described as follows:
Field Description Values
This bit field is used to select the channel basis when
CHANNEL referencing the transmit configuration, status, and 0 to 255
FIFO buffer registers.
CONFIGURATION
Not Used Not Used
REGISTER SELECT
Parametric Mode
Transmit Disable
ARINC 717 HBP
Channel Enable
Parity Enable
Even Parity
Baud Rate
Slew Rate
Gap Error
Not Used
Encoding
Encoding
Unused
Rate
ARINC 717 HBP This bit enables the ARINC 573/717 0 = disabled (reset condition)
ENCODING2 Harvard Bi-Phase (HBP) encoding
transmitter. 1 = enabled
1The ARINC 573/717 Baud Rate bit field is only supported by channels
with a Transmit Channel Type indicating ARINC 717.
2 These bits enable and disable external transmission. Generally, only one
encoding transmitter will be enabled at any given time, though it is
acceptable to simultaneously transmit using both encoding methods on
devices that support simultaneous transmission. If both encoding methods
are enabled on devices that do not support simultaneous HBP and BPRZ
transmission, HBP encoding takes precedence over BPRZ. For an internal
wrap test that does not affect external equipment, both bits should be
disabled. At reset, they both are reset. These enable bits do NOT cause the
transmitters to go tri-state.
3The Baud Rate bit field is only supported by channels with a Receive
Channel Type indicating ARINC 429, ARINC 561, or CSDB.
For the Transmit Status register, a FIFO Full bit value of one indicates
there is no room available in the respective transmit channel FIFO. A
FIFO Full bit value of zero indicates data can be inserted into the
respective transmit channel FIFO.
The Transmit Channel Type bit field contains the channel type assigned to
the channel currently selected in the Transmit Channel Select register.
Values available for this bit field are defined as follows:
Field Description Values
TRANSMIT This bit indicates the channel type 0x00 = unassigned channel
CHANNEL assigned to the channel currently 0x01 = ARINC 429
TYPE selected in the Transmit Channel Select
register. 0x02 = ARINC 573
0x03 = ARINC 561
0x04 = CSDB
0x05, 0x06, 0x07 = reserved
0x08 = Discrete Output
0x09 = Digital Output
0x0A – 0x0F = reserved
Not Used
Data
When the Transmit Status register indicates the FIFO is not full, Transmit
Buffer Word 3 can be defined for transmission on the respective channel.
Note: When the host writes the most significant byte of the long word 3, the
transmitter FIFO for the selected channel is incremented to the next
entry. This could result in a FIFO Not Full reset in the respective
Transmit Status register if the FIFO becomes full. This implies that
Transmit Buffer Word 3 must be the last register accessed when writing
a transmit FIFO buffer entry. This also implies that it is NOT necessary
to write all four Transmit Buffer Word registers.
The format for the data written to Transmit Buffer Word 3 is dependent on
the protocol assigned to the respective channel. The protocol data format
is described as follows:
ARINC 573 data is assigned to the lower 12 bits of the 32-bit word.
The fields in Transmit Buffer Word 3 for the CSDB Data Format are
described as follows.
Channel Configuration
Channel Selection
The following hardware channel allocation is used with the Channel Select
registers when referencing the receive and transmit configuration, status,
and FIFO buffer registers.
RX TX
Channe Channe Channel Type and -41-D -84 -44 -42 -22 -M
l l Number -9100
Select Select
128-131 Discrete output #1 - #4 X X X X X X
160-171 Digital output #1 - #12 X
Internal Wrap
The CEI-715 and CEI-9100 internal wrap configuration defines which
ARINC 429 receiver-transmitter paths are assigned when internal wrap is
enabled. The following table demonstrates the internal wrap receiver
assignment based on the transmitter configuration:
Receive Threshold