1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo Đồ án hệ thống nhúng Đề tài : Thiết kế hệ thống giám sát nhiệt độ, độ ẩm, thời gian thực qua sms

67 65 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 67
Dung lượng 15,82 MB

Nội dung

LỜI MỞ ĐẦUTrong ứng dụng hàng ngày, nhu cầu theo dõi nhiệt độ, độ ẩm, thời gian ngày tháng càng trở lên phổ biến và thiết thực và sử dụng trong: Sản xuất chế biến nông nghiệp, hiển thị v

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Trang 2

Báo cáo Môn : Đồ án hệ thống nhúng

Đề tài : Thiết kế hệ thống giám sát nhiệt độ, độ ẩm,

thời gian thực qua sms Giảng viên hướng dẫn: Nguyễn Ngọc Minh Sinh viên thực hiện: Dương Quang Hà B17DCDT059

Nguyễn Thị Thương B17DCDT177 Đào Duy Anh B17DCDT005 Nguyễn Anh Quân B17DCDT145

Hà Nội, tháng 5/2021

MỤC LỤC

Trang 3

Chương 1 TỔNG QUAN VỀ ĐỀ TÀI 2

2.2 GIỚI THIỆU VỀ TRÌNH BIÊN DỊCH KEILC VÀ STM32CUBEMX 18

2.5 GIỚI THIỆU VỀ CHỨC NĂNG RTC CỦA STM32F103C8T6 41

Trang 4

3.2.1 Thiết kế sơ đồ khối hệ thống 42

Trang 5

LỜI MỞ ĐẦU

Trong ứng dụng hàng ngày, nhu cầu theo dõi nhiệt độ, độ ẩm, thời gian ngày tháng càng trở lên phổ biến và thiết thực và sử dụng trong: Sản xuất chế biến nông nghiệp, hiển thị và thực thi điều khiển (quạt gió, máy sấy, điều hòa hay báo động) Khái niệm đo nhiệt độ, độ ẩm, hiển thị kèm theo thời gian đã có từ rất lâu, trong tất

cả các đại lượng vật lý thì nhiệt độ, độ ẩm được quan tâm nhiều nhất Nhiệt độ và độ

ẩm là yếu tố ảnh hưởng trực tiếp đến tính chất của vật chất và môi trường sống, còn thời gian giúp ta có thể xem xét quá trình của vật sống tồn tại và phát triển Trong công nghiệp sản xuất và trong lĩnh vực đo lường điều khiển, quá trình đo và xử lý nhiệt độ, độ ẩm giữ 1 vài trò quan trọng Trong các thiết bị đó có các thiết bị đòi hỏi

về cảm biến đo và điều chỉnh nhiệt độ, độ ẩm của không khí, hiện thị thời gian thực như điều hòa, lò vi sóng, chuông báo cháy,… Do đó ta có thể thấy được tầm quan trong và tính thực tế của việc đo và điều chỉnh nhiết độ và độ ẩm trong các thiết bị tựđộng hóa cũng như trong cuộc sống hằng ngày Vì vậy chúng em quyết định làm về đề

tài: “THIẾT KẾ HỆ THỐNG GIÁM SÁT NHIỆT ĐỘ, ĐỘ ẨM, THỜI GIAN THỰC QUA

SMS” Đây là một đề tài rất sát với thực tế, mang tính ứng dụng thực tiễn cao.

Trong đồ án chắc hẳn còn nhiều sai sót, chúng em rất mong được sự chỉ bảo, hướng dẫn của thầy để đồ án hoàn thiện hơn Chúng em chân thành cảm ơn thầy!

Chương 1 TỔNG QUAN VỀ ĐỀ TÀI

Cuộc sống ngày càng phát triển nhanh chóng và hiện đại hơn, những công nghệ mới ngày càng được phát minh và phát triển để đưa vào phục vụ cuộc sống hằng ngày của con người Những ứng dụng của IoTs được sử dụng ngày càng rộng rãi và trong rất nhiều lĩnh vực: nông nghiệp, y tế, giáo dục, nhằm mang lại sự tiện nghi, an toàn hơn cho người sử dụng Trong đó không thể không kể đến những dự án, nghiên cứu vềlĩnh vực điều khiển và giám sát thông minh với sự tiên tiến vượt trội

Điều khiển và giám sát thông minh, là tích hợp các hệ thống như hệ thống điều khiển và giám sát nhiệt độ, độ ẩm, ánh sáng, cường độ gió, … thành một hệ thống nhất Mỗi chức năng của điều khiển và giám sát thông minh đều có khả năng tự vận hành hoặc dưới sự điều khiển của người dùng, thông qua tin nhắn cung cấp nhiều chế

độ sử dụng Người dùng có thể truy cập từ xa để kiểm tra báo và tắt hệ thống khi cần thiết, tự động gửi theo thời gian cài đặt sẵn

Vì thế hiện nay điều khiển và giám sát thông minh là một trong những đề tài công nghệ ứng dụng được áp dụng trong rất nhiều dự án Không chỉ hạn chế với nhữngtính năng nêu trên, ngày càng có nhiều nghiên cứu đề xuất phát triển hệ thống điều khiển và giám sát để bám kịp theo sự phát triển của công nghệ, tối ưu hóa hiệu năng sửdụng cũng như giá cả hợp lý

Trang 6

Việc cung cấp các thông số qua SMS cho phép người dùng dễ dàng kiểm soát được cũng như nhận biết được những cảnh báo một cách kịp thời nhất Do đó, chúng

em quyết định thực hiện đề tài: “THIẾT KẾ HỆ THỐNG GIÁM SÁT NHIỆT ĐỘ,

ĐỘ ẨM, THỜI GIAN THỰC QUA SMS” Đề tài ứng dụng công nghệ SMS phổ

biến trên nhiều thiết bị để điều khiển và giám sát Với đề tài sử dụng thiết bị như vậy

sẽ hạ thấp được giá thành sản phẩm.

Đồ án được nhóm nghiên cứu, khảo sát và thực hiện với mục đích áp dụng các kiến thức đã được học ở trường giúp cho những nhu cầu điều khiển và giám sát trở nên tiện lợi hơn Vì vậy nhóm thiết kế “THIẾT KẾ HỆ THỐNG GIÁM SÁT NHIỆT ĐỘ, ĐỘ

ẨM QUA SMS” với mong muốn đem những kỹ thuật và công nghệ mới để làm đơn giản hóa việc giám sát, có thể giám sát dù ở bất cứ nơi đâu Thiết bị được tích hợp module sim 800L, nhiệt độ và độ ẩm DHT11, STM32F103C8T6 Thiết bị được giám sát trực tiếp qua màn hình LCD hoặc giám sát từ xa qua qua điện thoại nhờ tin nhắn SMS

∙ Nội dung 1: Tìm hiểu về STM32F103C8T6, module sim 800L, nhiệt độ và độ ẩmDHT11

∙ Nội dung 2: Tìm hiểu RTC, cấu hình trên STM32 CubeMx

∙ Nội dung 3: Thiết kế và tính toán thiết kế mạch phần cứ$ng

∙ Nội dung 4: Thi công phần cứ$ng, thứ( nghiệm và hiệu chỉnh phần cứ$ng Nội dung 5: Đánh giá kết quả thực hiện của mô hình

∙ Nội dung 5: Đánh giá kết quả thực hiện của mô hình

∙ Nội dung 6: Viết báo cáo thứ.c hiện

∙ Hệ thống trung tâm: sử dụng STM32F103C8T6

∙ Hệ thống cảm biến: gồm có cảm biến nhiệt độ và độ ẩm

∙ Dùng tin nhắn SMS để giám sát gián tiếp hoặc trực tiếp qua màn hình LCD

Trang 7

❖ Chương 3: Tính Toán Và Thiết Kế Hệ Thống Tính toán thiết kế, đưa ra sơ đồ nguyên lí của hệ thống.

❖ Chương 4: Kết Quả, Nhận Xét, Đánh Giá Đưa ra kết quả đạt được sau một thờigian nghiên cứu, một số hình ảnh của hệ thống, đưa ra những nhận xét, đánh giátoàn bộ hệ thống

❖ Chương 5: Kết Luận và Hướng Phát Triển Trình bày những kết luận về hệ thống những phần làm rồi và chưa làm, đồng thời nếu ra hướng phát triển cho

hệ thống

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 GIỚI THIỆU PHẦN CỨNG

2.1.1 Tổng quan về vi điều khiển STM32F103C8T6.

❖ Giới thiệu sơ lược về vi điều khiển STM32F103C8T6

STM32 là một trong những dòng chip phổ biến của ST với nhiều họ thông dụng như F0,F1,F2,F3,F4… Stm32f103 thuộc họ F1 với lõi là ARM COTEX M3

STM32F103 là vi điều khiển 32 bit, tốc độ tối đa là 72Mhz Giá thành cũng khá rẻ so với các loại vi điều khiển có chức năng tương tự Mạch nạp cũng như công cụ lập trìnhkhá đa dạng và dễ sử dụng

Một số ứng dụng chính: dùng cho driver để điều khiển ứng dụng, điều khiển ứng dụng thông thường, thiết bị cầm tay và thuốc, máy tính và thiết bị ngoại vi chơi game, GPS cơ bản, các ứng dụng trong công nghiệp, thiết bị lập trình PLC, biến tần, máy in, máy quét, hệ thống cảnh báo, thiết bị liên lạc nội bộ…

Phần mềm lập trình: có khá nhiều trình biên dịch cho STM32 như IAR

Embedded Workbench, Keil C… Ở đây mình sử dụng Keil C nên các bài viết sau mình chỉ đề cập đến Keil C

Thư viện lập trình: có nhiều loại thư viện lập trình cho STM32 như:

STM32snippets, STM32Cube LL, STM32Cube HAL, Standard Peripheral Libraries, Mbed core Mỗi thư viện đều có ưu và khuyết điểm riêng, ở đây mình xin phép sử dụng Standard Peripheral Libraries vì nó ra đời khá lâu và khá thông dụng, hỗ trợ nhiều ngoại vi và cũng dễ hiểu rõ bản chất của lập trình

Trang 8

1 board đã tích hợp sẵn mạch nạp, mình cũng đã test và chạy khá ổn, debug bằng Keil

C khá giống với phiên bản STlink V2 trên thị trường Nói chung là sử dụng đồ tự làm khá thú vị

- Ra chân đầy đủ tất cả các GPIO và giao tiếp: CAN, I2C, SPI, UART, USB,…

- Tích hợp Led trạng thái nguồn, Led PC13, Nút Reset

- Kích thước: 53.34 x 15.24mm

- Sử dụng với các mạch nạp:

o ST-Link Mini

Trang 9

- 1 cổng Mini USB dùng để cấp nguồn, nạp cũng như debug.

- 2 MCU bao gồm 1 MCU nạp và 1 MCU dùng để lập trình

- Có chân Output riêng cho các chân mạch nạp trên MCU1

- Có chân Output đầy đủ cho các chân MCU2

- Chân cấp nguồn ngoài riêng cho MCU2 nếu không sử dụng nguồn từ USB

- Thạch anh 32,768khz dùng cho RTC và Backup

- Chân nạp dùng cho chế độ nạp boot loader

- Nút Reset ngoài và 1 led hiển thị trên chân PB9, 1 led báo nguồn cho MCU2

Trang 10

2.1.2 Tổng quan về DHT11

❖ Giới thiệu sơ lược về DHT11

Cảm biến số nhiệt độ, độ ẩm DHT11 là cảm biến rất thông dụng hiện nay vì chiphí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1-wire (giao tiếp digital 1-wire truyền

dữ liệu duy nhất) Cảm biến được tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về được chính xác mà không cần phải qua bất kỳ tính toán nào

❖ Thông số kỹ thuật

- Điện áp hoạt động : 3V - 5V (DC)

- Dải độ ẩm hoạt động : 20% - 90% RH, sai số ±5%RH

- Dải nhiệt độ hoạt động : 0°C ~ 50°C, sai số ±2°C

- Tần số lấy mẫu tối đa: 1 Hz

- Khoảng cách truyển tối đa: 20m

❖ Chức năng các chân của DHT 11

● Chân VCC: cực dương

● Chân GND: cực âm

● Chân DATA: chân tín hiệu

❖ Nguyên lý hoạt động

- Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:

● Gửi tín hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại

● Khi đã giao tiếp với DHT11, cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đođược

Bước 1: gửi tín hiệu Start

Trang 11

● MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào

● Sau khoảng thời gian là 20 - 40 µs, DHT11 sẽ kéo chân DATA xuống thấp Nếu

> 40 µs mà chân DATA không được kéo xuống thấp nghĩa là không giao tiếpđược với DHT11

● Chân DATA sẽ ở mức thấp 80 µs sau đó nó được DHT11 kéo lên cao trong 80

µs Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được vớiDHT11 không Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quá trìnhgiao tiếp của MCU với DHT11

Bước 2: Đọc giá trị trên DHT11

- DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 Byte Trong đó:

● Byte 1: giá trị phần nguyên của độ ẩm (RH%)

● Byte 2: giá trị phần thập phân của độ ẩm (RH%)

● Byte 3: giá trị phần nguyên của nhiệt độ (°C)

● Byte 4: giá trị phần thập phân của nhiệt độ (°C)

● Byte 5: kiểm tra tổng

Trang 12

- Nếu Byte 5 = (Byte 1 + Byte 2 + Byte 3 + Byte 4) thì giá trị độ ẩm và nhiệt độ làchính xác, nếu sai thì kết quả đo không có nghĩa

- Ví dụ như ta nhận được 40 bit (5 Byte) dữ liệu như sau:

Trang 13

● Bit 1:

Hình 2.5: Bit 1

- Sau khi tiến hiệu được đưa về 0, ta đợi chân DATA của DHT11 được MCU kéo lên

1 Nếu chân DATA là 1 trong khoảng 26 – 28 µs thì là bit 0, còn nếu tồn tại 70 µs làbit 1 Do đó trong lập trình ta bắt sườn của chân DATA, sau đó delay 50 µs Nếugiá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được là 1 thì ta đọc được

là bit 1 Cứ như thế ta đọc các Bit tiếp theo

2.1.3 Tổng quan về Module SIM800L

❖ Giới thiệu sơ lược về module SIM800L

- Module SIM800L có khả năng nhắn tin SMS, nghe, gọi, GPRS, … như một điện thoạinhưng có kích thước nhỏ nhất trong các loại module SIM (25 mm x 22 mm) Điềukhiển module sử dụng bộ tập lệnh AT dễ dàng, chân kết nối dùng rào đực thông dụng(male hearder) chuẩn 100 mil

Trang 14

● Hỗ trợ 4 băng tần: GSM850MHz, EGSM900MHz, DSC1800MHz,PCS1900MHz.

Hình 2.6: Sơ đồ chân module SIM800L

❖ Chức năng các chân của module SIM800L:

● Chân NET: lắp anten, có thể dùng anten đi kèm hoặc anten mở rộng

● Chân VCC: chân nguồn dương 4.2V

● Chân GND: chân nguồn âm 0V

● Chân RST: chân reset sử dụng khi khởi động lại module sim

● Chân TXD: chân truyền UART TX

● Chân RXD: chân nhận UART RX

● Chân DTR: chân UART DTR - Chân RING: báo có cuộc gọi đến

● Chân SPKP, SPKN: ngõ ra âm thanh, kết nối với loa để phát âm thanh

● Chân MICP, MICN: ngõ vào âm thanh, gắn thêm mirco để thu âm thanh

❖ Tập lệnh AT điều khiển cuộc gọi

Bảng 2.1 Tập lệnh AT điều khiển cuộc gọi

AT+CLIP=1<CR><LF> Hiển thị thông tin cuộc gọi đến

ATD[số_điện_thoại];<CR><LF> Lệnh thực hiện cuộc gọi

Trang 15

hoặc cúpmáy khi có cuộc gọi đến.

ATA<CR><LF>

Lệnh thực hiện chấp nhận khi có cuộc gọi

đến

❖ Tập lệnh AT điểu khiển tin nhắn

Bảng 2.2 Tập lệnh AT điều khiển tin nhắn

AT+CMGF=1<CR><LF>

Lệnh đưa SMS về chế độ Text,phải có lệnh này mới gửi tin nhắndạng Text

AT+CMGS=“Số_Điện_Thoại”<

CR><LF>

Đợi đến khi có kí tự ‘>’ được gửi

về thì đánh nội dung tin nhắn

AT+CMGDA=“DEL

ALL”<CR><LF>

Xóa toàn bộ tin nhắn trong các hộpthư

Trang 16

AT+CNMI=2,2<CR><LF> Hiển thị nội dung tin nhắn ngay khi

có tin nhắn đến

- Sau mỗi tập lệnh AT thường thấy <CR><LF> thực chất nó là hai mã điều khiển

<CR>tương ứng 0x0D (hexa), <LF> tương ứng 0x0A (hexa)

2.1.4 Tổng quan về LCD

❖ Giới thiệu sơ lược về LCD

Màn hình LCD 1602 xanh lá sử dụng driver HD44780, có khả năng hiển thị 2dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và

dễ dàng sử dụng hơn nếu đi kèm mạch chuyển tiếp I2C

❖ Thông số kỹ thuật LCD 16×2

● LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN)

● 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2

● Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ

dữ liệu

● Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi

Trang 17

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.

Bảng 2.3: Chức năng các chân của LCD

hiệu

Mô tả

1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND

của mạch điều khiển

2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với

VCC=5V của mạch điều khiển

3 VEE Điều chỉnh độ tương phản của LCD

4 RS Chân chọn thanh ghi (Register select) Nối chân RS với logic “0”

(GND) hoặc logic “1” (VCC) để chọn thanh ghi

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế

độ “đọc” - read)

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD

5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic

“0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD

ở chế độ đọc

6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus

DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở

Trang 18

bus đến khi nào chân E xuống mức thấp.

7 - 14 DB0

-DB7

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU

Có 2 chế độ sử dụng 8 đường bus này :

+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB

- Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR (Instructor

Register) và thanh ghi dữ liệu DR (Data Register)

● Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám đường bus DB0-DB7 Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR Nghĩa

là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó

VD : Lệnh “hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0)

Trang 19

=> Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2 thanh ghi này khi giao tiếp với MPU Bảng sau đây tóm tắt lại các thiết lập đối với hai chân RS và R/W theo mục đích giao tiếp

0 0 Ghi vào thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở DB0-DB6

Bảng 2.4 : Chức năng chân RS và R/W theo mục đích sử dụng

2.1.5 Tổng quan về module I2C

❖ Tổng quan về module I2C

Trang 20

Hình 2.11: Module I2C

- LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụngnhiều chân trên vi điều khiển Module I2C LCD ra đời và giải quyết vấn để này chobạn Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16x2 (RS, EN, D7, D6, D5

và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối Module I2C hỗ trợcác loại LCD sử dụng driver HD44780(LCD 16x2, LCD 20x4, ) và tương thích với hầuhết các vi điều khiển hiện nay

● Jump chốt: Cung cấp đèn cho LCD hoặc ngắt

● Biến trở xoay độ tương phản cho LCD

● Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780)

● Giao tiếp: I2C

● Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)

● Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt

● Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD

● Kích thước: 41.5mm(L)X19mm(W)X15.3MM(H)

Trang 21

Hình 2.12: Hàn nối module I2C với màn hình LCD

2.2.1 Lý do lựa chọn

❖ Về KeilC

● Trình biên dịch keilC khá nhanh, mạnh, được nhiều người sử dụng, hỗ trợ

simulation, hỗ trợ nhiều loại debugger, tối ưu hóa cao cho các ứng dụng có bộ

xử lý lõi ARM

● Hỗ trợ cho nhiều loại kiến trúc MCU.

● Hỗ trợ chúng ta cách quản lý source code bằng cách add source vào project

explorer, cấu hình target device, define parameter rất tiện lợi

❖ Về STM32CubeMX

● STM32Cube mang tất cả các công cụ và các phần mềm nhúng tới cho ngườidùng STM32 một cách tích hợp và đơn giản Hãng ST đưa ra một giải pháp

Trang 22

thân thiện hơn: Miễn phí bản quyền, tăng tốc độ develope, giảm giá thànhR&D, tối ưu được lợi nhuận.

● Giúp cấu hình ngoại vi dễ dàng: Chọn các pin trên chip và chọn các tính năngmong muốn gắn với nó Cấu hình Middlewares (FATS, FREERTOS), các ngoại

vi như CRC, IWDG, TIMERS…, cấu hình Clock và tính toán mức độ tiêu haonăng lượng

● STM32CubeMX tự động download các driver mới nhất của ST dành cho cácdòng chip của mình

● Tự động tạo project dựa trên cấu hình ở trên STM32CubeMX đầu tiên sẽ

download driver của dòng chip cần cấu hình, sau đó tạo code và copy các drivercần thiết vào projects, và tạo project trên các công cụ lập trình phổ biến nhưKeil hay IAR Sau khi tạo xong, chúng ta có thể bắt tay ngay vào việc viết code

2.2.2 Tổng quan về CubeMX

- Khi bước đầu chuyển sang làm quen với dòng vi điều khiển ARM từ các dòng vi điềukhiển truyền thống như AVR, PIC… chúng ta sẽ dễ cảm thấy bị choáng ngợp vì sựphức tạp và khổng lồ của nó Do vậy các nhà sản xuất đã phát triển các thưviện/driver chuẩn cho các con chip của họ Chúng ta sẽ không làm việc trực tiếp ởmức register nữa, mà làm quen với các hàm API đã được nhà sản xuất cung cấp sẵn,giúp cho việc viết chương trình trở nên dễ dàng hơn nhiều

- Hãng ST trước đây cũng cung cấp thư viện ngoại vi chuẩn (Standard PeripheralLibraries) để cho chúng ta sử dụng Tuy nhiên sử dụng nó cũng còn quá nhiều điềuphức tạp, và những ai mới bước vào thế giới ARM sẽ rất dễ nản lòng Ví dụ đơn giảnnhất là việc khởi tạo phần cứng ( Cài đặt RCC cho hệ thống, cài đặt ngoại vi…) cũngkhá phức tạp

- Sau đó ST ra mắt công cụ STM32 MicroExplorer để giúp cấu hình ngoại vi, cũng nhưtạo project dựa trên các cấu hình đó, việc còn lại của chúng ta chỉ là viết code củamình Trải qua nhiều version, STM32 MicroExplorer đã phát triển thành

Trang 23

STM32CubeMX, một chương trình hoàn thiện hơn rất nhiều và giúp cho việc lập trìnhtrên STM32 dễ dàng hơn bao giờ hết

❖ Cách cài đặt

Bước 1:

● Đầu tiên các bạn truy cập trang chủ keil để tải phần mềm

Trang 24

● Sau đó kích chọn MDK-Arm để tải (Phiên bản hiện tại là 5.27.1.0)

Trang 26

Hình 2.20: Cách cài đặt KeilC

Hình 2.21: Cách cài đặt KeilC

● Sau khi cài đặt hoàn tất, hộp thoại Windows Security sẽ xuất hiện

Chọn Install để tiếp tục:

Trang 28

2.2.4 Tổng quan về ST-Link

❖ Giới thiệu:

- ST-Link V2 là mạch nạp, hỗ trợ debug cho tất cả các loại vi điều khiển thuộc dòngSTM8 và STM32 của hãng STMicroelectronis

- ST-Link V2 sử dụng giao thức một dây, không đồng bộ (SWIM) cho STM8 MCU,

và sử dụng giao thức 2 dây, đồng bộ (SWD) cho STM32 MCU Tên các chân tín hiệuđược in trên vỏ nhôm của mạch nạp, đảm bảo sự tiện lợi, thẩm mỹ và ổn đinh khi sửdụng Ngoài ra ST-Link V2 còn cung cấp sẵn nguồn 3.3V và 5.0V (max 500mA) đểcung cấp cho mạch bên ngoài

❖ Cài đặt lần đầu

Bước 1: Download phẩn mềm nạp STM32 ST-LINK Utility

Bước 2: Cập nhật Firmware mới nhất cho ST-Link V2

● Cắm ST-Link V2 vào cổng USB của máy tính, chờ máy tính báo nhận phần

cứng

● Bật phần mềm STM32 ST-LINK Utility, chọn ST-LINK->Firmware update,sau đó chọn Device Connect và Yes>>>> để bắt đầu quá trình cập nhật

Trang 30

Bước 2 Kết nối ST-Link V2 với máy tính

Bước 3 Bật phần mềm STM32 ST-LINK Utility, ấn Ctr+P, chọn file hex và bắt đầu quá trình nạp

Hình 2.25: Nạp code qua ST-Link

2.3 GIỚI THIỆU VỀ CHUẨN GIAO TIẾP I2C

2.3.1.Tổng quan về chuẩn giao tiếp I2C

- I2C là tên viết tắt của cụm từ tiếng anh “Inter – Integrated Circuit” Nó là một giaothức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa một

bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đườngtruyền tín hiệu Đây là một giao thức giao tiếp nối tiếp đồng bộ Nó có nghĩa là các bit

dữ liệu được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lậpbởi một tín hiệu đồng hồ tham chiếu

Dữ liệu được truyền giữa thiết bị Master và các thiết bị Slave thông qua một đường

Trang 31

chuỗi số 0 và 1 được gọi là giao dịch (transaction) và dữ liệu trong mỗi giao dịch cócấu trúc như sau:

Hình 2.26: Cấu trúc trong mỗi giao dịch ( Transaction)

❖ Điệu kiện bắt đầu (Start Condition)

- Bất cứ khi nào một thiết bị chủ / IC quyết định bắt đầu một giao dịch, nó sẽ chuyểnmạch SDA từ mức điện áp cao xuống mức điện áp thấp trước khi đường SCL chuyển

Trang 32

- Nó bao gồm 7 bit và được lấp đầy với địa chỉ của thiết bị Slave đến từ đó thiết bịMaster cần gửi / nhận dữ liệu Tất cả các thiết bị Slave trên bus I2C so sánh các bit địachỉ này với địa chỉ của chúng

Bit Read / Write

- Bit này xác định hướng truyền dữ liệu Nếu thiết bị Master / IC cần gửi dữ liệu đếnthiết bị Slave, bit này được thiết lập là ‘0’ Nếu IC / Master cần nhận dữ liệu từ thiết bịSlave, bit này được thiết lập là ‘1’

Bit ACK / NACK

- ACK / NACK là viết tắt của Acknowledged/Not-Acknowledged Nếu địa chỉ vật lý củabất kỳ thiết bị Slave nào trùng với địa chỉ được thiết bị Master phát, giá trị của bit nàyđược set là ‘0’ bởi thiết bị Slave Ngược lại, nó vẫn ở mức logic ‘1’ (mặc định)

Khối dữ liệu

- Nó bao gồm 8 bit và chúng được thiết lập bởi bên gửi, với các bit dữ liệu cần truyềntới bên nhận Khối này được theo sau bởi một bit ACK / NACK và được set thành ‘0’bởi bên nhận nếu nó nhận thành công dữ liệu Ngược lại, nó vẫn ở mức logic ‘1’ Sựkết hợp của khối dữ liệu theo sau bởi bit ACK / NACK được lặp lại cho đến quá trìnhtruyền dữ liệu được hoàn tất

Điều kiện kết thúc (Stop Condition)

- Sau khi các khung dữ liệu cần thiết được truyền qua đường SDA, thiết bị Masterchuyển đường SDA từ mức điện áp thấp sang mức điện áp cao trước khi đường SCLchuyển từ cao xuống thấp

Trang 33

Hình 2.28: Điều kiện kết thúc

2.3.2 Cách thức hoạt động

- Thiết bị Master gửi điều kiện bắt đầu đến tất cả các thiết bị Slave

- Thiết bị Master gửi 7 bit địa chỉ của thiết bị Slave mà thiết bị Master muốn giao tiếpcùng với bit Read/Write

Hình 2.29: Cách thức hoạt động

- Mỗi thiết bị Slave so sánh địa chỉ được gửi từ thiết bị Master đến địa chỉ riêng của

nó Nếu địa chỉ trùng khớp, thiết bị Slave gửi về một bit ACK bằng cách kéo đườngSDA xuống thấp và bit ACK / NACK được thiết lập là ‘0’ Nếu địa chỉ từ thiết bị Master

Ngày đăng: 16/02/2022, 15:31

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w