Tải bản đầy đủ (.pdf) (9 trang)

Thiết kế hệ thống xử lý ảnh video trên FPGA (CycloneII), chương 25 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (74.43 KB, 9 trang )

Chương 25: Chöông trình lieân keát
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164 .ALL;
USE IEEE.STD_LOGIC_ARITH .ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
LIBRARY lpm;
USE lpm.lpm_components.ALL;
PACKAGE
up1core IS
COMPONENT
dec_7seg
PORT(hex_digit: IN STD_LOGIC_VECTOR(3
DOWNTO 0
);
segment_a, segment_b, segment_c, segment_d,
segment_e, segment_f, segment_g :
OUT
STD_LOGIC);
END COMPONENT;
COMPONENT
vga_sync
PORT(clock_25Mhz, red, green, blue : IN STD_LOGIC;
red_out, green_out, blue_out :
OUT
STD_LOGIC;
horiz_sync_out, vert_sync_out : OUT
STD_LOGIC;
pixel_row, pixel_column :OUT
STD_LOGIC_VECTOR(9 DOWNTO 0));
END COMPONENT;
COMPONENT


mouse
PORT( clock_25Mhz, reset : IN STD_LOGIC;
mouse_data :
INOUT STD_LOGIC;
mouse_clk : INOUT STD_LOGIC;
left_button, right_button : OUT STD_LOGIC;
mouse_cursor_row :OUT STD_LOGIC_VECTOR
( 9 DOWNTO 0);

mouse_cursor_column :
OUT STD_LOGIC_VECTOR
(9 DOWNTO 0));

END COMPONENT;
END
up1core;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_SIGNED.ALL;
LIBRARY work;
USE work.up1core.ALL;
ENTITY
vmouse IS
Generic(ADDR_WIDTH: integer := 12; DATA_WIDTH: integer
:= 1);
PORT(SIGNAL Clock,reset : IN
STD_LOGIC;
SIGNAL LSB_a, LSB_b, LSB_c, LSB_d : OUT
STD_LOGIC;

SIGNAL LSB_e, LSB_f, LSB_g, LSB_dp : OUT
STD_LOGIC;
SIGNAL MSB_a, MSB_b, MSB_c, MSB_d :
OUT STD_LOGIC;
SIGNAL MSB_e, MSB_f, MSB_g, MSB_dp: OUT
STD_LOGIC;

SIGNAL Red,Green,Blue :
OUT
STD_LOGIC;
SIGNAL Horiz_sync,Vert_sync : OUT
STD_LOGIC;
signal mouse_data : INOUT
STD_LOGIC;
signal mouse_clk : INOUT
STD_LOGIC);
END
vmouse;
ARCHITECTURE behavior OF vmouse IS
SIGNAL
Red_Data, Green_Data, Blue_Data, vert_sync_int,
color_on, Direction :
STD_LOGIC;
SIGNAL
Size : STD_LOGIC_VECTOR (9
DOWNTO 0);

SIGNAL mouse_cursor_row, mouse_cursor_column:
STD_LOGIC_VECTOR (9 DOWNTO 0);
SIGNAL

pixel_row, pixel_column :
STD_LOGIC_VECTOR (9 DOWNTO 0);
SIGNAL
LSB,MSB :
STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL
LSB_7SEG,MSB_7SEG :STD_LOGIC_VECTOR
(6 DOWNTO 0);
SIGNAL
left_button, right_button :
STD_LOGIC;
BEGIN
SYNC: vga_sync
PORT MAP(clock_25Mhz => clock,
red => red_data, green => green_data, blue =>
blue_data,
red_out => red, green_out => green, blue_out =>
blue,
horiz_sync_out => horiz_sync, vert_sync_out =>
vert_sync,
pixel_row => pixel_row, pixel_column =>
pixel_column);
MSD: dec_7seg
PORT MAP(hex_digit => MSB,segment_a =>
MSB_a,
segment_b => MSB_b, segment_c => MSB_c,
segment_d => MSB_d,segment_e => MSB_e,
segment_f => MSB_f,
segment_g => MSB_g );
LSD: dec_7seg

PORT MAP(hex_digit => LSB,segment_a =>
LSB_a,
segment_b => LSB_b, segment_c => LSB_c,
segment_d => LSB_d,segment_e => LSB_e,
segment_f => LSB_f,
segment_g => LSB_g );
mous:mouse
PORT MAP(clock_25Mhz=>clock, reset=> reset,

mouse_data=>mouse_data,mouse_clk=>mouse_clk,
left_button=>left_button, right_button=>right_button,
mouse_cursor_row=>mouse_cursor_row,
mouse_cursor_column=>mouse_cursor_column );
Size <= CONV_STD_LOGIC_VECTOR(8,10);
Red_Data <= '0';
Green_Data <= color_on;
Blue_Data <= color_on;
LSB_dp <= left_button;
MSB_dp <= right_button;
MSB <= mouse_cursor_row(7 DOWNTO 4);
LSB <= mouse_cursor_column(7 DOWNTO 4);
Chương trình chọn tín hiệu RGB hiển thò
RGB_Display: Process (mouse_cursor_row,
mouse_cursor_column, pixel_column, pixel_row,size)
BEGIN
IF
( '0'&mouse_cursor_column <= pixel_column +size)
AND
(mouse_cursor_column+size >= '0'&pixel_column)
AND

( '0'&mouse_cursor_row <= pixel_row +size) AND
(mouse_cursor_row +size >= '0'& pixel_row ) THEN
color_on <= '1';
ELSE
color_on <= '0';
END IF;
END process RGB_Display;
END behavior;
Sau đó lưu lại và biên dòch. Rồi chọn linh kiện và gán chân như
sau :
MSB_a : 6
MSB_b : 7
MSB_c : 8
MSB_d : 9
MSB_e : 11
MSB_f : 12
MSB_g : 13
MSB_dp : 14
LSB_a : 17
LSB_b : 18
LSB_c : 19
LSB_d : 20
LSB_e : 21
LSB_f : 23
LSB_g : 24
LSB_dp : 25
mouse_clk : 30
mouse_data : 31
reset : 41
Clock : 91

Red : 236
Green : 237
Blue : 238
Vert_sync : 239
Horiz_sync : 240
Lưu và biên dòch lại chương trình rồi nạp lên KIT. Tuy nhiên
kết quả chưa hoàn chỉnh, con trỏ vẫn chưa thể di chuyển hết
toàn bộ màn hình. Do kich thước của ROM và của con trỏ chuột
không phù hợp với kích thước của màn hình.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết luận
Qua quá trình tìm hiểu và thực hiện đề tài cùng với các kiến
thức mà thầy cô truyền đạt, chúng em nhận thấy rằng FPGAs
XC4005XL hãng Xilinx và các chip MAX7000S, chip FLEX10K
hãng Altera có khả năng lập trình rất linh hoạt. Ta có thể lập
trình để thực hiện các mô hình điều khiển từ đơn giản đến phức
tạp như điều khiển tốc độ của động cơ, điều khiển nhiệt độ
trong lò vi ba sóng, máy giặt, tủ lạnh,…
Trong đề tài này, chúng em đã thực hiện được một số ứng
dụng trên KIT UP2 hãng Altera như chương trình dòch led từ
phải sang trái và ngược lại, chương trình đếm và hiển thò trên
LED 7 đoạn, mạch hiển thò nhiệt độ điều khiển động cơ bên
ngoài để giao tiếp với KIT UP2, các chương trình giao tiếp với
VGA, Keyboard, mouse.
Trong quá trình thực hiện đề tài, chúng em gặp khó khăn về
phần mềm của XILINX. Vì khi biên dòch chương trình thì linh
kiện sẽ được gán chân một cách ngẫu nhiên, không phù hợp với
thiết kế nên ta phải gán chân lại cho linh kiện, nhưng phần mềm
XILINX lại không hỗ trợ cho phần này nên chúng em phải

chuyển sang tìm hiểu và thực hiện trên KIT UP2 của Altera.
Tuy nhiên do thời gian và kiến thức có hạn nên chúng em
chưa thể thực hiện được những chương trình phức tạp hơn. Kính
mong sự đóng góp ý kiến của thầy cô và các bạn để đề tài được
hoàn thiện hơn.
Hướng phát triển:
Nếu như áp dụng điều khiển này bằng logic mờ, ta có thể
điều chỉnh tốc độ quay tùy ý theo tín hiệu số thông qua mạch
điều biến xung. Ứng với nhiệt độ trong khoảng yêu cầu cùng với
tốc độ quạt hồi tiếp về mà ta dùng các luật hợp thành của logic
mờ để đưa ra một tín hiệu điều khiển. Từ tín hiệu đó, thông qua
mạch chuyển đổi A/D để chuyển đổi tín hiệu analog đó thành
số. Từ tín hiệu số ta qua mạch điều biến xung để điều khiển tốc
độ quạt nhanh chậm theo tín hiệu.
Mô hình điều khiển tốc độ quạt tự động theo nhiệt độ môi
trường
TÀI LIỆU THAM KHẢO
1. www.Xilinx.com
2. www.Altera.com
3. Rapid Prototyping Pf Digital Systems
James O.Hamblen
Michael D. Furman

×