Справочник Пользователя для Delta Tau GEO BRICK LV
Turbo PMAC User Manual
Turbo PMAC Computational Features
235
TURBO PMAC COMPUTATIONAL FEATURES
Turbo PMAC has advanced computational features that permit off-loading of many operations from a
host, or even stand-alone operation in ways that were not previously possible. Many arithmetic, logical,
and transcendental operations can be performed on variables and constants in user programs on board the
card.
host, or even stand-alone operation in ways that were not previously possible. Many arithmetic, logical,
and transcendental operations can be performed on variables and constants in user programs on board the
card.
Computational Priorities
As a multitasking, real-time computer, Turbo PMAC has an elaborate prioritization scheme to ensure that
vital tasks are accomplished when needed, and that all tasks are executed reasonably quickly. The
scheme was designed to hide its complexity as much as possible, but also to provide some flexibility in
optimizing the controller for particular needs. The tasks in order of priority are:
1. Single Character I/O
2. Commutation
vital tasks are accomplished when needed, and that all tasks are executed reasonably quickly. The
scheme was designed to hide its complexity as much as possible, but also to provide some flexibility in
optimizing the controller for particular needs. The tasks in order of priority are:
1. Single Character I/O
2. Commutation
Update
3. Servo
Update
4. Real-Time Interrupt Tasks
5. VME Mailbox Processing
6. Background
5. VME Mailbox Processing
6. Background
Tasks
Single Character I/O
Bringing in a single character from, or sending out a single character to, the serial port or host port (from
ISA, PCI, USB, or Ethernet) is the highest priority in Turbo PMAC. This task takes only two instruction
cycles per character, but having it at this high priority ensures that Turbo PMAC cannot be outrun by the
host on a character-by-character basis. This task is never a significant portion of Turbo PMAC’s total
calculation time. Note that this task does not include processing a full command; that happens at a lower
priority (see below).
ISA, PCI, USB, or Ethernet) is the highest priority in Turbo PMAC. This task takes only two instruction
cycles per character, but having it at this high priority ensures that Turbo PMAC cannot be outrun by the
host on a character-by-character basis. This task is never a significant portion of Turbo PMAC’s total
calculation time. Note that this task does not include processing a full command; that happens at a lower
priority (see below).
Commutation Update
The commutation (phasing) update is the second highest priority on Turbo PMAC. Every phase interrupt
(cycle of the phase clock), the MACRO ring (if present) is updated with new information, and if I5060 >
0, a pair multiplexed ADCs (e.g. Option 12, Acc-36) is read and the data copied into de-multiplexed
RAM registers.
Every (I7 + 1) phase interrupts, Turbo PMAC performs the commutation calculations on each motor for
which commutation is active (Ixx01 bit 0 = 1). For each motor commutated by Turbo PMAC, this task
takes 1 – 2
(cycle of the phase clock), the MACRO ring (if present) is updated with new information, and if I5060 >
0, a pair multiplexed ADCs (e.g. Option 12, Acc-36) is read and the data copied into de-multiplexed
RAM registers.
Every (I7 + 1) phase interrupts, Turbo PMAC performs the commutation calculations on each motor for
which commutation is active (Ixx01 bit 0 = 1). For each motor commutated by Turbo PMAC, this task
takes 1 – 2
µsec per update cycle for an 80 MHz CPU.
The phase clock frequency is determined by:
•
Jumpers E98 and E29 – E33 on a Turbo PMAC
•
I7m00 and I7m01 (for clock-source Servo IC m as set by I19) on a (non-Ultralite) Turbo PMAC2
•
I6800 and I6801 on a Turbo PMAC2 Ultralite
The default update frequency is 9 kHz (110
µsec cycle). At the default, the commutation of each motor
takes approximately 1 – 2 percent of Turbo PMAC’s computational power.
Servo Update
The servo update is the third highest priority on Turbo PMAC. Every servo interrupt (cycle of the servo
clock), Turbo PMAC processes each of the entries of the encoder conversion table to prepare the raw
feedback and master data for use by the servo algorithms. Then it performs the servo update calculations
for each active Motor xx (Ixx00 = 1). This update consists of the interpolation calculations to compute
the next instantaneous commanded position, and the servo-loop closure calculations that use this value,
the actual position value, and the servo gain terms to compute the commanded output. (The servo-loop
closure algorithms for Motor xx can skip interrupt cycles if Ixx60 is set greater than 0.) These servo
calculations take about 4
clock), Turbo PMAC processes each of the entries of the encoder conversion table to prepare the raw
feedback and master data for use by the servo algorithms. Then it performs the servo update calculations
for each active Motor xx (Ixx00 = 1). This update consists of the interpolation calculations to compute
the next instantaneous commanded position, and the servo-loop closure calculations that use this value,
the actual position value, and the servo gain terms to compute the commanded output. (The servo-loop
closure algorithms for Motor xx can skip interrupt cycles if Ixx60 is set greater than 0.) These servo
calculations take about 4
µsec per update cycle for an 80 MHz CPU.