Bài giảng Điều khiển nhúng - Chương 1: Thiết kế phần cứng dùng FPGA
I. GIỚI THIỆU CẤU TRÚC FPGA
1.1. FPGA (Field Programmable Gate Array)
- Là mạch tích hợp có khả năng cấu hình lại
bởi người thiết kế, thực hiện các hàm logic
từ cơ bản đến phức tạp.
- FPGA được cấu thành từ các bộ phận:
• Các khối logic cơ bản lập trình được
(logic block)
• Hệ thống mạch liên kết lập trình được
• Khối vào/ra (IO Pads)
• Phần tử thiết kế sẵn khác như DSP
slice, RAM, ROM, nhân vi xử lý.
- Cấu hình FPGA dùng ngôn ngữ mô tả
phần cứng HDL (hardware description
language), mạch nguyên lý (schematic
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Điều khiển nhúng - Chương 1: Thiết kế phần cứng dùng FPGA", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Điều khiển nhúng - Chương 1: Thiết kế phần cứng dùng FPGA
1THIẾT KẾ PHẦN CỨNG DÙNG FPGA Chương 1 2I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.1. FPGA (Field Programmable Gate Array) - Là mạch tích hợp có khả năng cấu hình lại bởi người thiết kế, thực hiện các hàm logic từ cơ bản đến phức tạp. - FPGA được cấu thành từ các bộ phận: • Các khối logic cơ bản lập trình được (logic block) • Hệ thống mạch liên kết lập trình được • Khối vào/ra (IO Pads) • Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý.. - Cấu hình FPGA dùng ngôn ngữ mô tả phần cứng HDL (hardware description language), mạch nguyên lý (schematic) 3I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.1. FPGA (Field Programmable Gate Array) - Cấu trúc LE (logic element) của Cyclone IV (Altera) - LUT : look up table 4I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.1. FPGA (Field Programmable Gate Array) - Cấu trúc LAB: (logic array block) • Chứa 16 LE • Tín hiệu điều khiển LAB • Mạch liên kết 5I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.1. FPGA (Field Programmable Gate Array) - Họ Cyclone IV của Altera 6I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.2. CPLD (Complex Programmable Logic Device) - Cấu trúc đơn giản hơn FPGA và ít khối logic hơn FPGA - Bộ nhớ cấu hình trên EEPROM - Thời gian trễ dễ kiểm soát 7I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.2. CPLD (Complex Programmable Logic Device) 8I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.2. CPLD (Complex Programmable Logic Device) The MAX II CPLD has the following features (MAX II Device Handbook): • Low-cost, low-power CPLD • Instant-on, non-volatile architecture • Standby current as low as 25 μA • Provides fast propagation delay and clock-to-output times • Provides four global clocks with two clocks available per logic array block (LAB) • UFM block up to 8 Kbits for non-volatile storage • MultiVolt core enabling external supply voltages to the device of either 3.3V, 2.5V or 1.8V • MultiVolt I/O interface supporting 3.3-V, 2.5-V, 1.8-V, and 1.5-V logic levels 9I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.2. CPLD (Complex Programmable Logic Device) - HọMAX II của Altera 10 I. GIỚI THIỆU CẤU TRÚC FPGA Trường ĐH Bách Khoa TP.HCM 1.3. FPGA của các hãng ALTERA - FPGA • SoC FPGA (FPGA + Cortex A9 Dual-Core 800Mhz) • Stratix V, Stratix IV • Arria V, Arria II • Cyclone V, Cyclone IV CPLD • MAX V, MAX II XILINX - FPGA • Zynq-7000 (FPGA + Cortex A9 Dual-Core 800Mhz) • 7 series FPGAs • Virtex-6, Virtex-5, Virtex-4 • Spartan-6, Spartan-3A, 3E CPLD - CoolRunner II 11 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.1. WR và RD trên 2 chân riêng biệt (kiến trúc Intel) 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D1 D2 D3 D4 D5 D6 D7 D8 CLK OE Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 2 4 6 8 1 18 16 14 12 11 13 15 17 9 7 5 3 19 A1 A2 A3 A4 1OE Y1 Y2 Y3 Y4 A5 A6 A7 A8 Y5 Y6 Y7 Y8 2OE 2 3 4 5 6 7 8 9 19 1 18 17 16 15 14 13 12 11 A0 A1 A2 A3 A4 A5 A6 A7 G DIR B0 B1 B2 B3 B4 B5 B6 B7 12 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.1. WR và RD trên 2 chân riêng biệt (kiến trúc Intel) 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D1 D2 D3 D4 D5 D6 D7 D8 CLK OE Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 2 4 6 8 1 18 16 14 12 11 13 15 17 9 7 5 3 19 A1 A2 A3 A4 1OE Y1 Y2 Y3 Y4 A5 A6 A7 A8 Y5 Y6 Y7 Y8 2OE 2 3 4 5 6 7 8 9 19 1 18 17 16 15 14 13 12 11 A0 A1 A2 A3 A4 A5 A6 A7 G DIR B0 B1 B2 B3 B4 B5 B6 B7 74573 74574 74244 74245 13 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.1. WR và RD trên 2 chân riêng biệt (kiến trúc Intel) - Sơ đồ kết nối quá trình đọc dữ liệu 74LS244 2 4 6 8 1 18 16 14 12 11 13 15 17 9 7 5 3 19 A1 A2 A3 A4 1OE Y1 Y2 Y3 Y4 A5 A6 A7 A8 Y5 Y6 Y7 Y8 2OE 1 2 3CS RD 1 2 3CS RD 74LS245 2 3 4 5 6 7 8 9 19 1 18 17 16 15 14 13 12 11 A0 A1 A2 A3 A4 A5 A6 A7 G DIR B0 B1 B2 B3 B4 B5 B6 B7 14 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.1. WR và RD trên 2 chân riêng biệt (kiến trúc Intel) - Sơ đồ kết nối quá trình ghi dữ liệu 1 2 3 74LS573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7WR CS 1 2 3 74LS574 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D1 D2 D3 D4 D5 D6 D7 D8 CLK OE Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 CS WR 15 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.1. RD và WR trên 2 chân riêng biệt (kiến trúc Intel) * Ví dụ 1: Giải mã dùng IC 74138 - Phần cứng 8 đường địa chỉ A7-A0, 8 đường dữ liệu D7-D0. Giải mã các ngoại vi sau: • ADC: 4 kênh 8 bit • DAC: 2 kênh 8 bit • PWM: 6 kênh 8 bit • Encoder: 6 kênh 8 bit • DI: 2 kênh 8 bit U1 74LS138 1 2 3 15 14 13 12 11 10 9 7 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B 16 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.1. RD và WR trên 2 chân riêng biệt (kiến trúc Intel) * Các bước thực hiện - Bước 1: Tính số kênh lớn nhất trong 1 module đê ̉ xác định số địa chỉ cần giải mã cho các kênh. 6 kênh -> cần 3 đường địa chỉ A[2:0] - Bước 2: Tính số module để xác định số địa chỉ cần giải mã cho các module. (Không cần gán địa chỉ liên tục cho các module). 5 module -> cần 3 đường địa chỉ A[5:3], hoặc A[6:4], hoặc A[7:5] - Bước 3: Vẽ sơ đô ̀ kết nối module: kết nối địa chỉ giải mã và dữ liệu tới các module, xác định địa chỉ của từng module. - Bước 4: Vẽ sơ đô ̀ kết nối kênh: kết nối địa chỉ và dữ liệu của các kênh trong 1 module. Xác định địa chỉ của từng kênh trong 1 module 17 Trường ĐH Bách Khoa TP.HCM 2.1. RD và WR trên 2 chân riêng biệt (kiến trúc Intel) - Sơ đồ kết nối module II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG 18 Trường ĐH Bách Khoa TP.HCM 2.1. RD và WR trên 2 chân riêng biệt (kiến trúc Intel) - Sơ đồ kết nối kênh II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG 19 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.1. RD và WR trên 2 chân riêng biệt (kiến trúc Intel) * Ví dụ 2: - Phần cứng 8 đường địa chỉ A7-A0, 8 đường dữ liệu D7-D0. Giải mã các ngoại vi sau: • ADC: 16 kênh 8 bit • DAC: 2 kênh 8 bit • PWM: 4 kênh 8 bit • Encoder: 4 kênh 8 bit • DI: 4 kênh 8 bit • DO: 2 kênh 8 bit • CAP: 6 kênh 8 bit • SPI: 1 kênh • I2C: 1 kênh U1 74LS138 1 2 3 15 14 13 12 11 10 9 7 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B 20 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.2. Tín hiệu WR và RD trên 1 chân (kiến trúc Motorola) Giản đồ ghi dữ liệu Giản đồ đọc dữ liệu - Chuyển đổi Giao tiếp RD/WR trên 1 chân -> Giao tiếp RD, WR trên 2 chân riêng biệt? 21 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.2. Tín hiệu WR và RD trên 1 chân (kiến trúc Motorola) D[7..0] A[7..0] STROBE WR/RD D[7..0] A[7..0] RD WR CS 22 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.2. Tín hiệu WR và RD trên 1 chân (kiến trúc Motorola) - Giao tiếp cồng máy in LPT chuẩn EPP (Enhanced Parallel Port) 23 II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG Trường ĐH Bách Khoa TP.HCM 2.3. Độ rộng dữ liệu khác nhau - Phần cứng 8 đường địa chỉ A7-A0, 8 đường dữ liệu D7-D0. Giải mã các ngoại vi sau: • ADC: 4 kênh 12 bit • DAC: 4 kênh 12 bit • PWM: 6 kênh 10 bit • Encoder: 6 kênh 16 bit • DI: 2 kênh 8 bit • DO: 2 kênh 8 bit U14 AT9C52 31 19 18 9 12 13 14 15 1 2 3 4 5 6 7 8 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 17 16 29 30 11 10 EA/VP X1 X2 RESET INT0 INT1 T0 T1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 RD WR PSEN ALE/P TXD RXD 24 III. SỬ DỤNG QUARTUS/ BLOCK DIAGRAM Trường ĐH Bách Khoa TP.HCM 3.1. Qui trình thực hiện 25 III. SỬ DỤNG QUARTUS/ BLOCK DIAGRAM Trường ĐH Bách Khoa TP.HCM 3.1. Qui trình thực hiện - Tạo 1 project mới: File -> New project wizard. - Thiết kế dùng sơ đồ nguyên lý: File -> New -> Block Diagram / Schematic File - Biên dịch mạch thiết kế: Processing -> Start Compilation - Gán chân tín hiệu vào, tín hiệu ra: Assignments -> Assignment Editor - Mô phỏng mạch thiết kế: File -> New -> Vector Waveform File - Lập trình và cấu hình FPGA: Tools -> Programmer - Kiểm tra mạch 26 III. SỬ DỤNG QUARTUS/ BLOCK DIAGRAM Trường ĐH Bách Khoa TP.HCM 3.2. Liên kết các khối - Tạo 1 filet mới: File -> New -> Block Diagram / Schematic File - Đóng gói file thành 1 khối (module): File -> Create/Update -> Create Symbol File for Current File - Sử dụng khối vừa tạo trong 1 Schematic File khác: Double Click -> Libraries
File đính kèm:
- bai_giang_dieu_khien_nhung_chuong_1_thiet_ke_phan_cung_dung.pdf