Documente Academic
Documente Profesional
Documente Cultură
de Telecomunicaciones Materia: Transmisin de Datos Facultad Tecnolgica Docente: Ing. Cesar F. Lozano Mantilla Universidad de Aquino Bolivia Univs.: Choque Daniel Saucedo Amner Butron David CDIGOS EN TRANSMISIN DE DATOS Fecha de emisin: 19 de sep. de 2012 Fecha de entrega: 20 de sep. de 2012 1
HARDWARE
ARQUITECTURA DEL CABLE. Prototipo de modulo RECEPTOR. El cable en cuestin consta de 2 entradas hembra DB9. Para el caso de la conexin de las 2 PCs, es necesario una arquitectura cruzada. Como se detalla en la siguiente tabla: Tabla 2. Descripcin del sentido de la conexin de los pines RS232 DB-9
CONSTRUCCION DEL CABLE. Para la construccin del cable se usaron los siguientes materiales. Grafico 12. Materiales Necesarios para la fabricacin del cable. A) Pistola para soldar cautil. B) Multitester. C) Pasta para soldar (fundente). D) Alambre de Estao. E) Capuchos para el conector DB9. F) Cable de 9 hilos para transmisin de datos. G) Desarmadores. H) Navaja Cutter.
I) Puertos DB9 (Serial COM). Con la ayuda del cutter, alineamos ambos extremos del cable de datos. Para esta practica
solo hacemos uso de 2 de los 9 hilos. En realidad no existe una convencin clara de que colores usar para cada pines, ya que estos pueden variar de fabricante en fabricante. Pero para mantener un poco de orden usaremos la siguiente distribucin:
ENVIO Y RECEPCION DE DATOS A TRAVES DEL PUERTO SERIAL DE LA PC - APLICACIN: CONEXIN ENTRE 2 PCS, Y PRUEBAS HACIENDO USO DE JAVA. www.laspatasdelchip.blogspot.com
2 SOFTWARE
La
librera
clsica
de
java
para
logra
la
comunicacin
a
travs
del
puerto
COM,
es
javax.comm,
pero
las
implementaciones
nativas
de
esta
librera
estn
hechas
para
los
sistemas
LINUX/UNIX.
Adems
ya
no
existe
soporte
actualizado
para
esta
librera,
por
lo
que
fue
necesario
optar
por
una
mejor
opcin. Giovynet
nos
da
la
posibilidad
de
manejar
fcilmente
el
puerto
serie,
y
adems
es
compatible
perfectamente
con
Microsoft
Windows.
La
pagina
oficial
de
Giovynet
es:
http://java.giovynet.com/Giovynet/
.
Mas
adelante
en
la
implementacin
de
los
mdulos
explicaremos
algunas
componentes
de
esta
librera. Los
puertos
en
Giovynet
deben
ser
instanciados
previamente.
Sern
del
tipo
SerialPort.
Podemos
listar
los
puertos
disponibles
con
el
mtodo
getFreeSerialPort(): Luego
definimos
un
tipo
de
dato
parmetro
del
tipo
giovynet.serial.Parameter,
con
este
podemos
definir
todos
los
parmetros
que
tendr
nuestro
puerto
como
son
port,
baudRate,
byteSize,stopBits,
parity.
SerialPort serialPort = new SerialPort();List<String> portsFree = serialPort.getFreeSerialPort(); for (String free : portsFree) {System.out.println(free);
Parameters param = new Parameters(); param.setPort("COM2"); param.setBaudRate(Baud._460800); Com com = new Com(param);
Para enviar datos, Giovynet Driver utiliza la clase giovynet.serial.Com. Esta dispone de tres mtodos:
mtodo
sendArrayChar.(char[]
data)
:
void.
mtodo
sendSingleData
(overloaded)
:
void.
mtodo
sendString(String
data)
:
void.
El
intervalo
de
tiempo
con
que
se
envia
cada
elemento
esta
determinado
por
el
mtodo:
setMinDelayWrite(
int
milisegundos)
de
la
clase
giovynet.serial.Parameters
Para
recibir
datos,
Giovynet
Driver
utiliza
la
clase
giovynet.serial.Com,
que
dispone
de
cinco
mtodos:
mtodo
receiveSingleChar()
:
char.
mtodo
receiveSingleDataInt()
:
int.
mtodo
receiveSingleString()
:
String.
mtodo
receiveToString(int
amount)
:
String
mtodo
receiveToStringBuilder(int
untilAmount,
StringBuilder
stringBuilder)
:
void.
Para
enviar
caracteres
de
control
se
recomienda
utilizar
su
representacin
decimal
o
hexadecimal
con
el
mtodo
sendSingleData(),
de
la
clase
giovynet.serial.Com.
Por
ejemplo
el
siguiente
cdigo
enva
el
smbolo
ACK
(acknowledge):
Parameters param = new Parameters (); param.setPort ("COM1"); param. setBaudRate (Baud._9600) Com1 = new Com Com (param); int ack = 6 / / The integer representation of ACK in ASCII code is 6. data = com1.sendSingleData (ack);com1.close ();
Grafico 7. Prototipo de modulo EMISOR. b) El modulo RECEPTOR constara simplemente de un rea de texto recibir los
Para recibir caracteres de control se recomienda obtenerlos en representacin decimal o hexadecimal, usando el mtodo receiveSingleDataInt(), de la clase giovynet.serial.Com. Por ejemplo, el siguiente cdigo imprime en pantalla "OK" cuando recibe el smbolo ACK.
public static void main(String[] args)throws Exception{ Parameters param = new Parameters(); param.setPort("COM1"); param.setBaudRate(Baud._9600); Com com1 = new Com(param);int ack=06; //The integer representation of ACK in ASCII code is 06. int data=0;while(true)data=com1.receiveSingleDataInt(); if (data==ack){System.out.println("OK");break;}}com1.close();}