Tải bản đầy đủ (.pdf) (65 trang)

Hcmute thiết kế hộp điều khiển giám sát thiết bị thông minh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.56 MB, 65 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN

THIẾT KẾ HỘP ĐIỀU KHIỂN GIÁM SÁT
THIẾT BỊ THÔNG MINH

MÃ SỐ: SV2020-132

SKC 0 0 7 4 1 1

Tp. Hồ Chí Minh, tháng 07/2020

Luan van


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM

BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
THIẾT KẾ HỘP ĐIỀU KHIỂN GIÁM SÁT
THIẾT BỊ THƠNG MINH
MÃ SỐ: SV2020-132

Thuộc nhóm ngành khoa học: Kỹ thuật

Tp. Hồ Chí Minh, tháng 7 năm 2020


Luan van


Chương 1: TỔNG QUAN
1.1. Tình hình nghiên cứu trong và ngoài nước
1.1.1. Đặt vấn đề
Ngày nay với sự phát triển nhanh chóng của cơng nghệ, cơng việc giám sát và điều
khiển thiết bị tại nhà tại bất cứ nơi nào ngày càng quan trọng hơn hết để giúp chúng ta tránh
những rủi ro về lãng phí điện năng tiêu thụ.
Vì thế mà em đã thực hiện đề tài: “THIẾT KẾ HỘP ĐIỀU KHIỂN GIÁM SÁT THIẾT
BỊ THÔNG MINH” nhằm mục đích kiểm sốt được sự hoạt động của các thiết bị điện
đang tiêu thụ tại nhà.
1.1.2. Tính cấp thiết của đề tài
Theo tính tốn, mức lãng phí điện năng của Việt Nam cao gấp 1,5 - 6 lần so với thế
giới, cịn tổng hợp của Bộ Cơng Thương cho thấy mức lãng phí của điện của ta rất cao, từ
10 - 50%. Hiện tượng lãng phí trong sử dụng điện có thể bắt gặp ở bất cứ đâu, từ hộ gia
đình cho đến các cơ quan và doanh nghiệp.
Nhiều người cứ nghĩ tắt đi một bóng đèn, một tấm biển quảng cáo hay chiếc quạt
cũng chẳng tiết kiệm được điện năng là bao nhiêu. Tuy nhiên, theo các tính tốn, chỉ cần
tắt một bóng đèn, rút các thiết bị điện khi không sử dụng, hay dùng các thiết bị trong gia
đình đúng cách có thể tiết kiệm điện từ 10-15% hàng tháng.
Chính vì vậy hệ thống này có các mục hẹn cài đặt tắt giờ hoặc là giám sát, điều
khiển sự hoạt động các thiết bị dễ dàng trên màn hình LCD hoặc ứng dụng trên điện thoại
Android.
1.2. Mục tiêu đề tài
Mục tiêu đề tài lần này của em là: Thực hiện một thiết bị giám sát sự hoạt động,
điều khiển những đồ dùng điện trong nhà, đọc được nhiệt độ tại phòng tự động bật quạt
hay điều hòa trong phịng. Hê thống cịn có thể cài đặt được các giá trị hẹn bật/tắt thiết bị
trong nhà qua một màn hình cảm ứng. Ngồi ra hê thống cịn có thể kiểm sốt ở bất cứ nơi
nào thơng qua mạng bằng ứng dụng trên điện thoại

1.3. Giới hạn đề tài
Đề tài lần này của em là một đề tài không quá mới, tuy nhiên bước đầu làm quen
với vi điều khiển ARM để giao tiếp với các module thiết bị và tài liệu hạn chế rất nhiều đa
phần là bằng tiếng Anh. Vì vậy sai sót là vẫn cịn, kính mong thầy/cơ bỏ qua những sai sót
lần này.

1

Luan van


Chương 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN
2.1. Giới thiệu về phần mềm lập trình Keil uVison5
Phần mềm lập trình cho vi điều khiển ARM có nhiều chương trình khác nhau, sau
đây em sẽ sử dụng một chương trình thơng dụng và dễ dàng tiếp cận là Keil uVision5. Để
sử dụng thì đầu tiên phải cài đặt chương trình Keil uVision5, nên làm theo hướng dẫn của
phần mềm.
Biểu tượng Keil uVision5 sau khi cài xong xuất hiện trên desktop như hình sau:

Hình 2.1 Biểu tượng phần mềm Keil uVision5.
-

Hướng dẫn sử dụng phần mềm Keil uVision5:
+ Biên soạn chương trình cơ bản
Bước 1: Nên tạo một thư mục để lưu và quản lý các chương trình lập trình cho vi
điều khiển.
Bước 2: Khởi tạo chương trình Keil uVision5, giao diện xuất hiện như hình 2.2
Thơng thường thì phần mềm sẽ khởi tạo và mở một chương trình soạn thảo sau cùng
hoặc mở một ứng dụng có trong phần mềm.


Hình 2.2 Giao diện phần mềm Keil uVision5
2

Luan van


Bước 3: Tải thư viện cho dòng chip ARM đang sử dụng, dòng chip em đang sử dụng
là STM32F407VET6, tiến hành tải thư viện theo thứ tự 1,2,3 trong hình 2.3, trong thứ tự
4 thì nếu chưa có thì bấm Install, nếu có rồi thì bấm Update kiểm tra cập nhật.

Hình 2.3: Tải thư viện cho phần mềm
Bước 4: Tiến hành chọn biểu tượng open, rồi mục “Project” và chọn “New uVision
Project” theo thứ tự 1,2 trong hình 2.3.

Hình 2.3 Tạo project mới
3

Luan van


Chọn thư chứa file nguồn và đặt tên Project theo ý muốn như hình 2.4 làm theo thứ
tự 1 và 2.

Hình 2.4 Đặt tên thư mục mới

4

Luan van



Bước 5: Chọn dòng chip sử dụng, làm theo thứ tự 1,2,3,4,5 trong hình 2.5

Hình 2.5: Chọn chip sử dụng
Giao diện sau xuất hiện như hình 2.6 và trong file chưa có gì.

Hình 2.6: Màn hình soạn thảo

5

Luan van


Bước 6: Tạo file main.c cho chương trình chính của vi điều khiển bằng tổ hợp phím
“Ctrl+N”, nhấn tiếp tổ hợp phím “Ctrl+S” để lưu file. Nhớ lưu chung địa chỉ của Project
và đặt đúng tên là main.c. Ngôn ngữ KeilC uVision có phân biệt chữ hoa hay chữ thường.
Tuy nhiên phần mềm này có hỗ trợ gợi ý khi viết câu lệnh.
Sau đó tiến hành viết code và biên dịch bằng cách nhấn phím F9. Nếu khơng sai cú
pháp thì chương trình sẽ hiện thơng báo biên dịch thành cơng như hình 2.7

Hình 2.7 Thơng báo biên dịch thành công
Bước 7: Tiến hành nạp code bằng cách nhấn F8 hoặc Load như hình để nạp code
vào chip. Sau đó tiến hành kiểm tra trên Board.

Hình 2.8 Nạp code vào board
Lưu ý: Phần cứng và phần mềm nên đồng bộ với nhau, nếu phần cứng kết nối
với Port nào thì phần mềm phải khởi tạo chính Port đó. Nếu khơng thì mạch sẽ khơng
hoạt động như mong muốn.

2.2. Giới thiệu phần mềm lập trình Arduino IDE
Trong hệ thống thiết kế này, để có thể giao tiếp qua Wifi thì nhóm em sử dụng

Module ESP8266. Để viết code cho Module này nhóm em sử dụng phần mềm lập trình là
Arduino IDE. Để sử dụng phần mềm này thì chúng ta nên làm theo các hướng dẫn của
phần mềm.
Biểu tượng Arduino IDE sau khi cài xong xuất hiện trên desktop như hình sau:

Hình 2.9. Phần mềm lập trình Arduino IDE

6

Luan van


Bước 1: Nên tạo một thư mục để lưu và quản lý các chương trình lập trình cho vi
điều khiển.
Bước 2: Khởi tạo chương trình Keil uVision5, giao diện xuất hiện như hình 2.10
Thơng thường thì phần mềm sẽ khởi tạo và mở một chương trình soạn thảo sau cùng
hoặc mở một ứng dụng có trong phần mềm.

Hình 2.10 Giao diện phần mềm Arduino IDE
Bước 3: Tải thư viện cho dòng chip ESP đang sử dụng, dòng chip em đang sử dụng
là ESP8266, tiến hành tải thư viện bằng cách nhấn tổ hợp phím “Ctrl+Shift+I” và làm theo
các thứ tự như hình 2.11 để tiến hành cài đặt thư viện cho ESP8266.
+ Ở thứ tự thứ 1: ta nhập “ESP8266” vào textbox để tìm kiếm thư viện về ESP8266.
+ Ở thứ tự thứ 2: ta tiến hành “Install” cài đặt thư viện ở hình 2.11 do em đã cài
trước nên không hiện.

7

Luan van



Hình 2.11 Cài đặt thư viện cho ESP8266
Bước 4: Tiến hành nhấn tổ hợp phím “Ctrl+N” để tạo một Project mới.

Hình 2.12 Hình ảnh sau khi tạo Project mới
8

Luan van


Bước 5: Chọn dòng chip sử dụng, làm theo thứ tự 1,2 như trong hình 2.13

Hình 2.13 Chọn Board cần sử dụng
Bước 6: Sau khi viết code xong tiến hành nạp code bằng cách nhấn vào phím
Upload như trong hình 2.14

Hình 2.14 Nạp và kiểm tra lỗi

2.3. Giới thiệu phần mềm lập trình Android Studio
Đây là phần mềm lập trình ứng dụng cho các điện thoại chạy hệ điều hành Android.
Trong phần thiết kế lần này, nhóm em có sử dụng điện thoại để giao tiếp chung với hệ
thống. Vì thế để sử dụng phần mềm này thì ta nên làm theo các bước như bên dưới.
Biểu tượng Arduino IDE sau khi cài xong xuất hiện trên desktop như hình sau:

Hình 2.15 Phần mềm lập trình Android Studio
9

Luan van



Bước 1: Tiến hành mở và tạo một Project mới theo thứ tự 1, 2, 3 như trong hình
2.16

Hình 2.16 Tiến hành tạo Project mới
Sau khi ta làm xong các bước trên, màn hình sẽ hiện ra một cửa sổ mới như hình
2.17 ta tiến hành nhấn vào “Empty Activity” và ấn “Next”

10

Luan van


Hình 2.17 Chọn kiểu Project
Cửa sổ mới tiếp tục hiện ra, ở cửa sổ này ta đặt tên cho Project mới và chọn đường
dẫn cho Project. Bên cạnh đó, phần mềm sẽ hỏi ta Minimum SDK tức là giá trị nhỏ nhất
cho phiên bản Version Android mà Project này hỗ trợ. Ta nên chọn SDK 15 cho phù hợp
với đại đa số điện thoại ngày nay.

11

Luan van


Hình 2.18 Đặt tên cho Project, chọn đường dẫn, SDK MINIMUM
Tiến hành liên kết với Google Firebase, để hiểu rõ hơn về Google Firebase em sẽ
trình bày chi tiết ở Chương 3. Mục này chỉ trình bày về cách liên kết với Google Firebase
với phần mềm Android Studio.
Sau khi làm xong theo hình 2.18, cửa sổ lập trình Project mới sẽ hiện ra. Tại đây
để liên kết với Google Firebase ta làm theo các bước sau:
+ Đầu tiên ta vào mục Tools\ Firebase từ cửa sổ lập trình Project mới của ta

đang mở

12

Luan van


Hình 2.19 Cách liên kết với Google Firebase
Cửa sổ Firebase mở ra bên phải ứng dụng của ta. Từ đây ta có thể làm theo các
hướng dẫn của Google. Các hàm mẫu và chỉ dẫn cũng khá chi tiết.
Nếu muốn dùng Firebase tạo cơ sở dữ liệu thời gian thực, ta nhấn vào mục
Realtime Database

Hình 2.20 Cài đặt các yêu cầu liên kết

13

Luan van


Sau đó ta nhấn tiếp vào mục Save and retrieve data. Ta lần lượt thực hiện các bước
tiếp theo

Hình 2.21 Lưu dữ liệu liên kết
Sau khi thực hiện xong việc liên kế ứng dụng với Firebase thì bạn sẽ thấy thơng báo
như sau tại cửa sổ Firebase trong ứng dụng.

Hình 2.22 Thông báo liên kết thành công

14


Luan van


2.4. Lý thuyết về vi điều khiển STM32
2.4.1.
Tổng quan về vi điều khiển ARM
 Giới thiệu
Cấu trúc ARM (viết tắt của Acorn RISC Machine) là một cấu trúc vi xử lý 32 bit
kiểu RISC (thuộc kiến trúc Hardvard, có tập lệnh rút gọn) được sử dụng rộng rãi trong
các thiết kế nhúng. Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế
trong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp
là một mục tiêu thiết kế quang trọng hang đầu.
Ngày nay ARM được ứng dụng rộng rãi trên mọi lĩnh vực của đời sống: Robot, máy
tính, điện thoại, xe hơi, máy giặt…

Hình 2.23 Một số ứng dụng của ARM

15

Luan van


 Lịch sử phát triển ARM
Việc thiết kế ARM được bắt đầu tử năm 1983 trong một dự án phát triển của cơng ty
máy tính Acorn. Nhóm thiết kế hồn thành việc phát triển mẫu gọi là ARM1 năm 1985, và
vào năm sau, nhóm hồn thành sản phẩm gọi là ARM2 với thiết kế đơn giản chỉ gồm
30.000 transistor. ARM2 có tuyến dữ liệu 32 bit, khơng gian địa chỉ 26 bit tức cho phép
quản lý đến 64 Mbyte địa chỉ và 16 thanh ghi 32 bit. Thế hệ sau, ARM3 được tạo ra với
4KB cache và có chức năng được cải thiện nhiều lần hơn.

Vào những năm cuối thập niên 80, hang máy tính Apple Computer và hang VLSI
Technology bắt đầu hợp tác với Acorn để phát triển các thế hệ lõi ARM mới. Kết quả sự
hợp tác này là ARM6. Mẫu đầu tiên được công bố vào năm 1982 và Apple đã sử dụng bộ
vi xử lý ARM 610 dựa trên ARM6 làm cơ sở dữ liệu cho PDA hiệu Apple Newton. Vào
năm 1994, Acorn dùng ARM 610 làm CPU trong các máy tính RiscPC của họ.
Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích thước. ARM2 có
30.000 transistor nhưng đến ARM6 cũng chỉ có 35.000 transistor. Ý tưởng của nhà sản
xuất lõi ARM là sao cho người sử dụng có thể ghép lõi ARM với một số bộ phận tùy ý nào
đó để tạo ra một CPU hoàn chỉnh, một loại CPU mà có thể tạo ra trên những nhà máy sản
xuất bán dẫn cũ và tiếp tục tạo ra sản phẩm với nhiều chức năng nhưng giá thành thấp.
Bảng 2.1 Các dòng phát triển của ARM
Kiến trúc
Số Bit
Tên lõi
ARMv1
32/26
ARM1
ARMv2
32/26
ARM2, ARM3
ARMv3
32
AMR6, ARM7
ARMv4
32
ARM8
ARMv4T
32
ARM7TDMI, ARM9TDMI
ARMv5

32
ARM7EJ, ARM9E, ARM10E
ARMv6
32
ARM11
ARMv6-M
32
ARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M1
ARMv7-M
32
ARM Cortex-M3
ARMv7E-M
32
ARM Cortex-M4
ARMv7-R
32
ARM Cortex-R4, ARM Cortex-R5, ARM Cortex-R7
ARMv7-A
32
ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A*
ARMv8-A
64/32
ARM Cortrx-A53, ARM Cortex-Ạ57

16

Luan van


 Kiến trúc của ARM


Hình 2.24 Kiến trúc của ARM
 Giới thiệu về AMR Cortex

-

Lõi Cortex được thừa kế từ thế hệ lõi ARM11 về trước đó. Để phù hợp với nhu
cầu sử dụng, ARM được chia làm 3 dòng:
Cortex-A: dành cho hệ điều hành và các ứng dụng phức tạp. Hỗ trợ tập lệnh ARM,
thumb, và thumb2
17

Luan van


-

Cortex-R: Bộ xử lý dành cho hệ thống đòi hỏi khắc khe và đáp ứng thời gian thực.
Hỗ trợ tập lệnh ARM, thumb, và thumb2.
Cortex-M: Bộ xử lý dành cho dòng vi điều khiển, được thiết kế tối ưu về giá
thành. Hỗ trợ tập lệnh Thumb-2.

Ở trong hệ thống được thiết kế lần này thì nhóm em sử dụng các chip thuộc lõi M3
là STM32F103 và M4 là STM32F407.
 Giới thiệu về ARM Cortex- M3
ARM Cortex-M3 được thiết kế đặc biệt để nâng cao hiệu suất hoạt động của hệ
thống kết hợp tiêu thụ năng lượng thấp. ARM Cortex-M3 được thiết kế trên nền kiến
trúc mới do đó chi phí sản xuất đủ thấp để cạnh tranh với các dòng 8 và 16 Bit truyền
thống. Chúng có các đặc điểm sau:
- Là vi xử lý hiệu suất cao 32 bit thuộc kiến trúc Armv7-M, đường ống 3 tầng

- Kiến trúc Harvard cung cấp các bus dữ liệu và lệnh riêng biệt
- Hỗ trợ tập lệnh Thumb-2
- Khối quản lý vecto ngắt lồng nhau (NVIC- Nested vectored Interupt Controller)
cho phép rút ngắt thời gian đáp ứng yêu cầu ngắt.
- Bảo vệ bộ nhớ với 8 vùng MPU với các vùng phụ và vùng nền.
- BUS interface 3x AMBA AHB-Lite Interface
- Hỗ trợ chuẩn nạp JTAG và serial wire

Hình 2.25 Kiến trúc ARM Cortex-M3
18

Luan van


 Giới thiệu về ARM Cortex- M4
Bộ xử lý Cortex-M4 được phát triển để giải quyết các thị trường điều khiển tín
hiệu số địi hỏi sự kết hợp hiệu quả, dễ sử dụng của khả năng điều khiển và xử lý tín
hiệu. Sự kết hợp giữa chức năng xử lý tín hiệu hiệu quả cao với các lợi ích năng lượng
thấp, chi phí thấp và dễ sử dụng của bộ vi xử lý Cortex-M đáp ứng nhiều thị trường.
Những ngành này bao gồm điều khiển động cơ, ô tô, quản lý năng lượng, âm thanh
nhúng và thị trường tự động hóa cơng nghiệp. Chúng có các đặc điểm sau:
- Là vi xử lý hiệu suất cao 32 bit thuộc kiến trúc Armv7E-M, đường ống 3 tầng.
- Kiến trúc Harvard cung cấp các bus dữ liệu và lệnh riêng biệt (2-12 chu kỳ)
- Hỗ trợ tập lệnh Thumb-2
- Khối quản lý vecto ngắt lồng nhau (NVIC- Nested vectored Interupt Controller)
cho phép rút ngắt thời gian đáp ứng yêu cầu ngắt.
- Bảo vệ bộ nhớ với 8 vùng MPU với các vùng phụ và vùng nền.
- BUS interface 3x AMBA AHB-Lite Interface
- Hỗ trợ chuẩn nạp JTAG và serial wire
- Hỗ trợ DSP (Digital Signal Process) giải quyết các vấn đề về tín hiệu số


Hình 2.26 Kiến trúc ARM Cortex-M4
19

Luan van


2.4.2.
2.4.2.1.

Vi điều khiển ARM STM32F103C8T6
Giới thiệu

Đây là vi điều khiển hiệu năng cao được sản xuất dựa trên lõi Arm Cortex- M3.
STM32F103C8T6 thuộc dòng vi điều khiển F1 và là vi điều khiển 32 Bit. Là một vi điều
khiển giá rẻ trên thị trường, mạch nạp và công cụ lập trình đa dạng.
Cấu hình của vi điều khiển trên như sau:
- Bộ nhớ FLASH 64Kbytes và bộ nhớ SRAM lên đến 20Kbytes
- Số I/O là 37 và các ngoại vi được kết nối với cầu APB
- Điện áp hoạt động 2.0V đến 3.6V
- Sử dụng thạch anh ngoài từ 4Mhz đến 20Mhz
- Thạch anh nội dùng dao động RC ở mode 8Mhz hoặc 40khz.
- Sử dụng thạch anh ngoài 32.768khz được sử dụng cho RTC.
- Có 2 bộ ADC 12 bit với 9 kênh cho mỗi bộ.
+ Khoảng giá trị chuyển đổi từ 0 – 3.6V.
+ Lấy mẫu nhiều kênh hoặc 1 kênh.
+ Có cảm biến nhiệt độ nội.
- Có 7 kênh điều khiển DMA, hỗ trợ DMA cho ADC, I2C, SPI, UART
- Số TIMER: 7
+ 3 TIMER 16 bit hỗ trợ các mode IC/OC/PWM.

+ 1 TIMER 16 bit hỗ trợ để điều khiển động cơ với các mode bảo vệ như ngắt
input, dead-time..
+ 2 watdog timer dùng để bảo vệ và kiểm tra lỗi.
+ 1 SysTick timer 24 bit đếm xuống dùng cho các ứng dụng như hàm Delay….
- Hỗ trợ 9 kênh giao tiếp bao gồm:
+ 2 bộ I2C(SMBus/PMBus).
+ 3 bộ USART(ISO 7816 interface, LIN, IrDA capability, modem control).
+ 2 SPIs (18 Mbit/s).
+ 1 bộ CAN interface (2.0B Active)
+ USB 2.0 full-speed interface
- Có kiểm tra lỗi CRC và 96 bit ID

20

Luan van


Hình 2.27 Các chân và ngoại vi trên STM32F103C8T6

Hình 2.28 Ảnh thực tế Board STM32F103C8T6









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.

21

Luan van


2.4.2.2.

Cơ sở lý thuyết về chuẩn giao tiếp SPI của STM32F103C8T6

SPI (Serial Peripheral Interface) là chuẩn giao tiếp đồng bộ 4 dây do hãng Motorola
phát triển. Chuẩn giao tiếp này bao gồm 1 thiết bị Master, 1 hay nhiều thiết bị Slave. Tốc
độ giao tiếp SPI cũng là khá cao nên nó được dùng nhiều trong các ứng dụng như:
module SIM, module Btultooth, Module wifi, IC nhớ, thẻ nhớ, IC RFID, IC chuyển đổi
ADC, đọc tín hiệu vị trí từ IC màn hình, IC dịch bit….






Các dây của chuẩn giao tiếp SPI bao gồm:
SCK: chân này là chân clock, duy trì xung nhịp cho mọi hoạt động truyền nhận.

Nhờ có chân này nên SPI là chuẩn giao tiếp đồng bộ và data trong q trình truyền
nhận cũng ít sai sót hơn nhờ sự đồng bộ này. Xung nhịp chỉ do thiết bị Master phát
ra.
MOSI (Master output slave input): khi thiết bị được cấu hình là Master thì nó sẽ là
chân xuất dữ liệu và khi là Slave thì sẽ là chân nhận dữ liệu.
MISO (Master input Slave output): khi thiết bị được cấu hình là Master thì nó sẽ là
chân nhập dữ liệu và khi là Slave thì sẽ là chân xuất dữ liệu.
CS – NSS: là chân chọn thiết bị, khi có nhiều thiết bị Slave, chân này sẽ là chân
quyết định thiết bị nào sẵn sàng được giao tiếp. Ở 1 số IC nhớ, chân này sẽ là chân
cho phép có được giao tiếp(enable) với IC đó hay khơng.

Hình 2.29: Các chân giao tiếp của chuẩn SPI.

STM32f103C8T6 có 2 cổng giao tiếp SPI tốc độ tối đa lên đến 18Mbs/s với nhiều
mode cấu hình. Một số tính năng chính của giao tiếp SPI trên MCU này là:







Truyền đồng bộ full –duplex trên 3 dây chính, half – duplex, chỉ truyền, chỉ nhận.
Cấu hình bằng phần mềm là master hay Slave.
Khung truyền cấu hình là 8 hay 16 bit.
Cấu hình data truyền theo kiểu MSB hoặc LSB đi trước.
Có các cờ báo lỗi, tính năng CRC, cờ ngắt.
Có hỗ trợ DMA (bộ truyền tốc độ cao).
22


Luan van


2.4.3.

Vi điều khiển ARM STM32F407ZGT6

Đây là vi điều khiển hiệu năng cao được sản xuất dựa trên lõi Arm Cortex- M4.
STM32F407ZGT6 thuộc dòng vi điều khiển F4 và là vi điều khiển 32 Bit. Là một vi điều
hỗ trợ tốt về xử lý tín hiệu số.
Cấu hình của vi điều khiển trên như sau:
- Bộ nhớ FLASH 1 Mbyte và bộ nhớ SRAM lên đến 192+4 Kbytes
- Số I/O là 140 và các ngoại vi được kết nối với cầu APB
+ Với 136 I/Os tốc độ cao 84Mhz
+ 138 I/Os hoạt động điện áp 5V
- Điện áp hoạt động 1.8V đến 3.6V
- Sử dụng thạch anh ngoài từ 4Mhz đến 26Mhz
- Thạch anh nội dùng dao động RC ở mode 32Khz
- Có các chế độ:
+ Ngủ
+ Dừng hoạt động
+ Nghỉ tạm thời.
- Sử dụng thạch anh ngoài 32.768khz được sử dụng cho RTC.
- Có điện áp nguồn cung cấp cho RTC.
- Có 2 bộ ADC 12 bit
- + Khoảng giá trị chuyển đổi từ 0 – 3.6V.
+ Lấy mẫu nhiều kênh hoặc 1 kênh.
+ Có cảm biến nhiệt độ nội.
- Có 16 kênh điều khiển DMA, hỗ trợ DMA cho ADC, I2C, SPI, UART
- Số TIMER: 17

+ 12 TIMER 16 bit hỗ trợ các mode IC/OC/PWM.
+ 2 TIMER 32 bit
+ 2 watdog timer dùng để bảo vệ và kiểm tra lỗi.
+ 1 SysTick timer 24 bit đếm xuống dùng cho các ứng dụng như hàm Delay…
- Hỗ trợ 9 kênh giao tiếp bao gồm:
+ 3 bộ I2C(SMBus/PMBus).
+ 4 bộ USART(ISO 7816 interface, LIN, IrDA capability, modem control).
+ 3 SPIs (42 Mbit/s).
+ 2 bộ CAN interface (2.0B Active)
+ USB 2.0 full-speed interface
+ Giao tiếp SDIO
- Các chuẩn nạp Serial wire debug (SWD) & giao tiếp JTAG
23

Luan van


×