Bài giả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
lượt xem 4
download
Bài giả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" cung cấp cho người học các kiến thức: Một số lưu ý khi thiết kế, thiết kế các module điều khiển. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giả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
- Chương 3 ỨNG DỤNG FPGA TRONG THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 1
- I. MỘT SỐ LƯU Ý KHI THIẾT KẾ 1.1. Các biến chỉ được gán trong 1 khối always, không được gán trong nhiều khối always khác reg [7:0] a, b; reg [7:0] a, b; initial a = 4; initial a = 4; always @(posedge clk) begin always @(posedge clk or posedge reset) a = b + 2; begin end if (reset == 1) a = 0; always @(posedge reset) begin else a = 0; a = b + 2; end end 2 Trường ĐH Bách Khoa TP.HCM
- I. MỘT SỐ LƯU Ý KHI THIẾT KẾ 1.2. Để phát hiện xung cạnh lên của các tín hiệu, dùng xung clk tần số cao chèn vào module demxung_encoder (clk, enc, D); module demxung_encoder (clk, enc, D); input clk, enc; input clk, enc; output [7:0] D; output [7:0] D; reg [7:0] D = 8’h00; reg [7:0] D = 8’h00; reg pre_enc = 0; reg pre_enc = 0; always @(posedge clk) begin always @(posedge clk) begin pre_enc
- I. MỘT SỐ LƯU Ý KHI THIẾT KẾ 1.3. Dùng biến tạm để cập nhật giá trị các bộ đếm module do_dorongxung (clk, enc, D); module do_dorongxung (clk, enc, D); input clk, enc; input clk, enc; output [7:0] D; output [7:0] D; reg [7:0] D = 8’h00; reg [7:0] D = 8’h00, temp = 8’h01; reg pre_enc = 0; reg pre_enc = 0; always @(posedge clk) begin always @(posedge clk) begin pre_enc
- I. MỘT SỐ LƯU Ý KHI THIẾT KẾ 1.4. Ví dụ 1: Viết chương trình verilog đo tần số - Giá trị D được cập nhật sau mỗi module do_tanso (clk, enc, D); input clk, enc; cạnh lên của xung enc. output [7:0] D; - Tần số xung clk chọn rất lớn so reg [7:0] D = 8’h00, temp = 8’h00; với tần số của xung enc reg pre_enc = 0; - Nếu bộ đếm D vượt quá giá trị always @(posedge clk) begin 0xFF thì sẽ luôn bằng 0xFF … end 5 Trường ĐH Bách Khoa TP.HCM
- I. MỘT SỐ LƯU Ý KHI THIẾT KẾ 1.4. Ví dụ 2: Viết chương trình verilog đo độ lệch pha 2 tín hiệu - Giá trị D được cập nhật sau mỗi module do_dolechpha (clk, encA, encB, D); cạnh lên của xung encB. input clk, encA, encB; - Nếu bộ đếm D vượt quá giá trị output [7:0] D; reg [7:0] D = 8’h00, temp = 8’h00; 0xFF thì sẽ luôn bằng 0xFF reg pre_enc = 0; - Giả sử encA luôn luôn nhanh … pha hơn encB 6 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN Sơ đồ kết nối phần cứng các module điều khiển 7 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 1. Module đọc xung encoder 8 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 1. 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 module encoder (clk,encA,encB,x4,rst,D); input clk, encA, encB, rst; input [1:0] x4; output [15:0] D; reg [15:0] D = 16’h8000; … 9 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 2. Module đọc cảm biến siêu âm > 50 ms Distance (cm) = Time (us) / 58 10 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 2. Module đọc cảm biến siêu âm • Đầu vào clk (1us), EchoPulse module sfr04 (clk, EchoPusle, Trigger, D); • Đầu ra 16 bit D[15:0], Trigger input clk, EchoPuse; • Chân Trigger có độ rộng xung output Trigger; output [15:0] D; 10us, lặp lại với chu kỳ T = 50ms reg [15:0] D = 16’h0000; (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. 11 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 3. Module nội suy cho máy CNC, robot 12 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 3. Module nội suy cho máy CNC, robot 13 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 3. Module nội suy cho máy CNC, robot (Max Pulse input 200kHz ) 14 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 3. Module nội suy cho máy CNC, robot - Thuật toán nội suy đường thẳng theo phương pháp xung chuẩn - dT1: độ tăng trục X - dT2: độ tăng trục Y - T: thời gian lặp lại 15 Trường ĐH Bách Khoa TP.HCM
- II. THIẾT KẾ CÁC MODULE ĐIỀU KHIỂN 3. Module nội suy cho máy CNC, robot • Đầu vào clk (1us), WR, LS module servo (clk,WR,LS, dT,T, Pulse,Dir); • Đầu vào T[7:0], dT[7:0] input clk, WR, LS; input [7:0] T, dT; • Đầu ra Pulse, Dir output Pulse, Dir; • Khi có xung cạnh lên của WR, … dT sẽ nạp giá trị mới. always @(posedge clk) begin • Khi LS = 1, ngõ ra Pulse = 0, acc = acc + dT; LS = 0, Pulse xuất ra theo nội suy. if (acc > T) begin • dT[7] qui định bit dấu cho Dir, acc = acc - T; pinout = 1; dT[7] = 1, Dir = 1. end else pinout = 0; dT [7] = 0, Dir = 0. end dT[6:0] qui định số xung cần … xuất assign Pulse = ~mclk & pinout; 16 Trường ĐH Bách Khoa TP.HCM
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình hoàn chỉnh vi điều khiển PIC 7
9 p | 279 | 122
-
Bài giảng Lập trình java cơ bản: Chương 3 - Lê Tân
20 p | 282 | 84
-
Bài giảng Hệ điều hành Windows 7: Chương 4 - Trường ĐH An Giang
14 p | 39 | 8
-
Bài giảng Cơ sở lập trình 1: Giới thiệu môn học - Lê Quý Tài
9 p | 134 | 8
-
Bài giảng Hệ thống điều khiển phân tán - Chương 2: Cấu trúc hệ thống
20 p | 52 | 7
-
Bài giảng Điều khiển truy cập dữ liệu
10 p | 89 | 6
-
Bài giảng Hệ thống điều khiển phân tán - Chương 6: Kiến trúc FCS
18 p | 57 | 5
-
Bài giảng Hệ thống điều khiển phân tán - Chương 5: Kiến trúc PC-based Control
20 p | 49 | 5
-
Bài giảng Chương trình dịch: Bài giảng 8 - Nguyễn Phương Thái
18 p | 88 | 5
-
Bài giảng Hệ điều hành UNIX-Linux: Chương 4 - Nguyễn Trí Thành
16 p | 85 | 5
-
Bài giảng Lập trình Web ASP.Net với C#: Chương 4 - Th.S Phạm Đào Minh Vũ
19 p | 60 | 3
-
Bài giảng Hệ thống thông tin công nghiệp - Chương 2: Kiến trúc các hệ thống thông tin công nghiệp
15 p | 22 | 2
-
Bài giảng Vi điều khiển 8051 - Bài 1: Tổng quan về 8051
10 p | 1 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 5: Giao tiếp của 8051
15 p | 3 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 6: Giao tiếp của 8051 - Tạo bản đồ địa chỉ
15 p | 2 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 7: I/O của 8051 và 8255
15 p | 2 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 9: Các bộ định thời của 8051
15 p | 1 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn