asynchronous driver support

8
1 EPICS DIAMOND EPICS Meeting, 2003 Asynchronous Driver Support Marty Kraimer, Benjamin Franksen, Pete Owens, Eric Norum, and Dirk Zimoch

Upload: mariam-britt

Post on 30-Dec-2015

19 views

Category:

Documents


0 download

DESCRIPTION

Marty Kraimer, Benjamin Franksen, Pete Owens, Eric Norum, and Dirk Zimoch. Asynchronous Driver Support. Asynchronous Driver Support is a general purpose facility for interfacing device specific code to low level communication drivers. Goal. Why. Example: latest 3.14 version of gpibCore - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Asynchronous Driver Support

1

EPICS

DIAMOND EPICS Meeting, 2003

Asynchronous Driver Support

Marty Kraimer, Benjamin Franksen, Pete Owens, Eric Norum,

and Dirk Zimoch

Page 2: Asynchronous Driver Support

1

EPICS

DIAMOND EPICS Meeting, 2003

Goal

Asynchronous Driver Support is a general purpose facility for interfacing device specific code to low

level communication drivers.

Page 3: Asynchronous Driver Support

1

EPICS

DIAMOND EPICS Meeting, 2003

Why

Example: latest 3.14 version of gpibCore Interfaces supported

NI1014 - vxWorks only VXI11 – Ethernet Gpib LAN servers; ethernet devices that use

VXI11 Serial ports (linux, solaris, vxWorks, LAN serial servers, etc)

Device support is the Winans/Franksen model BUT no streams, devAscii, etc.

DevAscii, onrlSerial, etc. Each has own low level driver support but not complete.

Not possible to get all users to switch to one devXXX Many 10s of thousands of record instances. 100s of device support modules.

Page 4: Asynchronous Driver Support

1

EPICS

DIAMOND EPICS Meeting, 2003

Plan

Provide a facility that can be used by gpibCore, streams, devAscii, devOnrl, mpfSerial, etc. Each must be modified so that

Compatable with existing usage at record/device level Existing driver support replaced by asynchronous driver

support The benefit is that low level drivers can be shared

Initial support will include Gpib Serial Vxi11 (includes HP gpib lan servers)

In the future other protocols especially network based.

Page 5: Asynchronous Driver Support

1

EPICS

DIAMOND EPICS Meeting, 2003

Asynchronous Driver Overview

Asynchronous Driver Components asynQueueManager

Thread for each communication interface connectDevice and connectDriver queueRequest – non blocking – can be called by scan tasks. The

user supplied callback makes calls to drivers that may block. lock/unlock – Provides a transaction service register – Low level drivers register with the asynQueueManager

asynDriver - Every driver must implement this interface report Connect/disconnect to/from communication interface

octetDriver – Most drivers will implement this interface read/write/flush/setTimeout/setEos/peek

Page 6: Asynchronous Driver Support

1

EPICS

DIAMOND EPICS Meeting, 2003

Comment

The above interfaces are sufficient for streams, devAscii, devOnrl, mpfSerial, and most gpibCore device support.

Gpib needs additional support for SRQs, EOI, universial commands, etc.

Serial needs additional support for specifying baud rate, parity, etc.

Page 7: Asynchronous Driver Support

1

EPICS

DIAMOND EPICS Meeting, 2003

Gpib Driver Support

Two layer Needed because of SRQs GpibDriverUser

Implements thread for receiving SRQ requests Implements SRQ polling A gpibDriver registers with gpibDriverUser GpibDriverUser registers with asynQueueManager

GpibDriver One for each gpib interface, e.g. NI1014, VXI-11, IP488. Interface includes asynDriver and octetDriver methods. Thus

device support that only uses read/write requests from gpib supported.

Page 8: Asynchronous Driver Support

1

EPICS

DIAMOND EPICS Meeting, 2003

Status

API was refined with input from all Authors AsynQueueManager is implemented Next step is to port all gpibCore functionality Then ready for streams, etc.