ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
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
LỜI CẢM ƠN
Tp. Hồ Chí Minh, ngày
Sinh viên
tháng năm
.
Đề cương luận văn
GVHD:
MỤC LỤC
1.
2.
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 ...............................................
NỘI DUNG ĐỀ TÀI ........................................................................................................................
2.1
2.1.1
Chuẩn giao tiếp RS485 ...
2.1.2
RFID................................
2.1.3
Chuẩn giao tiếp One – Wi
2.1.4
Giao thức Microcontroller
2.2
Vi điều khiển và các module .........................
2.2.1
Vi điều khiển STM32F103
2.2.2
Cảm biến khí CO và khí G
2.2.3
Cảm biến nhiệt độ, độ ẩm
2.3
3
Cơ sở lý thuyết ...............................................
Thiết kế giải thuật điều khiển .......................
2.3.1
Module điều khiển trung
2.3.2
Module điều khiển cơng t
2.3.3
Module khóa cửa ............
2.3.4
Giao diện trên máy tính...
GIẢI PHÁP THỰC HIỆN.............................................................................................................
3.1
Thiết lập giao tiếp giữa các module trong hệ
3.1.1
Thiết lập giao tiếp giữa m
3.1.2
Thiết lập giao tiếp với mod
3.1.3
Thiết lập giao tiếp với mod
Đề cương luận văn
3.1.4
3.2
GVHD:
Thiết lập giao tiếp với module cảm biến
Lập trình chức năng cho module khóa cửa sử dụng thẻ từ v
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ệ
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
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 p
3.4.3
Giao tiếp với module điều khiển trung t
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ệ
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ữ
3.6.1
Giao tiếp với module điều khiển trung t
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ôn
3.6.4
Hiển thị và điều khiển trạng thái khóa c
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...
Đề cương luận văn
4
GVHD:
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.............................................................................................................
Đề 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ơ đồ ngun 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ơ đồ ngun 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
Đề cương luận văn
GVHD:
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 q 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. Ngồ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à ngồ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ài
viế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-app
hoặ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
Đề 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.
2.
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.
NỘI DUNG ĐỀ TÀI
2.1 Cơ sở lý thuyết
2.1.1 Chuẩn giao tiếp RS485
a. Truyền dẫn cân bằng
Hệ thống truyền dẫn cân bằng gồm có hai dây tín hiệu A,B nhưng khơng có
dây mass. Sở dĩ được gọi là cân bằng là do tín hiệu trên dây này ngược với tín
hiệu trên dây kia. Nghĩa là dây này đang phát mức cao thì dây kia phải đang
phát mức thấp và ngược lại.
Hình 2-1: Tín hiệu điện áp 2 chân A, B trong kết nối RS485
2
Đề cương luận văn
GVHD:
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.
c. Cặp dây xoắn
Như chính tên gọi của nó, cặp dây xoắn (Twisted-pair wire) đơn giản chỉ là
cặp dây có chiều dài bằng nhau và được xoắn lại với nhau. Sử dụng cặp dây xoắn
sẽ giảm thiểu được nhiễu, nhất là khi truyền ở khoảng cách xa và với tốc độ cao.
Trở kháng đặc tính cặp dây xoắn: Phụ thuộc vào hình dáng và chất liệu cách
điện của dây mà nó sẽ có một trở kháng đặc tính (Characteristic impedence -Zo),
điều này thường được chỉ rõ bởi nhà sản xuất. Theo như khuyến cáo thì trở kháng
đặc tính của đường dây vào khoảng từ 100 - 120Ω.
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
Đề 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ằng
cá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ơi
phá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ây
như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ơng
hồ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ày
tớ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ơn
cho 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 mass
tạ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 RS485
Nếu điện trở đầu cuối không phù hợp với giá trị trở kháng đặc tính của đường
dâ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
Đề cương luận văn
GVHD:
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ở đầu
cuố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ắng
nghe đườ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 trong
truyề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 đường
truyề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 V AB ≥ 200mV sẽ ép đường
truyề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, cho
phép dữ liệu trên một con chíp được đọc một cách "khơng tiếp xúc" qua đường
dẫ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ơng
tiế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ệu
như 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ức
khá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
Đề 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 được
giao tiếp giữa vi điều khiển với RFID reader. Sau khi có thể giao tiếp với RFID
reader chúng ta cần phải cài đặt các thanh ghi cần thiết để reader có thể giao tiếp
vơi thẻ.
Về chế độ hoạt động:
Để làm giao việc với thẻ RFID thì module đọc thẻ RC522 thường được cài đặt
để hoạt động ở 4 chế độ chính.
Chế độ Authentication : Chế độ này dùng để xác thực thẻ, xác thực tiêu
chuẩn
Mifare,…
Chế độ Transmit : Chế độ này dùng để kich hoạt bộ đệm phát gửi tín
hiệu ra
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àm
nhiệm vụ chứa chìa khóa cấp quyền truy cập vào Block gọi là Sector Trailer.
6
Đề 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 1K
2.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ệc
không yêu cầu tốc độ cao.
b. Cấu trúc truyền, nhận
Chuẩn giao tiếp One-Wire thường được xây dựng dưới mơ hình Master –
Slave (1 Master và 1 hoặc nhiều Slave). Điều này cho phép một vi điều khiển
có thể thu thập dữ liệu từ nhiều module khác thơng qua chỉ một dây tín hiệu duy
nhất.
Nhưng do đặc điểm sử dụng một dây tín hiệu nền thời gian truyền, nhận dữ
liệu cũng tăng lên theo số module cần giao tiếp với vi điều khiển, dẫn đến khi sử
7
Đề cương luận văn
GVHD:
dụng một Master với nhiều module cũng sẽ kéo theo chu kỳ đọc/ ghi dữ liệu tới
từ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-Wire
Trong 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.
thời
Tín hiệu Write bit 1: Master sẽ xuất ra tín hiệu ở mức thấp một khoảng
gian A, sau đó đưa tín hiệu lên mức cao một khoảng thời gian B.
thời
Tín hiệu Write bit 0: Master sẽ xuất ra tín hiệu ở mức thấp một khoảng
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.
8
Đề cương luận văn
GVHD:
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ệu
Như ta có thể thấy thì tín hiệu trong chuẩn One-Wire 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
Đề 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ều
khiể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ó 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 hồn tồ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.
Giao thức có 2 phần :
Khung dữ liệu : Gồm 3 byte header, 1 byte ID/Control, từ 0-255
byte dữ liệu, 16 bit CRC.
Truyền dữ liệu : MIN có thể thực hiện bằng tất cả các giao thức
truyền point-to-point. Dữ liệu được truyền tới sẽ được lưu giữ dưới dạng
các thanh ghi trượt.
Lưu ý:
10
Đề cương luận văn
GVHD:
Khi giao tiếp giữa vi điều khiển với module khác bằng MIN thì khơng cần
phả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ên
phá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ộ đệm
thu/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ều
khiể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 MIN
Trong đó:
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ức
nă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
Đề cương luận văn
GVHD:
Payload : Dữ liệu có thể truyền đi trong một khung dữ liệu trong giao
thứ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ểm
bắ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.
12
Đề 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. Đa
thứ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
1 byte kết thúc có giá trị là 0x55
CheckSum nhận được từ phía phát phải trùng khớp với CheckSum
tính tốn được ở phía thu.
Byte thêm vào khi sử dụng kỹ thuật Byte Stuffing phải có giá trị là
0x55.
2.2 Vi điều khiển và các module
2.2.1 Vi điều khiển STM32F103C8T6
STM32F103C8T6 là một vi điều khiển của hãng STMicroelectronics. Nó sử dụng
lõi Arm® Cortex®-M3 với tốc độ xử lý tối đa có thể đặt được lên đến 72MHz. Bên
cạnh đó tuy giá thành khá rẻ nhưng vi điều khiển này lại có khá nhiều ngoại vi để lựa
chọn. Do vậy nó rất phù hợp cho các dự án nhỏ hoặc phục vụ cho công việc học tập,
nghiên cứu.
a. Đặc điểm phần cứng
Điện áp hoạt động : 2.0 - 3.6V
Xung nhịp tối đa : 72 Mhz
Bộ nhớ:
RAM: 20 kBytes
Flash: 64 kBytes
Ngoạ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
Đề cương luận văn
GVHD:
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ác
dịng vi điều khiển STMFxxx nó cho phép người lập trình có thể dễ dàng thực
hiệ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ập
trì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. Ngồ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.
Ngồ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, STM32
CubeIDE, Flash Loader Demonstrator,…
2.2.2 Cảm biến khí CO và khí Gas MQ-9
MQ-9 là cảm biến được sử dụng để đo lường nồng độ khi CO và hỗn hợp khi
Gas trong khơng khí.
Cảm biến này với độ nhạy cao và thời gian đáp ứng nhanh. Tín hiệu ngõ ra dạng
analog và digital. Cảm biến có thể hoạt động được ở nhiệt độ từ khoảng: -100C đến
500C và tiêu thụ dòng khoảng 150mA tại 5V. Thơng số kỹ thuật:
•
Đ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
Đề cương luận văn
•
Tín hiệu analog từ 0~5V.
•
Dải phát hiện từ 10 đến 1000ppm.
•
Cơng suất tiêu thụ: khoảng 350mW.
•
Nhiệt độ hoạt động: -10C đến 50C.
GVHD:
2.2.3 Cảm biến nhiệt độ, độ ẩm DHT-22
Cảm biến độ ẩm và nhiệt độ DHT22 Temperature Humidity Sensor sử dụng giao
tiếp 1 Wire dễ dàng kết nối và giao tiếp với Vi điều khiển để thực hiện các ứng dụng
đo nhiệt độ, độ ẩm môi trường, cảm biến có chất lượng tốt, kích thước nhỏ gọn, độ
bền và độ ổn định cao.
Thông số kỹ thuật:
Nguồn sử dụng: 3~5VDC.
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
Đề cương luận văn
GVHD:
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