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 - Pdf 14

Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

ii

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
2.3.5 Chế độ tắt nguồn. 24
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn



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
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

v


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
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

vii

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 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

Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

ix

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

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.

1.2 Tình hình nghiên cứu trong và ngoài nước
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
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

Trang 2

Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

Trang 3
đạ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.
2.1.2 Sơ đồ chân của Atmega 32
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.

Hình 2.1: Sơ đồ chân của Atmega 32
• 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.
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

Trang 4
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.

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.

Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

Trang 6

• Bit 2 – N: Cờ âm, cờ này được set nếu kết quả phép toán đại số hay phép
logic là số âm.
• Bit 1 – Z: cờ zero, cờ này được set nếu kết quả phép toán đại số hay phép
logic bằng 0.
• Bit 0 – C: là cờ nhớ, là bit nhớ trong các phép đại số hoặc logic.
2.1.6 Tập các thanh ghi làm việc đa năng
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.
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

Trang 8

Hình 2.4: Thanh ghi đa năng
2.1.7 Cổng vào ra của ATmega 32
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.

Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

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

Hình 2.7: Thanh ghi PINA
2.1.7.1.4 Thanh ghi SFIOR
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 }.

Hình 2.8: Thanh ghi SFIOR
2.1.8 Bộ chuyển đổi ADC
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.
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

Trang 11

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

POS
: là điện áp trên chân ngõ vào positive.
• V
NEG
: là điện áp trên chân ngõ vào negative.
• V
REF
: 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.
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

Trang 13

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
2.1.8.2.1 Thanh ghi lựa chọn dồn kênh ADC – ADMUX

Hình 2.11: Thanh ghi ADMUX
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ế V

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ệ
thống mà ta lựa chọn hệ số chia thích hợp.
Luận văn tốt nghiệp GVHD: Đặng Anh Tuấn

Trang 15
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:

Hình 2.13: Thanh ghi dữ liệu của ADC
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.


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.

Trích đoạn Module nRF24L01 Bộ nhớ DS1820 Các bước tiến hành để truy nhập đến DS1820
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status