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).
6 trang |
Chia sẻ: thanhle95 | Lượt xem: 708 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Thiết kế thiết bị game “Đánh bóng bàn” trên FPGA, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ISSN 2354-0575
Journal of Science and Technology70 Khoa học & Công nghệ - Số 15/Tháng 9 - 2017
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
ISSN 2354-0575
Khoa học & Công nghệ - Số 15/Tháng 9 - 2017 Journal of Science and Technology 71
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.
ISSN 2354-0575
Journal of Science and Technology72 Khoa học & Công nghệ - Số 15/Tháng 9 - 2017
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
ISSN 2354-0575
Khoa học & Công nghệ - Số 15/Tháng 9 - 2017 Journal of Science and Technology 73
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
ISSN 2354-0575
Journal of Science and Technology74 Khoa học & Công nghệ - Số 15/Tháng 9 - 2017
*. 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
ISSN 2354-0575
Khoa học & Công nghệ - Số 15/Tháng 9 - 2017 Journal of Science and Technology 75
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].
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.