CA1075814A - Decompression calculator - Google Patents
Decompression calculatorInfo
- Publication number
- CA1075814A CA1075814A CA261,826A CA261826A CA1075814A CA 1075814 A CA1075814 A CA 1075814A CA 261826 A CA261826 A CA 261826A CA 1075814 A CA1075814 A CA 1075814A
- Authority
- CA
- Canada
- Prior art keywords
- input
- outputs
- output
- coupled
- dive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63C—LAUNCHING, HAULING-OUT, OR DRY-DOCKING OF VESSELS; LIFE-SAVING IN WATER; EQUIPMENT FOR DWELLING OR WORKING UNDER WATER; MEANS FOR SALVAGING OR SEARCHING FOR UNDERWATER OBJECTS
- B63C11/00—Equipment for dwelling or working underwater; Means for searching for underwater objects
- B63C11/02—Divers' equipment
- B63C11/32—Decompression arrangements; Exercise equipment
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Ocean & Marine Engineering (AREA)
- Electric Clocks (AREA)
Abstract
ABSTRACT OF THE DISCLOSURE
Apparatus for calculating and displaying dive related information is constructed in the form of a general digital com-puter that operates under software control to manipulate math-ematical decompression model of a human body in a variety of ways.
The circuitry of the computer employs LSI technology and is built about a central processor unit having a characteristic complement of peripheral circuits such as PROM and RAM memories, A-D and D-A converters, I/0 devices and other circuits to attend to nor-mal housekeeping duties. Communication between the processor unit and its peripheral circuits occurs via a parallel, eiqht bit bidirectional bus. Instructions and related data defined by predetermined programs are permanently stored in the PROM
memory and are retrieved and sequentially executed in response to operational command instructions input from an alphanumeric key-board. The keyboard is used in a novel matrix arrangement having its input coupled to an output port and its output feeding select-ted bits to the processor unit as coded command instructions and data words along a portion of the bus.
Apparatus for calculating and displaying dive related information is constructed in the form of a general digital com-puter that operates under software control to manipulate math-ematical decompression model of a human body in a variety of ways.
The circuitry of the computer employs LSI technology and is built about a central processor unit having a characteristic complement of peripheral circuits such as PROM and RAM memories, A-D and D-A converters, I/0 devices and other circuits to attend to nor-mal housekeeping duties. Communication between the processor unit and its peripheral circuits occurs via a parallel, eiqht bit bidirectional bus. Instructions and related data defined by predetermined programs are permanently stored in the PROM
memory and are retrieved and sequentially executed in response to operational command instructions input from an alphanumeric key-board. The keyboard is used in a novel matrix arrangement having its input coupled to an output port and its output feeding select-ted bits to the processor unit as coded command instructions and data words along a portion of the bus.
Description
11~758~
This lnvention relates -to decompression calculators and more particularly to digital decompression calculators for calculating and displaying dive related information.
The direction of advancing technology encompasses both aerospace and inner space with the latter being notably conspic-uous because of curren-t interest in undersea activities. In this regard, reference is made to undersea research projec-ts which include the search for and development of natural resources to sustain the needs of industry. Of lesser importance, but with substantial commercial significance is an increasing interes-t in sports diving. The pursuit of such interests requires perform-ance of underwater tasks and a successful adaptation to an under-water environment which, even at moderate depths, can prove haz-ardous to a diver. It is through the foregoing considerations that a continuing interest in -the effects of compression and de-compression on a human body has been maintained and has led to apparatus and means to overcome the attendant hazards.
Decompression sickness, popularly known as the "bends", occurs when inert gases dissolved in the blood and various tis-sues of a human body are released as discrete bubbles in order toachieve a state of equilibrium with a diver's supply of breathable air mixture. At sea level, the pressure of the diver's air supply is approximately one atmosphere (760 mm llg) pressure. As the div-er descends, the air pressure is increased by one atmosphere for every increase in sea water depth of 33 feet. When returning to the surface, a corresponding decrease in air pressure occurs. At equilibrium, the partial pressure of inert gases dissolved in the blood and body tissues equals the partial pressure of the inert gas in the diver's air supply. Thus, as the diver descends, the increasing air pressure requires a correspondingly higher partial pressure to maintaln equilibrium. An increase in the amount of .: ' , . ', ' :
1~1758~4 inert gases dissolved in the blood and body tissues provides -the required higher partial pressure.
When ascending to the surface, the inert gases are slowly released to maintain the state of equilibrium and, under ideal conditions, the rate of ascent is controlled to achieve a release of inert gases sufficient to continually maintain the equilibrium state. Decompression sickness occurs when the rate of ascent exceeds the rate at which the body is able to dispel the released gases. And, at a certain value of supersaturation of the dissolved gases in the body, nucleation of gas bubbles occurs. The bubbles are entrained within the body and induce symptoms that occur as pain in joints and limbs, frequently pro-ducing a contorted body position which gives rise to the popular name. In severe cases, paralysis, unconsciousness, and even death may result.
The adverse efEects of decompression sickness are of a sufficiently serious character that considerable effort has been expended to overcome the attendant problems. Attempts have been made to use various mixtures of oxygen and inert gases, notably helium, in order to permit diving to ~reater depths and to shorten decompression times for shallower dives. The problem of decompression sickness still remains, and prevention of the sickness is achieved by controlling the rate of ascent to provide a consequential control of gas release to maintain equilibrium without bubble nucleation.
Historically, decompression was controlled by referring to tables prepared from empirical data to ascertain recommended rates of ascent from various depths. This technique is still used but its application is limited to simple dives with ex-cursions to a single depth using a simple gas mixture. Themethod is not suitable where excursion depths and times vary and where various gas mixtures are used for the reason that tabled data is generally not available for a random set of conditions.
~75~
Approximations are therefore required. This leads -to conserv-ative estimates and greater decompression times to ensure diver safety with a concomitan-t increase in expense due to the fact that operating equipment is used for longer periods in the course of a dive.
Analog decompression meters and calculators are known and range from a single tissue, pressure operated decompression meter to a multi-tissue, electronic calculator. The calculator has a plurality of tissue compartments that are responsive to the pressure of breathable gas from a diver's air supply and provides an indication of inert gas uptake and release to each compartment irrespective of dive characteristics and breathable gas mixtures. A drawback of a decompression meter comprising a single variable volume chamber that represents an analog of a general body tissue is that it is suitable only for shallow dives and short diving profiles. The multi-tissue calculator is not restricted by such shortcomings. But, as is typical of an analog device, optimum accuracy is only available in mid re-gions of its operating range, the high end, which is the most critical as regards decompression sickness, providing a readout having poor resolution. Furthermore, a drawback common to all analog devices is a need for frequent calibration to maintain ac-curacy.
It is known in the art that the uptake and release of inert gases for various tissue systems can be described very well by a mathematical model. Past work in this respect has evolved a mathematical model known as the "Kidd-Stubbs" model.
The response of a human organism to hyperbaric exposure is sim-ulated by the model via a serially connected set of four tissue compartments, each representing a tissue system, wherein the first compartment is driven by the diver's source of air. A
.. . .
. . . - .
31 ~75~
corresponding analysis has been described in a publication, Weaver and Stubbs: DCIEM Repor-t No.68~, (Sept., 1968). The mathematical model is expressed as a set of four non-linear, first order differential equations which may be solved using a technique known as the "Runge-Kutta method". A disadvantage of the technique, however, is that a large number of calculations are required, resulting in long computation times.
According to the present invention means are pro-vided to calculate safe decompression for random-depth and repetitive dive profiles in accordance with a mathematically de-fined decompression model.
The means of the invention also provide that the de--; compression model is not time-limited within its working range.
The means of the invention include a digital micro-computer that is operable in an accelerated time mode for dive planning and in a real time mode for on-line dive monitoring.
The invention further provides improved accuracy and resolution at its low and high operating limits.
Still another provision of the invention is a reduced need for calibxation and maintenance checks as a result of employing a digital system.
The aforenoted limitations and drawbacks of the prior art decompression calculators may be substantially overcome and the provisions of the present invention achieved by recourse to the invention as disclosed and claimed herein.
One aspect of the invention relates to a digital de-compression calculator and real-time monitor apparatus, including display means, for calculating and displaying dive related in-formation. The apparatus includes addressable memory means for storing a plurality of instruction and dive related data words at respective addresses and processor means coupled to the memory _ ~ _ . . . :
~075~
means and operatiny in a time-division mode for retrieving and sequentially executing the instruction words and performing logical operations on the data words for calculating the re-quired information in response to an operational command in-struction. The apparatus further includes a firs-t output port having a plurality of outputs and a plurality of inputs coupled to the processor means, the inputs being adapted to be loaded from the processor means with a predetermined binary digital signal array of ones and zeros. The outputs of the output port are conducted along corresponding signal paths to respective ones of inputs in a matrix means. The matrix means also in-cludes a plurality of outputs having substantially fewer signal paths which are adapted to couple selected ones of the digital signals to the processor means as encoded command instructions and data words.
A second aspect of the invention relates toa method of operating a digital decompression calculator and real-time mon-itor apparatus for calculating and displaying dive related in-formation in a time-division mode where the apparatus includes addressable memory means storing a plurality of instruction and dive related words at respective addresses, processor means hav-ing a plurality of registers coupled to the memory means for normally retrieving and executing the instruction words and per-forming logical operations on data words in response thereto, a first output port having a plurality of inputs coupled to the processor means and a plurality of corresponding outputs, and matrix means having a plurality of inputs conducted along corresponding signal paths to selected ones of the port outputs and a plurality of matrix outputs having substan-tially fewer signal paths adapted to couple selected ones ' . ~ :
~)75~
of the digital signals to the processor means. The method comprises the steps of:
initiallizing -the proc~ssor means to clear all regis-ters by loading each register with a binary ~igital signal array of zeros;
addressing the memory means with an address portion of the array and retrieving a plurality o~ predetermined instruction and data words in response thereto;
sequentially exec~lting the predetermined instruction and data words and generating in response thereto a binary digital signal array of ones and zeros that are coupled to the output port; and selecting at least one matrix output and coupling the signal therefrom along said fewer signal paths to an in-struction register of the processor means as an encoded oper-ational command instruction.
The invention will now be more particularly described with reference toembodiments thereof shown, by way of example, in the accompanying drawings wherein:
Fig. 1 is a perspective view of a decompression calculator in accordance with the present invention and shows a general layout of all operating controls;
Fig. 2 is a block diagram showing the flow of in-formation through a decompression model employed in the cal-culator of Fig. l;
Figs. 3, 4, and 5 are block diagrams of a computer ~" circuit employed in the calculator of Fig. l;
Fig. 6 is a schemtaic diagram of an I/O circuit used in the computer circuit of Figs. 3, 4, and 5; and FigO 7 is a flow chart indicating the overall logic :
~ ~ 6 -. ~.
~, . . .
~07~ 4 of the computer circuit shown .in Figs. 3, 4, and 5.
Referring now to Fig. 1, there will be seen a per-spective view of a digital decompression ealeulator lO showing a layout of various controls and visual indieators. The ealeulator 10 is provided with two keyboards, a numerie key-board ll for data entry and a eontrol keyboard 12 for exeeu-ting various operational command instructions to which the ealeulator is responsive. Data may also be entered via a rear-eonneeting analog input (not shown).
- 6a -A ::
~L07~
Output information is supplied to an operator by a plurality of indicator lights 13, 18, 19, 20 and 21, a seven diglt alpha-numeric LED display 1~1 and two rear-connecting analog outputs (not shown). Additional operator controls are positioned on an upper deck o~ the calculator 10 and include a key-controlled power on/off switch 15, a push-button switch 16 to interrupt or halt a calculation and a slide switch 17 for selecting either a Real or Calculate mode of operation. The indicator lights 18 and 19 illuminate to indicate the current mode. The Kidd-Stubbs multi-tissue model having four tissue compartments is employed in both modes of operation.
The Calculate mode is used for accelerated time, dive planning or model study calculations. In this mode the basic inputs of time and depth are entered through the keyboards. At the end of a calculation, the operator can interrogate the cal-culator 10 by means of the keyboard 12 for the currant status of its dive or model parameters, or continue with the dive sequence.
The operator may also initiate a safe decompression ascent where the safe depth is constantly displayed and updated as a function of time.
The Real mode of operation may be used for on-line monitoring of an actual dive situation. Real time information is generated in this mode by an internal, crystal controlled clock and the model is updated at 0.1 minute intervals. Depth infor-mation can be entered either through the keyboard 11 or via a rear-connecting analog voltage from a pressure transducer (not shown). The Real mode ls set up by placing the switch 17 in the Real position, and inputtingan operational command instruction via the keyboard 12 to switch the data input of the calculator 10 to the rear-connecting analog input if required.
During the course of a dive, any of the dive or model ~o~s~
parameters can be monitored ei-ther by the display or through the analog outputs. At any time, the operator can address, -through the keyboard 12, a number oE dive parameters including actual depth, total time of dive, safe depth before decompression, ascent time on an optimum decompression curve, and stage time which is the time required to wait before an ascent of one stage depth (ten Eeet). If at any time during the dive the actual depth is less than the safe depth, a ha~ard light 13 is illuminated. In addition, a look ahead calculation, giving the minimum ascent or stage time can be undertaken without disturbing the ongoing up-date of the model.
Two gas mixtures, 80~ ~elium/20% Oxygen (Gas #l) and 80% Nitrogen/20% Oxygen (Gas #2), are addressed by the model, depending on input command instructions, and the selected mixture is indicated by one of the liyhts 20 and 21. It will be under-stood that the calculator 10 is not restricted to these gas mixtures and that the model flow constants can be changed through the keyboards 11 and 12 to accommodate virtually any gas compos-ition.
The calculator 10 is controlled by a set of instruc-tions which are input as operational command instruction words and which are identified by a two digit operation code. The commonly used instructions are assigned separate keys for their easy execution and together make up the keyboard 12. Instruction input via the keyboard 12 is referred to as a Direct Method. The calculator 10 is responsive to a set of forty-eight instructions of which twelve may be executed by the keyboard 12. The remaining instructions are input via an Indirect Method using the keyboard 11 to execute the appropriate -two digit operation code. In this way a multiplicity of dive and model parameters may be displayed, altered or routed through the analog outputs by an appropriate ~75~
manipulation of the keyboards 11 and 12.
Commonly used instructions are assigned to separate keys and appear in coded form on the keyboard 12. The direct key operations are:
KEY N~YE DESCRIPTION
ED Enter Depth The decompression model is caused to ascend or descend to the depth indicated in a data register of the calculator 10 at a rate controlled by an internal ascent rate or descent rate register. The depth is input to the data register via the keyboard 11 Following completion of the calculation, the actual depth will be shown on the dis-play 14.
ET Enter Time The depth is held constant and the decom-pression model is advanced by a time inter-val given in the data register where the time interval is input via the keyboard 11.
On completion of the calculation, the total time will be displayed in the data register.
A Ascend The decompression model ascends to the depth indicated in the data register. The ascent is carried out on an optimum safe ascent profile. On completion of the cal-culation, the actual depth to which the model ascends will be displayed.
ADActual Depth The contents of an actual depth register are displayed on the display 14.
TTTotal Time The total time since initialization of the calculator 10 is displayed in the data reg-ister and appears on the display 14.
; SDSafe Depth The Calculator 10 displays the depth to which safe ascent is possible. Negative numbers refer to a "depth" above the sur-face and can be translated into altitude for divers requiring air transport after hyperbaric operations.
CL Clear The operation code and the data register are cleared.
ATAscent Time The calculator 10 determines the time re-quired for a diver to ascend to the surface under the optimum safe ascent profile. The current status of the model is not changed and ascent time is displayed when the cal-culation is complete.
30 STStage Time The calculator 10 determines the time re-quired for a diver to ascend from his present position to one "Stage Depth." The "Stage Depth" is an internally stored value of ten feet which can be changed by the operator using an indirect operation.
~758~fl~
Referring next to Fig. Z there is shown a diagram in-dicating a basic flow of information through the Kid-Stubbs model.
Input information to the model consists of a diver ' 5 current time and depth toge-ther with historical information contained in re-spective tissue pressures of the four tissue system defined by the model. The equations describing the Kid-Stubbs model are given by dPl/dt = AlFl AoF2 dP2/dt = A2F2 ~ AoF3 dP3/dt = A3F3 AoF4 dP4/dt = A4F4 AoF5 where:
P = absolute pressure of respective compartments in the model A = flow constants for gases between the compartments F = a function given by A 1 ) ( A 1 ) .~ F2 = (B + Pl + P2) ( 1 2 -.
3 ( 2 3)( 23) 4 ( P3 + P4)(P3 P4) . ~ .
where:
B = an additional flow constant PA = the diver's ambient pressure.
For the standard Kid-Stubbs decompression model, all the A constants are ldentical. For experimental purposes, it is desirable to allow Ao through A4 to be different. Although the calculator 10 initializes these constants the same, they can be individually set by the operator to any desired value by appro-priately instructing the calculator via the keyboards 11 and 12.
The solution of each compartment pressure is computed in reduced time by following a program that defin0s an algorithm based on an improved version of the Euler formula (Heun Formula) Yn~l Yn + Yn + f(xn+ h,yn+ hyn') h/2 where:
Yn' = f(x ,y ).
After calculation, the updated tissue pressures are used to compute a safe ascent depth based on the criteria that the maximum tissue pressure, when modified by a suitable super-saturation ratio, determines the minimum safe pressure to whichthe diver can be exposed without decompression problems. Thus, Di Xi i (Yi Psurface) where:
Di = minimum safe depth Pi = tissue pressure P = surface pressure surf ace Xi = . 72202 Yi 9-9 i= 1,2,3,4 20 It will be noted that the X and Y constants are shown as being the same for each tissue compartment of the model. They can, however, be set by the operator to predetermined values as noted above.
The equations describing the Kidd-Stubbs model have no analytical solution and therefore require a numerical computer solution for which the apparatus of the present invention is pro-grammed. When solved on a real time basis, a diver will have access tocontinuous decompression data. The basic inputs of the problem are simply the diver's instantaneous ambient pressure 30 (i . e. depth) as a function of time and the values of the flow constants. The algorithm of the invention continually calculates ~1~7~
an updated set of compartment pressures using the compartment pressures from the previous calculations together with fresh ambient pressure information.
The circui-try of the calculator 10 comprises a micro-computer system employing LSI single chip components which are arranged and programmed to provide a digital decompression cal-culator and real-time monitor apparatus in accordance with the present invention. Block diagrams illustrating the intercon-nections of the LSI chips, including control signal and da-ta bit paths, may be seen in Figs. 3, 4 and 5. Data bit paths are shown in double line form whereas the control signal paths are shown as single lines. The concept of a microcomputer system was fol-lowed in view of the fact that the decompression model is very complex and requires a flexible computer system that can be programmed to manipulate the model in a number of convenient ways to provide the user with as much information as possible.
The microcomputer system of the apparatus 10 was dev-eloped around a single chip MOS eight bit parallel central pro-cessor unit. The hardware was designed as a generalized com-puter in order to obtain the flexibility required through soft-ware manipulation. The basic hardware components include the central processor unit which is shown generally in Fig.3 as a processor 25. The processor 25 inter~aces with peripheral cir-cuits that include a RAM memory 26 having a capa-city of lK eight bit bytes, a PROM memory 27 with a capacity of up to 5K eight bit bytes, the keyboards 11 and 12 and associated circuitry, the visual display 14 and associated circuitry, two eight bit dig-ital-to-analog converters 30 and 31 providing outputs for cor-responding analog recorders and a ten bit analog-to-digital con-verter 32 to input an analog signal to the computer system.
Operational command instructions and data are input to ~75~
the calculator 10 through either the keyboards 11 ~nd 12 or an analog input 38 of the converter 32. Command instructions are executed by -the operator and appear as three parallel binary signal outputs on a keyboard ou-tput 33. The output 33 is shown in Fig. 4 as input to an input port 34 having an output 34' that is coupled to an eight bit data and address bus 35 which is bidirectional.
Data in the form of an analog signal applied to the input 38 of the converter 32 is converted and appears a-t the output of the converter 32 as a ten bit binary signal. Two bits of the signal are input to the input port 34 and are output there-from to the data bus 35. Eight parallel bits from the converter 32 are input to a second input port 36 and are output therefrom to the data bus 35. It will be understood that the ten bitbinary output of the converter 32 is strobed in~o the processor 25 in two parts. The eigh-t most significant bits are taken via the input port 36 and the two least significant bits are input via the input port 34.
An instruction from the keyboards 11 and 12 to the input port 34 is used to clear an A/D ready flag on the third bit of the input port 34. The first, second and third bits of the input port 34 are employed by the keyboards 11 and 12 to in~
put command instructions and data. The fourth and fifth bits of the input port 34 are used by the switch 16 which, when activated, stops a calculation at the end of an incremental calculation.
The processor 25 communicates with its peripheral cir-cuits over the bus 35 as may be seen in Figs. 3 and 4. The bus 35 is time multiplexed under the control of a crystal controlled two-phase clock pulse generator 40 which is coupled to a timing and control unit 41 of the processor 25. An Interrupt input and four outputs S0, Sl, S2 and Sync of the unit 41 provide necessary control. Time multiplexing thus allows control information, ,. ",~
~075~
addresses., and data to be transmitted between the processor 25 and the peripheral circuits alony a sinyle bus.
Included in the processor 25 are six, eiyht bit data reyisters and an eiyht bit accumulator which ~orm a scratch pad memory 42. An eiyht bit parallel binary arithme-tic loyic unit 43 implements addition, subtraction, and loyical operations on instruction and data words, and an instruction reyister 44 tem-porarily stores instructions input to the processor 25. Program and subroutine addresses are stored internally in an address stack 45.
The control functions of the processor 25 permit normal program flow to be interrupted throuyh the Interrupt input which is driven by an interrupt logic circuit 54 under the control of a control logic circuit 53. This permits serviciny slow I/O per-ipheral devices like the keyboards 11 and 12 while also executing the main proyram stored in the memory 27. ~ -A11 communication within the processor 25 occurs via an internal data bus 29 whereas communication with the peripheral.
circuits occurs alony the bus 35 which is shown coupled to the bus 29. Communication occurs in the form of eiyht bit bytes of address instruction or data. The processor 25 controls the use of the bus 35 and determines whether it will be sendiny or re-ceiving data. State outputs S0, Sl and S2, toyether with Sync, indicate the state of the processor 25 at any time in an instruc-tion cycle and inform the peripheral circuitry accordinyly.
The timiny of the processor 25 results in a machine cycle consistiny of five states. Duriny the first and second states, an address is sent to memories 26 and 27. Duriny the third state instructions or data are fetched or retrieved from the memories. The cycle is completed with the fourth and fifth states during which an instruction is executed. A Wait state is en-tered when the memories are no-t available for either read-ing or writing data.
Long instructions input to the processor 25 may require from one to three machine cycles for complete execution. In this event, the first cycle is always an instruction fetch cycle and the second and third cycles are for data reading, data writ-ing or I/O operations. The cycle types are coded with two bits and appear on the bus 35 only during the second state when ad-dress information is output to the memories 26 and 27.
Another source of information for the processor 25 is the memory 27 which stores programmed instruction and data words including arithmetic formula statementsthat define the Kidd-Stubbs decompression model together with related data words ofconst-ant and variable parameters. In addition, the memory 27 stores a series of instructions defininganalgorithm based on the im-proved version of the Euler formula ~Heun Formula) for com-puting the tissue pressures of individual olles of the four tissue systems defined by the model. A plurality of subroutines are likewise stored to perform the various housekeeping duties as-sociated with the aforenoted instructions. The memory 27 out-puts data, together with the memory 26, to a memory bus 46 which is coupled through a memory buffer 47 to the bus 35.
Reference to Fig. 3 shows that the bus 35 is also in-put to a data bus buffer 48~ An eight bit output from the buffer 48 is coupled to the memory 26 and also to latches 49 and 50.
The output of the latch 49 together with a portion of the out-put from the latch 50 are coupled to the memory 26 and provide address information. A location in the memory 26 which is ad-dressed by the outputs of latches 49 and 50 is output to the memory bus 46 or input to the memory 26 from the buffer 48 de-pending on the state of an enabling Read/Write control signal i81~
from the control logic circui-t 53. The circuit 53 in turn is conditioned by the state control coding of the timing and control unit 41. As shown in Fig. 3, enabling outputs from the circuit 53 are coupled to the memory 26, a:nd to the latches 49 and 50.
The memory 26 is thus enabled duri:ng the first and second states of the machine cycle by means of a Read/Write signal on an out-put 53l.
A six bit output from the latch 50 is coupled to decod-ers 51 and 52, two bits being input to the decoder 51 and four bits being input to the decoder 52. The output of the decoder 52 is expanded to sixteen bits and provides enabling signals for each of the memories 26 and 27. The output of the decoder 51 is expanded to four bits and provides control signals that co-operate with corresponding signals from the output of the decoder 52 to provide signals for selecting predetermined ones of memory chips in the memory 27.
Referring now to Figs. 3 and 5, it will be seen that the output of the latch 49 is input to an output port latch 55 and to a shift register 56. The latch 55 receives eight bits . 20 input and outputs the same number of bits in response to an en-abling signal from an output decoder 59. All of the bits are coupled to the inputs of a matrix formed by the keyboards 11 and 12. The shift register 56 receives the first four bits and out-puts BCD data which is input to the display 14 to provide an alpha-numeric readout. The same BCD data is also input to a latch and decoder circuit 57 which is enabled by a control signal from a demultiplexer driver 58 to provide output signals coupled to the display 14 for indicating a minus sign and for locating the decimal point in the readout.
. 30 In operation, the information to be displayed consists of nine, four bit BCD characters. The first seven characters , . .
represent seven digits to be output on the LED devices of the display 14. The eighth character determines the sign and decimal point position, and the ninth character is used for outputting the status indicator lights which form a part of the general dis-play 14. The nine BCD characters are output in sequenee and are locally stored in the shift register 56 until required. The register 56 is thereafter rotated and the output characters are multiplexed to the display 14 by control signals from a read/
rotate logic circuit 60.
The output bus from the latch 49 of Fig. 3 is shown in Fig. 4 as input to output ports 61 and 62. In response to a control signal appearing on an output 75 of the decoder 59, the output port 61 produces an eight bit output that is coupled to the converter 30 which,in turn, generates a first analog signal at an output 63. The output port 62 is responsive to a seeond control signal appearing on an output 76 of the decoder 59 and similarly produces an eight bit output coupled to the con-verter 31 which likewise generates a seeond analog signal at an output 64. It will be noted in Fig. 5 that the output deeoder 59 20 reeeives as inputs three bits from the lateh 50 and an I/O OUT
eontrol signal from the logic eireuit 53.
The converter 32 operates on a six second duty cycle which is determined by a divider 65 driven by a 2 MHz eloek pulse from the generator 40. The divider 65 also provides a multiplex clock pulse output whieh is used in timing the logic circuit 60 of Fig. 5.
Input ports 34 and 36 of Fig. 4 are selected by an I/O
IN signal obtained from the control logic circuit 53. An input port deeoder 66 is shown with an input eoupled to the first and seeond bits of the lateh 50 output. These two bits seleetively enable the input ports 34 and 36 during input multiplexing ~75~4 operations. Coded instructions and data words inpuk to the input port 34 from the keyboards are thereby strobed into the processor 25.
Operational command instructions are input to the pro-cessor 25 via an I/O arrangement comprising the keyboards 11 and 12 arranged in a matrix having an eight line input and a three line output. As shown in Fig. 6, the eight inputs connect to respective ones of the latch 49 outputs which are indicated as LA~ through LA7. Each latch 49 output is coupled to a flip~flop 10 70 of the latch 55 which in turn is coupled through a correspond-ing buffer amplifier 71 to the input side of the matrix. The matrix output is the keyboard output 33 of Fig. 5 and is coupled to the input port 34 from which it is output to the data bus 35.
The respective lines of the output 33 are connected in parallel with corresponding bit outputs of the input port 36.
The operation of any selector switch in the keyboards 11 and 12, as well as the slide switch 17, produces a coded sig-nal on predetermined ones of the three lines of the output 33.
Command instructions and data from the keyboards are therefore input to the input port 34 e ~,h time the latch 55 is enabled by a device select signal which is coupled to a terminal 72 from the decoder 59. In this way, both operational command instruc-tions and data words are communicated from the keyboards to the ; processor 25 using only three lines of the bus 35. The remaining five lines of the bus 35 are used for communicating input data from the converter 32.
In response to a first input command instruction, the processor 25 addresses the memory 27 with an address portion of the instruction and sequentially retrieves a plurality of pre-determined instruction and data words. The retrieved instructionand data words are sequentially executed, resulting in a binary ., . ~ ,. .. . . . . . .
, ~ .
... . .
~)75~
digital signal array of ones and zeros that are coupled to the bus 35 and through the buffer 48 to the input of the la-tch 49.
From the output of the latch 49, the array is coupled to the input of the matrix via the latch 55. The signal array is cleared and is substituted with zeros by merely depressing the Clear key CL. A second operational command instruction may then be exec-uted by selecting at least one matrix output and coupling the signal therefrom to the instruction register 44. It will be noted that the Clear key CL is operated before each command in-struction in order to clear the registers.
The complete operation of the calculator lO is definedby its software and key identification, debounce, and verifica-tion is done under software control. A flow chart is shown in Fig. 7 and illustrates the overall logic of the computer system employed in the calculator 10.
The calculate mode of operation is used for dive plan-- ning and decompression studies. In this mode the basic inputs to the Kidd-Stubbs model, namely time and depth, are entered through the keyboards 11 and 12. After power is applied to the calculator 10, all compartments are set to the surface pressure in accord-ance with instructions stored in the memory 27. To simulate a dive, numerical depth data is entered via the keyboard 11. Pres-sing the Enter Depth key ED, the calculator will update the model to descend to the depth set at a rate of sixty feet per minute under the control of a subroutine in the memory 27. During the descent, the display 14 provides a readout in decrements of six feet per 0.1 minutes. The calculation stops at the depth set and no further changes occur until a second command instruction is entered.
Time information is entered in a similar way by firstly entering the numerical data on the keyboard ll and thereafter , ~ ~
~s~
depressing the Enter Time key ET. This action will cause the model to be advanced in time by one minute intervals until the to-tal time is increased by the time set. The total dive time is shown on the display 14 at the end of the calculation.
At the end of a calculation, the operator can instruct the calculator 10 to read out the current status of its internal registers. This communication is executed through the keyboard 12. For example, by pressing the Actual Depth key AD, the pro-cessor 25 responds by addressing the memory 26 with an address portion of the command instruction in order to read out the diver's current depth from the memory 26 and to input the stored data to the display 14. In similar fashion, other dive re-lated information can be extracted through an appropriate manip-ulation of the keyboard 12.
The Real mode of operation is used to monitor an actual dive situation. In this mode, the time information is generated for the model in 0.1 intervals by the 2 ~IZ clock pulse from the gener-ator 40. The only information that is input to the calculator 10 in the Real mode is depth information which is entered either as an analog voltage via the converter 32 or as a digital input ex-ecuted through the keyboards 11 and 12.
The calculator 10 is placed into the Real time mode by throwing the switch 17 to the Real position. The Real indicator light 18 is then illuminated to inform the operator that the mode is active. Once placed in the Real mode, the calculator 10 can only be returned to the Calculate mode by entering a command in-struction through the keyboards.
When the calculator 10 is initiallized, the depth in-formation for the Real mode is set up to come from the keyboards 11 and 12. However, if an analog voltage representing the diver's actual depth is to be input directly into the calculator 10 '.
~5~
through the connector 38, the calculator 10 must be instructed to go to the External mode by a command instruc-tion -to which the processor 25 responds by retrievin~ from -the memory 27 an appro priate subroutine and execu-tin~ same. The ex-ternal indicator light 19 is then illuminated to indica-te the External operating mode. In order to return to the Calculate mode, a further command instruction is required. Once the calculator 10 is set in the External mode, it will continue to function but will ignore all input instructions and data except the analog data that is input to the converter 32 and a coded instruction to return to the Calculate mode.
' .~ .
This lnvention relates -to decompression calculators and more particularly to digital decompression calculators for calculating and displaying dive related information.
The direction of advancing technology encompasses both aerospace and inner space with the latter being notably conspic-uous because of curren-t interest in undersea activities. In this regard, reference is made to undersea research projec-ts which include the search for and development of natural resources to sustain the needs of industry. Of lesser importance, but with substantial commercial significance is an increasing interes-t in sports diving. The pursuit of such interests requires perform-ance of underwater tasks and a successful adaptation to an under-water environment which, even at moderate depths, can prove haz-ardous to a diver. It is through the foregoing considerations that a continuing interest in -the effects of compression and de-compression on a human body has been maintained and has led to apparatus and means to overcome the attendant hazards.
Decompression sickness, popularly known as the "bends", occurs when inert gases dissolved in the blood and various tis-sues of a human body are released as discrete bubbles in order toachieve a state of equilibrium with a diver's supply of breathable air mixture. At sea level, the pressure of the diver's air supply is approximately one atmosphere (760 mm llg) pressure. As the div-er descends, the air pressure is increased by one atmosphere for every increase in sea water depth of 33 feet. When returning to the surface, a corresponding decrease in air pressure occurs. At equilibrium, the partial pressure of inert gases dissolved in the blood and body tissues equals the partial pressure of the inert gas in the diver's air supply. Thus, as the diver descends, the increasing air pressure requires a correspondingly higher partial pressure to maintaln equilibrium. An increase in the amount of .: ' , . ', ' :
1~1758~4 inert gases dissolved in the blood and body tissues provides -the required higher partial pressure.
When ascending to the surface, the inert gases are slowly released to maintain the state of equilibrium and, under ideal conditions, the rate of ascent is controlled to achieve a release of inert gases sufficient to continually maintain the equilibrium state. Decompression sickness occurs when the rate of ascent exceeds the rate at which the body is able to dispel the released gases. And, at a certain value of supersaturation of the dissolved gases in the body, nucleation of gas bubbles occurs. The bubbles are entrained within the body and induce symptoms that occur as pain in joints and limbs, frequently pro-ducing a contorted body position which gives rise to the popular name. In severe cases, paralysis, unconsciousness, and even death may result.
The adverse efEects of decompression sickness are of a sufficiently serious character that considerable effort has been expended to overcome the attendant problems. Attempts have been made to use various mixtures of oxygen and inert gases, notably helium, in order to permit diving to ~reater depths and to shorten decompression times for shallower dives. The problem of decompression sickness still remains, and prevention of the sickness is achieved by controlling the rate of ascent to provide a consequential control of gas release to maintain equilibrium without bubble nucleation.
Historically, decompression was controlled by referring to tables prepared from empirical data to ascertain recommended rates of ascent from various depths. This technique is still used but its application is limited to simple dives with ex-cursions to a single depth using a simple gas mixture. Themethod is not suitable where excursion depths and times vary and where various gas mixtures are used for the reason that tabled data is generally not available for a random set of conditions.
~75~
Approximations are therefore required. This leads -to conserv-ative estimates and greater decompression times to ensure diver safety with a concomitan-t increase in expense due to the fact that operating equipment is used for longer periods in the course of a dive.
Analog decompression meters and calculators are known and range from a single tissue, pressure operated decompression meter to a multi-tissue, electronic calculator. The calculator has a plurality of tissue compartments that are responsive to the pressure of breathable gas from a diver's air supply and provides an indication of inert gas uptake and release to each compartment irrespective of dive characteristics and breathable gas mixtures. A drawback of a decompression meter comprising a single variable volume chamber that represents an analog of a general body tissue is that it is suitable only for shallow dives and short diving profiles. The multi-tissue calculator is not restricted by such shortcomings. But, as is typical of an analog device, optimum accuracy is only available in mid re-gions of its operating range, the high end, which is the most critical as regards decompression sickness, providing a readout having poor resolution. Furthermore, a drawback common to all analog devices is a need for frequent calibration to maintain ac-curacy.
It is known in the art that the uptake and release of inert gases for various tissue systems can be described very well by a mathematical model. Past work in this respect has evolved a mathematical model known as the "Kidd-Stubbs" model.
The response of a human organism to hyperbaric exposure is sim-ulated by the model via a serially connected set of four tissue compartments, each representing a tissue system, wherein the first compartment is driven by the diver's source of air. A
.. . .
. . . - .
31 ~75~
corresponding analysis has been described in a publication, Weaver and Stubbs: DCIEM Repor-t No.68~, (Sept., 1968). The mathematical model is expressed as a set of four non-linear, first order differential equations which may be solved using a technique known as the "Runge-Kutta method". A disadvantage of the technique, however, is that a large number of calculations are required, resulting in long computation times.
According to the present invention means are pro-vided to calculate safe decompression for random-depth and repetitive dive profiles in accordance with a mathematically de-fined decompression model.
The means of the invention also provide that the de--; compression model is not time-limited within its working range.
The means of the invention include a digital micro-computer that is operable in an accelerated time mode for dive planning and in a real time mode for on-line dive monitoring.
The invention further provides improved accuracy and resolution at its low and high operating limits.
Still another provision of the invention is a reduced need for calibxation and maintenance checks as a result of employing a digital system.
The aforenoted limitations and drawbacks of the prior art decompression calculators may be substantially overcome and the provisions of the present invention achieved by recourse to the invention as disclosed and claimed herein.
One aspect of the invention relates to a digital de-compression calculator and real-time monitor apparatus, including display means, for calculating and displaying dive related in-formation. The apparatus includes addressable memory means for storing a plurality of instruction and dive related data words at respective addresses and processor means coupled to the memory _ ~ _ . . . :
~075~
means and operatiny in a time-division mode for retrieving and sequentially executing the instruction words and performing logical operations on the data words for calculating the re-quired information in response to an operational command in-struction. The apparatus further includes a firs-t output port having a plurality of outputs and a plurality of inputs coupled to the processor means, the inputs being adapted to be loaded from the processor means with a predetermined binary digital signal array of ones and zeros. The outputs of the output port are conducted along corresponding signal paths to respective ones of inputs in a matrix means. The matrix means also in-cludes a plurality of outputs having substantially fewer signal paths which are adapted to couple selected ones of the digital signals to the processor means as encoded command instructions and data words.
A second aspect of the invention relates toa method of operating a digital decompression calculator and real-time mon-itor apparatus for calculating and displaying dive related in-formation in a time-division mode where the apparatus includes addressable memory means storing a plurality of instruction and dive related words at respective addresses, processor means hav-ing a plurality of registers coupled to the memory means for normally retrieving and executing the instruction words and per-forming logical operations on data words in response thereto, a first output port having a plurality of inputs coupled to the processor means and a plurality of corresponding outputs, and matrix means having a plurality of inputs conducted along corresponding signal paths to selected ones of the port outputs and a plurality of matrix outputs having substan-tially fewer signal paths adapted to couple selected ones ' . ~ :
~)75~
of the digital signals to the processor means. The method comprises the steps of:
initiallizing -the proc~ssor means to clear all regis-ters by loading each register with a binary ~igital signal array of zeros;
addressing the memory means with an address portion of the array and retrieving a plurality o~ predetermined instruction and data words in response thereto;
sequentially exec~lting the predetermined instruction and data words and generating in response thereto a binary digital signal array of ones and zeros that are coupled to the output port; and selecting at least one matrix output and coupling the signal therefrom along said fewer signal paths to an in-struction register of the processor means as an encoded oper-ational command instruction.
The invention will now be more particularly described with reference toembodiments thereof shown, by way of example, in the accompanying drawings wherein:
Fig. 1 is a perspective view of a decompression calculator in accordance with the present invention and shows a general layout of all operating controls;
Fig. 2 is a block diagram showing the flow of in-formation through a decompression model employed in the cal-culator of Fig. l;
Figs. 3, 4, and 5 are block diagrams of a computer ~" circuit employed in the calculator of Fig. l;
Fig. 6 is a schemtaic diagram of an I/O circuit used in the computer circuit of Figs. 3, 4, and 5; and FigO 7 is a flow chart indicating the overall logic :
~ ~ 6 -. ~.
~, . . .
~07~ 4 of the computer circuit shown .in Figs. 3, 4, and 5.
Referring now to Fig. 1, there will be seen a per-spective view of a digital decompression ealeulator lO showing a layout of various controls and visual indieators. The ealeulator 10 is provided with two keyboards, a numerie key-board ll for data entry and a eontrol keyboard 12 for exeeu-ting various operational command instructions to which the ealeulator is responsive. Data may also be entered via a rear-eonneeting analog input (not shown).
- 6a -A ::
~L07~
Output information is supplied to an operator by a plurality of indicator lights 13, 18, 19, 20 and 21, a seven diglt alpha-numeric LED display 1~1 and two rear-connecting analog outputs (not shown). Additional operator controls are positioned on an upper deck o~ the calculator 10 and include a key-controlled power on/off switch 15, a push-button switch 16 to interrupt or halt a calculation and a slide switch 17 for selecting either a Real or Calculate mode of operation. The indicator lights 18 and 19 illuminate to indicate the current mode. The Kidd-Stubbs multi-tissue model having four tissue compartments is employed in both modes of operation.
The Calculate mode is used for accelerated time, dive planning or model study calculations. In this mode the basic inputs of time and depth are entered through the keyboards. At the end of a calculation, the operator can interrogate the cal-culator 10 by means of the keyboard 12 for the currant status of its dive or model parameters, or continue with the dive sequence.
The operator may also initiate a safe decompression ascent where the safe depth is constantly displayed and updated as a function of time.
The Real mode of operation may be used for on-line monitoring of an actual dive situation. Real time information is generated in this mode by an internal, crystal controlled clock and the model is updated at 0.1 minute intervals. Depth infor-mation can be entered either through the keyboard 11 or via a rear-connecting analog voltage from a pressure transducer (not shown). The Real mode ls set up by placing the switch 17 in the Real position, and inputtingan operational command instruction via the keyboard 12 to switch the data input of the calculator 10 to the rear-connecting analog input if required.
During the course of a dive, any of the dive or model ~o~s~
parameters can be monitored ei-ther by the display or through the analog outputs. At any time, the operator can address, -through the keyboard 12, a number oE dive parameters including actual depth, total time of dive, safe depth before decompression, ascent time on an optimum decompression curve, and stage time which is the time required to wait before an ascent of one stage depth (ten Eeet). If at any time during the dive the actual depth is less than the safe depth, a ha~ard light 13 is illuminated. In addition, a look ahead calculation, giving the minimum ascent or stage time can be undertaken without disturbing the ongoing up-date of the model.
Two gas mixtures, 80~ ~elium/20% Oxygen (Gas #l) and 80% Nitrogen/20% Oxygen (Gas #2), are addressed by the model, depending on input command instructions, and the selected mixture is indicated by one of the liyhts 20 and 21. It will be under-stood that the calculator 10 is not restricted to these gas mixtures and that the model flow constants can be changed through the keyboards 11 and 12 to accommodate virtually any gas compos-ition.
The calculator 10 is controlled by a set of instruc-tions which are input as operational command instruction words and which are identified by a two digit operation code. The commonly used instructions are assigned separate keys for their easy execution and together make up the keyboard 12. Instruction input via the keyboard 12 is referred to as a Direct Method. The calculator 10 is responsive to a set of forty-eight instructions of which twelve may be executed by the keyboard 12. The remaining instructions are input via an Indirect Method using the keyboard 11 to execute the appropriate -two digit operation code. In this way a multiplicity of dive and model parameters may be displayed, altered or routed through the analog outputs by an appropriate ~75~
manipulation of the keyboards 11 and 12.
Commonly used instructions are assigned to separate keys and appear in coded form on the keyboard 12. The direct key operations are:
KEY N~YE DESCRIPTION
ED Enter Depth The decompression model is caused to ascend or descend to the depth indicated in a data register of the calculator 10 at a rate controlled by an internal ascent rate or descent rate register. The depth is input to the data register via the keyboard 11 Following completion of the calculation, the actual depth will be shown on the dis-play 14.
ET Enter Time The depth is held constant and the decom-pression model is advanced by a time inter-val given in the data register where the time interval is input via the keyboard 11.
On completion of the calculation, the total time will be displayed in the data register.
A Ascend The decompression model ascends to the depth indicated in the data register. The ascent is carried out on an optimum safe ascent profile. On completion of the cal-culation, the actual depth to which the model ascends will be displayed.
ADActual Depth The contents of an actual depth register are displayed on the display 14.
TTTotal Time The total time since initialization of the calculator 10 is displayed in the data reg-ister and appears on the display 14.
; SDSafe Depth The Calculator 10 displays the depth to which safe ascent is possible. Negative numbers refer to a "depth" above the sur-face and can be translated into altitude for divers requiring air transport after hyperbaric operations.
CL Clear The operation code and the data register are cleared.
ATAscent Time The calculator 10 determines the time re-quired for a diver to ascend to the surface under the optimum safe ascent profile. The current status of the model is not changed and ascent time is displayed when the cal-culation is complete.
30 STStage Time The calculator 10 determines the time re-quired for a diver to ascend from his present position to one "Stage Depth." The "Stage Depth" is an internally stored value of ten feet which can be changed by the operator using an indirect operation.
~758~fl~
Referring next to Fig. Z there is shown a diagram in-dicating a basic flow of information through the Kid-Stubbs model.
Input information to the model consists of a diver ' 5 current time and depth toge-ther with historical information contained in re-spective tissue pressures of the four tissue system defined by the model. The equations describing the Kid-Stubbs model are given by dPl/dt = AlFl AoF2 dP2/dt = A2F2 ~ AoF3 dP3/dt = A3F3 AoF4 dP4/dt = A4F4 AoF5 where:
P = absolute pressure of respective compartments in the model A = flow constants for gases between the compartments F = a function given by A 1 ) ( A 1 ) .~ F2 = (B + Pl + P2) ( 1 2 -.
3 ( 2 3)( 23) 4 ( P3 + P4)(P3 P4) . ~ .
where:
B = an additional flow constant PA = the diver's ambient pressure.
For the standard Kid-Stubbs decompression model, all the A constants are ldentical. For experimental purposes, it is desirable to allow Ao through A4 to be different. Although the calculator 10 initializes these constants the same, they can be individually set by the operator to any desired value by appro-priately instructing the calculator via the keyboards 11 and 12.
The solution of each compartment pressure is computed in reduced time by following a program that defin0s an algorithm based on an improved version of the Euler formula (Heun Formula) Yn~l Yn + Yn + f(xn+ h,yn+ hyn') h/2 where:
Yn' = f(x ,y ).
After calculation, the updated tissue pressures are used to compute a safe ascent depth based on the criteria that the maximum tissue pressure, when modified by a suitable super-saturation ratio, determines the minimum safe pressure to whichthe diver can be exposed without decompression problems. Thus, Di Xi i (Yi Psurface) where:
Di = minimum safe depth Pi = tissue pressure P = surface pressure surf ace Xi = . 72202 Yi 9-9 i= 1,2,3,4 20 It will be noted that the X and Y constants are shown as being the same for each tissue compartment of the model. They can, however, be set by the operator to predetermined values as noted above.
The equations describing the Kidd-Stubbs model have no analytical solution and therefore require a numerical computer solution for which the apparatus of the present invention is pro-grammed. When solved on a real time basis, a diver will have access tocontinuous decompression data. The basic inputs of the problem are simply the diver's instantaneous ambient pressure 30 (i . e. depth) as a function of time and the values of the flow constants. The algorithm of the invention continually calculates ~1~7~
an updated set of compartment pressures using the compartment pressures from the previous calculations together with fresh ambient pressure information.
The circui-try of the calculator 10 comprises a micro-computer system employing LSI single chip components which are arranged and programmed to provide a digital decompression cal-culator and real-time monitor apparatus in accordance with the present invention. Block diagrams illustrating the intercon-nections of the LSI chips, including control signal and da-ta bit paths, may be seen in Figs. 3, 4 and 5. Data bit paths are shown in double line form whereas the control signal paths are shown as single lines. The concept of a microcomputer system was fol-lowed in view of the fact that the decompression model is very complex and requires a flexible computer system that can be programmed to manipulate the model in a number of convenient ways to provide the user with as much information as possible.
The microcomputer system of the apparatus 10 was dev-eloped around a single chip MOS eight bit parallel central pro-cessor unit. The hardware was designed as a generalized com-puter in order to obtain the flexibility required through soft-ware manipulation. The basic hardware components include the central processor unit which is shown generally in Fig.3 as a processor 25. The processor 25 inter~aces with peripheral cir-cuits that include a RAM memory 26 having a capa-city of lK eight bit bytes, a PROM memory 27 with a capacity of up to 5K eight bit bytes, the keyboards 11 and 12 and associated circuitry, the visual display 14 and associated circuitry, two eight bit dig-ital-to-analog converters 30 and 31 providing outputs for cor-responding analog recorders and a ten bit analog-to-digital con-verter 32 to input an analog signal to the computer system.
Operational command instructions and data are input to ~75~
the calculator 10 through either the keyboards 11 ~nd 12 or an analog input 38 of the converter 32. Command instructions are executed by -the operator and appear as three parallel binary signal outputs on a keyboard ou-tput 33. The output 33 is shown in Fig. 4 as input to an input port 34 having an output 34' that is coupled to an eight bit data and address bus 35 which is bidirectional.
Data in the form of an analog signal applied to the input 38 of the converter 32 is converted and appears a-t the output of the converter 32 as a ten bit binary signal. Two bits of the signal are input to the input port 34 and are output there-from to the data bus 35. Eight parallel bits from the converter 32 are input to a second input port 36 and are output therefrom to the data bus 35. It will be understood that the ten bitbinary output of the converter 32 is strobed in~o the processor 25 in two parts. The eigh-t most significant bits are taken via the input port 36 and the two least significant bits are input via the input port 34.
An instruction from the keyboards 11 and 12 to the input port 34 is used to clear an A/D ready flag on the third bit of the input port 34. The first, second and third bits of the input port 34 are employed by the keyboards 11 and 12 to in~
put command instructions and data. The fourth and fifth bits of the input port 34 are used by the switch 16 which, when activated, stops a calculation at the end of an incremental calculation.
The processor 25 communicates with its peripheral cir-cuits over the bus 35 as may be seen in Figs. 3 and 4. The bus 35 is time multiplexed under the control of a crystal controlled two-phase clock pulse generator 40 which is coupled to a timing and control unit 41 of the processor 25. An Interrupt input and four outputs S0, Sl, S2 and Sync of the unit 41 provide necessary control. Time multiplexing thus allows control information, ,. ",~
~075~
addresses., and data to be transmitted between the processor 25 and the peripheral circuits alony a sinyle bus.
Included in the processor 25 are six, eiyht bit data reyisters and an eiyht bit accumulator which ~orm a scratch pad memory 42. An eiyht bit parallel binary arithme-tic loyic unit 43 implements addition, subtraction, and loyical operations on instruction and data words, and an instruction reyister 44 tem-porarily stores instructions input to the processor 25. Program and subroutine addresses are stored internally in an address stack 45.
The control functions of the processor 25 permit normal program flow to be interrupted throuyh the Interrupt input which is driven by an interrupt logic circuit 54 under the control of a control logic circuit 53. This permits serviciny slow I/O per-ipheral devices like the keyboards 11 and 12 while also executing the main proyram stored in the memory 27. ~ -A11 communication within the processor 25 occurs via an internal data bus 29 whereas communication with the peripheral.
circuits occurs alony the bus 35 which is shown coupled to the bus 29. Communication occurs in the form of eiyht bit bytes of address instruction or data. The processor 25 controls the use of the bus 35 and determines whether it will be sendiny or re-ceiving data. State outputs S0, Sl and S2, toyether with Sync, indicate the state of the processor 25 at any time in an instruc-tion cycle and inform the peripheral circuitry accordinyly.
The timiny of the processor 25 results in a machine cycle consistiny of five states. Duriny the first and second states, an address is sent to memories 26 and 27. Duriny the third state instructions or data are fetched or retrieved from the memories. The cycle is completed with the fourth and fifth states during which an instruction is executed. A Wait state is en-tered when the memories are no-t available for either read-ing or writing data.
Long instructions input to the processor 25 may require from one to three machine cycles for complete execution. In this event, the first cycle is always an instruction fetch cycle and the second and third cycles are for data reading, data writ-ing or I/O operations. The cycle types are coded with two bits and appear on the bus 35 only during the second state when ad-dress information is output to the memories 26 and 27.
Another source of information for the processor 25 is the memory 27 which stores programmed instruction and data words including arithmetic formula statementsthat define the Kidd-Stubbs decompression model together with related data words ofconst-ant and variable parameters. In addition, the memory 27 stores a series of instructions defininganalgorithm based on the im-proved version of the Euler formula ~Heun Formula) for com-puting the tissue pressures of individual olles of the four tissue systems defined by the model. A plurality of subroutines are likewise stored to perform the various housekeeping duties as-sociated with the aforenoted instructions. The memory 27 out-puts data, together with the memory 26, to a memory bus 46 which is coupled through a memory buffer 47 to the bus 35.
Reference to Fig. 3 shows that the bus 35 is also in-put to a data bus buffer 48~ An eight bit output from the buffer 48 is coupled to the memory 26 and also to latches 49 and 50.
The output of the latch 49 together with a portion of the out-put from the latch 50 are coupled to the memory 26 and provide address information. A location in the memory 26 which is ad-dressed by the outputs of latches 49 and 50 is output to the memory bus 46 or input to the memory 26 from the buffer 48 de-pending on the state of an enabling Read/Write control signal i81~
from the control logic circui-t 53. The circuit 53 in turn is conditioned by the state control coding of the timing and control unit 41. As shown in Fig. 3, enabling outputs from the circuit 53 are coupled to the memory 26, a:nd to the latches 49 and 50.
The memory 26 is thus enabled duri:ng the first and second states of the machine cycle by means of a Read/Write signal on an out-put 53l.
A six bit output from the latch 50 is coupled to decod-ers 51 and 52, two bits being input to the decoder 51 and four bits being input to the decoder 52. The output of the decoder 52 is expanded to sixteen bits and provides enabling signals for each of the memories 26 and 27. The output of the decoder 51 is expanded to four bits and provides control signals that co-operate with corresponding signals from the output of the decoder 52 to provide signals for selecting predetermined ones of memory chips in the memory 27.
Referring now to Figs. 3 and 5, it will be seen that the output of the latch 49 is input to an output port latch 55 and to a shift register 56. The latch 55 receives eight bits . 20 input and outputs the same number of bits in response to an en-abling signal from an output decoder 59. All of the bits are coupled to the inputs of a matrix formed by the keyboards 11 and 12. The shift register 56 receives the first four bits and out-puts BCD data which is input to the display 14 to provide an alpha-numeric readout. The same BCD data is also input to a latch and decoder circuit 57 which is enabled by a control signal from a demultiplexer driver 58 to provide output signals coupled to the display 14 for indicating a minus sign and for locating the decimal point in the readout.
. 30 In operation, the information to be displayed consists of nine, four bit BCD characters. The first seven characters , . .
represent seven digits to be output on the LED devices of the display 14. The eighth character determines the sign and decimal point position, and the ninth character is used for outputting the status indicator lights which form a part of the general dis-play 14. The nine BCD characters are output in sequenee and are locally stored in the shift register 56 until required. The register 56 is thereafter rotated and the output characters are multiplexed to the display 14 by control signals from a read/
rotate logic circuit 60.
The output bus from the latch 49 of Fig. 3 is shown in Fig. 4 as input to output ports 61 and 62. In response to a control signal appearing on an output 75 of the decoder 59, the output port 61 produces an eight bit output that is coupled to the converter 30 which,in turn, generates a first analog signal at an output 63. The output port 62 is responsive to a seeond control signal appearing on an output 76 of the decoder 59 and similarly produces an eight bit output coupled to the con-verter 31 which likewise generates a seeond analog signal at an output 64. It will be noted in Fig. 5 that the output deeoder 59 20 reeeives as inputs three bits from the lateh 50 and an I/O OUT
eontrol signal from the logic eireuit 53.
The converter 32 operates on a six second duty cycle which is determined by a divider 65 driven by a 2 MHz eloek pulse from the generator 40. The divider 65 also provides a multiplex clock pulse output whieh is used in timing the logic circuit 60 of Fig. 5.
Input ports 34 and 36 of Fig. 4 are selected by an I/O
IN signal obtained from the control logic circuit 53. An input port deeoder 66 is shown with an input eoupled to the first and seeond bits of the lateh 50 output. These two bits seleetively enable the input ports 34 and 36 during input multiplexing ~75~4 operations. Coded instructions and data words inpuk to the input port 34 from the keyboards are thereby strobed into the processor 25.
Operational command instructions are input to the pro-cessor 25 via an I/O arrangement comprising the keyboards 11 and 12 arranged in a matrix having an eight line input and a three line output. As shown in Fig. 6, the eight inputs connect to respective ones of the latch 49 outputs which are indicated as LA~ through LA7. Each latch 49 output is coupled to a flip~flop 10 70 of the latch 55 which in turn is coupled through a correspond-ing buffer amplifier 71 to the input side of the matrix. The matrix output is the keyboard output 33 of Fig. 5 and is coupled to the input port 34 from which it is output to the data bus 35.
The respective lines of the output 33 are connected in parallel with corresponding bit outputs of the input port 36.
The operation of any selector switch in the keyboards 11 and 12, as well as the slide switch 17, produces a coded sig-nal on predetermined ones of the three lines of the output 33.
Command instructions and data from the keyboards are therefore input to the input port 34 e ~,h time the latch 55 is enabled by a device select signal which is coupled to a terminal 72 from the decoder 59. In this way, both operational command instruc-tions and data words are communicated from the keyboards to the ; processor 25 using only three lines of the bus 35. The remaining five lines of the bus 35 are used for communicating input data from the converter 32.
In response to a first input command instruction, the processor 25 addresses the memory 27 with an address portion of the instruction and sequentially retrieves a plurality of pre-determined instruction and data words. The retrieved instructionand data words are sequentially executed, resulting in a binary ., . ~ ,. .. . . . . . .
, ~ .
... . .
~)75~
digital signal array of ones and zeros that are coupled to the bus 35 and through the buffer 48 to the input of the la-tch 49.
From the output of the latch 49, the array is coupled to the input of the matrix via the latch 55. The signal array is cleared and is substituted with zeros by merely depressing the Clear key CL. A second operational command instruction may then be exec-uted by selecting at least one matrix output and coupling the signal therefrom to the instruction register 44. It will be noted that the Clear key CL is operated before each command in-struction in order to clear the registers.
The complete operation of the calculator lO is definedby its software and key identification, debounce, and verifica-tion is done under software control. A flow chart is shown in Fig. 7 and illustrates the overall logic of the computer system employed in the calculator 10.
The calculate mode of operation is used for dive plan-- ning and decompression studies. In this mode the basic inputs to the Kidd-Stubbs model, namely time and depth, are entered through the keyboards 11 and 12. After power is applied to the calculator 10, all compartments are set to the surface pressure in accord-ance with instructions stored in the memory 27. To simulate a dive, numerical depth data is entered via the keyboard 11. Pres-sing the Enter Depth key ED, the calculator will update the model to descend to the depth set at a rate of sixty feet per minute under the control of a subroutine in the memory 27. During the descent, the display 14 provides a readout in decrements of six feet per 0.1 minutes. The calculation stops at the depth set and no further changes occur until a second command instruction is entered.
Time information is entered in a similar way by firstly entering the numerical data on the keyboard ll and thereafter , ~ ~
~s~
depressing the Enter Time key ET. This action will cause the model to be advanced in time by one minute intervals until the to-tal time is increased by the time set. The total dive time is shown on the display 14 at the end of the calculation.
At the end of a calculation, the operator can instruct the calculator 10 to read out the current status of its internal registers. This communication is executed through the keyboard 12. For example, by pressing the Actual Depth key AD, the pro-cessor 25 responds by addressing the memory 26 with an address portion of the command instruction in order to read out the diver's current depth from the memory 26 and to input the stored data to the display 14. In similar fashion, other dive re-lated information can be extracted through an appropriate manip-ulation of the keyboard 12.
The Real mode of operation is used to monitor an actual dive situation. In this mode, the time information is generated for the model in 0.1 intervals by the 2 ~IZ clock pulse from the gener-ator 40. The only information that is input to the calculator 10 in the Real mode is depth information which is entered either as an analog voltage via the converter 32 or as a digital input ex-ecuted through the keyboards 11 and 12.
The calculator 10 is placed into the Real time mode by throwing the switch 17 to the Real position. The Real indicator light 18 is then illuminated to inform the operator that the mode is active. Once placed in the Real mode, the calculator 10 can only be returned to the Calculate mode by entering a command in-struction through the keyboards.
When the calculator 10 is initiallized, the depth in-formation for the Real mode is set up to come from the keyboards 11 and 12. However, if an analog voltage representing the diver's actual depth is to be input directly into the calculator 10 '.
~5~
through the connector 38, the calculator 10 must be instructed to go to the External mode by a command instruc-tion -to which the processor 25 responds by retrievin~ from -the memory 27 an appro priate subroutine and execu-tin~ same. The ex-ternal indicator light 19 is then illuminated to indica-te the External operating mode. In order to return to the Calculate mode, a further command instruction is required. Once the calculator 10 is set in the External mode, it will continue to function but will ignore all input instructions and data except the analog data that is input to the converter 32 and a coded instruction to return to the Calculate mode.
' .~ .
Claims (9)
EXCLUSIVE PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS
FOLLOWS:
1. A digital decompression calculator and real-time monitor apparatus, including display means, for calculating and displaying dive related information, comprising:
addressable memory means for storing a plurality of instruction and dive related data words at respective addresses;
processor means coupled to the memory means and operating in a time-division mode for retrieving and sequen-tially executing said instruction words and performing logical operations on the data words for calculating said information in response to a command instruction input thereto;
a first output port having a plurality of outputs, including a plurality of inputs coupled to the processor means and adapted to be loaded therefrom with a predetermined binary digital signal array of ones and zeros; and matrix means having a plurality of inputs conducted along corresponding signal paths to respective ones of the port outputs and a plurality of matrix outputs having sub-stantially fewer signal paths adapted to couple selected ones of the digital signals to the processor means as encoded command instructions and data words.
addressable memory means for storing a plurality of instruction and dive related data words at respective addresses;
processor means coupled to the memory means and operating in a time-division mode for retrieving and sequen-tially executing said instruction words and performing logical operations on the data words for calculating said information in response to a command instruction input thereto;
a first output port having a plurality of outputs, including a plurality of inputs coupled to the processor means and adapted to be loaded therefrom with a predetermined binary digital signal array of ones and zeros; and matrix means having a plurality of inputs conducted along corresponding signal paths to respective ones of the port outputs and a plurality of matrix outputs having sub-stantially fewer signal paths adapted to couple selected ones of the digital signals to the processor means as encoded command instructions and data words.
2. Apparatus as claimed in Claim 1 further com-prising means for selectively enabling said apparatus as a calculator for dive planning in an accelerated time mode and as an on-line monitor for dive monitoring in a real-time mode.
3. Apparatus as claimed in Claim 2 further comprising switch means for selectively interconnecting a predetermined input and output of the matrix means.
4. Apparatus as claimed in Claim 3 further comprising a bidirectional data bus and circuit means coupling the pro-cessor means to the memory means and to the inputs of the output port.
5. Apparatus as claimed in Claim 4 further comprising clock means coupled to the processor means for generating timing pulses to control the time division operating mode of the processor means.
6. Apparatus as claimed in Claim 5 further comprising second and third output ports each having a plurality of outputs, including a plurality of inputs coupled to said bus and adapted to be loaded therefrom with a predetermined digital signal array in response to enabling control signals from the processor means.
7. Apparatus as claimed In Claim 6 further comprising means coupled to the outputs of the second and third output ports for converting the digital signal arrays to analog output signals.
8. Apparatus as claimed in Claim 7 wherein said display means comprises a light-emitting-diode array coupled to the data bus and to the processor means and controlled thereby to display data words corresponding to digital signals input thereto.
9. Apparatus as claimed in Claim 8 further comprising:
an A-D converter having a plurality of digital signal outputs and an input adapted to receive analog signals from a transducer; and an input port having inputs coupled to respective ones of the A-D converter outputs and corresponding outputs coupled to the data bus to input data words corresponding to the analog signals.
an A-D converter having a plurality of digital signal outputs and an input adapted to receive analog signals from a transducer; and an input port having inputs coupled to respective ones of the A-D converter outputs and corresponding outputs coupled to the data bus to input data words corresponding to the analog signals.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA261,826A CA1075814A (en) | 1976-09-22 | 1976-09-22 | Decompression calculator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA261,826A CA1075814A (en) | 1976-09-22 | 1976-09-22 | Decompression calculator |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1075814A true CA1075814A (en) | 1980-04-15 |
Family
ID=4106913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA261,826A Expired CA1075814A (en) | 1976-09-22 | 1976-09-22 | Decompression calculator |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA1075814A (en) |
-
1976
- 1976-09-22 CA CA261,826A patent/CA1075814A/en not_active Expired
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5503145A (en) | Computer-controlling life support system and method for mixed-gas diving | |
US4117607A (en) | Mathematics teaching system | |
CA1075814A (en) | Decompression calculator | |
JPS57189206A (en) | Numerical control system | |
WO1992018929A1 (en) | Method of operation of a navigational calculator | |
JPS57185561A (en) | Small-sized electronic device | |
US20030056786A1 (en) | Variable limits setting dive computer | |
JPS5471539A (en) | Electronic computer | |
JPS5469335A (en) | Crt display unit for input-output parallel processing | |
CA2036150A1 (en) | Monitoring device for monitoring the caloric contents of diets | |
WILLIAM et al. | THE LABORATORY | |
JPS58146819A (en) | Tide display | |
Krausman | The microcomputer kit: An excellent small system development tool | |
JPS57212560A (en) | Electronic calculator | |
JPS5483724A (en) | Processor for display | |
JPS5340226A (en) | Display control unit of program computer | |
NISHI | A user guide to the DCIEM XDC-1 Digital Compression Calculator | |
JPS5911408A (en) | Controller | |
JPS55134445A (en) | Programmer for control operation | |
JPS6429133A (en) | Norm calculation device | |
JPS57212542A (en) | Multiplying circuit | |
JPS5935225A (en) | Key matrix type data input device | |
JPS5487149A (en) | Desk top calculator | |
Mackay | High pressure state simulation studies as an aid to understanding diving problems | |
JPS5921068B2 (en) | Program step calculation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKEX | Expiry |