Está en la página 1de 3

-----------------------------------function envia_manchester(byte dato)

byte bit[8];
convierte_bits(dato);
for(int i=0;i<8;i++){
if(bit[i]==0){
bajo(P1.0);
delay(P/2);
alto(P1.0);
delay(P/2);
}
else {
alto(P1.0);
delay(P/2);;
bajo(P1.0);
delay(P/2);
}
}
function rcibe_manchester(byte bitr){
byte dato[8];
for(int i=0;i<8;i++) {
if(P1.0==1){
bit(i)==1;
}
else {
bit(i)=0;
delay(P);
}
--------------------------------Preambulo: 7bytes de 10101010=170
a 10 Mbps
Equivalente a se;al cuadrada 10Mhz(5.6useg)
Delimitador de marco: 10101011
Direccion de destino: Direccion MAC, propia de cada tarjeta y origen
Longitud de Datos: De 0 a 1500
-------------------------------void manchester(byte d)
byte dato[8];
dato[0]=d && 0000 0001
dato[1]=d && 0000 0010
dato[2]=d && 0000 0100
dato[3]=d && 0000 1000
dato[4]=d && 0001 0000
dato[5]=d && 0010 0000
dato[6]=d && 0100 0000
dato[7]=d && 1000 0000
for(int i=0;i<8;i++){
if(dato[i]==0){
P.A0=0;
esperar[P/2];
P.A0=1;
esperar[P/2]; }
else {
P.A0=1;
esperar[P/2];

b;
b;
b;
b;
b;
b;
b;
b;

P.A0=0;
esperar[P/2]; }
}

void envia_marco(byte marco[]) {


int long_m;
long_m=marco[21]<<8;//corre el dato 8 posiciones a la izquierda
long_m=long_m+marco[22];
if(long_m<46) {
long_m=64;
}
else{
long_m=long_m+18;
}
for(int i=0;i<7;i++) { //Envia preambulo 10101010
manchester(170);
}
manchester(171) // Envia delimitado de marco 10101011
for(int i=0;i<long_m;i++) {
manchester(marco[i]);
}
}

//Armando los marcos


void LLc(byte buffer[]) {
int num_m;
num_m=long_buff
if((long_buff mod 1500)>0) {
num_m=num_m+1;
}
for(int j=0;j<num_m-1;j++){
for(int k=0;k<6;i++) { //Direccion destino
t=MACD<<8*k;
marco[k]=byte t>>40;
}
for(int L=0;L<6;L++) { //Direccion de origen
t=MACO<<8*L;
marco[k+1+L]=(byte)t>>40
marco[12]=1500 // Longitud de datos
int p=13, int s=0
for(int alfa=j*1500;x<j*1500+1500,x++) {
marco[P]=buffer[x];
P++
s=s+buffer[x];
}
marco[P]=(byte)s>>8
t=s<<8
marco[P+1]=(byte)t>>8
enviar_marco()
}
if((long_buff mod 1500)>0) {
for(int k=0;k<6;i++) {

t=MACD<<8*k;
marco[k]=(byte)>>40;
}
for(int L=0;L<6;L++) {
t=MACO<<8*L;
marco[k+1+L]=byte t>>40
}
marco[12]=long_buff-(num_m-L)+1500
int p=13, int s=0
for(int x=(num_m-L)*1500;<x<long_buff;x++) {
marco[P]=buffer[x];
P++
s=s+buffer[x];
}
marco[P]=(byte)s>>s
t=s<<s;
marrco[P]=(byte)s>>s
envia marco()
}}}

También podría gustarte