Escolar Documentos
Profissional Documentos
Cultura Documentos
Comunicaciones Industriales
por
Facultad de Ingenierı́a
Universidad de Buenos Aires
14 de junio de 2006
Buenos Aires, Argentina
i
Agradecimientos
Al Ing. Alberto Dams, por haber tomado el desafı́o de ayudarme con este
proyecto de investigación desde su posición de tutor.
A ese excelente grupo de amigos de la facultad con los cuales compartı́ tan-
tos momentos agradables al tiempo que me formé como profesional.
Gracias.
ii
Índice general
II
1. Introducción 8
2. Códigos turbo 11
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. Esquema de transmisión . . . . . . . . . . . . . . . . . . . . . 12
2.2.1. Codificador RSC . . . . . . . . . . . . . . . . . . . . . 12
2.2.2. Concatenación en paralelo . . . . . . . . . . . . . . . . 13
2.2.3. Interleaver . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.4. Selección de redundancia . . . . . . . . . . . . . . . . . 17
2.3. Esquema de recepción . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1. Detección por sı́mbolo . . . . . . . . . . . . . . . . . . 20
2.3.2. LLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.3. LLR del canal . . . . . . . . . . . . . . . . . . . . . . . 20
2.4. Algoritmos de decodificación . . . . . . . . . . . . . . . . . . . 21
2.4.1. Algoritmos MAP . . . . . . . . . . . . . . . . . . . . . 22
2.4.2. LLR del bit dk . . . . . . . . . . . . . . . . . . . . . . 23
2.4.3. El coeficiente γk . . . . . . . . . . . . . . . . . . . . . . 23
2.4.4. El coeficiente αk . . . . . . . . . . . . . . . . . . . . . 24
2.4.5. El coeficiente βk . . . . . . . . . . . . . . . . . . . . . . 25
2.4.6. Λk : su relación con αk , βk y γk . . . . . . . . . . . . . . 25
2.4.7. Información extrı́nseca . . . . . . . . . . . . . . . . . . 26
2.4.8. Decodificación iterativa . . . . . . . . . . . . . . . . . . 28
2.4.9. Log-MAP y Max-Log-MAP . . . . . . . . . . . . . . . 29
2.4.10. Inicialización de ᾱk y β̄k . . . . . . . . . . . . . . . . . 32
2.5. Curvas BER vs. Eb /N0 . . . . . . . . . . . . . . . . . . . . . . 32
3. Protocolo Profibus 34
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2. El sistema bus de campo Profibus . . . . . . . . . . . . . . . . 34
1
ÍNDICE GENERAL 2
3.2.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.2. Capa fı́sica . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.3. Formatos de tramas . . . . . . . . . . . . . . . . . . . . 38
3.3. Ejemplo de red Profibus . . . . . . . . . . . . . . . . . . . . . 39
4. Canal de comunicaciones 41
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2. Modelo del canal . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2.1. Canal AWGN . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.2. Ruido térmico . . . . . . . . . . . . . . . . . . . . . . . 47
4.3. Canal fı́sico en Profibus DP . . . . . . . . . . . . . . . . . . . 48
4.3.1. Especificaciones técnicas . . . . . . . . . . . . . . . . . 48
4.3.2. Tasa de transmisión de datos vs. distancia de cable . . 51
4.3.3. Niveles de ruido . . . . . . . . . . . . . . . . . . . . . . 51
5. Profibus Turbo 53
5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2. Esquema propuesto . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.1. Posible implementación y retardo asociado . . . . . . . 55
5.2.2. Factibilidad económica . . . . . . . . . . . . . . . . . . 56
5.3. Propiedades del canal propuesto . . . . . . . . . . . . . . . . . 56
5.3.1. BER y Eb /N0 . . . . . . . . . . . . . . . . . . . . . . . 56
5.3.2. Niveles de ruido para la Eb /N0 propuesta . . . . . . . . 58
5.3.3. Atenuaciones para distintas tasas de datos . . . . . . . 58
5.4. Mejoras obtenidas . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.4.1. Tasa de transmisión constante . . . . . . . . . . . . . . 59
5.4.2. Distancia de cable constante . . . . . . . . . . . . . . . 61
6. Simulaciones 68
6.1. Modelo en Simulink . . . . . . . . . . . . . . . . . . . . . . . . 68
6.2. Grados de libertad . . . . . . . . . . . . . . . . . . . . . . . . 72
6.3. Resultados de las simulaciones . . . . . . . . . . . . . . . . . . 74
6.3.1. Algoritmo Log-MAP . . . . . . . . . . . . . . . . . . . 74
6.3.2. Algoritmo Max-Log-MAP . . . . . . . . . . . . . . . . 76
7. Conclusiones 77
A. Fundamentos matemáticos 79
A.1. Lı́mite de Shannon . . . . . . . . . . . . . . . . . . . . . . . . 79
A.2. Expresión de la LLR del canal . . . . . . . . . . . . . . . . . . 80
A.3. Probabilidad a priori de dk . . . . . . . . . . . . . . . . . . . . 80
ÍNDICE GENERAL 3
B. Interfaz RS485 86
4
ÍNDICE DE FIGURAS 5
A.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6
Objetivo
7
Capı́tulo 1
Introducción
8
Introducción 9
Esto último será uno de los principales objetivos de esta tesis, buscando
entonces la maximización del producto de la distancia de cable y la tasa de
transmisión, mediante la introducción de la técnica de codificación turbo,
actualmente en uso en las tecnologı́as de redes de telefonı́a celular de tercera
generación (3G).
en expansión en la industria.
1
Por dicha razón, la versión Profibus PA (Process Automation) transporta la alimen-
tación de los equipos en el mismo cable por el cual viajan los datos.
2
Especialmente guiados por cobre.
Capı́tulo 2
Códigos turbo
2.1. Introducción
Los códigos turbo fueron introducidos por primera vez por Berrou, Gla-
vieux y Thitimajshima en el año 1993. Dichos códigos ofrecen las ganancias
de codificación más elevadas de los códigos existentes hasta el momento,
trabajando de esta manera en las cercanı́as del lı́mite de Shannon, es de-
cir Pe = 0 para una Eb /N0 = 0dB 1 , ofreciendo una excelente mejora en el
funcionamiento del sistema2 . Las simulaciones presentadas originalmente se
encontraban a tan solo 0, 7dB del lı́mite teórico de Shannon, medido a una
BER = 10−5 , con 18 iteraciones en el proceso de decodificación.
11
Códigos turbo 12
Debido a que por cada bit de información se transmiten dos bits de código,
la energı́a del bit de información Eb y la del bit de sı́mbolo3 Ec se relacionan
según:
Eb = 2Ec (2.1)
3
Algunos autores como por ej. [1] prefieren llamarlo bit de código.
Códigos turbo 13
debido a que la presencia del interleaver la entrada que llevará al primer codi-
ficador al estado de todos ceros no hará lo propio con el segundo. El hecho de
no terminar el trellis del segundo codificador deriva en una sutil desmejora
de la respuesta de la curva de BER vs. Eb /N0 cuando el tamaño del bloque
es superior a 100.
Figura 2.4: BER con terminación de trellis, tamaño del bloque=100 [9]
Figura 2.5: BER con terminación de trellis, tamaño del bloque=1000 [9]
2.2.3. Interleaver
El interleaver mostrado en el transmisor de la figura 2.2 se ha introducido
con el fin de aumentar la distancia libre [1] del diagrama de trellis resultan-
Códigos turbo 16
La naturaleza del interleaver puede ser muy variada; debido a que su fun-
ción es reordenar los datos, esta operación puede ser realizada de diferentes
maneras:
d1 d2 d3 d4 ... dn dn+1
5
En el paper original de Berrou, Glavieux y Thitimajshima [5] no está especificada la
entrada al segundo decodificador correspondiente a los datos sistemáticos recibidos pasados
por el interleaver.
6
En la sección 2.4.7 se explicará detalladamente el significado de esta magnitud.
7
El término Códigos Turbo hace alusión al mecanismo de realimentación cı́clica del
motor turbo.
Códigos turbo 20
Figura 2.8: Doble cálculo del algoritmo de Viterbi del algoritmo MAP
P (dk = +1|Y )
Λk = ln (2.7)
P (dk = −1|Y )
Es simple ver que si Λk es mayor que cero, finalmente se decidirá que se
ha enviado un ’1’, mientras que si es menor que cero se decidirá por cero. Es
decir:
(
1 si Λk > 0
dˆk = (2.8)
0 si Λk < 0
Consideremos una fuente de Markov con U estados, u = {0, 1, 2, ..., U −
1}, y supongamos que el estado sk pertenece al conjunto de estados u. El
algoritmo de MAP calcula las APPs encontrando primero la probabilidad
de transición de estado de la fuente de Markov P (sk → sk+1 |Y ) habiendo
recibido la secuencia Y . El término sk representa el estado de la fuente de
Markov en el tiempo k mientras que sk → sk+1 simboliza la transición de la
fuente del estado sk al sk+1 en el tiempo k + 1, siendo la probabilidad de la
transición cero si ésta no es posible 13 .
Usando el teorema de Bayes, y siguiendo la notación utilizada en [12], dicha
probabilidad se puede expresar como:
P (sk−1 → sk , Y )
P (sk−1 → sk |Y ) = (2.9)
P (Y )
Se define, según [5], P (sk−1 → sk , Y ) como producto de tres factores:
2.4.3. El coeficiente γk
El término γk+1 (sk → sk+1 ) simboliza la métrica de la rama del trellis
asociada con la transición del estado sk al sk+1 ; el coeficiente γk puede ser
calculado según [5]:
13
Recordemos que en una fuente de Markov no todas las transiciones son posibles desde
un estado arbitrario sm a otro sn ; basta con trazar el diagrama de trellis para darse cuenta
cuáles están permitidas en función de las entradas al codificador.
Códigos turbo 24
2.4.4. El coeficiente αk
El coeficiente αk simboliza la probabilidad conjunta de recibir la secuencia
Y y que la fuente de Markov se encuentre en el estado sk :
14
Para ser estrictos, la transición de estados no genera la salida sistemática xk sino que
la entrada dk = xk es la que se encarga de producir la transición de estados; sin embargo
es válido el análisis de transiciones de estados desde el punto de vista de la salida.
15
Ver Apéndice A sección A.3
16
Ver Apéndice A sección A.5
Códigos turbo 25
2.4.5. El coeficiente βk
Este coeficiente simboliza la probabilidad de recibir la secuencia Y dado
que la fuente de Markov se encuentra en el estado sk :
Λk = L(dk |Y ) (2.21)
αk−1 (sk−1 )γk (sk−1 → sk )βk (sk )
P
Λk = ln PS1 (2.22)
S0 αk−1 (sk−1 )γk (sk−1 → sk )βk (sk )
con:
→ sk )βk (sk )
P
αk−1 (sk−1 )γk extr (sk−1
Le (dk ) = ln PS1 (2.26)
S0 αk−1 (sk−1 )γk extr (sk−1 → sk )βk (sk )
Le (dk ) es la denominada información extrı́nseca, la cual cada decodifica-
dor le proporciona al otro sobre cada bit de información dk ; Le (dk ) es distinto
Códigos turbo 27
para cada decodificador debido a que el conjunto de bits a partir del cual se
formaron los bits de código es diferente para cada codificador, por la exis-
tencia del interleaver. Es importante notar que la información extrı́nseca es
información ganada a partir del proceso de decodificación, y no a partir de
las mediciones del canal yik .
Con la información a priori (por ahora nula) y la del canal (bit sistemáti-
co y de redundancia), el primer decodificador genera la APP del bit dk , Λ11k ,
la cual es usada en la ecuación 2.27 para producir la información extrı́nseca
que utilizará el segundo decodificador como información a priori, L12 (dk ). Di-
cha información extrı́nseca producida por el primer decodificador deberá ser
procesada por un interleaver de la misma naturaleza 19 que el utilizado en el
transmisor. Esto debe realizarse para poner en fase la información entregada
por el primer decodificador al segundo, ya que el segundo opera sobre bits
sistemáticos y de redundancia permutados; de esta manera, el segundo deco-
dificador realiza la siguiente asignación: L12 (dk ) = I{L1e1 }, donde I{·} simbo-
liza el proceso de interleaving. Como se explicó en la sección 2.2.4, los bits
de paridad son eliminados alternativamente, por lo que deberá completarse
con ceros aquellas posiciones donde se ha descartado datos de redundacia;
adicionalmente, es fácil notar que la cantidad de bits sistemáticos emitidos
(y recibidos) duplica a la cantidad de bits de redundancia entregados por
cada codificador, por lo que en el proceso inverso deberá rellenarse con ceros
en las posiciones donde no hayan habido datos transmitidos por alguno de
los codificadores, ya que el algoritmo opera con vectores de bits de canal de
igual dimensión.
19
Es por esta razón que el interleaver no puede ser aleatorio, sino que debe ser pseudo-
aleatorio, ya que es necesario conocer exactamente la forma de reproducirlo en el receptor.
Códigos turbo 29
Habiendo calculado ᾱk (sk ) y β̄k (sk ) para todos los estados del trellis, se
obtiene la APP del bit dk como:
β0 (sj,N ) = 1 ∀j (2.40)
Observando las ecuaciones 2.31 y 2.34, es inmediato notar que al aplicar
logaritmo natural, las condiciones iniciales para ᾱk y β̄k se transforman en:
(
0 si j = 0
ᾱ0 (sj,0 ) = (2.41)
−∞ 6 0
si j =
(
0 si j = 0
β̄0 (sj,N ) = (2.42)
−∞ 6 0
si j =
Si no se termina el trellis en el estado de “todos ceros”, resulta:
Protocolo Profibus
3.1. Introducción
En este capı́tulo se introducirán los aspectos relevantes de los sistemas de
bus de campo Profibus. Se brindará una breve descripción de su arquitectura,
las diferentes capas fı́sicas, los servicios de capa de enlace, los protocolos de
capa MAC y de enlace, y las propiedades más importantes con respecto al
comportamiento en tiempo real. Los servicios de capa de enlace (y su interfaz)
son el común denominador del cableado Profibus existente.
3.2.1. Arquitectura
Profibus apunta a una amplia gama de aplicaciones en fabricación y con-
trol. Ofrece diferentes perfiles, por ej. diferentes grupos de protocolos y ser-
vicios de capa de aplicación. Los perfiles de comunicación denotan diferentes
1
Para más información, visitar www.profibus.org .
34
Protocolo Profibus 35
Canal de comunicaciones
4.1. Introducción
Como definición genérica, el canal de comunicaciones es el medio fı́sico
utilizado para enviar una señal del transmisor al receptor. Se puede decir que
el canal de comunicaciones provee de una conexión entre el transmisor y el
receptor.
• Guiados
41
Canal de comunicaciones 42
• No guiados
La figura 4.1 muestra el transmisor que genera los sı́mbolos s(i) (t) a partir
de los datos de fuente m(i) , el canal de ruido aditivo n(t) y el receptor al cual
llega la señal perturbada r(t).
Sin embargo, si el canal estuviera limitado en ancho de banda, como es el
canal de telefonı́a fija (limitado a 4KHz), serı́a necesario introducir un análisis
de canal de filtro lineal [2], el cual considera la transferencia del filtro para
estimar la señal recibida. Si en cambio el canal fuera inalámbrico, se pueden
utilizar varios modelos, yendo desde el más simple, AWGN, pasando por el
modelo de canal de filtro linear variante en el tiempo[2], o planteando un
3
Esto es condición necesaria pero suficiente, debido a la existencia del margen denomi-
nado Elipsoide de Fresnel; igualmente aunque el transmisor y el receptor no se vieran, el
enlace podrı́a funcionar debido a la difracción de las ondas alrededor de un obstáculo de
dimensiones comparables a la longitud de onda de operación.
Canal de comunicaciones 44
modelo de canal con memoria para considerar errores en ráfaga, como lo son
el modelo de Gilbert-Elliot[16] y el modelo bipartito[13], los cuales modelan
al canal como una fuente de Markov con probabilidades de transición hacia
estados “buenos” y “malos”. De esta manera, el canal tiene memoria de los
eventos de ruido ocurrido, por lo que la probabilidad de error de bit deja de
ser independiente para cada bit en el caso de ocurrir una ráfaga, ya que ésta
afecta a un conjunto de bits consecutivos en el tiempo.
E[n(t)] = 0 (4.3)
Canal de comunicaciones 45
+∞
X +∞
X
R(τ ) = E ni nj w(t − iTs − δ)w(t + τ − jTs − δ) (4.4)
i=−∞ j=−∞
+∞
= σ 2 Eδ
X
w(t − iTs − δ)w(t + τ − jTs − δ) (4.5)
i=−∞
= σ 2 ∆Ts (τ ) (4.6)
donde f es la frecuencia.
La figura 4.3 muestra la correlación del ruido y su correspondiente trans-
formada de Fourier. Nótese que la secuencia de ruido de la ecuación 4.2 se
conforma de sumas de infinitos rectángulos. Al correlacionar, es decir convo-
lucionar, rectángulos de igual duración, Ts , se obtiene una función triangular
como la de la figura 4.3, cuya transformada de Fourier es una sinc cuadrado.
Se obtienen resultados de interés cuando la duración de los pulsos alea-
torios Ts tiende a cero:
Canal de comunicaciones 46
lı́m N (f ) = σ 2 (4.8)
Ts →0
N = kT B (4.16)
donde k = 1,38 · 10−23 W/(HzK) es la constante de Boltzmann, T es la
temperatura del receptor en grados Kelvin, y B es el ancho de banda de ruido
efectivo en el receptor en Hz.
Asimismo, la tensión de ruido térmico Vn sobre un resistencia de valor R
se calcula como:
√
Vn = kT BR (4.17)
Figura 4.6: Máximas distancias del cable de Profibus DP vs. tasa de trans-
misión de datos [18].
Estos valores servirán como referencia para el caso de Profibus DP, aun-
que es necesario valerse de información adicional para considerar la validez
de dichas magnitudes de ruido.
Profibus Turbo
5.1. Introducción
Durante años se ha trabajado con diferentes versiones de Profibus para
cada aplicación en particular. Un claro ejemplo de esto es la versión Profibus
PA, la cual transmite datos a una tasa fija de 31.25 Kbps alcanzando distan-
cias máximas de 1900 metros. Claramente, en contraste con Profibus DP, el
cual trabaja a velocidades de hasta 12 Mbps con una distancia máxima de
100 metros para dicha tasa, se está sacrificando velocidad de transmisión de
datos por distancia de cable. Esto es lógico y razonable, ya que un estableci-
miento o planta industrial puede tener dimensiones del orden del kilómetro y
en consecuencia es necesario tender cables de hasta 2000 metros de longitud
para comunicar los equipos transmisores, actuadores y otros equipos de cam-
po con los gabinetes en donde se encuentran los controladores o procesadores
de datos.
53
Profibus Turbo 54
BER, mientras que en esta tesis se utiliza dicha técnica en medios cableados
por cobre.
Por último, este nuevo esquema introduce el uso de la codificación tur-
bo en el ámbito de las comunicaciones industriales, algo nunca hecho
hasta el momento.
Para nuestro caso, la trama entrante es de 2816 bits (256 bytes, repartidos
entre 246 bytes de datos y 10 bytes de overhead, cada byte acompañado por
un bit de inicio, uno de parada y uno de paridad, con un total de 11 bits
por byte de información) y el código es de tasa k = 1/2, por lo que la
relación entre la cantidad de datos que procesa el decodificador de la hoja de
datos y los datos procesados por la solución propuesta en esta tesis es (8192 ·
3)/(2816 · 2) = 4,3636. De esta manera, es razonable pensar que el retardo de
procesamiento especificado en la hoja de datos del decodificador se divida por
dicho número, siendo entonces igual a 198µseg para 8 iteraciones. Con la tasa
de bits más elevada, 12 Mbps, este retardo equivale a 12M bps · 198µseg =
2376bits. Es decir, el retardo de procesamiento es inferior al tamaño de una
trama (2816 bits), por lo que bastará con agregar un buffer con capacidad
para almacenar una trama en el decodificador turbo.
1
El retardo de codificación puede ser considerado despreciable.
Profibus Turbo 56
Por otra parte, una FPGA de la firma Altera utilizada para W-CDMA
que implementa el cálculo de CRC, decodificación turbo, selección de re-
dundancia, interleaving y modulación en QAM para una tasa de 14,4M bps,
cuesta unos U$S 7 por unidad [24]. Recordemos que para este tipo de análi-
sis económico el hardware representa un costo recurrente mientras que el
firmware no agrega costo por unidad por ser no recurrente.
Para el estudio de esta sección se supondrá una BER igual a 10−4 , por lo
que se debe procurar que la relación Eb /N0 caiga hasta 1dB trabajando con
un esquema de decodificación turbo de hasta 10 iteraciones si es necesario2
(ver figura 2.10). Sin embargo, son los bits de código los que ingresan al canal
de comunicaciones y los que son atenuados por el mismo, de manera que una
Eb /N0 = 1dB equivale a una Ec /N0 = 1dB − 3dB = −2dB por utilizarse
código de tasa k = 1/2, por lo que, partiendo de una señal de 2V , con un
nivel de ruido Vn = 272mV la señal recibida Vr debe ser de:
−2+3
Vr = Vn 10 20 = 242,42mV (5.3)
Por lo tanto, se deben atenuar los bits de código:
2V
LcdB = 20 log = 18,33dB (5.4)
Vr
A continuación se estudiará la máxima distancia del cable resultante de
plantear la atenuación de la ecuación 5.4, refiriéndonos al cuadro 5.1, para
diferentes tasas de trasmisión de interés.
Es importante aclarar que para una tasa R bps de datos de fuente corres-
ponde una tasa 2R de datos de código, por lo que la atenuación del canal
fı́sico sobre los bits de código ocurrirá a una frecuencia R Hz.
Tasa 500Kbps
De acuerdo al cuadro 5.1, con una atenuación de bits de código de 0,8dB/100m,
para lograr una Eb /N0 = 1dB, la máxima longitud del cable es:
18,33dB
D= = 2291 m (5.5)
0,8dB/100m
Es decir, la nueva máxima distancia para 500Kbps es 5,72 veces la dis-
tancia impuesta por la norma para dicha tasa (400m).
2
No es conveniente aumentar demasiado la cantidad de iteraciones debido al retardo
introducido, ver sección 5.2.1.
Profibus Turbo 60
Tasa 1, 5M bps
Siguiendo un razonamiento análogo al efectuado para la tasa de 500Kbps,
y refiriéndonos al cuadro 5.1, con una atenuación de 1,28dB/100m para los
bits de código emitidos a 3M bps, para lograr una Eb /N0 = 1dB, la máxima
longitud del cable es:
18,33dB
D= = 1432 m (5.6)
1,28dB/100m
Es decir, la nueva máxima distancia para 1,5M bps es 7,61 veces la dis-
tancia impuesta por la norma para dicha tasa (200m).
Eb S(R) 1
= (5.9)
N0 N0 R
Al igual que en la sección 5.3.1, se supondrá una BER = 10−4 , lo cual sig-
nifica una Eb /N0 = 8,37dB sin codificación, para cada distancia determinada.
!
Eb S R2
∆ = 1dB − 8,37dB = −7,37dB = ∆ − 10 log (5.11)
N0 dB N dB R1
Distancia 400m
Según la norma Profibus, para una distancia de 400 metros corresponde
una tasa de transmisión de datos de fuente R1 = 500Kbps, es decir una
tasa de bits código de 2R1 = 1M bps, lo cual corresponde a un ancho de
banda de aproximadamente 500KHz, por lo que se deberá encontrar una
relación para la atenuación en función de la frecuencia alrededor de dicho
valor. Según se observa en la figura 5.3, la pendiente de la recta que vincula la
atenuación con la frecuencia es de 0,8dB/100KHz hasta 626KHz, cayendo
a 0,48dB/100KHz luego de dicho valor, y considerando que en este caso
R1 = 500Kbps, se puede reescribir la ecuación 5.13 como:
626 − 500 R2 − 626 R2
7,37 = 0,8 + 0,48 + 10 log (5.14)
100 100 500
con R2 medido en Kbps y ambos lados de la igualdad en dB. Nótese que
el primer término a la derecha del igual representa la atenuación del medio
fı́sico obtenida entre 500 KHz y 626 KHz, mientras que el segundo plantea
la atenuacı́ón del mismo desde 626 KHz en adelante.
Profibus Turbo 64
Distancia 200m
Para una distancia de cable de 200 metros la tasa de datos establecida por
Profibus es de 1,5M bps, es decir una tasa de bits código de 3M bps, lo cual
corresponde a un ancho de banda de aproximadamente 1,5M Hz, por lo que
la curva de la figura 5.3 sufre un cambio de pendiente. La nueva pendiente
es 0,48dB/100KHz, y considerando que en este caso R1 = 1500Kbps, es
posible reescribir la ecuación 5.13 como:
Profibus Turbo 65
R2 − 1500 R2
7,37 = 0,48 + 10 log (5.15)
100 1500
Nuevamente, resolviendo gráficamente en Matlab la ecuación 5.15 escrita
en forma homogénea, se obtiene R2 = 2,554M Hz, es decir, 1,7 veces la tasa
de datos establecida por la norma, tal como se observa en la figura 5.5. Es
decir, se puede incrementar la tasa de transmisión impuesta por la norma
Profibus en un 70 por ciento.
Distancia 100m
Se analizará por último el caso de distancia de cable igual a 100 me-
tros. La norma Profibus establece varias tasas de datos para dicha distancia,
por lo que se elegirá la más alta, 12M bps, es decir una tasa de bits código
de 24M bps, lo cual corresponde a un ancho de banda de aproximadamente
Profibus Turbo 66
Sin embargo, la técnica introducida en esta tesis tiene como objetivo me-
jorar tasas de datos para grandes distancias de cable, mucho mayores que
100 metros, por lo que este último no es un caso de interés.
Simulaciones
1
A pesar que Simulink es una herramienta muy práctica ya que se obtiene visualmente
la información de la configuración, sufre de problemas de retardos al invocar las funciones
S que corren en los bloques; inclusive, la implementación de lazos de realimentación es
complicada y puede haber errores en tiempo de ejecución, por lo que la mayor parte de las
simulaciones se han realizado sobre código fuente que replica la configuración mostrada en
esta sección. Dicho código fuente puede ser encontrado en el Apéndice D.
68
Simulaciones 69
2
Sin duda los algoritmos MAP son los de mayor peso y relevancia en esta tesis, sin
embargo se incluyen todos los códigos fuentes de los archivos que contribuyen a obtener
los resultados de las simulaciones mostradas en este capı́tulo.
Simulaciones 70
Esquema de transmisión/recepción
Decodificación turbo
• Tamaño de la trama
• Tipo de interleaver
El objetivo es obtener una BER = 10−4 con una una Eb /N0 = 1dB, con
una cantidad de iteraciones menor o igual a 10. En todos los casos la longitud
de la trama se mantiene constante e igual a 2816 bits.
Codificador con K = 3
Codificador con K = 5
En la figura 6.5 se observa que a Eb /N0 = 1dB se obtiene una BER de
2 · 10−4 para 8 iteraciones y de 2 · 10−5 para 10 iteraciones. De esta manera,
se puede dar por alcanzado el objetivo de BER = 10−4 a los fines prácticos
luego de 8 iteraciones. Realizando 2 iteraciones más se supera ampliamente
el objetivo planteado, aunque a costa de un incremento en el retardo de
procesamiento.
Codificador con K = 5
En la figura 6.6 se observa que a Eb /N0 = 1dB la BER todavı́a se en-
cuentra cercana 10−1 incluso luego de 10 iteraciones. Para 10 iteraciones, se
obtiene una BER = 10−4 para una Eb /N0 ∼ = 1,4dB, por lo que la solución
en este caso tiene un rendimiento bastante inferior al observado para el caso
de Log-MAP y 8 iteraciones. De esta manera, se concluye que el algoritmo
Log-MAP tiene mejor performance que la versión Max-Log-MAP, a expensas
de mayor retardo de procesamiento.
Conclusiones
Sin embargo, tal vez el resultado obtenido más destacable es aquel que
denota la posibilidad de extender la máxima distancia de cable a 2291 me-
tros para una tasa de 500 Kbps, superando ası́ la máxima distancia impuesta
por Profibus PA (1900 metros, a una tasa de 31,25 Kbps), transmitiendo en-
tonces a una mayor distancia con una tasa de datos 16 veces superior.
77
Conclusiones 78
Fundamentos matemáticos
C = 2W log2 M (A.1)
C = 2W k (A.2)
C
= 2k (A.3)
W
donde k es la tasa del código y M es la cantidad de sı́mbolos del alfabeto
código.
En un canal AWGN (Aditive White Gaussian Noise), se define la capacidad
de Shannon como:
CEb
C = W log2 1 + (A.4)
W N0
Utilizando la ecuación A.3 y reemplanzando en A.4 se obtiene:
Eb 22k − 1
≥ (A.5)
N0 2k
Por lo tanto, para un código con tasa k=1/2, se obtiene la siguiente
inecuación, con la Eb /N0 medida en veces:
Eb
≥1 (A.6)
N0
79
Fundamentos matemáticos 80
Eb 22k − 1
lı́m = lı́m = −1,59dB (A.7)
k→0 N0 k→0 2k
El lı́mite expresado por la ecuación A.7 establece una cota inferior para
la energı́a de bit Eb frente a una densidad espectral de potencia de ruido N0 ,
para establecer una comunicación confiable libre de errores.
1 Eb 2
P (yi |xi = +1) = √ e− 2σ2 (yi −1)
2πσ
1 Eb 2
P (yi |xi = −1) = √ e− 2σ2 (yi +1)
2πσ
Eb 2
e− 2σ2 (yi −1)
L(yi |xi ) = ln Eb 2
e− 2σ2 (yi +1)
Eb Eb
= − 2 (yi − 1)2 + − 2 (yi + 1)2
2σ 2σ
Eb
= 2 2 yi
σ
P (dk = +1)
eL(dk ) = (A.10)
1 − P (dk = −1)
Finalmente se llega a una expresión general de la probabilidad a priori
P (dk ) del bit dk :
m
Y
P (Y |X) = P (yik |xik ) (A.12)
i=1
m
1 Eb Pm 2
e 2σ2 i=1 (yik −xik )
Y
= √ (A.13)
i=1 2πσ
1 Eb Pm
(y 2 +xik 2 )
Eb Pm
(y x )
= √ m
e 2σ 2 i=1 ik e 2σ 2 i=1 ik ik (A.14)
( 2πσ)
Eb Pm
(yik xik )
= C2 e 2σ2 i=1 (A.15)
A.5. Expresión de γk
Refiriéndonos a la expresión de γk en la ecuación 2.13, y combinándola
con las ecuaciones A.11 y A.15 se tiene:
Fundamentos matemáticos 82
Lc
γk (sk−1 → sk ) = Cedk L(dk )/2 e 2
(y1k dk )
γk extr (sk−1 → sk ) (A.20)
A.6. Expresión de αk
Refiriéndonos a [7], quien utiliza la notación Y1n para describir la secuencia
{y1 , ..., yn }, se desarrolla:
A.7. Expresión de βk
U −1
n
X
βk (sk ) = P (sk+1 , Yk+1 |sk ) (A.26)
sk+1 =0
U −1
n
X
= P (sk+1 , Yk+1 |sk )P (Yk+2 |sk+1 ) (A.27)
sk+1 =0
U
X −1
= βk+1 (sk+1 )γk (sk+1 → sk ) (A.28)
sk+1 =0
Fundamentos matemáticos 83
Figura A.1:
4π +∞
X
P (ω) = δ(ω − kπR) (A.32)
R k=−∞
De esta manera, la tranformada de c(t), C(ω) es:
Figura A.2:
Interfaz RS485
Introducción
La interfaz RS485, al igual que la interfaz RS422, ha sido desarrollada
para la transmisión en serie de datos de alta velocidad a grandes distancias y
encuentra creciente aplicación en el sector industrial. Mientras que la RS422
sólo permite la conexión unidireccional de hasta 10 receptores en un trans-
misor, la RS485 está concebida como sistema Bus bidireccional con hasta 32
hosts. Fı́sicamente las dos interfaces sólo se diferencian mı́nimamente. El Bus
RS485 puede instalarse tanto como sistema de 2 hilos o de 4 hilos. Dado que
varios transmisores trabajan en una lı́nea común, tiene que garantizarse con
un protocolo que en todo momento esté activo como máximo un transmisor
de datos.
La norma RS485 define solamente las especificaciones eléctricas para recep-
tores y transmisores diferenciales en sistemas de bus digitales. La norma ISO
8482 estandariza además la topologı́a de cableado con una longitud máxima
de 500 metros.
86
Interfaz RS485 87
Longitud de lı́neas
Usando un método de transmisión simétrico en combinación con cables
de pares de baja capacidad y amortiguación (par trenzado o twisted pair,
TP) pueden realizarse conexiones muy eficaces a través de una distancia de
hasta 500m con altas tasas de transmisión. El uso de un cable TP de alta
calidad evita por un lado la diafonı́a entre las señales transmitidas y por el
otro reduce adicionalmente el efecto del apantallamiento, la sensibilidad de
la instalación de transmisión contra señales perturbadoras entremezcladas.
En conexiones RS485 es necesario un terminador al final del bus para obligar
al nivel de pausa en el sistema cuando no esté activo ningún transmisor de
datos, y evitar adicionalmente posibles reflexiones debidas a desadaptaciones
del bus.
Apéndice C
89
Descripción del protocolo Profibus 90
TT H = TT T RT − TRR (C.2)
El tiempo de rotación real de token es medido constantemente como el
tiempo entre sucesivos arribos de token. Se inicia un temporizador (de fija-
ción de token) con el TT H calculado.
del valor del THT (el manejo de una trama incluyendo las retransmisiones
se conoce como “ciclo”). Es por ello, que esta caracterı́stica sólo puede ser
explotada en los servicios SDA, SDN y SRD, puesto que los servicios CSRD
son llevados a cabo con baja prioridad.
Primero, la estación debe llevar a cabo todos los ciclos de alta priori-
dad disponibles, hasta que el temporizador expire o la cola de alta prioridad
se vacı́e. En el segundo caso, la estación pude proceder con tramas de ba-
ja prioridad o tramas cı́clicas, si el THT no ha expirado. Luego de haber
comenzado, el servicio de baja prioridad es no-prerrogativos, es decir, los
pedidos de alta prioridad recién llegados son manejados por sobre la llegada
del próximo token. Esto continúa hasta que no haya tramas para transmitir
o el temporizador de fijación de token expire.
Si el recorrer la lista de consulta toma más tiempo del que el THT per-
mite, la lista restante es manejada en los ciclos de token subsiguientes, sin
interrupción de tramas de baja prioridad asincrónicas. Estas últimas son ma-
nejadas si la lista de votación es recorrida completamente.
La instancia FDL del iniciador mantiene para cada posible estación ob-
jetivo a una variable de estado (distinguiendo entre “muerta” y “viva”, y un
bit de cuenta de trama (FCB). La variable de estado se cambia de acuerdo a
la siguiente regla: si la estación objetivo está “viva” y no responde a ninguna
prueba perteneciente a un ciclo (es decir, si no envia un ACK a la trama de
pedido y todas sus transmisiones max retry), es marcada como muerta. Si un
ciclo es direccionado a una estación muerta, ninguna retransmisión es lleva-
da a cabo dentro del servicio CSRD. Si una estación como muerta responde
nuevamente, es marcada como viva. La instancia FDL de quien responde
mantiene para cada posible dirección de estación una FCB. Es más, mantie-
ne un buffer global para el último acuse de recibo de trama (buffer de acuse
de recibo).
D.1. Principal
% funcion principal donde se setean los parámetros de la simulación
function bermaxrand
clear all
% parametros de poly2trellis
% K: Longitud restringida
% G: Codegenerator en octal
% F: Feedback connection en octal
% Paper de Berrou
K=5; G=21; F=37; % este codificador tiene muy buena performance
trellis = poly2trellis(K,G,F);
% asigno la estructura al workspace ’base’
assignin(’base’,’trellis’,trellis);
102
Código fuente de Matlab 103
trellismat;
EbNovector = 0:0.5:2;
iteracionesvector = [8 10];
% Trama de longitud N
N=53*53;
assignin(’base’,’N’,N);
contador = 0;
for j = 1:length(iteracionesvector)
iteraciones = iteracionesvector(j);
assignin(’base’,’iteraciones’,iteraciones);
for i = 1:length(EbNovector)
EbNo = EbNovector(i);
assignin(’base’,’EbNo’,EbNo);
totalerrors = 0;
for k=1:CantTramas
contador = contador + 1;
progreso = 100*contador/(length(iteracionesvector)*...
length(EbNovector)*CantTramas)
end
bervector(i) = totalerrors/(N*CantTramas);
end
semilogy(EbNovector,bervector, trazo(j));
xlabel(’Eb/No [dB]’);
ylabel(’BER’);
hold on
end
function turbo
M = log2(trellis.numStates);
Lc = 2/(Sigma^2);
tailbits = zeros(M,1);
tailbitscoded = zeros(M,1);
for n=1:M
FinalStateBin = dec2bin(FinalState, M);
weight=0;
for m=1:M
% si F_bin(m+1) == ’1’, ese registro esta realimentado
% F_bin(1) es la conexion de la entrada al codificador (no
% pertenece a los estados del codificador
end
Xs_bin = source;
source_int = randintrlv(source,12345);
X_bin = zeros(N,2);
X_bin(:,1) = Xs_bin;
for i=1:N/2
X_bin(2*i-1,2) = X1p_bin(2*i-1);
X_bin(2*i,2) = X2p_bin(2*i);
end
X = bin2polar(X_bin);
Ruido = Sigma*randn(N,2);
%En el receptor
Y = zeros(N,2);
Y = X + Ruido;
Le1 = zeros(N,1);
Le2 = zeros(N,1);
Yp1 = zeros(N,1);
Yp2 = zeros(N,1);
for i=1:N/2
Yp1(2*i-1) = Y(2*i-1,2);
Yp2(2*i) = Y(2*i,2);
end
Inputdec1 = zeros(3*N,1);
Inputdec2 = zeros(3*N,1);
% Lazo de iteraciones
for i=1:iteraciones
Código fuente de Matlab 108
dec1output = decmax(Inputdec1);
Le1 = dec1output(:,1);
decoder = 2;
assignin(’base’,’decoder’,decoder);
dec2output = decmax(Inputdec2);
Le2 = randdeintrlv(dec2output(:,1),12345);
end
assignin(’base’,’decout’,decout);
Lb = zeros(N,1);
X = zeros(N,1);
Y = zeros(N,1);
Lc = 2/(Sigma^2);
Gama = zeros(N,trellis.numStates,trellis.numStates);
Gama(:,:,:) = - Inf;
for i = 1:N,
for k = 1:trellis.numStates,
for j = 1:trellis.numStates,
if Mat(j,k,1) ~= 0;
% Mat(j,k,1) = bi = x_sist
Gama(i,j,k) = Mat(j,k,1).*Lb(i)/2 + ...
Lc/2*(X(i).*Mat(j,k,1)+Y(i).*Mat(j,k,2));
end
end
end
end
Alfa=zeros(N,trellis.numStates);
Alfa(1,:)=-Inf;
Alfa(1,1)=0;
for i=2:N;
for k=1:trellis.numStates;
for j=1:trellis.numStates;
A(j)= Gama(i-1,j,k) + Alfa(i-1,j);
end
if A(1)==-Inf & A(2)==-Inf;
Pru=-Inf;
else
Pru= max(A(1),A(2)) + log(1+exp(-1*abs(A(1)-A(2))));
end
for j=3:trellis.numStates
if A(j)~=-Inf;
Pru= max(Pru,A(j)) + log(1+exp(-1*abs(Pru-A(j))));
end
end
Código fuente de Matlab 111
Alfa(i,k)= Pru;
end
end
Beta=zeros(N+1,trellis.numStates);
if decoder == 1
% Si es el Primer Decodificador, el último Beta(1) debe ser 0
Beta(N+1,:)=-Inf;
Beta(N+1,1)=0;
else
% Si es el Segundo Decodificador, todos los últimos Betas deben ser
% 0
Beta(N+1,:)=0;
end
for i=N:-1:2;
for j=1:trellis.numStates; % j es el estado actual
for k=1:trellis.numStates; % k es el estado proximo
B(k)= Beta(i+1,k) + Gama(i,j,k);
end
if B(1)==-Inf & B(2)==-Inf;
Pru=-Inf;
else
Pru=max(B(1),B(2)) + log(1+exp(-1*abs(B(1)-B(2))));
end
for k=3:trellis.numStates
if B(k)~=-Inf;
Pru= max(Pru,B(k)) + log(1+exp(-1*abs(Pru-B(k))));
end
end
Beta(i,j)= Pru;
end
end
for i=1:N;
for k=1:trellis.numStates;
for j=1:trellis.numStates;
if Mat(j,k,1)==1;
Numer(k) = Alfa(i,j) + Gama(i,j,k) + Beta(i+1,k);
elseif Mat(j,k,1)==-1;
Denom(k) = Alfa(i,j) + Gama(i,j,k) + Beta(i+1,k);
end
end
end
for k=3:trellis.numStates
end
Lb_y(i)=NumerAux - DenomAux;
end
trellis = evalin(’base’,’trellis’);
Mat = zeros(trellis.numStates,trellis.numStates,2);
% Mat(u’,u,bits)
polar = [-1 ; +1];
for col = 1:2,
for i = 1:trellis.numStates,
Mat(i,trellis.nextStates(i,col)+1,1) = polar(col);
% la primera columna esta asociada a las transiciones del 0 (-1
% en polar)
% la segunda columna esta asociada a las transiciones del 1 (+1 en
% polar)
end
end
Código fuente de Matlab 114
for k = 1:trellis.numStates,
for j = 1:trellis.numStates,
% esta condicion detecta si la transicion de j a k es posible
if Mat(j,k,1) ~= 0;
% guardo en la matriz la salida codificada a partir del estado
% actual y el bit entrante al codif; la paso a polar (0 -> -1 ,
% 1 -> +1)
Mat(j,k,2) = bin2polar(trellis.outputs(j, ...
polar2bin(Mat(j,k,1)) + 1));
end
end
end
assignin(’base’,’Mat’,Mat);
source = evalin(’base’,’source’);
decout = evalin(’base’,’decout’);
N = evalin(’base’,’N’);
N=1000000;
%cantrep=10;
%for k=1:cantrep
source = sign(randn(N,1));
assignin(’base’,’source’,source);
for i = 1:length(EbNovector)
EbNo = EbNovector(i);
assignin(’base’,’EbNo’,EbNo);
Sigma = 1/sqrt(2)*10^(-EbNo/20); % EbNo esta en dB
n = Sigma*randn(N,1);
r=source+n;
%r=awgn(source,EbNo + 3);
decout = sign(r);
assignin(’base’,’decout’,decout);
bervector(i) = errors/N;
end
semilogy(EbNovector,bervector)
xlabel(’Eb/No [dB]’)
ylabel(’BER’)
title(’BER vs Eb/No sin codificación’)
hold on
figure
x=1500:1:3500;
f=0.48*(x-1500)/100+10*log10(x/1500)-7.37;
plot(x,f)
title(’R2 para distancia de cable 200 metros’)
Código fuente de Matlab 116
xlabel(’R [Kbps]’)
ylabel(’Homogénea en función de R2’)
figure
x=12000:1:15000;
f=0.48*(x-12000)/100+10*log10(x/12000)-7.37;
plot(x,f)
title(’R2 para distancia de cable 100 metros’)
xlabel(’R [Kbps]’)
ylabel(’Homogénea en función de R2’)
Bibliografı́a
117
BIBLIOGRAFÍA 118
[14] A.Willig, “Investigations on MAC and Link Layer for a wireless PRO-
FIBUS over IEEE 802.11”, 2002.
[22] N. Chan, “Design and Prototyping of a Turbo Decoder Using the Ber-
keley Emulation Engine (BEE)”, 2001.