El sistema que se presenta a comunicación realiza la transmision serial e inalambrica de datos digitales por medio de la modulación ASK. La frecuencia de portadora es de 433.92MHz, según las hojas de datos del fabricante.
contenido
...
Se pretende transmitir un conteo cero a quince y exhibirlo en un conjunto de leds conectados en el receptor.
El esquema del sistema completo para transmisión unidireccional es:
Este dispositivo no más grande que una uña permite la transmisió de bits alimentados en forma serial. Su alcance es de aproximadamente 100 metros y solamente necesita como componentes externos una fuente de alimentación y una antena. En [Zapata] se describen las siguientes caracerísticas:
Bajo costo
Requiere de una fuente de alimentación de 2.0 a 5.2Vdc
Modulación en Amplitud
Frecuencia de operación: 433.94 (redondeado a 434MHz)
Consumo de corriente de 1.64 a19.4mA
Soporta una tasa de transferencia máxima de 3000bps.
El codificador HT-12E recibe un nibble (4 bits) en sus terminales D0-D3. Entonces se habilita la transmisión serial de los datos mediante el terminal TE. La tasa de transferencia se configura en los terminales OSC1 y OSC2. Por ahora se usa una resistencia de 750K que permite enviar cerca de .
VT: Transmisión válida. Se activa en alto
D0-D3: Pines de salida de dato
A0-A7: Pines de entrada de dirección
OSC1: Pin de entrad del oscilador
OSC2: Pin de salida del oscilador
Se trata de un autómata Moore en el cual cada estado tiene dos salidas:
Se enviará una secuencia de conteo : 0 a 15.
library ieee;
use ieee.std_logic_1164.all;
entity ask01 is
port (
clk : in std_logic;
TE : out std_logic;
word : out std_logic_vector(3 downto 0)
);
end entity ask01;
architecture b_ask01 of ask01 is
signal clkLine: std_logic;
begin
u0: entity work.FrecDivider (b_FrecDivider) port map (clk,clkLine);
u1: entity work.contador (b_contador) port map (clkLine,TE,word);
end architecture b_ask01;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity contador is
port (
clk : in std_logic;
TE : out std_logic;
word : out std_logic_vector (3 downto 0)
);
end entity contador;
architecture b_contador of contador is
type estados is (q0,q1,q2);
signal edo:estados:=q0;
signal Q : std_logic_vector (3 downto 0):="0000";
begin
word <= not Q;
process (clk)
begin
if (clk'event and clk='1') then
case edo is
when q0 => TE<='0';
edo<=q1;
when q1 => TE<='1';
edo<=q2;
when q2 => Q<=Q+1;
TE<='0';
edo<=q1;
end case;
end if;
end process;
end architecture b_contador;
library ieee;
use ieee.std_logic_1164.all;
entity FrecDivider is
port (
clk50MHz : in std_logic;
clk500Hz : inout std_logic
);
end entity FrecDivider;
architecture b_FrecDivider of FrecDivider is
begin
process (clk50MHz)
variable contador : integer:=0;
begin
if (clk50MHz'event and clk50MHz='1') then
if contador<5000000 then
contador := contador + 1;
else
contador:=0;
clk500Hz<= not clk500Hz;
end if;
end if;
end process;
end architecture b_FrecDivider;
Omar Enrique Barra Zapata
Franklin Barra Zapata
MIcrocontroladores PIC con programación PBP
Alfaomega; Ra-Ma
2011
México
Primera edición
Cap. 11