TOC PREV NEXT INDEX

Put your logo here!


5 REFERENCE

5.1 Functions

Man-pages of all public driver functions in alphabetical order.

5.1.1 iser(4)
NAME
iser - Device Description of ISER Serial Interface Board


DESCRIPTION
This page describes the hardware-specific configuration options of
the ISER serial interface board in the VLT environment.

One VMEbus board corresponds to ten devices.

Each device provides a programmable serial channel.



ADDRESSES AND INTERRUPTS
Only one ISER board is foreseen per system:

Devices Base-Addr A24 IRQ-Lev IRQ-Vec
---------------- --------------- ------- --------
/iser0 .. /iser9 0xd00000 1 236..255


Currently these values are hard-coded in the driver, and
therefore not user-configurable.


BOARD LAYOUT
User-configurable elements are located on the board as follows:

P1 P2
___________________ ___________________
+-|___________________|__--__-|___________________|-+ back
| __ __ |
| -- J7 J8 |
| -- |
| J2 |
| |||J6 |||J9 |
| |
| |
| |
| |
| |
| |
===================================================== front



JUMPERS
The jumpers must be set as follows for the respective device:
(the orientation in the table corresponds to the BOARD LAYOUT)

J2, J7, J8 Base address setting:
J7, J8 omitted
board 1: J2 5-6 installed
board 2: J2 7-8 installed

J6, J9 Voltage supply of the piggy-backs
2-3 installed


SEE ALSO
iserDrv(1),
VME ISER8 User Manual, esd GmbH, Hannover




- - - - - -
Last change: 27/10/96-13:48

5.1.2 iserDrv(1)
NAME
iserDrv - iser serial driver



DESCRIPTION
This is the driver for the ESD-ISER (10 channels).


USER CALLABLE ROUTINES
Most of the routines in this driver are accessible only through the I/O
system. Two routines, however, must be called directly, iserDrv to
initialize the driver, and iserDevCreate to create devices.


ISERDRV
Before using the driver, it must be initialized by calling the routine:
.CS
STATUS iserDrv ( )
.CE
The status returned is OK.
This routine should be called exactly once, before any reads, writes, or
iserDevCreates. Normally, it is called from usrRoot.


CREATING TERMINAL DEVICES
Before a terminal can be used, it must be created. This is done
with the iserDevCreate call.
Each port to be used should have exactly one device associated with it,
by calling this routine.

.CS
STATUS iserDevCreate (name, channel, rdBufSize, wrtBufSize)
char *name; * Name to use for this device
int channel; * Physical channel for this device (0-9)
int rdBufSize; * Read buffer size, in bytes
int wrtBufSize; * Write buffer size, in bytes
.CE
For instance, to create the device "/iser4" on the fifth ISER-channel,
with buffer sizes of 512 bytes, the proper call would be:
.CS
iserDevCreate ("/iser4", 4, 512, 512);
.CE


IOCTL
This driver responds to all the same ioctl codes as a normal ty driver.
The baud rates available are normally 50, 75, 110, 150, 300, 600, 1200,
2400, 4800, 9600, 19200 and 38400. For the upper 2 channels ( 8 & 9 )
are also 76800 and 115200 Baud available. If none if these is written,
the ISER takes the nearest one, who's available (refer to the ISER-manual).

requ: I arg: I action
-----------+----------+---------------------------------------
FIOFLUSH I 0 I Flush TyCo buffer
(2) I 1 I Full Flush (including board buffer)
-----------+----------+---------------------------------------

Additionally it is possible, to set character-length, number of stopbits,
parity-mode and special for ISER-applications handshake-mode, rx-mode and
rx-record-length. To do this, there are additional defines in ioLibAdd.h
with following meanings:

requ: I arg: I action
-----------+----------+---------------------------------------
FIOCHARLEN I 5...8 I set characterlength to 5...8 bit
(400) I else I Error (Return -1)
-----------+----------+---------------------------------------
FIOSTOPBIT I 1 or 2 I set number of stopbits
(401) I else I Error (Return -1)
-----------+----------+---------------------------------------
FIOPARITY I >0 I set even parity
(402) I =0 I set no parity
I <0 I set odd parity
-----------+----------+---------------------------------------
FIOHNDSHK I 0 I Hardware-handshake DTR/CTS
(403) I 1 I Software-handshake XON/XOFF
I 2 I Modem-handshake RTS/CTS
I 3 I no handshake
I 4 I RS-485-operation, no handshake
I 5 I RS-422-operation, XON/XOFF-handshake
I else I Error (Return -1)
-----------+----------+---------------------------------------
FIORECLEN I 0 I use maximal record-length (=1024)
(420) I 1..1024 I definable record-length
I else I Error (Return -1)
-----------+----------+---------------------------------------
FIORXMODE I 1 \ I EOT (end_of_text) \ use specified char
(421) I 2 >add I LF (line_feed) > as end-condition
I 4 / I CR (carriage_return)/ (addable)
I 0 I use only record-length as end-condition
I <0 I binary mode, no end-condition, no XON/XOFF
I >7 I Error (Return -1)
-----------+----------+---------------------------------------
FIOTIMOUT0 I 0 I no timeout to receipt of first character
(422) I 1..32767I timeout to receipt of first character (milliseconds)
-----------+----------+---------------------------------------
FIOTIMOUT1 I 0 I no timeout between receipt of further characters
(423) I 1..32767I timeout to time between receipt of further
I I characters (milliseconds)


The end-condition means the condition, on which the ISER transmits
the received characters to the master. Such an end-condition may be
one of the above character (if defined), a timeout or the defined
record-length. So if you define a record-length of 1, the ISER works
like a normal UART.
The default-set of the ISER after iserDrv is:
9600 Baud, 8 bit, no parity, 1 stopbit, max. recordlength, rxmode 7,
no timeout.
For example to change to modem-hardware-handshake type:
-> x=open("/iser4",0)
-> ioctl(x,FIOHNDSHK,2)
-> close(x)


INTERRUPT
The used interrupt-vectors and -level are defined in iserDrv.h and are
changable. The defined vector is a basevector and is free programmable.
The two vectors used for receipt and transmission for a channel are the
basevector plus 2*'channel'(+1).


HANDSHAKE
This driver uses the ISER-own handshake-possibilities (refer to the
manual). The VxWorks-implemented software-handshake is not useful
because of the large local rx/tx-buffer. So this bit is masked out in
the ioctl-function.

INSTALLING MORE ISER'S
To install more ISER's just increase MAX_ISERS in iser.h and write the
jumpered baseaddress in common/esdadr.h (iser_base2, iser_base3).



- - - - - -
Last change: 14/10/99-09:31



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX