Hi,
you misunderstand what is transmitted to an external controller. Your contention would be correct if an
external controller were simply a serial to parallel converter, but it is not.
Machs trajectory planner produces time slices of numeric data describing P(osition)V(elocity) over T(ime).
The controller then decodes the numeric data and using timers produce pulse streams in parallel.
The ESS uses 1024 time slices per second, near as dammit 1ms per slice. The packet of data will contain 4 bytes per
axis, for all six coordinated axes and another six Out-of-Bamd axes, for a total of 48 bytes per packet.
1024 packets per second for a total of 48kByte/sec. Note this includes the motion data only, various other IO
may increase it, but not that much. A ballpark figure is 60kByte/sec.
That (numeric) data is expanded into to pulse streams, lets say for arguments sake you have a three axis machine
with one OB axis, the spindle operating in Step/Dir mode, each with a motor tuning of 10,000 step/unit and the current
coordinated move requires all three axes to move ten units per second.
Each of the moving axes will require 100,000 pulses per second or 100 kBit/sec. If the spindle is required to rotate at 1200 rpm
(20 rev/sec) it will require 200,000 pulse or 200kBit/sec.
The combination of the three axes and the spindle will produce 500 kBit/sec of pulses in four simultaneous pulse streams.
The point here is that the pulse output rate is derived and determined by a much smaller, slower numeric data stream.
An external motion controller might receive its numeric data in serial packets but it produces independent parallel
output pulse streams which can be many orders of magnitude higher than the numeric data rate.
Note that Machs parallel port operates in an analogous fashion. PVT data is passed to the Ring0 pulse engine from
Machs trajectory planner, and ordinary Windows application. The pulse engine then generates the pulse streams.
Each independent output has a maximum output rate equal to the kernel speed. For the example above the parallel port
could produce the required pulse streams with a 100kHz kernel speed, but it couldn't go any faster and as you have pointed
out parallel port kernel speeds of 100 kHz are the exception not the rule.
Craig