1. Trang chủ
  2. » Thể loại khác

123doc luan van tot nghiep lap trinh nha thong minh voi vi dieu khien stm32

63 9 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

Tiêu đề Lập trình nhà thông minh với vi điều khiển STM32
Trường học Trường Đại Học Bách Khoa - Đại Học Quốc Gia TP.Hồ Chí Minh
Chuyên ngành Điện Tử
Thể loại đồ án tốt nghiệp
Năm xuất bản 2021
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 63
Dung lượng 2,39 MB

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

Nội dung

3.6 Lập trình giao diện trên máy tính để thực hiện giao tiếp giữa người dùng và hệ thống 3.6.1 Giao tiếp với module điều khiển trung tâm 3.6.2 Lưu lại lịch sử hoạt động của hệ thống ....

Trang 1

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ

-o0o -ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP

LẬP TRÌNH NHÀ THÔNG MINH VỚI VI

ĐIỀU KHIỂN STM32

GVHD:

SVTH : MSSV :

TP HỒ CHÍ MINH, THÁNG 1 NĂM 2021

Trang 2

LỜI CẢM ƠN

Tp Hồ Chí Minh, ngày tháng năm

Sinh viên

Trang 3

MỤC LỤC

1 GIỚI THIỆU .

1.1 Tổng quan .

1.2 Tình hình nghiên cứu trong và ngoài nước .

1.3 Mục tiêu đề tài .

2 NỘI DUNG ĐỀ TÀI .

2.1 Cơ sở lý thuyết .

2.1.1 Chuẩn giao tiếp RS485 .

2.1.2 RFID .

2.1.3 Chuẩn giao tiếp One – Wire 2.1.4 Giao thức Microcontroller Interconnect Network (MIN) 2.2 Vi điều khiển và các module .

2.2.1 Vi điều khiển STM32F103C8T6 2.2.2 Cảm biến khí CO và khí Gas MQ-9 2.2.3 Cảm biến nhiệt độ, độ ẩm DHT-22 2.3 Thiết kế giải thuật điều khiển .

2.3.1 Module điều khiển trung tâm

2.3.2 Module điều khiển công tắc

2.3.3 Module khóa cửa

2.3.4 Giao diện trên máy tính

3 GIẢI PHÁP THỰC HIỆN .

3.1 Thiết lập giao tiếp giữa các module trong hệ thống 3.1.1 Thiết lập giao tiếp giữa module điều khiển trung tâm với các module khác

3.1.2 Thiết lập giao tiếp với module khóa cửa

3.1.3 Thiết lập giao tiếp với module điều khiển công tắc

Trang 4

Đề cương luận văn GVHD:

3.1.4 Thiết lập giao tiếp với module cảm biến

3.2 Lập trình chức năng cho module khóa cửa sử dụng thẻ từ và bàn phím 3.2.1 Giao tiếp với module RC522 .

3.2.2 Điều khiển khóa cửa bằng bàn phím .

3.2.3 Giao tiếp với màn hình LCD .

3.2.4 Điều khiển khóa cửa thông qua giao diện trên máy tính 3.3 Lập trình chức năng cho module điều khiển công tắc .

3.3.1 Các biến trạng thái của công tắc .

3.3.2 Điều khiển công tắc thông qua giao diện trên máy tính 3.4 Lập trình chức năng cho module cảm biến .

3.4.1 Đọc dữ liệu từ các cảm biến MQ-9 .

3.4.2 Đọc dữ liệu nhiệt độ, độ ẩm trong các phòng từ cảm biến DHT-22 3.4.3 Giao tiếp với module điều khiển trung tâm

3.5 Lập trình chức năng cho module điều khiển trung tâm .

3.5.1 Giao tiếp với các module khác trong hệ thống 3.5.2 Giao tiếp với máy tính .

3.5.3 Kiểm tra kênh truyền

3.6 Lập trình giao diện trên máy tính để thực hiện giao tiếp giữa người dùng và hệ thống 3.6.1 Giao tiếp với module điều khiển trung tâm 3.6.2 Lưu lại lịch sử hoạt động của hệ thống .

3.6.3 Hiển thị và điều khiển trạng thái của công tắc 3.6.4 Hiển thị và điều khiển trạng thái khóa cửa 3.6.5 Hiển thị trạng thái của các cảm biến .

3.7 Thiết kế sơ đồ nguyên lý và mạch in cho các module .

3.7.1 Thiết kế module khóa cửa .

3.7.2 Thiết kế module điều khiển công tắc

3.7.3 Thiết kế module điều khiển trung tâm .

Trang 5

4 DỰ KIẾN KẾT QUẢ ĐẠT ĐƯỢC .

4.1 Kết quả sơ khởi đạt được .

4.1.1 Giao diện trên máy tính .

4.1.2 Hoạt động của hệ thống .

4.1.3 Hoàn thiện phần cứng .

4.2 Kết quả dự kiến đạt được .

5 KẾ HOẠCH THỰC HIỆN .

6 TÀI LIỆU THAM KHẢO .

Trang 6

Đề cương luận văn GVHD:

DANH SÁCH HÌNH

Hình 2-1: Tín hiệu điện áp 2 chân A, B trong kết nối RS485 2

Hình 2-2: Sơ đồ kết nối 2 thiết bị sử dụng kết nối RS485 với trở kháng đặc tính Z0 3

Hình 2-3: Sơ đồ hệ thống sử dụng giao tiếp RS485 có nối đất 4

Hình 2-4: Cách đặt điện trở đầu cuối RT trong kết nối RS485 4

Hình 2-5: Tín hiệu trong kết nối RS485 thu được tương ứng với 2 giá trị điện trở RT khác nhau 5

Hình 2-6: Nguyên lý hoạt động của RFID 6

Hình 2-7: Mô tả cấu trúc bộ nhớ thẻ MIFARE 1K 7

Hình 2-8: Mô hình Master – Slave trong chuẩn giao tiếp One-Wire 8

Hình 2-9: Dạng sóng của tín hiệu trong giao tiếp bằng chuẩn One-Wire 9

Hình 2-10: Quy định về các khoảng thời gian chờ của tín hiệu 9

Hình 2-11: Khung dữ liệu của giao thức MIN 11

Hình 3-1 : Byte dữ liệu được quy định để dùng trong điều khiển LCD 27

Hình 3-2: Sơ đồ nguyên lý của module khóa cửa 40

Hình 3-3: Layout của module khóa cửa 41

Hình 3-4: Sơ đồ nguyên lý của module điều khiển công tắc 42

Hình 3-5: Layout của module điều khiển công tắc 43

Hình 3-6: Sơ đồ nguyên lý của module điều khiển trung tâm 44

Hình 3-7: Layout của module điều khiển trung tâm 45

Hình 4-1: Kết quả thiết kế giao diện trên máy tính 46

Hình 4-2: Kết quả hoạt động của hệ thống 1 46

Hình 4-3: Kết quả hoạt động của hệ thống 2 47

Hình 4-4: Kết quả hoạt động của hệ thống 3 47

Hình 4-5: Kết quả thi công module khóa cửa 48

Hình 4-6: Kết quả thi công module điều khiển công tắc 49

Hình 4-7: Kết quả thi công module điều khiển trung tâm 50

Trang 7

1 GIỚI THIỆU

1.1 Tổng quan

Nhà thông minh là một trong những lĩnh vực của IoT(Internet of Things) Nó là hệ thống cho phép người dùng giám sát, điều khiển các thiết bị trong nhà bằng điện thoại, máy tính, máy tính bảng,…, giúp tự động hóa các thiết bị trong nhà như đèn, công tắc, cửa, điều hòa, vòi phun, máy bơm,… cũng như các thiết khác mà không cần đến sự can thiệp trực tiếp của con người Bằng cách đó nhà thông minh có thể giúp tối ưu hóa hiệu năng sử dụng của căn nhà, giúp người dùng có thể tự do sinh hoạt trong căn nhà mà ít cần phải trực tiếp điều hành các thiết bị

Từ những đặc điểm như trên của một căn nhà thông minh Mục tiêu mà đề tài đặt ra

là có thể xây dựng một mô hình nhà thông minh mà trong đó các module trong hệ thống vừa có thể tự thực hiện chức năng một cách độc lập, vừa có thể thực hiện chức năng thông qua sự điểu khiển của người dùng Trong quá trình hoạt động dữ liệu của hệ thống

có thể thu thập được và sử dụng cho mục đích mở rộng chức năng sau này Ngoài ra em còn đặt ra mục tiêu là sẽ thực hiện xây dựng khả năng phản ứng của hệ thống với thói quen của người dùng, từ đó có thể tăng cường sự tiện nghi cho ngôi nhà cũng như trải nghiệm của người dùng

1.2 Tình hình nghiên cứu trong và ngoài nước

Nhà thông minh đang dần trở thành “tiêu chuẩn” của các mẫu nhà hiện đại Để bắt kịp xu nhu cầu ngày càng tăng, các công ty, tổ chức cũng đang dần đẩy nhanh tiến trình nghiên cứu, phát triển các trang thiết bị phục vụ cho nhà thông minh Theo đó thì cũng ngày có càng nhiều tài liệu, bài viết về đề tài nhà thông minh Theo tìm hiểu từ một số bàiviết trên diễn đàn stackoverflow.com, github.com và một số bài nghiên cứu của sinh viên trong nước thì hiện tại các đề tài nghiên cứu đó đa phần theo mô hình là sử dụng một vi điều khiển để điều khiển các module khác rồi từ vi điều khiển đó đưa dữ liệu lên web-apphoặc android-app

Trong thực tế thì việc thu thập và điều khiển dữ liệu được thực hiện trong phạm vi một ngôi nhà khiến đường dây kết nối từ các cảm biến, module tới vi điều khiển có thể lên tới khoảng cách hàng chục mét trong khi đó hầu hết các chuẩn kết nối hiện tại được trang bị trên các dòng vi điều khiển đều có khoảng cách truyền tối ưu từ 1-2 mét Vì vậy

1

Trang 8

Đề cương luận văn GVHD:

việc xây dựng hệ thống theo mô hình như trên có thể khiến hệ thống không hoạt động hoặc hoạt động không ổn định

1.3 Mục tiêu đề tài

Từ những nhận xét trên, mục tiêu được đặt ra cho đề tài là:

 Các module trong hệ thống có thể hoạt động được một cách độc lập

 Các module trong hệ thống có thể giao tiếp với nhau một cách mượt

mà và dữ liệu nhận được có tính tin cậy cao

 Module điều khiển trung tâm có thể thực hiện chức năng điều khiển và thu thập dữ liệu từ các module khác

 Giao diện trên máy tính có thể giúp người dùng giao tiếp với hệ thống

 Hệ thống phản hồi yêu cầu của người dùng với độ trễ thấp

2 NỘI DUNG ĐỀ TÀI

Hình 2-1: Tín hiệu điện áp 2 chân A, B trong kết nối RS485

2

Trang 9

b M c tín hi u ứ ệ

Với hai dây A, B truyền dẫn cân bằng, tín hiệu mức cao TTL được quy định khi áp của dây A lớn hơn dây B tối thi ểu là 200mV, tín hiệu mức thấp TTL được quy định khi áp của dây A nhỏ hơn dây B tối thiểu cũng là 200mV Nếu điện áp VAB mà nằm trong khoảng -200mV < VAB< 200mV thì tín hiệu lúc này được xem như là rơi vào vùng bất định Điện thế của mỗi dây tín hiệu so với mass bên phía thu phải nằm trong khoảng –7V đến +12V

Hình 2-2: Sơ đồ kết nối 2 thiết bị sử dụng kết nối RS485 với trở kháng đặc tính Z0

d Đi n áp ki u chung ệ ể

Tín hiệu truyền dẫn gồm hai dây không có dây mass nên chúng c

ần được tham chiếu đến một điểm chung, điểm chung lúc này có thể là mass hay bất kì một mức điện áp cho phép nào đó Điện áp kiểu chung (Common-mode voltage -VCM) về mặt toán học được phát biểu như là giá trị trung bình của hai điện áp tín hiệu được tham chiếu với mass hay một điểm chung

3

Trang 10

Đề cương luận văn GVHD:

e V n đ n i đ t ấ ề ố ấ

Tín hiệu trên hai dây khi được tham chiếu đến điểm chung là đất (Ground) thìkhi đó nó cần được xem xét kỹ lưỡng Lúc này bộ nhận sẽ xác định tín hiệu bằngcách tham chiếu tín hiệu đó với đất của nơi nhận, nếu đất giữa nơi nhận và nơiphát có một sự chênh lệch điện thế vượt qua ngưỡng cho phép thì tín hiệu thuđược sẽ bị sai hoặc phá hỏng thiết bị Điều này cho thấy mạng RS485 gồm hai dâynhưng có tới ba mức điện áp được xem xét Do đất là một vật dẫn điện khônghoàn hảo nên nó có một điện trở xác định, gây ra chênh lệch điện thế từ điểm nàytới điểm kia, đặc biệt là tại các vùng có nhiều sấm sét, máy móc tiêu thụ dòng lớn,những bộ chuyển đổi được lắp đặt và có nối đất

Chuẩn RS485 cho phép chênh lệch điện thế đất lên tới 7V, lớn hơn 7V là khôngđược Như vậy đất là điểm tham chiếu không đáng tin tưởng và một cách tốt hơncho việc truyền tín hiệu lúc này là ta đi thêm một dây thứ ba, nó sẽ được nối masstại nguồn cung cấp để dùng làm điện áp tham chiếu

Hình 2-3: Sơ đồ hệ thống sử dụng giao tiếp RS485 có nối đất.

f Đi n tr đ u cu i ệ ở ầ ố

Điện trở đầu cuối (Terminating Resistor) đơn giản là điện trở được đặt tại haiđiểm tận cùng kết thúc của đường truyền Giá trị của điện trở đầu cuối lí tưởng làbằng giá trị trở kháng đặc tính của đường dây xoắn, thường thì vào khoảng 100 -120Ω

Hình 2-4: Cách đặt điện trở đầu cuối RT trong kết nối RS485Nếu điện trở đầu cuối không phù hợp với giá trị trở kháng đặc tính của đườngdây thì nhiễu có thể xảy ra do có sự phản xạ xuất hiện trên đường truyền, nhiễu ởmức độ nhỏ thì không sao nhưng nếu ở mức độ lớn thì có thể làm tín hiệu bị sai

4

Trang 11

lệch Sau đây là hình minh họa dạng tín hiệu thu được khi dùng hai điện trở đầucuối khác nhau.

Hình 2-5: Tín hiệu trong kết nối RS485 thu được tương ứng với 2 giá trị điện trở RT

khác nhau

g Phân c c đ ự ườ ng truy n ề

Khi mạng RS485 ở trạng thái rảnh thì tất cả các khối thu đều ở trạng thái lắngnghe đường truyền và tất cả khối phát đều ở trạng thái tổng trở cao cách li vớiđường truyền Lúc này trạng thái của đường truyền được xem là bất định Nếu-200mV ≤ VAB ≤ 200mV thì trạng thái logic tại ngõ ra khối thu sẽ mang giá trịcủa bit cuối cùng nhận được Điều này không đảm bảo vì đường truyền rảnh trongtruyền dữ liệu nối ti ếp đòi hỏi phải ở mức cao để khối thu không hiểu nhầm là có

dữ liệu xuất hiện trên đường truyền

Để duy trì trạng thái mức cao khi đường truyền rảnh thì việc phân cực đườngtruyền (Biasing) phải được thực hiện Một điện trở R kéo lên nguồn ở đường A vàmột điện trở R kéo xuống mass ở đường B sao cho VAB ≥ 200mV sẽ ép đườngtruyền lên mức cao

2.1.2 RFID

a Gi i thi u t ng quát ớ ệ ổ

RFID (Radio Frequency Identification), hay Nhận dạng qua tần số vô tuyến, làmột công nghệ dùng kết nối sóng vô tuyến để tự động xác định và theo dõi các thẻnhận dạng gắn vào vật thể

Hay nói cách khác, RFID là một kỹ thuật nhận dạng sóng vô tuyến từ xa, chophép dữ liệu trên một con chíp được đọc một cách "không tiếp xúc" qua đườngdẫn sóng vô tuyến ở khoảng cách từ 50 cm tới 1 mét, sử dụng thiết bị thẻ RFID vàmột đầu đọc RFID

Điểm nổi bật của RFID là công nghệ không sử dụng tia sáng như mã vạch, khôngtiếp xúc trực tiếp Một vài loại thẻ có thể được đọc xuyên qua các môi trường, vật liệunhư Bê tông, tuyết, sương mù, băng đá, sơn, và các điều kiện môi trường thách thứckhác mà mã vạch và các công nghệ khác không thể phát huy hiệu quả

b S l ơ ượ c nguyên lý ho t đ ng ạ ộ

Thiết bị RFID reader phát ra sóng điện từ ở một tần số nhất định, khi thiết bịRFID tag trong vùng hoạt động sẽ cảm nhận được sóng điện từ này và thu nhận

5

Trang 12

Đề cương luận văn GVHD:

năng lượng từ đó phát lại cho thiết bị RFID Reader biết mã số của mình Từ đóthiết bị RFID reader nhận biết được tag nào đang trong vùng hoạt động

Hình 2-6: Nguyên lý hoạt động của RFID

Để có thể lấy được thông tin từ thẻ RFID, người lập trình phải thiết lập đượcgiao tiếp giữa vi điều khiển với RFID reader Sau khi có thể giao tiếp với RFIDreader chúng ta cần phải cài đặt các thanh ghi cần thiết để reader có thể giao tiếpvơi thẻ

Anten để phát ra môi trường

- Chế độ Receive : Chế độ này dùng để kích hoạt bộ đệm thu cũng như các cờ

cần thiết cho việc nhận dữ liệu từ thẻ Mifare

- Chế độ Transceive : Kết hợp chức năng của chế độ Transmit và

Receive Về cấu trúc lưu trữ trên thẻ:

Bộ nhớ trên thẻ Mifare được chia thành nhiều Sector, trong đó mỗi Sector lạiđược chia thành các bốn Block khác nhau và một block trong bốn block đó làmnhiệm vụ chứa chìa khóa cấp quyền truy cập vào Block gọi là Sector Trailer

Trang 14

Đề cương luận văn GVHD:

Mỗi Block trong bộ nhớ là một mảng gồm 16 byte Ta có thể hình dung cả bộ nhớ của thẻ Mifare là một mảng 3 chiều như hình dưới

Hình 2-7: Mô tả cấu trúc bộ nhớ thẻ MIFARE 1K2.1.3 Chuẩn giao tiếp One – Wire

a Gi i thi u chung ớ ệ

One-Wire là một chuẩn giao tiếp được thiết kế bởi Dallas Semiconductor và

đã được Maxim Integrated – một hãng sản xuất mạch lớn mua lại năm 2001

One-Wrire dùng một dây để truyền nhận nên có tốc độ thấp Chủ yếu sửdụng cho việc thu thập dữ liệu, truyền nhận dữ liệu thời tiết, nhiệt độ, công việckhông yêu cầu tốc độ cao

Trang 15

dụng một Master với nhiều module cũng sẽ kéo theo chu kỳ đọc/ ghi dữ liệu tớitừng module cũng sẽ bị tăng lên theo.

Hình 2-8: Mô hình Master – Slave trong chuẩn giao tiếp One-WireTrong giao tiếp bằng chuẩn One-Wire các module giao tiếp với nhau bằng cách gửi đi các xung có chu kỳ bằng nhau(khoảng 70 uS) và có chu kỳ nhiệm vụ khác nhau Bên thu sẽ dựa vào chu kỳ và chu kỳ nhiệm vụ của xung nhận được

để xác định được dạng tín hiệu cũng như dữ liệu

Chuẩn giao tiếp One-Wire có 4 dạng tín hiệu chính đước sử dụng là : Write bit

0, Write bit 1, Read và Reset/ Presence

 Tín hiệu Write bit 1: Master sẽ xuất ra tín hiệu ở mức thấp một khoảng thời

gian A, sau đó đưa tín hiệu lên mức cao một khoảng thời gian B

 Tín hiệu Write bit 0: Master sẽ xuất ra tín hiệu ở mức thấp một khoảng thời

gian C, sau đó đưa tín hiệu lên mức cao một khoảng thời gian D

 Tín hiệu Read: Master sẽ xuất ra tín hiệu ở mức thấp một khoảng thời gian A

+E , sau đó sẽ đưa tín hiệu lên mức cao cho tới hết chu kỳ Sau khi kết thúc chu

kỳ sẽ tiến hành đọc dữ liệu từ Slave gửi về

 Tín hiệu Reset/Presence: Master sẽ xuất ra tín hiệu ở mức thấp một khoảng

thời gian H và sau đó sẽ đưa tín hiệu lên lại mức cao Khoảng thời gian bus ở mức thấp đó gọi là tín hiệu reset Nếu có thiết bị slave gắn trên bus nó sẻ trả lời bằng tín hiệu Presence tức là thiết bị tớ sẻ kéo bus xuống mức thấp trong khoảng thời gian I Nếu không có tín hiệu Presence, thiết bị master sẻ hiểu rằng không có thiết bị slave nào trên bus, và các giao tiếp tiếp theo sẻ không thể diễn ra

Trang 16

8

Trang 17

Hình 2-9: Dạng sóng của tín hiệu trong giao tiếp bằng chuẩn One-Wire

Hình 2-10: Quy định về các khoảng thời gian chờ của tín hiệuNhư ta có thể thấy thì tín hiệu trong chuẩn One-Wire yêu cầu rất khắt khe về mặt thời gian vì vậy để tối ưu thời gian truyền người lập trình phải tối ưu về phần định thời cho dữ liệu truyền đi

Các Frame byte truyền nhận với mỗi IC có một dạng Frame khác nhau vậy cần chú ý đọc datasheet

Bus dữ liệu khi ở trạng thái chờ (khi không có dữ liệu trên đường truyền) phải

ởmức cao do vậy bus dữ liệu phải được kéo lên nguồn thông qua một điện trở Giá trị điện trở này có thể tham khảo trong datasheet của thiết bị

9

Trang 18

Đề cương luận văn GVHD:

2.1.4 Giao thức Microcontroller Interconnect Network (MIN)

a Gi i thi u chung ớ ệ

MIN là một khung dữ liệu truyền point-to-point đơn giản, được thiết kế đểthực hiện giao tiếp giữa vi điều khiển và PC hoặc giữa vi điều khiển và vi điềukhiển khác

Trong thực tế, có rất nhiều ứng dụng cần giao tiếp từ xa giữa vi điều khiển vàcác module khác hoặc giữa vi điều khiển và vi điều khiển khác ví dụ như đọc dữliệu về nhiệt độ, áp suất,… Việc đọc dữ liệu này được thực hiện diễn ra định kỳ.Nếu thực hiện theo các phương thức truyền dữ liệu point-to-point thông thường thì

sẽ tốn rất nhiều tài nguyên về bộ nhớ và CPU của vi điều khiển nhất là những dòng

vi điều khiển 8-bit Vì vậy MIN đã được tạo ra nhằm đáp ứng nhu cầu trên

b M c tiêu thi t k ụ ế ế

MIN đươc thiết kế để đáp ứng những nhu cầu sau:

 Có thể thực hiện trên ngôn ngữ C và thực hiện trên các dòng vi điều khiển 8-bit với lượng RAM sử dụng nhỏ nhất

 Có thể giao tiếp thông qua chuẩn UART bằng các dữ liệu 8 bit mà không cần có yêu cầu đặc biệt nào

 Có thể gửi và nhận dữ liệu từ các module khác hoặc giao tiếp gới PC

 Cung cấp đường truyền dữ liệu có độ tin cậy cao Khi nhận được 1 khung dữ liệu thì khung dữ liệu đó phải hoàn toàn chính xác nếu không thì

nó sẽ ngay lập tức bị loại bỏ

 Có thể chạy trong vòng lặp mở với số biến trạng thái tối thiểu, không yêu cầu ràng buộc thời gian giữa các khung hoặc giữa các byte dữliệu

Lưu ý:

10

Trang 19

Khi giao tiếp giữa vi điều khiển với module khác bằng MIN thì không cầnphải có điều khiển luồng(Flow control) Vì MIN được thiết kế cho các hệthống nhúng nên người thế kế hệ thống phải điều chỉnh tỉ lệ sao cho bênphát có khả năng xử lý bộ đệm và truyền tất cả dữ liệu cần truyền Và viđiều khiển cũng phải có khả năng xử lý đủ nhanh để có thể xử lý được tất

cả dữ liệu nhận về Người thiết kế hệ thống cũng cần phải xây dựng bộ đệmthu/phát với kích thước phù hợp để đảm bảo rằng bộ đệm luôn được phân

bố đủ để chứa dữ liệu trong trường hợp xấu nhất hoặc để đảm bảo vi điềukhiển có thể xử lý được trong các trường hợp khung dữ liệu (Frame) bị mất

c C u trúc Frame truy n ấ ề

Một khung dữ liệu của giao thức MIN bao gồm những trường như sau:

Hình 2-11: Khung dữ liệu của giao thức MINTrong đó:

 Start Of Frame (SOF) : Gồm 3 byte này có giá trị là 0xAA (hoặc giá trịkhác tùy vào người thiết kế hệ thống quy ước) Những byte này làm nhiệm

vụ chođầu thu biết được điểm bắt đầu của Frame dữ liệu Từ đó có thể dựa vào Frame dữ liệu đã được quy định như ở Hình 2-9 để xác định vị trí và chứcnăng của từng byte trong Frame

 ID/Control : Gồm 1 byte Trong đó bit 7 được sử dụng cho điều khiển giao thức Nó cho biết được khung đang truyền có phải được sử dụng cho công dụng truyền tải dữ liệu hay không Bit 6 được để trống dùng để dự phòng cho các trường hợp sau này Bo 0 => Bit 5 được sử dụng tùy vào mục đích của người sử dụng

 Sequence : Byte này được sử dụng khi bit 7 của byte ID/Control được bật lên 1

 Length : Gồm 1 byte Cho biết được chiều dài dữ liệu được chứa trong payload Giúp người lập trình có thể lấy dữ liệu ra từ khung truyền

và xác định được vị trí của 2 byte CheckSum

11

Trang 20

Đề cương luận văn GVHD:

 Payload : Dữ liệu có thể truyền đi trong một khung dữ liệu trong giaothức MIN có thể lên đến 255 byte Các dữ liệu này có thể được mã hóa, được chuyển đổi thành các ký tự hoặc đơn giản là các byte dữ liệu 8-bit Thứ tự của các byte trong Payload được sắp xếp theo độ quan trọng của dữliệu Tức là dữ liệu nào quan trọng hơn sẽ được truyền trước (được xử lý trước)

 CheckSum : 4 byte là một đoạn mã CRC-32 bit Đoạn mã được xác định thông qua các byte là ID/Control, Sequence, Length và Payload

 End Of Frame (EOF) : Gồm 1 byte có giá trị 0x55, dùng để xác định điểm kết thúc của Frame dữ liệu

d Kỹ thu t Byte Stuffing ậ

Như đã đề cập ở phần c, 3 byte SOF có giá trị là 0xAA dùng để xác định điểmbắt đầu của Frame dữ liệu Giả sử trong một trường lại có đúng 3 byte (hoặc hơn) liên tục có giá trị 0xAA tồn tại trong bộ đệm thu và vi điều khiển lại tiến hành tìm kiếm 3 byte SOF trong bộ đệm thu bằng thanh trượt có kích thước bằng 3 Trong trường hợp đó rất dễ có khả năng thanh trượt sẽ tìm sai vị trí bắt đầu của Frame và

từ đó khiến vi điều khiển không đọc được dữ liệu nhận về

Để khắc phục nhược điểm của giao thức đối với trường hợp kể trên Người ta

đã sử dụng kỹ thuật Byte Stuffing

Phương pháp của kỹ thuật này như sau:

 Bên phát : Cứ sau mỗi 2 byte dữ liệu liên tiếp có cùng giá trị 0xAA người ta sẽ thêm vào sau đó 1 byte có giá trị 0x55(hoặc giá trị khác tùy vào người thiết kế hệ thông quy ước)

 Bên thu : Cứ sau mỗi 2 byte dữ liệu liên tiếp nhận được có giá trị 0xAA người ta sẽ loại bỏ 1 byte ngay sau đó (byte có giá trị 0x55) và tiếp tục đọc dữ liệu từ những byte phía sau

Từ phương pháp như vậy, chúng ta có thể thấy được ngoại trừ 3 byte SOF cógiá trị 0xAA liên tiếp thì sẽ không có tồn tại bất kỳ một chuỗi các byte có giá trịnhư vậy trong Frame và từ đó sẽ tăng tính tin cậy của dữ liệu nhận được

Trang 22

Đề cương luận văn GVHD:

e Cách tính CRC

Như đã đề cập ở trên CRC được tính từ byte ID/Control và byte Length Đathức sinh được sử dụng là :

32 + 26 + 23 + 22 + 16 + 12 + 11 + 10 + 8 + 7 + 5 + 4 + 2 + 1 +1

Đa thức sinh này được quy định trong mục 4.2.5.3 ISO/IEC 13239

Cuối cùng, một khung dữ liệu hợp lệ phải đáp ứng đầy đủ các yếu tố sau:

 3 byte SOF là các byte liên tiếp và đều có giá trị là 0xAA

a Đ c đi m ph n c ng ặ ể ầ ứ

Điện áp hoạt động : 2.0 - 3.6VXung nhịp tối đa : 72 Mhz

Bộ nhớ:

 RAM: 20 kBytes

 Flash: 64 kBytesNgoại vi :

 2 bộ ADC – 16 kênh x 12Bit

 3 bộ timer 16 bit, hỗ trợ IC,OC,PWM, đếm xung, đọc encoder

 2 bộ Watchdog timer

 1 bộ Systick Timer 24 bit

13

Trang 23

 2 bộ I2C, 3 bộ UART, 2 bộ SPI, 1 bộ CAN và 1 bộ USB

 37 chân I/O

b Các ph n m m h tr ầ ề ỗ ợ

Các dòng vi điều khiển của STMicroelectronics đều được hỗ trợ lập trình bởi

2 bộ thư viện là Std và Hal

Bộ thư viện Std là bộ thư viện được xây dựng từ cấu trúc phần cứng của cácdòng vi điều khiển STMFxxx nó cho phép người lập trình có thể dễ dàng thựchiện các dự án nhỏ phục vụ mục đích nghiên cứu, học tập hoặc cũng có thể sửdụng để dây dựng nên một bộ thư viện khác để phục vụ mục đích lớn hơn Bộ thưviện này có nhược điểm là vì nó quá cơ bản nên sẽ tốn rất nhiều thời gian để lậptrình

Bộ thư viện Hal là bộ thư viện do STMicroelectronics phát triển Nó được tạo

ra đưa trên nền tảng của bộ thư viện Std với các giao thức khởi tạo và các ứng dụng của bên thứ 3 được tích hợp sẵn Bộ thư viện này cho phép người lập trình

có thể dễ dàng tiếp cận và sử dụng để lập trình cho các dòng vi điểu khiển STM trong khi vẫn đảm bảo được tính logic và tính chặt chẽ của chương trình Ngoài ra

do được phát triển từ nền tảng là bộ thư viện Std nên người dùng cũng có thể dễ dàng truy cập và sử dụng nó như là thư viện Std

Ngoài bộ thư viện Hal thì STMicroelectronics còn tạo ra các công cụ hỗ trợ lập trình cho các dòng vi điều khiển STM khác như là STM32 CubeMX, STM32CubeIDE, Flash Loader Demonstrator,…

• Điện áp cung cấp: 3 ~ 5V DC

• Sử dụng chip so sánh LM393 và MQ-9

• Hai dạng tín hiệu đầu ra (digital và analog)

14

Trang 24

Đề cương luận văn GVHD:

 Dòng sử dụng: 2.5mA max (khi truyền dữ liệu)

 Đo tốt ở độ ẩm 0100%RH với sai số 2-5%

 Đo tốt ở nhiệt độ -40 to 80°C sai số ±0.5°C

 Tần số lấy mẫu tối đa 0.5Hz (2 giây 1 lần)

15

Trang 25

2.3 Thiết kế giải thuật điều khiển

2.3.1 Module đi u khi n trung tâmề ể

16

Trang 26

Đề cương luận văn GVHD:

2.3.2 Module đi u khi n công t cề ể ắ

17

Trang 27

2.3.3 Module khóa c aử

18

Trang 28

Đề cương luận văn GVHD:

19

Trang 29

2.3.4 Giao di n trên máy tínhệ

3 GIẢI PHÁP THỰC HIỆN

3.1 Thiết lập giao tiếp giữa các module trong hệ thống

Dựa vào các ngoại vi được trang bị sẵn trên trên vi điều khiển STM32F103C8T6 và các kiến thức về giao thức Microcontroller Interconnect Network nên phương pháp giao tiếp chính giữa các module trong mạng sẽ được thực hiện thông qua chuẩn kết

20

Trang 30

Đề cương luận văn GVHD:

nối UART, sử dụng giao thức MIN và để đáp ứng nhu cầu truyền-nhận dữ liệu ởkhoảng cách xa thì mỗi module sẽ được trang bị thêm một bộ chuyển đổi kết nốiUART <=> RS485

3.1.1 Thi t l p giao ti p gi a module đi u khi n trung tâm v i các ế ậ ế ữ ề ể ớ

module khác

a Thi t l p Frame d li u chung ế ậ ữ ệ

Frame dữ liệu dùng để giao tiếp giữa các module trong hệ thông được quy định giống như Frame dữ liệu chuẩn của giao thức MIN nhưng ở đây chúng ta không có sử dụng chức năng điều khiển cho giao thức(bit 7 của byte

ID/Control) nên Frame dữ liệu mới có dạng như sau:

 D[5 0] : Là địa chỉ của các module trong hệ thống

Trang 31

Vd: Nếu muốn đọc dữ liệu về trạng thái của khóa cửa Thì trước hết bit D6 của byte ID/Control phải được bật lên 1 và Byte đầu tiền của Payload phảichứa giá trị tương ứng với địa chỉ thanh ghi chứa dữ liệu trạng thái khóa cửa.

CheckSum

Vì chúng ta không sử dụng chức năng điều khiển cho giao thức nên CheckSum là một mã CRC-32bit được tính bằng 3 byte ID/Control, Length,byte đầu tiên của Payload và một byte có giá trị 0x00(thay thế cho byte Sequence)

b Quy đ nh đ a ch c a các module và time out ị ị ỉ ủ

Quy đ nh v đ a chị ề ị ỉ

 Địa chỉ của module điều khiển trung tâm : 0x00

 Địa chỉ của module khóa cửa : 0x01

 Địa chỉ của module điều khiển công tắc: 0x02

 Địa chỉ của module cảm biến : 0x03

3.1.2 Thi t l p giao ti p v i module khóa c a ế ậ ế ớ ử a

Ngày đăng: 11/12/2022, 17:50

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

w