1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập về nhà chương iii hệ thống Điều khiển nhúng

14 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Hệ thống điều khiển nhúng
Tác giả Lê Tự Quốc Thiện, Đỗ Thành Thông, Đinh Bạt Hoàng, Lâm Quốc Qui
Người hướng dẫn TS. Nguyễn Vĩnh Hảo
Trường học Trường Đại Học Bách Khoa TPHCM
Chuyên ngành Điện - Điện tử
Thể loại Báo cáo bài tập
Thành phố TPHCM
Định dạng
Số trang 14
Dung lượng 5,49 MB

Nội dung

Mode X2: Với mỗi cạnh xuống hoặc cạnh lên của xung A, check trạng thái của B, tương ứng với 2 trường hợp đếm lên khi A cạnh lên-B mức thấp hoặc A cạnh xuống-B mức cao và 2 trường hợp đếm

Trang 1

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

Khoa Điện - Điện tử

Bộ môn Điều khiển Tự Động

BÁO CÁO BÀI TẬP VỀ NHÀ CHƯƠNG III

HỆ THỐNG ĐIỀU KHIỂN NHÚNG

GVHD: TS.Nguyễn Vĩnh Hảo

Lê Tự Quốc Thiện 1814133

Đỗ Thành Thông 1814199

Đinh Bạt Hoàng 1812255

Lâm Quốc Qui 1813724

Trang 2

HỆ THỐNG ĐIỀU KHIỂN NHÚNG BÀI TẬP VỀ NHÀ SỐ 3

Nhóm: 12

1 Lê Tự Quốc Thiện 1814133

2 Đỗ Thành Thông 1814199

3 Đinh Bạt Hoàng 1812255

Trang 3

1 Viết Verilog đọc xung Encoder

Module đọc xung encoder

Đầu vào clk, encA, encB, rst, x4

Đầ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

- Ý tưởng: thực hiện đếm xung encoder dựa vào lệch pha của 2 tín hiệu A, B VD: trường hợp đếm lên

Mode X1 : khi có cạnh lên A, check trạng thái B: Nếu 0 (1) thì đếm lên (xuống) Cần xét 3 tín hiệu Pre_A, A , B

Mode X2: Với mỗi cạnh xuống hoặc cạnh lên của xung A, check trạng thái của B, tương ứng với 2 trường hợp đếm lên khi A cạnh lên-B mức thấp hoặc

A cạnh xuống-B mức cao và 2 trường hợp đếm xuống (ngược lại) Cần xét 3 tín hiệu Pre_A , A , B

Mode X4 : Với mỗi cạnh lên, cạnh xuống của xung A hoặc B, check trạng thái của tín hiệu còn lại Tương ứng với 8 trường hợp: 4 đếm lên A cạnh

lên-B mức thấp, A cạnh xuống-lên-B mức cao, lên-B cạnh lên-A mức cao, lên-B cạnh xuống-A mức thấp và 4 đếm xuống (các trường hợp ngược lại)

Trang 4

- Viết Verilog:

Trang 5

- Mô phỏng:

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

Trang 6

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

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

Trang 7

2 Viết Verilog đọc cảm biến siêu âm

Đầ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)

Ngõ ra D[15:0] cập nhật khi có cạnh xuống của EchoPulse (Đơn vị đo us) Nếu D = 0xFFFF thì không được tăng D

- Ý tưởng:

Tạo 1 biến đếm cnt cho mỗi chu kì xung clk

Biến đếm 0 -> 10: xung Trigger =1

Biến đếm 11-> 1000 : Trigger =0 và khi đã đếm đến 1 ms reset lại cnt Tạo 1 bộ đếm để đo độ rộng xung Echo(đếm số xung clk khi xung Echo đang ở mức cao).Khi xung Echo có cạnh xuống thì xuất giá trị đếm được ra ngõ ra D

Trang 8

- Chương trình Verilog:

Mô phỏng:

- Nhận xét: chương trình chạy tốt theo yêu cầu đề bài Xung được tạo ra với

độ rộng 10us và lặp lại với chu kỳ T = 1ms Giá trị độ rung xung Echo được xuất ra D mỗi khi xung này có cạnh xuống

Trang 9

3 Viết Verilog module nội suy CNC Yêu c u: ầ

T k ti p ế ế

3 Khi không ghi giá

xung ra chân Pulse

thêm 1 ngõ ra flag_T

Cố định (k đổi N)

6 clk = 1us,

clk1 = 100us,

dựa vào clk

Trang 10

- Ý tưởng:

Tạo 1 biến buffer với 32 bit lưu được tối đa 4 giá trị Nx Sử dụng xung clock clk 1us để phát hiện cạnh lên xung WR nạp giá trị vào buffer.Sử dụng biến cnt để đếm số xung clock 1us và mô phỏng xung clock clk1 100us và xung clock flag T chu kỳ 2ms để quan sát các xung xuất ra trong 1ms

Mỗi 1ms đọc giá trị Nx đã lưu trong buffer sau đó thực hiện dịch buffer để chuẩn bị đọc giá trị kế tiếp trong chu kỳ tiếp theo và sử dụng thuật toán nội suy đường thẳng theo phương pháp xung chuẩn để xuất

số xung cần thiết trong 1 ms

Ngõ ra DIR được lấy từ buffer[7] chỉ chiều điều khiển động cơ

- Chương trình Verilog:

Trang 12

- Mô phỏng:

Xuất hiện xung WR (data = 4) trong khi chu kì xuất xung Pulse vẫn chưa kết thúc nên giá trị data = 4 được lưu trong buffer (max 4 giá trị) đợi chu kì xuất xung tiếp theo

Trang 13

Ở chu kì xuất xung tiếp theo (flag T = 0) tiến hành xuất 4 xung đồng thời giải phóng thanh ghi buffer

Sau đó, xuất hiện xung WR (data = 6) -> lưu vào thanh ghi buffer vì chưa kết thúc qua trình xuất 4 xung trước đó

Tương tự, thanh ghi buffer lưu trữ thêm giá trị 5, 7 và 8 khi có xung WR Trừ trường hợp “3” vì buffer đã đầy

Trang 14

Xuất lần lượt 3 xung, 4 xung, 6 xung theo đúng dữ liệu và chu kì T.

Trường hợp Nx[7]=1 thì DIR ở mức cao điều khiển động cơ quay ngược

Ngày đăng: 09/02/2025, 13:41