MOOC SWIC and Multiwire Front-ends

Jianming YOU
Tue Jul 9 08:12:43 2002


SWIC front-end - Jianming You, x6682
SWIC controller firmware - Jianming You, x6682
SWIC controller hardware - Al Franck(x4987) and Joe Gomilar(x4072)
SWIC and multiwire instrumentation - Dan Schoo and Gianni Tassotto

System Description

These front-ends interface Segmented Wire Ionization Chambers (SWICs) and multiwires to the control system.  SWICs and multiwires are used to measure the beam profile.  Each SWIC or multiwire instrument is wired up to one SWIC controller.   Each SWIC controller has an ARCNET connection.  A SWIC/multiwire front-end will have at least one ARCNET connection.  A SWIC controller and the front-end that services it communicate with each other over ARCNET.  A SWIC/multiwire front-end provides additional functionality not present on the SWIC controllers, e.g., compuation of the mean.  The controls department is responsible for both the front-end and the controllers.

Effected Front-ends

MWAP10 B/4F124.22(200) AP10
MWIRE0 A/0B23.75(94) MI8 82:I:M83[69]*, I:M840*
MWIRE1 A/5923.81(94) MI10 159:I:M10[1-4]*, I:M85[12]*
MWIRE2 A/5A23.82(94) MI40 26:I:MABT*
MWIRE3 A/5B23.83(94) MI60 412:I:M70[289]*, I:M71[024]*
I:M90[389]*, I:M91[024]*
MWIRE4 A/5C127.11(200) C0 49:T:MCBT*, T:MIC0*
MWMB10 B/5723.60:e0(62) MI10 E:M86[14]*, E:M70[1235]*, E:MABT*
MWMB12 B/5B23.59:e0(62) MI12 E:MDMP*
MWMI20 B/5C23.49:e0(62) MI20 R:70[1-4]*
SWIC A/17127.19(200) Switchyard
SWICT A/EB124.44(200) EBT
SWICT1 B/26128.104.28.161 Madison/Brookhaven
SWICT2 B/2E136.142.113.72 minosPPC, Pitt
SWICT4 B/55 Texas
YOUJVX B/5016.236(200) BTE214

Fornt-end Platform Information

Operating System VxWorks
Software Architecture  MOOC
Processor Board Motorola MV2300, MV2401 (PowerPC)
Peripherals ARCNET controller, PMC SLD (for T-clock)
Physical Network Connection Ethernet
Transport Protocol ACNET encapsulated in UDP
Application Protocols RETDAT, SETDAT, ACNET AUX

Related Systems

SWIC controllers - The SWIC controllers are custom hardware incorporating interfaces for ARCNET, SWIC/multiwire, T-clock, and serial communications along with an Intel 186 processor.  SWIC controllers execute firmware which is loaded into Flash memory on the controller.

Build and Release Information and Procedures


The front-end code is maintained in CVS on with the module name mwirePPC.  The mwirePPC project contains a Makefile which automates the build and release process.  The Makefile uses to provide release managment functionality. So knowledge of's release management procedures is applicable to "swic" front-end software. The following procedure is used to build and release a new front-end executable. Note that the "swic" front-ends load mooc, acnet, etc., dynamically from the startup script when they are rebooted. So to install new versions of mooc, etc. when changes to FE application code are not also needed just reboot the FEs. The operational front-ends are set to run only the designated stable mooc, acnet, etc.

1. Check out the mwirePPC project from CVS and change directory into the working copy of the mwirePPC project created by CVS.
2. Make your modifications to the source code. If you are creating a new version update the VID in the Makefile also.
3. Issue make in the working directory. 
4. Make will build the new front-end executable in your working directory.
5. Your changes can be tested on SWICT, which has its boot parameters set to run the SWIC FE beta/latest code. In order to install a beta, you will need to commit your changes and then do a make beta.install.
6. Reboot SWICT and test your modifications.  Go back to step 2 as needed.
7. To install your changes on the operational front-ends, which have their boot parameters set to run the SWIC FE stable code, issue a make promote and reboot them.
8. Do a CVS release on the mwirePPC project, if you chose.

Operating System

The standard kernels built by R. Neswold are used.

Individual Front-ends

The differences in the front-ends are handled by having each front-end use its own startup script.  The differences in the startup scripts are the comments which indicate the expected boot parameters, setting the prompt, and setting the number of SWICs.  The name of a front-end's script is startup_<the front-end>.cmd, e.g., SWIC uses startup_swic.cmd.

SWIC Controllers

The SWIC controller code is maintained in CVS on with the module name mwire186.  Data I/O PROM programmer reads in EPROM hex file and burnt into an EPROM. The tools to build the EPROM hex file, swic.hex, are also available from CVS repository, packaged in pc_prog.tgz. The pc_prog.tgz includes High-C 186 cross compiler and Intel186 emulator. The codes have been tested working on Window2000 Professional system. The PROM burnt by the Data I/O will need to be installed into the SWIC controller flash loader, which Joe Gomilar has.  The flash loader needs to plugged into each controller to download the new code.

The procedure for building and releasing SWIC controller firmware is as follows:

1. Check out the mwire186 project from CVS and copy them to a PC which has High-C compiler and emulator. The directory structure should have root\hc186, root\I186EBN and root\mw186.
2. Modify the code on the PC.  Update the revision information, i.e., sw_ver and sw_rev, in iopmain.c.
3. Issue the command ..\hc186\make hcswic in the root\mw186 directory.
4. Issue the command .\emswic in the root\mw186 directory to emulate.
5. Transfer swic.hex to the Data I/O Programmer and burn a 27C512 PROM from it.  Swic.hex is in the Data I/O's 88 format and has an offset of 0xF0000, which needs subtracted.
6. Install the PROM in the flash loader and download the code into a test SWIC controller.
7. Commit your changes to the CVS repository.
8. Release the mwire186 project.
9. Have someone download the new code in to all deployed SWIC controllers.

Rollback Support

The code for both the SWIC front-end and controller are in CVS, so rollback is supported through the use of the CVS update command with a date or tag. In addition, the front-end code uses which adds additional rollback functionality including automated tagging.

Front-end Boot Parameters

The front-end boot parameters are documented in the comments of the startup script for each front-end.

Other Documentation

 DABBEL template

Switchyard Rookie Book (Chapter 14 - SWICs)

ACL script to read out BlockTransferBuffer

Device SSDN documentation

ARCNET card manual, J. Firebough keeps a copy of the CC121 manual.

Documentation on the SWIC controller hardware and wiring prepared by Al Franck

Security, Privacy, Legal