Sunteți pe pagina 1din 19

SEP

SNETS

DGEST

INSTITUTO TECNOLGICO DE TOLUCA

PROGRAMACIN ESTRUCTURADA

TEMA: PROYECTO FINAL PLCs ESTACIONAMIENTO (CONTADOR, LENGUAJE C PICS)

REALIZACIN DE UN ALU DE MATRCULA 74F181 (LENGUAJE VHDL TARJETA FPGA) CADETRATICO: CARRILLO LARA MARELIS ALUMNOS: CURIEL LUNA LUIS OMAR 11280318 LARA ESCALONA MARTIN 11281258

MONDRAGN ZARZA MELISSA RAQUEL 12280495 NPOLES ROBLES DIANA JANETH 12280407

NOVIEMBRE DE 2013

INTRODUCCIN:
En la actualidad el uso de dispositivos digitales en contra de los analgicos ha sido progresivamente rpido, debido a las ventajas y desventajas que encontramos entre uno y otro. Un sistema digital resulta como la combinacin de dispositivos (elctricos, mecnicos, fotoelctricos, etc.) que se encentran ensamblados a fin de desempear funciones, los sistemas digitales ms comunes con los que tenemos contacto son la computadora, calculadoras, mquinas controladas en forma digital y la variacin con las que cuentan es en forma de etapas discretas. Un sistema analgico la medicin de cantidades son de forma variable, ejemplo claro son los sistemas de radiodifusin y transmisin de datos, donde sus cantidades cambian gradualmente respecto a un intervalo continuo de valores. Dada la clasificacin anterior podemos entender un poco ms acerca de cmo se compone un sistema analgico y digital, en cada uno de ellos se realizan la introduccin de la informacin misma que por medio de circuitos lgicos integrados (solo para sistemas digitales) esta informacin es procesada para as dar una respuesta traducida a nuestro mundo. Es posible describir el comportamiento de un sistema digital al utilizar solo frases descriptivas que estn dentro de un contexto de un leguaje. Este concepto de ha formalizado en el desarrollo de lenguajes de descripcin de hardware (HDL). Un HDL permitir definir las operaciones lgicas con proposiciones que cumplen un conjunto predefinido de reglas y sintaxis. Este concepto de lenguaje es el mismo que se usa para lenguaje de programacin de alto nivel, como Java, C++, Visual-Basic, entre otros, pero con la gran diferencia que se aplica a diseo y anlisis de sistemas digitales. De igual manera un lenguaje de programacin de alto nivel puede ayudar a resolver diversos problemas de la vida cotidiana, es la parte fundamental donde se notan las diferencias entre un lenguaje de alto nivel y otro de descripcin de hardware. Existen dispositivos lgicos los cuales se pueden controlar por medio de un lenguaje de alto y bajo nivel, ejemplo de ello puede ser un PIC, ARDUINO, etc., pero nos damos cuenta que todo recae en el diseo o rediseo, el procesamiento en la utilizacin del mismo.

RESUMEN
El presente trabajo consta de la utilizacin de la sintaxis del lenguaje C en PLCs (Dispositivos Lgicos Controlables), donde se realizara la programacin de estos dispositivos mencionados anteriormente. ESTACIONAMIENTO (CONTADOR, LENGUAJE C PICS)

DESCRIPCIN: El proyecto numero uno consta bsicamente de un contador (0-99) programado con un PIC (en lenguaje C), que permiten visualizar la cantidad de automviles que ingresan y salen en el prototipo del estacionamiento. FUNCIONAMIENTO: El PIC est conectado a dos display de 7 segmentos con los cuales visualizamos la cantidad de automviles que acceden y salen del prototipo, esta funcin es realizada gracias a los sensores que se colocaron en la entrada y salida para la deteccin de los mismos en forma automtica, y as mandar seales al PIC, para realizar el proceso correspondiente.
ANALOGA:

Cabe destacar que se trat de simular un prototipo de automatizacin y control de vehculos en un estacionamiento que podemos encontrar en grandes centros comerciales, donde nos da acceso y con el sistema digital completo nos contiene las estadsticas sin la necesidad de colocar a una persona que manipule de manera manual el sistema. En este proyecto se puede complementar con ms funciones automatizadas (Mostrar tarifa total, numero de automvil, si es cliente frecuente, etc.) y todo ello programando los PLCs y utilizando los elementos necesarios.

REALIZACIN DE UN ALU DE MATRCULA 74F181 (LENGUAJE VHDL TARJETA FPGA) DESCRIPCIN: Se requiere disear una Unidad Lgica Aritmtica por medio de lenguaje VHDL que realice funciones lgicas y aritmticas, las cuales pueda ser comprobado su funcionamiento en una tarjeta FPGA (tarjetas de prueba y experimentacin).

FUNCIONAMIENTO:
Antes de iniciar a describir el funcionamiento de este proyecto se requiere definir un concepto ALU: Las Unidades Lgicas Aritmticas son circuitos lgicos o secuenciales que

realizan diversas operaciones sobre los datos, segn lo indicado por la unidad de control. Cada ALU se puede caracterizar por el tipo de datos que pueden realizar, las ms bsicas son: Aritmticas: Sumar, restar, multiplicacin y divisin. Lgicas: AND, OR, OR exclusivo, complementos, entre otras. El proyecto consta de la realizacin de un cdigo VHDL donde se describe operaciones antes mencionadas acorde a la matrcula 74F181 de un ALU de 4 bits de tamao. Este cdigo se realizara y compilara en el software QUARTUS II 32-bits para que al momento de la accin se tenga conectada una tarjeta FPGA y realice lo que el cdigo indica, sin la necesidad de armar fsicamente para demostrar el funcionamiento de esta unidad. ANALOGA: Gracias a la innovacin de software tan poderosos se pueden describir toda la red de un sistema digital sin la difcil tarea de ser armado fsicamente, esto es muy importante ya que se pueden crear y poner en prctica proyectos muy ambiciosos donde se describen sistemas tas complejos como uno desee, VHDL est orientado a el trabajo en equipo gracias a sus herramientas permite que cada programador disee su circuito de la manera ms conveniente y al final de todo el proceso uno solo sea el encargado de realizar interconexiones para el adecuado funcionamiento.

INTRODUCCIN AL LENGUAJE VHDL:

VHDL : Very High Speed Integrated Circuits Hardware Description Language QU ES? Es una herramienta formal para describir el comportamiento y la estructura de un sistema usando un lenguaje textual. QU PERMITE? Describir las operaciones de un sistema empleando las siguientes posibilidades: Indicar QUE debe hacer el sistema modelando por comportamiento Indicar COMO debe funcionar utilizando algoritmos. Indicar CON QUE hacerlo empleando estructuras flujo de datos. HISTORIA DE VHDL: VHDL fue diseado originariamente por el Departamento de Defensa de los Estados Unidos de Norteamrica como una forma de documentar las diversas especificaciones y el comportamiento de dispositivos ASIC de diversos fabricantes que incluan en sus equipos. Desde su implementacin en el ao 1981, VHDL fue estandarizado por primera vez por la IEEE en 1987 y se realiz una importante actualizacin en 1993 (con posteriores revisiones en 1994, 2000, 2002 y 2007). Si bien su uso se aplica fundamentalmente para la descripcin de sistemas digitales. Con la posterior posibilidad de simular dichos dispositivos, comenzaron a crearse compiladores que pudieran llevar a cabo esta tarea leyendo los archivos VHDL. El paso siguiente fue el de desarrollar software capaz de sintetizar las descripciones generadas y obtener una salida apta para su posterior implementacin ya sea en ASIC como en dispositivos CPLD y FPGA. CARACTERISTICAS Y VENTAJAS DE VHDL: Sirve como herramienta de diseo lgico, posibilitando la documentacin de los proyectos y su reutilizacin. Sirve como herramienta de especificacin de proyectos. Permite generar proyectos con estructura del tipo jerrquica. Posibilita modernizar el concepto de tiempo.

Permite describir mdulos con acciones que sern evaluadas luego en forma secuencial.

ESTRUCTURAS DE VHDL:

ENTITY: Define la vista externa de un modelo. ARCHITECTURE: Define una posible funcionalidad de un modelo. LIBRARY: Contiene un listado de todas las libreras utilizadas en el diseo. PACKAGE: Es una forma para almacenar y usar informacin til que describe a un modelo (relacionada con Library).

LIBRERIAS (LIBRARY): Una librera es una coleccin de piezas de cdigo usualmente empleadas. Esto permite poder reusar esas piezas o compartirlas con otros diseos. Sintxis: LIBRARY <nombre de la librera>; USE <nombre de un package>; Ejemplo: USE ieee.std_logic_signed; >>> Permite operaciones con signo con datos tipo STD_LOGIC_VECTOR. USE ieee.std_logic_arith; >>> Especifica tipos de datos con y sin signo, operaciones aritmticas y de comparacin numrica y funciones para conversin de datos.

ENTIDAD (ENTITY) Una entidad VHDL especifica el nombre de la entidad, sus puertos y toda aquella informacin relacionada con ella. Ejemplo: ENTITY mux IS port( A:in std_logic_vector(3 downto 0); S:in std_logic_vector(1 downto 0); Y:out std_logic_vector(3 downto 0));

end entity mux; En este ejemplo Entity describe la interface con el mundo externo de un multiplexor, el nmero, tipos puertos empleados. y direccin de los mismos (entrada o salida). ARQUITECTURA (ARCHITECTURE) La arquitectura en VHDL describe la funcionalidad de la entidad informacin que modela el comportamiento de la misma. Ejemplo (asociado al ejemplo anterior): ARCHITECTURE uno of mux IS BEGIN process (A,S) begin case S is when "00" => Y<=A(0) & "000"; when "01" => Y<=A(1) & "000"; when "10"=> Y<=A(2) & "000"; when others=> Y<=A(3) & "000"; end case; end process;
PUERTOS EN VHDL. Los puertos de una entidad se declaran con la palabra PORT seguida de una lista formal de seales. Cada seal grupo de seales de igual tipo se define con su identificador, su modo de operacin (in, out, inout, buffer). Un puerto in puede ser ledo pero no modificado. Un puerto out puede ser modificado pero no ledo. Un puerto buffer es una salida siempre activa.

y contiene la

PROYECTO NO.1 ESTACIONAMIENTO (CONTADOR, LENGUAJE C PICS) Cdigo lenguaje C PIC: Contador 0-99 #include <16f877a.h> #fuses XT,NOWDT,NOPROTECT,PUT,NOLVP #use delay (clock=4000000) #byte portb=0x06 #byte porta=0x05 #byte portc=0x07 #byte portd=0x08 #byte porte=0x09

int bcd[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x38,0x00,0x18};

void main() { set_tris_a(0x00); set_tris_b(0x00); set_tris_c(0x00); set_tris_d(0x00); set_tris_e(0xFF); porta=0; portb=0; portc=0; portd=0; porte=0; portb=0x40; portc=0x40;

int i=0,d=0; do{ //Incrementar if(input(PIN_E0)==1){ delay_ms(50); i=i+1; if(i>9){ i=0; d=d+1; } while(d==10&&i==0){ i=d=9; if(input(PIN_E1)==1){ delay_ms(50); i=i-1; output_b(bcd[i]); delay_ms(500); } } output_c(bcd[d]); delay_ms(10); output_b(bcd[i]); delay_ms(500); } //Decrementar if(input(PIN_E1)==1){ delay_ms(50);

i=i-1; if(i==-1){ i=d=0; } output_c(bcd[d]); delay_ms(10); output_b(bcd[i]); delay_ms(500); while(i==0&&d==0){ i=d=0; if(input(PIN_E0)==1){ delay_ms(50); i=i+1; output_b(bcd[i]); delay_ms(500); } } if(i<=0){ i=10; if(d<=0){ d=10; } d=d-1; } } }while(TRUE); }

Lista de materiales y elementos utilizados: 1 protoboard 1 pic 16F877A 3 push botn 5 resistencias de 330 2 capacitores cermicos de 220 pf. 1 crsital de cuarzo de 4 Mhz. 1 metro de cable. 4 sensores de ranura
7 8

2 displays de 7 segmentos anodo comn

Diseo de una maqueta (prototipo del estacionamiento). 1 fuente de alimentacin 5V c.c. pinzas de corte y sostn.

PROYECTO NO. 2 REALIZACIN DE UN ALU DE MATRCULA 74F181 (LENGUAJE VHDL TARJETA FPGA).
Cdigo VHDL ALU 4 bits. library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.numeric_std.all;

entity alu is port ( cn: in std_logic; m: in std_logic; a, b: in std_logic_vector (1 downto 0); s: in std_logic_vector (2 downto 0); f: out std_logic_vector (2 downto 0));

attribute chip_pin: string; attribute chip_pin of cn: signal is "L21"; attribute chip_pin of m: signal is "M22"; attribute chip_pin of a: signal is "L2, M1"; attribute chip_pin of b: signal is "M2, U11"; attribute chip_pin of s: signal is "U12,W12,V12"; attribute chip_pin of f: signal is "R17, R18, U18";

end entity alu;

architecture unica of alu is begin

process (a,b,s,m,cn) begin if m='1' then case s is when "000" => f<= '0' & not a; when "001" => f<= '0' & not (a or b);

when "010" => f <= '0' & not(a) and b; when "011" => f<= "000"; when "100" => f<= '0' & not (a and b); when "101" => f<= '0' & not b;

when "110" => f<= '0' & a xor b; when "111" => f<= '0' & a and (not (b)); when others => f<= "000"; end case;

else case s is when "000" => f<= '0' & a; when "001" => f<= '0' & (a + b); when "010" => f <= '0' & a + (not b); when "011" => f<= "111"; when "100" => f<= '0' & a + (a and (not b)) when "101" => f<= '0' & (a+b) + a and (not b); when "110" => f<= '0' & a-b-1; when "111" => f<= '0' & a and (not b); when others => f<= "000"; end case; ;

end if; end process; end architecture unica;

Tabla de verdad de la ALU: Combinacin Binaria 000 001 010 011 100 101 110 111 Operaciones Logias Not A (Not (A Or B)) (Not (A) And (B)) 000 (Not(A And B)) Not (B) (A Xor B) (A And (Not B)) Operaciones Aritmticas A A+B (A+(Not B)) 111 (A+ (A And Not B)) ((A+B) + A And (Not B)) A-B-1 (A And (Not B))

LISTA DE MATERIALES Y ELEMENTOS UTILIZADOS:


1 data sheet del dispositivo 74F181. Tarjeta FPGA Altera Cyclone II EP2C20F484C7N. Software QUARTUS II 32 bit
10

DIAGRAMA DEL CIRCUITO LGICO: ALU 4 BITS

NOTA: Este es el circuito fsico que se tendra que realizar en caso de no realizarlo en cdigo VHDL, vemos que la programacin es ms sencilla de realizar.

ANLISIS Y CONCLUSIONES: Con la realizacin de este proyecto se logr entender la aplicacin del lenguaje de programacin C, tambin con la ayuda de conocimientos previos del rea de la electrnica; una prueba contundente es la utilizacin de PIC que permite establecer una significativa conexin con diversos dispositivos electrnicos programables. Observamos la funcionalidad del lenguaje C, al aplicarlo en el prototipo del estacionamiento lo cual permiti el tener un conteo de autos que ingresaban y salan. El conteo de los autos fue por medio del programa establecido en C y se compilo en el PIC para despus darle una ejecucin en un circuito que se dise y se simulo en el software Proteus. Dicho circuito se le conectaron los displays para traducir a nuestro lenguaje los autos que fueron necesarios, la cuenta se realizaba de manera automtica por medio de sensores de ranura que se colocaron en la entrada y salida del mismo prototipo. El uso de los microcontroladores (PICs) en la actualidad es una parte fundamental de la mayora de los aparatos electrnicos en el hogar, celulares, lneas de produccin en industrias, sistemas de telecomunicaciones, computadoras personales, etc..

En lo respeta el proyecto realizado en VHDL llevo el mismo enfoque de tener en cuenta la aplicacin del lenguaje C (sintaxis). El diseo de la ALU es interesante ya que son partes principales de la arquitectura de una computadora, sin este tipo de sistemas digitales no fuese posible el desarrollo de sistemas digitales electrnicos que hoy en da manejamos y manipulamos. VHDL es una puerta al mundo de diseo de sistema digitales electrnicos tan complejos como la imaginacin y el conocimiento nos permitan disear, por eso en lo personal yo lo considero como una herramienta poderosa para su uso futuro, adems que permite el trabajo en equipo.

REFERENCIAS CONSULTADAS: [1] Vctor P. Nelson, Anlisis y Diseo de Circuitos Lgicos Digitales, Prentice Hall, 1996. [2] John P. Vyemura, Diseo de Sistemas Digitales un enfoque integrado, Ciencias Thomson, 2000. [3] Norma Balabanian, Principios de Diseo Lgico Digital, Primera Edicin Mxico, 2002, CECSA. [4] Stephen Brown, Fundamentos de lgica digital con diseo VHDL , Segunda Edicin 2006, McGraw-Hill. [5] David G. Maxinez, Vhdl el Arte de Programas Sistemas Digitales, Primera Edicin Mxico, 2002, CECSA. [6] Jose M. Angulo Usategid, Microcontroladores PIC Diseo practico de aplicaciones, Segunda Edicin 2000, McGraw-Hill. Data sheet sensores de ranura (proyecto 1) [7] http://pdf.datasheetcatalog.net/datasheets2/25/251368_1.pdf Data sheet PIC 16F877. [8] http://pdf1.alldatasheet.com/datasheet-pdf/view/75016/MICROCHIP/PIC16F877.html [8] http://pdfdata.datasheetsite.com/pdf1/Microchip/PIC16LF877AT-I-PT.pdf Data sheet ALU 4 bits matricula 74F184. [9] http://www.me.iitb.ac.in/~shashisn/ME364/datasheets/74F181_4bit_ALU.pdf Pgina de descarga del software Quartus II 32-bit-I [10] www.altera.com/download/software/quartus-ii-se www.altera.com/download/software/quartus-ii-we

S-ar putea să vă placă și