1. | ||
2. | ||
3. | ||
4. |
The cruise control system is to be implemented on a single powerful microprocessor with 16 interrupts which shall be connected to the control signals that come from the driver’s console.
The system software for the chosen microprocessor permits several (up to 8) tasks to run simultaneously, and it has the capability to schedule tasks on a timer to a resolution of 10 milliseconds. The operating system and the interrupt handler each count as a single task. The operating system occupies 16K bytes of memory; each task may occupy up to 16K bytes. However, the total memory of the system is only 64K bytes which must be shared among the tasks, including the operating system and the interrupt handler. There is also provision for a single data area which can be shared among all tasks; there is no shared code capability.
The microprocessor can execute one million instructions per second; the code for context switching between tasks is 400 instructions long.
= | ** | |
*values : [true | false]* | ||
increase speed flag | = | ** |
* values: [true | false]* | ||
maintain constant speed flag | = | ** |
* values: [true | false]* | ||
report current speed flag | = | ** |
*values : [true | false]* | ||
return to previous speed flag | = | ** |
= *values : [true | false]* | ||
speed control flags | = | *flags to manage periodic speed control* |
= | return to previous speed flag + increase speed flag + maintain constant speed flag | |
speed monitoring flags | = | *flags to manage periodic speed monitoring* |
= | accumulate rotations flag + report current speed flag |
Precondition | |
None | |
Postcondition | |
ACCUMULATE ROTATIONS FLAG = TRUE | |
1.3 Reset Accumulate Rotations and Flag | |
Precondition | |
None | |
Postcondition | |
ACCUMULATED ROTATIONS = 0 | |
ACCUMULATED ROTATIONS FLAG = FALSE | |
1.4 Set Conversion Factor | |
Precondition | |
None | |
Postcondition | |
SPEED CONVERSION FACTOR = ACCUMULATED ROTATIONS | |
1.5 Reset Report Current Speed Flag | |
Precondition | |
None | |
Postcondition | |
REPORT CURRENT SPEED FLAG = FALSE | |
1.6 Set Report Current Speed Flag | |
Precondition | |
None | |
Postcondition | |
REPORT CURRENT SPEED FLAG = TRUE | |
2.2. Record Rotation Rate | |
Precondition | |
None | |
Postcondition | |
ROTATION RATE in ROTATION RATE SETPOINT | |
2.3 Set Return to Previous Speed Flag | |
Precondition | |
None | |
Postcondition | |
RETURN TO PREVIOUS SPEED FLAG = TRUE | |
2.4 Reset Return to Previous Speed Flag | |
Precondition | |
None | |
Postcondition | |
RETURN TO PREVIOUS SPEED FLAG = FALSE | |
2.5 Reset Increase Speed Flag | |
Precondition | |
None | |
Postcondition | |
INCREASE SPEED FLAG = FALSE | |
2.6 Set Increase Speed Flag | |
Precondition | |
None | |
Postcondition | |
INCREASE SPEED FLAG = TRUE | |
2.7 Reset Maintain Constant Speed | |
Precondition | |
None | |
Postcondition | |
MAINTAIN CONSTANT SPEED FLAG = FALSE | |
2.8 Set Maintain Constant Speed Flag | |
Precondition | |
None | |
Postcondition | |
MAINTAIN CONSTANT SPEED = TRUE | |
3.1 (Discrete) Increase Speed | |
Precondition 1 | |
THROTTLE POSITION < 80% of max. | |
and | INCREASE SPEED FLAG set |
Postcondition 1 | |
Instantaneous rate of increase per second of ROTATION RATE maintained at 2% ± .25% of current value of ROTATION RATE | |
Precondition 2 | |
THROTTLE POSITION at ≥ 80% of max. | |
and | INCREASE SPEED FLAG set |
Postcondition 2 | |
Instantaneous rate of increase per second of ROTATION RATE maintained at 0 | |
3.2 (Discrete) Return to Previous Speed | |
Precondition 1 | |
RETURN TO PREVIOUS SPEED FLAG set | |
and | time since flag set ≤ 0.5 sec. |
Postcondition 1 | |
Match THROTTLE CONTROL to THROTTLE POSITION | |
Precondition 2 | |
RETURN TO PREVIOUS SPEED FLAG set | |
and | time since flag set > 0.5 sec. |
Postcondition 2 | |
Maintain rate of increase per second of ROTATION RATE at 0.1* (ROTATION RATE SETPOINT - ROTATION RATE) | |
3.3 (Discrete) Maintain Constant Speed | |
Precondition 1 | |
MAINTAIN CONSTANT SPEED FLAG set | |
and | ROTATION RATE within 1% of ROTATION RATE SETPOINT |
and | time since flag set ≤ 0.5 sec. |
Postcondition 1 | |
Match THROTTLE CONTROL to THROTTLE POSITION | |
Precondition 2 | |
MAINTAIN CONSTANT SPEED FLAG set | |
and | ROTATION RATE within 1% of ROTATION RATE SETPOINT |
and | time since flag set > 0.5 sec. |
Postcondition 2 | |
Maintain ROTATION RATE within 1% of ROTATION RATE SETPOINT | |
4.1 (Discrete) Report Current Speed | |
Precondition 1 | |
REPORT CURRENT SPEED FLAG is set | |
Postcondition 1 | |
AUTO SPEED = ROTATION RATE/(SPEED CONVERSION FACTOR * 3600) | |
4.2 (Discrete) Accumulate Rotations | |
Precondition 1 | |
ACCUMULATE ROTATIONS FLAG is SET | |
Postcondition 1 | |
ACCUMULATED ROTATIONS = ACCUMULATED ROTATIONS + ROTATION RATE * ΔT |