Projects developed
- Free
Phone: In order to test the ideas and algorithms around
the transmission of audio data trough Internet, I have built an
audio tool named ``Free Phone''. It is programmed in ``C'',
with a GUI in Tcl/Tk. Some characteristics include:
1. Ability to have more than just one unicast and/or multicast
sessions. 2. Implements RTP v2. 3. Available codecs PCMU,
VADPCM, ADPCM @
6,5,4,3 and 2 bits, GSM,
LPC. 4. Redundancy mechanisms for lost packets reconstruction.
5. Signaling protocol to establish connections. 6. High quality
audio with sampling rates that range from 8 KHz to 48 KHz.
7. Compatibility with RAT, VAT 4.x (in RTP mode), and soon with
NeVoT.
- Ethernet driver: Taking an incomplete driver for the
3Com 3C509 Ethernet card, I made the modifications to fix some
bugs and extend its capabilities. The main extension was the use
of the early interruption facilities. The driver being that
included in the FreeBSD 1.1.5.1 release.
- Fair Queueing Implementation: Motivated by the need
to evaluate the impact of the packet scheduling policy over the
end to end delay, jitter and lost process of audio packets while
going trough a router, I build up a platform to compare the Fair
Queueing policy against FIFO. The environment was a test network
of PCs running the UNIX like operating system FreeBSD.
- Gas Station Control System: The goal was to create a
system able to control the gas pumps trough a RS-422 interface,
the (proprietary) magnetic card readers (MCR) linked together
with a RS-485 bus, and the data base for validation and storage
of transactions. The configuration was a PC-AT (data base and
graphical user interface), an embedded card based on the Intel
80188 microprocessor (for the pump and MCR's control), and small
systems based on the Intel 8031 micro-controller to which the
MCRs where attached.
- Frame converter: The goal was to make the bridge
between a host using SDLC frames and a PC using a proprietary
frame's format. The converter was an autonomous card based on
the Intel 8088 microprocessor.
- Kernel in ``C'': Software programmed in C and
assembler languages for the Intel 8086 family of
microprocessors. Starting from a previous kernel built in
PL/M-86, the goal was to minimize the kernel's overhead, and to
extend its capabilities, giving the kernel the ability to be
used in a variety of hardware configurations.
- Packet Assembler/Disassembler: The programming was
done using the PL/M-86 and ASM-86 languages. The work was
divided in three parts: 1. To implement the norms X.3, X.28 and
X.29; 2. Add the facilities of a keyboard and a LCD display for
configuring the equipment; and 3. Make the integration of the
link and network layers of X.25.
- Kernel in ``PL/M-86'': Software programmed in PL/M-86
and ASM-86 languages for the Intel 8086 family of
microprocessors. We have 3 kind of processes: 1. Normal
processes scheduled by priority (once a process get the CPU it
releases it once it finish its work, voluntarily or at the next
blocking primitive); 2. Periodic precesses; and 3. Processes
activated by a timer. The kernel provides: 1. the process'
control; 2. the process communication trough channels; 3. the
process synchronization trough semaphores; 4. the dynamic
control of memory; and 5. the timers. It was though for
applications demanding good response times in modest
environments (.i.e. 8086).
- Control Processor: Design and construction of a card
based on the Intel 8086 microprocessor and the minimal software
for controlling the hardware of the data switch. Such a
software gives a reduced set of services (e.g. create and delete
connections). The heart of the data switch being a commutation
matrix with 32 RS-232 non blocking ports. It is worth to mention
that this switch was though to allow the resource sharing (ports
to a main frame, printers, plotters, etc.) for small centers
with a relatively small number of equipments all them provided
with at least one RS-232 port.
Last modified: Mon Jan 13 17:08:43 MET