|
Description  |
|
|
BACKGROUND OF THE INVENTION
This invention relates to a digital symbol generator with symbol error
checking for developing analog deflection voltages to drive a cathode ray
tube display, forming a plurality of symbols from successive blanked and
unblanked vectors rotatable about an arbitrary angle of rotation.
Digital symbol generators have been known in which the vectors forming the
symbol may be rotated. The data specifying individual vectors has
consisted of either polar coordinates, angle and length information or
cartesian coordinates, starting and end point information. Where polar
coordinates have been used, the angle destination has been a fixed binary
code resulting in a limited number of angles at which the vectors can be
drawn or about which the vectors may be rotated. Where cartesian
coordinates have been used, rotation of a vector has been accomplished
either by complex digital transformation of the cartesian coordinates or
analog devices which rotate the entire symbology at the input to the
display.
A computer typically supplies a digital symbol generator with the input
data required to specify the length and orientation of the vectors forming
a symbol. Where the computer supplies both starting point and end point
data for each vector, the symbol generator is highly dependent upon the
computer for input information. Other symbol generators include a memory
for storing vector data. The memory is then incrementally addressed to
sequentially read out the data required for each vector forming a symbol.
This type of symbol generator is less dependent upon the computer,
however, when changes in the symbology are required the memory must be
reprogrammed which is very costly and time consuming.
Digital symbol generators further utilize constant speed stroke writing
techniques to ensure uniform brightness of the displayed symbols. One such
technique is to normalize the x and y axis displacements by means of shift
registers. Since all vectors generated by this method are drawn at the
same speed, effective drawing time is wasted where the vectors are not
visible on the display.
One of the many symbol generator uses is in an aircraft to display flight
guidance information on a pilot display unit. This requires extremely
accurate symbology to ensure the safe operation of the aircraft. Symbol
error checking has been accomplished in the past by analog error rate
processors which are typically very costly.
SUMMARY OF THE INVENTION
In accordance with the present invention, the disadvantages of prior
digital symbol generators as discussed above have been overcome. The
digital symbol generator develops analog deflection voltages to drive a
cathode ray tube display forming a symbology. The CRT beam is deflected to
trace successive straight line segments or vectors, the beam being
unblanked during the tracing of vectors forming the symbology and blanked
during other vectors.
All vectors are specified in polar coordinates by binary values
representing the vector angle .PHI. and the vector length l. This binary
representation of the angle and length allows vectors to be drawn at any
arbitrary angle or length not being limited by a fixed coded
representation thereof.
Symbols may be either fixed or variable. For fixed symbols, the vector data
words including the binary representation of angle and length for each
vector of the symbol are sequentially stored in a symbology PROM. A
computer transmits an initial symbol address to an address counter
whereupon a sequencer increments the counter as each vector is drawn to
sequentially read out data words from the PROM until the last vector of
the symbol is detected. After the initial symbol address is transmitted to
the symbol generator, no computer intervention is needed until the entire
symbol has been completed. For variable symbols, the vector data words
including angle and length information are supplied directly from the
computer to the symbol generator so that the symbol generator is not
limited by the fixed number of symbols stored in the symbology PROM. This
combination of fixed and variable symbols increases the flexibility of the
symbol generator while maintaining the dependency upon the computer at a
minimum.
A line length counter receives length data from either the symbology PROM
for fixed symbols or directly from the computer for variable symbols. The
counter counts down under a clock control until a zero is reached thereby
generating a series of pulses, the number of which is equal to the binary
representation of length loaded into it. The rate of the clock input to
the counter is greater for blanked vectors than for unblanked vectors so
that blanked vectors may be drawn four times the normal speed. Increasing
the drawing rate for blanked vectors minimizes the effective drawing time
of the symbology. However, uniform brightness of the visible symbols is
ensured since all visible vectors are drawn at a constant speed.
Rotation of the symbol is accomplished by digitally adding binary values
representing the angle of rotation and the vector angle. The resulting sum
represents the actual angle at which the vector is to be drawn and also
forms the address of a sin/cosine converter. The output of the converter
is a binary number corresponding to sin .PHI. and cos .PHI.. X and y
integrators combine this angle information with the pulse train from the
line length counter representing vector length to form composite digitial
signals. These signals are then sent to digital to analog converters to
develop the x and y deflection voltages which drive the CRT display.
The computer not only supplies control, data and address information to the
symbol generator unit, but also makes possible a monitoring scheme of the
system. The computer operates under the control of a constant program path
wherein conditional load instructions are utilized in lieu of conditional
branching. The computer functions to execute all of the programmed
instructions every iteration, issuing to the symbol generator the same
number and types of instructions regardless of the particular mode of
operation. Those symbols which are not part of a particular symbology mode
are drawn blanked or are replaced by blanked connecting vectors or dummy
symbols to minimize the time required to complete the symbol sequence. The
symbol generator includes segment counters which keep a running count of
the number of blanked and unblanked vectors drawn. This count information
is transmitted back to the computer to ensure that all of the vectors were
generated.
Symbol error checking is also accomplished by a vector closure technique
wherein each symbol is vectorally added to the previous symbol. The
symbology end point is measured at the output of the digital to analog
converters and is converted to a digital number while the true end point
is calculated independently by the computer using vector addition. These
two digital values are compared and if they are not equal, an indication
of error is displayed.
Other objects and features of the invention will be apparent from the
following description and from the drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an illustration of generated symbols displayed on a headup
display unit having the real world as a background;
FIG. 2 is a block diagram of the headup display showing the interconnection
of the computer, symbol generator and display units;
FIG. 3 is a graphical representation of two generated vectors;
FIG. 4 is a graphical representation of the x and y axis analog deflection
voltages;
FIG. 5A-B is an illustration of the blanked and unblanked vectors generated
forming two symbols;
FIG. 6A-B is a block diagram of the symbol generator unit;
FIG. 7 is an illustration of a 16-bit data word specifying a vector;
FIG. 8 is a schematic of the line length counter;
FIG. 9 is a schematic of the segment counters;
FIG. 10 is a schematic of the blanking circuit and line dash generator;
FIG. 11 is a block diagram of the sine/cosine converter and rotate adder;
FIG. 12A-B is a graphical illustration of the sine and cosine waveforms;
FIG. 13 is a block diagram of the x axis integrator;
FIG. 14 is a timing diagram of the integrator;
FIG. 15 is a schematic of the overrange circuit;
FIG. 16 is a graphical illustration of a vector in the overrange area;
FIG. 17 is a schematic of the analog output circuit;
FIG. 18 is a timing diagram illustrating the operation of the symbol
generator.
An example of the displayed symbols generated by the symbol generator of
the present invention is shown in FIG. 1. The generated symbols are
displayed on a headup display unit for an aircraft with the real world as
a background. The headup display unit includes an acrylic block 30 which
swings down into the pilot's field of view from an overhead mount,
providing a display for the generated images that are projected onto the
block from a CRT.
The symbols depicted are typical of those visible on the display for a
Non-ILS (Instrument Landing System) approach. Other typical modes of
operation may include an ILS approach for categories I, II and III, a
take-off/go-around mode, and a take-off/roll mode. Further display modes
may be utilized as desired. For each mode, appropriate symbols will be
visible on the display. The symbol generator is not limited to any
particular symbology or operating mode. The computer issues the same
number and type of instructions to the symbol generator, for all modes of
operation, during each iteration by means of a constant program path.
However, only those symbols which form part of a particular display mode
will be visible, the remaining symbols being blanked or replaced by
blanked vectors or dummy signals.
The symbols shown in FIG. 1 include a pitch reference symbol 32 which is
located in a fixed position 7.degree. above the center of the headup
display. The pitch reference symbol 32 represents the fuselage reference
line of the airplane and in relation to a horizon line symbol 34, gives an
indication of pitch and roll attitude. The horizon line symbol 34
represents the horizontal plane perpendicular to the earth, radial through
the airplane and at low altitudes, approximately overlays the true horizon
36. The vertical displacement of the horizon line 34 relative to the pitch
reference symbol 32 represents aircraft pitch attitude, and angular
displacement represents the aircraft roll attitude. An aircraft heading
symbol 38 is positioned above and in the center of the horizon line 34 and
when used in conjunction with a course reference symbol 40, it provides an
indication of course error or heading error. The course reference symbol
40 consists of a vertical marker together with smaller tick marks 41 at
5.degree. intervals to the left and right and is positioned along the top
of the horizon line 34. The position of the course reference symbol 40 is
determined by the deviation between the selected course and actual
aircraft heading.
An aircraft symbol 42 indicates the airplane's position, flight path or
trend relative to the "real world" depending upon the mode of operation.
For example, in the approach mode as shown, the airplane symbol 42
represents a selected flight path relative to the horizon. The airplane
symbol 42 is off-set from the horizon line symbol 34 by an amount
equivalent to the selected flight path angle. Thus, if the pilot selects a
3.degree. flight path, the airplane symbol will drop 3.degree. below the
horizon line. The wings 43 of the aircraft symbol 44 are not roll
stabilized, thus indicating roll angle with respect to the horizon line
34. A fast/slow symbol 44 appears as a bar perpendicular to the lefthand
wing of the airplane symbol 42 and indicates whether air speed is too fast
or too slow with respect to a reference speed computed by a digital flight
guidance computer. When air speed is too fast, symbol 44 appears above the
airplane symbol 42, and when too slow, below the airplane symbol. The
length of the fast/slow symbol 44 varies depending upon the magnitude of
the speed deviation. A pitch ladder symbol 46 provides a quantitative
measure of pitch attitude, marked at a 5.degree. increment above the
horizon line 34 and at a 10.degree. increment below horizon line 34. This
symbol is fixed vertically relative to the horizon line 34 which
corresponds to the zero reference point of the scale.
An indication of air speed is provided by a digital readout 48 which
indicates the computer air speed from the airplane's computer and changes
in one knot increments. An altitude readout 50 is displayed in units of
feet and varies between one and four digits.
As shown in this Non-ILS approach scenario, the pilot is maneuvering the
airplane in a left roll to line up the airplane symbol with the runway
center line. The airplane is at an altitude of 130 feet and has air speeed
of 130 knots. The pitch attitude is estimated by the vertical displacement
between the pitch reference 32 and the horizon line 34 together with the
pitch ladder 46 and is approximately 4.degree.. The selected flight path
angle is approximated by the perpendicular displacement between the
horizon line and the center of the airplane symbol. The airplane in this
case is below the horizon line by a distance equivalent to a -3.degree.
flight path.
Course error is determined by the displacement along the horizon line
between the aircraft heading symbol 38 and the reference symbol 40 and is
approximately 3.degree.. The roll angle is estimated by referencing the
airplane symbol 42 to the horizon line. The angular displacement between
these two symbols as shown is approximately equal to a roll angle of
-5.degree.. In this scenario, the pilot would continue the left turn until
the airplane symbol is aligned with the runway center line.
As shown in FIG. 2, the symbol generator unit 60 of the present invention
is part of a memory mapped input/output system of a digital computer 62.
Instructions are issued to the symbol generator 60 by reading from
selected memory locations in computer 62. In response to these
instructions, the symbol generator develops x and y analog deflection
voltages 63 and 64 and z axis or blanking signals 65 to drive a cathode
ray tube display 61, included in the pilot's display unit 66 for a headup
display. The image is presented to the pilot through optics 61a. The
symbol generator could, of course, be used in other display systems.
The computer 62 receives inputs related to the display from the pilot, as
intended flight path angle for approach, and from the aircraft, as angle
of attack, pitch and roll angles and mode selection logic signals. The
symbol generator 60 is connected with computer 62 through address and data
buses 67, 68 respectively and through control connections for Write (WR)
60, Read (RD) 70, and Next Symbol Please (NSP) 71. The computer also
provides a clock (CLK) signal at 72.
The x and y analog deflection signals at 63, 64 from symbol generator 60
are connected with deflection coils 73a, 73b of CRT 61. The blanking
signal at 65 is applied to an appropriate element of the CRT. Vector end
point signals from the symbol generator 60 and from the pilot display unit
66 are coupled with the computer 62 as indicated at 74, for comparison
with the calculated end point.
The computer 62 selects the proper operating mode for the symbol generator
unit 60 in accordance with pilot or aircraft inputs and operating on a
fixed program sequence or constant program path develops input information
which is transmitted to the symbol generator 60. This information selects
the proper set of symbols to be visible on the display units 66 and
establishes the position of the symbols. The constant program path is such
that the computer issues to the symbol generator the same type and number
of instructions during each iteration cycle. The program utilizes a
conditional load instruction in lieu of conditional branch instructions to
conditionally transfer the data resulting from execution of an intruction
into an output register. The symbol generator instruction issued by the
CPU may contain an address portion and a data portion. The address portion
determines the type of instruction, and the data portion the nature of the
symbol. For example, to paint a numeral, the address portion of the
instruction is the same regardless of the symbol. The data portion of the
instruction identifies the numeral. Selection of appropriate data and
transfer to a counter or register is referred to as "conditional loading".
The constant program path makes possible an effective monitoring scheme
for the CPU.
Computer 62 also includes a symbol error checking program which calculates
the true end point of the symbology for both the symbol generator and the
display unit using a vector addition technique. The symbol error checking
program will be discussed in greater detail below.
Inputs to the symbol generator unit 60 include an address signal received
from computer 62 which determines the function the symbol generator is to
execute. Data input received on a data bus 68 by the symbol generator unit
identifies the symbol to be drawn. For example, an instruction for a fixed
symbol--"draw airplane"--instructs the symbol generator to load a PROM
counter with the starting address of the programmed airplane symbol data.
An instruction--"draw a line"--includes line length information which is
loaded in a line length latch. The data also identifies angles; and
specifies the vector to be blanked. Upon receipt of a Write signal on line
69, symbol generator 60 accepts the address and data on buses 67, 68. When
a Read signal is received on line 70, the symbol generator outputs data on
data bus 68 to be transmitted back to computer 62. The symbol generator
unit 60 requests further instructions by transmitting a "Next Symbol
Please" NSP, signal on line 71 to the computer 62. No computer
intervention is needed until requested by receipt of the NSP signal.
Symbol generator unit 60 develops the appropriate x and y axis analog
deflection signals and blanking (z axis) signals to drive the CRT displays
included in the pilot display units 66. Straight line segments or vectors
are drawn in succession in a continuous manner to form the symbology.
Vectors may be drawn either blanked or unblanked wherein blanked vectors
are drawn approximately four times faster than unblanked vectors to
minimize the effective drawing time. Unblanked vectors are drawn at a
constant speed to provide uniform brightness of the displayed symbols.
Typical vectors v.sub.1 and v.sub.2 painted on the CRT are shown in FIG. 3.
A vector is defined in polar coordinates by binary values representing the
vector segment angle .PHI. and magnitude or length l. Each vector can be
resolved into components along the x and y axes. The components of v.sub.1
are
x.sub.1 =l.sub.1 cos .PHI.
y.sub.1 =l.sub.1 sin .PHI.
In order to draw the vector v.sub.1, symbol generator 60 produces the x and
y deflection waveforms shown in FIG. 4. Digital integrators for performing
this function are described below.
FIG. 5A shows the horizon line symbol 34 and the airplane symbol 42 with an
indication of their relationship to the aircraft flight condition and with
some of the connecting vectors used in drawing the display. FIG. 5B
illustrates in more detail the sequence of vectors which draw the display.
In FIG. 5A, beginning at a starting point 75, which may be the center of
the screen of the CRT, a blanked connecting vector 76 is drawn at the
aircraft roll angle .PHI. and having a length related to the aircraft
pitch angle. Horizon line 34 is drawn at right angles to blanked vector
76. A blanked connecting vector 77 having a length related to yaw or
course error provides an offset from the course reference symbol 40 at the
center of the horizon line. Blanked connecting vector 78 from the end of
connecting vector 77 and at right angles to horizon line 34 extends to the
center of the airplane symbol 42 and has a length which may, for example,
be a function of aircraft flight path angle.
In FIG. 5B, arrows indicate the direction in which the vectors are drawn.
Some of the blanked connecting vectors are shown by curved lines for
clarity. From starting point 75, blanked vector 76 is drawn. This is
followed by unblanked vector 79, blanked vector 80 and unblanked vector 81
forming the horizon line 34. Course reference symbol 40 is drawn next,
followed by blanked vectors 82, 77 and 78 to the midpoint of the aircraft
symbol 42. Blanked connector vector 83 is followed by vectors 84, 85
forming one-half of the aircraft symbol. Then blanked connecting vector 86
and vectors 87, 88 complete the aircraft symbol.
The generation of fixed and variable symbols by the symbol generator unit
60 will now be described in relationship to FIGS. 6A and 6B. For fixed
symbols, vector data words including the binary representation of angle
and length are stored in sequence for each consecutive vector forming the
symbol in a symbology PROM 120. As an example, for the horizon line symbol
34 of FIG. 5, the first vector words stored in symbology PROM 120 specify
the angle and length of vector 79. The second group of words stored
specifies the angle and length for vector 80 and so on with the last word
stored for the horizon symbol 34 specifying vector 82. When a fixed symbol
is to be drawn, the computer 62 transfers the initial address of that
symbol onto data bus 68 which is then loaded into a PROM address counter
122. The PROM address counter 122 is incremented by a sequencer counter
124 to read out the data words for the first vector to be drawn by the
remainder of the symbol generator unit 60. After that vector is drawn, the
sequencer counter 124 increments the PROM address counter to read out the
data word for the second vector to be drawn and so on until the last
vector comprising the symbol is detected and drawn on the CRT display.
The PROM's in the symbology PROM 120 together form a 16-bit wide field.
Each PROM is 8 bits wide and up to 2,048 words deep. The vector angle
representation is a 12-bit binary number and is made on the basis of
360.degree.=4096 counts (decimal). A positive angle is in the
counterclockwise sense. The length representation is also a 12-bit binary
representation based on 4096 counts=72.degree. optically, i.e. about the
center of deflection of the CRT. The binary representation of angle allows
vectors to be drawn at any arbitrary angle not being limited by a fixed
coded representation thereof. FIG. 7 shows the significance of each of the
bits. The first 11 bits 126 store the binary number representing either
the angle or length of the vector depending upon bit 127. If bit 127 has a
value of 1, the data in bits 126 represent the vector angle. If bit 127
has a value of 0, the data represented in bits 126 designates length. Bit
128 is an end-of-symbol (EOS) bit and when zero, designates that this is
the last vector comprising the symbol. Bits 129 and 130 designate right
angle data. For respective values of bits 129 and 130 of 0, 0; 0, 1; 1, 0
and 1, 1, the right angles 0.degree., 90.degree., 180.degree. and
270.degree. are specified. Bit 131 designates the vector blanking
information. If bit 131 has a value of 1, the vector is to be drawn
unblanked and if it has a value of 0 it is to be drawn blanked.
Vectors generated by the symbol generator unit must have a specified angle
and length so that two 16-bit words are normally required to describe the
vector, one representing angle, the other representing length. If bits 126
designate an angle the data word will be read out of symbology PROM 120 to
a segment angle latch 132. If bits 126 represent length, the data word
will be read out from the symbology PROM 120 into a line length counter
134. However, vectors may be specified by a single 16-bit data word where
the vectors are to be displayed at right angles to each other. The 16-bit
data word will contain length data in the first 10 bits 126 and angle data
in the right angle bits 129 and 130. Where right angle data is used, the
data bits 126 designating length are still loaded into the line length
counter 134 but a signal appears on lines 136 or 138 respectively
designating 90.degree. or 180.degree., or a signal may appear on both
lines 136 and 138 designating 270.degree. for the angle. The use of right
angle data saves memory space in the symbology PROM 120 since many of the
vectors forming a symbol will be at right angles.
For variable vectors, computer 62 transmits both length data and angle data
to data bus 68, the data words for these vectors having a format similar
to that shown in FIG. 7 for vector data words stored in symbology PROM
120. If the data specifies vector length, it will be loaded directly from
the computer 62 into a line length latch 140. If the data specifies the
angle of the variable vector, it will be loaded from computer 62 on data
bus 68 into an angle latch 142. Variable vectors may be drawn by a single
instruction by utilizing the right angle bits 129 and 130 if the relative
angle to the roll angle is 0.degree., 90.degree., 180.degree. or
270.degree.. If the vector is not at right angles to the roll angle, the
angle of the vector must be loaded into latch 142.
The line length counter 134 receives length data from either the symbology
PROM 120 for fixed symbols or from the line length latch 140 for variable
symbols. The counter counts down under a clock control until zero is
reached thereby generating a series of pulses, the number of which is
equal to the binary representation of length loaded into it. The rate of
the clock input to the counter is greater for blanked vectors than for
unblanked vectors so that blanked vectors may be drawn four times the
normal speed.
When a symbol or vector is to be rotated, computer 62 transfers a binary
representation of the roll angle or angle of rotation onto bus 68 into the
angle latch 142. Rotation of a fixed symbol is accomplished by adding the
binary value representing the roll angle stored in angle latch 142 with
the segment angle stored in segment angle latch 132 in a digital adder
146. If right angle data is utilized, the roll angle from latch 142 is
added to the binary representation of 90.degree. and 180.degree. on
respective lines 136 and 138 by digital adders 148 and 150, respectively.
For variable vectors, if right angle data is used, adders 148 and 150 sum
the right angle data with the roll angle from latch 142. If right angle
data is not used, the angle stored in latch 142 represents the arbitrary
angle at which the vector is to be drawn and after that vector is
completed, latch 142 is reset by the computer to the roll angle of the
aircraft. Latch 142 is set to zero when a non-roll stabilized symbol is
drawn. The resulting sum from digital adders 146, 148 and 150 represents
the actual angle of the vector to be drawn and also forms the address of a
sine/cosine converter 152.
The output of the sine/cosine converter 152 is a binary number representing
the cosine or the sine of the actual angle representation input to
converter 152. The cosine and sine of the actual angle are transmitted to
x and y integrators 154 and 156, respectively, on bus 158. A sign
designation is also sent to each of the integrators 154 and 156 on line
159 and will vary depending upon the orientation of the vector.
The x integrator 154 includes a cosine latch 160, an adder/subtractor
accumulator 162 and an up/down counter 164. Similarly, the y integrator
156 includes a sine latch 166, an adder/subtractor accumulator 168 and an
up/down counter 170. The up/down counters 164 and 170 combine the angle
information from the sine/cosine converter 152 via accumulator adders 162
and 168 with the pulse train generated by the line length counter 134
representing vector length and also a digital representation of the
starting point of the symbol x.sub.0, y.sub.0 supplied to the up/down
counter from the computer 62 on bus 68 to form composite digital signals.
These signals are then sent to digital to analog converters 172 and 174 to
develop respective x and y deflection voltages which drive the cathode ray
tube displays included in the pilot display units 66.
The core of the symbol generator sequencer generally designated 176
consists of a master clock generator 178, a sequencer counter 124, an
address decoder 180 and mode control flip/flops 182. The sequencer 176
oversees the set up of the internal registers of the symbol generator unit
for vector generation and controls the writing process. Only two
instructions will cause a vector writing sequence to be initiated. They
are the load line length latch and load PROM counter signals generated by
decoder 180.
The master clock generator 178 is a divide-by-sixteen counter. It receives
the 12 | | |