rs232

14
SISTEMA DE PROTOTIPAJE CON COMUNICACIÓN RS232 CON EL PC El objetivo de este capítulo es realizar una implementación hardware del protocolo RS232 que se utilizará para desarrollar una placa de desarrollo para sistemas digitales que interaccionan con el PC. Se va a describir, pues, el diseño e implementación una placa de desarrollo controlada por ordenador. El sistema digital implementado es una placa de desarrollo que se comunica con el PC mediante comunicación serie RS232. En este capítulo se describe la constitución global del sistema y se implementa totalmente el protocolo RS232 en lenguaje VHDL. En el anexo se detallan los componentes finales que componen el sistema, se dan los esquemáticos y layout de la placa de circuito impreso y se proporciona un programa simple (en Visual Basic) de comunicación entre el PC y el sistema digital de desarrollo. La construcción que se realiza en este capítulo de la transmisión asíncrona serie se describe de forma top- down. Etapas de desarrollo del sistema digital. Durante el desarrollo de un sistema digital deben sucederse un conjunto de etapas coherentes que permitan la implementación del sistema con el máximo de garantías funcionales. Estas etapas pueden dividirse en: - Especificaciones del sistema. Componentes de que consta el sistema. Descripción de componentes. Requerimientos hardware/software. o El sistema que se va a implementar es una placa de desarrollo basada en un circuito programable de Altera. El sistema se comunica con el PC mediante protocolo RS232, cuya descripción se realiza mediante lenguaje de alto nivel VHDL y se programa dentro del circuito programable de Altera. o El protocolo de comunicación se programará hardware en el circuito EPM7128S de Altera, siendo el componente principal del sistema. Dentro del circuito programable también se programará un divisor de frecuencia que permite elegir la velocidad de comunicación con el PC. La lógica programable restante del circuito puede aprovecharse para ampliaciones de prestaciones de la placa de desarrollo. - Implementación hardware. o El sistema se fabricará sobre placa de circuito impreso. La placa será el soporte físico de toda la circuitería de soporte en la comunicación con el PC, regulará la alimentación, alojará el circuito programable y contendrá un conjunto de conectores y dispositivos para expansión. La frecuencia base de funcionamiento se obtendrá de un oscilador a 1.8432MHz. - Protocolo de comunicación. o El protocolo de comunicación se describirá en lenguaje VHDL. El protocolo implementado es un protocolo RS232 full-dúplex, con bits de start, 8 bits de datos, sin paridad y un bit de stop. o Se programará, utilizando un cable ByteBlaster de Altera sobre el circuito programable. Interfase con el puerto serie. Protocolo RS232 Para detalles más precisos del puerto serie se recomienda consultar el estándar EIA RS232-c. (expandir....) El protocolo de comunicación serie full-dúplex RS232 asíncrona establece una comunicación fácil entre computador y periférico. El protocolo de comunicación RS232 establece el formato de la figura XX de transmisión de datos. Está formado por: Figura 1 - El estado de reposo implica un 1 lógico. - Un bit de start a 0 lógico. - 7 u 8 bits de datos. - Posibilidad de bit de paridad. - Uno, uno y medio o dos bits de stop, a 1 lógico. Durante la transmisión (recepción) la duración de cada bit es de 16 ciclos de reloj base. Por consiguiente, en la realización de los drivers (transmisor y receptor) se tendrá que contemplar la sincronización de la transmisión / recepción de datos con el reloj base. Aunque computador y periférico se programen para transmitir datos a una frecuencia determinada, es difícil asegurar que las frecuencias base de los relojes estén perfectamente sincronizadas. Por ello la emisión y recepción de datos se realiza tomando como base una frecuencia 16 veces superior a la frecuencia de transmisión de datos. Por otra parte, durante la recepción de datos pueden producirse en la transmisión glitches que, debido a interferencias, pueden introducir errores de recepción. Para minimizar este efecto suelen tomarse distintas muestras de la recepción del bit, tomando como resultado bueno, el valor que más se sucede dentro de la recepción del bit. Es por ello, que durante la recepción se deberá considerar circuitería adicional para asegurar un comportamiento más fiable de la transmisión. En nuestro caso se va a utilizar un formato simple de comunicación asíncrona: se elige una comunicación full-dúplex basada en un bit de start, 8 bits de datos sin paridad, y un bit de stop. Aunque la implementación del protocolo en todas sus opciones tan sólo exige un registro de control de operación adicional, para simplicidad, se ha optado por fijar las características de transmisión. En una comunicación simple mediante protocolo RS232 (sin control de recepción) tan sólo son necesarias tres líneas de conexión entre el PC y el periférico: RxD o recepción, TxD o transmisión, y tierra. Puerto serie. Aunque el puerto serie puede tener un tamaño de 25 pines, el formato más utilizado es el de 9 pines. La tabla del pinout para ambos conectores es: Señal Función Pinout 9 pines Pinout 25 pines Transmit Data TxD Salida serie 3 2 Receive Data RxD Entrada serie 2 3 Request to Send RTS Informa al módem que la UART está preparada para intercambiar datos 7 4 Clear to Send CTS Módem preparado par intercambiar datos 8 5 Data Set Ready DSR Inidica a la UART que el módem está preparado para establecer conexión 6 6 Signal Ground GND 5 7 Carrier Detection CD Se activa cuando el módem recibe una portadora del otro módem 1 8 Data Terminal Ready DTR Informa al módem que la UART está 4 20

Upload: andy-flores

Post on 05-Sep-2015

212 views

Category:

Documents


0 download

DESCRIPTION

Comunicación RS232 y aplicaciones al campo de las telecomunicaciones e industria eléctrica. Interfaz de comunicación .

TRANSCRIPT

  • SISTEMA DE PROTOTIPAJE CON COMUNICACIN RS232 CON EL PC

    El objetivo de este captulo es realizar una implementacin hardware del protocolo RS232 que se utilizar para desarrollar una placa de desarrollo para sistemas digitales que interaccionan con el PC. Se va a describir, pues, el diseo e implementacin una placa de desarrollo controlada por ordenador.

    El sistema digital implementado es una placa de desarrollo que se comunica con el PC mediante comunicacin serie RS232. En este captulo se describe la constitucin global del sistema y se implementa totalmente el protocolo RS232 en lenguaje VHDL. En el anexo se detallan los componentes finales que componen el sistema, se dan los esquemticos y layout de la placa de circuito impreso y se proporciona un programa simple (en Visual Basic) de comunicacin entre el PC y el sistema digital de desarrollo.

    La construccin que se realiza en este captulo de la transmisin asncrona serie se describe de forma top-down.

    Etapas de desarrollo del sistema digital. Durante el desarrollo de un sistema digital deben sucederse un conjunto de etapas coherentes que permitan la implementacin del sistema con el mximo de garantas funcionales. Estas etapas pueden dividirse en:

    - Especificaciones del sistema. Componentes de que consta el sistema. Descripcin de componentes. Requerimientos hardware/software.

    o El sistema que se va a implementar es una placa de desarrollo basada en un circuito programable de Altera. El sistema se comunica con el PC mediante protocolo RS232, cuya descripcin se realiza mediante lenguaje de alto nivel VHDL y se programa dentro del circuito programable de Altera.

    o El protocolo de comunicacin se programar hardware en el circuito EPM7128S de Altera, siendo el componente principal del sistema. Dentro del circuito programable tambin se programar un divisor de frecuencia que permite elegir la velocidad de comunicacin con el PC. La lgica programable restante del circuito puede aprovecharse para ampliaciones de prestaciones de la placa de desarrollo.

    - Implementacin hardware.

    o El sistema se fabricar sobre placa de circuito impreso. La placa ser el soporte fsico de toda la circuitera de soporte en la comunicacin con el PC, regular la alimentacin, alojar el circuito programable y contendr un conjunto de conectores y dispositivos para expansin. La frecuencia base de funcionamiento se obtendr de un oscilador a 1.8432MHz.

    - Protocolo de comunicacin.

    o El protocolo de comunicacin se describir en lenguaje VHDL. El protocolo implementado es un protocolo RS232 full-dplex, con bits de start, 8 bits de datos, sin paridad y un bit de stop.

    o Se programar, utilizando un cable ByteBlaster de Altera sobre el circuito programable.

    Interfase con el puerto serie. Protocolo RS232

    Para detalles ms precisos del puerto serie se recomienda consultar el estndar EIA RS232-c. (expandir....)

    El protocolo de comunicacin serie full-dplex RS232 asncrona establece una comunicacin fcil entre computador y perifrico.

    El protocolo de comunicacin RS232 establece el formato de la figura XX de transmisin de datos. Est formado por:

    Figura 1

    - El estado de reposo implica un 1 lgico.

    - Un bit de start a 0 lgico.

    - 7 u 8 bits de datos.

    - Posibilidad de bit de paridad.

    - Uno, uno y medio o dos bits de stop, a 1 lgico.

    Durante la transmisin (recepcin) la duracin de cada bit es de 16 ciclos de reloj base. Por consiguiente, en la realizacin de los drivers (transmisor y receptor) se tendr que contemplar la sincronizacin de la transmisin / recepcin de datos con el reloj base.

    Aunque computador y perifrico se programen para transmitir datos a una frecuencia determinada, es difcil asegurar que las frecuencias base de los relojes estn perfectamente sincronizadas. Por ello la emisin y recepcin de datos se realiza tomando como base una frecuencia 16 veces superior a la frecuencia de transmisin de datos. Por otra parte, durante la recepcin de datos pueden producirse en la transmisin glitches que, debido a interferencias, pueden introducir errores de recepcin. Para minimizar este efecto suelen tomarse distintas muestras de la recepcin del bit, tomando como resultado bueno, el valor que ms se sucede dentro de la recepcin del bit. Es por ello, que durante la recepcin se deber considerar circuitera adicional para asegurar un comportamiento ms fiable de la transmisin.

    En nuestro caso se va a utilizar un formato simple de comunicacin asncrona: se elige una comunicacin full-dplex basada en un bit de start, 8 bits de datos sin paridad, y un bit de stop. Aunque la implementacin del protocolo en todas sus opciones tan slo exige un registro de control de operacin adicional, para simplicidad, se ha optado por fijar las caractersticas de transmisin.

    En una comunicacin simple mediante protocolo RS232 (sin control de recepcin) tan slo son necesarias tres lneas de conexin entre el PC y el perifrico: RxD o recepcin, TxD o transmisin, y tierra.

    Puerto serie.

    Aunque el puerto serie puede tener un tamao de 25 pines, el formato ms utilizado es el de 9 pines. La tabla del pinout para ambos conectores es:

    Seal Funcin Pinout 9 pines Pinout 25 pines Transmit Data TxD Salida serie 3 2 Receive Data RxD Entrada serie 2 3 Request to Send RTS Informa al mdem que la UART est

    preparada para intercambiar datos 7 4

    Clear to Send CTS Mdem preparado par intercambiar datos

    8 5

    Data Set Ready DSR Inidica a la UART que el mdem est preparado para establecer conexin

    6 6

    Signal Ground GND 5 7 Carrier Detection CD Se activa cuando el mdem recibe una

    portadora del otro mdem 1 8

    Data Terminal Ready DTR Informa al mdem que la UART est 4 20

  • preparada para establecer conexin Ring Indicator RI Se activa cuando el mdem detecta una

    seal indicadora de sonido. 9 22

    Tabla 1

    En sistemas de prototipado con el PC o en comunicaciones serie dedicadas con microcontroladores en los que los errores de comunicacin son prcticamente nulos existen dos conexionados tpicos simples que eliminan el protocolo de conexin: el null modem y la conexin loopback.

    Null modem

    Se establece el conexionado de la figura YYY, en el que slo se requieren tres conexiones: TxD, RxD y GND. Las conexiones dan a entender al computador que est conectado con un mdem. La transmisin del PC se recibe en la UART por la seal de entrada. Y viceversa, la transmisin de la UART se enva al bit de recepcin del PC.

    Figura 2. Comunicacin RS232 en modo Null Modem.

    La conexin Null modem es la que se utiliza en el ejemplo. Es una conexin simple que slo requiere las tres conexiones mostradas en la figura.

    Conexin loopback

    La conexin loopback es til cuando se realiza un programa de debugging en el PC. La seal de datos de salida del PC se conecta a la de entrada. De esta forma, toda seal enviada por el PC es recibida en la lnea de entrada como si fuera un eco del mdem.

    Figura 3. Comunicacin RS232 en modo LoopBack.

    Descripcin del protocolo RS232 hardware. El driver RS232 realiza la comunicacin full-dplex. Consta de dos partes totalmente diferenciadas: el circuito transmisor y el circuito receptor. El circuito receptor es el responsable de la recepcin de los datos que se envan desde el computador al perifrico: la lnea TxD de salida del computador se conecta al pin RxD del perifrico. De forma similar, el circuito transmisor es el responsable del envo de datos al computador: la lnea de salida TxD del perifrico se conecta al nodo de entrada RxD del computador.

    La figura TTT muestra el esquema de conexin (a nivel de esquemtico) de los mdulos transmisor (TxD) y receptor (RxD).

    Figura 4. Diagrama de bloques del circuito RS232 programado.

    El conexionado de entrada/salida est formado por las seales:

    - Frecuencia base de trabajo del circuito: ck.

    - Seal de reset del circuito: nReset.

    - Seal de inicio de transmisin: start

    - Dato a transmitir: dTxD[7..0]. Es un byte que el circuito de transmisin serializa.

    - Seal de transmisin: qTxD.

    - Seal de actividad en la transmisin: trans. Su valor se mantiene a uno lgico mientras se est transmitiendo.

    - Seal de recepcin: RxD.

    - Dato transmitido: qRxD[7..0]. Es la paralelizacin del dato transmitido.

    - Seal de actividad en la recepcin: fi. Su valor es uno lgico cuando no se recibe transmisin alguna.

    Los bloques de transmisin/recepcin contienen otras seales internas que pueden observarse, si es necesario, en situaciones de debugging del sistema.

    Debido a la simplicidad del driver de comunicacin RS232, y puesto que no aporta ninguna innovacin al diseo, se ha implementado a nivel esquemtico. El diseo de los mdulos de transmisin y recepcin se facilita utilizando una descripcin mediante lenguaje de alto nivel. La figura AAA muestra la jerarqua de componentes utilizada en la implementacin del driver.

    Figura AAA. Jerarqua del driver RS232.

    Aunque el driver RS232 puede implementarse utilizando nicamente mdulos secuenciales, para mejor claridad se han diseado los drivers de transmisin y recepcin como mquinas algortmicas compuestas por una unidad de proceso y una unidad de control. Las unidades de proceso estn formadas por mdulos secuenciales descritos a nivel comportamental. La unidad de control es la encargada de secuenciar las operaciones en cada driver. Para cada operacin se especificar el valor de cada seal de control de los mdulos secunciales que componen la unidad de proceso.

    Los mdulos que forman el nivel ms bajo estn descritos a nivel comportamental. Las unidades de control (maquinas de estado finito) controlan el funcionamiento del respectivo driver actualizando, a cada ciclo, el

  • registro de control. El ejemplo muestra la potencia de la descripcin VHDL de sistemas digitales complejos por combinacin de las distintas descripciones (comportamental, funcional y estructurada) que permite el lenguaje.

    Para mejorar la respuesta del sistema se ha establecido que la sincronizacin de la unidad de proceso se realice durante el flanco de subida del reloj, mientras que la unidad de control se realiza por flanco de bajada.

    Circuito transmisor. La figura CCC muestra un ejemplo de cmo se debe enviar la trama a travs de la lnea de salida TxD del driver. En el momento en que se recibe la orden de enviar trama, el driver transmisor empieza a serializar el dato previamente cargado en el registro de desplazamiento y al que se le ha aadido el bit de start y el bit de stop. Cada dato se enva cada 16 pulsos de la seal base de reloj.

    Figura CCC. Trama de envo de datos.

    La seal de start indica el inicio de transmisin, cuyo primer paso es la carga en un registro de desplazamiento de 10 bits, del dato (8 bits) ms los bits de inicio de transmisin y de final. En la figura CCC, el dato transmitido es el 6D = 01101101, siendo los ltimos bits en transmitirse el bit ms significativo y el de final de transmisin (que vale 1). El dato transmitido en el ejemplo permite ver adecuadamente los bits de start y de stop. Durante la transmisin, la seal trans se mantiene a 1.

    El driver transmisor (la figura CCC muestra su diagrama de bloques) consta de unidad de proceso y de unidad de control.

    Figura CCC

    El conjunto de seales de que consta la unidad de proceso son:

    - El conjunto de seales clk, nReset, d[7..0], TxD, que se corresponden con el conjunto de seales de entrada/salida globales ya comentadas en el apartado anterior. d[7..0] corresponde al byte a transmitir, mientras que TxD es la seal serie que se transmite.

    - qStat[5..0] es el conjunto de seales de control que gobiernan el funcionamiento de los mdulos secuenciales internos de la unidad de proceso. Estas seales son observables a la salida de la unidad de proceso bajo el nombre de status[5..0].

    - Tambin son observables las seales salida de los contadores de ciclos por bit y nmero de bits transmitidos, denominados qc16[3..0] y qc10[3..0], respectivamente.

    Las seales que configuran la entidad de la unidad de control son:

    - El conjunto de seales, ya comentadas, nclk (gobierno por flanco de bajada del reloj), nReset, start y trans.

    - El array de seales status[5..0], seales de control de la unidad de proceso.

    - Las salidas de los contadores de la unidad de proceso qc16[3..0] y qc10[3..0].

    El conjunto unidad de proceso unidad de control que configura el driver transmisor es autnomo y responsable de la transmisin serie del perifrico. La descripcin VHDL estructurada del driver transmisor es la siguiente (los tipos de datos utilizados se encuentran definidos en el fichero tipoRS232.vhd del directorio de trabajo work):

    --Driver transmisor --Consta de unidad de proceso y unidad de control -- Tipos ... definidos como ... -- bits4: std_logic_vector (3 downto 0); -- byte: std_logic_vector (7 downto 0); -- dato: std_logic_vector (9 downto 0); Library ieee; Library work; Use ieee.std_logic_1164.ALL; Use ieee.std_logic_unsigned.ALL; Use work.tipoRS232.ALL; Entity TxD is port(clk, nReset, start: in std_logic; d: in byte; trans: out std_logic; status: out std_logic_vector(5 downto 0); qc16, qc10: out bits4; TxD: out std_logic); end; Architecture estruct of TxD is component U_PTxD is port(clk, nReset: in std_logic; d: in byte; qStat: in std_logic_vector(5 downto 0); qc16, qc10: out bits4;--Senyal de simulaci TxD: out std_logic); end component; component u_cTxD is port (nclk, nReset, start: in std_logic; qc16, qc10: in bits4; trans: out std_logic; status: out std_logic_vector(5 downto 0)); end component; signal qStat_i: std_logic_vector(5 downto 0); signal qc16_i, qc10_i: bits4; begin UP: U_pTxD port map (clk=>clk, nReset=>nReset, d=>d, qStat=>qStat_i, qc16=>qc16_i, qc10=>qc10_i, TxD=>TxD); UC: u_cTxD port map (nclk=>clk, nReset=>nReset, start=>start, qc16=>qc16_i, qc10=>qc10_i, trans=>trans, status=>qStat_i); status

  • Unidad de proceso.

    En un driver RS232 de transmisin la unidad de proceso es responsable de la sincronizacin global del proceso. Con ello, la unidad de proceso contiene:

    - Un contador que lleva la sincronizacin de los bits: cada 16 ciclos debe salir un bit.

    - Un contador para transmitir el nmero exacto de bits: exactamente 10.

    - Un registro de desplazamiento que, tras cargar el dato a enviar, le acopla los bits de inicio y parada y serializa la transmisin.

    Puesto que la unidad de proceso est formada por componentes secuenciales, la descripcin realizada de la unidad corresponde a una descripcin estructurada.

    --Unidad de proceso Library ieee; Library work; Use ieee.std_logic_1164.ALL; Use ieee.std_logic_unsigned.ALL; Use work.tipoRS232.ALL; Entity U_PTxD is port(clk, nReset: in std_logic; d: in byte; qStat: in std_logic_vector(5 downto 0); qc16, qc10: out bits4; TxD: out std_logic); end; Architecture estruct of U_PTxD is component c16 is port ( ck, nReset, enable, inici: in std_logic; q: out bits4); end component; component sr10ser is port ( ck, nPreset, enable, ld: in std_logic; d: in byte; TxD: out std_logic); end component; signal qc16_i, qc10_i: bits4; begin count16: c16 port map (ck=>clk, nReset=>nReset, enable=>qStat(0), inici=>qStat(1), q=>qc16_i); count10: c16 port map (ck=>clk, nReset=>nReset, enable=>qStat(2), inici=>qStat(3), q=>qc10_i); srSerie: sr10ser port map (ck=>clk, nPreset=>nReset, enable=>qStat(4), ld=>qStat(5), d=>d, TxD=>TxD); --Salidas qc10

  • end process; end;

    La figura hhh muestra una implementacin del contador.

    Figura hhh. Contador de envo de bit.

    Contador de bits.

    En la implementacin del contador de bits se utiliza el mismo contador diseado para el contador de envo de bit. La unidad de control se encarga de controlar el conteo de 0 a 9. De esta forma, al llegar el contador de bits a 10, puesto que se ha enviado el byte mas los bits de start y de stop, la unidad de control da la orden de parada de transmisin.

    Registro de desplazamiento paralelo-serie.

    El registro de desplazamiento paralelo-serie acepta como entrada el byte a transmitir y lo transmite en serie aadiendo los bits de start y de stop. Aparte, tiene una entrada de preset para inicializacin y una seal de enable para realizar un desplazamiento a la derecha cada vez que se transmite un bit. El estado de reposo del registro de desplazamiento es todo unos.

    La descripcin comportamental del registro de desplazamiento paralelo-serie es la siguiente.

    --Registro de desplazamientocon entrada paralelode 8 bits y salida serie con bits de start y de stop Library ieee; Library work; Use ieee.std_logic_1164.ALL; Use work.tipoRS232.ALL; Entity sr10ser is port ( ck, nPreset, enable, ld: in std_logic; d: in byte; TxD: out std_logic); end; architecture bhr of sr10ser is signal estat: dato; begin process (ck, nPreset) begin if nPreset='0' then estat'1'); elsif ck'event and ck='1' then if ld='1' then estat

  • trans: out std_logic; status: out std_logic_vector(5 downto 0)); end; architecture me of u_cTxD is type estados is (reset, espera, load, transm, bit, stop); -- Las constantes siguientes indican el valor que toman las seales de control (en el orden) -- qstat()=(ldSR10, enSR10, iniC10, enC10, iniC16, enC16) constant rst: std_logic_vector(5 downto 0):="000000"; constant spr: std_logic_vector(5 downto 0):="001010"; constant ld: std_logic_vector(5 downto 0):="100000"; constant trnsm: std_logic_vector(5 downto 0):="000001"; constant bt: std_logic_vector(5 downto 0):="010101"; constant stp: std_logic_vector(5 downto 0):="001010"; signal s: estados; begin cambio_estado:process (nReset, nclk) begin if nReset='0' then s
  • - La recepcin de cada bit es de 16 ciclos de reloj base.

    - Almacenar el byte transmitido en el registro de desplazamiento, siempre que el bit de start sea 0 y el de stop sea 1.

    - La deteccin del bit se realiza en los ciclos intermedios del conteo de 16 ciclos de reloj base. Exactamente, se toman tres muestras en los ciclos 5, 6 y 7. El dato a almacenar es la funcin mayora de los tres muestreos. El dato se transfiere al registro de desplazamiento en el ltimo ciclo del contador de muestreo.

    El proceso se realiza en la unidad de proceso mediante los contadores c16 (cuenteo de las 16 muestras por bit) y c10 (cuenteo de 10 bits), el registro de desplazamiento de 10 bits (bits de start, stop y byte enviado), calcular la funcin mayora y guardar el dato recibido en el registro de recepcin.

    El cdigo VHDL estructurado de la unidad de proceso es:

    Library ieee; Library work; Use ieee.std_logic_1164.ALL; Use ieee.std_logic_unsigned.ALL; Use work.tipoRS232.ALL; Entity U_PRxD is port(clk, nReset, RxD: in std_logic; qStat: in std_logic_vector(5 downto 0); qc16, qc10: out bits4; qsr10: out dato; maj: out std_logic; qRxD: out byte); end; Architecture estruct of U_PRxD is component c16 is port ( ck, nReset, enable, inici: in std_logic; q: out bits4); end component; component reg8 is port ( ck, nReset, enable: in std_logic; d: in byte; q: out byte); end component; component sr10 is port ( ck, nPreset, enable, Il: in std_logic; q: out dato); end component; component sr3 is port ( ck, nPreset, enable, Il: in std_logic; maj: out std_logic); end component; signal andSR10, maj_i: std_logic; signal qc16_i, qc10_i: bits4; signal qsr10_i: dato; begin count16: c16 port map (ck=>clk, nReset=>nReset, enable=>qStat(0), inici=> qStat(5), q=>qc16_i); count10: c16 port map (ck=>clk, nReset=>nReset, enable=>qStat(1), inici=> qStat(5), q=>qc10_i); srmaj: sr3 port map (ck=>clk, nPreset=>nReset, enable=>qStat(2), Il=>RxD, maj=>maj_i); srbyte: sr10 port map (ck=>clk, nPreset=>nReset, enable=>qStat(3), Il=>maj_i, q=>qsr10_i);

    andSR10qsr10_i(8 downto 1), ck=>clk, nReset=>nReset, enable=>andSR10, q=>qRxD); --Salidas qc10

  • process (ck, nPreset) begin if nPreset='0' then s'1'); elsif ck'event and ck='1' then if enable='1' then s
  • - ck, o seal de reloj

    - Load o carga paralela. Los datos a cargar en el contador proviene de un bus de datos d.

    - Enable o capacitacin de conteo. El contador slo contar cuando Enable=1.

    - Y reset o preset sncronos o asncronos.

    El contador suele disponer de las salidas:

    - q o estado actual.

    - Y la salida terminal, o terminal counter: TC.

    La tabla 3 de estados corresponde a la de un contador binario ascendente de 2n estados (n flip-flops) con reset asncrono, seal de reloj, carga paralela, enable y con salida terminal.

    Estado actual (q) Prximo estado (Q) Inicializacin No operacin Carga Conteo

    nreset = 0 Enable = Load = 0 Load = 1 y ck Enable = 1 y ck

    - q q q

    0 q d

    q = (q + 1)mod 2n

    Tabla 3. Tabla de estados de un contador binario ascendente.

    La descripcin VHDL del contador es inmediata a partir de su tabla de estados:

    Library ieee; use ieee.std_logic_1164.ALL; use ieee.std_logic_unsigned.ALL; Entity counter is generic(N: integer:=4); port(ck, enable, nreset, load:in std_logic; d: in std_logic_vector(N-1 downto 0); tc:out std_logic; q: out std_logic_vector(N-1 downto 0)); end counter ; Architecture bhr of counter is signal estado:std_logic_vector(N-1 downto 0); begin process(ck, nreset) begin if nreset = '0' then estado '0'); else if ck'event and ck = '1' then if load = '1' then estado

  • end if; end process; sortida: process(estat) begin if (estat=2**N-1) then tc
  • - La frecuencia de transmisin se puede programar mediante el microswitch de 8 microinterruptores.

    - Las entradas/salidas no utilizadas del circuito programable son accesibles al usuario mediante una serie de puertos para desarrollo de aplicaciones.

    - Finalmente la placa contiene dos pulsadores, uno de reset general del sistema y otro para envo hardware de dato hacia el computador, lo que permite comprobar de forma simple el correcto funcionamiento del sistema.

    El pinout establecido para el circuito programable es el siguiente:

    Funcin lgica Identificador Pines Generales Alimentacin

    Tierra comn Reset general

    Reloj base

    VDD (*) GND (*)

    nReset (in) ckin (in)

    3, 13, 26, 38, 43, 53, 66, 78 7, 19, 32, 42, 47, 59, 72, 82

    1 83

    Programacin CPLD

    Conexin Boundary-Scan TDI (in) TMS (in) TCK (in)

    TDO (out)

    14 23 62 71

    Comunicacin RS232

    Recepcin serie Salida paralela (de recepcin)

    Transmisin serie Entrada paralela (a transmitir)

    RxD (in) qRxD[7..0] (out) (*)-leds

    qTxD (out) TxD[7..0] (in) (*)

    5 52, 51, 50, 49, 48, 46, 45 ,44

    4 41, 40, 39, 37, 36, 35, 34, 33

    Control/status de la

    transmisin

    Envo dato hacia el ordenador Reenvo dato recibido al ordenador

    Transmisin dato al ordenador Final de recepcin de dato

    nSend (in) nTransp (in) (switch)

    transm (out) (*) Recepcio (out) (*)

    6 8 12 11

    Frecuencia de trabajo

    Divisor de frecuencia Frecuencia de transmisin

    div[7..0] ck0 (out) (*)

    81, 80, 79, 77, 76, 75, 74, 73 10

    Puertos de expansin

    Pin libre Switch externo sin conexin

    Puerto A

    Puerto C

    pl nc

    A[0..13]

    B[0..12]

    9 15

    70,69,68,67,65,64,63,61, 60,58,57,56,55,54

    16,17,18,20,21,22,24,25, 27,28,29,30,31

    Otras seales Seales propias del circuito OE2n OE1n

    2 84

    (*) Adems de los puertos estas seales contienen pin de conexin externo Tabla CCC: Pinout establecido para el EPM7128S

    La figura ddd muestra el nivel jerrquico superior del circuito programable que contiene el driver transmisor (de acuerdo con la figura 4). El circuito programable, permite introducir, adems del propio driver emisor/transmisor RS232, lgica adicional de control de operacin. En concreto, se ha programado tambin:

    - Un multiplexor controlado por la seal nTransp que permite reenviar el dato recibido (a travs de la lnea RxD) por la lnea TxD hacia el host.

    - El divisor de frecuencias. La entrada de reloj maestra es la seal de reloj suministrada por el circuito oscilador. La frecuencia de trabajo se obtiene a travs de un divisor de frecuencias controlado por la seal div[7..0]. Las frecuencias (admitidas) de trabajo del driver se obtienen mediante divisin por:

    2.4576MHz 1.8432MHz 110 300

    8392

    6144

    600 1200 2400 9600

    14400 19200 28800 38400 56000 128000 256000

    4196 2048 1024 256

    128

    64

    3072 1536 768 192 128 96 64 48

    Tabla www. Frecuencias de transmisin dependiente del oscilador.

    Figura ccc. Jerarqua superior del circuito programable.

    El dispositivo se integra en la placa de desarrollo de acuerdo con la figura vvv. La figura esquematiza los distintos componentes de que consta la placa.

  • Figura ccc. Esquema de la placa de desarrollo.

    La figura ccc muestra la fotografa de la placa de desarrollo final. El apndice A detalla el conexionado de los distintos elementos de que consta la placa, los conectores de expansin, y la lista de componentes que componen la placa de desarrollo. El apndice B contiene el programa Visual Basic que contiene el driver de comunicacin con la placa de desarrollo.

    Figura ccc. Placa de desarrollo.

    La figura ttt muestra un detalle de la pantalla de comunicacin con el sistema de desarrollo.

    Figura ttt. Comunicacin con la placa de desarrollo.

    Los aspectos ms concretos de la placa de desarrollo y de sus componentes se exponen en el apndice A.

    APNDICE A

    HARDWARE DE LA PLACA DE DESARROLLO.

    Composicin de la placa.

    La placa de desarrollo se compone de los siguientes elementos:

    - Driver de comunicacin RS232 implementado en el circuito integrado de Altera EPM7128S.

    - Adecuacin de seales RS232-TTL mediante el circuito integrado MAX232.

    - Regulador de tensin de la placa de 5V. La entrada de alimentacin al circuito se controla mediante un interruptor.

    - Oscilador a 1.8432MHz.

    - Divisor de tensin. Mediante el interruptor Microswitch 1 se controla el divisor de tensin. Para una transmisin a 9600 baudios debe realizarse una divisin por 192. Para frecuencias ms bajas de transmisin debe incorporarse un divisor interno adicional.

    - Para la recepcin y la transmisin el sistema contiene un conjunto de leds y un microswitch, respectivamente, que facilita la comunicacin.

    - Aparte, el sistema dispone de un conjunto de puertos y conexiones de expansin que facilitan la comunicacin con sistemas externos. El circuito programable tambin dispone de cierta capacidad de integracin adicional de hardware para expansin de su capacidad de proceso de la placa de desarrollo.

    - El sistema dispone del conector para programacin mediante Boundary-Scan del EPM7128S.

    - Finalmente, se dispone de las conexiones:

    o ck0: Salida de reloj correspondiente al reloj base de transmisin de datos. o trans: Seal activa al realizar la transmisin de un dato. o fiRec: Seal activa cuando no se recibe transmisin alguna. o nSend: Pulsador de activacin de transmisin. o nTransp: Interruptor de transparencia en la transmisin. Cuando se activa, el dato que se

    enva desde el host se puede retransmitir al host. Puesto que el dato es devuelto al circuito programable, es posible modificar el dato recibido antes de ser retransmitido. Permite, pues, comprobar de forma fcil la comunicacin establecida entre host y perifrico.

    - El interruptor noop no se utiliza. Su uso est a disposicin del usuario. Est conectado a una entrada del circuito programable.

    Esquemtico.

    La figura A.1 muestra el circuito esquemtico de la placa de desarrollo.

  • Figura A.1

    Lista de componentes.

    El sistema est compuesto por los siguientes componentes:

    Componente Cdigo # componentes Circuito programable Altera EPM7128SLC84

    Conector programacin Resistencias pull-up 2 pin setup Altera

    U1 C1 RP3 L1

    1 1 1 1

    Driver RS232 Driver MAX232ACPE Capacidad 100nF Conector DB9

    U2 C2, C3, C4, C5, C7 J1

    1 5 1

    Alimentacin/regulacin Regulador LM7805 Interruptor Conector alimentacin Capacidad 4.7uF tantalio Capacidad 22uF Capacidad 100nF Conector test 2-pin

    U3 U4 J2 C6 C19 C18 C13

    1 1 1 1 1 1 1

    Oscilador Oscilador 1.8432MHz Microswitch divisor frec. Resistencias pull-up 8

    U4 I4 RP2

    1 1 1

    Circuitera configuracin Bi-interruptor Pulsador Capacidad 100nF Resistencias 10Ko Diodos flyback Resistencias 1Ko Diodos led rojo Diodo led verde Diodo led naranja Conector status 4 pin+vdd+gnd

    B1 B2, B3 C8, C9 R1, R2, R3, R4 D1, D6 R5, R6, R7 D5 D4 D3 C1

    1 2 2 4 2 3 1 1 1 1

    Circuitera comunicacin Microswitch 8 interrupt. Resistencias 8 pull-up Conector test 8 pins Barra 8 leds Circuito 8 resistencias

    I1 RP1 C10, C11 I2 I3

    1 1 2 1 1

    Conectores expansin Conector 15 pin +vdd +gnd Conector 13 pin +vdd +gnd

    C12 C13

    1 1

    Placa de circuito impreso.

    Las siguientes figuras muestran las impresiones de la placa de desarrollo:

  • Figura nnn. Impresin cara componentes.

    Figura nnn. Impresin cara soldadura.

    Figura nnn. Impresin de disposicin de componentes.

    APNDICE B

    SOFTWARE DEL SISTEMA DE DESARROLLO

    Driver de comunicacin

    Especificacin del software de comunicacin