- SKIP ROM CCh Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của DS1820 mà không cần gửi chuỗi mã 64 bit ROM.. - SEARCH ROM F0h Lệnh này cho phép bộ điều kh
Trang 1Bộ Thông Tin Và Truyền Thông Học Viện Công Nghệ Bưu Chính Viễn Thông
………
ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG
Đề tài : “ Cảnh báo nhiệt độ từ xa qua RF“
Người hướng dẫn : TS Nguyễn Ngọc Minh
Trang 2Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất Song do buổi đầu mới làm quen với công tác nghiên cứu khoa học , tiếp cận tri thức mới với các tài liệu có hạn nên không thể tránh khỏi những thiếu sót nhất định mà bản thân chưa thấy được Chúng em rất mong được sự góp ý của quý Thầy và các bạn đồng học để bài báo cáo được hoàn chỉnh hơn
Chúng em xin chân thành cảm ơn !
Trang 3Chương I :Đặt Vấn Đề
1 Lời mở đầu
Ngày nay với những ứng dụng khoa học tiên tiến, thế giới của chúng ta ngày một hiện đại và văn minh hơn Sự phát triển của kĩ thuật điện tử đã tạo ra hàng loạt những thiết bị với sự chính xác cao, tốc độ nhanh, gọn nhẹ đã đóng vai trò vô cùng quan trọng trong cuộc sống của con người, là chìa khóa đi vào công nghệ hiện đại Máy móc dần đang thay thế sức lao động của con người, tự động hóa, điều khiển đóng vai trò vô cùng quan trọng trong công nghiệp, quản lí
Điện tử đang trở thành một ngành khoa học đa nhiệm vụ Điện tử đã đang và không ngừng đáp ứng được nhu cầu của các ngành nông- lâm- ngư nghiệp đến các nhu cầu trong cuộc sống
Một trong những ứng dụng quan trọng của công nghệ Điện tử là kỹ thuật điều khiển
từ xa Nó đã góp phần rất lớn trong việc điều khiển các thiết bị phục vụ nhu cầu của sản xuất
Xuất phát từ ứng dụng trên, chúng em đã chọn đề tài “Thiết kế hệ thống cảnh báo nhiệt độ từ xa qua RF ”
2 Nhiệm Vụ
-Tìm hiểu tổng quan về module RF , KIT … và cơ chế hoạt động
-Tìm hiểu phần mềm Keil C, Altium
Trang 4- Hiểu được nguyên tắc hoạt động của các khối.
-Phát triển đề tài ứng dụng được vào trong cuộc sống
Trang 5CHƯƠNG II: CƠ SỞ LÍ THUYẾT
A về RF nRF24L01
1 Giới thiệu về sóng RF.
Trong một phiên truyền thông, vì tận cùng bản chất của dữ liệu bao gồm các bit 0 và 1, bên phát dữ liệu cần có một cách thức để gửi các bit 0 và 1 để gửi cho bên nhận Một tín hiệu xoay chiều hay một chiều tự nó sẽ không thực hiện tác vụ này Tuy nhiên, nếu một tín hiệu có thay đổi
và có dao động, dù chỉ một ít, sự thay đổi này sẽ giúp phân biệt bit 0 và bit 1 Lúc đó, dữ liệu cần truyền sẽ có thể gửi và nhận dữ liệu thành công dựa vào sự thay đổi của tín hiệu Dạng tín hiệu điều chế còn gọi là sóng mang Có ba thành phần của dạng sóng có thể tạo ra sóng mang, đó là biên độ, tần số, và pha Tất cả các dạng truyền thông dùng sóng vô tuyến đều dùng vài dạng điều chế để truyền dữ liệu Để mã hóa dữ liệu vào trong một tín hiệu qua sóng AM/FM, điện thoại di động, truyền hình vệ tinh, ta phải thực hiện một vài kiểu điều chế trong sóng vô tuyến đang truyền
1.1 Module RF nRF24L01
NRF24L01 được thiết kế để cài đặt và hoạt động dựa trên giao tiếp SPI (Serial Peripheral Interface) Do đó các thiết lập của NRF24L01 được lưu trong các thanh ghi (Register) Các thanh ghi này cho phép người lập trình có khả năng thay đổi các thông số, chế độ hoạt động hệ thống khi cấu hình theo mục đích riêng của người dùng
Một số thông số quan trọng của NRF24L01 bao gồm:
Tần số Radio:
• Băng tần quốc tế 2.4 GHz ISM (Sử dụng tự do mà không phải xin phép)
• 126 kênh RF
• GFSK module
• Kênh 1 MHz không chồng lấn cho tốc độ truyền 1 Mbps
• Kênh 2 MHz không chồng lấn cho tốc độ truyền 2 Mbps
Bộ truyền tín hiệu:
• Năng lượng ra khả trình: 0, -6, -12 và -18 dBm
• Dòng ra 11.3 mA khi năng lượng ra là 0 dBm
Bộ nhận tín hiệu:
• Bộ lọc kênh tích hợp
• Dòng ra 12.4 mA ở tốc độ 2 Mbps
• Độ nhạy -85 dBm ở tốc độ 2 Mbps
Giao tiếp:
• 4 pins SPI cứng (hardware SPI)
• Tần số hoạt động tối đa 8 MHz
• 3 bộ đệm dữ liệu RF 32 bytes FIFOs
Trang 6Hình 1.1 Sơ đồ kết nối vi điều khiển
Quản lý năng lượng:
• Dải điện áp đầu vào từ 1.9 – 3.6 v
1.2 Chế độ hoạt động
NRF24L01 có 4 chế độ hoạt động:
-Power Down Mode: Ở chế độ này NRF24L01 không hoạt động để giảm tối đa dòng tiêu thụ hệ thống Để cấu hình chế độ này cần thiết lập bit PWR_UP = 0 trong thanh ghi CONFIG
-Standby Mode: Đây là chế độ chờ Bao gồm 2 chế độ Standby-I và Standby-II:
+Standby-I: Tối thiểu hóa dòng tiêu thụ trung bình trong thời gian khởi động
+Standby-II: Chế độ này được kích hoạt khi cần thêm thời gian upload gói dữ liệu tx packet lên bộ đệm FIFO (TX-FIFO) để truyền dữ liệu đi Tx FIFO lúc này trống không có dữ liệu gửi đi
-TX Mode: Chế độ truyền dữ liệu đi Để vào chế độ này cần để bit PWR_UP, PRIM_TX = 1 và chân CE cấu hình mức cao Chế độ TX Mode không hoạt động quá 4ms một phiên hoạt động TX Mode hoạt động cho phép đẩy dữ liệu lên TX FIFO để truyền cho bên nhận
-RX Mode: Chế độ nhận dữ liệu đến Để vào chế độ này cần đặt bit PWR_UP, PRIM_RX = 1 và chân CE cấu hình mức cao Trong chế độ RX bên nhận giải điều chế tín hiệu từ kênh RF, liên tục gửi dữ liệu đã tách sóng đến bên nhận Hệ thống liên tục tìm gói tin phù hợp Nếu gói tin đúng địa chị và phù hợp mã kiểm tra CRC, gói payload chứa gói tin phù hợp sẽ được đưa vào khe trống trên bộ đệm RX Nếu bộ đệm RX đã đầy thì gói tin sẽ bị loại bỏ
Trang 7Hình 1.2 Module NRF24L01
1.3 Sơ đồ chân của chip nRF24L01
Hình 1.3 Sơ đồ chân nRF24L01
Trang 8Bảng 1.1: Chú giải sơ đồ chân nRF24L01
Nguồn ra 1,8 cung cấp cho các khối nội bộ trong nrf
Trang 9Modul có khả năng thay đổi công suất phát bằng chương trình, điều này giúp nó có thể hoạt động trong chế độ tiết kiệm năng lượng.
Chú ý: Điện áp cung cấp cho Module là 1.9V và 3.6V Điện áp thường cung cấp là 3.3V Nhưng các chân IO tương thích với chuẩn 5V Điều này giúp nó giao tiếp rộng rãi với các dòng vi điều khiển
1.5 Một số ứng dụng của nRF24L01
-Thiết bị ngoại vi điều khiển từ xa máy tính
-Game pad và key pad không dây
-Robot điều khiển từ xa
-Thu phát radio khoảng cách ngắn
Trang 10Đặc điểm chính của DS18B20 như sau:
+ Lấy nhiệt độ theo giao thức 1 dây (1wire)
+ Cung cấp nhiệt độ với độ phân giải config 9,10,11,12 bit, tùy theo sử dụng Trong trường hợp không config thì nó tự động ở chế độ 12 bit
+Thời gian chuyển đổi nhiệt độ tối đa là 750ms cho mã hóa 12 bit
+Có thể đo nhiệt độ trong khoảng -55 -> +125°C Với khoảng nhiệt độ là -10°C to +85°C thì độ chính xác ±0.5°C,±0.25°C ,±0.125°C,±0.0625°C theo số bít config.+ Có chức năng cảnh báo nhiệt khi nhiệt độ vượt ngưỡng cho phép Người dùng có thể lập trình chức năng này cho DS18B20 Bộ nhớ nhiệt độ cảnh báo không bị mất khi mất nguồn vì nó có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (on chip), giá trị nhị phân được khắc bằng tia laze
+ Cảm biến nhiệt độ DS18B20 có mã nhận diện lên đến 64-bit, vì vậy bạn có thể kiểm tra nhiệt độ với nhiều IC DS18B20 mà chỉ dùng 1 dây dẫn duy nhất để giao tiếp với
Với DS18B20 bạn hoàn toàn có thể tạo cho mình mạch cảm biến nhiệt độ theo ý muốn.+ Điện áp sử dụng : 3 – 5.5 V
+ Dòng tiêu thụ tại chế độ nghỉ rất nhỏ
Trang 11II: Lấy nhiệt độ với ds18b20
a Tìm hiểu về các lệnh ROM liên quan đến DS18b20
- READ ROM (33h)
Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định tên linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất cả các thiết
bị tớ cùng đáp ứng
- MATCH ROM (55h)
Lệnh này được gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820 cùng nối vào Chỉ có DS1820 nào có 64 bit trên ROM trung khớp với chuỗi 64 bit vừa được gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo Còn các cảm biến DS1820
có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset Lệnh này được sử dụng cả trong trường hợp có một cảm biến một dây, cả trong trường hợp có nhiều cảm biến một dây
- SKIP ROM (CCh)
Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của DS1820 mà không cần gửi chuỗi mã 64 bit ROM Như vậy sẽ tiết kiệm được thời gian chờ đợi nhưng chỉ mang hiệu quả khi chỉ có một cảm biến
- SEARCH ROM (F0h)
Lệnh này cho phép bộ điều khiển bus có thể dò tìm được số lượng thành viên tớ đang được đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một chu trình dò tìm
- ALARM SEARCH (ECh)
Tiến trình của lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơn giá trị
TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được đặt trên thanh ghi trong bộ nhớ của cảm biến
Trang 12Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địa chỉ cho các cảm biến một dây đang được đấu vào bus, thiết bị chủ sẽ đưa ra các lệnh chức năng DS1820 Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820 khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn Các lệnh chức năng có thể được mô tả ngắn gọn như sau:
- WRITE SCRATCHPAD (4Eh)
Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820 Byte đầu tiên được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vào thanh ghi TL (byte 3 của bộ nhớ nháp) Dữ liệu truyền theo trình tự đầu tiên là bit có ý nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần Cả hai byte này phải được ghi trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuất hiện
- READ SCRATCHPAD (BEh)
Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp Quá trình đọc bắt đầu từ bit có ý nghĩa nhấy của byte 0 và tiếp tục cho đến byte rhứ 9 (byte 8 - CRC) Thiết bị chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu như chỉ có một phần của dữ liệu trên bộ nhớ nháp cần được đọc
- READ POWER SUPPLY (B4h)
Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp nguồn như thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu và bằng 1 nếu cấp nguồn qua một đường dẫn riêng
Trang 14b Cách config độ phân giải cho ds18b20
Sơ đồ bộ nhớ của ds18b20
Trang 15Các byte thứ 5 của bộ nhớ đệm có chức năng đăng ký cấu hình (config) cho ds18b20, và các bít được tổ chức như sau:
Các bit từ 0 đến 4 luôn được đọc giá trị là 1, bít số 7 luôn được đọc giá trị là 0 Cấu hình độ phân giải cho ds18b20 được quyết định bởi R1 và R0 ta có bảng thiết lập như sau
Trang 16- Sơ đồ khi sử dụng một cảm biến.
- Sơ đồ khi mắc nhiều cảm biến (Chúng ta cũng chỉ cần 1 dây để lấy mẫu nhiệt độ)
Trang 17d Đọc nhiệt độ
Khi bắt đầu chuyển đổi nhiệt độ thì chân DQ sẽ được kéo xuống mức thấp và khi chuyển đổi xong thì ở mức cao.Như vậy ta sẽ căn cứ vào hiện tượng này để xác định khi nào chuyển đổi xong nhiệt độ Lưu ý luôn phải dùng một điện trở tầm 4.7k trở lên vào chân DQ treo lên nguồn như sơ đồ mắc
Trang 18C Về Module điều khiển chính
Trong quá trình được học trên ghế nhà trường trong các môn học chúng em được thì
có rất nhiều loại vi điều khiển phù hợp với đề tài này như: họ vi điều khiển 8051, PIC, AVR Nhưng sau khi tìm hiểu trong thực tế thì em nhận thấy rằng có một dòng vi điều khiển mới 32 bit đang được sử dụng rất rộng rãi rất linh hoạt và giá cả cũng rất hợp lí Đó
là dòng vi điều khiển họ ARM và cụ thể là vi điều khiển STM32F103C8T6 đồng thời KIT ARM NANOBOARD do các anh sinh viên khóa trước trong trường phát triển cũng được sự dụng rất nhiều, vì vậy em chọn vi điều khiển này cho đề án vì nhưng tiện ích mà
nó mang lại
1 Lịch sử hình thành và phát triển
ARM (Advanced RISC Machine) là một họ vi xử lý 32-bit được sử dụng rộng rãi trong các thiết bị nhúng Do có những ưu điểm như tiết kiệm, giá thành và năng lượng là những mục tiêu hàng đầu cho việc thiết kế CPU (Central Processing Unit) nên ARM chiếm ưu thế trong các sản phẩm di dộng
Hiện nay, 75% CPU nhúng 32-bit là thuộc họ ARM khiến cho họ vi xử lý ARM trở thành họ vi xử lý 32-bit được sản xuất nhiều nhất trên thế giới CPU sử dụng bộ vi xử lý ARM được tìm thấy ở khắp các thiết bị sản phẩm điện tử từ thiết bị cầm tay (PDA, điện thoại di động, trò chơi cầm tay, máy tính cầm tay…) cho đến các thiết bị ngoại vi( bộ nhớ, bộ định tuyến để bàn….)
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ế đứng đầu bởi Roger Wilson và Steve Furber, bắt đầu phát triển một
bộ vi xử lý có nhiều điểm kỹ thuật sử dụng trong dòng 6502 (Tên gọi một CPU 8-bit của hãng Rockwell International có thể dùng được 64-Kb địa chỉ bộ nhớ) tiên tiến Acorn đã từng sản xuất nhiều máy tính dựa trên 6502, vì vậy việc tạo ra một chip như vậy là một bước tiến đáng kể của công ty này
Ngày 26/4/1985, mẫu sản phẩm ARM đầu tiên sản xuất tại công ty kĩ thuật VLSI, SanJose, bang Califonia được chuyển tới trung tâm máy tính Acorn ở Cambridge, Anh Quốc Vào năm sau, nhóm hoàn thành sản phẩm “thực” gọi là ARM2 ARM2 có bus dữ liệu 32-bit, không gian địa chỉ 26-bit tức cho phép quản lý đến 64 Mb địa chỉ và 16 thanh ghi 32-bit Một trong những thanh ghi này đóng vai trò là bộ đếm chương trình với 6 bit cao nhất và 2 bit thấp nhất lưu giữ các cờ trạng thái của bộ vi xử lý Có thể nói ARM2 là bộ vi xử lý 32-bit khả dụng đơn giản nhất trên thế giới, với chỉ gồm 30.000 transistor (so với bộ vi xử lý lâu hơn bốn năm của Motorola là 68000 với khoảng 68.000 transistor) Sự đơn giản như vậy có được nhờ ARM không có vi chương trình (mà chiếm khoảng 1/4 đến 1/3 trong 68000) và cũng giống như hầu hết các CPU vào thời đó, không hề chứa caches Sự đơn giản này đưa đến đặc điểm tiêu thụ công suất thấp của ARM, mà lại có tính năng tốt hơn cả 80286 (Tên bộ vi xử lý 16-bit của Intel, xuất hiện năm 1982, phổ biến trong các máy IBM PC/AT và các máy tương thích, có thanh ghi 16-bit, 16-bit bus dữ liệu và có khả năng địa chỉ hóa đến 24- bit) Thế hệ sau, ARM3, được tạo ra với 4KB cache và có chức năng được cải thiện tốt hơn nữa Nửa thập niên sau đó, ARM được phát
Trang 19triển rất nhanh chóng để làm nhân máy tính để bàn của Acorn, nền tảng cho các máy tính hỗ trợ giáo dục ở Anh Trong thập niên 1990, dưới sự phát triển của Acorn Limited, ARM đã thành một thương hiệu đứng đầu thế giới về các ứng dụng sản phẩm nhúng đòi hỏi tính năng cao,
sử dụng năng lượng ít và giá thành thấp
Chính nhờ sự nổi trội về thị phần đã thúc đẩy ARM liên tục được phát triển và cho ra nhiều phiên bản mới Những thành công quan trọng trong việc phát triển ARM ở thập niên sau này:
- Giới thiệu ý tưởng về định dạng các chỉ lệnh được nén lại (thumb) cho phép tiết kiệm năng lượng và giá thành ở những hệ thống nhỏ
- Giới thiệu họ điều khiển ARM9, ARM10 và “Strong ARM”
- Phát triển môi trường làm việc ảo của ARM trên PC
- Các ứng dụng cho hệ thống nhúng dựa trên nhân xử lý ARM ngày càng trở
nên rộng rãi
Hầu hết các nguyên lý của hệ thống trên chip (Systems on chip-SoC) và cách thiết kế bộ
xử lý hiện đại được sử dụng trong ARM, ARM còn đưa ra một số khái niệm mới (như giải nén động các dòng lệnh) Việc sử dụng ba trạng thái nhận lệnh, giải mã, thực thi trong mỗi chu
kỳ máy mang tính quy phạm để thiết kế các hệ thống xử lý thực Do đó, nhân xử lý ARM được
sử dụng rộng rãi trong các hệ thống phức tạp
2 Giới thiệu về dòng vi điều khiển stm32
Những đặc điểm nổi trội của dòng ARM Cortex đã thu hút các nhà sản xuất IC, hơn
240 dòng vi điều khiển dựa vào nhân Cortex đã được giới thiệu Không nằm ngoài xu hướng đó, hãng sản xuất chip ST Microelectronic đã nhanh chóng đưa ra dòng STM32 STM32 là vi điều khiển dựa trên nền tảng lõi ARM Cortex-M3 thế hệ mới do hãng ARM thiết kế Lõi ARM Cortex-M3 là sự cải tiến từ lõi ARM7 truyền thống từng mang lại thành công vang dội cho công ty ARM
Hình 3.1: Kiến trúc của STM32 nhánh Performance và Access