1. Trang chủ
  2. » Công Nghệ Thông Tin

Thiết kế thiết bị game “đánh bóng bàn” trên FPGA

6 18 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 719,43 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài viết trên cơ sở thực hiện hệ thống nhúng trên nền FPGA, nghiên cứu này thực hiện thiết kế phần cứng thực hiện trò chơi đánh bóng bàn (Game-PingPong) đơn giản trên chip Xilinx FPGA bằng giải pháp lập trình trên ngôn ngữ chuyên dùng để thiết kế phần cứng, đó là ngôn ngữ VHDL (Very High Speed Hardware Desription Luaguage).

Trang 1

THIẾT KẾ THIẾT BỊ GAME “ĐÁNH BÓNG BÀN” TRÊN FPGA

Hoàng Thị Thanh Ngần1, 2, Hồ Khánh Lâm2

1 Trường Phổ thông Dân tộc nội trú THPT huyện Điện Biên, tỉnh Điện Biên

2 Trường Đại học Sư phạm Kỹ thuật Hưng Yên

Ngày tòa soạn nhận được bài báo: 10/07/2017 Ngày phản biện đánh giá và sửa chữa: 10/08/2017 Ngày bài báo được duyệt đăng: 15/08/2017

Tóm tắt:

Trong thời đại ngày nay, hệ thống nhúng đang ngày càng phát triển và chiếm một vai trò quan trọng trong cuộc sống Các thiết bị nhúng ngày nay đang phát triển theo hướng “thông minh”, một xu hướng tất yếu của thời đại Hệ thống nhúng có nhiều tính năng nổi trội như thông minh, nhỏ gọn, giá thành thấp, ít tiêu hao năng lượng, hoạt động ổn định và có nhiều ứng dụng trong điện tử dân dụng, hệ thống điều khiển,

tự động hóa, robot, v.v…

Thiết kế hệ nhúng trên FPGA (Field Programmable Gate Array) thuận tiện cho các nghiên cứu thiết

kế thử nghiệm, cho các nghiên cứu khoa học ít tốn kém về kinh phí và thời gian Do đó, trên cơ sở thực hiện

hệ thống nhúng trên nền FPGA, nghiên cứu này thực hiện thiết kế phần cứng thực hiện trò chơi đánh bóng bàn (Game-PingPong) đơn giản trên chip Xilinx FPGA bằng giải pháp lập trình trên ngôn ngữ chuyên dùng để thiết kế phần cứng, đó là ngôn ngữ VHDL (Very High Speed Hardware Desription Luaguage).

Từ khóa: FPGA, VHDL, Game-PingPong.

1 ĐẶT VẤN ĐỀ

Trong những năm gần đây, ở Việt Nam nhiều

trường Đại học, phòng thí nghiệm cũng đã đưa vào

nghiên cứu và giảng dạy ở bậc đại học và cao học

các hệ nhúng trên FPGA bởi vì FPGA cho phép

thiết kế các hệ thống số và cả các vi xử lý bằng kỹ

thuật lập trình với ngôn ngữ mô phỏng phần cứng

Đặc biết các thiết kế trên FPGA có thể cấu hình lại

được nhờ thay đổi chương trình thiết kế Tuy nhiên,

các tài liệu, các chương trình đào tạo và các công

trình nghiên cứu hệ thống nhúng trên FPGA tại các

trường vẫn còn khá ít nên việc nghiên cứu và phát

triển lĩnh vực này vẫn còn gặp khó khăn

Trên thực tế, ở Trường Đại học Cornell (Hoa

Kỳ) đã có một nghiên cứu được thực hiện bởi hai

sinh viên Hanting Lu và Kedari Elety trên board

Al-tera DE2 với tên nghiên cứu cụ thể là “Hand

track-ing pong” (trò chơi bóng bàn dựa vào theo dõi bàn

tay); Nghiên cứu trên đã sử dụng ngôn ngữ Verilog

HDL để thiết kế phần cứng của hệ thống và áp dụng

giải pháp nhận dạng màu da để nhận dạng và theo

dõi sự di chuyển của bàn tay Ở Việt Nam, đã có

một nghiên cứu được thực hiện ở trường Đại học

Cần Thơ bởi hai sinh viên Trần Thanh Sang và Trần

Trung Hiếu trên board DE2-115 Development and

Education do hãng Terasic sản xuất với tên nghiên

cứu “Thiết kế hệ nhúng mô phỏng trò chơi đánh

bóng bàn”; Nghiên cứu trên thực hiện thiết kế hệ

thống nhúng bằng các IP core sử dụng công cụ

SOPC Builder kết hợp với các phần mềm như

Quar-tus II, Nios II Software Build Tools for Eclipse, để

lập trình cho hệ thống thông qua ngôn ngữ C tạo hệ

thống dựa trên các core được nhà sản xuất cung cấp sẵn Hệ thống sử dụng camera 5MP TRDB_D5M

để nhận diện bàn tay điều khiển trò chơi

Như vậy ở hai nghiên cứu trên thì hệ thống cần sử dụng đến các thiết bị như board Altera DE2, board DE2-115 Development and Education kết hợp với camera để nhận dạng và theo dõi bàn tay khi điều khiển trò chơi

Nghiên cứu này được thực hiện với ý tưởng tạo dựng một thiết bị trò chơi bằng một hệ thống nhúng trên FPGA sử dụng board Spartan 3E-500K kết hợp với thiết bị thông dụng hơn và giá thành thấp hơn đó là phương thức điều khiển bằng các phím trên bàn phím Đây là một vấn đề phức tạp bởi

để thiết kế được hệ thống thì người thiết kế vừa phải xây dựng kịch bản trò chơi phù hợp với thực tế vừa phải xây dựng một khối lượng chương trình nhiều

để thiết kế phần cứng trên FPGA với các giao diện màn hình (VGA), giao diện bàn phím (Keyboard) Mục đích của nghiên cứu này là để thiết kế phần cứng thực hiện trò chơi đánh bóng bàn đơn giản trên chip Xilinx FPGA bằng giải pháp lập trình trên ngôn ngữ chuyên dùng để thiết kế phần cứng,

đó là ngôn ngữ VHDL (Very High Speed Hard-ware Desription Luaguage) sử dụng board Spartan 3E-500K kết hợp với bàn phím cổng PS/2

Nhìn chung, nghiên cứu đã kế thừa và cải tiến được một số hạn chế của các nghiên cứu trước (màu sắc giao diện, độ tin cậy, độ chính xác, cách điều khiển trò chơi, ), sử dụng thiết bị thông dụng, giá thành các thiết bị trong thiết kế thấp có tính cạnh tranh cao Ngoài ra, nghiên cứu còn có ý nghĩa ứng

Trang 2

dụng vào thực tiễn cuộc sống cũng như cho đào tạo

và các nghiên cứu khác

2 CƠ SỞ KHOA HỌC VÀ CƠ SỞ THỰC TIỄN

2.1 Cơ sở khoa học

Công nghệ vi mạch tích hợp chuyên dụng

ASIC (Application Specific Integrated Circuit) lập

trình được đã xuất hiện từ lâu dưới dạng các thiết

bị logic lập trình được PLD (Programmable Logic

Device) nhưng vai trò của các dạng ASIC này là

không nhiều vì số lượng cổng trên vi mạch rất ít dẫn

tới chức năng của các PLD này cũng nghèo nàn và

thường chỉ sử dụng với những nhiệm vụ rất hạn chế

trong toàn hệ thống FPGA được thiết kế đầu tiên

bởi Ross Freeman, người sáng lập công ty Xilinx

vào năm 1984 Kể từ đó đến nay, các công ty sản

xuất PLD hàng đầu đã đẩy mạnh quá trình nghiên

cứu về công nghệ vi mạch tích hợp mảng cổng lập

trình được theo trường FPGA (Field Programmable

Gate Array) và nhanh chóng cho ra các thế hệ FPGA

với số lượng cổng và tốc độ ngày càng cao Các

FPGA hiện nay, có số lượng cổng logic lớn để có

thể thay thế cả một hệ thống bao gồm lõi CPU, Bộ

điều khiển bộ nhớ (Memory Controller), các ngoại

vi như SPI, Timer, I2C, GPIO, PWM, Video/Audio

Controller, tương đương với các hệ thống trên chip

SoC (System on Chip) hiện đại

2.2 Cơ sở thực tiễn

- FPGA ngày càng được sử dụng nhiều trong

đào tạo ở các bậc đại học, cao học và cho các nghiên cứu khoa học kỹ thuật hiện nay trên thế giới và Việt Nam

- Thiết kế các hệ thống nhúng, các thiết bị điều khiển trên FPGA đang là một phương pháp thiết kế ít tốn kém được sử dụng nhiều trong thực

tế hiện nay

3 THIẾT KẾ HỆ THỐNG NHÚNG VÀ THIẾT

BỊ GAME “ĐÁNH BÓNG BÀN”

3.1 Tổng quan hệ thống

Hệ thống nhúng trong nghiên cứu này sử dụng bảng phát triển Spartan 3E-500K với các ngoại vi chính bao gồm PC, Keyboard PS/2 và màn hình hiển thị như Hình 1

- PC (Personal Computer): Được sử dụng

để xây dựng hệ thống nhúng trên bộ công cụ phần mềm Xilinx ISE Design Suite 14.1 nối với bảng Spartan 3E-500K bằng cáp UART RS-232 DTE và cáp USB

- Bảng Spartan 3E-500K: Được sử dụng để xây dựng hệ thống nhúng cho phép giao tiếp với Keyboard và xử lý tín hiệu các phím điều khiển, hiển thị trò chơi trên màn hình VGA

- Màn hình máy tính: Được sử dụng để hiển thị trò chơi nối với bảng Spartan 3E-500K bằng cáp VGA

- Bàn phím máy tính có dây: Được sử dụng

để điều khiển trò chơi đã được thiết kế sẵn nối với bảng Spartan 3E-500K bằng cổng PS/2

Hình 1 Sơ đồ hệ thống thiết kế

3.2 Thiết kế hệ nhúng với lõi mềm vi xử lý Microblaze

Hệ nhúng có đơn vị xử lý trung tâm là vi xử

lý Microblaze với các giao tiếp ngoại vi không có

hệ điều hành nhưng sẽ được cài đặt một số chương

trình ứng dụng nhỏ mà khi thiết kế thiết bị cần lập trình đưa vào hệ nhúng như: kiểm tra bộ nhớ, kiểm tra các ngoại vi để thử nghiệm vận hành của Microblaze và các giao tiếp ngoại vi

Trang 3

Hình 2 Sơ đồ khối của Lõi mềm vi xử lý Microblaze

Để thiết kế lõi mềm vi xử lý, ta thực hiện

trên phần mềm XPS 14.1 (Xilinx Platform Studio)

đã tích hợp trong bộ công cụ Xilinx ISE Design

Suite14.1

Khi cài đặt lựa chọn thiết kế chip Microblaze

với một nhân và cấu hình phần cứng với bộ nhớ:

DDR_SDRAM, Flash, Instruction

Cache, Data Cache, bộ đếm thời gian XPS_

Timer và các giao tiếp ngoại vi như Ethernet,

RS-232-DTE và RS-232-DCE với tốc độ dữ liệu 9600

bps và định dạng dữ liệu 8 bits (Ascii code) 1 stop bit,

Buttons_4Bits, LEDs_8Bits, DIP_Switches_4Bits

Hình 3 Sơ đồ thiết kế lõi mềm vi xử lý Microblaze

Trong thiết kế, các bước thực hiện tạo danh

sách thiết kế Generate Netlist, và tạo file cấu hình

Generate Bitstream “system.bit” là quan trọng

vì chúng sẽ tạo ra file cấu hình system.bit cho

Microblaze trên FPGA, hạt nhân của hệ nhúng

Hình 4 Các giao tiếp của lõi mềm vi xử lý Microblaze

Kết quả thực hiện trên phần mềm XPS 14.1 đã tạo ra file thiết kế phần cứng của hệ nhúng Microblaze Phải nạp các file thiết kế phần cứng này lên FPGA nhờ công cụ SDK14.1

Hình 5 Kết quả xuất thiết kế phần cứng của hệ

nhúng Microblaze

Trang 4

Hình 6 Tải file cấu hình hệ nhúng Microblaze

lên FPGA

Thực hiện tạo, biên dịch và chạy các chương trình kiểm tra thiết bị ngoại vi, kiểm tra bộ nhớ bằng ngôn ngữ C trên hệ nhúng Kết quả chạy thành công các chương trình cho thấy hệ nhúng làm việc tốt với

bộ nhớ và các giao tiếp ngoại vi

3.3 Thiết kế thiết bị Game “Đánh bóng bàn” trên Xilinx FPGA

* Chương trình chính

Chương trình chính có nhiệm vụ thực hiện tạo giao diện và điều khiển trò chơi bằng cách gọi các chương trình con thực hiện các chức năng liên quan: hiển thị các giao diện và điều khiển trò chơi Hình 7 trình bày lưu đồ mô tả cách hoạt động của chương trình này

Hình 7 Lưu đồ chương trình chính điều khiển trò chơi

Trang 5

* Chương trình con Đọc dữ liệu từ bàn phím

Hệ thống được thiết kế để nhận dữ liệu liên

tục từ các phím điều khiển Các tọa độ được ghi liên

tục lên một vùng nhớ của SRAM được chọn làm

bộ nhớ đệm Pixel Buffer ở vị trí ghi Dữ liệu từ các

phím được lưu tại vùng nhớ này để phục vụ cho các

công việc xử lý

* Chương trình con theo dõi sự di chuyển

của bóng và các thanh trượt

Để theo dõi tốt quá trình di chuyển của bóng

và hai thanh trượt trong một phạm vi nhất định,

chương trình sẽ thực hiện việc gán một cửa sổ có

kích thước 16x16 pixel tạo thành hình vuông cho hình dạng của quả bóng và hai cửa sổ có kích thước 20x64 pixel tạo thành một khối hình chữ nhật cho hai thanh trượt Để xác định vị trí của bóng và hai thanh trượt giúp cho việc theo dõi bóng và hai thanh trượt khi di chuyển sẽ dễ dàng hơn mà không ảnh hưởng đến tốc độ xử lý

3.4 Kết quả thử nghiệm

Hệ thống thiết kế thiết bị game hoạt động ổn định, sử dụng ít tài nguyên trên chip FPGA (xem Hình 8)

Hình 8 Tài nguyên sử dụng thiết kế thiết bị game

Hình 9 Bố trí của hệ thống trong thử nghiệm

Trang 6

Bố trí hệ thống trong thử nghiệm được trình

bày ở Hình 9 Hệ thống hoạt động ổn định, trong

ứng dụng trò chơi được thiết kế thì sự di chuyển

của các phím đối với từng người chơi sẽ điều khiển

được thanh trượt tương ứng Giao diện trò chơi được

thiết kế đơn giản, màu sắc dễ nhìn kết hợp với các

giao tiếp trao đổi tạo hứng thú cho người chơi Một

đoạn video clip trình bày kết quả của nghiên cứu

có thể xem tại đường link https://drive.google.com/

open?id=0B-RKuSapprWkdndpeWpDN2huSkk

4 KẾT LUẬN

Bài viết đã trình bày quá trình thiết kế một

thiết bị điều khiển dựa vào mã của các phím trên

nền FPGA và đã được kiểm chứng thành công bởi thiết kế thiết bị trò chơi Game – Ping Pong trực quan sinh động Bằng một số thay đổi trong code chương trình thiết kế ta có thể thay đổi các phím điều khiển như mong muốn, thay đổi màu của các thành phần trên giao diện trò chơi, tốc độ của bóng

và thay đổi được tên của hai người chơi tương ứng, đối với các thay đổi khác nhau thì thiết kế đều hoạt động tốt và đạt các yêu cầu mong muốn Dựa trên kinh nghiệm thiết kế này có thể phát triển thiết kế các thiết bị trò chơi và điều khiển phúc tạp hơn, đáp ứng cho các ứng dụng điều khiển tương tác, thân thiện với người sử dụng

Tài liệu tham khảo

[1] Hồ Khánh Lâm, (2015), “Giáo trình Thiết kế hệ thống số trên FPGA bằng VHDL”, NXB Khoa

học và kỹ thuật, Hà Nội

[2] http://xemtailieu.com/tai-lieu/thuc-hien-he-thong-nhung-mo-phong-tro-choi-bong-ban-336928 html

[3] en.wikipedia.org/wiki/Field-programmable_gate_array

[4] Digilentinc.com, (2006), “Spartan-3E Starter Kit Board User Guide”, UG230 (v1.0) March 9.

[5] www.xilinx.com/support/download.html

[6] www.xilinx.com, “Microblaze Processor Reference Guide”, UG081(v9.0).

[7] Rod Jesman, Fernando Martinez Vallina, Jafar Saniie, “Microblaze Tutorial Creating a Simple Embedded System and Adding Custom Peripherals Using Xilinx EDK Software Tools”, Illinois

Institute Of Tecnology

DESIGN DEVICE GAME “PING-PONG” ON FPGA Abstract:

In today’s age, embedded system are growing and playing an important role in life Embedded devices are now developing in the direction of “smart”, an necessary trend of the times Embedded system have many outstanding features such as intelligent, compact, low cost, low power consumption, stable operation and many applications in civil electronics, control systems, automation, robot, etc

Design embedded system on FPGA (Field Programmable Gate Array) convinient for experiment design researches, for scientific researches less costly on expense and time Therefore, on the basis of implementing embedded system on FPGA background, this study implemented a hardware design implementing simple game pingpong on chip Xilinx FPGA by programming solution on specialized language for hardware design, that’s the language VHDL (Very High Speed Hardware Description Luaguage).

Keywords: FPGA, VHDL, Game-PingPong.

Ngày đăng: 07/05/2021, 13:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm