33
Thiết kế hệ thống khóa cửa số Thiết kế hệ thống đơn giản sử dụng ngôn ngữ Verilog Mục lục I. Giới thiệu đề tài.................................... 3 1.1 Mục đích...........................................3 1.2 Mô tả đề tài.......................................3 1.3 Yêu cầu............................................3 1.3.1Phần cứng.......................................3 1.3.2Các yêu cầu về thông số.........................3 II. Mô tả hệ thống....................................... 4 2.1 Tiến trình.........................................4 2.2 Đồ họa.............................................5 III. Tổng quát hệ thống.................................. 8 3.1 Màn hình VGA.......................................8 3.1.1Giới thiệu......................................8 3.1.2Cơ chế hoạt động cơ bản của một CRT.............8 3.1.3Cách quét VGA...................................9 3.1.4Cách truyền nhận dữ liệu.......................10 3.1.5Khối điều khiển VGA............................10 3.2 Bàn phím PS2......................................11 3.2.1Sơ đồ chân PS2.................................11 3.2.2Scan code......................................11 3.3 Bộ nhớ ROM........................................13 IV. Thiết kế chi tiết.................................. 15 1

Báo cáo TKTHHST.docx

  • Upload
    minh-le

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Báo cáo TKTHHST.docx

Thi t k h th ng khóa c a sế ế ệ ố ử ốThi t k h th ng đ n gi n s d ng ngôn ng Verilogế ế ệ ố ơ ả ử ụ ữ

M c l cụ ụI. Giới thiệu đề tài.......................................................................................................3

1.1 Mục đích............................................................................................................3

1.2 Mô tả đề tài........................................................................................................3

1.3 Yêu cầu..............................................................................................................3

1.3.1 Phần cứng....................................................................................................3

1.3.2 Các yêu cầu về thông số..............................................................................3

II. Mô tả hệ thống.........................................................................................................4

2.1 Tiến trình............................................................................................................4

2.2 Đồ họa................................................................................................................5

III. Tổng quát hệ thống................................................................................................8

3.1 Màn hình VGA..................................................................................................8

3.1.1 Giới thiệu....................................................................................................8

3.1.2 Cơ chế hoạt động cơ bản của một CRT......................................................8

3.1.3 Cách quét VGA...........................................................................................9

3.1.4 Cách truyền nhận dữ liệu..........................................................................10

3.1.5 Khối điều khiển VGA...............................................................................10

3.2 Bàn phím PS2..................................................................................................11

3.2.1 Sơ đồ chân PS2.........................................................................................11

3.2.2 Scan code..................................................................................................11

3.3 Bộ nhớ ROM...................................................................................................13

IV. Thiết kế chi tiết....................................................................................................15

4.1 Khối VGA Controller......................................................................................15

4.1.1 Giới thiệu về màn hình CRT 648×480.....................................................15

4.1.2 Trục ngang đồng bộ..................................................................................15

4.1.3 Trục dọc đồng bộ......................................................................................17

4.1.4 Cách tính thời gian của tín hiệu VGA đồng bộ.........................................17

1

Page 2: Báo cáo TKTHHST.docx

4.1.5 Hoàn tất VGA graphic..............................................................................18

4.2 Khối PS2..........................................................................................................18

4.3 Khối VGA text.................................................................................................21

4.3.1 Font chữ....................................................................................................21

4.3.2 Hiển thị chữ...............................................................................................22

4.3.3 Màn hình giới thiệu...................................................................................22

4.3.4 Màn hình chính.........................................................................................22

4.3.5 Màn hình kết thúc.....................................................................................23

4.4 Sơ đồ khối........................................................................................................23

4.4.1 System block diagram...............................................................................23

4.4.2 Schematic..................................................................................................23

4.5 Các khối chính.................................................................................................24

4.5.1 Screen controller.......................................................................................24

4.5.2 PS/2 block.................................................................................................25

4.5.3 FSM...........................................................................................................25

V. Những hạn chế và mở rộng của đề tài...................................................................26

5.1 Hạn chế............................................................................................................26

5.2 Hướng mở rộng của đề tài...............................................................................26

VI. Tài liệu tham khảo...............................................................................................26

VII. Kết luận...............................................................................................................26

2

Page 3: Báo cáo TKTHHST.docx

I. Gi i thi u đ tàiớ ệ ề

1.1 M c đíchụ

Nâng cao khả năng lập trình bằng ngôn ngữ HDL.

Làm quen với quy trình thiết kế một hệ thống hoàn chỉnh.

Giao tiếp thành thạo với các thiết bị ngoại vi thông dụng (VGA, PS/2).

Nâng cao các kĩ năng mềm (làm việc nhóm, thuyết trình,…).

1.2 Mô t đ tàiả ề

Thiết kế hệ thống khóa cửa số sử dụng kit FPGA và bàn phím máy tính thông

thường với các chức năng cụ thể sau:

Độ dài mật khẩu: 4 chữ số.

Có chức năng cài đặt mật khẩu ban đầu khi chưa tồn tại mật khẩu.

Thời gian để cửa hoàn toàn mở và hoàn toàn khóa 3s.

Có thể thay đổi mật khẩu

Có nút “reset” không thuộc bàn phím. Khi bấm “reset”, hệ thống chuyển sang

trạng thái STORE để nhập lại mật khẩu.

Yêu cầu: có biến đếm để đảm bảo độ dài chuỗi mật khẩu nhập vào, tín hiệu báo

hiện trạng thái giữ nút (khi mở hay khóa), tín hiệu báo hiệu dữ liệu hợp lệ.

1.3 Yêu c uầ

1.3.1 Ph n c ngầ ứ

Thực hiện trên KIT DE1 của ALTERA. Màn hình hiển thị VGA 640x480 pixels. Bàn phím chuẩn PS/2.

1.3.2 Các yêu c u v thông sầ ề ố

- Tần số hoạt động của toàn hệ thống ít nhất là 50MHz, càng nhanh càng tốt.

- Đáp ứng của bàn phím tốt, bắt được nhiều phím cùng lúc, độ trễ nhỏ, không quá 0.5s.

- Hiển thị hình ảnh với màn hình VGA 640x480x60Hz.

- Hệ màu tối thiểu 8bits/pixel (256 màu).

3

Page 4: Báo cáo TKTHHST.docx

4

Page 5: Báo cáo TKTHHST.docx

II. Mô t h th ngả ệ ố

2.1 Ti n trìnhế

Màn hình chào mừng: hiển thị tên hệ thống, nhóm phát triển, chờ người dùng sẵn sàng.

Màn hình chọn chế độ: nơi người dùng lựa chọn công việc muốn thực hiện bao gồm (1) nhập mật khẩu để mở hoặc khóa cửa hay (2) thay đổi mật khẩu.

Màn hình nhập mật khẩu: cho phép người dùng thực hiện mở hoặc khóa cửa bằng cách nhập đúng mật khẩu đã được cài đặt. Hiển thị màn hình này đồng nghĩa người dùng chọn công việc (1).

Màn hình đặt mật khẩu: người dùng đặt mật khẩu tại đây khi lần đầu sử dụng hệ thống. Màn hình này chỉ hiển thị khi người dùng chọn công việc (2) xong chưa từng đặt mật khẩu.

Màn hình đổi mật khẩu: nơi người dùng thay đổi mật khẩu đã đặt trước đó. Điều này đồng nghĩa người dùng chọn công việc (2) và hệ thống đã ghi nhận thành công việc cài đặt mật khẩu.

Màn hình cảnh báo: xuất hiện màn hình này chỉ khi người dùng nhập sai mật khẩu hoặc mật khẩu không khớp nhau trong các trường hợp trên. Hệ thống đồng thời cảnh báo người dùng còn bao nhiêu lần nhập lại mật khẩu trước khi không ghi nhận thêm bất kì nỗ lực nào nữa, tức là người dùng phải quay trở lại từ đầu.

Màn hình kết thúc: thông báo công việc đã được thực hiện và hệ thống đã ghi nhận thành công.

5

Page 6: Báo cáo TKTHHST.docx

2.2 Đ h aồ ọ

Đồ họa gồm 6 màn hình:

Màn 1: Màn hình giới thiệu

Màn 2: Màn hình chọn chế độ

6

Page 7: Báo cáo TKTHHST.docx

Màn 3: Màn hình đặt mật khẩu lúc đầu

Màn 4: Màn hình nhập mật khẩu

7

Page 8: Báo cáo TKTHHST.docx

Màn 5: Màn hình đổi mật khẩu

Màn 6: Màn hình báo thành công

8

Page 9: Báo cáo TKTHHST.docx

III. T ng quát h th ngổ ệ ố

3.1 Màn hình VGA

3.1.1 Gi i thi uớ ệ

VGA(Video Graphics Arrays: mảng đồ họa video) được giới thiểu bởi IBM

PCs được hỗ trợ bởi phần cứng đồ họa PC và màn hình. Chúng ta sẽ thiết kế một

giao diện gồm 12 màu cơ bản với độ phân giải 640x480 cho màn hình CRT.

3.1.2 C ch ho t đ ng c b n c a m t CRTơ ế ạ ộ ơ ả ủ ộ

Sơ đồ khối:

9

Page 10: Báo cáo TKTHHST.docx

Cường độ tia electron và độ sáng của các điểm được quyết định bởi mức điện

thế tín hiệu video đầu vào, mono. Tín hiệu mono là tín hiệu tương tự có mức

điện thế thay đổi giữa 0 và 0,7.

The vertical deflection coil và horizontal deflection coil điều khiển hành trình

của dòng electron và quyết định nơi mà electron đậu trên màn hình. Với các

màn hình ngày nay,trùm electron được điều khiển từ trái sang phải từ trên

xuống dưới.

3.1.3 Cách quét VGA

Khi điện áp được đưa vào the honrizontal deflection coil và tăng một cách

đều đặn thì trùm electron sẽ di chuyển từ góc trái sang góc phải. Sau khi chạm

tới góc phải, chùm tia sẽ nhanh chóng quay trở lại góc trái khi điện áp về 0V

( hsync ). Cho đến khi trùm electron chạm tới đáy màn hình thì điện áp sẽ được

10

Page 11: Báo cáo TKTHHST.docx

đưa vào the vertical deflection coil, chùm tia sẽ được đưa trở lại đỉnh màn hình (

vsync ) và tiếp tục quá trình như trong hình.

Tín hiệu hsync dùng để quét màn hình theo hàng và tín hiệu vsync dùng để

quét toàn bộ màn hình với tần số 25MHz pixel rate (25 triệu điểm ảnh được thực

hiện trong 1s) để có thể tạo ra màn hình VGA độ phân giải 640x480.

3.1.4 Cách truy n nh n d li uề ậ ữ ệ

Để có thể truyền nhận dữ liệu và hiển thị lên màn hình, chúng em đã thiết kế

một mạch vga_sync gồm bộ đếm và các tín hiệu đồng bộ. Mạch này có 2 tín

hiệu hsync và vsync được nối trực tiếp đến màn hình, chúng dùng để điều

khuyển sự quét ngang và dọc màn hình. Hai tín hiệu này được giải mã bởi một

bộ đếm có sẵn trong mạch và đầu ra của 2 tín hiệu này là pixel_x, pixel_y. Hai

tín hiệu đầu ra này chỉ ra quan hệ giữa vị trí quét và vị trí hiện tại của điểm ảnh.

Mạch có một tín hiệu video_on để điều khuyển tắt hay bật sự hiển thị.

3.1.5 Kh i đi u khi n VGAố ề ể

Một mạch để tạo ra 3 tín hiệu video được gọi chung là tín hiệu rgb (red green

blue) có đầu vào là pixel_x và pixel_y, video_on. Giá trị của một màu được hiện

thị trên màn hình phụ thuộc vào vị trí điểm ảnh hiện tại (pixel_x và pixel_y) và

tín hiệu data và điều khiển bên ngoài.

11

Page 12: Báo cáo TKTHHST.docx

3.2 Bàn phím PS2

3.2.1 S đ chân PS2ơ ồ

Sử dụng chuẩn kết nối PS2 để kết nối keyboard với KIT DE1

3.2.2 Scan code

Một bàn phím bao gồm một ma trận các phím và một vi xử lý nhúng để kiểm

tra những hoạt động của phím và gửi scan code phù hợp.

12

Pin 1 +DATA Data

Pin 2 Not connected

Pin 3 GND Gr

Pin 4 Vcc +5 V DC at 275 mA

Pin 5 +CLK

Pin 6 Not connected

Page 13: Báo cáo TKTHHST.docx

Hoạt động của bàn phím

Khi 1 phím được ấn thì the make code của phím được truyền đi.

Khi 1 phím được giữ liên tục, trạng thái được biết như là typematic thì the

make code được truyền đi liên tục với một tốc độ nhất định. Ở chế độ mặc

định, một PS2 keyboard truyền make –code vào khoảng 100ms sau khi 1

phím đã được giữ trong khoảng 0.5s.

Khi 1 phím được nhả ra thì the break code (0xF0) được truyền đi sau đó

là make code của phím để nhận biết phím nào vừa được nhả.

Cách truyền nhận dữ liệu

Một thiết bị PS2 (bàn phím) kết nối với KIT DE1 và trao đổi dữ liệu thông qua 2 đường là data và clock.

13

Page 14: Báo cáo TKTHHST.docx

Đường data gồm 11 bit

Đường clock được mang trong một tín hiệu clock riêng biệt.

Dữ liệu sẽ được truyền đi khi xung clock có sự thay đổi và đang tích cực

mức thấp (falling-edge).

3.3 B nh ROMộ ớ

Trong project này, chúng em sử dụng ROM 1 PORT để lưu trữ font chữ và hình ảnh. Bằng cách này, số lượng total logic elements sẽ giảm đi đáng kể.

14

Page 15: Báo cáo TKTHHST.docx

IV. Thi t k chi ti tế ế ế

4.1 Kh i VGA Controllerố

4.1.1 Gi i thi u v màn hình CRT 648ớ ệ ề ×480

640x480 là số điểm ảnh và đường có thể hiện thị được trên màn hình. Mỗi

đường ngang gồm 640 điểm ảnh, 480 là số đường dọc cần quét nhưng thực tế là

mỗi đường ngang gồm 800 điểm ảnh và số đường dọc cần quét là 525. Số điểm

ảnh và đường không được hiển thị được gọi là black border (biên đen). Tần số

hoạt động là 25MHz.

4.1.2 Tr c ngang đ ng bụ ồ ộ

Trục ngang có 800 điểm ảnh được chia làm 4 vùng

15

Page 16: Báo cáo TKTHHST.docx

Dislay: vùng mà các điểm ảnh thực được hiển thị có độ dài 640px.

Retrace: vùng mà trùm electron quay trở lại góc trái, tín hiệu video nên được

tắt, có độ dài 96px.

Right border (biên phải): vùng tạo thành biên phải của vùng hiển thị được gọi

là front porch (cổng trước), tín hiệu nên được tắt,có độ dài 16px.

Left border (biên trái): vùng tạo thành biên trái của vùng hiển thị được gọi là

back porch (cổng sau), tín hiệu nên được tắt,có độ dài 48px.

Độ dài của left and right border có thể thay đổi giữa các màn hình khác nhau.

Tín hiệu hsync cần có thêm bộ đếm 800 điểm ảnh và một mạch giải mã. Khi

bắt đầu việc hiển thị thì bộ đếm cũng bắt đầu đếm và tín hiệu ra hợp thành tín

hiệu pixel_x. Tín hiệu hsync ở mức thấp khi tín hiệu ra của bộ đếm nằm trong

khoảng 656 va 751.

Chúng ta sử dùng tín hiệu video_on để điều chỉnh hiển thị/không hiển thị khi

bộ đếm có giá trị nhỏ hơn 640.

Màn hình CRT nên được để đen ở biên trái và phải và trong suốt quá trình

retrace.

16

Page 17: Báo cáo TKTHHST.docx

4.1.3 Tr c d c đ ng bụ ọ ồ ộ

Trong suốt quá trình quét dọc, chùm electron di chuyển đều đặn từ đầu tới

cuối cùng màn hình, sau đó lại quay trở lại đầu màn hình. Sự giống nhau này

yêu cầu một khoảng thời gian để làm tươi màn hình. Cấu trúc của vsync tương

tự với hsync.

Một chu kỳ của tín hiệu vsync là 525 đường và được chia làm 4 khu vực

giống như hsync.

Các đặc điểm của từng khu vực cũng tương tự như hsync:

Tín hiệu vsync cần 1 bộ đếm 525 dòng và một mạch giải mã. Bắt đầu đếm

khi bắt đầu khu vực hiện thị.tín hiệu đầu ra của bộ đếm là pixel_y. Tín hiệu

vsync ở mức thấp khi bộ đếm dòng ở dòng 490 hoặc 491.

Cũng như hsync,chúng ta sử dụng video_on để hiển thị/không hiển thị khi bộ

đếm có giá trị nhỏ hơn 480.

4.1.4 Cách tính th i gian c a tín hi u VGA đ ng bờ ủ ệ ồ ộ

Ở phạm vi project này chúng ta sử dụng tần số là 25MHz. Sự lựa chọn này là

do cấu hình phần cứng của màn hình. Với việc sử dụng tần số quét này thì màn

hình mới hiện thị được các kí tự và hình ảnh, nếu nhanh hơn hoặc chậm hơn thì

sẽ không hiển thị được.

17

Page 18: Báo cáo TKTHHST.docx

4.1.5 Hoàn t t VGA graphicấ

Ở trên chúng ta đã thiết kế 2 bộ đếm. Vấn đề thiết kế ở đây là KIT DE1 chỉ

hỗ trợ tần số 50MHz mà yêu cầu là 25MHz. Vì vậy do yêu cầu thiết kế chúng ta

tạo ra 1 bộ 25MHz cho phép đánh dấu để tạm dừng hoặc cho phép việc đếm. Tín

hiệu p_tick là một tín hiệu ra thực hiện công việc này và phối hợp với sự hoạt

động của mạch the pixel generation.

Sử dụng 2 tín hiệu h_end và v_end để kiểm tra việc hoàn thành quét ngang

và dọc.

Ngoài ra để tránh khỏi tình trạng nhiễu chúng ta cần sử dụng thêm những bộ

đệm được chèn thêm vào các tín hiệu hsync và vsync.

4.2 Kh i PS2ố

PS2 gồm 2 đường truyền : clk, data

Thông tin được truyền như 1 gói gồm 11 bit: 1 bit start , 8 bit data, 1 bit

parity, 1bit stop.

Tín hiệu clock có chu kỳ trong khoảng từ 60 đến 100 ps (10KHz tới 16,7

KHz), và tín hiệu ps2d phải ổn định ít nhất là 5 us trước và sau sườn lên và

xuống của tín hiệu ps2c.

Khối nhận dữ liệu (PS2_rx) Được sử dụng để lọc nhiễu và để đọc các bit của 1 phím

Đầu ra để cung cấp cho khối FSM.

18

Page 19: Báo cáo TKTHHST.docx

Ta có sơ đồ khối của mạch nhận :

Sơ đồ khối mạch nhận dữ liệu

Để có thể hiểu cơ chế nhận dữ liệu của PS2 ta xét lưu đồ sau:

19

Page 20: Báo cáo TKTHHST.docx

ASMD chart of PS2 port receiver

Khi có tín hiệu cho phép nhận rx_en và tín hiệu tích cực sườn xuống thì trạng

thái sẽ dịch đến start bit và di chuyển đến trạng thái dps.

20

Page 21: Báo cáo TKTHHST.docx

Kể từ khi dữ liệu được nhận trong một khối đã được kiểm tra, chúng ta sẽ

dịch lại 10bit ở trong một trang thái riêng hơn là sử dụng các trạng thái riêng

biệt như là data, parity, stop.

Sau đó mạch sẽ chuyển tới trạng thái load trong đó có một chu kỳ tín hiệu

clock thêm được phân phối để hoàn thành quá trình dịch đến bit stop, và tín hiệu

rx_done_tick được chèn vào sau 1 chu kỳ để thông báo khi đã nhận xong dữ

liệu.

4.3 Kh i VGA textố

4.3.1 Font chữ

Mỗi kí tự có kích thước 8×8 (tương ứng với 8 pixel mỗi chiều khi hiển thị).

Tất cả được lưu trong một file .mif và được truy cập bằng cách sử dụng ROM

1 PORT trong LPM.

Ví dụ, để hiển thị kí tự “A”:

Địa chỉ của mỗi kí tự được liệt kê trong bảng sau:

21

Page 22: Báo cáo TKTHHST.docx

4.3.2 Hi n th chể ị ữ

Trong hệ thống, chúng em sử dụng 2 kích cỡ chữ: 32×32 và 16×16. Để điều

chỉnh kích thước, chúng em dựa trên giá trị của các tín hiệu bit_addr và

pixel_x. Bit_addr là số cột trong một mẫu font chữ. Giá trị của pixel_x(4

downto 2) hoặc (3 downto 1) là số hàng trong mẫu font chữ.

4.3.3 Màn hình gi i thi uớ ệ

Trong màn hình này, chúng em hiển thị các chữ:

“HỆ THỐNG KHÓA CỬA SỐ” với kích cỡ 32×32

“PRESS SPACE TO CONTINUE” với kích cỡ 16×16.

4.3.4 Màn hình chính

Chúng em lưu trữ hình ảnh của mỗi vật trong ROM sử dụng ROM 1 PORT LPM trong Quartus II. Dựa trên tín hiệu điều khiển của từng vật, màu sắc của mỗi điểm ảnh sẽ được chỉ định bởi đầu ra RGB từ ROM tương ứng.

Chúng em hiển thị các vật trên một lớp và sắp xếp các lớp chồng lên nhau. Thứ tự của các lớp sẽ được quyết định bởi thứ tự của lệnh hiển thị.

22

Page 23: Báo cáo TKTHHST.docx

4.3.5 Màn hình k t thúcế

Trong màn hình này, chúng em hiển thị chữ “CONGRATULATION” với kích cỡ 32×32.

4.4 S đ kh iơ ồ ố

4.4.1 System block diagram

4.4.2 Schematic

23

Page 24: Báo cáo TKTHHST.docx

4.5 Các kh i chínhố

4.5.1 Screen controller

24

Page 25: Báo cáo TKTHHST.docx

4.5.2 PS/2 block

4.5.3 FSM

25

Page 26: Báo cáo TKTHHST.docx

V. Nh ng h n ch và m r ng c a đ tàiữ ạ ế ở ộ ủ ề

5.1 H n chạ ế

Do dung lượng logic elements của kit DE1 hạn chế cũng như chưa tối ưu tối đa được code nên nhóm chưa phát triển được nhiều tính năng hơn.

5.2 H ng m r ng c a đ tàiướ ở ộ ủ ề

Để giải quyết vấn đề dung lượng logic elements của kit DE1 hạn chế, ta sẽ ghi data vào RAM sau đó khi cần thì đọc các khối từ RAM ra.

Bổ sung âm thanh cho hệ thống.

VI. Tài li u tham kh oệ ả

[1] http://www.eewiki.net/pages/viewpage.action?pageId=15925278

[2] http://www.youtube.com/user/LBEbooks?feature=watch

[3] http://www.cs.columbia.edu/~sedwards/classes/2011/4840/

[4] http://www.fpga4fun.com/

[5] FPGA Prototyping by Verilog Examples - Xilinx Spartan-3 Version – Pong P.Chu.

VII. K t lu nế ậ

Sau một thời gian thực hiện, nhóm chúng em đã hoàn thành đề tài Hệ thống khóa cửa số. Hệ thống demo đã chạy được và khá hoàn chỉnh. Tuy nhiên còn một vài vấn đề và mở rộng hệ thống chưa hoàn thiện. Qua đây, chúng em đã hoàn thiện hơn về ngôn ngữ HDL, cách mô phỏng testbench, cách làm việc nhóm và thuyết trình.

Chúng em chân thành cảm ơn thầy và các anh đã hướng dẫn và chỉ bảo chúng em trong thời gian qua! Chúng em sẽ cố gắng hoàn thiện hệ thống hơn trong thời gian tới.

26