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
-
Bài giảng Logic mờ và ứng dụng: Điều khiển mờ
21 p | 392 | 56
-
Bài giảng Hệ nhúng - Phạm Ngọc Hưng
334 p | 200 | 47
-
Bài giảng Hệ thống điều khiển phân tán: Phần 1
48 p | 172 | 27
-
Bài giảng Nguyên lý hệ điều hành - ĐH Hàng Hải VN
55 p | 59 | 15
-
Bài giảng Hệ thống nhúng: Phần 2 - Đậu Trọng Hiển
91 p | 64 | 14
-
Bài giảng Bảo mật hệ thống thông tin: Chương 4 - ĐH Bách khoa TP HCM
54 p | 102 | 12
-
Bài giảng Hệ thống điều khiển phân tán - Chương Mở đầu
28 p | 55 | 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 | 132 | 8
-
Bài giảng Hệ thống nhúng - ThS. Lưu Hoàng
43 p | 66 | 7
-
Bài giảng Điều khiển nhúng - Chương 2: Ngôn ngữ VERILOG
43 p | 37 | 7
-
Bài giảng Điều khiển lập trình - Chương 2: Lập trình ứng dụng cơ bản PLC
49 p | 19 | 7
-
Bài giảng Điều khiển lập trình PLC - Bùi Thúc Minh
67 p | 37 | 6
-
Bài giảng Điều khiển truy cập dữ liệu
10 p | 88 | 6
-
Bài giảng Tin học đại cương (Phần 3: Lập trình C): Chương 4 - Viện Công nghệ Thông tin & Truyền thông
64 p | 23 | 5
-
Bài giảng Điều khiển nhúng - Chương 1: Thiết kế phần cứng dùng FPGA
26 p | 29 | 4
-
Bài giảng Hệ nhúng: Chương 3 - Phạm Văn Thuận
163 p | 110 | 3
-
Bài giảng Kỹ thuật phần mềm: Chương 2 - Phạm Duy Trung
31 p | 39 | 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