Camera Control Nodes

Camera Control Workshop
22 January, 2008

Kevan Hashemi
Brandeis University

PDF Version
Account of ELS Work


System Architecture
Node Architecture
Control Node Questions
Proposed Solution
ELS with Toolchain
ELS without Toolchain
ELS Distribution Proposal
Control Node
Performance of Example Node
Update Time
Alternative Processor

System Architecture

Figure: The Camera Control System.

Master controls nodes over CAT-5 Ethernet.

Node Architecture

Figure: A Control Node.

Control Input-Output Types:

For Timing and Control Module (TCM):

Control Node Questions

Will one form of embedded processor suit all control nodes?

Requires Answers To:

Proposed Solution

The CCS group proposes:

We tried:

Figure: Our PC104 Embedded Linux System.

ELS with Toolchain

Standard way to build an ELS disk image is with a toolchain on a non-ELS computer.

Toolchain does the following:

Toolchain can work by:

Program ELS by:

In Theory: Toolchain can reside on any machine that can host the GCC cross-compiler.

In Practice: We cannot compile device drivers on Scientific Linux for our Simply-MEPIS ELS.

ELS without Toolchain

Without a toolchain, we build the ELS on the ELS machine itself.
Use stripped-down C-compiler: GCC takes gigabytes.
Compile kernel, drivers, and control programs on machine that will run them.
Compiler must use RAM-disk or magnetid disk to avoid over-use of flash memory.
Create new disk image, re-write flash card, re-boot.

But: Can't find any examples of this being done.

ELS Distribution Proposal

We can guarantee effective distribution of an ELS in the following way:

Note that device drivers must be created by the toolchain, not on user's machine.
User could duplicate toolchain to create new device drivers.

Our Control Node

Use device driver for UIO48A compiled by WinSystems.
Use ELS disk image compiled by WinSystems.
Compile control programs on desktop computer, copy to flash.
512 MByte flash, 256 MByte RAM, i486 133 MHz processor.
Runs HTTP, FTP, Telnet.
48-line digital IO, 4 RS-232, 10/100 Ethernet, VGA driver.

Figure: Our Input-Output Board.

We compile example code and flash lights.
Unpack to flash lights labor: 5 engineering days.

Performance of Example Node

Fastest bit rate through Ethernet: 4 MBytes/s.

Figure: Minimum Output Update Time.

Compile code that toggles one output as fast as it can.

Update Time

6 μs × 133 MHz = 800 clocks ≈ 200 instructions

Example block move in assembler, 21 clocks per cycle:

  ioe ld a,(hl)    
  ld (de),a  
  inc de   
  dec b 
jr nz,inner_loop_sr

Our ELS code is 40 × slower than it would be in assembler.
Our 133-MHz i486 acts like a 3 MHz Z80.

Reduce update time by:

Alternative Processor

Brandeis Unviversity uses RabbitCore for TCPIP Data Acquisition.

Figure: RCM4200 RabbitCore Embedded Processor.

The new RCM4200 features:

Ethernet: 500 kBytes/s, Byte-wise IO: 3 MBytes/s
Dynamic re-programming possibe but not yet tested at Brandeis.


Embedded Linux System offers:

But it has the following problems:

We cannot guarantee Embedded Linux System development by end Summer 2008.

We can guarantee delivery of RabbitCore control nodes by end Summer 2008.