Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment • FAST SHIPPING AND DELIVERY • TENS OF THOUSANDS OF IN-STOCK ITEMS • EQUIPMENT DEMOS • HUNDREDS OF MANUFACTURERS SUPPORTED • LEASING/MONTHLY RENTALS • ITAR CERTIFIED SECURE ASSET SOLUTIONS SERVICE CENTER REPAIRS Experienced engineers and technicians on staff at our full-service, in-house repair center WE BUY USED EQUIPMENT Sell your excess, underutilized, and idle used equipment We also offer credit for buy-back
MDR MIDAS Data Recorder User Guide Doc version 1.4.7, 27 November 2001 for software from version 1.4.4 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.
The information in this document is subject to change without notice and should not be construed as a commitment by VMETRO. While reasonable precautions have been taken, VMETRO assumes no responsibility for any errors that may appear in this document. Copyright ©1998-2001 VMETRO This document may not be furnished or disclosed to any third party and may not be copied or reproduced in any form, electronic, mechanical, or otherwise, in whole or in part, without the prior written consent of VMETRO Inc.
Warranty VMETRO products are warranted against defective materials and workmanship within the warranty period of 1 (one) year from the date of invoice. Within the warranty period, VMETRO will, free of charge, repair or replace any defective unit covered by this warranty, shipping prepaid. A Return Authorization Code should be obtained from VMETRO prior to the return of any defective product. With any returned product, a written description of the nature of the malfunction should be enclosed.
Conventions used in this document The following section describes conventions used in this document. Symbols Meaning The STOP symbol indicates a section of critical importance. Overlooking this information may cause damage to the MDR and/or other equipment. Indicates important, but not crucial information. Still, you should take notice if you want to use all capabilities built into the MDR.
Contents 1 Introduction 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 2 3 5 6 7 25 Configuring the MDR Host Software for Direct Connection ................................... 25 Installing the Fibre Channel driver for Windows or Solaris ..................................... 26 Connecting the MDR Shell to the disk subsystem.................................................... 29 Host Network and Direct Connection MDR 6.1 18 MDR Host Software ...............................................................
8.1 8.2 8.3 8.4 8.5 8.6 8.7 9 MDR Operations 9.1 9.2 9.3 10 Header Files.............................................................................................................. 45 Error Conditions ....................................................................................................... 46 API Function Description......................................................................................... 46 MDR API Example Programs ........................................................
1 Introduction The MDR (MIDAS Data Recorder) is a family of ready-to-run VMEbus-based subsystems that offer up to Terabytes of real-time permanent recording or playback of high-speed digital data. Continuous recording at rates up to 90 MB/s can be performed for minutes or even hours, limited only by the capacity of the disk storage system. The MDR is typically used to record raw sensor data directly from the data path between A/D converters and DSP processors in systems such as radars, sonars etc.
• • MDR Server (can only be run on an MDR board) MDR Shell (MDR Client) Standalone module Using the MDR software and firmware, the MDR system may be operated in either of four modes depending upon system requirements: 1. MDR Standalone - MDR-2x0 runs both MDR Server and Shell. No Host workstation required. Monitor with VT100 terminal. 2. Host Network-based - MDR Shell on Host workstation and MDR Server on MDR-2x0 board.
bration and extended temperature range for both the MDR board and the disk storage system is under development. Note that it is not possible to write recordings in ASCII format with the MDR. The MDR only writes recordings in a binary format. The user must convert data accordingly. 1.1 Features & Performance MDR subsystems incorporate the features leading to the associated benefits.
1.2 Hardware Components The components available in the current MDR series contain powerful Twin i960 & Memory and support either two (2) or five (5) PMC Carriers (MDR-220 or MDR-250). The architecture couples each processor and memory array to a PMC I/O Sub-System, for maximum data throughput. These are MIDAS boards with the necessary software embedded in on-board FLASH memory to support the MDR PMC combinations. 1.2.
1.2.2MDR-250 Five PMCs positions for more versatile I/O configurations. This configuration is the preferred method for providing Ethernet connection to a host computer, because an additional VME SBC is not required to provide the network gateway. For further details, see Appendix E: MDR Standard Configurations. 1.3 Software Components MDR-HOST-SW MDR-xx0 MDR host software contains MDR Shell and API for host workstation (Only one required per project). Base software run-time licenses included. 1.
1.6 MDR Preloaded Software (MDR Firmware) The most significant software module in the MDR system is the MDR Server. The MDR Server processes all accesses to the disk array (except Direct Connection). The key configuration files used by the MDR Server are listed here. • mmon.ini – must be present to run the MDR, seldom changes • vxbsp.ini – user may need to edit this file to modify parameters • vxbp.txt – contains VxWorks boot parameters. User will only edit when changing boot method (i.e.
control over the start block and size parameters for each recording. An example of the recording table is shown after several recordings have been defined. Note that the prompt at the bottom always displays the name and size of the current recording. Recorder Info: Total capacity Capacity used Capacity available Largest recording size Recorder block size Number of recordings RecNo 1 2 Blocks 0 4 5 254 : 33.9 GiB : 510.0 MiB : 33.4 GiB : 33.4 GiB : 2.0 MiB : 2 UserSize 10.0 MiB 00.
1.9 Data Readback MDR provides several ways to read recorded data back from the disk storage system to a host system (or vice versa for preload in a playback application). 1.9.1Copy to File on Host via network Recorded data (or part of it) may be copied to one or several files on the host via the MDR network connection (Ethernet). The read back rate via Fast Ethernet is typically less than 1 MB/s. 1.9.
1.10 Supported PMCs The PMCs currently supported by the MDR module are: • VMFC-2100 Fibre Channel PMC • DPIO FPDP PMC • DE520 Ethernet PMC • SC-PMC/875 SCSI PMC 1.10.1 Fibre Channel Storage The permanent storage medium used by MDR is based on commercial hard disks using the FC-AL (Fibre Channel Arbitrated Loop) interface. MDR gets its disk recording performance from using an array of Fibre Channel disks such as RAID (Redundant Arrays of Inexpensive Disks) or JBOD (Just a Bunch Of Disks) units. 1.10.
2 Hardware Installation 2.1 Handling Precautions The MDR hardware components are sensitive to static electricity and can be damaged by a static discharge. Always wear a grounded anti-static wrist strap and use grounded, static protected work surfaces when touching the hardware components. When the components are not in use, always keep them in the antistatic protective envelope. 2.1.1Unpacking All precautions described above must be taken when unpacking the MDR module from its shipping package.
2.2 MDR Module Board Layout The MDR module is shipped with the PMC Module(s) already mounted on the MDR220 or MDR-250 board. MDR-220 Top View & Front Panel (with typical PMC population) MDR-250 Front Panel (with typical PMC population) MDR User Guide Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.
2.
2.4 Installing the MDR Module into the VME Chassis WARNING: Do not install the board in a powered system! The MDR board can be installed into any VMEbus slot in a 6U VMEbus chassis, as long as the daisy-chains for the bus grant and interrupt acknowledge signals are continuous from slot#1 to the slot in which the MDR board is installed. Installation into slot#1 of a VMEbus system is automatically detected, as specified in the VME64 specification. System controller functions are also enabled consequently. 2.
3 Standalone MDR The MDR system is delivered as a pre-programmed ready-to-run system. In this configuration the built-in RS-232 serial port and user interface enables Standalone operation from a VT100 terminal or terminal emulator. 3.1 MDR Software The MDR is shipped with several software modules preloaded into FLASH. These modules consist of the firmware, mdrvxst.hex, and MDR configuration files. The MDR configuration files are the following: • mdr.ini MDR-specific configuration parameters file • vxbsp.
user (u) User name that VxWorks uses to access host. User must have read access to boot-image file. ftp password (pw) User password. If omitted, then RSH is used instead of FTP. flags (f) Configuration options. Multiple options can be enabled using hexadecimal sum of values.
boot device : sm processor number : 0 host name : . file name : . inet on ethernet (e) : . inet on backplane (b) : host inet (h) : . gateway inet (g) : . user (u) : . ftp password (pw) (blank = use rsh): . flags (f) : . target name (tn) : startup script (s) : . other (o) : . For standalone operation, the boot device parameter must be set to a period “.” should be set to the MDR Server hostname that will be used to communicate with the MDR system.
3.5 Converting from Network to Standalone MDR To convert the MDR from Host based to Standalone, the following procedure may be used. Essentially, the user downloads the file vxbp-nonet.txt from the Host in place of the vxbp.txt file. This action configures the board for standalone operation. 1) On the MDR board, enter the Midas Monitor and delete vxbp.txt: # midel vxbp.txt 2) On the Host, go to /mdr/etc, and retrieve the size of the file vxbpnonet.txt (in bytes).
4 Host Network-Based MDR In Host Network-based MDR, the Host computer communicates with the MDR using TCP/IP. The Host runs the MDR Shell (client) and the MDR board runs the MDR Server. The connection is TCP/IP over either Ethernet or Shared-Memory Network. The Ethernet option occupies a PMC slot; therefore, the MDR-250 is required. In the SharedMemory Network option, a separate VME SBC is needed to provide a network gateway. 4.
To operate the MDR via the remote shell application (mdrshell on Solaris and mdrshell.exe on Windows), an external network (typically Ethernet) is required. On MDR-250 units, the interface may be provided by an Ethernet module purchased as one of the PMC options installed on the MDR unit itself. With MDR-220 units, the interface to the external network must be provided by an additional SBC using Wind River Systems' Shared-Memory Network (for instance, an SBC running VxWorks 5.
4.3 Configuring the MDR Shell As part of the configuration, the MDR host software needs to read some parameters from a configuration file called mdr.ini. This file is stored in the mdr-host-sw/etc directory. In order for the MDR host software to know where to find this file, the environment variable MDR_BASE needs to point to the base of the MDR software installation. Therefore, the user has to declare an environment variable called MDR_BASE. This variable specifies the base directory of the ‘MDR tree’.
The values of items s1,s2,…sn may specify the hostname(s) of one or several MDR systems that the user want to control with the MDR shell program. In the above example, only one MDR called midas is specified. All hostnames/IP addresses in the [Servers] section have to be located in the hostname database being used by the computer running the MDR shell. The MDR shell program retrieves the IP address corresponding to the hostname for each host.
set to the slot location of the installed device should be set to the MDR Server hostname that will be used to communicate with the MDR system. use an available IP address. 4.
The above Backplane IP address and Gateway IP address are valid examples – you may use IP addresses that are appropriate to your installation. To configure the MIDAS-120 network gateway, allow the MIDAS system to start up and then use the bootChange command to set the boot parameters as follows: boot device : mdc processor number : 0 host name : . file name : . inet on ethernet (e) : inet on backplane (b) : 192.168.0.100 host inet (h) : . gateway inet (g) : . user (u) : .
4.6 Connecting to the MDR Server from the MDR Shell To connect to an MDR board, the host computer and the MDR board must be on the same network. Also, the MDR board must be assigned a valid IP address. Also, ensure that UseHostFcAdapter = 0 in the host mdr.ini file. The mdrshell program can run on both a standalone MDR system and on a host computer. The difference between the two options is mainly the sets of commands available. To start the mdrshell program on a host computer: 1.
5 Host Direct-Connection MDR 5.1 Configuring the MDR Host Software for Direct Connection MDR provides several ways to read recorded data back from the disk storage system to a host system (or vice versa for preload in a playback application). It is possible to use Ethernet, Shared Memory Network or Fibre Channel.
5.2 Installing the Fibre Channel driver for Windows or Solaris The Fibre Channel driver is optional. The drivers are located in the mdr/mdr-hostsw/fibre-channel-drivers directory on the VMETRO Software CD-ROM. The MDR software has been tested with the VMETRO VMFC-2100(P) and VMFC2200(P) boards for the following operating systems: • Windows NT and Windows 2000 • Solaris 2.6, 7 and 8 However, the MDR Host Software relies on the QLogic driver (which uses the operating system and standard SCSI driver).
5.2.2 Installing the QLogic driver for Windows NT/2000 5.2.2.1 Install VMFC2X00 module Install the VMFC2X00(P) module on your Windows NT/2000 computer or SBC. Connect the FC cable between the VMFC board and your disk unit. 5.2.2.2 Remove previously installed Fibre Channel driver Before installing the new QLogic driver, it is essential to remove any installed FC driver (Fibre Gear driver from Delphi or older version of the QLogic driver). 5.2.2.
5.2.3 Installing the Fibre Channel QLogic Driver for Solaris Install the VMFC2X00 module on your Solaris SPARC station or SBC. 5.2.3.1 Install the qla2X00 package If the MDR project is not already installed, follow the instructions in section 4.2: MDR Shell and API Installation. Go to the directory called mdr-host-sw/fibre-channel-drivers/sun-solaris First you need to uncompress the file qla2100_.zip (if you have a VMFC2100 board) or the image file qla2200.
5.3 Connecting the MDR Shell to the disk subsystem For more details on how to configure the MDR Host Software for direct readback/preload, please refer to Chapter 7: Configuration Files. Currently, the items to modify are present in the configuration file mdr.ini, section StorageInfo and are the following: Disks, DiskTransferBlockSize, FcLoopRetryTime and UseHostFcAdapter.
6 Host Network and Direct Connection MDR Maximum functionality is available when both the Network and Direct Connection are present. The commands that are not supported or only partially implemented in the individual modes are fully functional in this combination mode. 6.1 Configuring the MDR for Network & Direct Connection The configuration for this option is identical to Chapter 4: Host Network-Based MDR, except with the addition of the VMFC-2100P card as shown in Chapter 5: Host Direct Connection MDR.
7 MDR Shell Commands MDR Shell Commands add-disks-todisk-group clear-recordingtable connect-diskgroup copy-recording create-disk-group delete-disk-group delete-recording destroy-diskgroup-info diskspeedtest dump-recording exit format-disk help or ? list-fc-devices new-recording playback prepare record remove-disksfrom-disk-group rename-recording reset-MDR resize-recording select-currentrecording selftest set-start-block set-state show-recordingtable stop tag-disable tag-enable Description Standalone Host
The help command will display a list of all MDR shell commands. Detailed information on each command may be displayed by typing: help Note that abbreviations are allowed as long as they are unique. For instance: res-r 50 for resize-recording 50 MDR Shell Command Description add-disks-to-disk-group Syntax: add-disks-to-disk-group [] Description: Add a list of disks to an existing disk group.
MDR Server to a new disk group using a list of disk port ids. For instance, connectdisk-group 1,4-6 will connect the MDR Server to the disk group containing the disks with port ids 1,4,5 and 6. Example: connect-disk-group connect-disk-group MyDiskGroup copy-recording Syntax: copy-recording [] [] [-] Description: Copy the recorded data between different devices.
Reading back data of a recording being recorded in infinite mode may end up in reading back data which will be (very) soon overwritten by the MDR. copy-recording Host Disks [] Copy data from host workstation file(s) (specified by ) to the MDR disk subsystem (recording specified by ). The parameter must be the name (or number in the recording table) of an existing recording.
delete-disk-group Syntax: delete-disk-group Description: Delete a disk group. The name of the disk group to delete is given by the argument. Examples: delete-disk-group MyDiskGroup delete-recording Syntax: delete-recording [] Description: Delete a recording. The name (or number) of the recording to delete is given by the argument. If the is not specified then the current recording is deleted.
dump-recording Syntax: dump-recording [ []] Description: Display recording data on the screen. The dump-recording command reads a part of a recording and displays it to the screen. is the first recording block to be displayed. If the parameter is not specified then the recoding block 0 is displayed. is the recording name (or number) of the recording to display. If this parameter is not specified then current recording data is displayed.
Examples: format-disk format-disk format-disk format-disk format-disk format-disk 4 4,6 4-7 4-11 2,6-8,10 all help or h or ? Syntax: help [] Description: Display help information for MDR Shell commands. If is not specified, then a list of all the commands is displayed. If is specified, then a help text for the is displayed.
Examples: new-recording new-recording 5 new-recording 10 g new-recording 3 G TAG playback Syntax: playback [] [] [-] Description: Start playback operation. The parameter specifies whether to wait for the playback to finish or not. A value of WAIT will make the playback command wait for the playback to finish, whilst a value of NOWAIT will make the playback command not wait and return the user prompt immediately.
The - parameter can only be used while preparing a playback operation. It specifies the interval of data in the recording to be played back. This interval is specified in bytes (hexadecimal). If this parameter is not specified then the entire recording data is played back (0-).
rename-recording Syntax: rename-recording [] Description: Rename an existing recording. The parameter specifies the current name of the recording to be renamed. If this parameter is not specified then the current recording is renamed. The parameter specifies the new recording name.
the MDR system. However it is possible, in some cases (after a crash of one PMC board for instance), that the MDR Server is not able to re-initialize all the PMC boards. In that case, the MDR Server will report an error to the MDR host software during the connection phase (the connection will not be established). It is then necessary to reset the MDR system using the front panel reset button (or from the VxWorks shell).
select-current-recording Syntax: select-current-recording Description: Set the recording as current. The parameter specifies the name (or number) of the recording to select as current. Examples: select-current-recording Recording_1 select-current-recording 2 selftest Syntax: selftest [[:]] Description: Test data integrity of an MDR device. This command performs a data integrity test of an MDR device.
4. Compare the two sets of blocks, 5. Restore the initial data blocks if Safe was selected, 6. Select a new set of blocks and go back to step 1. Notes: • The parameter must be lower than the parameter, • If the parameter is omitted then the MDR tests only the block on the disks. set-state Syntax: set-state Description: Set the state of current recording. • The new state is given by the argument.
Total capacity is the total capacity available on the MDR disk subsystem, Capacity used is the total capacity allocated (for recording data) on the MDR disk subsystem, Capacity available is the total capacity available on the MDR disk subsystem, Largest recording size is the largest recording size available on the MDR disk subsystem, Recorder block size is the size of each recorder block, Number of recordings is the total number of recordings present on the MDR disk subsystem (stored of not).
8 MDR API Functions To communicate with the MDR Server, the user has the possibility to use either the MDR Shell or his own program linked with the MDR API library, the MDR Shell program including the MDR API library. The API functions are implemented as C++ functions that can be used in C++ programs.
8.2 Error Conditions Some of the functions may fail during execution and return an ERROR or NULL value, depending on the return type. If a function fails, the errno variable may be inspected to retrieve the cause of the failure. Some of the functions use standard errno values found in the errno.h file. The MDR specific errno values are found in the MdrDefs.h file. Windows programs may need to use the GetLastError function in order to retrieve the error value. 8.
ClearDiskInfo Declaration: STATUS ClearDiskInfo (DISK_INFO * DiskInfoTbl, UINT DiskInfoTblSize); Description: Clear the disk group information on a list of disks. This function clears the disk group information saved on the specified disks. The disks used during this operation are specified using their information (port and controller identifiers). The disk information can be retrieved using the Scan function. After completion of this function, these disks will NOT contain any disk group information.
The DiskStripeSize parameter specifies the stripe size to be used in the disk group. This parameter should only be used when connecting an MDR Server alone to a static disk group. Returned value: OK or ERROR. If ERROR is returned then the errno variable will be set accordingly. See MdrDefs.h for MDR errno values. ConnectedToDiskGroup Declaration: BOOL ConnectedToDiskGroup (char * DiskGroupName); Description: Check the connection to the MDR Disk Group specified by the DiskGroupName parameter.
The number of the recording to copy is specified by the parameter RecordingNb. If this parameter is not specified then the current recording is copied. While copying data from the MDR Disks Subsystem to the MDR Tape Subsystem, it is possible to specify which part of the recording is copied using the FirstRecordingBlockToCopy and LastRecordingBlockToCopy parameters. These parameters represent the first and last blocks of the recording to be copied.
CreateNewRecording Declaration: STATUS CreateNewRecording (RECORDING * Recording); Description: Create a new recording. This function creates a new recording (according to the Recording parameter) and makes it the current recording. Returned value: OK or ERROR. If ERROR is returned then the errno variable will be set accordingly. See MdrDefs.h for MDR errno values. DeleteDiskGroup Declaration: STATUS DeleteDiskGroup (char * DiskGroupName); Description: Delete a disk group.
• MDR_DISK_GROUP_DISCONNECT_CLIENT || MDR_DISK_GROUP_DISCONNECT_SERVER: Both MDR Client and Server shall be disconnected from the disk group. Returned value: OK or ERROR. If ERROR is returned then the errno variable will be set accordingly. See MdrDefs.h for MDR errno values. DisconnectFromServer Declaration: STATUS DisconnectFromServer (void); Description: Disconnect from the MDR server. This function shuts down the session with the MDR server and puts the MDR_CLIENT object back into the initial state.
The FormatDisk function is destructive: all data stored on the disks to be formatted will be lost. It is possible to format several disks in parallel. Therefore, formatting one or several disks will take the same amount of time to complete. In order to format several disks in parallel, call the FormatDisk function for each disk to format without waiting between each call. After the last call, you need to wait for the end of the formatting phase by pooling the MDR Server status.
GetRecordingsInfo Declaration: int GetRecordingsInfo (RECORDING * RecordingArray, UINT RecordingArraySize); Description: Get information of some recordings. This function copy the recording information corresponding to the number of recordings specified by RecordingArraySize into the RECORDING structure pointed to by Recording. RecordingArraySize gives the size, in number of recordings, of the RECORDING output structure RecordingArray. Returned value: Number of recordings put into RecordingArray or ERROR.
GetServerStatus Declaration: STATUS GetServerStatus(void); and STATUS GetServerStatus(UINT32 * BootStatus); and STATUS GetServerStatus(MDR_OPERATION_STATUS * OperationStatus); Description: Get the server status. The first function requests the status of the MDR server. This function should be called after a successful call to the function ConnectToServer to check that everything is correct on the MDR server side. The second function requests the boot status of the MDR Server.
PrepareTransfer Declaration: STATUS PrepareTransfer (MDR_TRANSFER * MdrTransfer, MDR_TRANSFER_ID * TransferId = NULL); Description: Prepare a transfer. This function prepares a transfer (record or playback). The transfer is defined using the MdrTransfer structure.
Reading back data of a recording being recorded in infinite mode may end up in reading back data that will be (very) soon overwritten by the MDR. ReadRecordingBlock Declaration: STATUS ReadRecordingBlock (UINT RecordingNo, UINT FirstRecordingBlockToRead, UINT RecordingBlocksToRead, void * DataBuffer, UINT DataBufferSize); Description: Read user block(s) of a recording. This function reads one or more user blocks of the recording specified by RecordingNo.
ResetServer Declaration: STATUS ResetServer (UINT ResetType); Description: Reset the MDR Module(s). This function requests the MDR module to reset. Returned value: OK or ERROR. If ERROR is returned then the errno variable will be set accordingly. See MdrDefs.h for MDR errno values. The argument specifies how the MDR Server(s) should be reset.
Considering the two configuration parameters of the reset command (jumper and parameter of the reset command), there are six different reset cases: • Jumper setting: in (default MDR configuration) • Pushing the reset button on the front panel will reset the MDR system but not the other boards present on the same VME backplane, • Executing the ‘ResetServer(MDR_RESET_VME)’ function from the MDR Shell will have no effect at all on the MDR Server(s), • Executing the ‘ResetServer(MDR_RESET_I960)’ fun
SelfTest Declaration: STATUS SelfTest (char * Command); Description: Check the data integrity of the MDR disk subsystem. Checks the data integrity of the MDR disks area specified by the user. The Command parameter represents the MDR Shell selftest command. For more information, please refer to the MDR Shell command. Returned value: OK or ERROR. If ERROR is returned then the errno variable will be set accordingly. See MdrDefs.h for MDR errno values.
StopTransfer Declaration: STATUS StopTransfer (MDR_TRANSFER_ID * TransferId = NULL); Description: Stop a transfer. This function requests the MDR server to stop the transfer specified by TransferId. Returned value: OK or ERROR. If ERROR is returned then the errno variable will be set accordingly. See MdrDefs.h for MDR errno values. The end of the recording data may contain garbage data. The user has the responsibility to determine which part of the recording data is valid or not.
WriteRecordingBlock Declaration: STATUS WriteRecordingBlock (UINT RecordingNo, UINT StartRecordingBlock, void * DataBuffer, UINT DataBufferSize); Description: Write user block(s) of a recording. This function writes one or more user blocks of the recording specified by RecordingNo. If the recording contains tags then these tags are not modified by the MDR. The StartRecordingBlock parameter maps to the user block parameter in the RECORDING structure corresponding to the specified recording.
is the name of the MDR Server to try to connect to. This parameter shall be provided by the user. The server name NULL is used to indicate to the program that it should not try to connect to an MDR Server. is the name of the disk group to try to connect to. This parameter shall be provided by the user. The disk group name NULL is used to indicate to the program that it should not try to connect to a disk group.
If you platform is the Windows platform then open the workspace using Microsoft Visual C++. Otherwise, refer to the mdr-host-sw/doc/ApiExamples//Makefile to compile your program (change the environment variable, directories and file names if needed). Compile your program using the integrated build command (Windows platform) or make install command (other platforms). Note: The MDR API is not thread-safe. 8.
9 MDR Operations This chapter describes a subset of the MDR operations. Please refer to the chapter 4: MDR Shell Commands and chapter 5: MDR API Functions for a detailed description of the MDR Shell commands and MDR API functions used in this chapter. 9.1 Disk Groups A Disk Group is an MDR feature that allows grouping a set of Fibre Channel disks together. Each Disk Group on a JBOD (or RAID) is given a name upon creation, and is accessed as a single Fibre Channel disk during read or write operations.
9.1.2 Disk Group in MDR Host Software As described above, a disk group is an entity containing one or several FC disks. In order to be easily manipulated, each disk group shall be named when created. Later, the user can use this name to manage and access the data (read/write) on the disk group. The disk group includes the following features: • Management: via the MDR API, the user can create and destroy disk groups, add and remove disks from a disk group.
Two MDR Shell commands are associated to these two operations: • record prepares and start a record operation prepares and start a playback operation • playback 9.2.2 Wait & No Wait Transfer Modes The modes related to the transfer are: • Standard mode The recording is recorded/played back only once (NonInf) • Infinite mode The recording is recorded/played back infinitely (Inf) 9.2.2.
9.2.3 Infinite & Standard Transfer Modes The modes related to the transfer are: • Standard mode The recording is recorded/played back only once (NonInf) • Infinite mode The recording is recorded/played back infinitely (Inf) 9.2.3.
9.2.4MDR API As for the transfer type, the transfer mode is selected when calling the PrepareTransfer function in the MDR API. The field Infinite of the MDR_TRANSFER structure is used to specify the transfer mode. At API level, a record or playback are transfers.
9.3 Recovery from power failure 9.3.1 Power Failure If a power failure occurs during a record operation, MDR provides a functionality to recover recording data. The MDR system is able to recover the recording data saved to the MDR disk subsystem if tags are inserted into the recording (insertion of tag is covered in a later paragraph).
9.3.2.1.1 MDR Shell As described in the chapter related to the MDR Shell commands, it is possible to create a recording using the following command: new-recording [ []] [] The optional parameter can be used to enable the tag insertion to the recording data.
10 Configuration Files The MDR Server and Shell programs, as well as the VxWorks operating system need some parameters to indicate how to configure the MDR during initialization. In the MIDAS FLASH memory, these parameters (also called items) are stored into files and are sorted into different sections noted between square brackets. The files that can be configured are the following: • mdr.ini MDR-specific configuration parameters file, • vxbsp.ini VxWorks BSP configuration file, • vxbp.
10.1 Summary Table Used by Configuration file BoardInfo mmon.ini BootInfo AutoStart SysMemCfg MDC vxbsp.ini Item Section VmeInterface StartUp SCSI MainInfo StorageInfo mdr.
Severity level: Low Modify the behavior of the program/operating system without major consequences, Item which can modify the program/operating system with important consequences, Item which have very high consequences on the behavior of the related program/operating system. Medium High 10.2 Item modification An item can be modified in one of the configuration files using the MIDAS Monitor functions mgf or iset. For further information on the use of the mgf function, see section 7.
10.3 MDR system configuration file (mdr.ini) Below is a list of the parameters found in mdr.ini. [MainInfo] This section contains the main information the MDR Server needs to know. MdrModelName Model name of the MDR system. The valid model names are MDR-250 (MIDAS-250 board), MDR-220 (MIDAS-220 board). This item is required by the MDR Server and must be defined. SharedMemoryDataVmeBaseAdrs This item specifies the VME base address of the Shared Memory Data structure.
[StorageInfo] This section contains information the MDR programs need to know about the storage device connected to the MDR and its connection (PMC boards, initialization time, etc) Disks MDR Server: List of disk port identifiers to be controlled by the MDR. If this item is set to 0 or is not defined then the disk port id used by default is 8. MDR Host Software: Name of the disk group to be controlled by the MDR Host Software. This item does not have any default value.
[DpioInfo] This section contains information the MDR Server needs to know about the DPIO modules installed on the MDR. SuspendSignal Disable or Enable DPIO suspend signal. If this item is not defined then the default value is Enable. DPIO-InputUnits Number of DPIO input units that are used. Currently, this value is limited to 0 (no DPIO input PMC installed) or 1. If this item is not defined then the MDR Server ignores the DPIO input modules and the items DPIO-InputUnitXPmcSlot presented below.
The values of StartInputWaitTime and InputWaitTime, divided by 60, represent the number of seconds the MDR server will wait before stopping the current record operation (if there isn’t any input stream). This mode enables a user-defined watchdog timer for the DPIO data input stream: if there is no data for a period of time then the MDR server assumes that the end of recording has been reached.
OutputStartSignal Select the start signal the data receiver uses to trigger the MDR when starting a playback operation. The PIO1 (resp. PIO2) signal is used if this item is set to PIO1 (resp. PIO2). The value Disable is used to disable this feature: in this case, the MDR do not trigger the data source. If this item is missing then the MDR is not triggered by the data receiver and will start sending data as soon as the playback command is received. TransferOptions Select the transfer options.
SysPhysMemSize Size of memory that VxWorks should handle. The current value used is 0x1b00000 for MDR systems and the user should not be change this item on its own initiative. [MDC] This section contains the information the BSP needs to know about the Midas DC (name of the driver for the DE520 PMC board) installed on the MIDAS board. PmcSlot PMC slot where the Ethernet board is installed.
VmeA32Master2Base Base address (in VME A32 space) of an optional secondary VME master window the i960 processor of the MIDAS board should set. This master window, and therefore this item, is required sometimes on the MIDAS side in order to be able to communicate with some SBCs in SM (For instance, the Power PC boards MV230X/260X). [StartUp] This section contains information the BSP needs to know about the functions to call after booting.
10.6 MIDAS Monitor configuration file (mmon.ini) The mmon.ini file contains information on the MIDAS system and the behavior of the MIDAS Monitor during boot time. None of the parameters in this file need to be changed. Below is a brief description of all the items relevant to the MDR configuration: [BoardInfo] This section contains information the MIDAS Monitor needs to know about the MIDAS board. Model MIDAS board model.
ProbeOther This item should be set to 1. ProbeUniverse Universe probe indicator. The MIDAS Monitor probes the Universe chip if this item is set to 1, and does not probe it if set to 0. This item should be set to 1. TestUniverse Universe test indicator. The MIDAS Monitor tests the Universe chip if this item is set to 1, and does not test it if set to 0. This item should be set to 1. ProbePxb PXB probe indicator. The MIDAS Monitor probes the PXB if this item is set to 1, and does not probe it if set to 0.
Example boot parameter files may be found in /mdr-server/etc/vxbp*.txt: • vxbp-min.txt is the minimum necessary to operate with SM Network as external network provided by a separate SBC (used in MDR-x20 units). • vxbp-netif.txt is an example of boot parameters for a MIDAS serving as the network gateway. This may also be used for an MDR-250 unit with an Ethernet PMC. You may modify these files to suit your system.
10.7.1.1 Boot parameters preload If it is necessary to preload boot parameters, use a terminal emulator which provides the XMODEM protocol to communicate with the MDR through its front-panel serial port; 9600 bps, 8 data bits, 1 stop bit no parity, no flow control. Following the board's self-test, the MDR unit will present a short countdown to permit you to enter the MIDAS monitor: Press any key to interrupt the countdown and then press the Enter key 2 or 3 times within 2 seconds (to perform autobaud).
A Troubleshooting Below is a table of the most frequently occurring error situations and the actions for correcting them. Symptom/Error Message The MDR client (Shell or API) is unable to connect to the MDR server. The MDR system reports that some disks could not be found. Remedy Connect a terminal to the MDR (i960) serial port, and check for error messages. Make sure that the Fibre Channel cable is properly attached between the MDR and JBOD/RAID. Check also that all the disks are properly inserted.
B Error Messages S_mdr_COMMBUF_TOO_SMALL Error Number 0x55500001 S_mdr_COMM_OUT_OF_SYNCH 0x55500002 S_mdr_COMM_INTERFACE_DOWN 0x55500003 S_mdr_CURRENT_RECORDING_NOT_SET 0x55500004 S_mdr_DISK_ALREADY_IN_USE 0x55500005 Disk already in use S_mdr_DISK_ERROR 0x55500006 MDR disk error.
S_mdr_MIDAS_MEMORY_OVERFLOW 0x55500017 MIDAS memory block overflow. S_mdr_MISMATCHING_PARAMETERS 0x55500018 S_mdr_MISMATCHING_VERSION_NB 0x55500019 Mismatch between parameters. Mismatch between MDR version numbers. S_mdr_NOT_CONNECTED_TO_SERVER 0x5550001A Not connected to server. S_mdr_NOT_ENOUGH_MEMORY 0x5550001B S_mdr_NOT_INITIALIZED 0x5550001C S_mdr_NO_MORE_RECORDER_BLOCKS 0x5550001D Not enough memory. MDR server not initialized. No more space on recorder.
S_mdr_STREAM_DOWN 0x5550002D TCP/IP stream is down. S_mdr_SYSTEM_CORRUPT 0x5550002E S_mdr_TRANSFER_NOT_STARTED 0x5550002F S_mdr_TRANSFER_PREMATURE_END 0x55500030 MDR system corrupted. Transfer not started. Transfer finished prematurely. S_mdr_TRANSFER_STOPPED 0x55500031 Transfer was stopped. S_mdr_TRANSFER_TIMEOUT 0x55500032 Transfer timed out. S_mdr_UNKNOWN_ERROR 0x55500033 Unknown error. S_mdr_UNSUPPORTED_REQUEST 0x55500034 Unsupported request.
C Upgrading the MDR System Software This document explains how to upgrade the MDR system (MDR-220 or MDR-250) with new firmware. This upgrade is required in order to update the MDR system with a newer version of the MDR Server program. Also, if the MDR FLASH becomes corrupted, the entire firmware package may be replaced as detailed in the last section. MDR Firmware (mdrvxst.hex) The MDR firmware can be found on the VMETRO CD-ROM called VMETRO Software Products.
10.7.2 Upgrading the MDR firmware using the MIDAS Monitor Follow the steps below to replace the old MDR firmware with a new version. The upgrade procedure requires a host computer with a serial port (PC or Unix workstation) with a terminal program that supports sending files using the XMODEM protocol. Make sure you have all the files of the new MDR firmware version available on your host computer. At least the binary file called mdrvxst.hex should be present.
Address Range: 0xfe000000-0xfe200000 Monitor Usage: 0xfe1d0000-0xfe1f9310 MFS Usage : 0xfe1c0000-0xfe1d0000 Serial Port Baud Rate: 38400 Locked. # ------ End of output -------- Update the configuration files Check if the new configuration files vxbsp.ini and mdr.ini (mdr_server.ini and/or mdr_host.ini according to your configuration) are different from than the configuration files present on your MDR system. If so then transfer the new configuration files (vxbsp.ini and/or mdr.
Restoring Corrupt FLASH If the MDR FLASH is corrupted, the following procedure may be used to recover the MDR board: Delete the following configuration files from the MDR board: # rm mdr.ini # rm vxbsp.ini Do not delete the mmon.ini file. Step #1: Reboot the board and press to enter the Midas Monitor. The output from your board will look something like this: Midas i960RP #1 booting ... UART Test Passed. Test Type Boot Test ( 1) Testing Memory / DRAM Test Passed. i960RP #2 Detected.
You will see the following prompt: "Are you absolutely sure you want to clear the MFS Flash block?" Press y. You will then see: Please wait while clearing the MFS Flash block Type quit. The board will then reboot. Step #3: At the following message, hit twice: AutoBaud Detection. Please hit enter a few times.... You will then see: Do you want to generate mmon.ini manually? (y/n) : Type n. Respond y when asked you if you want to recover mmon.ini from EPROM. Reboot the board.
D Supported PMCs Documentation This appendix describes the PMCs that are supported by the MDR system. Fibre Channel Storage The permanent storage medium used by MDR is based on commercial hard disks using the FC-AL (Fibre Channel Arbitrated Loop) interface. Fibre Channel is a serial link, using either optical cables or differential ECL twinax cables, operating at 1.062 Gbit/sec. The peak effective transfer rate of a Fibre Channel loop is approximately 100 MiB/sec.
OmniPort Integrated Hub Interconnection The integrated hub capabilities of the Patent pending OmniPort Fibre Channel I/O port allows for simple cascading of multiple Fibre Channel devices. Standard duplex HSSDC copper and SC Duplex fibre optic cabling is supported. Three modes of operation include integrated hub, redundant point to point and redundant arbitrated loop (JBOD connection).
VMFC-2100 Specifications Fibre Channel FC-AL rev 4.5 PMC, PMC Host Bus Operating Temperature Storage Temperature Operating Humidity Storage Humidity Power Weight Warranty FC-PH rev 4.3 SCSI_FCP rev 12 PCI Local Bus revision 2.1 PMC IEEE P1386.1 CMC IEEE P1386 0 to 70 °C Greater than 50 °C operation requires adequate airflow (≥100 LFPM) -40 to +85 °C 5% to 95% non-condensing 5% to 95% non-condensing +5 Vdc @ 1.3 amps max Dual Copper +5 Vdc @ 1.7 amps max Dual Fibre 4 oz.
FPDP - Digital I/O An MDR system normally interfaces to its data source with a digital I/O interface based on the industry standard FPDP (Front Panel Data Port) specification (Proprietary ports may also be accommodated; please consult factory). The FPDP interface is a 32-bit synchronous input/output parallel interface which is specified to operate at clock rates up to 25 MHz (TTL).
DPIO-DI & DPIO-DO Input and output models for differential signaling using RS422 signaling. • 32-bit parallel I/O RS422 up to 10 MHz Packing Options The DPIO can be set up to use different packing options. This is done by reloading a “Packing PLD” on the DPIO. VMETRO provides a PLD Reprogramming Kit (part no. PLD-KIT-DPIO) for this purpose. The kit contains everything that is needed: a PC parallel port cable, JEDEC files for all packing options, and software.
DPIO Specifications Max. input data rate 25 MHz at 32-bits (-FI/FO versions) 40 MHz at 16-bits with 2:1 packing (-FI/FO versions with PECL strobe) 50 MHz at 16-bits with 2:1 packing (-EI/EO versions only) 75 MHz at 10-bits with 3:1 packing (-EI/EO versions only) 75 MHz at 8-bits with 4:1 packing (-EI/EO versions only) Max. PCI transfer rate FIFO size Cable lengths 49 MHz at 32-bits (-LI/LO versions) 108 MiB/s 8Kx32 or 32Kx32 1.0m(max), 0.3m, 0.
Connector Pin Assignments (non-inverted) 100 PIN ROW A ROW B ROW C ROW D 1 GND STROB GND GND 2 GND GND /NRDY GND 3 /DIR GND RESERVED (RES1) GND 4 /SUSPEND GND GND GND 5 PIO2 GND PIO1 GND 6 RESERVED (RES2) GND RESERVED (RES3) GND 7 PSTROB GND /PSTROB GND 8 /SYNC GND /DVALID GND 9 D31 D30 GND D29 10 D28 GND D27 D26 11 GND D25 D24 GND 12 D23 D22 GND D21 13 D20 GND D19 D18 14 GND D17 D16 GND 15 D15 D14 GND D13 16 D12 GND D11 D
Signal Termination Signal DPIO-FI DPIO-FO DPIO-EI DPIO-EO SUSPEND* 330Ω pull down 220Ω pull up 330Ω pull down 220Ω pull up 330Ω pull down 220Ω pull up 330Ω pull down 220Ω pull up 110Ω across + and – wires 330Ω pull down 220Ω pull up 330Ω pull down 220Ω pull up 330Ω pull down 220Ω pull up 330Ω pull down 220Ω pull up 390Ω to GND on both + and - wires 27Ω series 390Ω to GND on both + and - wires NA 110Ω across + and – wires NA NA NA 110Ω across + and – wires NA 390Ω to GND on both + and - wires NA
SUSPEND /SUSPEND is generated by the receiver to inform the data source of a pending FIFO overflow condition. The data source is allowed as many as 16 cycles before suspending the transfer. Since /SUSPEND is asynchronous to STROB, the data source should synchronize it before sampling its state; this avoids stability problems. This signal is active low : • Driven to logical “0” to activate SUSPEND, • Driven to logical “1” to deactivate SUSPEND.
is used to notify the software when a specified amount of data has been transferred to the MIDAS DRAM. SYNC The SYNC* signal can be used to synchronize the DPIO input module installed on the MDR system with the transmitter. It is used in ‘single frame data’ mode. The SYNC* signal is asserted prior to the transmission of data by the data transmitter, not at the same time as VALID*. This is to synchronize the receiver to the source. SYNC* is ignored by the receiver after the first assertion.
DPIO Cables Part Number Description CBL-FPDP-10 FPDP 80 pin Ribbon Cable w/connectors, 10cm CBL-FPDP-30 FPDP 80 pin Ribbon Cable w/connectors, 30cm CBL-FPDP-100 FPDP 80 pin Ribbon Cable w/connectors, 100cm CBL-FPDP-10I Inverted FPDP Ribbon Cable w/connector (for MCS RIN-T/ROUT-T), 10cm CBL-FPDP-30i Inverted FPDP Ribbon Cable w/connector (for MCS RIN-T/ROUT-T), 30cm CBL-FPDP-100i Inverted FPDP Ribbon Cable w/connector (for MCS RIN-T/ROUT-T), 100cm CBL-RS422-2M RS422 Twisted Pair 80 pin Ribbon
Ethernet Host Interface The MDR module utilizes the Ethernet PMC to provide networking access to hosts like a PC or workstation. DE520 Ethernet PMC The DE520 is an Ethernet Adapter as a PCI Mezzanine Card (PMC) with a direct interface to the 32-bit PCI local bus. This dual-speed module uses a single connector for either a 10 megabits per second (10 Mb/s) or a 100 megabits per second (100 Mb/s) IEEE 802.3 Ethernet network connection. The module automatically senses and switches to the correct speed.
1 2 3 4 5 6 7 8 RJ-45 Connector (Front View) 106 MDR User Guide Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.
SCSI PMC Backup The MDR uses the SCSI PMC module to provide connectivity to SCSI tape stations for backup purposes. SC-PMC/8X5 SCSI PMC Module The SC-PMC/8X5 (X is 2 or 7) is a SCSI Adapter as a PCI Mezzanine Card (PMC) with a direct interface to the 32-bit PCI local bus. The SC PMC/8X5 supports both SCSI-I and SCSI-II. A narrow or wide single-ended interface is provided with both asynchronous or synchronous operation. Current Model SC-PMC/875 SCSI PMC Module from Concurrent Technologies.
Data Format The data format on tape is the following: • Tape header which is a MASTER_TAPE_HEADER structure: typedef struct { UINT32 TapeNumber; /* Number of the tape (1 to n) */ UINT32 DataLength; /* Data length on tape in KiB */ } TAPE_HEADER; typedef struct { TAPE_HEADER TapeHeader; /* Tape information */ char Name[RECORDING_NAME_MAXLENGTH]; RECORDING Recording; /* Recording information */ } MASTER_TAPE_HEADER; Where RECORDING_NAME_MAXLENGTH and RECORDING are defined in the MdrDef.h file.
Front Panel Connector Pinout (68-way SCSI connector) Pin No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Signal Name 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V 0V Pin No.
E MDR Standard Configurations MDR-220-xx MDR-250-xxxxx x=0 x=1 x=2 x=3 x=4 x=5 x=6 x=F x=7 x=8 x=9 x=E x=S x=C x = PMC Slot 1 or 2 x = PMC Slot 1, 2, 3, 4 or 5 PMC Slot Not Populated FPDP Input FPDP Input / 16 bit Packing FPDP Output FPDP Output / 16 bit Packing Dual Copper FC Copper & Fibre FC Dual Fibber FC Serial FPDP Input / SWL Serial FPDP Output / SWL Serial FPDP Bidir.
F Miscellaneous Functionalities MDR Status Block mapped to VMEbus A shared memory region is mapped by the MDR on the VMEbus and can be used during the recording phase. This shared region contains information on: • The MDR Server itself: signature, version numbers and MDR model name, • Where are mapped (on the VMEbus) the Progress Indicator structure and the Control Data structure, • The state of the Progress Indicator (Enabled or Disabled), • The recording phase (progress indication).
MDR Server boot status During each reboot, an automatic Built-In Test (BIT) is carried out to ensure that the MDR board and the MDR Server are working correctly.
25 20 0 MDR Tests 25 24 23 MIDAS board BDW 22 21 20 PMC PMC PMC PMC PMC PMC Slot Slot Slot Slot Slot Slot 2b 5 4 3 2 1 Bit = 0 OK Bit = 1 ERROR Example: MDR-250-135SE Boot Diagnostic Word: 0000 0000 0000 0000 0100 0001 0000 0000 0 0 0 0 4 1 0 0 Reading back the MDR Server Boot Status There are two different options: • Using a VME host, read the BDW via the VMEbus • Using an application based on the MDR API, read the BDW using the GetServerStatus function MDR User Guide Artisan Technology
In order to read the BDW via VMEbus, it is important to understand how this word is mapped to the VMEbus by the MDR Server: • MDR with processor number 0: the BDW is mapped at the VME address 0x18 • MDR with processor number greater than 0: the BDW is mapped at the VME address 0x400000 + ProcessorNumber*0x10000 + 0x18 114 MDR User Guide Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.
G Glossary BSP DPIO FC-AL FPDP HSSDC IP JBOD MDR MDR Client MDR File System MDR Server MDR Shell MIDAS MTBF PCI PMC RAID Recorder Block Recorder Block Size Recording Recording Table SBC Storage Device UserSpace UserSpaceSize RecordingBlocks RecordingBlockSize Board Support Package Digital Parallel Input Output Fibre Channel Arbitrated Loop. A fast serial bus interface standard. Front Panel Data Port High Speed Serial Data Connector Internet Protocol Just a Bunch Of Disks. MIDAS Data Recorder.
Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment • FAST SHIPPING AND DELIVERY • TENS OF THOUSANDS OF IN-STOCK ITEMS • EQUIPMENT DEMOS • HUNDREDS OF MANUFACTURERS SUPPORTED • LEASING/MONTHLY RENTALS • ITAR CERTIFIED SECURE ASSET SOLUTIONS SERVICE CENTER REPAIRS Experienced engineers and technicians on staff at our full-service, in-house repair center WE BUY USED EQUIPMENT Sell your excess, underutilized, and idle used equipment We also offer credit for buy-back