Arm Holdingsphát triển kiến trúc và cấp phép nó cho các công ty khác, nơi mà sẽ thiết kế các sảnphẩm của riêng họ để thực hiện một trong những kiến trúc đó bao gồm các SoC và cácmodule h
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG I
BÁO CÁO BÀI TẬP LỚN
Trang 3LỜI NÓI ĐẦU
Trong xu thế phát triển hiện nay, với sự bùng nổ của các ngành công nghệ thôngtin, điện tử, tự động hóa, … Đã làm cho đời sống của con người ngày càng hoàn thiện.Các thiết bị tự động hóa đã ngày càng xâm lấn vào trong sản xuất và thậm chí là vàocuộc sống sinh hoạt hàng ngày của mỗi con người Ví dụ như một chiếc ô tô có thể cóhàng ngàn thiết bị hỗ trợ người lái Là một sinh viên khoa Điện tử Viễn thông, bằng
những kiến thức đã học, nhóm em đã chọn đề tài Thiết kế mạch đo nhiệt độ dùng NTC cho bài tập lớn.
Trong quá trình làm đề tài này, chúng em đã cố gắng hoàn thành thật tốt nhưng dokiến thức còn hạn chế cùng với những yếu tố khách quan khác mà không tránh khỏinhững thiếu sót Chúng em rất mong được sự đóng góp ý kiến, phê bình và hướng dẫnthêm của thầy cũng như các bạn đọc
Cuối cùng chúng em xin gửi lời cảm ơn chân thành nhất tới thầy…… đã hướngdẫn tận tình, giảng giải chi tiết giúp chúng em hoàn thành được đềtài Trong quá trìnhhọc tập và nghiên cứu, chúng em đã có thêm được nhiều kiến thức về chuyên ngànhcũng như những kiến thức của môn học Kỹ thuật vi xử lý đồng thời có thời gian rènluyện các kỹ năng khác cần thiết cho cuộc sống
Chúng em xin chân thành cảm ơn !
Trang 4MỤC LỤC
PHẦN 1 CƠ SỞ LÝ THUYẾT 1
1 Tổng quan về cấu trúc ARM 1
2 Tổng quan về vi xử lí lõi ARM Cortex-M3 1
1 Vi điều khiển STM32 3
2 Vi điều khiển STM32F103C8T6 4
PHẦN 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 14
1 Yêu cầu chung 14
2 Yêu cầu đối với module cảm biến DHT11 14
3 Yêu cầu với LCD 1602 14
PHẦN 3 XÂY DỰNG THIẾT KẾ HỆ THỐNG 15
Trang 5PHẦN 1 CƠ SỞ LÝ THUYẾT
I Tổng quan về cấu trúc ARM và vi xử lí lõi ARM Cortex-M3
ARM (từ viết tắt của Advanced RISC Machine) là một họ kiến trúc dạng RISC chocác vi xử lý máy tính, được cấu hình cho các môi trường khác nhau Arm Holdingsphát triển kiến trúc và cấp phép nó cho các công ty khác, nơi mà sẽ thiết kế các sảnphẩm của riêng họ để thực hiện một trong những kiến trúc đó bao gồm các SoC và cácmodule hệ thống (SoM) kết hợp với các thành phần khác nhau như bộ nhớ, giao diện,radio Họ cũng thiết kế các lõi thực hiện tập lệnh này và cấp phép cho các thiết kế nàycho các công ty đối tác để thiết kế sản phẩm của riêng họ dựa trên các lõi này.Các bộ xử lý có kiến trúc RISC thường yêu cầu ít bóng bán dẫn hơn các bộ xử lý
có kiến trúc điện toán tập lệnh phức tạp (CISC) (như bộ xử lý x86 có trong hầu hết cácmáy tính cá nhân), giúp cải thiện chi phí, tiêu thụ điện năng và tản nhiệt Những đặcđiểm này là mong muốn đối với các thiết bị nhẹ, di động, chạy bằng pin bao gồm cảđiện thoại thông minh, máy tính xách tay và máy tính bảng và các hệ thống nhúngkhác Đối với các siêu máy tính tiêu thụ một lượng điện lớn, ARM cũng có thể là mộtgiải pháp tiết kiệm năng lượng
ARM Holdings định kỳ phát hành bản cập nhật cho kiến trúc Các phiên bản kiếntrúc ARMv3 đến ARMv7 hỗ trợ không gian địa chỉ 32 bit (chip tiền ARMv3, được tạotrước khi ARM Holdings được hình thành, như được sử dụng trong AcornArchimedes, có không gian địa chỉ 26 bit) và số học 32 bit; hầu hết các kiến trúc đều
có các hướng dẫn có độ dài cố định 32 bit Phiên bản Thumb hỗ trợ một tập lệnh có độdài thay đổi, cung cấp cả hai lệnh 32 và 16 bit để cải thiện mật độ mã Một số lõi cũhơn cũng có thể cung cấp thực thi phần cứng cho mã byte Java Được phát hành vàonăm 2011, kiến trúc ARMv8-A đã thêm hỗ trợ cho không gian địa chỉ 64 bit và số học
64 bit với tập lệnh có độ dài cố định 32 bit mới
Vi xử lý lõi ARM Cortex dựa trên 3 cấu hình của kiến trúc ARMv7:
Trang 6− Cấu hình A: cho các ứng dụng Application, yêu cầu cao chạy trên các hệ điều hành
mở và phức tạp như Linux, Android…
− Cấu hình R: cho các ứng dụng thời gian thực Real Time
− Cấu hình M: cho các ứng dụng vi điều khiển Microcontroller
Bộ vi xử lý ARM Cortex-M3 dựa trên kiến trúc ARMv7-M có cấu trúc thứ bậc Nótích hợp lõi xử lý trung tâm, với các thiết bị ngoại vi hệ thống tiên tiến để tạo ra cáckhả năng như kiểm soát ngắt, bảo vệ bộ nhớ, gỡ lỗi và theo vết hệ thống ARM CortexM3 dựa trên cấu trúc Havard, được đặc trưng bằng sự tách biệt giữa vùng nhớ dữ liệu
và chương trình Vì có thể đọc cùng lúc lệnh và dữ liệu từ bộ nhớ, bộ vi xử lý ARMCortex-M3 có thể thực hiện nhiều hoạt động song song, tăng tốc thực thi ứng dụng
Cấu Trúc Vi Xử Lý ARM Cortex M3
Lõi ARM Cortex có cấu trúc đường ống gồm 3 tầng: Instruction Fetch, Instruction Decode và Instruction Execute Khi gặp một lệnh nhánh, tầng decode chứa một chỉ thịnạp lệnh suy đoán có thể dẫn đến việc thực thi nhanh hơn Bộ xử lý nạp lệnh dự định
rẽ nhánh trong giai đoạn giải mã Sau đó, trong giai đoạn thực thi, việc rẽ nhánh được giải quyết và bộ vi xử lý sẽ phân tích xem đâu là lệnh thực thi kế tiếp Nếu việc rẽ nhánh không được chọn thì lệnh tiếp theo đã sẵn sàng Còn nếu việc rẽ nhánh được chọn thì lệnh rẽ nhánh đó cũng đã sẵn sàng ngay lập tức, hạn chế thời gian rỗi chỉ còn
Trang 8The Cortex–M3 processor
Bộ vi xử lý Cortex-M3 là một bộ vi xử lý 32-bit, với độ rộng của đường dẫn dữ liệu 32 bit, các dải thanh ghi và giao tiếp bộ nhớ Có 13 thanh ghi đa dụng, hai con trỏngăn xếp, một thanh ghi liên kết, một bộ đếm chương trình và một số thanh ghi đặc biệt trong đó có một thanh ghi trạng thái chương trình
II Tổng quan về vi điều khiển STM32 và STM32F103C8T6
ST đã đưa ra thị trường 4 dòng vi điều khiển dựa trên ARM7 và ARM9, nhưngSTM32 là một bước tiến quan trọng trên đường cong chi phí và hiệu suất(price/performance), giá chỉ gần 1 Euro với số lượng lớn, STM32 là sự thách thức thật
sự với các vi điều khiển 8 và 16-bit truyền thống STM32 đầu tiên gồm 14 biến thể
TÀI LIỆU THI TÍN HIỆUHỆ THỐNG
Kỹ thuật vi
11
BÀI TẬP TÌNH HUỐNG MÔN KỸ NĂNG LÀM…
Kỹ thuật vi
4
Sách hướng dẫn học tập vật lý đại cươn…
60
Trang 9trong hai nhóm này tương thích hoàn toàn về cách bố trí chân (pin) và phần mềm, đồng thời kích thước bộ nhớ FLASH ROM có thể lên tới 512K và 64K SRAM.
Kiến trúc của STM32 nhánh Performance và Access
Nhánh Performance hoạt động với xung nhịp lên đến 72Mhz và có đầy đủ các ngoại vi, nhánh Access hoạt động với xung nhịp tối đa 36Mhz và có ít ngoại vi hơn sovới nhánh Performance
Kit phát triển STM32F103C8T6
Cấu trúc của kit STM32F103C8T6 bao gồm:
− 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
Trang 10− 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
ARM 32-bit Cortex M3 với clock max là 72Mhz
Bộ nhớ 64 kbytes bộ nhớ Flash(bộ nhớ lập trình) và 20kbytes SRAM.Clock,
reset và quản lý nguồn:
− Điện áp hoạt động 2.0V -> 3.6V
− Power on reset (POR), Power down reset (PDR) và programmable voltage detector (PVD)
− Sử dụng thạch anh ngoài từ 4Mhz -> 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
Trong trường hợp điện áp thấp:
− Có các mode :ngủ, ngừng hoạt động hoặc hoạt động ở chế độ chờ
− Cấp nguồn ở chân Vbat bằng pin để hoạt động bộ RTC và sử dụng lưu trữ data khi mất nguồn cấp chính
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
DMA bộ chuyển đổi này giúp tăng tốc độ xử lý do không có sự can thiệp quá sâucủa CPU:
− 7 kênh DMA
− Hỗ trợ DMA cho ADC, I2C, SPI, UART
7 timer:
Trang 11− 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:
Sơ đồ chân kit STM32F103C8T6
Các thông số kĩ thuật của kit STM32F103C8T6:
− Điện áp cấp 5VDC qua cổng Micro USB sẽ được chuyển đổi thành 3.3VDC qua
IC nguồn và cấp cho Vi điều khiển chính
− Tích hợp sẵn thạch anh 8Mhz
− Tích hợp sẵn thạnh anh 32Khz cho các ứng dụng RTC
Trang 12− 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: ST-Link Mini, J-link hoặc USB TO COM
− Kết nối chân khi nạp bằng ST-Link Mini: TCK - SWCLK, TMS - SWDIO, GND-GND, 3.3V - 3.3V
III Lập trình cho STM32
STMicroelectronics đã giới thiệu một công cụ có tên STM32CubeMX ,tạo code cơbản theo các thiết bị ngoại vi và board STM32 được chọn Vì vậy, chúng ta không cầnphải lo lắng về việc code hóa cho các trình điều khiển và thiết bị ngoại vi cơ bản Hơnnữa code được tạo này có thể được sử dụng trong Keil uVision để chỉnh sửa theo yêucầu Và cuối cùng, code được ghi vào STM32 bằng lập trình ST-Link từSTMicroelectronics
Công cụ STM32CubeMX là một phần của STMicroelectronics STMCube Công
cụ phần mềm này giúp cho việc phát triển dễ dàng bằng cách giảm giai đoạn pháttriển, thời gian và chi phí STM32Cube bao gồm STM32CubeMX là một công cụ cấuhình phần mềm đồ họa cho phép tạo code C bằng cách sử dụng trình hướng dẫn đồhọa Code đó có thể được sử dụng trong các môi trường phát triển khác nhau như keiluVision, GCC, IAR, v.v Bạn có thể tải xuống công cụ này từ liên kết sau
STM32CubeMX có các tính năng sau:
− Chân gỡ lỗi
− Trợ giúp thiết lập xung
− Một nguồn
− Một tiện ích thực hiện cấu hình ngoại vi MCU như chân GPIO, USART, v.v
− Một tiện ích thực hiện cấu hình ngoại vi MCU cho các ngăn xếp phần mềm trung gian như USB, TCP / IP, v.v
Keil C là phần mềm hỗ trợ người dung trong việc lập trình các dòng vi điều khiểnkhác nhau Keil C giúp người dung soạn thảo và biên dịch chương trình C hayAssembly thành ngôn ngữ máy để nạp vào vi điều khiển giúp tương tác giữa vi điều
Trang 13Quy trình sẽ là cấu hình cơ bản trên CubeMX:
Sau đó sẽ lập trình nâng cao trên KeilC:
Trang 14IV Tổng quan về điện trở nhiệt NTC
Cảm biến và module cảm biến DHT11
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
Sơ đồ chân Cảm biến DHT11 gồm 2 chân cấp nguồn, và 1 chân tín hiệu được mô
tả ở hình 1.9 Hiện nay, thông dụng ngoài thị trường có hai loại đóng gói cho DHT11:
3 chân và 4 chân
Trang 15Các chân của cảm biến DHT11
Cảm biến nhiệt độ, độ ẩm DHT11 với giá thành rẻ, dễ sử dụng, thích hợp sử dụng trong các ứng dụng yêu cầu độ chính xác không cao, môi trường không khắc nghiệt
V Tổng quan về thiết bị LCD 1602
Ngày nay, thiết bị hiển thị LCD 1602 (Liquid Crystal Display) được sử dụng trongrất nhiều các ứng dụng của vi điều khiển LCD 1602 có rất nhiều ưu điểm so vớicác dạnghiển thị khác như: khả năng hiển thị kí tự đa dạng (chữ, số, kí tự đồ họa), dễdàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tiêu tốn rất íttài nguyên hệ thống, giá thành rẻ,…
Thông số kĩ thuật của sản phẩm LCD 1602:
Trang 16LCD 1602 xanh lá và các chân
Chức năng của từng chân LCD 1602:
− Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển
− Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạch điều khiển
− Chân số 3 - VE : điều chỉnh độ tương phản của LCD
− Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1":+ 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
− Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0”
để ghi hoặc nối với logic “1” đọc
− Chân số 6 - E : chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân này như sau:+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong khi phát hiện một xung (high-to-low transition) của tín hiệu chân E
Trang 17DB0-+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnhlên(low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân
E xuống mức thấp
− Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ liệu dùng để trao đổi thông tinvới MPU Có 2 chế độ sử dụng 8 đường bus này là: Chế độ 8 bit (dữ liệu được truyềntrên cả 8 đường, với bit MSB là bit DB7) và Chế độ 4 bit (dữ liệu được truyền trên 4đường từ DB4 tới DB7, bit MSB là DB7)
− Chân số 15 - A : nguồn dương cho đèn nền
− Chân số 16 - K : nguồn âm cho đèn nền
VI Tổng quan về Module I2C LM1602
Module chuyển đổi I2C cho LCD sẽ giải quyết vấn đề chiếm nhiều chân vi điềukhiển của LCD, thay vì sử dụng tối thiểu 6 chân của vi điều khiển để kết nối với LCD(RS, EN, D7, D6, D5 và D4) thì với module chuyển đổi chỉ cần sử dụng 2 chân (SCL,SDA) để kết nối Module chuyển đổi I2C hỗ trợ các loại LCD sử dụng driverHD44780, kết nối với vi điều khiển thông qua giao tiếp I2C, tương thích với hầu hếtcác vi điều khiển hiện nay
Module I2C LM1602
Thông số kĩ thuật:
− Điện áp hoạt động: 2.5-6V DC
− 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)
− Kích thước: 41.5mm(L)x19mm(W)x15.3mm(H)
Trang 18− Trọng lượng: 5g
− 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
Trang 19PHẦN 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
I Nguyên lý hoạt động
Hệ thống hoạt động dựa trên dữ liệu thu được từ cảm biến DHT11 sau đó đưa kếtquả đo ra màn hình LCD Khi kết quả đo vượt qua một ngưỡng nhất định sẽ đưa racảnh báo bằng đèn LED
Với tiền đề là hệ thống cảnh báo nhiệt độ vượt qua ngưỡng quy định ta có thể pháttriển theo 2 hướng:
− Tích hợp với điều khiển động cơ bước để trở thành hệ thống tự động làm mát
− Tích hợp với cảm biến khói MQ-2 để trở thành hệ thống tự động báo cháy
II Yêu cầu
− Sai số hệ thống không vượt quá 5% độ ẩm và 2°C
− Đưa ra cảnh báo LED gần như ngay lập tức nếu phát hiện nhiệt độ vượt quá ngưỡng quy định
− Hoạt động liên tục, ổn định
− Module có chức năng đo các thông số nhiệt độ, độ ẩm để gửi dữ liệu ra LCD
− Hoạt động ổn định, lâu dài
− Đưa ra kết quả chính xác trong sai số cho phép
− Nhỏ gọn, tiện lợi, dễ sử dụng
− Hiển thị các thông số đo được từ cảm biến DHT11
− Hiển thị rõ ràng các kí tự
Trang 20− Hoạt động ổn định, không nhấp nháy.
PHẦN 3 XÂY DỰNG THIẾT KẾ HỆ THỐNG
I Sơ đồ khối hệ thống
Khối vi điều khiển (MCU) có chức năng điều khiển mọi hoạt động của mạch nhưphát xung điều khiển LCD1602, nhận tín hiệu từ module DHT11, bật tắt LED cảnh báo
Led báo hiệu sử dụng Led red siêu sáng
LCD1602 sử dụng LCD xanh dương để hiển thị kết quả đo
Module DHT11 để đo các giá trị nhiệt độ và độ ẩm để gửi về MCU
II Linh kiện sử dụng
Kit STM32F103C8T6
Trang 21LCD1602 xanh dương - Điện áp hoạt động là 5V.
- Kích thước: 80 x 36 x 12.5mm
- Chữ trắng, nền xanh dương
- Khoảng cách giữa hai chân kết nối là0.1 inch tiện dụng khi kết nối vớiBreadboard
- Có đèn led nền, có thể dùng biến trởhoặc PWM điều chình độ sáng để sửdụng ít điện năng hơn
- Có thể được điều khiển với 6 dây tínhiệu
I2C cho LCD1602 - Kích thước: 41.5mm(L) X 19mm(W)
- Chuẩn giao tiếp: TTL, 1 wire
- Khoảng đo độ ẩm: 20%-80%RH sai số
- Đường kính: 5mm
- Dòng tiêu thụ tối đa: 20mA
- Dòng tiêu thụ khuyến nghị: 16mA - 18mA
Trang 22Dây nối board
III.Lưu đồ thuật toán
IV Sơ đồ thiết kế mạch
Trang 23V Viết chương trình code cho vi điều khiển STM32F103C8T6
Trang 24void delay_ms(uint32_t u32Delay);
void delay_us(uint32_t u32Delay);
gpioInit.GPIO_Pin = GPIO_Pin_8; // chan data cua DHT11 noi voi chan PB8 cua STM32
Trang 27/* cho chan PB12 xuong thap */
Trang 28/* cho chan PB12 xuong thap */