Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NOKIA 3220
Tarjeta SIM
Una de las caractersticas principales del estndar GSM es el mdulo de identidad
del suscriptor, conocida comnmente como tarjeta SIM. La tarjeta SIM es una tarjeta
inteligente desmontable que contiene la informacin de suscripcin del usuario,
parmetros de red y directorio telefnico. Esto permite al usuario mantener su
informacin despus de cambiar su telfono. Paralelamente, el usuario tambin
puede cambiar de operador de telefona, manteniendo el mismo equipo
simplemente cambiando la tarjeta SIM. Algunos operadores introducen un bloqueo
para que el telfono utilice un solo tipo de tarjeta SIM, o slo una tarjeta SIM
emitida por la compaa donde se compr el telfono, esta prctica se conoce como
bloqueo de sim, y es ilegal en algunos pases.
LOS COMANDOS AT
"Los comandos AT son instrucciones codificadas que conforman un lenguaje de
comunicacin
entre
el
hombre
y
un
terminal
modem.
En un principio, el juego de comandos AT fue desarrollado en 1977 por Dennis
Hayes como un interfaz de comunicacin con un modem para as poder
configurarlo y proporcionarle instrucciones, tales como marcar un nmero de
telfono. Ms adelante, con el avance del baudio, fueron las compaas
Microcomm y US Robotics las que siguieron desarrollando y expandiendo el
juego
de
comandos
hasta
universalizarlo.
Los comandos AT se denominan as por la abreviatura de attention .
Aunque la finalidad principal de los comandos AT es la comunicacin con
modems, la telefona mvil GSM tambin ha adoptado como estandar este
lenguaje para poder comunicarse con sus terminales. De esta forma, todos los
telfonos mviles GSM poseen un juego de comandos AT especfico que sirve de
interfaz para configurar y proporcionar instrucciones a los terminales. Este juego
de instrucciones puede encontrarse en la documentacin tcnica de los
terminales GSM y permite acciones tales como realizar llamadas de datos o de
voz, leer y escribir en la agenda de contactos y enviar mensajes SMS, adems
de muchas otras opciones de configuracin del terminal."
Pin
Numb
er
Pin
Name
Vin
GND
ACI
V Out /
VDD+
USB Vbus
FBus
Rx/USB
D+
FBus
Tx/USB D-
GND
X Mic-
10
X Mic+
11
HS Ear L-
12
13
HS Ear R-
14
HS Ear R+
Audio out - Ext. audio out - right, positiv. Pins 10-14 may be
used for antenna connection.
GND
Description
Charger input
Charger ground
Accessory Control Interface (short with pin 2 for handsfree
recognition)
PINOUT COMPATIBILITY:
Nokia 2112
Nokia 3585(i)
Nokia 2115(i)
Nokia 3586(i)
Nokia 2116i
Nokia 3587(i)
Nokia 2125i
Nokia 3588i
Nokia 2126i
Nokia 3589i
Nokia 2128i
Nokia 5100
Nokia 2270
Nokia 5140
Nokia 2272
Nokia 6011i
Nokia 2280
Nokia 6012
Nokia 2285
Nokia 6015(i)
Nokia 3100
Nokia 6016i
Nokia 3105
Nokia 6019i
Nokia 3108
Nokia 6020
Nokia 3120
Nokia 6100
Nokia 3125
Nokia 6101
Nokia 3200
Nokia 6102
Nokia 3205
Nokia 6108
Nokia 3220
Nokia 6155
Nokia 3230
Nokia 6170
Nokia 3300
Nokia 6200
Nokia 3570
Nokia 6220
Nokia 3580
Nokia 6225
Nokia 6230
Nokia 7270
Nokia 6230i
Nokia 7360
Nokia 6233
Nokia 7600
Nokia 6235
Nokia 7610
Nokia 6255
Nokia 7700
Nokia 6260
Nokia 7710
Nokia 6560
Nokia 9300
Nokia 6585(i)
Nokia 9500
Nokia 6610
Nokia E50
Nokia 6610i
Nokia E60
Nokia 6630
Nokia E61
Nokia 6650
Nokia E61i
Nokia 6670
Nokia E65
Nokia 6680
Nokia E70
Nokia 6681
Nokia N70
Nokia 6800
Nokia N71
Nokia 6810
Nokia N72
Nokia 6820
Nokia N73
Nokia 6822
Nokia N80
Nokia 7200
Nokia N90
Nokia 7210
Nokia N91
Nokia 7250
Nokia N92
Nokia 7250i
Nokia N93
Nokia 7260
Nokia N93i
Comandos AT
Los comandos AT los cuales se pueden utilizar con Nokia GMS (incluyendo
tambien DCS1800 y PCS1900) y productos Wideband de CDMA (WCDMA)
disponible despus del otoo 2001, por ejemplo, los productos siguientes:
Nokia 8310, Nokia 6310, Nokia 7650, Nokia 8910, y Nokia D211.
Algunos de los comandos AT no son soportados por todos los productos
Nokia o por todos los operadores. Dar un comando que no sea soportado por
el producto causa una respuesta de error.
Los comandos AT son un juego de instrucciones que permiten configurar y
controlar a los telfonos mviles desde un equipo conectado por datos,
realizando acciones tales como: generar llamadas, leer y escribir la agenda,
enviar mensajes SMS, entre otras.
Las empresas fabricantes de telfonos mviles detallan en documentos
escritos los Comandos AT soportados por sus equipos. En este proyecto se
utiliz como medio para la Tx y Rx de Comandos AT un celular marca Nokia,
por lo que se har referencia a los comandos utilizados por esta firma en
particular.
NOKIA PC SUITE
Y estos son los cables con los que se puede conectar a la computadora
Para poder conectar estos cables se utilizan los diferentes drivers, estos
drivers crean un puerto COM VIRTUAL, aparte del que aparece en las
distintas computadoras, este puerto se simula en una puerto USB:
Y asi se puede facilitar el uso del hyperterminal para poder utilizar los
comandos AT y controlar el celular desde la computadora, una vez sea
logrado esto comunicarlo con el micrcontrolador (PIC , ATMEGA), seria una
tarea menos complicada, ya que esto verifica que el celular acepta los
comandos AT.
Luego para poder mandar los diferentes cdigos a travs del puerto COM de
la computadora utilizamos el programa ADVANCED SERIAL PORt MONITOR:
El ADVANCED SERIAL PORT MONITOR, tambin deja visualizar tanto los datos
que salen como los que entran a la computadora, al utilizar el NOKIA POWER
SUITE para comunicar el celular con la computadora este genera una trama
de nmero en hexadecimal, y segn los foros esta trama solo para los
modelos 3220b viene a ser:
CODIGO EN HEXADECIMAL
CODIGO ASCII
61 74 26 66 0d 0a 00
"
55 55 55 55 55 55 55 55
"
at&f...
"
UUUUUUUU
"
1e 00 10 d7 00 08 00 01 00 12 04 00 01 60 0b ac
"............`.
"
CODIGO EN HEXADECIMAL
CODIGO ASCII
1e 10 00 7f 00 02 d7 00 c9 6d
......m
00 00 00 00 00 00 00 00 00 00
..........
00 00 00 00 00 00 00 00 00 00
..........
00 00 00 00 00 00 00 00 00 00
..........
..
00 00
Este seria un gran paso para poder comunicar el controlador con el celular
ya que el hyperterminal solo enviara seal como si fuera una simulacin.
DIAGRAMA DE FLUJO.
INICIO
DEFINE NO WDT
CONFIGURAR
INTERRUPCIN
POR PIN RB0
CONFIGURAR
PUERTO I/O
CONFIGURAR
UART
115200
BAUDIOS
1 BIT START
ENVIA TRAMA DE
DATOS EN
HEXADECIMAL
ENVIA TRAMA DE
DATOS EN
HEXADECIMAL
NUMERO_MENSAJES=
1
FLAG =1
NO
SI
FLAG = 0, i = 0
SI
i=NUMERO_MENSAJES
NO
ENVIA: AT + CMGF= 1 PARA
CONFIGURAR MODO MENSAJE
RETARDO 1
SEGUNDO
ENVIA:AT+CMGS=numero_a_e
nviar
RETARDO 1
SEGUNDO
ENVIA:ALARMA ACTIVADA
ENVIA: CTRL+Z
I++
FIN
HERRAMIENTAS
GENERA
L
DISPLAY
Red
Tipo
Tama
o
65K colores
128 x 128 pixels, 5 lineas
- Cubiertas Cut-out
- Navegacin de cinco vas
- Wallpapers y screensavers animados
MEMORI
A
CARACTE
RSTICAS
Agen
da
telef
nica
- Wallpapers bajables
256 x 4 campos
- En 3 MB de memoria compartida
. MMS, max 100 kB c/u
. Ringtones
. Imgenes
. Memo de voz
- En memoria de 1.5 MB
. Java apps,max 128 kB c/u
GPRS
Clase 10
(4+1/3+
2 slots)
Velocidad de datos
177 kbps
(EDGE),
32 - 48
kbps
(GPRS)
Mensajera
SMS,
MMS,
EMail,
Mensajer
o
instantn
eo,
Mensajer
o liviano
Juegos
3 - Club
Pinball,
Dance
Delight,
Phantom
Spider +
bajables,
Comprar
- Java
MIDP 2.0
- WAP 2.0
(xHTML
browser)
- EDGE
- HSCSD
- T9
Calendari
o
Calculad
ora
- Editor
de
imgene
s
- Manos
libres
incorpora
do
- Interfaz
Pop-port
- Tapas
opcionale
s Fun
Shell
sensor
tilt para
control
de
juegos y
wave
messagin
g
MICROCONTROLADOR PIC16F877
CARACTERISTICAS
CARACTERSTICAS
Frecuencia mxima
Puertos E/S
Nmero de pines
Interrupciones
Timers
Mdulos CCP
Comunicaciones Serie
Comunicaciones paralelo
Juego de instrucciones
Longitud de la instruccin
Arquitectura
CPU
Canales Pwm
Pila Harware
c = GETC()
c = GETCH()
c = GETCHAR()
Estas funciones esperan un carcter por la patilla RCV del dispositivo RS232 y retorna
el carcter recibido.
Es preciso utilizar la directiva #USE RS232 antes de la llamada a esta funcin para que
el compilador pueda determinar la velocidad de transmisin y la patilla utilizada. La
directiva #USE RS232 permanece efectiva hasta que se encuentre otra que anule la
anterior.
Los procedimientos de I/O serie exigen incluir #USE DELAY para ayudar a sincronizar
de forma correcta la velocidad de transmisin. Recordad que es necesario adaptar los
niveles de voltaje antes de conectar el PIC a un dispositivo RS-232.
Ejemplo:
printf("Continuar (s,n)?");
do {
respuesta=getch();
} while(respuesta!='s'&& respuesta!='n');
PUTC()
PUTCHAR()
Estas funciones envan un carcter a la patilla XMIT del dispositivo RS232. Es preciso
utilizar la directiva #USE RS232 antes de la llamada a esta funcin para que el
compilador pueda determinar la velocidad de transmisin y la patilla utilizada. La
directiva #USE RS232 permanece efectiva hasta que se encuentre otra que anule la
anterior.
PRINTF([function], string, [values])
La funcin de impresin formateada PRINTF saca una cadena de caracteres al
estndar serie RS-232 o a una funcin especificada. El formato est relacionado con el
argumento que ponemos dentro de la cadena (string).
Cuando se usan variables, string debe ser una constante. El carcter % se pone dentro
de string para indicar un valor variable, seguido de uno o ms caracteres que dan
formato al tipo de informacin a representar.
Si ponemos %% obtenemos a la salida un solo %. El formato tiene la forma genrica
%wt, donde w es optativo y puede ser 1,2,...,9. Esto es para especificar cuntos
carcteres son representados; si elegimos el formato 01,...,09 indicamos ceros a la
izquierda, o tambin 1.1 a 9.9 para representacin en punto flotante.
t es el tipo de formato y puede ser uno de los siguientes:
#include <16F877A.h>
#use delay(clock=20000000)
#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
int trama1=0x61;
#include <lcd.c>
#define NUMERO_MENSAJES 1 //Nmero de mensajes a enviar
#define led_gsm pin_d0
#define led_espera pin_d1
char NUMERO[] = "989616025"; //Numero de telfono a marcar
char MENSAJE[] = "Alarma activada\r Casa Zea Diaz";//Mensaje a enviar
int flag=0;//variable auxiliar
#int_EXT
void EXT_isr(void){//funcin de tratamiento a la interrupcin externa
flag=1;
}
void conectar_Modem(){
//Envia un trama de datos Fbus para que el celular reconozca al PIC
output_high(led_gsm);
putchar(0x61);
putchar(0x74);
putchar(0x26);
putchar(0x66);
putchar(0x0D);
putchar(0x0A);
putchar(0x00);
putc(0x0D);
delay_ms(300);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x0D);
delay_ms(300);
putc(0x1E);
putc(0x00);
putc(0x10);
putc(0xD7);
putc(0x00);
putc(0x08);
putc(0x00);
putc(0x01);
putc(0x00);
putc(0x12);
putc(0x04);
putc(0x00);
putc(0x01);
putc(0x60);
putc(0x0B);
putc(0xAC);
putc(0x0D);
delay_ms(1000);
output_low(led_gsm);
}
else if(flag==0) {
//inicio://Etiqueta de retorno
output_high(Led_espera);//Pone en alto a led
delay_ms(500);//Demora
output_low(Led_espera);//Pone en bajo a led
delay_ms(500);//Demora
//goto inicio;//Regresa a la etiqueta inicio
}
}
}
#include <16F877A.h>
void iniciar(){
printf(LCD_PUTC,"\f");//BORRAR LCD
lcd_gotoxy(1,1);
printf(LCD_PUTC,"INICIAR ALARMA?");
iniciar:
if (input(inicio))
{
goto iniciar;
}
}
void conectar_Modem(){
//Envia un trama de datos Fbus para que el celular reconozca al PIC
output_high(led_gsm);
putchar(0x61);
putchar(0x74);
putchar(0x26);
putchar(0x66);
putchar(0x0D);
putchar(0x0A);
putchar(0x00);
putc(0x0D);
delay_ms(300);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x0D);
delay_ms(300);
putc(0x1E);
putc(0x00);
putc(0x10);
putc(0xD7);
putc(0x00);
putc(0x08);
putc(0x00);
putc(0x01);
putc(0x00);
putc(0x12);
putc(0x04);
putc(0x00);
putc(0x01);
putc(0x60);
putc(0x0B);
putc(0xAC);
putc(0x0D);
delay_ms(1000);
output_low(led_gsm);
}
output_high(led_gsm);
//flag=0;
char ctrlz = 26; //combinacion de teclas "ctrl+z"
printf("AT+CMGS=\"%s\"\r",NUMERO);
delay_ms(500);
printf("%s%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c
%c",MENSAJE,s1,A1,s2,A2,s3,A3,s4,A4,s5,A5,s6,A6,s7,A7,s8,A8);
delay_ms(500);
printf("%c",ctrlz); //se envia el mensaje
//putc(26);
delay_ms(1000);
output_low(led_gsm);
printf(LCD_PUTC,"\f");//BORRAR LCD
lcd_gotoxy(1,1);
printf(LCD_PUTC,"MENSAJE ENVIADO");
lcd_gotoxy(1,2);
printf(LCD_PUTC,"30SEG PARA RELAY ");
}
void main()
{
disable_interrupts(GLOBAL);//habilito interrupcin global
disable_interrupts(INT_EXT);//habilito interrupcin externa
setup_adc_ports(NO_ANALOGS);
//setup_adc(ADC_CLOCK_DIV_2);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
//setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
SET_TRIS_C(0b10000111);
SET_TRIS_B(0xFF);//Configura el puerto B: 0=Salida; 1=Entrada
SET_TRIS_D(0x00);//Configura el puerto D: 0=Salida; 1=Entrada
printf(LCD_PUTC,"\f");//BORRAR LCD
lcd_gotoxy(1,1);
printf(LCD_PUTC,"ALARMA ACTIVADA");
bucle:
output_high(Led_espera);//Pone en alto a led
//TESTEO DE LA ZONA1
if (!input(zona1))
{
A1='1';
s1=0x20;
alarma=alarma|0b00000001;
}
else
{
A1=0x00;
s1=0x00;
alarma=alarma&0b11111110;
}
//TESTEO DE LA ZONA2
if (!input(zona2))
{
A2= '2';
s2=0x20;
alarma=alarma|0b00000010;
}
else
{
A2=0x00;
s2=0x00;
alarma=alarma&0b11111101;
}
//TESTEO DE LA ZONA3
if (!input(zona3))
{
A3='3';
s3=0x20;
alarma=alarma|0b00000100;
}
else
{
A3=0x00;
s3=0x00;
alarma=alarma&0b11111011;
}
//TESTEO DE LA ZONA4
if (!input(zona4))
{
A4='4';
s4=0x20;
alarma=alarma|0b00001000;
}
else
{
A4=0x00;
s4=0x00;
alarma=alarma&0b11110111;
}
//TESTEO DE LA ZONA5
if (!input(zona5))
{
A5='5';
s5=0x20;
alarma=alarma|0b00010000;
}
else
{
A5=0x00;
s5=0x00;
alarma=alarma&0b11101111;
}
//TESTEO DE LA ZONA6
if (!input(zona6))
{
A6='6';
s6=0x20;
alarma=alarma|0b00100000;
}
else
{
A6=0x00;
s6=0x00;
alarma=alarma&0b11011111;
}
//TESTEO DE LA ZONA7
if (!input(zona7))
{
A7='7';
s7=0x20;
alarma=alarma|0b01000000;
}
else
{
A7=0x00;
s7=0x00;
alarma=alarma&0b10111111;
}
//TESTEO DE LA ZONA8
if (!input(zona8))
{
A8='8';
s8=0x20;
alarma=alarma|0b10000000;
}
else
{
A8=0x00;
s8=0x00;
alarma=alarma&0b01111111;
}
//respuesta=getch();
///if (respuesta=="RING")
//{
//output_low(relay);
//}
if (alarma==0b00000000)
{
goto bucle;
}
else
{
output_low(Led_espera);
Envio_SMS();
output_high(relay);//ACTIVA EL RELAY
printf(LCD_PUTC,"\f");//BORRAR LCD
lcd_gotoxy(1,1);
printf(LCD_PUTC,"ALARMA ACTIVADA");
goto bucle; // TODO: USER CODE!!
}