3 Mục lục CHƯƠNG 1 Tổng quan 6 1 1 Mục tiêu đề tài 6 1 2 Yêu cầu đề tài 6 1 3 Ứng dụng 6 CHƯƠNG 2 Giới thiệu về FPGA và ngôn ngữ VHDL 7 2 1 Giới thiệu FPGA 7 2 1 1 FPGA là gì ? 7 2 1 2 Lịch sử ra đời.
Mục lục CHƯƠNG Tổng quan 1.1 Mục tiêu đề tài 1.2 Yêu cầu đề tài 1.3 Ứng dụng CHƯƠNG Giới thiệu FPGA ngôn ngữ VHDL 2.1 2.2 Giới thiệu FPGA 2.1.1 FPGA ? 2.1.2 Lịch sử đời FPGA 2.1.3 Cấu trúc FPGA 2.1.4 Ứng dụng FPGA Giới thiệu ngơn ngữ lập trình VHDL 2.2.1 VHDL ? 2.2.2 Cấu trúc chương trình VHDL 10 CHƯƠNG Thiết kế mạch 11 3.1 Sơ đồ khối nguyên lý hoạt động 11 3.2 Lựa chọn phần cứng 11 3.2.1 Kit Altera EPM240 V1 12 3.2.2 Module DHT11 12 3.2.3 Mạch nạp FPGA USB Blaster 13 3.2.4 Module điều khiển động L298 14 3.2.5 Quạt 12V 14 3.2.6 LCD16x02 15 CHƯƠNG Lập trình phần mềm 16 4.1 Sơ đồ hệ thống thuật toán 16 4.2 Lập trình FPGA cho phần đọc xử lý DHT11 17 4.3 4.4 4.2.1 Nguyên lý hoạt động DHT11 17 4.2.2 Lập trình DHT11 VHDL 19 Lập trình FPGA cho điều khiển động 22 4.3.1 Phương pháp điều chế xung PWM để điều khiển động 22 4.3.2 Lập trình tạo xung PWM VHDL 23 Lập trình FPGA cho hiển thị LCD 24 4.4.1 Các lệnh LCD 16x02 24 4.4.2 Lập trình LCD VHDL 25 CHƯƠNG Kết kết luận 28 5.1 Kết thực nghiệm 28 5.2 Kết luận 28 Danh mục hình ảnh Hình 2-1 Dịng FPGA Stralix hãng Altera Hình 2-2 Kiến trúc FPGA Hình 2-3 Cấu trúc chương trình VHDL 10 Hình 3-1 Sơ đồ khối mạch 11 Hình 3-2 Kit Altera EPM240 V1 12 Hình 3-3 Module DHT11 13 Hình 3-4 USB Blaster 13 Hình 3-5 Module điều khiển động DC L298 14 Hình 3-6 Quạt 12V DC 15 Hình 4-1 Sơ đồ hệ thống lập trình 16 Hình 4-2 Thuật toán hệ thống 17 Hình 4-3 Bit bit 19 Hình 4-4 Quá trình nhận liệu từ DHT11 20 Hình 4-5 Xung PWM 23 Hình 4-6 Cách gửi lệnh LCD 24 Hình 4-7 Tập lệnh LCD 24 Hình 4-8 Cách gửi liệu LCD 25 Hình 5-1 Kết thực nghiệm 28 CHƯƠNG Tổng quan 1.1 Mục tiêu đề tài Sử dụng ngôn ngữ lập trình VHDL cho kit FPGA EPM240 thực đo nhiệt độ độ ẩm cảm biến DHT11, hiển thị liệu lên LCD điều khiển tốc độ động theo nhiệt độ 1.2 Yêu cầu đề tài Hiểu rõ nguyên lý hoạt động linh kiện, cảm biến Cách kết nối linh kiện lập trình cho FPGA, xử ký kết đo từ cảm biến sau hiển thị lên LCD điều khiển động theo nhiệt độ xác 1.3 Ứng dụng Với thiết kế mạch đề tài phát triển ứng dụng rộng rãi công nghiệp đời sống dựa vào nhiệt độ độ ẩm xung quanh để bật tắt điều khiển quạt nhà tự động, điều khiển động nhà máy dựa vào nhiệt độ lò, nồi nấu… CHƯƠNG Giới thiệu FPGA ngôn ngữ VHDL 2.1 Giới thiệu FPGA 2.1.1 FPGA ? Field Programmable Gate Arrays (FPGA): mạch số tổ hợp (digital integrated circuit) chứa khối logic lập trình liên kết cấu hình - Field Programmable: Cấu trúc lập trình “ngồi nơi sản xuất” - Thiết kế thực sơ đồ (schematic) ngôn ngữ mô tả (hardware description language) - Thiết kế mức phần tử logic flip-flop Hình 2-1 Dịng FPGA Stralix hãng Altera FPGA xem loại vi mạch bán dẫn chuyên dụng ASIC, so sánh FPGA với ASIC đặc chế hoàn toàn hay ASIC thiết kế thư viện logic FPGA khơng đạt đựợc mức độ tối ưu loại này, hạn chế khả thực tác vụ đặc biệt phức tạp, FPGA ưu việt chỗ tái cấu trúc lại sử dụng, công đoạn thiết kế đơn giản chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng Còn so sánh với dạng vi mạch bán dẫn lập trình dùng cấu trúc mảng phần tử logic PLA, PAL, CPLD FPGA ưu việt điểm: tác vụ tái lập trình FPGA thực đơn giản hơn; khả lập trình linh động khác biệt quan trọng kiến trúc FPGA cho phép có khả chứa khối lượng lớn cổng logic so với vi mạch bán dẫn lập trình kể Thiết kế hay lập trình cho FPGA thực chủ yếu ngôn ngữ mô tả phần cứng HDL VHDL, Verilog, AHDL…và gói phần mềm thiết bị phụ trợ cho trình thiết kế thường hãng sản xuất FPGA lớn Xilinx, Altera thường cung cấp 2.1.2 Lịch sử đời FPGA FPGA thiết kế Ross Freeman, người sáng lập công ty Xilinx vào năm 1984, kiến trúc FPGA mở hội cho phép tích hợp số lượng tương đối lớn phần tử bán dẫn vào vi mạch so với kiến trúc trước CPLD FPGA có khả chứa tới từ 100.000 đến hàng vài tỷ cổng logic, CPLD chứa từ 10.000 đến 100.000 cổng logic; số PAL, PLA cịn thấp đạt vài nghìn đến 10.000 CPLD cấu trúc từ số lượng định khối SPLD (simple programmable devices, thuật ngữ chung PAL, PLA) SPLD thường mảng logic AND/OR lập trình có kích thước xác định chứa số lượng hạn chế phần tử nhớ đồng (clocked register) Cấu trúc hạn chế khả thực hàm phức tạp thông thường hiệu suất làm việc vi mạch phụ thuộc vào cấu trúc cụ thể vi mạch vào yêu cầu toán Kiến trúc FPGA kiến trúc mảng khối logic, khối logic, nhỏ nhiều đem so sánh với khối SPLD, ưu điểm giúp FPGA chứa nhiều phần tử logic phát huy tối đa khả lập trình phần tử logic hệ thống mạch kết nối, để đạt mục đích kiến trúc FPGA phức tạp nhiều so với CPLD Một điểm khác biệt với CPLD FPGA đại tích hợp nhiều logic số học sơ tối ưu hóa, hỗ trợ RAM, ROM, tốc độ cao… Ngoài khả tái cấu trúc vi mạch toàn cục, số FPGA đại hỗ trợ tái cấu trúc cục bộ, tức khả tái cấu trúc phận riêng lẻ đảm bảo hoạt động bình thường cho phận khác 2.1.3 Cấu trúc FPGA Kiến trúc FPGA bao gồm thành phần chính: khối logic tái cấu hình, Configurable Logic Blocks (CLBs) thực chức logic; tài nguyên kết nối, Porgrammable Interconnect lập trình để kết nối đầu vào đầu CLB khối I/O bên trong; khối I/O cung cấp giao tiếp ngoại vi đường tín hiêu bên Hình 2-2 Kiến trúc FPGA Theo thời gian, kiến trúc FPGA phát triển thông qua việc bổ sung khối chức đặc biệt lập trình, nhớ (Block RAMs), logic số học (ALU), nhân, DSP-48 chí vi xử lý nhúng thêm vào nhu cầu nguồn tài nguyên cho ứng dụng Kết nhiều FPGA ngày có nhiều nguồn tài nguyên so với FPGA trước 2.1.4 Ứng dụng FPGA Ứng dụng FPGA bao gồm: xử lý tín hiệu số DSP, hệ thống hàng khơng, vũ trụ, quốc phịng, tiền thiết kế mẫu ASIC (ASIC prototyping), hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mơ hình phần cứng máy tính, Do tính linh động cao q trình thiết kế cho phép FPGA giải lớp toán phức tạp mà trước thực nhờ phần mềm máy tính, ngồi nhờ mật độ cổng logic lớn FPGA ứng dụng cho tốn địi hỏi khối lượng tính tốn lớn dùng hệ thống làm việc theo thời gian thực 2.2 Giới thiệu ngơn ngữ lập trình VHDL 2.2.1 VHDL ? VHDL viết tắt cụm từ Very High Speed Intergrated Circuit Hardware Description Language – ngôn ngữ mô tả phần cứng Nó mơ tả hoạt động mạch điện tử hệ thống, từ mạch vật lý hệ thống thực Hai ứng dụng VHDL lĩnh vực PLD ( Programmable Logic Device – Thiết bị logic lập trình bao gồm CPLD – Complex Programmable Logic Device FPGA – Field Programmable Gate Array) lĩnh vực ASIC (Application Specific Integrated Circuit – Mạch tích hợp dành riêng cho ứng dụng) Khi chương trình VHDL viết, sử dụng để thực thi mạch thiết bị lập trình (của Altera, Xilinx, Atmel…) gửi đến xưởng để chế tạo chip ASIC Hiện nay, nhiều chip thương mại phức tạp (ví dụ vi điều khiển) thiết kế theo cách tiếp cận Ưu điểm VHDL - Tính cơng cộng - Khả hỗ trợ nhiều công nghệ phương pháp thiết kế - Ðộc lập với công nghệ - Khả mô tả mở rộng - Khả trao đổi kết - Khả hỗ trợ thiết kế mức lớn khả sử dụng lại thiết kế 2.2.2 Cấu trúc chương trình VHDL Tất chương trình VHDL bao gồm ba thành phần sau đây: - Khai báo thư viện (LIBRARY): Chứa danh sách tất thư viện sử dụng thiết kế Ví dụ: ieee, std, work,… - ENTITY (thực thể): Entity dùng để khai báo tên thực thể, port thực thể thông tin liên quan đến thực thể - ARCHITECTURE (kiến trúc): Kiến trúc mô tả chức thực thể chứa nhiều phát biểu mô tả hành vi thực thể Kiến trúc ln ln có liên quan đến thực thể mơ tả hành vi thực thể Hình 2-3 Cấu trúc chương trình VHDL 10 CHƯƠNG Thiết kế mạch 3.1 Sơ đồ khối nguyên lý hoạt động Hình 3-1 Sơ đồ khối mạch - Khối cảm biến LM35: thực đo giá trị nhiệt độ từ môi trường xung quanh - Khối xử lý EPM240 số 1: xử lý liệu nhiệt độ độ ẩm sau chuyển liệu sang EPM240 số - Khối điều khiển EPM240 số 2: nhận liệu từ EPM240 số sau gửi lên khối hiển thị, đồng thời đưa lệnh điều khiển động - Khối hiển thị: hiển thị liệu nhiệt độ độ ẩm đo - Khối chấp hành: hoạt động theo lệnh điều khiển EPM240 số 3.2 Lựa chọn phần cứng 11 3.2.1 Kit Altera EPM240 V1 Hình 3-2 Kit Altera EPM240 V1 Thơng số kỹ thuật - Điện áp : 12VDC - Sử dụng chip: EPM240T100C5N TQFP100 - Điện áp: DC5V - Tương thích mạch nạp USB Blaster - Giao tiếp LCD1602, LCD12864 - Giao tiếp UART - Giao tiếp Key đơn - Giao Tiếp LED đơn - Hỗ trợ cổng IO 3.2.2 Module DHT11 Cảm biến độ ẩm nhiệt độ DHT11 cảm biến thơng dụng chi phí rẻ Module DHT11 chân tích hợp sẵn điện trở 5,1k giúp người dùng dễ dàng kết nối sử dụng so với cảm biến DHT11 chưa chân, module lấy liệu thông qua giao tiếp wire (giao tiếp digital dây truyền liệu nhất) Bộ tiền xử lý tín hiệu tích hợp cảm biến giúp bạn có liệu xác mà khơng cần phải qua tính tốn 12 + Excalibur + FPGA - Bạn thực chương trình hệ thống thiết bị sau: + Các thiết bị cấu hình Altera bao gồm thiết bị EPC2 + Các thiết bị cấu hình bao gồm tăng cường EPC4, EPC8, thiết bị EPC16 + Các thiết bị cấu hình nối tiếp bao gồm EPCS1, EPCS4, EPCS16, EPCS64 thiết bị EPCS128 - Cáp tải USB-Blaster hỗ trợ hệ thống mục tiêu sử dụng 5V TTL, 3,3V 3.2.4 Module điều khiển động L298 Module điều khiển động DC L298 có khả điều khiển động DC, dòng tối đa 2A động cơ, mạch tích hợp diod bảo vệ IC nguồn 7805 giúp cấp nguồn 5VDC cho module khác (chỉ sử dụng 5V nguồn cấp 10ms để đảm bảo cảm biến phát tín hiệu MCU Sau MCU kéo chân data lên 1, đợi 20 - 40us, DHT11 kéo chân data xuống thấp Nếu > 40us mà chân data không kéo xuống thấp nghĩa không giao tiếp với DHT11 Chân data mức thấp 80us sau kéo lên cao 80us Thông qua việc giám sát chân này, MCU biết có giao tiếp với DHT11 khơng Nếu tín hiệu đo cao, hồn tất q trình giao tiếp MCU với DHT11 - Bước 2: đọc giá trị liệu DHT11 Sau tiến hiệu đưa 0, ta đợi chân data DHT11 MCU kéo lên Nếu chân DATA khoảng 26 – 28 µs bit 0, cịn tồn 70 µs bit Do lập trình ta bắt sườn chân data, sau delay 50 µs Nếu giá trị đo ta đọc bit 0, giá trị đo ta đọc bit Cứ đọc bit 18 Hình 4-3 Bit bit 4.2.2 Lập trình DHT11 VHDL Khai báo đầu vào ra, kiểu liệu biến cho trình nhận liệu DHT11 Sau thực lập trình theo trạng thái hình 4-2 Ban đầu trạng thái start để gửi tín hiệu đến cho DHT11 nhận tín hiệu lại từ DHT11, không phát kết nối DHT11 thực Start lại có kết nối Sau có tín hiệu DHT11, chuyển sang trạng thái Get_data Read_bit để thực việc lấy ghi 40 bit liệu từ DHT11 biến Cuối sau hoàn thành việc lấy liệu chuyển trạng thái Delay_ms khoảng thời gian lại bắt đầu lại trình 19 Hình 4-4 Quá trình nhận liệu từ DHT11 Q trình cụ thể hóa qua code VHDL sau - Trạng thái Start 20 - Trạng thái Get_data - Trạng thái Read_bit 21 - Trạng thái Delay_ms 4.3 Lập trình FPGA cho điều khiển động 4.3.1 Phương pháp điều chế xung PWM để điều khiển động Phương pháp điều chế PWM (Pulse Width Modulation) phương pháp điều chỉnh điện áp tải hay nói cách khác phương pháp điều chế dựa thay đổi độ rộng chuỗi xung vuông dẫn đến thay đổi điện áp ngõ Xung PWM có đặc điểm: - Dạng xung vuông, mức điện áp 0V +Vcc (5V, 12V, ) - Các thông số xung PWM: tần số f (frequency) chu kỳ xung D (duty cycle) - Trong trình điều chế độ rộng xung PWM, tần số f đại lượng giữ cố định, duty cycle D tham số điều khiển thay 22 Hình 4-5 Xung PWM 4.3.2 Lập trình tạo xung PWM VHDL Khai báo đầu in1, in2 kết nối với đầu dương âm động Gán giá trị in2 mặc định 0, giá trị in1 tùy thuộc vào trạng thái p theo khoảng nhiệt độ setup sẵn Tạo độ rộng xung PWM cách kích hoạt in1 khoảng chu kỳ Ví dụ p50 động chạy chu kỳ (ứng với chu kỳ xung clk) nghỉ chu kỳ, lặp lại tiếp tục p75 động chạy chu kỳ nghỉ chu kỳ, lặp lại tiếp tục 23 4.4 Lập trình FPGA cho hiển thị LCD 4.4.1 Các lệnh LCD 16x02 Để lập trình LCD trước tiên phải gửi lệnh vào cho LCD biết phải làm Hình 4-6 Cách gửi lệnh LCD Hình 4-7 Tập lệnh LCD Sau gửi lệnh vào LCD (qua chân D0 – D7) để biết phải làm (bật hình, hiển thị hay tắt trỏ, di chuyển trỏ …), phải gửi lệnh chứa kí tự mà muốn hiển thị Cách gửi liệu tương tự cách gửi lệnh 24 Hình 4-8 Cách gửi liệu LCD 4.4.2 Lập trình LCD VHDL Khai báo đầu vào dành cho lập trình LCD Với liệu nhiệt độ độ ẩm gửi từ phần DHT11 tới Ở sử dụng thuật toán dịch cộng Xử lý liệu nhiệt độ độ ẩm, lưu số hàng trăm, chục, nghìn vào biến riêng biệt chuyển chúng mã ASCII để thị lên LCD Bằng cách cộng thêm X”30” 25 26 27 CHƯƠNG Kết kết luận 5.1 Kết thực nghiệm Hình 5-1 Kết thực nghiệm Kết thực nghiệm cho thấy chương trình hoạt động ổn định, đo nhiệt độ độ ẩm, thời gian đáp ứng nhanh, động LCD hoạt động ổn định xác, thỏa mãn mục tiêu đặt 5.2 Kết luận Qua đề tài nhóm biết cách giải tốn dùng kit EPM240 đo nhiệt độ, độ ẩm DHT11, hiển thị LCD điều khiển động Đề tài giúp chúng em củng cố kiến thức môn học FPGA ứng dụng, vận dụng kiến thức điện tử lập trình ngơn ngữ VHDL để giải toán thực tế 28 ... trình VHDL cho kit FPGA EPM240 thực đo nhiệt độ độ ẩm cảm biến DHT11, hiển thị liệu lên LCD điều khiển tốc độ động theo nhiệt độ 1.2 Yêu cầu đề tài Hiểu rõ nguyên lý hoạt động linh kiện, cảm... Khối điều khiển EPM240 số 2: nhận liệu từ EPM240 số sau gửi lên khối hiển thị, đồng thời đưa lệnh điều khiển động - Khối hiển thị: hiển thị liệu nhiệt độ độ ẩm đo - Khối chấp hành: hoạt động. .. nhiệt độ độ ẩm xung quanh để bật tắt điều khiển quạt nhà tự động, điều khiển động nhà máy dựa vào nhiệt độ lò, nồi nấu… CHƯƠNG Giới thiệu FPGA ngôn ngữ VHDL 2.1 Giới thiệu FPGA 2.1.1 FPGA ? Field