Camera Control Nodes
Camera Electronics Workshop
30 January, 2008
LSST
Kevan Hashemi
Brandeis University
With notes from:
Eric Aubourg
APC-Paris 7
PDF Version
Account of ELS Work
System Architecture

Figure: The Camera Control System.
Master controls nodes over CAT-5 Ethernet.
Example Nodes
Possible Input-Output Formats:
	- Servo Motor Drive
 
	- Stepper Motor Drive
 
	- TTL Switching Output
 
	- Analog Temperature Input
 
	- LVDS Communication
 
The Timing and Control Module:
	- 50 MHz Data Clock Distribution
 
	- 50 MBPS Serial Transmission
 
	- 50 MBPS Serial Reception
 
	- Transmit 32-MByte images
 
Reference Design
The CCS group proposes:
	- Off-the-shelf ix86 processor in PC104 format
 
	- Off-the-shelf input-output boards in PC104 format
 
	- Custom input-output boards where necessary
 
	- Linux operating system
 

Figure: Our PC104 Embedded Linux System.
Demonstration in Paris
Eric Aubourg and Laurent Guglielmi of APC-Paris 7 (IN2P3+) tried:
	- AMD Geode board with 512 Mb RAM and 1 Gb flash memory "HDD"
 
	- Minimal debian linux
 
	- Compile C/C++ on VMWare similar system with full development environment
 
	- Java Runtime (JRE) 6
 
	- Compile Java on Mac/Win/Linux
 
	- DMM IO board 
 
	- Digital 8-bit in/out 
 
	- Analog 12-bit in (8/16 ch)/out (2 ch) 
 
	- 100 kHz sampling 
 
	- Two lines of C to interface with Java 
 
	- A Java MBean represents its state
 
Demonstrated:
	- Flashes lights fast enough to implement dimmer.
 
	- Receives instructions from laptop running Java application.
 
	- Reads thermometer and produces live temperature plot.
 
	- Observed destruction of a PC104 computer several days after one analog output shorted.
 
Demonstration in Boston
Kevan Hashemi of Brandeis University tried:
	- From WinSystems
 
	- PCM-SC520 embedded computer, i486 133 MHz.
 
	- PCM-UIO48A 48-line digital I/O card
 
	- Embedded Linux System based upon Simply MEPIS
 
	- Total price $1500 with flash card and power supply.
 
	- Use PCM-UIO48A device driver binary supplied by WinSystems.
 
	- Compile C-code on desktop Scientific Linux Machine.
 
	- Copy compiled code to flash disk or transfer by ftp.
 
Demonstrated:
	- Flash lights at up to 90 kHz.
 
	- TCPIP transfer at 4 MBytes/s.
  

Figure: Minimum Output Bit Period.
Implications
	- Cannot compile device drivers on Scientific Linux for our ELS.
 
	- Can compile drivers from source code in VMWare emmulator.
 
	- VMWare emmulation of embedded system easy to install.
 
Recommend: VMWare for development.
	- Byte-by-byte device drivers compiled from C are slow.
 
Recommand: Block moves or drivers written in assembler.
	- Off-the-shelf IO boards can expose PC104 motherboard to damage.
 
Recommend: Thorough destructive testing of Off-the-shelf boards.
Suggest: PC104-format custom-made IO boards for speed and reliability.
Re-Examination of CCS Architecture
Move PC104s Outside Camera
Reduce Cables: Old-Fasioned Way
Reduce Cables: New-Fangled Way
TCPIP-Parallel Converter

The RCM4200:
	- 60 MHz 8-bit processor
 
	- 10/100 Ethernet and TCPIP Stack
 
	- Byte-Wide IO Ports
 
	- Real-Time Clock
 
	- $100 in single quantity
 
	- Byte-wise IO: 3 MBytes/s
 
	- TCPIP IO: 500 kBytes/s
 
	- Development environment available only for Windows
 
	- Development environment costs $200.
 
Conclusion
With Linux computers in Camera:
	- VMWare is effective platform for embedded Linux development.
 
	- Java libraries provide open-source publish-and-subscribe protocols.
 
	- Expect no problems adding DDS to PC104 modules.
 
	- Doubt we can run LabView effectively on PC104 modules.
 
	- For fast response, need to find fast IO boards and drivers.
 
	- For rugged system, need to make or find rugged IO boards.
 
With Linux computers out of Camera:
	- Can use TCPIP-Parallel converter modules to communicate with IO boards.
 
	- Camera-resident electronics becomes simpler and more rugged.
 
	- Provides fast response at IO Boards.
 
	- Minimal load upon local network.
 
	- Branedis has extensive experience with this solution.
 
	- Shorter development time for camera contol nodes.
 
	- DDS and other control software runs on larger, faster machines.