1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc

102 1K 6
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thiết Kế Và Thi Công Mạch Đo Và Cảnh Báo Nhiệt Độ Dùng Sóng Rf, Giao Tiếp Máy Tính Và Lưu Trữ Dùng Mmc
Người hướng dẫn GVHD: Đặng Anh Tuấn
Trường học Trường Đại Học Kỹ Thuật
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Luận văn tốt nghiệp
Định dạng
Số trang 102
Dung lượng 1,53 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với công nghệ này cho phép các lệnh thực thi chỉ trong một chu kì xung nhịp, vì thế tốc độ xử lý dữ liệu có thể... Đây là thanh ghi dữ liệu của PORTx, nếu thanh ghi DDRx thiết lập cổng l

Trang 1

MỤC LỤC

1.GIỚI THIỆU 1

1.1 Tổng quan 1

1.2 Tình hình nghiên cứu trong và ngoài nước 1

1.3 Nhiệm vụ luận văn 2

2 LÝ THUYẾT 2

2.1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ATMEGA 32 2

2.1.1 Giới thiệu 2

2.1.2 Sơ đồ chân của Atmega 32 3

2.1.3 Cấu trúc lõi của Atmega 32 4

2.1.4 ALU Arithmetic Logic Unit 6

2.1.5 Thanh ghi trạng thái 6

2.1.6 Tập các thanh ghi làm việc đa năng 7

2.1.7 Cổng vào ra của ATmega 32 8

2.1.8 Bộ chuyển đổi ADC 10

2.2 TỔNG QUAN VỀ REALTIMES DS1307 15

2.2.1 Sơ đồ chân DS1307 15

2.2.2 Cấu tạo bên trong của DS1307 16

2.2.3 Khái quát về giao diện I2C 20

2.3 TỔNG QUAN VỀ MODULE PHÁT RF nRF24L01 20

2.3.1 Giới thiệu 20

2.3.2 Khảo sát chip nRF24L01 21

2.3.3 Điều kiện làm việc 24

2.3.4 Hoạt động của nRF24L01 24

Trang 2

2.3.6 Chế độ standby 24

2.3.7 Chế độ RX 25

2.3.8 Chế độ TX 25

2.3.9 Chức năng Shockburst 26

2.3.10 Giao tiếp SPI của nRF24L01 27

2.3.11 Các thanh ghi trong nRF24L01 29

2.3.12 Module nRF24L01 39

2.4 TỔNG QUAN VỀ LCD 16x2 39

2.4.1 Giới thiệu về LCD 39

2.4.2 Sơ đồ chân 40

2.4.3 Thanh ghi và tổ chức bộ nhớ 41

2.4.4 Tập lệnh của LCD 44

2.4.5 Phương thức giao tiếp với LCD 45

2.5 TỔNG QUAN VỀ DS1820 46

2.5.1 Giới thiệu sơ lược về DS1820 46

2.5.2 Những đặc tính chung 46

2.5.3 Sơ đồ chân 46

2.5.4 Sự mô tả 47

2.5.5 Sơ đồ khối DS1820 47

2.5.6 Thao tác và cách đo nhiệt độ 48

2.5.7 Thao tác và báo động báo hiệu 50

2.5.8 Nguồn cấp cho DS1820 50

2.5.9 Bộ nhớ ROM 64 bit 52

2.5.10 Bộ nhớ DS1820 53

2.5.11 Các bước tiến hành để truy nhập đến DS1820 54

Trang 3

2.5.12 Các lệnh trên ROM của DS1820 54

2.5.13 Các lệnh chức năng của bộ nhớ DS1820 56

2.6 TỔNG QUAN VỀ IC GIAO TIẾP PC PL2303 57

2.6.1 Giới thiệu 57

2.6.2 Đặc điểm chung 58

2.6.3 Chức năng các chân của PL2303 60

2.7 TỔNG QUAN VỀ LƯU TRỮ MMC/SD 61

2.7.1 Giới thiệu về MMC/SD 61

2.7.2 Phương thức giao tiếp MMC/SD 63

2.7.3 Giao tiếp vi điều khiển với MMC/SD 65

3 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 67

3.1 Sơ đồ khối của hệ thống 67

3.2 Sơ đồ nguyên lý mạch slave 67

3.2.1 Khối nguồn 67

3.2.2 Khối cảm biến nhiệt độ 67

3.2.3 Khối vi điều khiển 68

3.2.4 Khối tạo nhiệt 68

3.2.5 Khối thu phát RF 69

3.3 Sơ đồ nguyên lý mạch master 69

3.3.1 Khối nguồn 69

3.3.2 Khối thu phát RF 70

3.3.3 Khối vi điều khiển 70

3.3.4 Khối thời gian thực 71

3.3.5 Khối cài đặt 71

3.3.6 Khối hiển thị LCD 72

Trang 4

3.3.7 Khối kết nối PC 72

3.3.8 Khối lưu trữ SD/MMC: 73

3.3.9 Khối cảnh báo sự cố 73

4 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 74

4.1 Lưu đồ giải thuật mạch slave: 74

4.2 Lưu đồ giải thuật mạch master: 75

5 KẾT QUẢ THỰC HIỆN 77

5.1 Mạch slave 77

5.2 Mạch master 77

5.3 Giao diện giao tiếp máy tính 78

6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 78

6.1 Kết luận 78

6.2 Hướng phát triển 79

7 TÀI LIỆU THAM KHẢO 79

8 PHỤ LỤC 80

8.1 Sơ đồ nguyên lý mạch Slave 80

8.2 Sơ đồ nguyên lý mạch Master 81

8.3 Chương trình Slave 81

8.4 Chương trình Master 84

Trang 5

DANH SÁCH HÌNH MINH HỌA

Hình 2.1: Sơ đồ chân của Atmega 32 3

Hình 2.2: Sơ đồ lõi của ATmega 32 6

Hình 2.3: Thanh ghi trạng thái 6

Hình 2.4: Thanh ghi đa năng 8

Hình 2.5: Thanh ghi DDRA 9

Hình 2.6: Thanh ghi PORTA 9

Hình 2.7: Thanh ghi PINA 10

Hình 2.8: Thanh ghi SFIOR 10

Hình 2.9: Sơ đồ khối đơn giản của ADC 11

Hình 2.10: Ngõ vào vi sai 13

Hình 2.11: Thanh ghi ADMUX 13

Hình 2.12: Thanh ghi điều khiển và trạng thái ADC 14

Hình 2.13: Thanh ghi dữ liệu của ADC 15

Hình 2.14: Hai dạng cấu tạo chân của DS1307 16

Hình 2.15: Sơ đồ khối bên trong của DS1307 17

Hình 2.16: Tổ chức bộ nhớ trong DS1307 17

Hình 2.17: Tổ chức bit của các thanh ghi 18

Hình 2.18: Cấu trúc thanh ghi điều khiển 19

Hình 2.19: Cơ chế truyền dữ liệu giữa Master và Slave 20

Hình 2.20: Sơ đồ khối chip nRF24L01 22

Hình 2.21: Sơ đồ chân chip nRF24L01 22

Hình 2.22: Biểu đồ hoạt động đọc SPI của nRF24L01 29

Hình 2.23: Biểu đồ hoạt động ghi SPI của nRF24L01 29

Trang 6

Hình 2.24: Sơ đồ nguyên lý module nRF24L01 39

Hình 2.25: LCD 16x2 40

Hình 2.26: Tổ chức DDRAM 42

Hình 2.27: Hình dạng và sơ đồ chân của DS1820 47

Hình 2.28: Sơ đồ khối DS1820 48

Hình 2.29: Thanh ghi lưu trữ nhiệt độ đo 49

Hình 2.30: Thanh ghi định dạng TH và TL 50

Hình 2.31: Sử dụng MOSFET để cấp nguồn cho DS1820 51

Hình 2.32: Không sử dụng DS1820 cấp nguồn cho DS1820 52

Hình 2.33: Nội dung của dãy 64 bit trên ROM 52

Hình 2.34: Sơ đồ bộ nhớ DS1820 53

Hình 2.35: PL 2303 thực tế 57

Hình 2.36: Sơ đồ khối PL2303 58

Hình 2.37: Sơ đồ chân của PL2303 59

Hình 2.38: Bố trí chân MMC và SD 61

Hình 2.39: Sơ đồ kết nối giữa chip điều khiển và card MMC/SD 63

Hình 2.40: Trình tự khởi động MMC/SD 66

Hình 3.1: Sơ đồ khối hệ thống 67

Hình 3.2: Sơ đồ khối nguồn 67

Hình 3.3: Sơ đồ khối cảm biến nhiệt 68

Hình 3.4: Sơ đồ khối vi điều khiển 68

Hình 3.5: Sơ đồ khối tạo nhiệt 69

Hình 3.6: Khối thu phát RF 69

Hình 3.7: Sơ đồ khối nguồn 70

Hình 3.8: Sơ đồ khối thu phát RF 70

Trang 7

Hình 3.9: Sơ đồ khối vi điều khiển 71

Hình 3.10: Sơ đồ khối Realtime 71

Hình 3.11: Sơ đồ khối cài đặt nhiệt độ 72

Hình 3.12: Sơ đồ khối hiển thị LCD 72

Hình 3.13: Sơ đồ khối giao tiếp máy tính 73

Hình 3.14: Sơ đồ khối lưu trữ SD/MMC 73

Hình 3.15: Sơ đồ khối cảnh báo 73

Hình 4.1: Lưu đồ giải thuật Slave 74

Hình 4.2: Lưu đồ giải thuật Master 76

Hình 5.1: Mô hình khối Slave 77

Hình 5.2: Mô hình khối Master 77

Hình 5.3: Giao diện giao tiếp với máy tính 78

Hình 8.1 Sơ đồ mạch Slave 80

Hình 8.2 Sơ đồ mạch master 81

Trang 8

DANH SÁCH BẢNG SỐ LIỆU

Bảng 2.1 Lựa chọn điện thế tham chiếu 13

Bảng 2.2 Lựa chọn tần số trên chân SQW/OUT 19

Bảng 2.3 Chức năng các chân của nRF24L01 23

Bảng 2.4 Điều kiện làm việc của nRF24L01 24

Bảng 2.5 Các chế độ hoạt động của nRF24L01 24

Bảng 2.6 Thời gian chuyển đổi giữa các chế độ 26

Bảng 2.7 Mã lệnh SPI của nRF24L01 28

Bảng 2.8 Kí hiệu trong biểu đồ hoạt động SPI 29

Bảng 2.9 Register CONFIG 29

Bảng 2.10 Register EN_AA 30

Bảng 2.11 Register EN_RXADDR 31

Bảng 2.12 Register SETUP_AW 31

Bảng 2.13 Register SETUP_RETR 32

Bảng 2.14 Register RF_CH 32

Bảng 2.15 Register RF_SETUP 33

Bảng 2.16 Register STATUS 33

Bảng 2.17 Register OBSERVE_TX 34

Bảng 2.18 Register CD 34

Bảng 2.19 Register RX_ADDR_P0 à RX_ADDR_P5 34

Bảng 2.20 Register TX_ADDR 35

Bảng 2.21 Register RX_PW_P0 à RX_PW_P0 35

Bảng 2.22 Register FIFO_STATUS 37

Bảng 2.23 Register ACK_PLD 38

Trang 9

Bảng 2.24 Register RX_PLD 38

Bảng 2.25 Register TX_PLD 38

Bảng 2.26 Chức năng các chân của LCD 16x2 41

Bảng 2.27 Các mode giao tiếp của LCD 42

Bảng 2.28 Bảng dò giá trị đo nhiệt độ 49

Bảng 2.29 Chức năng các chân của PL2303 60

Bảng 2.30 Ý nghĩa của các bit trong lệnh 64

Trang 10

1 GIỚI THIỆU

Hệ thống điều khiển từ xa có vai trò quan trọng trong công cuộc công nghiệp hóa, hiện đại hóa đất nước Trong ngành công nghiệp, điều khiển nhiệt độ là một vấn đề rất quan trọng Trong ngành luyện kim, cần phải đạt đến một nhiệt độ nào đó

để kim loại nóng chảy, và cũng cần đạt một nhiệt độ nào đó để ủ kim loại nhằm đạt được tốt các đặc tính cơ học như độ bền, độ dẻo, độ chống gỉ sét, có thể đo nhiệt độ trong môi trường độc hại một cách dễ dàng hơn … Trong ngành thực phẩm, cần duy trì một nhiệt độ nào đó để nướng bánh, để nấu, để bảo quản … Trong nông nghiệp thì cần nhiệt độ để sấy nông sản hoặc ủ cho hạt giống nảy mầm … Trong chăn nuôi thì cần có nhiệt độ để ấp trứng, để sưởi ấm gia súc khi mùa đông đến …

Từ đó, điều khiển nhiệt độ trở thành một yếu tố không thể thiếu trong cuộc sống của chúng ta Và theo đà phát triển của các học thuyết về điều khiển tự động, thì nhiều nghiên cứu cho kết quả của quá trình đo và điều khiển nhiệt độ ngày càng phong phú và đa dạng hơn

Trên thế giới, ở các nước phát triển không ít những công trình nghiên cứu khoa học đã thành công khi ứng dụng kỹ thuật điều khiển từ xa để điều khiển các thiết bị trong công nghiệp cũng như trong dân dụng mà đặc biệt là trong quân sự: Tại Nga có những nhà máy điện, những kho lưu trữ tài liệu quý đã ứng dụng hệ thống điều khiển từ xa và tự động báo động để đóng ngắt những nơi cao áp, tự động

xã bình chữa cháy …và cũng tại Nga đã có hệ thống điều khiển và báo động thông qua mạng Internet để điều khiển nhà máy điện nguyên tử

Ở nước ta mạch cảm biến cảnh báo và kiểm soát nhiệt độ bằng sóng RF là một

đề tài không mới, trong các khoá học trước đã có người nghiên cứu Nhưng vì tính thực tiễn của đề tài này nên nó cần được tiếp tục nghiên cứu và hoàn chỉnh để đưa

ra giải pháp tối ưu Trong các kết quả nghiên cứu trước thì nhiệt độ thu được sẽ được hiển thị trên LCD hoặc trên Led 7 đoạn để theo dõi khi đang vận hành Với đề tài này thì giá trị nhiệt độ được truyền lên PC vẽ ra giản đồ nhiệt theo thời gian, vi

Trang 11

xử lý điều khiển nhiệt độ cho thích hợp với giá trị cài đặt và đồng thời phát ra tín hiệu cảnh báo khẩn cấp nếu xảy ra sự cố

Trong đề tài này, sinh viên thực hiện dùng IC rời kết hợp với Modun RF chuyên dụng để tạo ra mạch ứng dụng hoàn chỉnh Hiện nay xu hướng sử dụng sóng

RF để điều khiển thiết bị từ xa rất được ưa chuộng Hệ thống đo nhiệt độ có sử dụng

RF giúp cho ứng dụng càng rộng rãi hơn trong cuộc sống

Với thời gian, cũng như khả năng có hạn nên người thực hiện đề tài chỉ tập trung nghiên cứu các vấn đề sau:

• Tìm hiểu lý thuyết về: vi điều khiển ATMEGA32, IC cảm biến nhiệt độ DS1820, bộ đếm thời gian DS1307, bộ thu phát sóng RF nRF24L01, màn hình LCD 16x2, khối giao tiếp với máy tính dùng PL2303, lưu trữ thẻ nhớ SD/MMC

• Thiết kế và thi công mạch đo, điều khiển tắt mở nguồn nhiệt và phát tín hiệu nhiệt độ (slave)

• Thiết kế và thi công mạch nhận, hiển thị, lưu trữ tín hiệu nhiệt độ và phát tín hiệu cảnh báo khẩn cấp khi xảy ra sự cố (master)

ATmega là bộ vi điều khiển CMOS 8 bits tiêu thụ điện năng thấp dựa trên kiến trúc RISC Vào ra Analog – Digital và ngược lại Với công nghệ này cho phép các lệnh thực thi chỉ trong một chu kì xung nhịp, vì thế tốc độ xử lý dữ liệu có thể

Trang 12

đạt đến 1 triệu lệnh/giây ở tần số 1Mhz Vi điều khiển này cho phép người thiết kế

có thể tối ưu hoá chế độ tiêu thụ năng lượng mà vẫn đảm bảo tốc độ xử lý

Atmega được hỗ trợ đầy đủ phần mềm và công cụ phát triển hệ thống bao gồm: trình dịch Assembly như AVR studio của Atmel, trình dịch C như win AVR, CodeVision AVR C,… Trình dịch C đã được nhiều người dùng và đánh giá tương đối mạnh, đó là trình dịch CodeVision AVR C Phần mềm này hỗ trợ nhiều ứng dụng và có nhiều hàm có sẵn nên việc lập trình tốt hơn

Atmega 32 là loại vi điều khiển CMOS, nguồn thấp, 8 bits, xây dựng trên nền tảng cấu trúc tập lệnh thu gọn cho AVR Gồm 32 thanh ghi làm việc liên kết trực tiếp với bộ xử lý số học ALU

• Chân VCC: Điện áp nguồn nuôi

• Chân GND: Nối mass

• PortA (PA7…PA0): PortA là Port vào/ ra hai hướng 8 bit, các chân của Port

A có các điện trở nối lên nguồn dương Các chân ra của Port A có thể cho phép dòng điện 20mA đi qua và trực tiếp điều khiển LED hiển thị

Khi các chân PA0 đến PA7 là các ngõ vào và được đặt xuống mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu các điện trở nối lên nguồn dương được kích hoạt Các chân của Port A ở vào trạng thái có điện trở cao khi tín hiệu reset ở mức tích cực hoặc ngay cả khi không có tín hiệu xung clock

Trang 13

Port A cung cấp các đường địa chỉ/ dữ liệu vào/ ra hoạt động theo kiểu đa hợp kênh khi dùng bộ nhớ SRAM ở bên ngoài

Port A còn có thêm chức năng là ngõ vào tương tự và đưa đến bộ chuyển đổi Analog sang Digital

• Các Port B, C, D tương tự như Port A

• Chân RESET: ngõ vào đặt lại Bộ vi điều khiển sẽ được reset lại khi chân này ở mức thấp trong khoảng thời gian 50ns, các xung ngắn hơn không tạo ra tín hiệu reset

• XTAL1: Lối vào bộ vào mạch tạo xung dao động

• XTAL2: Lối ra bộ vào mạch tạo xung dao động

• XTAL1 và XTAL2 lần lượt là lối vào và lối ra của một bộ khuếch đại đảo

Bộ khuếch đại này được bố trí để làm bộ tạo dao động trên chip Một bộ tinh thể thạch anh hoặc một bộ cộng hưởng có thể được sử dụng Để điều khiển bộ vi điều khiển từ một nguồn xung nhịp bên ngoài, chân XTAL2 để trống, còn chân XTAL1 được nối với bộ dao động bên ngoài

• Chân ICP: Là chân vào cho chức năng bắt tín hiệu vào bộ timer/ counter1

• Chân OC1B: Là chân ra PWM, ngõ ra so sánh của timer/ counter1

• Chân ALE: Là chân tín hiệu cho phép chốt địa chỉ được dùng khi truy nhập

bộ nhớ ngoài Xung ALE được dùng để chốt 8 bits địa chỉ thấp vào một bộ chốt địa chỉ trong chu kỳ truy cập bộ nhớ thứ nhất Sau đó các chân AD0-AD7 được dùng làm các đường dữ liệu trong chu kỳ truy nhập bộ nhớ thứ hai

• Chân AVCC: là chân điện áp cung cấp nguồn cho PortA và một bộ chuyển đổi A/D Được kết nối với Vcc bên ngoài ngay cả khi không được sử dụng ADC Nếu ADC được sử dụng, nó phải được kết nối với Vcc thông qua một bộ lọc thông thấp

• Chân AREF: là chân tham chiếu tín hiệu tương tự cho quá trình chuyển đổi A/D

Trang 14

Lõi của AVR sử dụng kiến trúc Harvard – các bus riêng biệt cho chương trình

và dữ liệu Lệnh từ bộ nhớ chương trình thực thi thông qua một ống đơn cấp Khi một lệnh đang thực thi, lệnh tiếp theo sẽ được nhốt từ bộ nhớ chương trình, cho phép các lệnh thực thi trong mỗi chu kỳ của xung clock

Các 32 thanh ghi ( 8 bits) cho phép truy xuất nhanh trong một chu kỳ clock Trong hoạt động thông thường của ALU, hai toán hạng xuất ra từ thanh ghi làm việc, lệnh thực thi, và kết quả lưu ngược lại thanh ghi làm việc chỉ trong 1 chu kỳ clock

Có 6 thanh ghi trong số 32 thanh ghi được dùng như con trỏ địa chỉ gián tiếp

16 bits sử dụng cho địa chỉ không gian dữ liệu Một trong 3 thanh ghi địa chỉ này có thể được dùng như con trỏ địa chỉ Look-up table trong bộ nhớ Flash

Bộ ALU hỗ trợ các hoạt động tính toán số học và logic giữa thanh ghi với nhau, hay giữa thanh ghi với hằng số Các hoạt động từng thanh ghi đơn cũng được thực hiện trong ALU Sau khi tính toán, thanh ghi trạng thái cập nhật thông tin liên quan đến kết quả tính toán

Bộ nhớ chương trình chia làm hai phần: Boot Loader và vùng ứng dụng Cả hai đều sử dụng các lock bit để bảo vệ đọc/ ghi Lệnh SPM thực thi vùng ghi dữ liệu vào vùng flash ứng dụng phải được đặt trong vùng Boot Loader

Bộ nhớ của Atmega32 gồm có 3 phần: RAM tĩnh, RAM ngoại và EFROM

Trong quá trình ngắt hay gọi chương trình con, địa chỉ trả về của bộ đếm chương trình lưu trong ngăn xếp Ngăn xếp được phân bổ trong một phần bộ nhớ SRAM, vì vậy độ lớn của ngăn xếp chỉ phụ thuộc vào SRAM và việc sử dụng SRAM

Chương trình ngắt linh hoạt có thanh ghi điều khiển riêng trong không gian IO

và có bit cho phép ngắt toàn cục trong thanh ghi trạng thái Tất cả các ngắt đều có vector ngắt riêng trong bảng vector ngắt Các ngắt có ưu tiên ngắt theo đúng vị trí ngắt của nó Địa chỉ ngắt càng thấp thì độ ưu tiên càng cao

Trang 15

Hình 2.2: Sơ đồ lõi của ATmega 32

Bộ ALU hiệu suất cao của AVR hoạt động trong liên kết trực tiếp với 32 thanh ghi làm việc Hoạt động của ALU được chia ra làm 3 phần chính: xử lý số học, phép toán logic và các phép toán bit

Thanh ghi trạng thái chứa 8 bit cờ chỉ trạng thái của bộ xử lý, tất cả các bit này đều bị xóa sau khi reset, các bit này cũng có thể được đọc và ghi bởi chương trình Thanh ghi trạng thái không tự động lưu lại khi nhảy vào chương trình ngắt và cũng không tự động phục hồi khi quay về, cần thực hiện điều này bằng phần mềm

Trang 16

• Bit 7 – I: Bit cho phép ngắt toàn bộ

Bit này cần được set lên 1 nếu trong chương trình có sử dụng ngắt Sau khi set bit này, bạn muốn kích hoạt loại ngắt nào cần set các bit ngắt riêng của ngắt đó

Chú ý: bit toàn cục này sẽ bị xóa tự động bằng phần cứng khi có ngắt nào đó xảy ra Và nó được set trở lại tự động bằng phần cứng khi lệnh kết thúc chương trình ngắt được thực thi

Bit toàn cục cũng có thể được set/ clear bằng phần mềm thông qua lệnh SEI/ CLE

• Bit 6 - T: Bit coppy Storage, được sử dụng trong 2 Intruction BLD (Bit LoaD) và bit BST (Bit Storage)

• Bit 5 – H: cờ nhờ nữa, cờ H là cờ nhớ trong một vài phép toán đại số và phép logic, cờ này hiệu quả đối với các phép toán số BCD

• Bit 4 – S: Bit dấu, bit S là kết quả phép XOR giữa 1 cờ N và V, S=N xor V

• Bit 0 – C: là cờ nhớ, là bit nhớ trong các phép đại số hoặc logic

Tất cả các lệnh đều được thực thi trên các thanh ghi làm việc có thể truy xuất đến các thanh ghi, và hầu hết là các lệnh thực thi trong 1 chu kỳ clock

Thanh ghi R0 được dùng để load chương trình vào trong bộ nhớ của AVR Các thanh ghi R26, R27, R28, R29, R30 và R31 ngoài chức năng thông thường còn được sử dụng như các con trỏ để truy xuất đến bộ nhớ một cách gián tiếp

Trang 17

Hình 2.4: Thanh ghi đa năng

ATmega 32 có 4 port vào ra 8 bit là: Port A, Port B, Port C và Port D tương ứng với 32 đường vào ra Các cổng vào ra của ATmega 32 là cổng vào ra hai chiều

có thể định hướng, tức có thể chọn hướng của cổng là hướng vào hay hướng ra Tất

cả các cổng vảo ra của ATmega điều có tính năng đọc – chỉnh sửa – ghi, khi sử dụng chúng như các cổng vào ra số thông thường Tất cả các chân của các port đều

có điện trở kéo lên, ta có thể cho phép hay không cho phép điện trở kéo lên này hoạt động

Điện trở kéo lên là một điện trở được dùng khi thiết kế các điện tử logic Nó

có một đầu được nối với nguồn điện áp dương và đầu còn lại được nối với tín hiệu lối vào/ ra của một mạch logic chức năng Điện trở kéo lên có thể được lắp đặt tại các lối vào của khối mạch logic để thiết lập mức logic lối vào của khối mạch khi không có thiết bị ngoài nào nối với lối vào Ngoài ra, điện trở kéo lên còn được lắp đặt tại lối ra của khối mạch khi lối ra không thể nối nguồn để tạo dòng

2.1.7.1 Hoạt động của các Port xuất nhập

Mỗi port vào/ ra của vi điều khiển được liên kết với 3 thanh ghi: PORTx, DDRx, PINx, ở đây x là các port A, B, C, D Ba thanh ghi này sẽ được phối hợp với

Trang 18

nhau để điều khiển hoạt động của cổng, chẳng hạn thiết lập port thành lối vào có sử dụng điện trở kéo lên

Đây là thanh ghi 8 bit có chức năng điều khiển hướng của cổng vào hoặc ra Khi một bit của thanh ghi được set lên 1 thì chân tương ứng với nó được cấu hình thành ngõ ra Ngược lại, nếu bit của thanh ghi DDRx là 0 thì chân tương ứng với nó được thiết lập thành ngõ vào

Đây là thanh ghi dữ liệu của PORTx, nếu thanh ghi DDRx thiết lập cổng là lối

ra, khi đó giá trị của thanh ghi PORTx cũng là giá trị của các chân tương ứng của PORTx, nghĩa là khi ghi một giá trị logic lên 1 bit của thanh ghi này thì chân tương ứng với bit đó cũng có cùng mức logic Khi thanh ghi DDRx thiết lập cổng thành lối vào thì thanh ghi PORTx đóng vai trò như một thanh ghi điều khiển cổng Cụ thể, nếu một bit của thanh ghi này được set lên 1 thì điện trở kéo lên ở chân tương ứng với nó sẽ được kích hoạt, ngược lại nếu bit được ghi thành 0 thì điện trở kéo lên

ở chân tương ứng sẽ không được kích hoạt, cổng ở trạng thái cao trở ( Hi-Z )

PINx không phải là một thanh ghi thực sự, đây là địa chỉ trong bộ nhớ I/O kết nối trực tiếp tới các chân của cổng Khi ta đọc PORTx tức là ta đọc dữ liệu được chốt trong PORTx, còn khi đọc PINx thì giá trị logic hiện thời ở chân của cổng

Trang 19

tương ứng được đọc Vì thế đối với thanh ghi PINx ta chỉ có thể đọc mà không thể ghi

Ngoài 2 bit của các thanh ghi DDRx và PORTx tham gia điều khiển điện trở kéo lên, còn có một tín hiệu nữa điều khiển điện trở kéo lên, đó là tín hiệu PUD, đây

là bit nằm trong thanh ghi SFIOR, khi set bit này thành 1 thì điện trở kéo lên sẽ không được cho phép bất kể các thiết lập của các thanh ghi DDRx và PORTx Khi bit này là 0 thì điện trở kéo lên được cho phép nếu { DDRxn, PORTxn } = { 0, 1 }

2.1.8.1 Giới thiệu bộ chuyển đổi ADC

Bộ biến đổi ADC có chức năng biến đổi tín hiệu tương tự thành tín hiệu số Bộ ADC của Atmega32 có độ phân giải 10 bit, Có thể chuyển đổi ở độ phân giải cao,

có 8 kênh ngõ vào nguồn đơn thông qua bộ dồn kênh, 7 kênh ngõ vào vi sai với độ lợi tùy chọn, dải điện áp ngõ vào ADC từ 0 đến Vcc, có thể lựa chọn điện áp tham chiếu 2.56V cho ADC, có chế độ tự kích hoạt ADC bằng nguồn ngắt, và tính năng chống nhiễu cho ADC Bộ ADC của Atmega32 là loại ADC xấp xỉ liên tiếp với 2 chế độ chuyển đổi liên tục và chuyển đổi từng bước Sơ đồ khối đơn giản của một

bộ ADC thể hiện như hình 2.9

Trang 20

Hình 2.9: Sơ đồ khối đơn giản của ADC Nguyên tắc hoạt động của khối ADC: Tín hiệu tương tự đưa vào các ngõ ADC0 đến ADC7 được lấy mẫu và biến đổi thành tín hiệu số tương ứng Tín hiệu

số được lưu trong hai thanh ghi ADCH và ADCL Một ngắt có thể được tạo ra khi hoàn thành một chu trình biến đổi ADC

Điện thế tham chiếu là giá trị điện thế dùng để so sánh với điện thế của tín hiệu tương tự cần biến đổi ở ngõ vào ADC Atmega32 sử dụng điện thế tham chiếu nội là 2.56V, và Vref là tùy chọn

Tần số Clock ADC: là tần số clock cung cấp cho bộ biến đổi ADC, giá trị có thể thay đổi từ vài KHz đến vài MHz Tuy nhiên, tần số thích hợp khoảng từ 50KHz đến 200KHz cho độ phân giải 10 bit và có thể cao hơn 200KHz nếu độ phân giải thấp hơn

Ngõ vào tương tự: ATmega32 có hai lựa chọn ngõ vào tương tự:

• 10 ngõ vào đơn hướng: 10 ngõ vào này là ADC0: ADC7, AGND và bandgapreference Thực tế thường dùng 8 ngõ vào ADC0:ADC7 Vì có 8 ngõ vào ADC0:ADC7 nên ta có thể đưa vào 8 tín hiệu tương tự khác nhau Khi lựa chọn ngõ vào kiểu này thì kết quả chuyển đổi được tính như sau:

Trang 21

• Ngõ vào vi sai: ta có thể đưa hai tín hiệu tương tự vào ngõ vào ADC, hai tín hiệu tương tự này sẽ qua một bộ vi sai, kết quả ở ngõ ra có thể được khuếch đại rồi sau đó mới đưa vào khối ADC để biến đổi Bộ vi sai có 2 ngõ vào là Vpos (ngõ vào dương) và Vneg (ngõ vào âm) Các chân ADC3:ADC7 dùng làm ngõ vào dương, các chân ADC0:ADC2 là ngõ vào âm, hình 2.10 Đối với lựa chọn này, kết quả ADC sẽ là:

Với:

• Gain: là độ lợi có thể tùy chọn

• VPOS: là điện áp trên chân ngõ vào positive

• VNEG: là điện áp trên chân ngõ vào negative

• VREF: là điện áp tham chiếu lựa chọn

Công thức trên cho thấy kết quả ADC có thể là số âm khi Vpos < Vneg Do

đó, dải giá trị của ADC trong trường hợp này là -512 tới 511 Vì vậy, kết quả trong thanh ghi ADC được biểu diễn dưới dạng số bù 2 Để biết được kết quả là số âm hay dương ta kiểm tra bit ADC9 (trong thanh ghi ADCH), nếu bit này là 1 thì kết quả là số âm, nếu bit này là 0 thì kết quả là số dương

Chú ý: Điện thế qua bộ vi sai có thể âm, nhưng điện thế cấp ở các ngõ vào ADC0:ADC7 (cho cả hai trường hợp ngõ vào vi sai và ngõ vào đơn hướng) phải luôn nằm trong khoảng 0V-AVcc

Trang 22

Hình 2.10: Ngõ vào vi sai Chế độ hoạt động: Có hai chế độ hoạt động của bộ ADC là chuyển đổi liên tục

và chuyển đổi từng bước

2.1.8.2 Các thanh ghi của bộ ADC

Bit 7: Bit 6 – REFS1:REFS0: Reference Selection Bits: hai bit này dùng để lựa chọn điện thế tham chiếu là một trong 3 nguồn: AVCC, điện thế tham chiếu nội 2.56V và VREF như bảng 2.1 Nếu chọn điện thế VREF thì các tùy chọn còn lại không được sử dụng để tránh bị ngắn mạch, điều này có nghĩa là nếu ta chọn điện thế tham chiếu là VREF rồi, thì trong suốt quá trình hoạt động của bộ ADC ta không được lựa chọn điện thế tham chiếu khác

Trang 23

Bit 5 – ADLAR: ADC Left Adjust Result: Bit này lựa chọn cách bố trí dữ liệu trong hai thanh ghi dữ liệu ADCH và ADCL

Bits 4:0 – MUX4:0: Analog Channel and Gain Selection Bits: Các bit này lựa chọn kiểu ngõ vào (đơn hay vi sai) và độ lợi

Bit 7 – ADEN: ADC Enable: Bit này là 1 sẽ cho phép bộ ADC hoạt động, ngược lại sẽ ngừng bộ ADC ngay cả khi nó đang trong quá trình biến đổi

Bit 6 – ADSC: ADC Start Conversion: Ghi bit này thành 1 để bắt đầu quá trình chuyển đổi Trong chế độ chuyển đổi từng bước, sau mỗi lần chuyển đổi hoàn thành bit này bị xóa về 0, ta phải set lại bit này để bắt đầu một biến đổi tiếp theo Trong chế độ chuyển đổi liên tục, ta chỉ cần set bit này một lần

Bit 5 – ADFR: ADC Free Running Select: Set bit này lên 1 để lựa chọn chế

độ hoạt động biến đổi liên tục Bit này là 0 sẽ cho phép chế độ biến đổi từng bước Bit 4 – ADIF: ADC Interrupt Flag: Bit này sẽ được set thành 1 khi một chu trình biến đổi ADC hoàn thành, bit này được xóa bởi phần cứng khi trình phục vụ ngắt tương ứng được thực thi Chú ý là khi ta chỉnh sửa thanh ghi ADCSRA (như dùng các lệnh CBI, SBI) thì bit này sẽ bị xóa Vì vậy, để xóa bit này bởi phần mềm,

ta chỉ cần ghi giá trị 1 vào nó

Bit 3 – ADIE: ADC Interrupt Enable: Bit này cho phép ngắt ADC, khi bit ADIE (cho phép ngắt ADC) và bit I (cho phép ngắt toàn cục) trong thanh ghi SREG được set lên 1 sẽ cho phép ngắt ADC hoạt động

Bits 2:0 – ADPS2:0: ADC Prescaler Select Bits: Vì tần số clock ADC được lấy từ xung clock hệ thống, nên các bit ADPS2:0 sẽ cho phép chia xung clock hệ thống với các hệ số xác định trước khi đưa vào nguồn clock ADC Với độ phân giải

10 bit, tần số clock ADC khoảng từ 50 – 200 KHz, nên tùy theo tần số clock hệ

Trang 24

2.1.8.2.3 Thanh ghi dữ liệu cao và thấp của ADC

Đây là hai thanh ghi chứa kết quả ADC, tùy theo thiết lập của bit ADLAR trong thanh ghi ADMUX, mà 10 bit dữ liệu ADC có thể được bố trí về phía phải hay trái của hai thanh ghi ADCH và ADCL, cụ thể như sau:

Khi một quá trình chuyển đổi ADC hoàn tất thì kết quả sẽ được lưu trong 2 thanh ghi này Trường hợp các kênh vi sai được sử dụng cho việc chuyển đổi ADC thì giá kết quả được lưu chính là 2 dạng bù nhau

Khi ADCL được đọc, thanh ghi DATA của ADC sẽ không được cập nhật cho đến khi ADCH được đọc xong Như vậy, nếu kết quả đang được canh trái và không cần chính xác hơn 8 bit thì chỉ cần đọc ADCH Ngược lại thì phải đọc ADCL trước sau đó mới đọc đến ADCH

Bit ADLAR trong ADMUX, và bit MUXn trong thanh ghi ADMUX tác động lên kết quả được đọc ra từ các thanh ghi Nếu ADLAR bằng 1 thì kết quả là canh trái, nếu ADLAR bằng 0 thì kết quả là canh phải

ADC 9:0 – Là kết quả chuyển đổi ADC, các bit này thể hiện kết quả từ quá trình chuyển đổi

DS1307 là chip đồng hồ thời gian thực, khái niệm thời gian thực ở đây có ý nghĩa thời gian tuyệt đối mà con người đang sử dụng, tính bằng giây, phút, giờ…

Trang 25

DS1307 là một sản phẩm của Dallas Semiconductor Chip này có 7 thanh ghi 8 bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng, năm

Khi mất nguồn, DS1307 tự động chuyển sang dùng nguồn Pin Lithium 3V gắn ngoài nên DS1307 vẫn đang hoạt động nhưng không ghi và đọc được Hoạt động với khoảng nhiệt độ: -400C đến 850C

Hình 2.14: Hai dạng cấu tạo chân của DS1307

Các chân DS1307 được mô tả như sau:

- X1:X2: là hai chân kết nối với thạch anh 32.768Khz tạo nguồn dao động

- VBAT: cực dương của nguồn pin 3V nuôi chíp

- GND: chân mass chung cho cả nguồn pin 3V và Vcc

- Vcc: nguồn cho giao diện I2C thường là 5V, dùng chung với vi điều khiển

- SQW/OUT: là chân tạo ra xung vuông của DS1307 có 4 chế độ: 1Hz, 4.096kHz, 8.192kHz, 32.768kHz các chế độ này được quy định bởi thanh ghi Control Register có địa chỉ 0x07h

- SCL và SDA: đường xung nhịp và đường dữ liệu của giao diện I2C

Cấu tạo bên trong của DS1307 bao gồm một số thành phần như mạch nguồn, mạch dao động, mạch điều khiển logic, mạch giao diện I2C, con trỏ điều khiển, các thanh ghi (RAM) Đa số các thành phần bên trong của DS1307 là phần cứng nên khi sử dụng chủ yếu là ghi và đọc dữ liệu từ các thanh ghi của chip này Do vậy cần phải hiểu rõ cấu trúc các thanh ghi và cách truy xuất các thanh ghi này thông qua giao diện I2C

Trang 26

Hình 2.15: Sơ đồ khối bên trong của DS1307

Bộ nhớ của DS1307 có tất cả 64 thanh ghi 8bit được đánh địa chỉ từ 0 đến 63 (từ 0x00h đến 0x3Fh) Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu có chức năng

“đồng hồ”, còn lại 56 thanh ghi có chức năng như là RAM dùng để lưu trữ Bảy thanh ghi đầu tiên chứa thời gian của đồng hồ giây, phút, giờ, ngày, tháng, năm Việc ghi giá trị vào 7 thanh ghi này tương đương với việc cài đặt thời gian khởi động cho Realtime Việc đọc giá trị từ bảy thanh ghi này là quá trình đọc thời gian thực từ Realtime tạo ra

Hình 2.16: Tổ chức bộ nhớ trong DS1307

Vì 8 thanh ghi đầu tiên là quan trọng nhất trong hoạt động của DS1307, tổ chức bit của các thanh ghi như sau:

Trang 27

Hình 2.17: Tổ chức bit của các thanh ghi

Tất cả các giá trị thời gian lưu trong thanh ghi lưu theo dạng BCD

• Thanh ghi giây: là thanh ghi đầu tiên trong bộ nhớ của DS1307, địa chỉ là 0x00H Bốn bit thấp của thanh ghi này chứa mã BCD 4-bit của chữ số hàng đơn vị của giá trị giây Do giá trị cao nhất của chữ số hàng chục là 5 nên chỉ cần 3 bit là

đủ Bit cao nhất ( bit thứ 7) trong thanh ghi này là 1 bit điều khiển có tên là CH ( Clock halt – treo đồng hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị

vô hiệu hóa, đồng hồ không hoạt động vì vậy nhất thiết phải reset bit này xuống 0 ngay từ đầu

• Thanh ghi phút: có địa chỉ 0x01H, chứa giá trị phút của đồng hồ Tương tự thanh ghi giây, chỉ có 7 bit của thanh ghi này được dùng lưu mã BCD của phút, bit thứ 7 luôn luôn bằng 0

• Thanh ghi giờ: có thể nói đây là thanh ghi phức tạp nhất trong chip DS1307 Thanh ghi này có địa chỉ 0x02H Trước hết 4 bit thấp của thanh ghi này được dùng cho chữ số hàng đơn vị của giờ Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ là 12h và 24h, vì vậy bit thứ 6 dùng để xác lập hệ thống giờ Nếu bit thứ 6 bằng 0 thì

hệ thống 24h được chọn, khi đó 2 bit thứ 5 và thứ 4 dùng mã hóa chữ số hàng chục của giá trị giờ Do giá trị lớn nhất của chữ số hàng chục trong trường hợp này là 2 nên cần 2 bit để mã hóa Nếu bit thứ 6 bằng 1 thì hệ thống 12h được chọn Với trường hợp này chỉ có 1 bit thứ 4 dùng mã hóa chữ số hàng chục của giờ, bit thứ 5

Trang 28

chỉ buổi trong ngày (AM hoặc PM) Bit thứ 5 bằng 0 là AM và bit thứ 5 bằng 1 là

PM Bit thứ 7 luôn bằng 0

• Thanh ghi thứ (ngày trong tuần): nằm ở địa chỉ 0x03H Thanh ghi này chỉ mang giá trị từ 1 đến 7 tương ứng từ chủ nhật đến thứ 7 trong tuần Vì thế, chỉ có 3 bit trong thanh ghi này có nghĩa Các bit còn lại bằng 0

• Thanh ghi ngày: nằm ở địa chỉ 0x04H Thanh ghi DATE mang giá trị từ 1 đến 31, chỉ có 5 bit đầu tiên có nghĩa Các bit còn lại luôn bằng 0

• Thanh ghi tháng: nằm ở địa chỉ 0x05H Thanh ghi tháng mang giá trị từ 1 đến 12, chỉ có 4 bit đầu tiên có nghĩa Các bit còn lại bằng 0

• Thanh ghi năm: nằm ở địa chỉ 0x06H Thanh ghi YEAR mang giá trị từ 0 đến 99 Chip DS1307 chỉ dùng cho 100 năm, nên giá trị năm chỉ có 2 chữ số, phần đầu của năm do người dùng tự thêm vào

• Thanh ghi điều khiển: có địa chỉ 0x07H, thanh ghi CONTROL REGISTER được biểu diễn như sau:

Hình 2.18: Cấu trúc thanh ghi điều khiển

Bit 1 và 0_ Rate Select (RS[1:0]): 2 bit này dùng điều khiển tần số dao động ở ngõ ra SQW/OUT, với 4 tần số được chọn như sau:

Bảng 2.2 Lựa chọn tần số trên chân SQW/OUT

Bit 7_ Output Control (OUT): dùng để kiểm soát mức logic tại SQW/OUT

Trang 29

Bit 4_Square-Wave Enable (SQWE): bit này được set lên bằng 1 để tạo dao động ở đầu ra

I2C là viết tắt của từ Inter – Intergrated Circuit là một chuẩn truyền thông nối tiếp đồng bộ do hãng Philips Semiconductor sáng lập và xây dựng thành chuẩn Các khái niệm cơ bản trong giao diện I2C:

• Master (Chip chủ): là chíp khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL

• Slave (Chip tớ): là chip có một địa chỉ cố định, được gọi bởi Master và khôi phục vụ yêu cầu từ Master

• SDA (Serial Data): là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay dữ liệu đều được truyền trên đường này theo theo thứ tự từng bit một Chú ý là trong chuẩn I2C, bit có trọng số lớn nhất (MSB) được truyền đi trước nhất

• SCL (Serial Clock): là đường xung giữ nhịp nối tiếp I2C là chuẩn truyền thông nối tiếp đồng bộ, cần phải có 1 đường tạo xung giữ nhịp cho quá trình truyền/ nhận, cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được lấy mẫu

Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL) SDA là đường truyền dữ liệu theo hai hướng, còn SCL là đường truyền xung đồng

hồ chỉ truyền theo một hướng từ Master đến Slave

Hình 2.19: Cơ chế truyền dữ liệu giữa Master và Slave

nRF24L01 là một trong những dòng sản phẩm của nhà sản xuất Nordic (Nauy), có chức năng thu phát tín hiệu qua sóng RF sử dụng điện áp thấp

Trang 30

Đặc điểm của chip nRF24L01:

• Thực hiện chức năng thu phát dữ liệu bằng sóng RF tần số 2.4GHz

• Sử dụng dạng điều chế GFSK

• Tốc độ truyền tải dữ liệu trong không khí 1Mbp – 2Mbp

• Tiêu thụ năng lượng thấp, sử dụng điện áp thấp (3.3V)

• Sử dụng giao thức phần cứng Shockburst

+ Tự động tạo gói dữ liệu (Preamble, Address, CRC)

+ Tự động phát hiện gói dữ liệu và xác nhận

+ Lựa chọn dữ liệu từ 1-32 Byte

+ Có khả năng truyền lại dữ liệu

+ Tự động xác nhận mã ACK

+ Có 6 đường dẫn để truyền nhận dữ liệu

• Sử dụng giao thức SPI để trao đổi dữ liệu với Vi điều khiển, tốc độ truyền

nhận dữ liệu lên tới 10Mbp

Một số ứng dụng cơ bản của nRF24L01:

• Thiết bị ngoại vi máy tính không dây

• Ứng dụng trong chuột, bàn phím và điều khiển từ xa

• Điều khiển từ xa bằng sóng RF cho các thiết bị điện tử tiêu dùng

• Mạng cảm biến với điện năng cực thấp

• Tự động hóa trong thương mại và gia dụng

• Ứng dụng trong đồ chơi

2.3.2.1 Cấu trúc phần cứng

Trang 31

Hình 2.20: Sơ đồ khối chip nRF24L01

Hình 2.21: Sơ đồ chân chip nRF24L01

Trang 32

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

1 CE Dữ liệu số ngõ vào Kích hoạt cho phép chip chế độ RX hoặc

TX

2 CSN Dữ liệu số ngõ vào Chọn chip SPI

3 SCK Dữ liệu số ngõ vào Xung Clock SPI

vào Dữ liệu ngõ vào Slave SPI

6 IRQ Dữ liệu số ngõ ra Cho phép ngắt, tích cực mức thấp

7 VDD Nguồn Nguồn cấp (+1.9V- +3.6VDC)

9 XC2 Ngõ ra tương tự Chân thạch anh2

10 XC1 Ngõ vào tương tự Chân thạch anh1

Trang 33

20 VSS Nguồn Ground(0V)

Bảng 2.4 Điều kiện làm việc của nRF24L01

VDD Điện áp tín hiệu ngõ vào >3.6V 2.7 3.0 3.3 V

Trang 34

Chế độ Standby có hai loại: Standby-I, Standby-II Khi dữ liệu trong chế độ

TX được truyền đi hết nRF24L01 tự động chuyển sang chế độ Standby-II.Chế

độ Standby-Iđược thiết lập khi bit PWR_UP lên ‘1’ và bit PRIM_RX xuống

‘0’.Dữ liệu của các thanh ghi trong nRF24L01 được giữ nguyên và giao thức truyền dữ liệu SPI được kích hoạt để chip trao đổi dữ liệu với Vi điều khiển

Sự khác nhau giữa chế độ Standby I và Standby II

o Standby I sẽ không truyền dữ liệu khi vào chế độ này

o Standby II sẽ ngừng truyền dữ liệu khi TX FIFO trống

Chế độ nhận dữ liệu từ sóng RF phát đi của bộ phát

Để vào chế độ này, nRF24L01 phải có các bit PWR_UP mức cao, bit

PRIM_RX thiết lập cao và chân CE cũng được thiết lập mức cao

Trong chế độ này bộ thu (nRF24L01 hoạt động ở chế độ RX) liên tục tìm kiếm các gói tin trong dãy băng tần điều chế thích hợp ( Được cài đặt trong thanh ghi RF_CH) Nếu một gói tin hợp lệ được tìm thấy (một địa chỉ phù hợp và một giá trị CRC hợp lệ) dữ liệu của gói tin được lưu trữ trong FIFO RX.Nếu FIFO RX

bị đầy, các gói tin nhận được còn lại sẽ bị loại bỏ

NRF24L01 vẫn còn trong chế độ RX cho đến khi MCU cấu hình nó để vào chế độ chờ standby-I, hoặc chế độ tắt nguồn

Bit CD thanh ghi CD được thiết lập mức ‘1’ khi một tín hiệu RF phù hợp được phát hiện trong chế độ RX, ngược lại bit CD là mức ‘0’ Các tín hiệu RF phải có mặt ít nhất là 128μs trước khi CD được thiết lập cao

Chế độ TX là một chế độ hoạt động, khi mà nRF24L01 truyền một gói tin

Để vào chế độ này, nRF24L01 phải có bit PWR_UP ở mức cao, bit PRIM_RX thiết lập mức thấp, tải trọng trong FIFO TX và, một xung cao trên CE hơn 10μs NRF24L01 vào trong chế độ TX cho đến khi nó kết thúc truyền một gói tin hiện tại,sau đó nó vào chế độ Standby I Nếu CE = 0 nRF24L01 trở về chế độ chờ standby-I Nếu CE = 1, hành động tiếp theo được xác định bởi tình trạng

Trang 35

của FIFO TX Nếu FIFO TX là chưa trống, nRF24L01 vẫn còn trong TX chế

độ, truyền tải các gói dữ liệu tiếp theo Nếu TX FIFO trống thì nRF24L01 đi vào chế độ chờ standby-II

2.3.8.1 Thời gian chuyển đổi giữa các chế độ hoạt động

Bảng 2.6 Thời gian chuyển đổi giữa các chế độ

Power Down àStandbymode 1.5ms Thạch anh giao động nội

Power Down àStandbymode 150µs Xung clock bên ngoài

Standbymodesà TX/RXmode 130µs

2.3.8.2 Cài đặt kênh tần số RF cho nRF24L01

nRF24L01 có thể hoạt động thu phát dữ liệu trên 126 kênh sóng RF trên tần

số từ 2.400GHz đến 2.525GHz

Với tốc độ truyền tải 1Mbp thì khoảng cách giữa các kênh là 1MHz

Với tốc độ truyền tải 2Mbp thì khoảng cách giữa các kênh là 2MHz

Các kênh tần số RF được thiết lập bởi thanh ghi RF_CH theo công thức

sau:

F0 = 2400 + RF_CH [MHz]

Một bộ phát và bộ nhận phải được lập trình với cùng một kênh tần số RF để

có thể giao tiếp với nhau

Shockburst là một tính năng hoạt động trên lớp liên kết dữ liệu cho phép tự động đóng gói dữ liệu, tự động xác nhận mã ACK và tự động truyền lại dữ liệu.Shockburst có thể thực hiện với điện áp thấp nhưng hiệu suất cao.Không sử dụng tài nguyên của vi điều khiển Do đó sẽ tiết kiệm được chi phí

2.3.9.1 Các tính năng chính của ShockBurst

Trang 36

- Tự động xử lý gói tin

- Tự động xử lý giao dịch

+ Tự động báo nhận

+ Tự động truyền lại

- Sáu chế độ đường nhận dữ liệu cho mạng sao 1:6

2.3.9.2 Định dạng dữ liệu trong ShockBurst

Preamble : Phần đầu, đây là một byte có giá trị là một trong 2 byte

:‘01010101’ hoặc ‘10101010’ Nếu bit đầu tiên trong địa chỉ của bộ thu là ‘1’ thì Preamble là ‘10101010’, nếu là ‘0’ thì Preamble là ‘01010101’

Address : Là địa chỉ của bên thu có độ dài từ 3-4 byte Được quy định trong

thanh ghi AW

Packet control field : Có độ dài 9 bit

Playload length ( Độ dài 6 bit): Chứa chiều dài của dữ liệu (0- 32 byte)

PID ( Độ dài 2 bit) : Được dùng để phát hiện dữ liệu là mới hay được truyền lại NO_ACK :Bit này được dùng khi chế độ tự động xác nhận ACK được dùng Khi bit này được set ‘1’,nó sẽ thông báo với bên thu là gói dữ liệu này không có chế

2.3.10.1 Các chân của nRF24L01 sử dụng trong giao tiếp SPI

- CE: Được sử dụng để kích hoạt các chip trong chế độ RX, TX

Trang 37

- CSN: Chân chọn chế độ SPI

- SCK: Chân tạo xung Clock để truyền nhận dữ liệu

- MOSI: Chân nhận dữ liệu ngõ vào slave, ngõ ra dữ liệu master

- MISO: Chân nhận dữ liệu ngõ vào master, ngõ ra dữ liệu slave

2.3.10.2 Một vài đặc tính của chuẩn giao tiếp SPI của nRF24L01

- Lệnh SPI đặc biệt để truy cập nhanh vào các tính năng được sử dụng thường xuyên nhất

- Tốc độ dữ liệu lên tới 8Mbp

- Dễ dàng cấu hình bản đồ thanh ghi

- Đầy đủ ba cấp độ FIFO cho cả hai hướng TX và RX

2.3.10.3 Hoạt động đọc/ghi của chuẩn SPI

2.3.10.3.1 Một số lệnh SPI thường dùng của nRF24L01

- Mỗi lệnh mới phải được bắt đầu bởi một xung thay đổi từ cao xuống thấp trên chân CSN

- Dữ liệu được truyền nhận theo định dạng sau:

+ Command Word: MSBit đến LSBit (1 byte)

+ Data Bytes: LSByte đến MSByte, MSBit trong mỗi byte đầu tiên

Bảng 2.7 Mã lệnh SPI của nRF24L01

Tên lệnh Mã lệnh Chức năng

R_REGISTER 000AAAAA Lệnh đọc dữ liệu thanh ghi trong nRF24L01

A AAAA là địa chỉ thanh ghi cần đọc

W_REGISTER 001AAAAA Lênh viết dữ liệu lên thanh ghi nRF24L01

A AAAA là địa chỉ thanh ghi cần viết

R_RX_PAYLOAD 0110 0001 Lệnh đọc dữ liệu lưu trong thanh ghi

Trang 38

FLUSH_RX 1110 0010 Dùng để xóa dữ liệu nhận về

R_RX_PL_WID 0110 0000 Lệnh đọc độ dài của dữ liệu lưu trong

Dn Data Bit (LSBytetoMSByte,MSBitfirst)

Hình 2.22: Biểu đồ hoạt động đọc SPI của nRF24L01

Hình 2.23: Biểu đồ hoạt động ghi SPI của nRF24L01

Trang 39

MASK_RX_DR 6 0 R/W Phản ánh ngắt tạo ra bởi

RX_DR:

‘0’: Ngắt không được thể hiện

ra chân IRQ pin

‘1’: Ngắt được thể hiện ra chân IRQ pin, chân IRQ chuyển xuống mức ‘0’

MASK_TX_DS 5 0 R/W Phản ánh ngắt tạo ra bởi

TX_DS:

‘0’: Ngắt không được thể hiện

ra chân IRQ pin

‘1’: Ngắt được thể hiện ra chân IRQ pin, chân IRQ chuyển xuống mức ‘0’

MASK_MAX_R

T

4 0 R/W Phản ánh ngắt tạo ra bởi

MAX_RT:

‘0’: Ngắt không được thể hiện

ra chân IRQ pin

‘1’: Ngắt được thể hiện ra chân IRQ pin, chân IRQ chuyển xuống mức ‘0’

EN_CRC 3 1 R/W Cho phép kiểm tra CRC CRCO 2 0 R/W Chế độ mã hóa CRC:

Trang 40

ERX_P5 5 0 R/W Cho phép chọn kênh truyền dữ

Ngày đăng: 18/06/2014, 09:07

HÌNH ẢNH LIÊN QUAN

2.1.2  Sơ đồ chân của Atmega 32 - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
2.1.2 Sơ đồ chân của Atmega 32 (Trang 12)
Hỡnh 2.2:  Sơ đồ lừi của ATmega 32 - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
nh 2.2: Sơ đồ lừi của ATmega 32 (Trang 15)
Hình 2.4:  Thanh ghi đa năng - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.4 Thanh ghi đa năng (Trang 17)
Hình 2.9:  Sơ đồ khối đơn giản của ADC - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.9 Sơ đồ khối đơn giản của ADC (Trang 20)
Hỡnh 2.10:  Ngừ vào vi sai - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
nh 2.10: Ngừ vào vi sai (Trang 22)
Hình 2.13:  Thanh ghi dữ liệu của ADC - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.13 Thanh ghi dữ liệu của ADC (Trang 24)
Hình 2.15:  Sơ đồ khối bên trong của DS1307 - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.15 Sơ đồ khối bên trong của DS1307 (Trang 26)
Hình 2.17:  Tổ chức bit của các thanh ghi - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.17 Tổ chức bit của các thanh ghi (Trang 27)
Hình 2.18:  Cấu trúc thanh ghi điều khiển - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.18 Cấu trúc thanh ghi điều khiển (Trang 28)
Hình 2.20:  Sơ đồ khối chip nRF24L01. - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.20 Sơ đồ khối chip nRF24L01 (Trang 31)
Bảng 2.13  Register SETUP_RETR  Addresss  Register  Bit   Reset - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Bảng 2.13 Register SETUP_RETR Addresss Register Bit Reset (Trang 41)
Bảng 2.17  Register OBSERVE_TX  Addresss  Register  Bit   Reset  value - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Bảng 2.17 Register OBSERVE_TX Addresss Register Bit Reset value (Trang 43)
Bảng 2.22  Register FIFO_STATUS  Addresss  Register  Bit   Reset - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Bảng 2.22 Register FIFO_STATUS Addresss Register Bit Reset (Trang 46)
Hình 2.24:  Sơ đồ nguyên lý module nRF24L01 - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.24 Sơ đồ nguyên lý module nRF24L01 (Trang 48)
Hình 2.28:  Sơ đồ khối DS1820 - thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc
Hình 2.28 Sơ đồ khối DS1820 (Trang 57)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w