100 likes | 191 Views
Real-Time DSP MCSPU Controller. Hardware. Bittware “Hammerhead” SHARC board (1) Bittware “Reef” boards (with FPGA) (2) General Standards ADADIO (2) General Standards 16AI64 (2) Symmetricom BC635 time processor (1) SBS CT9 CompactPCI system board (1). Software. CentOS 4.3 Linux
E N D
Hardware • Bittware “Hammerhead” SHARC board (1) • Bittware “Reef” boards (with FPGA) (2) • General Standards ADADIO (2) • General Standards 16AI64 (2) • Symmetricom BC635 time processor (1) • SBS CT9 CompactPCI system board (1)
Software • CentOS 4.3 Linux • Bittware DSP21K Toolkit • Bittware/Jungo Linux device driver • Analog Devices VisualDSP++ IDE/Toolkit • Linux DSP Interface Library • DSP controller binaries
RT Loop • Keyed on 4kHZ FPGA interrupt • Encoders from FPGA to “Mother” • Main axis encoders from ADADIO via PLX9080 bridge • Time from GPS • Interpolator interrupt • Servo interrupt • Telemetry
Linux Interface • Bittware driver 8.00.0 on mountain, 8.10.0 pending • Bittware HIL primitives used for LBT DSP library • libdsp.so from MCS control program • “Mother” is main DSP per-axis • read() and write() with SPCI or DMA
Linux Interface cont… • Serialization in Linux • Access is asynchronous to/from DSP • Not deterministic and not realtime
Telemetry • DMA into physical Linux pages • Linux headers uses DSP headers • Telemetry written from DSP to Linux (~4x faster) • Interrupt thread disposes of telemetry data
DSP Debugging • diag21k and DSP load map • VisualDSP++ simulator • Telemetry in /mnt/nfs, archive in /mnt/nfs-archive