Software Architecture of the Da Vinci Research Kit
We present a specialized FireWire protocol that takes advantage of broadcast messages and peer-to-peer transfers to minimize the number of transactions, and thus the software overhead, on the control PC, thereby enabling fast real-time control. We provide an open source Verilog implementation of a Link Layer Controller (LLC) that supports this design on an FPGA-based motor controller. Performance is measured on a da Vinci® Research Kit that contains 8 of these controllers to drive 28 axes. Compared to a conventional asynchronous transfer-based solution, this protocol decreases the I/O time by more than a factor of 4. This performance gain can be used to increase the control frequency to 6kHz, scale to a larger number of axes, or provide greater tolerance to timing variations due to a non-real-time operating system, such as the standard Linux kernel.