Software Safety Features

Hardware-related Software Safety Features

Program Memory Check

At power up and at regular intervals thereafter, the program memory is tested by calculating a Cyclic Redundancy Code (CRC) on the program and then comparing it with the CRC stored with the program. If the stored and calculated CRCs do not match, the software will turn on a continuous two-tone audible alarm and stop all drug delivery.

RAM Memory Check

At power up, the random access memory is checked. A particular bit pattern is written to and read from each address in the RAM. If the read data is different from the written data, the software will turn on a continuous two-tone audible alarm and stop all drug delivery.

Motor Circuit Check

At power up and at regular intervals thereafter, the motor circuit is checked to ensure that no power is being applied to the motor unless the motor is actually on. If the software detects power being applied to the motor at any other time, it will sound a continuous two-tone audible alarm and will no longer attempt to deliver medication. During every pump activation, the software checks to see whether the motor completes one activation. If the motor fails to turn, or fails to complete a cycle, the software will turn on a continuous two- tone audible alarm and stop all drug delivery.

Keyboard Encoder Check

Every time the software receives data from the keyboard encoder, it is checked. If the data is not of the proper form, the software will turn on a continuous two-tone audible alarm and stop all drug delivery. The DOSE key has two independent signal lines to prevent single fault failures.

Data Handling Software Safety Features

Data Stored in RAM

Before use, data associated with delivery and stored in RAM is tested by calculating a CRC on the data and then comparing it with the CRC stored with the data. If the stored and calculated CRCs do not match, the software will turn on a continuous two-tone audible alarm and stop all drug delivery.

Data Stored in EEPROM

Before use, data associated with delivery and stored in EEPROM is tested by calculating a CRC on the data and then comparing it with the CRC stored with the data. If the stored and calculated CRCs do not match, the software will turn on a continuous two-tone audible alarm and stop all drug delivery.

Data Stored in NOVRAM

Before use, data associated with delivery and stored in NOVRAM is tested by calculating a CRC on the data and then comparing it with the CRC stored with the data. If the stored and calculated CRCs do not match, the software will turn on a continuous two-tone audible alarm and stop all drug delivery.

Data Used in Calculations

Calculations on data used in some way to control the delivery of drug are performed redundantly. The two calculated values are then compared. If the two values do not match, the software will turn on a continuous two- tone audible alarm and stop all drug delivery.

Timer Data Registers

The data stored in the timer control register is checked at regular intervals. If the data is not correct, the software will turn on a continuous two-tone audible alarm and stop all drug delivery.

19