High speed terminal node controller

High speed terminal node controller
Jan Šebesta
Department of Radioelectronics, Faculty of Electrical Engineering and Communication
Purkyňova 118, 61200 Brno, Czech republic, E-mail:[email protected]
Abstract: In this contribution you will find description about design and software
develompment of high speed terminal controller using communication processor Am186cc.
Introduction
Digital packet radio networks are composed from nodes, which are connected by radio
link to each other. Radio line input is data source (usually PC), which receiving and sending
data into terminal node controller (TNC). This has charge attendants the data communication
in network, it entails connection establishment and termination, network routing, source text
encoding, etc… Data from TNC goes into radio modem, which creates modulated signal in
basic frequency band. Then by a transceiver the signal is modulated on carrier frequency and
transferred by free space to the second node, which receive data by the similar way.
Basic requierements of TNC were high data transfer rates for communication up to
10 Mbit/s as with computer as with single modems, the next one was possibility to connect to
TNC more than one modem to enable communication in several channels at the same time.
The last important requirement was simplicity of implementation digital packet radio network
applications, which was originally developed for PC.
Figure 1. Multichannel digital packet radio station with TNC
For TNC implementation was chosen communication processor Am186cc [1] from
AMD. The core of the processor is based on 80186, which was used in PC. In addition
Am186cc contains serial communication peripherals, which are USB port [2] with integrated
differential transceiver, the next are four HDLC synchronous serial communication channels
with data transfer rate up to 10 Mbit/s per channel and the next there are two asynchronous
serial ports type RS232.
TNC86 design
Processor Am186cc makes memory direct addressing possible to capacity 512K x 16
bits. So TNC memory is divided into two parts. There is located SRAM 256K x 16 bits to
save actual application data in lower address region. There is located FLASH 256K x 16 bits
to store applications code in higher address region. Because this flash memory can be only in
SMD package, so there is used one more flash type memory 64K x 16 bits at address region
from E0000h to FFFFFh. This small memory can be programmed away of TNC and is used to
make first boot of TNC. Because a higher part of 256K x 16 FLASH in final version will
contain boot loader and small operating system, it’s necessary to have possibility to protect
and unprotect (unprotect for a small period) data at this part. Therefore there is simple circuit
with two transistors, which enables unprotect a selected part of memory if there is connected
12V from external power supply into its input.
It’s used internal USB port of Am186cc for high speed communication with PC, so
the count of external parts is minimal and transfer rates are up to 12 Mbit/s. Alternative
communication with PC is provided by Am186cc internal high speed serial port type RS232.
For communication with modems are used all four HDLC channels of Am186cc. Each
of them can be used either for standard serial synchronous TTL (5V) modems or like high
speed serial synchronous port for RS422 line [3], which will be used for new generation
modems. The selection of communication type must be executed manually by connection one
of two rows of PCB connectors with outgoing CANNON15 connector. Especially for HDLC
channel A in addition it’s used timer 82C54, which in case of need can generate clock signal
necessary for some older types of modems.
TNC needs two voltage levels 3,3V for processor and 5V for the rest parts. For 5V
stabilization it’s used switching regulator LM2575, which has input voltage range from 7V to
25V, with very small power losses. For SRAM battery backup on 5V supply failure it’s used
MAX690, which on voltage level lower than 4.6V will generate reset signal and at the same
time reconnect SRAM supply to battery source.
Figure 2. Block diagram of TNC
Also there are twelve LED diodes to indicate statuses of each modem (3 diodes for
one modem indicate PTT, DCD, CON statuses) and for easier testing of TNC functions.
TNC86 software
For software universality and sequence to next generation programs developed for
TNC, it’s necessary to write booting software and service routines in C language or directly in
assembler. With regard to requierement to use programs originally developed for PC, we
must create software system, which will contain some basic functions of MS-DOS. Then by
help of this system it’s possible to efficiently develop the software written in higher level
programming language, eventually to modify existing programs for PC.
I have created communication system LOADER to provide basic functions for
primary TNC software developing. Among this functions belongs serial port communication
check, loading and executing programs into TNC, copying or eventually erasing of
determinated block of TNC memory and loading memory area from TNC to PC. Loader was
created regarding to have possibility to extend basic palette of functions. It comes to this, that
partly it’s possible by help of basic functions perform Loader upgrade and partly efficiently
use new commands in text form. The disadvantage of this system is, that it doesn’t provide
any BIOS function, so for applications developing we can’t use any higher level programming
language. Loader is identified for basic TNC check and to load following communication
system MONITOR.
Monitor is product of AMD developers and it is available in their web pages. This
system contains a large number of functions for data management in TNC. The
communication proceeds in text form over serial port. The system provides basic interrupt
service routines, which are compatible with DOS 2.1. So programs, which can be executed by
the system, may be written in higher level programming language, which supports destination
processor 80186.
Figure 3. Successful connection to MONITOR
Monitor provides basic functions to run applications in TNC, but doesn’t have routines
to service serial communication peripherals. So I needed to make several drivers, which
provides functions for serial port, USB port and all HDLC channels. The philosophy of all
drivers going out from one huge memory buffer, which will contain all received and
transmitted data to PC and modems. Than the application in TNC will have information about
position and size of each received buffer, so can process the data and save them for example
into another place of huge buffer to transmit into PC.
HDLC channels uses HDLC protocol which comes from protocol X.25. In radio
communication it is standard protocol AX.25 [4], which is very similar to X.25. So without
any change we can connect older modems to TTL version of HDLC connection. High speed
modems, which will be connected to RS422 version must have onboard RS422 receivers and
drivers.
Figure 4. HDLC connenction
DCD – data carier detect
RES – for modem reset
RXD,TXD – receive and transmit data
RCLK, TCLK – clock signal for receiving and transmitting
RXC_N/5V – clock signal for older modems (or +5V)
/CTS, /RTR – data flow control signals
Conclusion
.
TNC86 is universal terminal node controller, which provides dynamic environment for
any application in data communication. In our laboratory of relay and satellite links TNC will
be used for data communication with radioamateur experimental satellite PHASE 3D (also
AO40). This satellite includes matrix transponder with variety of uplink bands from 14 MHz
to 5,6 GHz and downlinks from 145 MHz to 24 GHz.
Now TNC86 is realized in three copies and also there are prepared serial
communication peripherals drivers for asynchronous serial port and HDLC drivers. The core
of TNC is processor Am186cc with clock frequency 40 MHz. Maximum speed of serial port
is 460kbit/s. Speed of each HDLC channel was measured up to about 1.2 Mbit/s. But HDLC
drivers doesn’t employ DMA channels to their limit, so it’s only time question when speed
gets up to 10 Mbit/s per channel. For HDLC transfers with data rates bigger than 450 kbit/s
we must use twisted pair cable with length definitely not bigger than several meters.
In the future for TNC will be generated DSP modem, which will enable higher data
transfer rates and variety of data modulations.
References
[1]
[2]
[3]
[4]
Am186
CC
high-performance,
80C186-compatible
16-Bit
embedded
communications controller. Data sheet, user’s manual and register set manual. Web
page http://www.amd.com
Universal serial bus specification revision 1.1. Compaq computer corp., Intel corp.,
Microsoft corp., NEC corp. 1998. Web page www.usb.org
Přenos dat po linkách RS232, RS422, RS485. Web page http://www.hw.cz
AX.25 Link access protocol for amateur packet radio. Version 2.2 ARRL, 1992