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

Thiết-kế-mạch-cảnh-báo-khí-gas-và-hiển-thị-nhiệt-độ-sử-dụng-FPGA_N16

17 32 0

Đ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

Định dạng
Số trang 17
Dung lượng 2,64 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong đề tài này nhóm em hướng tới giải quyết những vấn đề sau: Đo nồng độ khí gas qua Arduino Uno và truyền dữ liệu từ Arduino lên FPGA do ban đầu dự kiến là dữ liệu đọc được từ cảm bi

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-oOo -VIỆN ĐIỆN

BÁO CÁO MÔN HỌC FPGA

Đề tài: “Thiết kế mạch cảnh báo khí gas và hiển thị nhiệt độ sử

dụng FPGA.”

Giảng viên hướng dẫn: TS Nguyễn Đại Dương

Nhóm 16:

Ngô Hữu Hoàng 20173911 Nguyễn Thị Khởi 20173988

Vũ Thị Thanh Mai 20174040 Nguyễn Văn Quang 20174138

Hà Nội, 6/2021

Trang 2

MỤC LỤC

CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 4

1.1 Tổng quan 4

1.2 Sơ đồ mạch đo và các linh kiện trong mạch 4

1.2.1 Kit FPGA 4

1.2.2 Cảm biến khói MQ6 5

1.2.3 Cảm biến nhiệt độ LM35 6

1.2.4 Arduino Uno 6

CHƯƠNG 2: THIẾT KẾ MẠCH ĐO 10

2.1 Sơ đồ thuật toán 10

2.1.1 Khối tạo xung 10

2.1.2 Khối Receiver 10

2.1.3 Khối so sánh 11

2.1.4 Khối chuyển đổi số BCD sang mã led 7 thanh (Code) 11

2.1.5 Khối hiển thị khí gas 12

2.1.6 Khối hiển thị nhiệt độ 12

2.1.7 Khối còi báo động 12

2.1.8 Các khối nhớ 13

2.2 Mạch mô phỏng 13

CHƯƠNG 3: KẾT LUẬN 14

3.1 Đánh giá, phân tích 14

3.2 Định hướng phát triển đề tài 14

TÀI LIỆU THAM KHẢO 15

Trang 3

DANH SÁCH HÌNH Ả

Hình 1 1 Sơ đồ mạch đo 4

Hình 1 2 Kit FPGA 4

Hình 1 3 Cảm biến khí Gas MQ6 5

Hình 1 4 Cảm biến nhiệt độ LM35 6

Hình 1 5 Các chân của Arduino Uno 7

Hình 1 6 Giao tiếp UART 8

Hình 1 7 Frame truyền UART 8

YHình 2 1 Sơ đồ khối tổng quát 10

Hình 2 2 Khối tạo xung 10

Hình 2 3 Khối nhận 10

Hình 2 4 Khối so sánh 11

Hình 2 5 Khối chuyển đổi BCD sang led 7 thanh 11

Hình 2 6 Khối hiển thị khí Gas 12

Hình 2 7 Khối hiển thị nhiệt độ 12

Hình 2 8 Khối còi báo động 13

Hình 2 9 Các khối nhớ 13

Hình 2 10 Mạch mô phỏng 13

Trang 4

DANH SÁCH BẢNG

Bảng 1 Đặc điểm của Arduino Uno 7

Trang 5

CHƯƠNG 1: CƠ SỞ LÍ THUYẾT

1.1Tổng quan

Ngày nay khoa học kỹ thuật phát triển rất nhanh đặc biệt là điện-điện tử Gắn liền với

sự phát triển của điện tử là sự phát triển của các vi xử lý, vi điều khiển vi mạch điện tử Và trong vi điều khiển cũng có sự nhảy vọt được đánh dấu bằng sự ra đời của các vi điều khiển như PIC, AVR, FPGA

Các vi điều khiển ngày càng đươc ứng dụng rộng rãi và phổ biến Để nghiên cứu về FPGA nhóm em lựa chọn đề tài “Đo nồng độ khí Gas và đo nhiệt độ ” Đây là một đề tài không mới nhưng đề tài này giúp chúng em có thể hiểu biết thêm về cấu trúc bên trong, cách hoạt động của các cảm biến cũng như cách lập trình FPGA

Trong đề tài này nhóm em hướng tới giải quyết những vấn đề sau:

Đo nồng độ khí gas qua Arduino Uno và truyền dữ liệu từ Arduino lên FPGA ( do ban đầu

dự kiến là dữ liệu đọc được từ cảm biến sẽ được xử lý qua ADC rồi truyền lên FPGA nhưng

do quá trình vạn chuyển, ADC bị gãy mất 1 chân nên nhóm em chuyển qua hướng này) Các linh kiện sử dụng trong đề tài:

 Kit FPGA Altera EPM240

 Arduino Uno

 Cảm biến khí gas MQ6

 Cảm biến nhiệt độ LM35

1.2 Sơ đồ mạch đo và các linh kiện trong mạch

Hình 1 1 Sơ đồ mạch đo

1.2.1 Kit FPGA

Hình 1 2 Kit FPGA

Trang 6

FPGA là viết tắt của thuật ngữ tiếng anh “Field Programmable Gate Array” nếu được dịch sang tiếng việt là một loại vi mạch dùng cấu trúc mảng phần tử logic có thể lập trình được Hay có thể hiểu nôm na nó là một loại chip trắng cho phép người dùng có thể tái cấu hình lại kiến trúc theo ý người dùng để thực thi một chức năng cụ thể

Để dễ hình dung hơn, nếu như những ai đã biết về lập trình vi điều khiển hoặc ARM, thì những vi điều khiển này như (AT89/PIC/MSP430, …) hoặc ARM SoC (STM32, …) đều

là loại chip được thiết kế trên công nghệ ASIC, tức kiến trúc phần cứng do nhà sản xuất thiết kế được cố định trong quá trình sản xuất, người dùng không thể nào thay đổi hoặc chỉnh sửa được Người kĩ sư lập trình ứng dụng hoặc lập trình firmware đều phải nghiên cứu nắm vững kiến trúc của từng loại VĐK trên để phát triển phần mềm, giải thuật tương ứng Do đó, lập trình vi điều khiển còn được hiểu là lập trình phần mềm dựa trên phần cứng

có sẵn Còn đối với FPGA, người dùng có thể tự thiết kế lại kiến trúc phần cứng theo ý mình muốn, kèm theo xây dựng các driver tương ứng để phát triển các phần mềm ứng dụng

và giải thuất tối ưu hơn

Như vậy, ưu điểm thứ nhất của FPGA là tính linh động đối với người dùng, giúp phát triển các giải pháp tốt hơn mà không phụ thuộc vào phần cứng của nhà sản xuất Chúng ta

có thể sử dụng FPGA để thiết kế cũng như lập trình được hầu hết các chức năng của bất kì mạng số nào Việc so sánh ưu điểm, khuyết điểm giữa công nghệ FPGA và ASIC sẽ được thảo luận trong các chuyên mục sau

Cũng giống như vi điều khiển, số lần nạp FPGA hầu như không giới hạn Dữ liệu (chương trình) nạp cho FPGA sẽ bị mất khi mất nguồn (điện) giống như RAM trong máy tính Nếu muốn lưu giữ lại file nạp này thì cần phải có một bộ nhớ ngoài Flash/ ROM (do đặc tính của loại bộ nhớ này là lưu dữ liệu cho dù có mất nguồn) để mỗi lần bật nguồn, file dạng binary

sẽ tự động nạp lại vào FPGA

1.2.2 Cảm biến khói MQ6

Cảm biến khói MQ-6 [ CITATION HAN \l 1033 ]được ứng dụng trong các thiết bị phát hiện sự rò rỉ khí gas Trong dân dụng cũng như trong công nghiệp cảm biến này có khả năng phát hiện khí thiên nhiên, khí than Tránh các tác nhân gây nhiễu là rượu, khói nấu

ăn và khói thuốc lá Độ nhạy cảm biến có thể được điều chỉnh bằng biến trở tinh chỉnh

Hình 1 3 Cảm biến khí Gas MQ6

Đặc tính:

-Nguồn cung cấp: 2.5V ~ 5V

Trang 7

-Tích hợp MQ –6 gas Sensor

-Kích thước: 40mm * 21mm

-Led báo hiệu -Đáp ứng nhanh

-Cảm biến hoạt động ổn định và bền

-Sử dụng đơn giản

1.2.3 Cảm biến nhiệt độ LM35

Hình 1 4 Cảm biến nhiệt độ LM35

LM35 là một cảm biến nhiệt độ giá rẻ thường được tiêu dùng mang thể được sử dụng

để đo nhiệt độ (theo ℃) Nó có thể đo nhiệt độ chính xác hơn so với một điện trở nhiệt (thermistor) cùng tầm giá Cảm biến này tạo ra điện áp có đầu ra cao hơn các cặp nhiệt điện

và có thể không cần điện áp đầu ra được khuếch đại LM35 có điện áp đầu ra tỉ lệ thuận có nhiệt độ Celsius Hệ số tỉ lệ là 0.01V/℃

LM35 có độ chuẩn xác hơn kém 0,4 ° C ở nhiệt độ phòng bình thường và hơn kém 0,8 ° C trong khoảng 0 ° C đến + 100 ° C Một đặc tính quan trọng hơn của cảm biến này là rằng nó chỉ thu được 60 microamps từ nguồn cung ứng và có khả năng tự sưởi ấm thấp

Một số tính chất của cảm biến LM35:

-Đầu ra của cảm biến nhiệt độ lm35 thay đổi diễn tả tuyến tính

-Điện áp o / p của cảm biến IC này tỉ lệ với nhiệt độ Celsius

-Điện áp hoạt động từ -55˚ đến + 150˚C

-Được vận hành dưới 4 tới 30 vôn

1.2.4 Arduino Uno

-Một số đặc điểm của Arduino Uno:

Trang 8

Hình 1 5 Các chân của Arduino Uno

Bảng 1 Đặc điểm của Arduino Uno

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Điện áp vào khuyên dùng 7-12V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Dòng tối đa trên mỗi chân I/O 30 mA

bởi bootloader

-Giao tiếp UART:

Các tên đầy đủ UART là “Universal Asynchronous Receiver / Transmitter”, và nó là một vi mạch sẵn có trong một vi điều khiển nhưng không giống như một giao thức truyền thông (I2C & SPI) Chức năng chính của UART là truyền dữ liệu nối tiếp Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song

Trang 9

Hình 1 6 Giao tiếp UART

Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau Đối với điều này, chỉ cần hai cáp để giao tiếp giữa hai UART Luồng dữ liệu sẽ từ cả hai chân truyền (Tx) và nhận (Rx) của UARTs Trong UART, việc truyền dữ liệu từ Tx UART sang Rx UART có thể được thực hiện không đồng bộ (không có tín hiệu CLK để đồng bộ hóa các bit o / p)

Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữ liệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU, v.v Sau khi nhận được dữ liệu song song từ bus, nó tạo thành gói dữ liệu bằng cách thêm ba bit như bắt đầu, dừng lại và trung bình Nó đọc từng bit gói dữ liệu và chuyển đổi dữ liệu nhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu Tóm lại, gói dữ liệu nhận được bởi UART chuyển song song về phía bus dữ liệu ở đầu nhận

Hình 1 7 Frame truyền UART

Start bit

Start-bit còn được gọi là bit đồng bộ hóa được đặt trước dữ liệu thực tế Nói chung, một đường truyền dữ liệu không hoạt động được điều khiển ở mức điện áp cao Để bắt đầu truyền dữ liệu, truyền UART kéo đường dữ liệu từ mức điện áp cao (1) xuống mức điện áp thấp (0) UART thu được thông báo sự chuyển đổi này từ mức cao sang mức thấp qua đường dữ liệu cũng như bắt đầu hiểu dữ liệu thực Nói chung, chỉ có một start-bit

Bit dừng

Bit dừng được đặt ở phần cuối của gói dữ liệu Thông thường, bit này dài 2bit nhưng thường chỉ sử dụng 1 bit Để dừng sóng, UART giữ đường dữ liệu ở mức điện áp cao

Trang 10

Bit chẵn lẻ

Bit chẵn lẻ cho phép người nhận đảm bảo liệu dữ liệu được thu thập có đúng hay không Đây là một hệ thống kiểm tra lỗi cấp thấp & bit chẵn lẻ có sẵn trong hai phạm vi như Chẵn lẻ – chẵn lẻ cũng như Chẵn lẻ – lẻ Trên thực tế, bit này không được sử dụng rộng rãi nên không bắt buộc

Dữ liệu bit hoặc khung dữ liệu

Các bit dữ liệu bao gồm dữ liệu thực được truyền từ người gửi đến người nhận Độ dài khung dữ liệu có thể nằm trong khoảng 5 & 8 Nếu bit chẵn lẻ không được sử dụng thì chiều dài khung dữ liệu có thể dài 9 bit Nói chung, LSB của dữ liệu được truyền trước tiên sau đó nó rất hữu ích cho việc truyền

Trang 11

CHƯƠNG 2: THIẾT KẾ MẠCH ĐO

2.1 Sơ đồ thuật toán

Hình 2 1 Sơ đồ khối tổng quát

2.1.1 Khối tạo xung

Hình 2 2 Khối tạo xung

Chức năng: Điều chế xung thời gian phục vụ hoạt động của các khối chức năng khác -Đầu vào: Xung “clk” với ���� = 2.5 ms (50MHz)

-Đầu ra:

• Xung “clock” với ���oc� = 2,5 ms

• Xung “clk_400Hz”: tín hiệu clock với tần số 400Hz

2.1.2 Khối Receiver

Hình 2 3 Khối nhận

Trang 12

Chức năng: Nhận tín hiệu từ khung truyền bản tin tới

-Đầu vào:

• RX: Nhận dữ liệu truyền vào từ Arduino

• Clock : Xung cấp với tần số 400 Hz

-Đầu ra:

• Control: Tín hiệu điều khiển khối so sánh khí gas và khối hiển thị led 7 thanh

• Dta1, dta2, dta3, dta4: lần lượt là số thứ 1,2,3,4 nhận được để hiển thị lên 4 led 7 thanh

2.1.3 Khối so sánh

Hình 2 4 Khối so sánh

Chức năng: So sánh giá trị nhận với giá trị đặt ban đầu (400) để đưa ra tín hiệu cảnh báo

-Đầu vào:

• Digit1: dữ liệu hàng nghìn của khí gas

• Digit2: dữ liệu hàng trăm của khí gas

• Digit3: dữ liệu hàng chục của khí gas

• Digit4: dữ liệu hàng đơn vị của khí gas

-Đầu ra: Alarm: tín hiệu cảnh báo khi alarm =’0’

2.1.4 Khối chuyển đổi số BCD sang mã led 7 thanh (Code)

Hình 2 5 Khối chuyển đổi BCD sang led 7 thanh.

-Đầu vào: Dữ liệu hiển thị

• Hexa1: Chữ số hàng nghìn của khí gas, hàng trăm của nhiệt độ

• Hexa2: Chữ số hàng trăm của khí gas, hàng chục của nhiệt độ

• Hexa3: Chữ số hàng chục của khí gas, hang đơn vị của nhiệt độ

• Hexa4: Chữ số hàng đơn vị của khí gas, phần lẻ của nhiệt độ

Trang 13

-Đầu ra: Code1, code2, code3, code 4: mã hiển thị led 7 thanh tương ứng với các mã hexa 1, hexa2, hexa3, hexa4

2.1.5 Khối hiển thị khí gas

Hình 2 6 Khối hiển thị khí Gas

Chức năng: Hiển thị dữ liệu khí gas trên Led 7 thanh

-Đầu vào:

• Data1, data2, data3, data4: mã 8bit hiển thị led 7 thanh của dữ liệu về khí gas

- Đầu ra:

• Data: dữ liệu 8bit hiển thị led 7 thanh vào thời điểm được xét tương ứng với led được bật sáng

• Led: tín hiệu 4bit cho phép chọn led 7 thanh tương ứng được sáng vào thời điểm nào đó

2.1.6 Khối hiển thị nhiệt độ

Hình 2 7 Khối hiển thị nhiệt độ

Chức năng: Hiển thị giá trị nhiệt độ lên Led 7 thanh

-Đầu vào:

• Data1, data2, data3, data4: các mã 8bit hiển thị led 7 thanh của dữ liệu về nhiệt độ

• Clk: xung có tần số 400Hz để thực hiện quét led 7 thanh

-Đầu ra:

• Data: dữ liệu 8 bit hiển thị led 7 thanh vào thời điểm được xét tương ứng với led được bật sáng

• Led: tín hiệu 4bit cho phép chọn led 7 thanh tương ứng được sáng vào thời điểm nào đó

2.1.7 Khối còi báo động

Trang 14

Hình 2 8 Khối còi báo động

Chức năng: Phát ra tin hiệu âm thanh khi nhận được tín hiệu cảnh báo

-Đầu vào:

• Act: Nhận tín hiệu từ khối cảnh báo alarm trước đó

• Clk: Xung 400 Hz cấp cho còi chíp hoạt động

-Đầu ra: Bell: Tín hiệu ra nối đến còi chíp

2.1.8 Các khối nhớ

Hình 2 9 Các khối nhớ

-Cấu tạo: Bao gồm các D-FlipFlop

-Chức năng:

 Bộ đệm dùng để tạo trễ cho tín hiệu điều khiển và dữ liệu cần hiển thị

 Khối memory V5 thì dữ liệu chỉ được thay đổi khi có tín hiệu điều khiển xung sườn lên Tín hiệu control từ receiver đưa vào chân ena của V5

 Khối memory V6 thì dữ liệu chỉ được thay đổi khi có tín hiệu điều khiển xung sườn xuống

2.2 Mạch mô phỏng

Hình 2 10 Mạch mô phỏng

Trang 16

CHƯƠNG 3: KẾT LUẬN

3.1 Đánh giá, phân tích

 -Mô phỏng đáp ứng được yêu cầu đề ra

 -Mạch hoạt động tương đối tốt ổn định

3.2 Định hướng phát triển đề tài

 Hướng tới hệ thống cảnh báo cháy vào rỉ khí gas có thể truyền thông không dây

 Khắc phục xử lý dữ liệu truyền từ các cảm biến bằng ADC thay vì dùng Arduino truyền tin UART

Trang 17

TÀI LIỆU THAM KHẢO

[1] MQ6 DATASHEET, "https://www.sparkfun.com," [Online] Available: https://www.sparkfun.com/datasheets/Sensors/Biometric/MQ-6.pdf

[2] Giao tiếp UART [Trực tuyến] Available: https://advancecad.edu.vn/khai-niem-co-ban-ve-truyen-thong-uart-so-do-khoi-ung-dung/

[3] LM35 DATASHEET, "https://www.ti.com," [Online] Available:

https://www.ti.com/lit/ds/symlink/lm35.pdf

[4] Nguyễn Đại Dương,Giáo trình FPGA và ứng dụng,2019

Ngày đăng: 30/06/2021, 21:04

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w