118

Software Architecture and Theory of Operation

This section of the manual is for those people interested in learning about the internal
organization and behavior of the control system firmware. It is not necessary to
understand all these details but will give you an deeper understanding of how it all
works.
All primary repeater control functions are executed by the processor on the CPU board.
The processor on the Radio Control Board handles initialization of radio board
hardware, such as gain control pots, and generation of radio specific tones (key up
telemetry, CW ID, busy signal).
The software for the CPU board is compiled into a program with a name format of
SRSCnnmms.hex. The main version number is nn. The minor version number is mm.
During development of any minor version, different passes of the code are given a letter,
s. The v0.90 beta code is designated, SRSC0090. The binary executable to be loaded into
the CPU board processor is in the file srscnnmms.hex. The software for the Radio
Control board follows a similar naming scheme, SRSRnnmms. The binary executable to
be loaded into the Radio Control board processor is in the file srsrnnmms.hex.
The controller has many parameters defining its configuration and operating behavior.
Most of these can be easily changed by the site manager. These parameters have hard
coded default values which are chosen so that most of the parameter values will be
satisfactory for site operation without any further configuration.
The CPU and Radio Control boards have several forms of memory. Flash PROM on the
processor chip contains the executable program. The size of this memory is 128kB, 64kB,
and 32kB for the 18F8722, 18F4620, and 18F452 processors, respectively. Data RAM on
the processor chip is used for working variables, program stack, etc. The size of this
memory is 3982B for the 18F8722 and 18F4620, and 1536B for the 18F452. There is a
nonvolatile data EEPROM on the processor chip. It is 1kB on the 18F8722 and 18F4620.
Finally, there is an external serial EEPROM on the CPU board which is used to store
configuration parameters. The size of this memory is 64kB, and the board has provisions
for adding a second chip to double the memory. The hardware supports changing the
contents of all of these forms of memory under program control.

Memory usage for the CPU board

Program ROM
Executable code, library of sound sequences, command table
On-chip data EEPROM
Reset counters
On-chip RAM
Working values of configuration parameters, program working variables, stack, etc.