short paper - department of computer science.doc

By Donald Daniels,2014-10-15 15:26
11 views 0
short paper - department of computer science.doc

Creation of an Object Model and Object Oriented API for

    the Windows mLAN Driver

    Shaun Miles

    Computer Science Honours, Rhodes University

    Supervisor: Prof. R. Foss


This short paper is serves the purpose of exposing the inner-workings of the Windows music Local Area

    Network (mLAN) driver to aid in further research of the mLAN system. mLAN represents an innovative

    environment for networked high-speed transmission of real-time audio and MIDI streams. An exploration

    of the mLAN architecture and the Windows Driver Model gives us insight into the core concepts central

    to the creation of the mLAN driver. This understanding will be expressed by developing an object model

    of the mLAN driver.

    model of the mLAN driver. With this as a base to 1. Introduction

     understanding the structure of the mLAN driver, Prompt and on time delivery of data is the there will be a description of the nature of the IO cornerstone of any real-time system. In a Control (IOCTL) codes.

    professional environment, such as a music studio,

    the precise delivery of audio data dictates the The music Local Area Network (mLAN) 2.

    speed (and to an extent, the success) of the Architecture

    project. Legacy studios are an array of equipment

    and a mass of analogue and digital audio cables. Yamaha began developing a system to proved Configuring the studio becomes a task unto its single cable connections between the arrays of own, time consuming and complex. The standard audio studio equipment in an attempt to assortment of analogue and digital cables depends 1394 (Firewire) was chosen as the foundation on on the nature of the equipment used, representing top of which to build the mLAN system, for it a number of different formats of transmitting addressed the many aspects required of the audio and control data. mLAN provides a proposed system. The mLAN system can operate scalable high-performance real-time audio independently of a central server or a host network system, which allows the digital transfer controller, not requiring the use or the power of a of audio and control data. computer. Responsibility of management and

     control of the bus is automatic and falls to This short paper takes a brief look at the mLAN selected nodes on the bus. Using the computer as system and other topics relevant to development a tool to visually model the bus and to manage of a Windows Driver. A look at the concepts the connection of nodes extends the functionality inherent to the development of the mLAN system of the mLAN system.

    will take place in the next section. Exploring the

    underlying mLAN architecture will set the 2.1 IEEE 1394

    context for the mLAN driver. A brief summary of

    relevant concepts of the Windows Driver Model IEEE 1394 is a specification that defines a serial will help to give the needed background to bus architecture with a common set of core understand what the mLAN driver accomplishes. features that is an extension to the Control and This will all help in explaining a high-level object Status Registers (CSR) architecture [Anderson,

Page 1 of 6 Creation of an Object Model and Object Oriented API for the Windows mLAN Driver

    1999]. The CSR is a standard definition to permit chips [AE Notes, 2005]. The chips, ASICs easier implementation of software, and allows (Application Specific Integrated Chips), provide interoperability between Firewire on different an interface between the IEEE 1394 node and the platforms. It is based on the ISO/IEC 13213 studio equipment. They also control the transfer specification that standardises the offset locations bit-rate, the encapsulation and extraction of audio within the initial register address space. The CSR and MIDI data into sequences, and the specifies the arrangement of an addressable space construction of the Common Isochronous range containing data structures that identify the Protocol (CIP) packets. These CIP packets components of the bus, be it a bus, a bridge or a (comprising a CIP header and several CIP data node, the components state and other information. blocks) make up the payload data of the

     isochronous packets that in turn form the Features responsible for the usage of Firewire as isochronous streams. The CIP formatting is based the mLAN system are as follows: on the IEC 61883-1 specification for data flow

    and connection management [AE Notes, 2005]. ; High speed bus with scalable performance

    The payload of the CIP packet is the AM824 (8 The throughput speed of the bus satisfies

    bit label and 24 bit Audio/Music data) block the high bandwidth of any real-time audio

    format given by the IEC 61883-6 specification. processing system, allowing a network of

    The CIP header contains data that provides a many devices capable of transmitting and

    mechanism for synchronising the reassembly of receiving streams of audio data.

    the audio/music data. ; Plug and play support

     The bus orchestrates the automatic

    The isochronous packets are constructed by the configuration of newly added devices.

    IEEE 1394 node Link Layer. Packets are Each time a device is added or removed

    identified by a channel number that has a single the bus automatically re-enumerates itself,

    corresponding stream. Each packet within a forming a new bus topology. This is done

    stream comprises several data blocks, which are independently and without the

    made up of a number of quadlets (4-byte blocks) intervention of a host system.

    [AE Notes, 2005]. Sequences are designated by ; Eliminate host processor/memory bottleneck

    the series of quadlets corresponding to a position Processing any amount of multimedia data

    in each data block of that packet. Sequences and requires a robust system to handle the

    plugs are core to the functionality of the mLAN large and time-dependant flow of data. By

    system, in that each sequence is issued from an eliminating the need for a central server

    output plug and gathered by an input plug [AE the bus is free to automatically direct the

    Notes, 2005]. A plug is an abstraction formed by transfer of data between the devices,

    the Enabler, representing the input and output thereby removing a potential bottleneck.

    capabilities of the studio equipment. The Enabler This is supported by the use of peer-to-

    is software on the computer that interacts with the peer transactions

    Transporters (device-specific enumeration of the ; Support for Isochronous data streams

    plugs) and allows connection a management. It is Firewire provides support for isochronous

    the plugs that the studio equipment can send and packet streaming, satisfying the need for a

    receive data on the bus. constant transfer rate in an audio system.

     This is a high-priority transfer mode that

    A computer must have a driver to know how to guarantees delivery of data at constant

    interface to any attached hardware device. IEEE rate.

    1394 is a bus, such that each device on the bus is

    seen as a node. A host controller (the card that 2.2 The mLAN extension

    allows the computer to connect to the bus) must

    appear as a node in order for the computer to The mLAN system extends the IEEE 1394 CSR

    interact with the bus [McKenzie, 2003]. The architecture by implementing several different

    computer’s host controller must have an IEEE registers and by using a series of application level

Page 2 of 6 Creation of an Object Model and Object Oriented API for the Windows mLAN Driver

    1394 driver in order to interact with the computer. operations on underlying physical devices or Microsoft ships low level drivers for all the major busses connected to the device. Once again, the device and bus types for the vendor-supplied miniport driver is tailored for vendor specific drivers to make use of. These vendor drivers form operations. The hardware bus driver is supplied client drivers that provide access to the vendor by Microsoft and should not be replaced. specific functionality of the device. The Windows