The processor we use to control the throttles is a Motorola MC68HC16Z1
running at 16.77 MHZ. The control software is written in Assembly.
Dr. Moller
Thank you for answering that. That is about what I would do as
the 68HCxxx processor has a definitive time for executing instructions unlike
the more powerful Intell PC processors. Assembly language gives the
programer precise control over execution times unlike most higher
level languages.
Ummm... I have extensive experience in programming microprocessors,
including several years as a systems programmer writing assembly
language for embedded micros.
IMHO, writing any significant amount of software in assembly language is
anachronistic. Processors nowadays are so fast and compilers so good
that it's just not necessary in most cases. Nowadays, the average C
programmer produces faster code than the average assembly language
programmer. And, of course, it's much less buggy and takes less time to
produce.
What's more, managing something real-time like engine throttles just
doesn't take much computer horsepower. Assuming an engine is running at
6,000RPM, a 16.77MHz processor could execute up to 2,800 instructions
for each *revolution*. I'd guess that that would be about enough power
to manage the throttle, so it could be adjusted every single revolution.
Frank.
What sort of real time systems did you program Frank?
We did all kinds, mostly data logging. Way back, we used the PACE 8900
(early 16-bit micro, minimum 12usec instruction time) and COSMAC 1802
and 1805. One project was engine control for CNG/diesel engines,
although I wasn't involved directly in that. More recently, I've worked
on security systems -- micros ranged from 80186 down to a Z8 micro...
that last one was assembler-only. A little experience on the Motorola
68HC11 and variants thereof, also some 8051 and 8031 work.
Frank.
In this case Dr. Moller has up to eight screaming rotary engines running at
up to 9000 RPM and half a dozen to a dozen other inputs such as attitudes,
translation accelerations and velocity's to measure. This is a closed loop
system that must have rapid response. The engines control the lift and attitude
of the VTOL aircraft. Knowing the precise time it takes to execute any instruction
IMHO is extremely important in a case like this. I have yet to find a high
level language that tells me exactly how many processor cycles it takes
to execute any given instruction. Also the more modern Intel based processors
make variable number of processor cycle branches based on their own criteria.
These cycle numbers are generally unknown to the programmer.
Paul Lamar
The AirCraft Rotary Engine NewsLetter. Powered by Linux.
http://home.earthlink.net/~rotaryeng/ http://www.linux.org