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

Chia sẻ: Tran Van Duong | Ngày: | Loại File: PDF | Số trang:10

0
76
lượt xem
24
download

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

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Những mã quét được gởi một cách nối tiếp sử dụng 11 bit trên đường truyền dữ liệu chính xác. Ngay cả khi bàn phím có hay không, máy tính cũng cần gởi dữ liệu , đường dữ liệu và đường xung thì cao. Mã quét gồm 11 bit: Một start bit (‘0’) 8 bit dữ liệu chứa đựng mã quét phím theo thứ tự từ thấp đến cao Bit lẻ ngang hàng như là 8 bit dữ liệu cộng với bit ngang hàng thì được một con số lẻ Một stop bit (‘1’), thông thường ngay cả những vấn...

Chủ đề:
Lưu

Nội dung Text: Thiết kế hệ thống xử lý ảnh video trên FPGA (CycloneII), chương 22

  1. Chöông trình keát hôïp vôùi Chương 22: VGA ñeå xuaát kí töï ra maøn hình *Moâ hình: *Chöông trình: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY kitu IS PORT(clock_25Mhz : IN STD_LOGIC; red_out, green_out, blue_out, horiz_sync_out, vert_sync_out :OUT STD_LOGIC); END kitu; ARCHITECTURE a OF kitu IS SIGNAL rom_mux_output,green,blue : STD_LOGIC;
  2. SIGNAL pixel_row,pixel_column : STD_LOGIC_VECTOR (9 DOWNTO 0); COMPONENT VGA_SYNC PORT (red_out, green_out, blue_out,horiz_sync_out, vert_sync_out :OUT STD_LOGIC; pixel_row, pixel_column : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)); END COMPONENT; COMPONENT Char_ROM PORT(character_address : IN STD_LOGIC_VECTOR(5 DOWNTO 0); font_row, font_col : IN STD_LOGIC_VECTOR(2 DOWNTO 0); rom_mux_output : OUT STD_LOGIC); END COMPONENT; BEGIN x1:VGA_SYNC PORT MAP (clock_25Mhz=>clock_25Mhz, green=>rom_mux_output,blue=>rom_mux_output, red_out=>red_out,green_out=>green_out, blue_out=>blue_out,vert_sync_out=>vert_sync_out, horiz_sync_out=>horiz_sync_out,pixel_column=>pixel_colu mn, pixel_row=>pixel_row);
  3. x2: char_rom PORT MAP (character_address=>pixel_row (9 DOWNTO 4), font_row=>pixel_row(3 DOWNTO 1), font_col=>pixel_column(3 DOWNTO 1), rom_mux_output=>rom_mux_output); END; Ta seõ gaùn chaân: + Red_out vôùi chaân 236. + Green_out vôùi chaân 237 + Blue_out vôùi chaân 238 + Vert_sync_out vôùi chaân 239 + Horiz_sync_out vôùi chaân 240. + Red gaùn vôùi switch1 ôû chaân 41, + Green vôùi switch1 ôû chaân 40. + Blue vôùi switch1 ôû chaân 39 Sau ñoù löu vaø bieân dòch laïi. Roài naïp file .sof leân board UP2. V. Giao tieáp vôùi keyboard 1. Caùch hoaït ñoäng Baøn phím noái keát vôùi maïch UP2 qua coång PS/2, theo cheá ñoä handshaking. Nhöõng maõ queùt ñöôïc gôûi moät caùch noái tieáp söû duïng 11 bit treân ñöôøng truyeàn döõ lieäu chính xaùc. Ngay caû khi baøn phím coù hay khoâng, maùy tính cuõng caàn gôûi döõ lieäu , ñöôøng döõ lieäu vaø ñöôøng xung thì cao. Maõ queùt goàm 11 bit: 1: Moät start bit (‘0’) 2: 8 bit döõ lieäu chöùa ñöïng maõ queùt phím theo thöù töï töø thaáp ñeán cao
  4. 3: Bit leû ngang haøng nhö laø 8 bit döõ lieäu coäng vôùi bit ngang haøng thì ñöôïc moät con soá leû 4: Moät stop bit (‘1’), thoâng thöôøng ngay caû nhöõng vaán ñeà dieãn ra trong suoát quaù trình chuyeån dòch ñöôïc yeâu caàu töø baøn phím . Khi hoaït ñoäng baøn phím caáp ñöôøng xung xuoáng thaáp trong khoaûng 35ms vaø baøn phím seõ ñöa xung ra 10 bit côõ 70ms. Baøn phím ñieàu khieån caû ñöôøng döõ lieäu vaø xung. Khi baét ñaàu truyeàn, start bit seõ ñöôïc truyeàn, maïch nhaän tín hieäu xung vaø nhaän döõ lieäu vaøo noái tieáp. Khi hoaøn taát quaù trình truyeàn maø baøn phím khoâng göûi tieáp thì ñöôøng xung ñöôïc traû laïi traïng thaùi cao. 2. Chöông trình xuaát maõ scancode cuûa caùc phím khi ñöôïc nhaán ra led Key Mak Brea Key# Mak Brea Key# Mak Brea # e k e k e k Code Code Code Code Code Code 1 0E F0 31 1C F0 90 77 F0 0E 1C 77
  5. 2 16 F0 32 1B F0 91 6C F0 16 1B 6C 3 1E F0 33 23 F0 92 6B F0 1E 23 6B 4 26 F0 34 2B F0 93 69 F0 26 2B 69 5 25 F0 35 34 F0 96 75 F0 25 34 75 6 2E F0 36 33 F0 97 73 F0 2E 33 73 7 36 F0 37 3B F0 98 72 F0 36 3B 72 8 3D F0 38 42 F0 99 70 F0 3D 42 70 9 3E F0 39 4B F0 100 7C F0 3E 4B 7C 10 46 F0 40 4C F0 101 7D F0 46 4C 7D 11 45 F0 41 52 F0 102 74 F0 45 52 74 12 4E F0 43 5A F0 103 7A F0 4E 5A 7A 13 55 F0 44 12 F0 104 71 F0 55 12 71 15 66 F0 46 1A F0 105 7B F0 66 1A 7B 16 0D F0 47 22 F0 106 79 F0 0D 22 79 17 15 F0 48 21 F0 110 76 F0 15 21 76
  6. 18 1D F0 49 2A F0 112 05 F0 1D 2A 05 19 24 F0 50 32 F0 113 06 F0 24 32 06 20 2D F0 51 31 F0 114 04 F0 2P 31 04 21 2C F0 52 3A F0 115 0c F0 2C 3A 0C 22 35 F0 53 41 F0 116 03 F0 35 41 03 23 3C F0 54 49 F0 117 0B F0 3C 49 0B 24 43 F0 55 4A F0 118 83 F0 43 4A 83 25 44 F0 57 59 F0 119 0A F0 44 59 0A 26 4D F0 58 14 F0 120 01 F0 4D 14 01 27 54 F0 60 11 F0 121 09 F0 54 11 09 28 5B F0 61 29 F0 121 78 F0 5B 29 78 29 5D F0 62 E0 11 E0 123 07 F0 5D F0 11 07 Baûng maõ scandscode cuûa baøn phím
  7. a. Chöông trình xuaát maõ scancode LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY keyboard IS PORT(keyboard_clk, keyboard_data, clock_25Mhz , reset, read : IN STD_LOGIC; scan_code : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); scan_ready : OUT STD_LOGIC); END keyboard; ARCHITECTURE a OF keyboard IS SIGNAL INCNT :STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL SHIFTIN :STD_LOGIC_VECTOR (8 DOWNTO 0);; SIGNAL READ_CHAR :STD_LOGIC; SIGNAL INFLAG, ready_set : STD_LOGIC; SIGNAL keyboard_clk_filtered : STD_LOGIC; SIGNAL filter :STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS (read, ready_set) BEGIN IF read = '1' THEN scan_ready
  8. scan_ready
  9. ELSE IF KEYBOARD_DATA='0' AND READ_CHAR='0' THEN READ_CHAR
  10. END a; Baøn phím phaùt xung ñeå chuaån bò göûi döõ lieäu, qua chöông trình loïc xung, töø xung ñaõ loïc seõ laøm tín hieäu ñoïc döõ lieäu vaø chuyeån döõ lieäu ñaõ ñoïc töø daïng noái tieáp sang song song, vaø xuaát döõ lieäu song song chính laø maõ scancode vaø töø maõ scancode ta ñöa vaøo chöông trình giaûi maõ led ñeå xuaát maõ scancode ra led.

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản