1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP NHÓM Môn Hệ thống điều khiển nhúng Chương 3 ỨNG DỤNG FPGA TRONG THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN

14 7 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng dụng FPGA trong thiết kế các module điều khiển
Tác giả Trịnh Quang Huy, Nguyễn Đăng Khoa, Hoàng Công Sang, Nguyễn Minh Tuấn
Người hướng dẫn TS. Nguyễn Vĩnh Hảo
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh, Trường Đại học Bách khoa
Chuyên ngành Hệ thống điều khiển nhúng
Thể loại Bài tập nhóm
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 14
Dung lượng 1,46 MB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO BÀI TẬP NHÓM Môn: Hệ thống điều khiển nhúng Chương 3: ỨNG DỤNG FPGA TRONG THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN GVHD:

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

BÁO CÁO BÀI TẬP NHÓM Môn: Hệ thống điều khiển nhúng Chương 3: ỨNG DỤNG FPGA TRONG THIẾT KẾ CÁC

MODULE ĐIỀU KHIỂN

GVHD: TS Nguyễn Vĩnh Hảo Nhóm 10 – Lớp L01

TP Hồ Chí Minh, 27 tháng 03 năm 2024

Trang 2

MỤC LỤC

Bài 1: Module đọc xung encoder 1 Bài 2: Module đọc cảm biến siêu âm: 4 Bài 3 Module nội suy cho máy CNC, Robot: 6

Trang 3

Bài 1: Module đọc xung encoder

• Yêu cầu:

- Đầu vào xung clk, encA, encB, rst, mode

- Đầu ra 16 bit D[15:0]

- Khi rst = 1: D[15:0] = 16’h8000

- Khi rst = 0: D[15:0] đếm lên, xuống theo xung encA, encB

- Đếm x1, x2, x4

• Chương trình verilog:

• Mô phỏng:

- Trường hợp đếm lên các mode x1, x2, x4:

Trang 4

- Trường hợp đếm xuống các mode x1, x2, x4:

Trang 5

- Nhận xét: chương trình đã chạy đúng với yêu cầu đặt ra Khi khởi động giá trị đếm sẽ bắt đầu từ 32768 Khi A nhanh pha hơn B thì đếm lên và khi B nhanh pha hơn A thì đếm xuống Khi rst ở mức cao thì bộ đếm được reset về giá trị ban đầu

Trang 6

Bài 2: Module đọc cảm biến siêu âm:

• Yêu cầu:

- Đầu vào clk (1us), EchoPulse

- Đầu ra 16 bit D[15:0], Trigger

- Chân Trigger có độ rộng xung 10us, lặp lại với chu kỳ T = 50ms (Chỉnh T = 1ms

khi mô phỏng)

• Chương trình verilog

Trang 7

• Mô phỏng:

Chân Trigger có độ rộng xung 10us, lặp lại với chu kỳ T = 1ms

Ngõ ra D[15:0] cập nhật khi có cạnh xuống của EchoPulse

Nếu trong chu kỳ T=1ms không có xung EchoPulse phản hồi thì ngõ ra D sẽ xuất ra giá trị

65536 (0xFFFF)

Trang 8

Bài 3 Module nội suy cho máy CNC, Robot:

• Yêu cầu:

- Viết cho 2 trục X, Y

- Khi có xung cạnh lên của WR, Nx nạp giá trị mới Nhưng giá trị này không tác động ở chu kì T hiện tại, mà tác động ở chu kỳ T kế tiếp

- Khi không ghi giá trị Nx ( không xuất xung WR) ở chu kì T hiện tại, chu

kỳ T kế tiếp không được xuất xung ra chân Pulse.( không được lấy giá trị

cũ để rải tiếp)

- Khi mô phỏng, add thêm 1 ngõ ra flag_T để kiểm tra hết mỗi chu kỳ T

- Mô phỏng N = 10, cố định ( không đổi N)

- Clk = 1us, clk1 = 100us, xuất xung dựa vào clk1, các tín hiệu khác dựa vào clk

- Cho phép buffer tối đa 4 xung WR trong 1 chu kỳ flag_T, không lưu buffer nếu xung WR thứ 5 xảy ra, Nbuff = 4 Khi ghi đủ 4 giá trị cờ flag_full = 1 Kiểm tra chỉ khi flag_full = 0 (khi Nbuff = 3,2,1,0) mới được WR tiếp

Trang 9

• Chương trình Verilog:

Trang 12

• Mô phỏng

- Khi không có xung WR ở chu kì T hiện tại, thì chu kì T kế tiếp không xuất xung

- Ở chu kỳ có xung WR và Nx = 4, giá trị được lưu vào buffer và được xuất xung khi tới chu kỳ kế tiếp

- Thanh ghi buffer lưu lần lượt giá trị 0,4,2,7 khi có xung WR, trừ trường hợp 5 xung ở cuối cùng Cùng lúc khi thanh ghi buffer lưu đủ 4 giá trị thì ngõ ra flag_full lên mức 1

- Xuất lần lượt 0,4,2,7 xung theo đúng thứ tự và chu kì T

Trang 13

- Trường hợp Nx[7] = 1, thì ngõ ra Dir lên mức cao, điều khiển đảo chiều quay động cơ

- Khi ngõ ra LS = 1 thì sẽ không cho phép rải xung

Trang 14

- Sử dụng kết hợp 2 module trong Block Diagram/Schematic File để điều khiển đồng thời 2 trục X,Y

Ngày đăng: 06/04/2024, 15:40

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w