SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
I H QU GI H N I
ƢỜ Ọ Ệ
ỒNG PH M KHÔI
NGHIÊN CỨU CHẾ T O HỆ THỐNG M ỀU KHIỂN VÀ KIỂM SOÁT
CÁC THÔNG SỐ M ƢỜNG (NHIỆ Ộ, Ộ ẨM) TỪ XA. ỨNG DỤNG
TRONG BẢO QUẢN CÁC TRANG THIẾT BỊ QUỐC PHÒNG.
Ệ Ệ - Ễ
Ộ – 2014
I H QU GI H N I
ƢỜ Ọ Ệ
ỒNG PH M KHÔI
NGHIÊN CỨU CHẾ T O HỆ THỐNG M ỀU KHIỂN VÀ KIỂM
SOÁT CÁC THÔNG SỐ M ƢỜNG (NHIỆ Ộ, Ộ ẨM) TỪ XA. ỨNG
DỤNG TRONG BẢO QUẢN CÁC TRANG THIẾT BỊ QUỐC PHÒNG.
Ng nh: Công nghệ iện tử - Viễn thông
huy n ng nh: Kỹ thuật iện tử
Mã số: 60 52 02 03
Ệ Ệ - Ễ
ƢỜ ƢỚ Ẫ Ọ -TS. TRẦN QUANG VINH
Ộ – 2014
2
MỤC LỤC
LỜI M O N.................................................................................................. 0
Danh mục các ký hiệu và chữ viết tắt ................................................................... 5
Danh mục các bảng ............................................................................................... 5
Danh mục các hình vẽ, đồ thị................................................................................ 5
MỞ ẦU............................................................................................................... 8
hƣơng 1: TỔNG QUAN ..................................................................................... 9
1.1. Sơ đồ tổng quan hệ thống........................................................................... 9
1.2. Mục ti u đề tài.......................................................................................... 10
1.3. Nội dung nghiên cứu................................................................................ 10
1.3.1. Nghiên cứu lý thuyết:........................................................................ 10
1.3.2. Thiết kế hệ thống:.............................................................................. 10
1.4. Giới hạn đề tài.......................................................................................... 10
1.5. Ý nghĩa thực tiễn...................................................................................... 11
hƣơng 2: Ơ SỞ LÝ THUYẾT........................................................................ 12
2.1. Chuẩn EIA RS-232-C .............................................................................. 12
2.1.1. Những đặc điểm cần lƣu ý trong chuẩn RS-232............................... 12
2.1.2. Các mức điện áp thƣờng truyền........................................................ 12
2.1.3. Cổng RS-232 trên PC........................................................................ 13
2.1.4. Truyền dữ liệu................................................................................... 13
2.1.5. Mạch giao tiếp RS-232 dùng IC max232 ......................................... 14
2.2. Chuẩn RS-422/RS-485............................................................................. 15
2.2.1. Cấu hình mạng 2-dây RS-485........................................................... 16
2.2.2. Cấu hình mạng 4-dây RS-485........................................................... 16
2.2.3. Kết thúc cáp....................................................................................... 17
2.2.4. ịnh thiên trong mạng RS-485......................................................... 17
2.3. Giao thức MODBUS................................................................................ 19
2.3.1. MODBUS là gì?................................................................................ 19
2.3.2. Nguyên tắc hoạt động của MODBUS............................................... 19
2.3.3. Sơ đồ trạng thái của Modbus ............................................................ 21
2.4. Kỹ thuật CRC........................................................................................... 23
2.3.1. Lý thuyết CRC .................................................................................. 23
2.3.2. Thuật toán CRC................................................................................. 23
hƣơng 3 CÁC LINH KIỆN CHÍNH SỬ DỤNG.............................................. 25
3.1. ATmega128.............................................................................................. 25
3.1.1. Giới thiệu về ATmega128................................................................. 25
3.1.2. Cấu trúc bộ nhớ................................................................................. 26
3
3.1.3. Các cổng vào ra................................................................................. 28
3.1.4. Các bộ định thời của ATmega128 .................................................... 29
3.1.6. Bộ truyền nhận dữ liệu nối tiếp USART........................................... 31
3.2. ATmega16................................................................................................ 32
3.3. Cảm biến nhiệt độ, độ ẩm SHT11............................................................ 33
3.3.1. Các thông số kỹ thuật.................................................................... 33
3.3.2. Khởi động cảm biến...................................................................... 34
3.3.3. Gửi một lệnh.................................................................................. 34
3.3.4. o độ ẩm và nhiệt độ .................................................................... 35
3.3.5. Chuỗi reset kết nối ........................................................................ 35
3.3.6. Tính toán tổng kiểm tra CRC-8..................................................... 35
3.3.7. Thanh ghi trạng thái ...................................................................... 36
3.3.8. Chuyển đổi tín hiệu ra....................................................................... 37
3.4. MMC/SD card.......................................................................................... 39
3.4.1. Sơ lƣợc về MMC/SD card................................................................. 39
3.4.2. Giao tiếp AVR với MMC/SD card ................................................... 40
hƣơng 4 : THIẾT KẾ HỆ TH NG .................................................................. 47
4.1. Phần cứng................................................................................................. 47
4.1.1. Sơ đồ nguyên lý master..................................................................... 47
4.1.2. Sơ đồ nguyên lý slave ....................................................................... 51
4.2. Phần mềm................................................................................................. 52
4.2.1. Giới thiệu công cụ lập trình CodeVisionAVR.................................. 52
4.2.2. Phần mềm cho master ....................................................................... 53
4.2.3. Phần mềm cho slave.......................................................................... 59
4.3. Lập trình phần mềm giao diện PC sử dụng VB.NET .............................. 62
KẾT LUẬN......................................................................................................... 64
Kết quả ............................................................................................................ 64
Hạn chế............................................................................................................ 64
Hƣớng phát triển đề tài.................................................................................... 64
DANH MỤC CÔNG TRÌNH KHOA H LIÊN QU N ẾN LUẬN VĂN . 64
TÀI LIỆU THAM KHẢO................................................................................... 64
PHỤ LỤC............................................................................................................ 66
4
LỜ M
Tôi xin cam đoan những nội dung trong luận văn n y l do tôi thực hiện dƣới sự
hƣớng dẫn trực tiếp của thầy giáo PGS-TS. Trần Quang Vinh.
Mọi tham khảo dùng trong luận văn đều đƣợc trích dẫn rõ ràng tên tác giả, tên
công trình, thời gian, địa điểm công bố.
Mọi sao chép không hợp lệ, vi phạm quy chế đ o tạo, hay gian trá, tôi xin chịu
hoàn toàn trách nhiệm.
Tác giả luận văn
(Ký và ghi rõ họ tên)
ồng Phạm Khôi
5
Danh mục các ký hiệu và chữ viết tắt
SD card Secure Digital card
EIA Electronic Industries Alliance
TIA Telecommunications Industry Association
IC Integrated circuit
MMC card Multi Media Card
PC Personal computer
LCD Liquid-crystal display
TTL Time to live
ASCII American Standard Code for Information Interchange
RTU Remote terminal unit
CRC Cyclic Redundancy Check
UART Universal asynchronous Receiver/Transmitter
USART Universal Synchronous Receiver/Transmitter
SPI Serial Peripheral Interface
TQFP Thin quad flat pack
EEPROM Electrically Erasable Programmable Read-Only Memory
SRAM Static random-access memory
I/O Input/output
SHT Digital humidity and temperature sensor
MSB Most Significant Byte or Most Significant Bit
LSB Least Significant Byte or Least Significant Bit
RH Relative humidity
RxD Receive data pin
TxD Transmit data pin
INT Interrupt
FAT File Allocation Table
RTC Real-time clock
VB.NET Visual Basic.NET
Danh mục các bảng
Bảng 3.1: bảng véc tơ ngắt của ATmega128
Bảng 3.2: Danh sách lệnh của SHT1x
Bảng 3.3: Các hệ số chuyển đổi tối ưu cho sensor độ ẩm V4
Bảng 3.4: Các hệ số bù nhiệt độ
Bảng 3.5: Các hệ số bù nhiệt độ
Bảng 3.6: Các tham số để tính toán điểm sương (Td).
Danh mục các hình vẽ, đồ thị
Hình 1.1: Sơ đồ tổng quan hệ thống
Hình 1.2: Kho bảo quản tên lửa hàng không
6
Hình 2.1 : Mức giới hạn điện áp trong chuẩn RS-232
Hình 2.2: Cổng RS-232 trên PC
Hình 2.3: Mạch giao tiếp RS-232 dùng IC Max232
Hình 2.4: Liên kết RS-422 điểm-điểm
Hình 2.5: Cấu hình mạng 2-dây RS-485
Hình 2.6: Đường truyền với kết thúc cáp
Hình 2.7: Mạng RS-485 với hai điện trở 120Ω kết thúc cáp
Hình 2.8: Khung Modbus trên đường truyền nối tiếp
Hình 2.9: Cấu trúc khung ký tự ASCII
Hình 2.10: Cấu trúc khung ký tự RTU
Hình 2.11: Sơ đồ trạng thái của master
Hình 2.12: Sơ đồ trạng thái của slave
Hình 3.1: Bố trí chân của ATMEGA128
Hình 3.2: Bản đồ bộ nhớ dữ liệu
Hình 3.3: Sơ đồ khối đơn giản của khối USART
Hình 3.4: Hình dạng và kích thước của cảm biến nhiệt ẩm SHT11
Hình 3.5: Độ chính xác và dải hoạt động của các loại cảm biến SHT
Hình 3.6:Sơ đồ chân của SHT11
Hình 3.7:Mạch ứng dụng của SHT11
Hình 3.8: Chuỗi khởi tạo truyền “Transmission Start”
Hình 3.9: Chuỗi khởi tạo kết nối Connetion Reset Sequence
Hình 3.10: Ghi vào thanh ghi trạng thái
Hình 3.11: Đọc thanh ghi trạng thái
Hình 3.13: Ví dụ về chuỗi đo RH
Hình 3.12: Tổng quan của chuỗi đo. TS=khởi tạo truyền, MSB=Byte tín hiệu cao nhất,
LSB = Byte tín hiệu sau cùng, LSb= Bít tín hiệu cuối cùng.
Bảng 6: Các hệ số chuyển đổi tối ưu cho sensor độ ẩm V4
Hình 3.13: Chuyển đổi từ SORH sang độ ẩm tương đối
Bảng 3.3: Các hệ số bù nhiệt độ
Bảng 3.4: Các hệ số bù nhiệt độ
Bảng 3.5: Các tham số để tính toán điểm sương (Td).
Hình 3.14: Bố trí chân của MMC và SD card
Hình 3.15: IC CD4050 chuyển đổi mức tín hiệu giữa vi điều khiển và MMC/SD card
Hình 4.1: Sơ đồ nguyên lý của master
Hình 4.2: Sơ đồ nguyên lý khối nguồn
Hình 4.3: Sơ đồ nguyên lý khối thu/phát dữ liệu
Hình 4.4: Sơ đồ nguyên lý khối giao tiếp giữa master và PC
Hình 4.5: Sơ đồ nguyên lý mạch thời gian thực DS1307
Hình 4.6: Sơ đồ nguyên lý mạch điều chỉnh thời gian
Hình 4.7: Sơ đồ mạch in master
Hình 4.8: Mạch in master sau khi lắp ráp linh kiện
7
Hình 4.9: Sơ đồ nguyên lý của slave
Hình 4.10: Sơ đồ mạch in của các slave
Hình 4.11: Mạch in slave sau khi lắp ráp linh kiện và chạy thử
Hình 4.12: Tạo một Project mới trong CodeVisionAVR
Hình 4.12: Lựa chọn dòng vi điều khiển
Hình 4.13: Chọn loại vi điều khiển và tần số hoạt động
Hình 4.24: Chọn ngắt ngoài và chế độ hoạt động của ngắt
Hình 4.15: Cấu hình cho timer1
Hình 4.16: Cấu hình cho UART0
Hình 4.17: Cấu hình cho UART1
Hình 4.18: Cấu hình cho I2C giao tiếp với DS1307
Hình 4.19: Cấu hình để giao tiếp với LCD2004
Hình 4.20: Tạo và lưu Project
Hình 4.21: Tạo một Project mới
Hình 4.22: Lựa chọn dòng vi điều khiển
Hình 4.23: Chọn loại vi điều khiển và tần số hoạt động
Hình 4.24: Cấu hình cho UART
Hình 4.25: Cấu hình giao tiếp với LCD 1602
Hình 4.26: Giao diện chương trình trên PC
Hình 4.27: Giao diện chương trình khi hoạt động
Hình 4.28: Chạy thử toàn bộ hệ thống
8
MỞ ẦU
Hiện nay Quân đội ta đang bảo quản một số lƣợng lớn các trang bị quân sự, với
khí hậu nhiệt đới, độ ẩm và nhiệt độ cao v bi n độ thăng giáng lớn ảnh hƣởng rất lớn
tới tuổi thọ và khả năng sẵn sang chiến đấu của các trang bị quân sự. Theo các nghiên
cứu về kỹ thuật nhiệt đới thì khoảng độ ẩm từ 40-60% là phù hợp cho hầu hết các loại
vật liệu. Trong khoảng này các loại vật liệu từ kim loại đến phi kim ít bị ăm mòn nhất,
khoảng độ ẩm n y cũng hạn chế sự phát triển của các loại nấm mốc. Với các vũ khí
trang bị hiện đại thì đƣợc bảo quản trong điều kiện này là cần thiết.
Hệ thống tôi dự kiến chế tạo sẽ gồm các modul đo nhiệt độ v độ ẩm của các
hòm bảo quản tên lửa, các thông số đo đƣợc l cơ sở để điều khiển máy hút ẩm duy trì
độ ẩm trong các thùng bảo quản từ 40-60%, các số liệu về nhiệt độ v độ ẩm của từng
thùng bảo quản cũng đƣợc gửi về máy tính dựa trên giao thức Modbus qua đƣờng
truyền RS-485 để hiển thị lên máy tính. Phần mềm trên máy tính có chức năng hiển thị
độ ẩm hiện thời, trạng thái hoạt động của máy hút ẩm v lƣu các giá trị n y v o cơ sở
dữ liệu trên máy tính.
Ngoài việc lƣu giữ số liệu trên máy tính thì hệ thống còn có thể lƣu số liệu vào
thẻ nhớ SD card, đảm bảo khi tắt máy tính hoặc khi đƣờng truyền có sự cố thì số liệu
vẫn đƣợc lƣu giữ trong SD card.
Hệ thống đƣợc thiết kế đơn giản, dễ vận hành, bảo trì và sửa chữa, có độ chính
xác cao, giá thành rẻ các vật tƣ linh kiện hầu hết có sẵn trên thị trƣờng Việt Nam.
9
hƣơng 1: TỔNG QUAN
1.1. ơ đồ tổng quan hệ thống
Hòm bảo quản
1
ATMEGA128
LCD2004
MAX232
DS1307
MMC/SD
CARD
MAX485
LCD1602
SHT11
MAX485
MASTER
ATMEGA16
BUS RS485
BUS RS485
SLAVE 1
...
PC
RELAY
Máy hút
ẩm 1
Hòm bảo quản
N
LCD1602
SHT11
MAX485
ATMEGA16
SLAVE N
RELAY
Máy hút
ẩm N
Hình 1.1: Sơ đồ tổng quan hệ thống
Trên hình 1.1 hệ thống gồm 1 master và các slave đƣợc nối với nhau theo chuẩn
truyền thông EIA/TIA-485. Master và các slave giao tiếp với nhau theo giao thức
MODBUS RTU.
Các thành phần chính của master: Vi điều khiển ATmega128, màn hình
LCD2004 gồm 20 cột và 4 hàng, IC MAX232 giao tiếp với máy tính PC theo chuẩn
RS-232, IC thời gian thực DS1307, thẻ nhớ để lƣu trữ dữ liệu nhiệt độ v độ ẩm theo
chu kỳ đặt trƣớc, IC MAX485 nối với đƣờng truyền theo chuẩn EIA/TIA-485.
Các thành phần chính của slave: Vi điều khiển ATmega16, màn hình LCD1602
gồm 16 cột và 2 hàng, cảm biến nhiệt độ, độ ẩm SHT11, rơ le để điều khiển máy hút
ẩm, IC truyền nhận dữ liệu MAX485.
Nhiệm vụ của master:
- Chịu trách nhiệm điều khiển đƣờng truyền RS-485 dựa trên giao thức
MOSBUS RTU để giao tiếp với các slave nhằm thu thập dữ liệu nhiệt độ, độ ẩm, điểm
sƣơng, trạng thái các máy hút ẩm…
10
- Hiển thị các dữ liệu thu đƣợc lên màn hình LCD2004.
- Truyền toàn bộ dữ liệu tới máy tính P thông qua đƣờng truyền RS-232.
- ọc thông tin thời gian trên IC thời gian thực DS1307 rồi lƣu dữ liệu vào thẻ
nhớ (MMC/SD card) theo chu kỳ đặt trƣớc.
Nhiệm vụ của các slave:
- Giao tiếp với cảm biến nhiệt độ, độ ẩm để lấy thông tin về nhiệt độ, độ ẩm,
điểm sƣơng.
- Hiển thị các giá trị này lên màn hình LCD 1602.
- iều khiển máy hút ẩm để duy trì độ ẩm trong các thùng bảo quản trong
khoảng từ 45% đến 55%.
- Truyền các dữ liệu tới master khi đƣợc master yêu cầu.
Nhiệm vụ của PC:
- Nhận dữ liệu từ master qua cổng COM.
- Hiển thị dữ liệu lên giao diện của chƣơng trình phần mềm thu thập số liệu.
- Lƣu dữ liệu nhiệt độ, độ ẩm, điểm sƣơng, trạng thái hoạt động của các máy
hút ẩm theo thời gian.
1.2. Mục tiêu đề tài
- Nghiên cứu chế tạo thành công hệ thống mạng điều khiển và kiểm soát nhiệt
độ, độ ẩm hƣớng tới ứng dụng trong bảo quản vũ khí, trang bị kỹ thuật trong quân đội.
- Hệ thống gồm các modul đo nhiệt độ, độ ẩm trong các thùng bảo quản (các
slave), đồng thời điều khiển máy hút ẩm duy trì độ ẩm trong khoảng từ 45%-55%.
- Dữ liệu nhiệt độ, độ ẩm đƣợc truyền về master đƣợc lƣu trữ trong thẻ nhớ tại
master. Khoảng cách tối đa giữa master và các slave là 1200m và có thể lớn hơn nếu
sử dụng các bộ lặp.
- Phần mềm trên máy tính sẽ thu thập dữ liệu do master truyền về, hiển thị lên
giao diện m n hình v lƣu các số liệu nhiệt ẩm vào file excel.
1.3. Nội dung nghiên cứu
1.3.1. Nghiên cứu lý thuyết:
- Chuẩn EIA RS-232-C
- Chuẩn EIA/TIA-485
- Giao thức Modbus
- Các linh kiện chính sử dụng trong hệ thống
1.3.2. Thiết kế hệ thống:
- Thiết kế mạch nguyên lý và mạch in cho master
- Thiết kế mạch nguyên lý và mạch in cho slave
- Lập trình phần mềm cho master
- Lập trình phần mềm cho slave
- Lập trình phần mềm cho PC
1.4. Giới hạn đề tài
Do thời gian nghiên cứu hạn chế nên tôi mới chỉ chế tạo mẫu gồm 1 master, 4
slave. Tuy nhiên hệ thống hoàn toàn có thể tăng số lƣợng slave lên 32 slave.
11
1.5. Ý nghĩa thực tiễn.
Hình 1.2: Kho bảo quản tên lửa hàng không
- Hệ thống có khả năng ứng dụng trong thực tiễn bảo quản vũ khí trang bị của
Quân đội nhằm hạn chế ảnh hƣởng của khí hậu nhiệt đới l n vũ khí, trang bị, kéo dài
tuổi thọ của vũ khí trang bị, đặc biệt l các vũ khí trang bị đắt tiền.
- Hệ thống cũng có thể đƣợc ứng dụng trong các kho bảo quản quân trang, quân
nhu, các kho lƣơng thực, thực phẩm…
12
hƣơng 2 Ơ Ở LÝ THUYẾT
2.1. Chuẩn EIA RS-232-C
Chuẩn giao tiếp RS-232 là một trong những kỹ thuật đƣợc sử dụng rộng rãi hiện
nay để nối ghép các thiết bị ngoại vi với máy tính. Nó là một chuẩn giao tiếp nối tiếp
dùng định dạng không đồng bộ, kết nối nhiều nhất là hai thiết bị, chiều dài kết nối lớn
nhất cho phép để đảm bảo dữ liệu l 12.5m đến 25.4m, tốc độ 20kbit/s đôi khi l tốc
độ 115kbit/s với một số thiết bị đặc biệt.
Chuẩn RS-232 đƣợc nối ra một dắc cắm (gọi là cổng COM). Khi sử dụng có thể
dùng hai hay toàn bộ chân của dắc cắm này, nếu mục đích chỉ truyền hoặc nhận tín
hiệu giữa hai thiết bị thì ta chỉ cần sử dụng hai dây (một dây truyền hoặc nhận và một
dây nối đất). Ý nghĩa của chuẩn truyền thông nối tiếp là trong một thời điểm chỉ có
một bít đƣợc gửi đi dọc theo đƣờng truyền. ác máy tính thƣờng có một hoặc hai cổng
nối tiếp theo chuẩn RS-232 đƣợc gọi là cổng OM. húng đƣợc dùng để ghép nối cho
chuột, modem, thiết bị đo lƣờng…Tr n main máy tính có loại 9 chân hoặc loại 25
chân tùy v o đời máy và main của máy tính. Việc thiết kế giao tiếp với cổng RS-232
cũng tƣơng đối dễ d ng, đặc biệt khi chọn chế độ hoạt động l không đồng bộ và tốc
độ truyền dữ liệu thấp.
2.1.1. Những đặc điểm cần lƣu ý trong chuẩn RS-232
- Trong chuẩn RS-232 có mức giới hạn tr n v dƣới( logic 0 và 1) là 12V.
Hiện nay đang đƣợc cố định trở kháng tải trong phạm vi từ 3000-7000
- Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ 3V
đến 12V.
- Tốc độ truyền nhận dữ liệu cực đại là 100kbps (ngày nay có thể lớn hơn).
- Các lối vào phải có diện dung nhỏ hơn 2500pF.
- Trở kháng tải phải lớn hơn 3000 nhƣng phải nhỏ hơn 7000 .
- ộ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối
tiếp RS-232 không vƣợt quá 15m nếu không sử dụng modem.
- Các giá trị tốc độ truyền dữ liệu chuẩn: 50, 75, 110, 750, 300, 600, 1200,
2400, 4800, 9600, 19200, 28800, 38400, …, 56600, 115200bps.
2.1.2. Các mức điện áp thƣờng truyền
RS-232 sử dụng phƣơng thức truyền thông không đối xứng, tức là sử dụng tín
hiệu điện áp chênh lệch giữa một dây dẫn v đất. Do đó ngay từ lúc mới ra đời nó đã
mang vẻ lỗi thời của chuẩn TTL, nó vẫn sử dụng các mức điện áp tƣơng thích TTL để
mô tả các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở
kháng tải và các trở kháng ra của bộ phát.
Hình 2.1 : Mức giới hạn điện áp trong chuẩn RS-232
13
Mức điện áp của tiêu chuẩn RS-232 (chuẩn thƣờng đƣợc dùng bây giờ) đƣợc
mô tả nhƣ sau:
- Mức logic 0: +3V, +12V.
- Mức logic 1: -12V, -3V.
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến.
Chính vì từ -3V tới 3V là phạm vi không đƣợc định nghĩa, trong trƣờng hợp thay đổi
giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vƣợt qua quãng
quá độ trong một thời gian ngắn hợp lý. iều này dẫn tới việc phải hạn chế về điện
dung của các thiết bị tham gia và của cả đƣờng truyền. Tốc độ truyền dẫn tối đa phụ
thuộc vào chiều dài của dây dẫn. a số các hệ thống hiện nay chỉ hỗ trợ với tốc độ
19,2kbit/s [2, 3].
2.1.3. Cổng RS-232 trên PC
Chức năng của các chân :
- Chân 1 : data carier detect (DCD) là chân phát tín hiệu mang dữ liệu.
- Chân 2 : Receive data (RxD) là chân nhận dữ liệu.
- Chân 3 : Transmit Data (TxD) là chân truyền dữ liệu.
- hân 4 : Data Termial Ready (DTR) l chân đầu cuối dữ liệu sẵn s ng đƣợc
kích hoạt bởi bộ phận khi muốn truyền dữ liệu.
- Chân 5 : Signal Ground (SG) chân mass của tín hiệu
- Chân 6: Data set ready (DSR) chân dữ liệu sẵn s ng, đƣợc kích hoạt bởi bộ
truyền khi nó sẵn sàng nhận dữ liệu.
- Chân 7: Request to send chân yêu cầu gửi, bộ truyền đặt đƣờng này lên mức
kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu.
- Chân 9: Ring Indicate (RI) báo chuông cho biết là bộ phận đang nhận tín hiệu
rung chuông.
Hình 2.2: Cổng RS-232 trên PC
2.1.4. Truyền dữ liệu
2.1.4.1. Quá trình truyền dữ liệu.
Truyền dữ liệu qua cổng nối tiếp RS-232 đƣợc thực hiện không đồng bộ. Do
vậy nên tại một thời điểm chỉ có một bit đƣợc truyền. Bộ truyền gửi một bit bắt đầu
(bit start) để thông báo cho bộ nhận biết một ký tự sẽ đƣợc gửi đến trong lần truyền bit
tiếp theo. Bit này luôn bắt đầu bằng mức 0. Tiếp theo đó l các bit dữ liệu (bit data)
đƣợc gửi dƣới dạng mã ASCII (có thể là 5,6,7, hay 8 bit dữ liệu) sau đó l một Parity
bit (kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng( bit stop) có thể là 1 hay
2 bit dừng [2].
14
2.1.4.2. Tốc độ baud
ây là một tham số đặc trƣng của RS-232. Tham số n y chính l đặc trƣng cho
quá trình truyền dữ liệu qua cổng nối tiếp RS-232 là tốc độ truyền nhận dữ liệu hay
còn gọi là tốc độ bit. Tốc độ bit đƣợc định nghĩa l số bit truyền đƣợc trong thời gian 1
giây. Tốc độ bit này phải đƣợc thiết lập ở bên phát và bên nhận đều phải có tốc độ nhƣ
nhau ( tốc độ giữa vi điều khiển và máy tính phải chung nhau một tốc độ truyền bit).
Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ baud. Tốc độ baud
liên quan đến tốc độ mà phần tử mã hóa dữ liệu đƣợc sử dụng để diễn tả bit đƣợc
truyền còn tốc độ bit thì phản ánh tốc độ mà phần tử mã hóa dữ liệu đƣợc sử dụng để
diễn tả bit đƣợc truyền. Khi một phần tử mã hóa một bit dữ liệu thì hai tốc độ bit và
tốc độ baud là phải đồng nhất.
Một số tốc độ baud thƣờng dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,
9600, 19200, 28800, 38400, 56000, 115200. Trong thiết bị thƣờng dùng tốc độ baud là
19200.
Khi sử dụng chuẩn nối tiếp RS-232 thì yêu cầu khi sử dụng chuẩn là thời gian
chuyển mức logic không vƣợt qua 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit
càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải
nhỏ. iều này làm giới hạn tốc độ baud và khoảng cách truyền.
2.1.4.3. Bit chẵn lẻ hay Parity bit
ây l bit kiểm tra lỗi tr n đƣờng truyền. Thực chất của quá trình kiểm tra lỗi
khi truyền dữ liệu là bổ sung thêm dữ liệu đƣợc truyền để tìm ra hoặc sửa một số lỗi
trong quá trình truyền. Do đó trong chuẩn RS-232 sử dụng một kỹ thuật kiểm tra chẵn
lẻ. Một bit chẵn lẻ đƣợc bổ sung vào dữ liệu đƣợc truyền để thấy số lƣợng các bit “1”
đƣợc gửi trong một khung truyền là chẵn hay lẻ.
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi nhƣ l 1, 3, 5, 7, 9… Nếu nhƣ
một bit mắc lỗi thì bit Parity bit sẽ trùng giá trị với trƣờng hợp không mắc lỗi vì thế
không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi n y không đƣợc sử dụng trong
trƣờng hợp có khả năng một vài bit bị mắc lỗi.
2.1.5. Mạch giao tiếp RS-232 dùng IC max232
Hình 2.3: Mạch giao tiếp RS-232 dùng IC Max232
U6
MAX232
C1+
1
C1-
3
C2+
4
C2-
5
VCC
16
GND
15
V+
2
V-
6
R1OUT
12
R2OUT
9
T1IN
11
T2IN
10
R1IN
13
R2IN
8
T1OUT
14
T2OUT
7
C1
1µF/25V
C2
1µF/25V
C3
1µF/25V
C4
1µF/25V
C5
1µF/25V
P2
Toi PC(Female)
5
9
4
8
3
7
2
6
1
VCC
TxD
RxD
15
2.2. Chuẩn RS-422/RS-485
RS-422 và RS-485 l các t n thƣờng gọi cho 2 chuẩn truyền thông nối tiếp. Các
chuẩn n y đƣợc quy ƣớc bởi Hiệp hội điện tử công nghiệp EIA (Electronics Industry
Association) tên chính xác của các chuẩn này là EIA/TIA-422 và EIA/TIA-485.
Các hệ thống truyền thông dựa trên RS-422 và RS-485 truyền các thông tin số
trên cặp dây xoắn đôi từ các bộ phát tới các bộ thu. Các thiết bị có thể truyền nhận
trong khoảng cách lên tới 4000 feet (1220 mét) khi không có bộ lặp. Các bộ truyền
RS-422 có thể truyền tới 10 bộ nhận. Trong RS-485 32 bộ truyền cũng có thể dùng
chung 1 đƣờng truyền. Tốc độ truyền tối đa của các hệ thống RS-422/RS-485 có thể
lên tới 10 Mbit/s. Cả hai hệ thống đều dùng lối ra cân bằng và lối vào vi sai vì thế cho
khả năng chống nhiễu tốt hơn so với chuẩn RS-232. Kết quả là chúng có khả năng
truyền xa hơn v tốc độ truyền cao hơn so với chuẩn RS-232 [4, 6].
RS-422 là một lựa chọn tốt để mở rộng khoảng cách và tốc độ của các kết nối
điểm-điểm. Trong các trƣờng hợp dữ liệu phải truyền qua một khoảng cách lớn v đi
qua các vùng có nhiễu điện từ thì RS-422 có thể thay thế cho RS-232 với độ tin cậy
cao.
Hình 2.4: Liên kết RS-422 điểm-điểm
RS-422 cũng có thể tạo ra liên kết điểm-đa điểm. Trong liên kết này, Master có
thể truyền dữ liệu tới tất cả các Slave. Tuy nhi n để master có thể nhận dữ liệu trả lời
của chỉ một slave trong một thời điểm thì phải sử dụng RS-485.
RS-485 có thể đƣợc dùng trong các hệ thống mạng 2 dây hoặc 4 dây. Khả năng
điều khiển đƣờng truyền 3 trạng thái của các bộ truyền RS-485 cho phép nhiều bộ
truyền đƣợc kết nối tới một đôi dây theo cấu hình bus (truyền/nhận tr n cùng 1 đôi
dây). Với hệ thống 4 dây, bộ truyền của master đƣợc kết nối tới tất cả các slave nhận
tr n 1 đôi dây và tất cả các slave truyền đƣợc kết nối với master nhận tr n đôi dây còn
lại [4].
RS-485 đƣợc sử dụng rộng rãi trong các hệ thống truyền thông công nghiệp.
Các hệ thống truyền thông công nghiệp nhƣ PROFIBUS, INTERBUS, v các hệ
thống khác đƣợc xây dựng dựa trên công nghệ RS-485.
Các chuẩn EIA/TIA-422 và EIA/TIA-485 không quy định các giao thức. Chúng
chỉ đơn giản là các chuẩn của lớp vật lý. ó nghĩa l RS-422 và RS-485 có thể đƣợc
áp dụng trong nhiều hệ thống và ứng dụng khác nhau. Thƣờng thì các chuẩn n y đƣợc
dùng cho các liên kết nối tiếp. Các hệ thống sử dụng giao thức MODBUS thƣờng đƣợc
sử dụng trong các mạng đa điểm RS-485 [4, 5].
16
2.2.1. Cấu hình mạng 2-dây RS-485
Hình 2.5: Cấu hình mạng 2-dây RS-485
ƣờng truyền ba trạng thái của RS-485 cho phép truyền và nhận tín hiệu bán
song công trên cùng một đôi dây, đây còn đƣợc gọi là cấu hình 2-dây, ngoài ra một
dây đất phải đƣợc th m v o để nối đất chung các trạm thu phát [4].
2.2.2. Cấu hình mạng 4-dây RS-485
ũng giống nhƣ hệ thống mạng 2-dây, cái t n “4-dây” đôi khi gây nhầm lẫn.
Trong thực tế hệ thống 4-dây phải sử dụng tới 5 dây để đảm bảo độ tin cậy.
ặc trƣng cho hệ thống 4-dây là việc thực thi giao thức master-slave. Trong
trƣờng hợp này bộ truyền của master đƣợc nối với đôi dây của tất cả các bộ nhận của
các slave. ôi dây còn lại nối tất cả các bộ truyền của slave với bộ nhận của master.
Dây thứ 5 là dây tín hiệu nối đất chung, nó nối tới tất cả các nút để đảm bảo VCM nằm
trong giới hạn cho phép [4].
Hình 2.6: Cấu hình mạng 4-dây RS-485
17
2.2.3. Kết thúc cáp
Kết thúc cáp đƣợc dùng để phối hợp trở kháng giữa các nút với trở kháng của
đƣờng truyền. Các tín hiệu số liệu truyền tr n đƣờng dây với tốc độ thấp hơn một chút
so với tốc độ ánh sáng []. Khi các tín hiệu này tới điểm cuối của đƣờng truyền , nếu
đƣờng truyền không có kết thúc cáp với trở kháng bằng trở kháng đƣờng truyền thì tín
hiệu đƣợc truyền sẽ không đƣợc bảo toàn vì một phần tín hiệu sẽ phản xạ ngƣợc trở lại
đƣờng truyền. Các tín hiệu phản xạ sẽ gây nhiễu cho tín hiệu thật và có thể gây ra lỗi,
do đó cần phải hạn chế thấp nhất các tín hiệu phản xạ.
Trong thực tế thƣờng sử dụng giải pháp thêm vào một điện trở song song nối
giữa 2 đầu đƣờng truyền A và B của bộ thu để phối hợp trở kháng với cáp truyền. Giá
trị n y đƣợc quy định bởi nhà máy sản xuất cáp (120Ω l giá trị quy ƣớc chung). Giá
trị n y đặc trƣng cho trở kháng thực tế của đƣờng truyền và nó không phải là hàm của
độ d i đƣờng truyền. Không n n dùng điện trở kết thúc cáp bé hơn 90Ω [4, 5].
Hình 2.6: Đường truyền với kết thúc cáp
2.2.4. ịnh thiên trong mạng RS-485
Khi một mạng RS-485 ở trạng thái rỗi (không có dữ liệu tr n đƣờng truyền) tất
cả các bộ phát RS-485 ở trạng thái thụ động, các bộ phát ở trạng thái trở kháng cao.
Các bộ thu đƣợc kích hoạt để nghe ngóng dữ liệu tiếp theo. Trong suốt thời gian này
đƣờng truyền phải đƣợc cấu hình ở trạng thái rỗi (mặt nạ logic 1, VAB>200mV) vì thế
khi một bộ phát muốn khởi tạo việc gửi dữ liệu nối tiếp thì trƣớc tiên phải truyền bit
start bằng cách kéo đƣờng truyền từ mức logic 1 về mức logic 0.
Tuy nhiên, vì tất cả các bộ phát đều đang ở trạng thái trở kháng cao vì vậy
không có gì để giữ đƣờng truyền trong trạng thái rỗi vì không có bộ phát n o đang
hoạt động trên mạng. ƣờng truyền bị rơi v o trạng thái bất định. Nếu VAB<-200mV
thì mức logic không đƣợc xác định (mặc nhi n đầu ra của các bộ nhận sẽ ấn định giá
trị của bit cuối cùng đã nhận) [4, 6].
ể có thể duy trì đƣờng truyền ở trạng thái rỗi, các điện trở định thiên phải
đƣợc thêm vào ở các đầu ra để khống chế điện áp tr n đƣờng truyền trong trạng thái
rỗi. Giá trị của các điện trở định thiên không phụ thuộc v o điện trở kết thúc cáp và số
các nút trên mạng. Mục đích của nó là tạo ra dòng điện một chiều đủ lớn trong mạng
để duy trì điện áp trên toàn bộ đƣờng dây (khi các bộ phát không hoạt động) nghĩa l
nó sẽ tạo ra một mặt nạ, hay tạo ra trạng thái logic 1.Chuẩn EIA/TIA-485 quy định
mặt nạ phải tạo ra điện áp tr n đƣờng truyền lớn hơn -200mV(VAB).
ác điện trở định thiên có thể đƣợc gắn ở bất cứ nơi n o tr n mạng hoặc có thể
đƣợc chia ra và gắn ở nhiều nút. Trong thực tế thì điện trở định thiên là tổng trở mắc
song song của tất cả các điện trở định thiên trong hệ thống.
18
Hình 2.7: Mạng RS-485 với hai điện trở 120Ω kết thúc cáp
Giả sử một hệ thống có 10 bộ thu phát RS-485 đƣợc nối với nhau theo mạng
hình bus (daisy-chain network). Hai điện trở kết thúc cáp 120Ω đƣợc nối vào tại hai
điểm kết thúc của mạng. Mỗi nút có 2 điện trở định thi n 4.7kΩ, một điện trở kéo lên
và một điện trở kéo xuống.
Mỗi nút RS-485 có trở kháng tải đầu vào là 12K Ω. Nhƣ vậy 10 nút nối song
song có tổng trở là 1200 Ω. Hai điện trở kết thúc cáp 120 Ω cho tổng trở là 60 Ω. Kết
qua là tổng trở kháng tải mà tín hiệu truyền qua l ≈ 57 Ω.
Mƣời nút mạng, mỗi nút có các điện trở định thiên là 4.7k Ω (một điện trở kéo
l n v 1 điện trở kéo xuống) thì tổng trở định thiên là 470 Ω điện trở kéo lên và 470 Ω
điện trở kéo xuống. Nhƣ vậy tổng trở tính từ 5V tới đất là 470 Ω + 57 Ω + 470 Ω =
997 Ω. Suy ra dòng qua các phân áp n y l 5V/997 Ω ≈ 5m [4].
Do đó điện áp tạo ra tr n đƣờng truyền là VAB = 5mA x 57 Ω = -285mV cao
hơn mức tiêu chuẩn thấp nhất là -200mV (tiêu chuẩn quy định VAB phải lớn hơn -
200mV) [4, 6].
Cần lƣu ý rằng dòng điện có quan hệ mật thiết với các điện trở kết thúc cáp và
các điện trở kết thúc cáp là các tải chính. Việc th m v o các nút có các điện trở định
thiên sẽ l m tăng điện áp của đƣờng truyền ở trạng thái rỗi nhƣng dòng ti u thụ cũng
19
tăng theo. Việc giảm các nút lại làm cho điện áp đƣờng truyền ở trạng thái rỗi giảm đi
và có thể không đủ (dƣới 200mV), vì thế cần phải tính toán các giá trị n y để hệ thống
hoạt động tin cậy.
2.3. Giao thức MODBUS
2.3.1. MODBUS là gì?
MODBUS do Modicon (hiện nay thuộc Schneider Electric) phát triển năm
1979, là một phƣơng tiện truyền thông với nhiều thiết bị thông qua một cặp dây xoắn
đơn. Ban đầu, nó hoạt động trên RS-232, nhƣng sau đó nó sử dụng cho cả RS-485 để
đạt tốc độ cao hơn, khoảng cách d i hơn v nhiều slave trên một bus truyền.
MODBUS đã nhanh chóng trở thành tiêu chuẩn thông dụng trong ngành tự động hóa.
MODBUS là một hệ thống “master - slave”, master đƣợc kết nối với một hay
nhiều slave. Master thƣờng là một PLC, PC, DCS, hay RTU. Slave MODBUS RTU
thƣờng là các thiết bị hiện trƣờng. Khi một master MODBUS RTU muốn có thông tin
từ thiết bị slave, master sẽ gửi một thông điệp về dữ liệu cần, tóm tắt dò lỗi tới địa chỉ
thiết bị slave. Mọi thiết bị khác trên mạng sẽ nhận thông điệp n y nhƣng chỉ có thiết bị
n o đƣợc chỉ định mới có phản ứng. Các thiết bị slave trên mạng MODBUS không thể
tạo ra kết nối, chúng chỉ có thể phản ứng. Nói cách khác, slave sẽ gửi data về cho
master chỉ khi master có yêu cầu.
Ba phiên bản MODBUS phổ biến nhất đƣợc sử dụng ngày nay là:
- MODBUS ASCII.
- MODBUS RTU.
- MODBUS/TCP.
Tất cả thông điệp đƣợc gửi dƣới cùng một format. Sự khác nhau duy nhất giữa 3
loại MODBUS là cách thức thông điệp đƣợc mã hóa. Với MODBUS ASCII, mọi
thông điệp đƣợc mã hóa bằng hexadecimal, sử dụng đặc tính S II 4 bit. ối với mỗi
một byte thông tin, cần có 2 byte truyền thông, gấp đôi so với MODBUS RTU hay
MODBUS/TCP. MODBUS ASCII chậm nhất trong 3 giao thức tr n, nhƣng lại thích
hợp với modem điện thoại hay kết nối sử dụng sóng radio do ASCII sử dụng các tính
năng phân định thông điệp. Do tính năng phân định này, mọi rắc rối trong phƣơng tiện
truyền dẫn sẽ không làm thiết bị nhận dịch sai thông tin. iều này quan trọng khi đề
cập đến các modem chậm, điện thoại di động, kết nối ồn hay các phƣơng tiện truyền
thông khó tính khác. ối với MODBUS-RTU, dữ liệu đƣợc mã hóa theo hệ nhị phân
và chỉ cần một byte truyền thông cho một byte dữ liệu. ây l thiết bị lí tƣởng đối với
RS-232 hay mạng RS-485 đa điểm, tốc độ baud từ 1200 đến 115.200. Tốc độ baud
phổ biến nhất l 9600 đến 19200. MODBUS-RTU là giao thức công nghiệp đƣợc sử
dụng rộng rãi nhất. MODBUS/T P đơn giản là MODBUS qua Ethernet. Thiết bị
Master không kết nối trực tiếp với các thiết bị slave, thay v o đó các địa chỉ IP đƣợc
sử dụng. Với MODBUS/TCP, dữ liệu MODBUS đƣợc tóm lƣợc đơn giản trong một
gói T P/IP. Do đó, bất cứ mạng Ethernet hỗ trợ MODBUS/IP sẽ có hỗ trợ
MODBUS/TCP.
2.3.2. Nguyên tắc hoạt động của MODBUS
MOSBUS sử dụng giao thức master-slave. Tại một thời điểm chỉ có một master
đƣợc kết nối với bus và một hoặc vài slave (tối đa l 247 slave) cùng kết nối tới đƣờng
truyền nối tiếp. Chỉ master mới có quyền gửi yêu cầu, các slave không đƣợc truyền dữ
20
liệu nếu không nhận đƣợc yêu cầu từ master. Các slave không đƣợc giao tiếp với nhau.
Tại một thời điểm master chỉ giao khởi tạo giao tiếp với 1 slave [7, 8].
Khung bản tin của mạng Modbus chuẩn gồm 4 trƣờng chính theo thứ tự:
Trƣờng địa chỉ, trƣờng mã h m, trƣờng dữ liệu, trƣờng kiểm tra lỗi. Master gửi bản tin
có trƣờng địa chỉ nằm đầu ti n, địa chỉ này chỉ tới thiết bị cần ra yêu cầu. Slave sẽ
kiểm tra bus liên tục đến khi nhận đƣợc địa chỉ của mình. Lúc này slave sẽ kiểm tra
mã h m để xem yêu cầu cần thực hiện, ngoài ra còn có thông tin bổ trợ để thực hiện
yêu cầu đó trong trƣờng dữ liệu. Cuối cùng là thông tin về lỗi trong trƣờng kiểm tra lỗi
để xem bản tin nhận đƣợc có chính xác không.
- Hai thành phần chính của giao thức Modbus l trƣờng dữ liệu v trƣờng mã
hàm, hai thành phần còn lại sẽ bỏ đi khi truyền trong mạng cấp cao hơn.
Hình 2.8: Khung Modbus trên đường truyền nối tiếp
ADU: Applicantion Data Unit
PDU: Protocol Data Unit
- Kích thƣớc lớn nhất có thể có thể truyền tr n đƣờng truyền RS-485 là 256
byte tƣơng ứng với lớp DU. Do đó lớp PDU có tối đa:
256-1 byte địa chỉ - 2 byte kiểm tra lỗi = 253 byte [7].
Nếu phát hiện lỗi trong bản tin, bên nhận sẽ dừng truyền. Quá một thời gian
trễn n o đó (time out), master sẽ coi là có lỗi và quyết định h nh động phù hợp. Trong
trƣờng hợp đặc biệt, slave nhận đƣợc thông báo không lỗi nhƣng vì một lý do khác, nó
không thể thực hiện đƣợc yêu cầu, một thông báo theo kiểu “exception response” sẽ
đƣợc tạo ra và gửi cho master để master định đoạt h nh động tiếp theo.
Master có thể gửi yêu cầu tới riêng một slave n o đó bằng cách đƣa địa chỉ
slave đó v o trƣờng địa chỉ hoặc gửi bản tin quảng bá tới tất cả các slave (đƣa giá trị 0
v o trƣờng địa chỉ), lúc này slave sẽ không gửi bản tin trả lời.
Có hai kiểu định dạng khung bản tin khác nhau: ASCII và RTU, mỗi kiểu có ƣu
điểm riêng. Hai kiểu này chỉ dùng với mạng modbus chuẩn.
Chế độ ASCII
Khi các thiết bị trong một mạng Modbus chuẩn giao tiếp với chế độ ASCII
(American Standard Code for Information Interchange), mỗi byte trong thông báo
đƣợc gửi thành hai ký tự S II 7 bit, trong đó mỗi ký tự biểu diễn một chữ số hex. Ƣu
điểm của chế độ truyền này là nó cho phép một khoảng thời gian trống tối đa một giây
giữa hai ký tự mà không gây ra lỗi. Cấu trúc của một ký tự khung gửi đi đƣợc thể hiện
nhƣ hình 2.9.
Mỗi ký tự khung bao gồm:
 1 bit khởi đầu (start bit).
 7 bit biểu diễn một chữ số hex của byte cần gửi dƣới dạng ký tự ASCII
(0 -9 và A – F), trong đó bit thấp nhất đƣợc gửi đi trƣớc.
21
 1 bit parity chẵn/lẻ, nếu sử dụng parity.
 1 bit kết thúc (stop bit) nếu sử dụng parity hoặc 2 bit kết thúc nếu không
sử dụng parity.
Hình 2.9: Cấu trúc khung ký tự ASCII
Chế độ RTU
Khi các thiết bị trong một mạng Modbus chuẩn đƣợc đặt chế độ RTU, mỗi byte
trong thông báo đƣợc gửi thành một ký tự 8 bit. Ƣu điểm lớn nhất của chế độ truyền
này so với chế độ ASCII là hiệu suất cao hơn. Tuy nhi n, mỗi thông báo phải đƣợc
truyền thành một dòng liên tục. Cấu trúc một ký tự khung gửi đi đƣợc thể hiện nhƣ
hình 2.10.
Hình 2.10: Cấu trúc khung ký tự RTU
Mỗi ký tự khung bao gồm:
 1 bit khởi đầu (start bit).
 8 bit của byte thông báo cần gửi, trong đó bit thấp nhất đƣợc gửi đi
trƣớc.
 1 bit parity chẵn/lẻ nếu sử dụng parity.
 1 bit kết thúc (stop bit) nếu sử dụng parity hoặc 2 bit kết thúc nếu không
sử dụng parity).
2.3.3. ơ đồ trạng thái của Modbus
ơ đồ trạng thái master:
- Trạng thái “idle” = không có y u cầu cần xử lý. ây l trạng thái khởi tạo sau
khi bật nguồn. Một yêu cầu chỉ có thể đƣợc gửi đi trong trạng thái “idle”. Sau
khi gửi yêu cầu, master rời khỏi trạng thái “idle” v không đƣợc gửi yêu cầu
thứ 2 tại thời điểm này.
- Khi một yêu cầu ở chế độ unicast đƣợc gửi tới 1 slave, master chuyển tới trạng
thái “Waiting for reply” v một “Respone Time-out” bắt đầu chạy. iều này
tránh cho master rơi v o tình trạng chờ đợi trả lời vô thời hạn trong trạng thái
“Waiting for reply”. Giá trị của Time-out tùy thuộc vào từng ứng dụng.
22
- Khi nhận đƣợc trả lời, master kiểm tra trả lời trƣớc khi xử lý dữ liệu. Việc kiểm
tra có thể phát hiện ra lỗi, hoặc lỗi khung dữ liệu nhận, đây l tình huống không
mong đợi. Trong trƣờng hợp này có thể yêu cầu gửi lại.
- Nếu không nhận đƣợc trả lời, thì khi hết thời gian time-out, một lỗi có thể đƣợc
tạo ra, sau đó master trở về trạng thái “idle”. Master có thể yêu cầu gửi lại. Số
lần yêu cầu gửi lại phụ thuộc vào việc thiết lập master.
Hình 2.11: Sơ đồ trạng thái của master
- Khi một yêu cầu quảng bá (broadcast) đƣợc master gửi lên bus nối tiếp thì
không có các đáp ứng từ các slave. Tuy nhiên master cần duy trì thời gian trên
để các slave có thời gian xử lý trƣớc khi gửi 1 yêu cầu mới. Trễ n y đƣợc gọi là
“Turnaround delay” vì vậy master đi v o trạng thái “Waiting Turnaroud delay”
trƣớc khi trở về trạng thái “idle” v trƣớc khi có thể gửi một yêu cầu mới.
- Trong chế độ unicast time-out phải đƣợc đặt đủ d i để slave đủ thời gian nhận
và xử lý yêu cầu vì thế Turnaround delay phải ngắn hơn tim-out. Time-out từ 1
giây tới vài giây tại tốc đôk 9600bps bsg Turnaround delay khoảng từ 100ms
đến 200ms.
- Lỗi khung bao gồm: 1. Lỗi khi kiểm tra bit Parity, 2. Lỗi khi kiểm tra các bit dƣ
đƣợc thêm vào [7].
ơ đồ trạng thái slave
Hình 2.12: Sơ đồ trạng thái của slave
23
- Trạng thái “idle” = không có y u cầu cần xử lý. ây l trạng thái khởi tạo sau
khi bật nguồn.
- Khi nhận đƣợc 1 yêu cầu, slave kiểm tra gói trƣớc khi thực hiện h nh động
đƣợc yêu cầu trong gói. Các lỗi có thể xảy ra là: lỗi format trong yêu cầu, sai hành
động, … trong trƣờng hợp lỗi, một đáp ứng cần phải đƣợc đƣợc gửi tới master.
- Khi hoàn tất h nh động yêu cầu, một bản tin unicast phải đƣợc định dạng và
gửi tới master.
- Nếu slave phát hiện ra lỗi trong khung nhận, thì sẽ không có đáp ứng trở lại
master [7].
2.4. Kỹ thuật CRC
CRC (Cyclic Redundancy Check) là một phƣơng pháp để phát hiện lỗi bằng
cách gắn thêm một khối bit phía sau khối dữ liệu. CRC là một kỹ thuật mạnh để phát
hiện lỗi, vì vậy nó đƣợc dùng rộng rãi trong mọi hệ thống giao tiếp dữ liệu. Các bit bổ
sung thêm vào các bit thông tin đƣợc gọi là các bit CRC. Những bit này có thể là 16
hoặc 32. Nếu các bit bổ sung là 16, R đƣợc biểu diễn nhƣ R -16. CRC-32 sử
dụng 32 bit bổ sung. ó l những tiêu chuẩn quốc tế cho việc tính toán của CRC-16 và
CRC-32.
Việc nhận lỗi sử dụng CRC là rất đơn giản. Ở bên truyền, R đƣợc thêm vào
các bit thông tin. Khi việc nhận kết thúc, bên nhận tính toán CRC từ những bit thông
tin và nếu CRC tích hợp CRC nhận, vậy thì bên nhận biết đƣợc những bit thông tin là
đúng. R -16 và CRC-32 là hai thuật toán tiêu chuẩn đƣợc sử dụng để tính chu kỳ
kiểm tra dƣ thừa. Các bit CRC bổ sung (16 v 32) đƣợc nối thêm vào các bit thông tin
ở bên phát. Tại phía thu, các CRC nhận đƣợc so sánh với ƣớc tính. Nếu phù hợp, các
bit thông tin đƣợc coi l đã nhận đƣợc một cách chính xác. Nếu không phù hợp, nó cho
thấy rằng có những sai sót trong các bit thông tin.
2.3.1. Lý thuyết CRC
Một xâu bít bất kỳ đƣợc xem nhƣ một tập các hệ số (0 và 1) của một đa thức đại
số. Nếu xâu gồm k bít thì đa thức tƣơng ứng sẽ có bậc là k-1 gồm các số hạng từ x0
đến xk-1.
Ví dụ: 110001 x5 + x4 + x0 = x5 + x4 + 1
Phƣơng pháp R sẽ xây dựng một xâu các bít kiểm tra và ghép vào xâu bít cần
truyền, đƣợc gọi l dãy hecksum. Dãy hecksum đƣợc xây dựng nhƣ sau:
- Chọn trƣớc một đa thức gọi l đa thức sinh G(x)
- hecksum đƣợc tìm thoả mãn điều kiện đa thức tƣơng ứng với xâu ghép gồm xâu
gốc và checksum phải chia hết (Modulo 2) cho G(x).
- Khi nhận đƣợc xâu bít, để kiểm soát lỗi lấy đa thức nhận đƣợc chia (Modulo 2) cho
đa thức sinh G(x). Nếu không chia hết thì chắc chắn có lỗi, trƣờng hợp ngƣợc lại chƣa
khẳng định là không có lỗi.
2.3.2. Thuật toán CRC
Giả sử đa thức sinh đƣợc chọn là G(x) có bậc là r xâu bít cần truyền tƣơng ứng với đa
thức M(x) có bậc m .
24
ác bƣớc để xây dựng dãy hecksum nhƣ sau:
- Thêm r bits 0 vào cuối xâu bits cần truyền xâu ghép sẽ gồm đƣợc tìm thoả mãn điều
kiện đa thức tƣơng ứng với xâu ghép gồm (m + r) bits tƣơng ứng với đa thức xr M(x).
- hia Modulo 2 xâu bits tƣơng ứng xr M(x) cho xâu bits tƣơng ứng với G(x).
- Lấy số bị chia ở bƣớc trên trừ đi Modulo 2 cho số d.
Kết quả sẽ l xâu bít đƣợc truyền đi ( xâu gốc ghép với Checksum). Ký hiệu đa thức
tƣơng ứng cho xâu đó l P(x). Rõ r ng P(x) chia hết cho G(x). Khi nhận, giả sử xâu
bits nhận đƣợc có đa thức tƣơng ứng là Q(x) chia modulo 2 cho G(x). Giả thiết rằng
Q(x) = P(x) + E(x), trong đó E(x) đƣợc gọi là đa thức lỗi.
Ví dụ: Giả sử xâu gốc là 1101011011 suy ra M(x) = x9 + x8 + x6 + x4 + x3 + x + 1
có bậc m = 9; Chọn 10011 tƣơng ứng G(x)= x4 + x + 1 (r=4).
- Bƣớc1. Xâu gốc ghép 4 bits 0 ta đƣợc 11010110110000.
- Bƣớc 2. Chia modulo 2
11010110110000 /(modulo2) 10011 ta đƣợc thƣơng l 1100001010 v phần dƣ l
1110.
- Bƣớc 3. Xâu cần truyền là
11010110110000 - (modulo2) 1110 = 11010110111110 l P(x). Theo phƣơng pháp
này việc lựa chọn đa thức sinh chuẩn G(x) sẽ giúp cho việc phát hiện lỗi rất hiệu quả.
Hiện nay ngƣời ta xây dựng 3 đa thức sinh chuẩn quốc tế:
CRC – 12 = x12 + x11 + x3 + x2 + x + 1
CRC – 16 = x16 + x15 + x2 + 1
CRC – CCITT = x16 + x12 + x5 + 1
25
hƣơng 3 CÁC LINH KIỆN CHÍNH S DỤNG
3.1. ATmega128
3.1.1. Giới thiệu về ATmega128
Vi điều khiển AVR do hãng Atmel (Hoa Kì) sản xuất đƣợc gới thiệu lần đầu
năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR (nhƣ T tiny
13, Ttiny 22…) có kích thƣớc bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR
(chẳn hạn AT90S8535, AT90S8515…) có kích thƣớc bộ nhớ vào loại trung bình và
mạnh hơn l dòng Mega (nhƣ Tmega32, ATmega128…) với bộ nhớ có kích thƣớc
v i Kbyte đến vài trăm Kb cùng với các bộ ngoại vi đa dạng đƣợc tích hợp trên chip,
cũng có dòng tích hợp cả bộ LCD trên chip (dòng LCD AVR). Tốc độ của dòng Mega
cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản giữa các dòng chình là cấu
trúc ngoại vi, còn nhân thì vẫn nhƣ nhau. ặt biệt, năm 2008, tmel lại tiếp tục cho ra
đời dòng AVR mới là XmegaAVR, với những tính năng mạnh mẽ chƣa từng có ở các
dòng VR trƣớc đó. ó thể nói XmegaAVR là dòng MCU 8 bit mạnh mẽ nhất hiện
nay.
Những Tính Năng hính ủa ATmega128:
- L dòng dòng VR 8 bit có hiệu năng cao, công suất ti u thụ thấp
- ó ki n trúc RIS cải tiến
+ Tập lệnh đầy đủ với 133 lệnh, hầu hết các lệnh chỉ thực hiện trong một chu kỳ
xung nhịp đồng hồ.
- 32x8 thanh ghi gồm các thanh ghi mục đích chung v các thanh ghi điều khiển
ngoại vi.
- ROM : 128 Kbytes
- SRAM: 4Kbytes
- EEPROM : 4Kbytes
- 64 thanh ghi I/O
- 160 thanh ghi v o ra mở rộng
- 32 thanh ghi đa mục đích.
- 2 bộ định thời 8 bit (0,2).
- 2 bộ định thời 16 bit (1,3).
- Bộ định thời watchdog
- Bộ dao động nội R tần số 1 MHz, 2 MHz, 4 MHz, 8 MHz
- D 8 k nh với độ phân giải 10 bit (Ở dòng Xmega l n tới 12 bit )
- 2 kênh PWM 8 bit
- 6 k nh PWM có thể lập trình thay đổi độ phân giải từ 2 tới 16 bit
- Bộ so sánh tƣơng tự có thể lựa chọn ngõ v o
- Hai khối US RT lập trình đƣợc
- Khối truyền nhận nối tiếp SPI
- Khối giao tiếp nối tiếp 2 dây TWI
- Hỗ trợ boot loader
- 6 chế độ tiết kiệm năng lƣợng
- Lựa chọn tần số hoạt động bằng phần mềm
- óng gói 64 chân kiểu TQFP.
- Tần số tối đa 16MHz
- iện thế : 4.5v - 5.5v
26
Hình 3.1: Bố trí chân của ATMEGA128
3.1.2. Cấu trúc bộ nhớ
Bộ nhớ vi điều khiển AVR có cấu trúc Harvard là cấu trúc có đƣờng Bus riêng
cho bộ nhớ chƣơng trình v bộ nhớ dữ liệu. Bộ nhớ VR đƣợc chia làm 2 phần chính:
Bộ nhớ chƣơng trình (program memory) và bộ nhớ dữ liệu (Data memory).
Bộ Nhớ hƣơng Trình : Bộ nhớ chƣơng trình của AVR là bộ nhớ Flash có dung lƣợng
128 K bytes. Bộ nhớ chƣơng trình có độ rộng bus là 16 bit. Những địa chỉ đầu tiên của
bộ nhớ chƣơng trình đƣợc dùng cho bảng véc tơ ngắt (xem chi tiết về bảng véc tơ ngắt
ở chƣơng 4). Cần để ý là ở vi điều khiển ATmega128 bộ nhớ chƣơng trình còn có thể
đƣợc chia làm 2 phần : phần boot loader (Boot loader program section) và phần ứng
dụng (Application program section). Phần boot loader chứa chƣơng trình boot loader.
hƣơng trình Boot loader là một phần mềm nhỏ nạp trong vi điều khiển v đƣợc chạy
lúc khởi động. Phần mềm này có thể tải vào trong vi điều khiển chƣơng trình của
ngƣời sử dụng v sau đó thực thi chƣơng trình n y. Mỗi khi reset vi điều khiển CPU sẽ
nhảy tới thực thi chƣơng trình boot loader trƣớc, chƣơng trình boot loader sẽ dò xem
có chƣơng trình n o cần nạp v o vi điều khiển hay không, nếu có chƣơng trình cần
nạp, boot loader sẽ nạp chƣơng trình v o vùng nhớ ứng dụng (Application program
section), rồi thực thi chƣơng trình n y. Ngƣợc lại, boot loader sẽ chuyển tới chƣơng
trình ứng dụng có sẵn trong vùng nhớ ứng dụng để thực thi chƣơng trình n y. Phần
ứng dụng (Application program section ) là vùng nhớ chứa chƣơng trình ứng dụng của
ngƣời dùng. Kích thƣớc của phần boot loader và phần ứng dụng có thể tùy chọn.
Bộ Nhớ Dữ Liệu : Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là bộ nhớ SRAM
và bộ nhớ EEPROM. Tuy cùng là bộ nhớ dữ liệu nhƣng hai bộ nhớ này lại tách
biệtnhau v đƣợc đánh địa chỉ riêng [10].
Bộ nhớ SRAM có dụng lƣợng 4 K bytes, Bộ nhớ SRAM có hai chế độ hoạt
động là chế độ thông thƣờng và chế độ tƣơng thích với ATmega103, muốn thiết lập bộ
27
nhớ SRAM hoạt động theo chế độ nào ta sử dụng bit cầu chì M103C (M103C fuse bit
(9)).
Bộ nhớ SRAM ở chế độ bình thƣờng : Ở chế độ bình thƣờng bộ nhớ SRAM
đƣợc chia thành 5 phần: Phần đầu là 32 thanh ghi chức năng chung (General Purpose
Register) R0 đến R31 có địa chỉ từ $0000 tới $001F. Phần thứ 2 là không gian nhớ vào
ra với 64 thanh ghi v o ra ( I/O Register ) có địa chỉ từ $0020 tới $005F. Phần thứ 3
dùng cho vùng nhớ dành cho các thanh ghi vào ra mở rộng ( Extended I/O Registers )
có địa chỉ từ $0060 tới $00FF. Phần thứ 4 là vùng SRAM nội với 4096 byte có địa chỉ
từ $0100 tới $10FF. Phần thứ 5 là vùng nhớ SRAM ngoài ( External SRAM ) bắt đầu
từ địa chỉ $1100, vùng SRAM mở rộng này có thể mở rộng l n đến 64 K byte. Khi nói
bộ nhớ SRAM có dung lƣợng 4 K byte là nói tới phần thứ 4 ( SRAM nội ). Nếu tính cả
các thanh ghi thì bộ nhớ SRAM trong chế độ bình thƣờng sẽ là 4.25 K byte = 4352
byte [10].
Bộ nhớ SRAM ở chế độ tƣơng thích mega103 Ở chế này bộ nhớ SRAM
cơ bản cũng giống ở chế độ bình thƣờng, ngoại trừ phần thứ 3 là vùng nhớ dành cho
các thanh ghi vào ra mở rộng không tồn tại, ngo i ra kích thƣớc của phần SRAM nội
(internal SRAM) chỉ có 4000 byte so với 4096 byte ở chế độ bình thƣờng. Hình 2.2 thể
hiện sơ đồbộ nhờ dữ liệu ở cả hai chế độ : Bình thƣờng v tƣơng thích Tmega103.
Từ hình 3.2 ta thấy nếu cấu hình để bộ nhớ SRAM hoạt động ở chế độ tƣơng thích
ATmega103 thì ta sẽ bị mất đi 160 thanh ghi v o ra mở rộng (extended I/O Register),
là những thanh ghi đóng vai trò quan trọng trong các chế độ hoạt động của vi điều
khiển [10].
Hình 3.2: Bản đồ bộ nhớ dữ liệu
A : Chế độ bình thường
B: Chế độ tương thích ATmega103
Bộ nhớ EEPROM : ây l bộ nhớ dữ liệu có thể ghi xóa ngay trong lúc vi
điều khiển đang hoạt động và không bị mất dữ liệu khi nguồn điện cung cấp bị cắt. Có
thể ví bộ nhớ dữ liệu EEPROM giống nhƣ l ổ cứng ( Hard disk ) của máy vi tính. Với
vi điều khiển ATmega128, bộ nhớ EEPROM có kích thƣớc là 4 Kbyte. EEPROM
28
đƣợc xem nhƣ l một bộ nhớ v o ra đƣợc đánh địa chỉ độc lập với SR M, điều này có
nghĩa l ta cần sử dụng các lệnh in, out … khi muốn truy xuất tới EEPROM.
3.1.3. Các cổng vào ra
Cổng vào ra là một trong số các phƣơng tiện để vi điều khiển giao tiếp với các
thiết bị ngoại vi. ATmega128 có cả thảy 7 cổng ( port ) vào ra 8 bit là : PortA, PortB,
Port , PortD, PortE, PortF, PortG, tƣơng ứng với 56 đƣờng vào ra. Các cổng vào ra
của AVR 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 (input ) hay hƣớng ra (output ). Tất các các cổng vào ra của VR điều có
tính năng ọc – Chỉnh sửa – Ghi ( Read – Modify – write ) khi sử dụng chúng nhƣ l
các cổng vào ra số thông thƣờng. iều n y có nghĩa l khi ta thay đổi hƣớng của một
chân n o đó thì nó không làm ảnh hƣởng tới hƣớng của các chân khác. Tất cả các chân
của các cổng ( port ) điều có điện trở kéo lên ( pull-up ) riêng, ta có thể cho phép hay
không cho phép điện trở kéo lên này hoạt động.
Khi khảo sát các cổng nhƣ l các cổng vào ra số thông thƣờng thì tính chất của
các cổng ( Port , PortB,…PortG ) l tƣơng tự nhau, nên ta chỉ cần khảo sát một cổng
n o đó trong số 7 cổng của vi điều khiển l đủ. Mỗi một cổng 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 để thay thế cho A,
B,…G ). Ba thanh ghi n y sẽ đƣợc phối hợp với nhau để điều khiển hoạt động của
cổng, chẳn hạn thiết lập cổng thành lối vào có sử dụng điện trở pull-up, ..v.v.. . Sau
đây l diễn tả cụ thể vai trò của 3 thanh ghi trên [10].
Thanh Ghi DDRx.
ây là thanh ghi 8 bit (có thể đọc ghi) có chức năng điều khiển hƣớng của cổng
(là lối ra hay lối vào). Khi một bit của thanh ghi n y đƣợ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. Lấy ví dụ: Khi ta set tất cả 8 bit
của thanh ghi DDR đều l 1, thì 8 chân tƣơng ứng của port l P 1, P 2, … P 7 (
tƣơng ứng với các chân số 50, 49, …44 của vi điều khiển ) đƣợc thiết lập thành ngõ ra.
Thanh Ghi PORTx.
PORTx là thanh ghi 8 bit có thể đọc ghi. â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, nói cách khác, khi ta 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
ghi th nh 1 thì điện trở treo (pull-up resistor) ở 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ở treo ở chân tƣơng ứng sẽ không
đƣợc kích hoạt, cổng ở trạng thái cao trở (Hi-Z).
29
Thanh ghi PORTA
Thanh Ghi PINx.
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 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 tƣơng ứng
đƣợc đọc. Vì thế đối với thanh ghi PINx ta chỉ có thể đọc mà không thể ghi. Bảng 25
thể hiện các các thiết lập cách hoạt có thể có của cổng.
3.1.4. Các bộ định thời của ATmega128
ATmega128 có 4 bộ định thời , bộ định thời 1 và 3 là bộ định thời 16 bit, bộ
định thời 0 và 2 là bộ định thời 8 bit. Bộ định thời 1 và 3 là bộ định thời 16 bit, bộ định
thời 1 sử dụng 13 thanh ghi liên quan, còn bộ định thời 3 sử dụng 11 thanh ghi liên
quan với nhiều chế độ thực thi khác nhau.Bộ định thời 1 và 3 hoạt động tƣơng đối
giống nhau một đểm cần để ý là trong các thanh ghi liên quan tới bộ định thời 1 và 3
thì có nhiều thanh ghi đƣợc chia sẻ cho cả hai bộ định thời, chẳn hạn thanh ghi ETIPR
có bít cuối là O F1 đƣợc dùng cho bộ định thời 1, các bit còn lại là dùng cho bộ
định thời 3. Thậm chí có những thanh ghi chia sẻ cho bộ định thời 0 hoặc 2, chẳn hạn
thanh ghi TIMSK có hai bit cuối dùng cho bộ định thời 2, hai bit đầu dùng cho bộ định
thời 0, các bit còn lại dùng cho bộ định thời 1.
- Bộ định thời 0 và 2
BOTTOM Bộ đếm đạt tới giá trị BOTTOM khi nó có giá trị 00h.
MAX Bộ đếm đạt tới giá trị MAX khi nó bằng FFh.
TOP Bộ đếm đạt giá trị TOP khi nó bằng với giá trị cao nhất trong chuỗi đếm, giá
trị cao nhất trong chuỗi đếm không nhất thiết là FFh mà có thể là bất khì giá trị nào
đƣợc qui định trong thanh ghi OCRn (n=0,2), tùy theo chế độ thực thi. Bộ định thời 0
có v i đặc điểm chính nhƣ: Bộ đếm đơn k nh, xóa bộ định thời khi có sự kiện so sánh
khớp (compare match) và tự nạp lại, có thể đếm từ bộ dao động 32 KHz bên ngoài,
chế độ PWM hiệu chỉnh pha…
- Bộ định thời 1 và 3:
BOTTOM Bộ đếm đạt tới giá trị BOTTOM khi nó có giá trị 0000h
M X Bộ đếm đạt tới giá trị M X khi nó bằng FFFFh
TOP Bộ đếm đạt giá trị TOP khi nó bằng với giá trị cao nhất trong chuỗi đếm, giá trị
cao nhất trong chuỗi đếm không nhất thiết l FFFFh m có thể l bất khì giá trị nào
đƣợc qui định trong thanh ghi O RnX (X= ,B, ) hay I Rn, tùy theo chế độ thực thi.
30
ây l các bộ định thời đa năng 16 bit. ó 5 chế độ hoạt động chính, ngoài các chức
năng thông thƣờng hai bộ định thời n y còn đƣợc dùng để tạo ra xung điều rộng PWM
dùng cho các mục đích điều khiển. Timer1 có thể tạo ra 2 tín hiệu PWM độc lập trên
các chân OC1A và OC1B, timer3 có thể tạo ra 3 tín hiệu PWM độc lập trên các chân
O 3 , O 3B v O 3 …[10].
3.1.5. Ngắt
31
Bảng 3.1: bảng véc tơ ngắt của ATmega128
Ngắt là một sự kiện bên trong hay bên ngoài làm ngắt bộ vi điều khiển để báo
cho nó biết rằng thiết bị cần dịch vụ của nó.
ối với mỗi ngắt thì phải có một trình phục vụ ngắt ISR (Interrupt Service
Routine) hay trình quản lý ngắt (Interrupt handler). Khi một ngắt đựợc gọi thì bộ vi
điều khiển phục vụ ngắt. Khi một ngắt đựợc gọi thì bộ vi điều khiển chạy trình phục
vụ ngắt. ối với mỗi ngắt thì có một vị trí cố định trong bộ nhớ để giữ địa chỉ ISR của
nó. Nhóm các vị trí nhớ đƣợc dành ri ng để gửi các địa chỉ của các ISR đƣợc gọi là
bảng véc tơ ngắt. Khi kích hoạt một ngắt bộ vi điều khiển đi qua các bƣớc sau:
● Vi điều khiển kết thúc lệnh đang thực hiện v lƣu địa chỉ của lệnh kế tiếp
(PC) v o ngăn xếp.
● Nó nhảy đến một vị trí cố định trong bộ nhớ đƣợc gọi là bảng véc tơ ngắt nơi
lƣu giữ địa chỉ của một trình phục vụ ngắt.
● Bộ vi điều khiển nhận địa chỉ ISR từ bảng véc tơ ngắt và nhảy tới đó. Nó bắt
đầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR là RETI (trở về từ
ngắt).
● Khi thực hiện lệnh RETI bộ vi điều khiển quay trở về nơi nó đã bị ngắt.
Trƣớc hết nó nhận địa chỉ của bộ đếm chƣơng trình P từ ngăn xếp bằng cách kéo hai
byte tr n đỉnh của ngăn xếp v o P . Sau đó bắt đầu thực hiện các lệnh từ địa chỉ đó.
Bảng 3.1 là bảng véc tơ ngắt của ATmega128, cùng với địa chỉ của nó trong bộ nhớ
chƣơng trình.
3.1.6. Bộ truyền nhận dữ liệu nối tiếp USART
USART (Universal Synchronous and Asynchronous serial Receiver and
Transmitter): Bộ Truyền Nhận Nối Tiếp ồng Bộ Và Bất ồng Bộ Phổ Dụng, đây l
khối chức năng dùng cho việc truyền thông giữa vi điều khiển với các thiết bị khác.
Trong vấn đề truyền dữ liệu số, có thể phân chia cách thức (method) truyền dữ liệu ra
hai chế độ (mode) cơ bản là : Chế độ truyền nhận ồng bộ (Synchronous) và Chế độ
truyền nhận Bất đồng bộ (Asynchronous). Ngoài ra, nếu ở góc độ phần cứng thì có
thể phân chia theo cách khác đó l : Truyền nhận dữ liệu theo kiểu Nối tiếp (serial) và
Song song (paralell).
• Truyền ồng Bộ: là kiểu truyền dữ liệu trong đó bộ truyền (Transmitter) và bộ nhận
(Receiver) sử dụng chung một xung đồng hồ (clock). Do đó, hoạt động truyền và nhận
dữ liệu diễn ra đồng thời. Xung clock đóng vai trò l tín hiệu đồng bộ cho hệ thống
(gồm khối truyền và khối nhận). Ƣu điểm của kiểu truyền đồng bộ là tốc độ nhanh,
thích hợp khi truyền dữ liệu khối (block).
32
• Truyền Bất ồng Bộ: Là kiểu truyền dữ liệu trong đó mỗi bộ truyền (Transmitter)
và bộ nhận (Receiver) có bộ tạo xung clock riêng, tốc độ xung clock ở hai khối này có
thể khác nhau, nhƣng thƣờng không quá 10% . Do không dùng chung xung clock, nên
để đồng bộ quá trình truyền và nhận dữ liệu, ngƣời ta phải truyền các bit đồng bộ
(Start, Stop,…) đi kèm với các bit dữ liệu. Các bộ truyền và bộ nhận sẽ dựa vào các bit
đồng bộ n y để quyết định khi nào thì sẽ thực hiện hay kết thúc quá trình truyền hoặc
nhận dữ liệu. Do đó, hệ thống truyền không đồ bộ còn đƣợc gọi là hệ thống truyền “tự
đồng bộ”. Từ hai kiểu truyền dữ liệu cơ bản tr n, ngƣời ta đƣa ra nhiều giao thức
(Protocol) truyền khác nhau nhƣ: SPI (đồng bộ), USRT (đồng bộ), UART (bất đồng
bộ),…Tuy vậy, cũng có giao thức truyền mà không thể xếp đƣợc vào kiểu n o: đồng
bộ hay bất đồng bộ, chẳn hạn kiểu truyền I2C (Trong AVR gọi là TWI), tuy vậy một
cách hơi gƣợng ép thì có thể thấy giao thức truyền I2C gần với kiểu đồng bộ hơn vì
các thiết bị giao tiếp với nhau theo chuẩn I2 điều dùng chung một xung clock.
Hình 3.3: Sơ đồ khối đơn giản của khối USART
ATmega128 có hai bộ USART là USART0 và USART1. Hai bộ USART này là
độc lập nhau, điều này có nghĩa l hai khối USART0 và USART1 có thể hoạt động
cùng một lúc. Sơ đồ khối đơn giản của khối USART thể hiện trong hình 3.3.
3.2. ATmega16
Tƣơng tự nhƣ dòng ATmega128 nhƣng các ngoại vi và bộ nhớ chƣơng trình ít
hơn.
33
3.3. Cảm biến nhiệt độ, độ ẩm SHT11
Hiện nay tr n thị trƣờng có nhiều dòng cảm biến nhiệt độ v độ ẩm khác nhau.
Dòng cảm biến nhiệt ẩm SHT của hãng Sensirion (Thụy sỹ) l dòng cảm biến tích hợp
cả cảm biến nhiệt độ v độ ẩm tr n 1 chip đơn duy nhất, có độ chính xác v tin cậy
cao. Trong khuôn khổ luận văn n y em lựa chọn cảm biến SHT11, cũng có thể nâng
cao độ chính xác bằng cách sử dụng các cảm biến SHT15 hoặc SHT75, tuy nhi n chi
phí cho các cảm biến n y cao hơn nhiều so với dung SHT11.
Hình 3.4: Hình dạng và kích thước của cảm biến nhiệt ẩm SHT11
Hình 3.5: Độ chính xác và dải hoạt động của các loại cảm biến SHT
ể đọc đƣợc nhiệt độ v độ ẩm cũng nhƣ tính toán điểm sƣơng cần phải tuân
thủ theo các điều kiện kỹ thuật và thực hiện lập trình cho vi điều khiển phù hợp với
các yêu cầu mà nhà sản xuất sensor đƣa ra nhƣ sau:
3.3.1. ác thông số kỹ thuật
Hình 3.6:Sơ đồ chân của SHT11
34
- Các chân cung cấp nguồn (VDD, GND): iện áp nguồn cung cấp cho SHT1x phải
nằm trong dải từ 2.4 – 5.5V. Giữa 2 chân VDD và GND phải đƣợc gắn với tụ 100nF.
Mạch ứng dụng cho cảm biến v vi điều khiển nhƣ hình 3.7.
Hình 3.7:Mạch ứng dụng của SHT11
Xung clock nối tiếp (SCK) sử dụng để đồng bộ hóa truyền thông giữa vi điều
khiển và SHT1x. Dữ liệu nối tiếp (DATA) là chân 3 trạng thái đƣợc dùng cho việc
truyền và nhận dữ liệu với cảm biến. ể tránh xung đột dữ liệu thì vi điều khiển chỉ
điều khiển chân DATA về mức thấp do đó cần nối th m điện trở pull-up cho chân
DATA [11].
3.3.2. hởi động cảm biến
Cảm biến phải đƣợc cấp điện áp nguồn VDD. Tốc độ sụt của nguồn phải không
đƣợc quá 1V/ms. Sau khi cấp nguồn sensor cần 11ms để thoát khỏi trạng thái ngủ.
Phải không có lệnh n o đƣợc gửi trƣớc thời gian này.
3.3.3. ửi một lệnh
ể khởi tạo một giao tiếp, một chuỗi khởi tạo giao tiếp(Start Transmission)
đƣợc phát ra. Chân dữ liệu D T đƣợc kéo xuống mức thấp trong khi S K đang mức
cao, sau khi xung SCK xuống thấp và lại lên mức cao thì đƣờng D T đƣợc đƣa l n
mức cao - xem hình 3.8.
Hình 3.8: Chuỗi khởi tạo truyền “Transmission Start”
Tiếp đó l một lệnh gồm 3 bit địa chỉ (Chỉ „000‟ đƣợc hỗ trợ) và 5 bít lệnh.
SHT1x chỉ nhận một lệnh hợp lệ khi chân D T đang đƣợc kéo xuống mức thấp
( K bít) sau sƣờn thứ 8 của xung đồng bộ S K. ƣờng dữ liệu đƣợc giải phóng (và
chuyển lên mức cao) sau khi sƣờn của xung SCK thứ 9 đi xuống [11].
Lệnh Mã
ã nhận 0000x
o nhiệt độ 00011
o độ ẩm 00101
35
ọc thanh ghi trạng thái 00111
Ghi thanh ghi trạng thái 00110
ã nhận 0101x-1110x
Reset mềm, reset giao diện, xóa các
thanh ghi trạng thái, đợi ít nhất
11ms trƣớc khi có lệnh tiếp theo.
11110
Bảng 3.2: Danh sách lệnh của SHT1x
3.3.4. o độ ẩm và nhiệt độ
Sau khi đƣa ra lệnh đo („00000101‟ cho độ ẩm tƣơng đối, „00000011‟ cho nhiệt
độ) vi điều khiển phải đợi phép đo ho n th nh. Việc này mất tối đa 20/80/320ms ứng
với việc lựa chọn phép đo 8/12/14 bít. Khoảng thời gian này có thể thay đổi tùy theo
tốc độ của bộ dao động nội và có thể thấp hơn 30%. ể chờ phép đo đƣợc hoàn thành
SHT1x sẽ kéo đƣờng dữ liệu về mức thấp và trở về trạng thái rỗi. Vi điều khiển phải
đợi cho tín hiệu dữ liệu sẵn s ng trƣớc khi khởi động lại S K để đọc dữ liệu ra, vì thế
vi điều khiển có thể tiếp tục với các nhiệm vụ khác v đọc dữ liệu ra vào thời điểm
thích hợp
Hai byte dữ liệu đo v 1 byte kiểm tra CRC (tùy ý) sẽ đƣợc truyền. Vi điều
khiển phải nhận từng byte bằng cách kéo đƣờng dữ liệu xuống mức thấp. Các giá trị
MSB đƣợc đọc đầu ti n v đƣợc căn phải (Ví dụ: tại SCK thứ 5 MSB có 12 bít giá trị
thì 8 bít kết quả của byte đầu tiên sẽ không đƣợc sử dụng).
Việc truyền dữ liệu kết thúc sau bít xác nhận (ack) của dữ liệu CRC. Nếu 8 bít
kiểm tra R không đƣợc sử dụng thì V K phải kết thúc giao tiếp sau dữ liệu đo LSB
bằng việc giữ ACK ở mức cao. Thiết bị sẽ tự động trở về trạng thái ngủ sau khi đo v
giao tiếp đã ho n th nh [11].
Lƣu ý: ể giữ cho bản than không bị đốt nóng quá 0.10
C, SHT1x phải không đƣợc
hoạt động quá 10% thời gian.
3.3.5. huỗi reset kết nối
Nếu việc giao tiếp với thiết bị bị mất thì cần có một chuỗi tín hiệu để reset theo
kiểu nối tiếp nhƣ sau: Khi chân D T ở mức cao kéo dài 9 hoặc hơn 9 S K - hình
3.9, thì cần phải có chuỗi resets v sau đó l chuỗi khởi tạo Transmission Start [11].
Hình 3.9: Chuỗi khởi tạo kết nối Connetion Reset Sequence
3.3.6. ính toán tổng kiểm tra -8
Vấn đề an toàn truyền số liệu đƣợc bảo đảm bởi 8 bit kiểm tra. Nó bảo đảm
rằng dữ liệu sai có thể đƣợc phát hiện và loại bỏ. Giống nhƣ mô tả ở trên các bít thêm
vào này có thể đƣợc sử dụng hoặc không đƣợc đƣa v o.
36
3.3.7. hanh ghi trạng thái
Có một số chức năng của SHT1x đƣợc cải tiến nhƣ lựa chọn đại lƣợng đo,
thông báo việc hết pin hoặc sử dụng bộ đốt có thể đƣợc kích hoạt bằng cách gửi một
lệnh tới thanh ghi trạng thái. Nguy n lý n y đƣợc miêu tả ngắn gọn. Chi tiết hơn đƣợc
mô tả trong trong Ứng dụng thanh ghi trạng thái.
Sau khi có lệnh đọc hoặc ghi thanh ghi trạng thái - xem bảng 3.2 - 8 bít nội
dung của thanh ghi trạng thái có thể đƣợc đọc ra hoặc ghi vào. Có thể so sánh việc
giao tiếp nhƣ hình 3.10 và hình 3.11.
Hình 3.10: Ghi vào thanh ghi trạng thái
Hình 3.11: Đọc thanh ghi trạng thái
Ví dụ đầy đủ về một chu kỳ giao tiếp đƣợc thể hiện trên hình 3.12 và hình 3.13.
Hình 3.12: Tổng quan của chuỗi đo. TS=khởi tạo truyền, MSB=Byte tín hiệu cao nhất,
LSB = Byte tín hiệu sau cùng, LSb= Bít tín hiệu cuối cùng.
Hình 3.13: Ví dụ về chuỗi đo RH với giá trị “0000’0100”0011’0001” = 1073 =
35.50%RH (chưa tính bù nhiệt). Các lần có dữ liệu hợp lệ được đưa ra trong các ô
trên đường DATA. Các đường DATA đậm màu được điều khiển bởi sensor trong khi
các đường nhạt màu được điều khiển bởi vi điều khiển.
37
Lựa chọn chế độ đo: Chế độ đo mặc định 14 bit (nhiệt độ) v 12 bít (độ ẩm) có
thể đƣợc giảm xuống thành 12 bit và 8 bít. Tác dụng của việc thiết lập này dùng cho
các ứng dụng đòi hỏi tốc độ cao hoặc những ứng dụng đòi hỏi tiêu thụ nguồn thấp.
Chức năng nhận biết hết pin: khi điện áp VDD xuống dƣới 2.47V. ộ chính xác
là 0.05V.
Bộ đốt: Một bộ đốt nóng trên chip có thể đƣợc gán địa chỉ bởi việc ghi một
lệnh vào thanh ghi trạng thái. Bộ đốt nóng có thể l m tăng nhiệt độ của sensor lên từ 5
– 100
C so với nhiệt độ xung quanh. Bộ đốt tiêu thụ dòng 8mA, nguồn cung cấp 5V.
Một ví dụ về bộ đốt có thể giúp ích cho chức năng phân tích: ọc độ ẩm và
nhiệt độ trƣớc và sau khi sử dụng bộ đốt để so sánh. Tại cùng một thời điểm nhiệt độ
tăng trong khi độ ẩm tƣơng đối giảm. iểm sƣơng vẫn phải giữ nhƣ cũ.
Lƣu ý: Nhiệt độ đọc đƣợc của sensor đã bị đốt nóng không phải là nhiệt độ môi trƣờng
xung quanh. Muốn thế sensor phải không đƣợc tiếp tục đốt nóng [11] .
3.3.8. Chuyển đổi tín hiệu ra
- ộ ẩm tƣơng đối
ể bù lại độ không tuyến tính của sensor độ ẩm xem hình 3.13 - v đạt đƣợc độ
chính xác cao. Ngƣời ta khuyến nghị chuyển đổi độ ẩm đọc đƣợc (SORH) theo công
thức sau với các hệ số trong bảng 6:
Bảng 3.3: Các hệ số chuyển đổi tối ưu cho sensor độ ẩm V4
ể đơn giản cho việc tính toán ngƣời ta đƣa ra công thức chuyển đổi nhƣ ở mục
ứng dụng “RH với việc bù độ không tuyến tính của nhiệt độ”. ác giá trị vƣợt quá
99%RH chỉ ra rằng không khí đã bị bão hòa hoàn toàn và cần phải xử lý dữ liệu để
hiển thị độ ẩm l 100%. Lƣu ý rằng Sensor độ ẩm không phụ thuộc nhiều v o điện áp.
Hình 3.13: Chuyển đổi từ SORH sang độ ẩm tương đối
- Bù nhiệt độ của tín hiệu độ ẩm
ối với các nhiệt độ khác 250
C tín hiệu độ ẩm cần phải đƣợc bù nhiệt độ. Việc
bù này có thể tƣơng ứng xấp xỉ 0.12%RH/0
C
Các hệ số để bù nhiệt độ đƣợc cho ở bảng 3.3.
38
Bảng 3.4: Các hệ số bù nhiệt độ
- hiệt độ
Dải đo của sensor nhiệt độ đƣợc thiết kế l tƣơng đối tuyến tính.
Sử dụng công thức sau để chuyển đổi tín hiệu số đầu ra (SOT) để có đƣợc giá
trị nhiệt độ với các hệ số đƣợc cho trong bảng 3.4.
T = d1 + d2 . SOT
Bảng 3.5: Các hệ số bù nhiệt độ
- iểm sƣơng
SHT7x không đo trực tiếp điển sƣơng, tuy nhi n điểm sƣơng có thể đƣợc suy ra
từ giá trị độ ẩm và nhiệt độ đọc đƣợc. Vì giá trị độ ẩm và nhiệt độ l hai đại lƣợng đo
đƣợc trên cùng một chip vì vậy SHT7x cho phép tính toán điểm sƣơng.
ể tính toán điểm sƣơng (Td) có nhiều công thức khác nhau, hầu hết chúng đều khá
phức tạp. trong dải nhiệt độ từ -40-500
C ta có thể tính theo công thức gần đúng sau với
các hệ số trong bảng 3.5.
Bảng 3.6: Các tham số để tính toán điểm sương (Td).
Lƣu ý rằng “ln(…)” l logarit tự nhiên. Với Rh và T thì các giá trị tuyến tính hóa
v bù cho độ ẩm và nhiệt độ cũng đƣợc áp dụng.
ể có nhiều thông tin hơn về việc tính toán điểm sƣơng có thể xem ở Ứng dụng
“Tính toán điển sƣơng”.
39
3.4. MMC/SD card
3.4.1. ơ lƣợc về MMC/SD card
MMC là viết tắt của cụm từ Multi-Media Card và SD là Secure Digital
Card. Nhìn chung MMC và SD giống nhau về cấu trúc vật lý v phƣơng thức giao
tiếp. iểm khác nhau lớn nhất của 2 loại card này là về tính năng bảo mật dữ liệu và
tốc độ giao tiếp. SD card xuất hiện sau MMC card nên SD có nhiều tính năng v tốc
độ cao hơn MM . Tuy nhi n với việc ghi/đọc MMC và SD ở tốc độ thấp bằng các vi
điều khiển (nhƣ VR) thì sự khác nhau của 2 loại n y l không đáng quan tâm.
Hình 3.14: Bố trí chân của MMC và SD card
Về phƣơng thức giao tiếp, MM v SD card đều có thể đƣợc giao tiếp thông qua
2 chế độ (mode) cơ bản là SD/MMC mode và SPI mode. Giao tiếp bằng mode
SD/MMC có tốc độ cao nhƣng đòi hỏi chip điều khiển cũng phải có tốc độ cao. Mode
này không phù hợp với việc giao tiếp bằng vi điều khiển. Ngƣợc lại, mode giao tiếp
SPI tuy có tốc độ thấp hơn nhƣng phù hợp với các chip điều khiển nhƣ VR [14].
Về hình dáng b n ngo i, MM v SD có cùng kích thƣớc và cấu trúc chân gần
nhƣ nhau, nhƣ trong hình 3.14.
Nhƣ trình b y trong hình 3.14, MMC card (hình bên phải) có 7 chân trong khi
SD card (hình bên trái) có 9 chân. Các chân thêm 8, 9 trên SD card là các chân dữ liệu
của mode SD/MMC nên không quan trọng khi giao tiếp ở mode SPI. Ngoài ra 7 chân
còn lại trên SD card hoàn toàn giống với MMC. Phần b n dƣới mô tả chức năng các
chân tròn mode SPI.
- Chân 1: CS (Chip Select) là chân cọn cho dùng trong mode SPI, chân này nối
với chân chọn chip của vi điều khiển (AVR).
- Chân 2: DI (Data Input) hay chân MOSI của chuẩn SPIm, chân này cần đƣợc
nối với chân MOSI tr n chip vi điều khiển.
- Chân 3, 6: Là cá chân GND.
- Chân 4: Là chân nguồn.
- Chân 5: CLK là chân giữ nhịp trong mode SPI, chân này sẽ đƣợc nối với SLK
tr n vi điều khiển.
- Chân 7: DO (Data output) hay chân MISO của chuẩn SPI, chân n y đƣợc nối
với chân MISO tr n vi điều khiển.
Nguồn nuôi MM /SD card: ây l điểm cần lƣu ý khi sử dụng các card
MMC/SD, nguồn cho các card này phải nằm trong khoảng 2.7V đến 3.6V. iều này
thƣờng gây khó khăn khi điều khiển các card MMC/SD card bằng các vi điều khiển vì
40
các mạch điều khiển thƣờng dùng mức điện áp 5V. Vì thế, không giống nhƣ các chip
điện tử số thông thƣờng, chúng ta không đƣợc phép nối MMC/SD card trực tiêp với vi
điều khiển có nguồn nuôi 5V mà phải qua một IC chuyển đổi mức điện áp nhƣ
CD4050 hoặc sử dụng cầu chia áp...[13].
Hình 3.15: IC CD4050 chuyển đổi mức tín hiệu giữa vi điều khiển và MMC/SD card
3.4.2. Giao tiếp AVR với MMC/SD card
Trình biên dịch CodeVisionAVR cung cấp các thƣ viện và các hàm hỗ trợ giao
tiếp giữa Vi điều khiển AVR với MMC/SD card sử dụng giao thức SPI.
3.4.2.1. Các hàm truy cập MMC/SD card ở mức thấp
ác h m n y đƣợc định nghĩa v thiết lập trong file ti u đề sdcard.h, đặt trong
thƣ mục .IN . Trƣớc khi sử dụng các hàm truy cập MMC/SD card ở mức thấp thì file
này phải đƣợc khai báo ở đầu chƣơng trình chính bằng lệnh tiền xử lý #include.
Các hàm truy cập MMC/SD card ở mức thấp gồm:
void disk_timerproc (void)
Hàm này phải đƣợc gọi với chu kỳ 10ms bởi một ngắt timer. Lƣu ý rằng phải
đảm bảo chắc chắn h m n y đƣợc gọi mỗi 10ms để tránh trƣờng hợp các hàm bị khóa
trong một vòng lặp vô hạn.
unsigned char disk_initialize(unsigned char drv)
Hàm này khởi tạo các cổng vào ra của giao thức SPI và các driver vật lý trên
MMC/SD card
drv: Biểu thị số thứ tự ổ đĩa, số thứ tự ổ đĩa bắt đầu từ 0
Giá trị trả về: Hàm này trả về 1 byte chứa trạng thái các cờ của đĩa, nó đƣợc định
nghĩa bởi các macro trong sdcard.h:
• STA_NOINIT (=0x01, bit 0 của kết quả trả về của h m) Ổ đĩa không sẵn
sang l m việc. ờ n y đƣợc thiết lập sau khi vi điều khiển reset, card bị lấy ra hoặc
hàm disk_initialize bị lỗi.
• STA_NODISK (=0x02, bit 1 trong kết quả trả về của h m) ờ n y đƣợc thiết
lập nếu không có card trong khay nhét card.
• STA_PROTE T (=0x04, bit 2 của giá trị trả về của h m) Thẻ nhớ bị bảo vệ.
Nếu cờ ST _NODISK cũng đƣợc thiết lập thì cờ ST _PROTE T bị vô hiệu.
41
Trƣờng hợp th nh công, giá trị trả về của cờ sẽ l 0, điều n y có nghĩa l mọi
trạng thái của các cờ đƣợc seset.
Lƣu ý: Với MMC dùng giao thức SPI, tham số drv phải là 0, nếu không hàm sẽ trả về
giá trị với cờ ST _NOINIT đƣợc thiết lập.
unsigned char disk_status(unsigned char drv)
Trả về các trạng thái hiện tại của ổ đĩa vật lý có trong MM
Các tham số:
drv số thứ tự ổ đĩa, đƣợc đánh số bắt đầu từ 0
Giá trị trả về:
Giá trị trả về của l 1 byte chứa các cờ trạng thái của đĩa, nó đƣợc quy định bởi
các macros đƣợc định nghĩa trong sdcard.h
• STA_NOINIT (=0x01, bit 0 của kết quả trả về của h m) Ổ đĩa chƣa đƣợc
khởi tạo. ờ n y đƣợc thiết lập sau khi vi điều khiển reset, card bị lấy ra hoặc h m
disk_initialize bị lỗi.
• STA_NODISK (=0x02, bit 1 của kết quả trả về của h m) ờ n y đƣợc thiết
lập nếu không có card trong khay nhét card.
• STA_PROTECT (=0x04, bit 2 của kết quả trả về của h m) ard bị bảo vệ.
Nếu cờ ST _NODISK đƣợc thiết lập thì cờ ST _PROTE T không có hiệu lực.
Trƣờng hợp th nh công, giá trị trả về của cờ sẽ l 0, điều n y có nghĩa l mọi
trạng thái của các cờ đƣợc seset.
Lƣu ý: Với MMC/SD card sử dụng giao thức SPI, tham số drv phải luôn bằng 0,
ngƣợc lại h m sẽ trả về giá trị với cờ ST _NOINIT đƣợc thiết lập.
ác dạng dữ liệu của DRESULT đƣợc định nghĩa trong sdcard.h
typedef enum
{
RES_OK=0, /* 0: Successful */
RES_ERROR, /* 1: R/W Error */
RES_WRPRT, /* 2: Write Protected */
RES_NOTRDY, /* 3: Not Ready */
RES_PARERR /* 4: Invalid Parameter */
} DRESULT;
Nó đƣợc sử dụng để trả về kết quả của các h m điều khiển.
DRESULT disk_read (unsigned char drv, unsigned char* buff, unsigned long
sector, unsigned char count)
ọc các sector từ một ổ vật lý
Các tham số:
drv thứ tự ổ đĩa. Ổ đƣợc đánh số bắt đầu từ 0.
buff trỏ tới mảng, nơi m dữ liệu đọc sẽ đƣợc lƣu trữ.
sector biểu diễn địa chỉ khối logic của sector đầu ti n cần đọc
count biểu diễn số các sector cần đọc (1..255)
Giá trị trả về:
• RES_OK - thành công
• RES_ERROR - lỗi khi ghi
42
• RES_WRPRT - Thẻ bị bảo vệ (cấm ghi)
• RES_NOTRDY - đĩa chƣa đƣợc khởi tạo
• RES_PARERR - các tham số đƣa v o h m không hợp lệ
Lƣu ý: Vơi MM /SD card sử dụng giao thức SPI, tham số drv phải luôn bằng 0, nếu
không h m sẽ trả về giá trí với cờ ST _NOINIT đƣợc thiết lập.
DRESULT disk_write (unsigned char drv, unsigned char* buff, unsigned long
sector, unsigned char count)
Ghi các sector l n ổ vật lý
Các tham số:
drv l số thứ tự của ổ. Ổ đƣợc đánh số bắt đầu từ 0
buff trỏ tới mảng ký tự nơi m dữ liệu để ghi đƣợc lƣu trữ
sector l địa chỉ khối logic của sector đầu ti n đƣợc ghi
count l số sector đƣợc ghi (1...255).
Giá trị trả về:
• RES_OK – thành công
• RES_ERROR – lỗi khi ghi
• RES_WRPRT – Thẻ bị bảo vệ (cấm ghi)
• RES_NOTRDY – đĩa chƣa đƣợc khởi tạo
• RES_PARERR – các tham số đƣa v o h m không hợp lệ
Lƣu ý: Vơi MM sử dụng giao thức SPI,tham số drv phải luôn băng 0, nếu không h m
sẽ trả về giá trí với cờ ST _NOINIT đƣợc thiết lập.
DRESULT disk_ioctl (unsigned char drv, unsigned char ctrl, void* buff)
H m n y dùng để điều khiển một số đặc trƣng của MM /SD card v một số
hàm khác.
Các tham số:
drv l số thứ tự của ổ. Ổ đƣợc đánh số bắt đầu từ 0
ctrl đặc trƣng cho mã lệnh
buff trỏ tới bộ đệm để lƣu giữ kết quả của h m, phụ thuộc v o mã lệnh
Khi không sử dụng, con trỏ NULL phải đƣợc gán nhƣ một tham số.
Giá trị trả về
• RES_OK – thành công
• RES_ERROR – có một lỗi
• RES_NOTRDY – đĩa chƣa đƣợc khởi tạo
• RES_PARERR – các tham số đƣa v o h m không hợp lệ
Lƣu ý: Vơi MM /SD card sử dụng giao thức SPI, tham số drv phải luôn bằng 0, nếu
không h m sẽ trả về giá trị với cờ ST _NOINIT đƣợc thiết lập.
ác mã lệnh của ctrl, đƣợc xác định bởi các macros đƣợc định nghĩa trong file
sdcard.h v có hiệu lực trong h m disk_ioctl
• CTRL_SYNC - chờ cho đến khi đĩa kết thúc quá trình ghi. on trỏ buff phải
có giá trị NULL
43
• GET_SECTOR_SIZE - trả về kích thƣớc của sector tr n đĩa. on trỏ buff
phải trỏ tới biến 16 bit kiểu unsigned int, cái m sẽ chứa kích cỡ của sector. Với
MM thì kích thƣớc sector trả về sẽ l 512 byte.
• GET_SECTOR_COUNT - trả về tổng số sector tr n đĩa. on trỏ buff phải trỏ
tới biến 32bit unsigned long int, cái m chứa đựng tổng số các sector.
• GET_BLOCK_SIZE - Trả về kích thƣớc khối bị xóa của mảng bộ nhớ trong
tổng số các sector. on trỏ buff phải trỏ tới biến 32bit kiểu unsigned long int, cái sẽ
chứa kích cỡ của khối. Nếu không biết kích cỡ khối bị xóa thì giá trị trả về sẽ l 1.
3.4.2.2. Các hàm truy cập MMC/SD card ở mức cao
Các hàm này nhằm mục đích truy cập bộ nhớ MMC/SD card ở mức cao. Trƣớc
khi sử dụng MMC/SD card phải đƣợc format ở các định dạng chuẩn của FAT12,
FAT16 hoặc FAT32.
ác h m n y đƣợc định nghĩa trong file ti u đề ff.h đặt trong thƣ mục .INC.
Trƣớc khi dùng các hàm này chúng ta phải khai báo bởi lệnh tiền xử lý #include ở đầu
chƣơng trình.
Các hàm truy cập F T l :
FRESULT f_mount(unsigned char vol, FATFS *fs)
ấp/cấp lại ô nhớ cho vùng l m việc của đĩa logic
H m n y phải đƣợc gọi đầu ti n trƣớc khi trƣớc bất cứ một h m truy cập F T n o
khác.
ƣu ý H m n y chỉ khởi tạo vùng l m việc, không có sự truy cập đĩa vật lý n o đƣợc
thực hiện trong giai đoạn n y.
Các tham số:
vol: chỉ ra số của ổ đĩa vật lý (0…9).
fs: l con trỏ trỏ tới dạng cấu trúc dữ liệu F T cùng với ổ logic, cái m phải
đƣợc cấp phát hoặc cấp phát lại.
Các giá trị trả về:
- FR_OK - thành công
- FR_INVALID_DRIVE - số thứ tự của ổ đĩa bị sai
FRESULT f_open(FIL* fp, const char* path, unsigned char mode)
Tạo một đối tƣợng file cấu trúc FIL dùng để truy cập file. on trỏ đọc/ghi file
đƣợc thiết lập để bắt đầu của một file.
Các tham số:
fp trỏ tới dạng cấu trúc FIL đƣợc tạo. Sau khi h m f_open th nh công, cấu trúc
n y có thể đƣợc sử dụng bởi các h m khác để truy cập file.
path trỏ tới vùng R M chứa xâu ký tự thể hiện đƣờng dẫn của file đƣợc mở
hoặc đƣợc tạo.
T n đƣờng dẫn tuân theo định dạng sau:
[số_ổ_đĩa_logic:][/][T n_chỉ_mục/]tên_file
Mode là cách thức truy cập v mở file, đƣợc biểu diễn bởi sự kết hợp của các cờ theo
các macros sau:
44
- FA_READ - đọc đối tƣợng. Dữ liệu có thể đƣợc đọc từ file. Với kiểu truy cập
đọc/ghi phải kết hợp với FA_WRITE.
- FA_WRITE - Ghi v o đối tƣợng. Dữ liệu có thể đƣợc ghi tới file. Với kiểu truy
cập đọc/ghi phải kết hợp với F _RE D.
- FA_OPEN_EXISTING - Mở một file. Nếu file không tồn tại, h m sẽ lỗi.
- FA_OPEN_ALWAYS - Nếu file tồn tại, nó sẽ đƣợc mở. Nếu file không tồn tại
nó sẽ tạo file v mở nó lần đầu.
- FA_CREATE_NEW - Tạo một file, nếu file đã tồn tại, h m sẽ bị lỗi
- FA_CREATE_ALWAYS - Tạo một file, nếu file đã tồn tại nó sẽ ghi đè l n và
thiết lập kích cỡ bằng 0.
Các giá trị trả về:
· FR_OK - thành công
· FR_NO_FILE - không tìm đƣợc file
· FR_NO_PATH - không tìn thấy đƣờng dẫn
· FR_INVALID_NAME - t n file bị lỗi
· FR_INVALID_DRIVE - số thứ tự ổ đĩa bị lỗi
· FR_EXIST - file đã tồn tại(đã có)
· FR_DENIED - truy cập file bị từ chối bởi vì một trong các lý do sau:
+ Mở một file chỉ đƣợc phép đọc trong chế độ ghi
+ File không thể tạo đƣợc vì trùng t n hoặc thuộc tính chỉ đọc đã tồn tại
+ File không thể tạo đƣợc vì bảng thƣ mục hoặc đĩa đã đầy.
· FR_NOT_READY - không truy cập đƣợc đĩa do lỗi trung gian hoặc lý do
khác
· FR_WRITE_PROTECTED - mở trong chế độ ghi hoặc không thể tạo file
do lỗi media đƣợc bảo vệ.
· FR_DISK_ERR - H m lỗi vì truy cập đĩa vật lý
· FR_INT_ERR - H m lỗi do sai cấu trúc F T hoặc lỗi nội tại.
· FR_NOT_ENABLED - Ổ logic không đƣợc thiết lập với h m f_mount
· FR_NO_FILESYSTEM - phân vùng F T không có tr n đĩa.
FRESULT f_read(FIL* fp, void* buff, unsigned int btr, unsigned int* br)
ọc dữ liệu từ một file đã đƣợc mở trƣớc đó bởi h m f_open.
Sau khi h m đƣợc thực thi, con trỏ đọc/ghi file tăng l n ứng với số byte đọc từ file.
Các tham số:
- fp trỏ tới dạng cấu trúc FIL l cấu trúc chứa các thông số của file. ấu trúc n y
phải đƣợc khởi tạo trƣớc bởi việc gọi h m f_open.
- buff trỏ tới bộ đệm mảng dạng byte, đƣợc đặt trong R M, nơi lƣu giữ dữ liệu
đọc từ file. Kích thƣớc của bộ đệm phải đủ lớn để dữ liệu chứa vừa trong đó.
- btr số lƣợng byte đọc từ file
- br trỏ tới biến nguy n dƣơng chứa số byte dữ liệu có hiệu lực đọc từ file. Khi
h m thực hiện th nh công, nếu số lƣợng byte đọc hiệu lực bé hơn giá trị btr thì
con trỏ đọc/ghi file sẽ tiến tới cuối của file.
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf
Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf

Más contenido relacionado

Similar a Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf

Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim ThoaNghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim ThoaMan_Ebook
 
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdfNghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdfMan_Ebook
 
127918321 nghien-cuu-ma-turbo
127918321 nghien-cuu-ma-turbo127918321 nghien-cuu-ma-turbo
127918321 nghien-cuu-ma-turboHieu Tran
 
Ccna căn bản bach khoa aptech
Ccna căn bản  bach khoa aptechCcna căn bản  bach khoa aptech
Ccna căn bản bach khoa aptechCamQueVuong
 
Luận văn: Công nghệ mạng riêng ảo di động và khả năng ứng dụng cho mạng di độ...
Luận văn: Công nghệ mạng riêng ảo di động và khả năng ứng dụng cho mạng di độ...Luận văn: Công nghệ mạng riêng ảo di động và khả năng ứng dụng cho mạng di độ...
Luận văn: Công nghệ mạng riêng ảo di động và khả năng ứng dụng cho mạng di độ...Viết thuê trọn gói ZALO 0934573149
 
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...Freelancer
 
Giao trinhquantrimang[bookbooming.com]
Giao trinhquantrimang[bookbooming.com]Giao trinhquantrimang[bookbooming.com]
Giao trinhquantrimang[bookbooming.com]bookbooming1
 
Kienthuctmdt 1213841611806892-9
Kienthuctmdt 1213841611806892-9Kienthuctmdt 1213841611806892-9
Kienthuctmdt 1213841611806892-9quockicung
 
Thiet ke lan_wan
Thiet ke lan_wanThiet ke lan_wan
Thiet ke lan_wanGió Lào
 
Thiet ke lan_wan
Thiet ke lan_wanThiet ke lan_wan
Thiet ke lan_wanHuu Phan
 
Luận văn: Nghiên cứu các giao diện kết nối cung cấp khả năng phát triển dịch ...
Luận văn: Nghiên cứu các giao diện kết nối cung cấp khả năng phát triển dịch ...Luận văn: Nghiên cứu các giao diện kết nối cung cấp khả năng phát triển dịch ...
Luận văn: Nghiên cứu các giao diện kết nối cung cấp khả năng phát triển dịch ...Viết thuê trọn gói ZALO 0934573149
 
công nghệ MIMO trong 4G-Lte
công nghệ MIMO trong 4G-Ltecông nghệ MIMO trong 4G-Lte
công nghệ MIMO trong 4G-LtePTIT HCM
 
Datn nguyentatthiem-150622030222-lva1-app6891 4
Datn nguyentatthiem-150622030222-lva1-app6891 4Datn nguyentatthiem-150622030222-lva1-app6891 4
Datn nguyentatthiem-150622030222-lva1-app6891 4son doan
 
C C N A Tieng Viet
C C N A Tieng  VietC C N A Tieng  Viet
C C N A Tieng VietHuy Le
 

Similar a Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf (20)

Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim ThoaNghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
 
Luận văn: Hệ thống phát hiện xâm nhập mạng, HAY
Luận văn: Hệ thống phát hiện xâm nhập mạng, HAYLuận văn: Hệ thống phát hiện xâm nhập mạng, HAY
Luận văn: Hệ thống phát hiện xâm nhập mạng, HAY
 
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdfNghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
 
127918321 nghien-cuu-ma-turbo
127918321 nghien-cuu-ma-turbo127918321 nghien-cuu-ma-turbo
127918321 nghien-cuu-ma-turbo
 
Ccna căn bản bach khoa aptech
Ccna căn bản  bach khoa aptechCcna căn bản  bach khoa aptech
Ccna căn bản bach khoa aptech
 
Đề tài: Thiết bị xác định nhiệt độ và vị trí bệnh nhân qua internet
Đề tài: Thiết bị xác định nhiệt độ và vị trí bệnh nhân qua internetĐề tài: Thiết bị xác định nhiệt độ và vị trí bệnh nhân qua internet
Đề tài: Thiết bị xác định nhiệt độ và vị trí bệnh nhân qua internet
 
Tài liệu CCNA - Lưu hành nội bộ
Tài liệu CCNA  - Lưu hành nội bộTài liệu CCNA  - Lưu hành nội bộ
Tài liệu CCNA - Lưu hành nội bộ
 
Luận văn: Công nghệ mạng riêng ảo di động và khả năng ứng dụng cho mạng di độ...
Luận văn: Công nghệ mạng riêng ảo di động và khả năng ứng dụng cho mạng di độ...Luận văn: Công nghệ mạng riêng ảo di động và khả năng ứng dụng cho mạng di độ...
Luận văn: Công nghệ mạng riêng ảo di động và khả năng ứng dụng cho mạng di độ...
 
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG  ĐO ...
Đề tài: MODULE ETHERNET TRÊN VI ĐIỀU KHIỂN PIC18F67J60 VÀ ỨNG DỤNG TRONG ĐO ...
 
Giao trinhquantrimang[bookbooming.com]
Giao trinhquantrimang[bookbooming.com]Giao trinhquantrimang[bookbooming.com]
Giao trinhquantrimang[bookbooming.com]
 
Kienthuctmdt 1213841611806892-9
Kienthuctmdt 1213841611806892-9Kienthuctmdt 1213841611806892-9
Kienthuctmdt 1213841611806892-9
 
Ecommerce
EcommerceEcommerce
Ecommerce
 
Thiet ke lan_wan
Thiet ke lan_wanThiet ke lan_wan
Thiet ke lan_wan
 
Thiet ke lan_wan
Thiet ke lan_wanThiet ke lan_wan
Thiet ke lan_wan
 
Luận văn: Nghiên cứu các giao diện kết nối cung cấp khả năng phát triển dịch ...
Luận văn: Nghiên cứu các giao diện kết nối cung cấp khả năng phát triển dịch ...Luận văn: Nghiên cứu các giao diện kết nối cung cấp khả năng phát triển dịch ...
Luận văn: Nghiên cứu các giao diện kết nối cung cấp khả năng phát triển dịch ...
 
Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu
Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus RtuLuận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu
Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu
 
công nghệ MIMO trong 4G-Lte
công nghệ MIMO trong 4G-Ltecông nghệ MIMO trong 4G-Lte
công nghệ MIMO trong 4G-Lte
 
Datn nguyentatthiem-150622030222-lva1-app6891 4
Datn nguyentatthiem-150622030222-lva1-app6891 4Datn nguyentatthiem-150622030222-lva1-app6891 4
Datn nguyentatthiem-150622030222-lva1-app6891 4
 
Quantriweb moi
Quantriweb moiQuantriweb moi
Quantriweb moi
 
C C N A Tieng Viet
C C N A Tieng  VietC C N A Tieng  Viet
C C N A Tieng Viet
 

Más de HanaTiti

TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfTRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfHanaTiti
 
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfTRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfHanaTiti
 
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...HanaTiti
 
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...HanaTiti
 
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...HanaTiti
 
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfNhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfHanaTiti
 
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfPháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfHanaTiti
 
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...HanaTiti
 
The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...HanaTiti
 
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfDeteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfHanaTiti
 
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfPhát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfHanaTiti
 
The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...HanaTiti
 
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfQuản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfHanaTiti
 
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfSự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfHanaTiti
 
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...HanaTiti
 
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfĐánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfHanaTiti
 
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...HanaTiti
 
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...HanaTiti
 
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfPHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfHanaTiti
 
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfHanaTiti
 

Más de HanaTiti (20)

TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfTRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
 
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfTRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
 
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
 
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
 
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
 
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfNhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
 
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfPháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
 
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
 
The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...
 
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfDeteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
 
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfPhát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
 
The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...
 
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfQuản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
 
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfSự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
 
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
 
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfĐánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
 
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
 
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
 
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfPHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
 
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
 

Último

Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx22146042
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiTruongThiDiemQuynhQP
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdfdong92356
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...PhcTrn274398
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...Nguyen Thanh Tu Collection
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11zedgaming208
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )lamdapoet123
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...Nguyen Thanh Tu Collection
 

Último (20)

Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
 

Nghiên cứu chế tạo hệ thống mạng điều khiển và kiểm soát các thông số môi trường (nhiệt độ, độ ẩm) từ xa.pdf

  • 1. I H QU GI H N I ƢỜ Ọ Ệ ỒNG PH M KHÔI NGHIÊN CỨU CHẾ T O HỆ THỐNG M ỀU KHIỂN VÀ KIỂM SOÁT CÁC THÔNG SỐ M ƢỜNG (NHIỆ Ộ, Ộ ẨM) TỪ XA. ỨNG DỤNG TRONG BẢO QUẢN CÁC TRANG THIẾT BỊ QUỐC PHÒNG. Ệ Ệ - Ễ Ộ – 2014
  • 2. I H QU GI H N I ƢỜ Ọ Ệ ỒNG PH M KHÔI NGHIÊN CỨU CHẾ T O HỆ THỐNG M ỀU KHIỂN VÀ KIỂM SOÁT CÁC THÔNG SỐ M ƢỜNG (NHIỆ Ộ, Ộ ẨM) TỪ XA. ỨNG DỤNG TRONG BẢO QUẢN CÁC TRANG THIẾT BỊ QUỐC PHÒNG. Ng nh: Công nghệ iện tử - Viễn thông huy n ng nh: Kỹ thuật iện tử Mã số: 60 52 02 03 Ệ Ệ - Ễ ƢỜ ƢỚ Ẫ Ọ -TS. TRẦN QUANG VINH Ộ – 2014
  • 3. 2 MỤC LỤC LỜI M O N.................................................................................................. 0 Danh mục các ký hiệu và chữ viết tắt ................................................................... 5 Danh mục các bảng ............................................................................................... 5 Danh mục các hình vẽ, đồ thị................................................................................ 5 MỞ ẦU............................................................................................................... 8 hƣơng 1: TỔNG QUAN ..................................................................................... 9 1.1. Sơ đồ tổng quan hệ thống........................................................................... 9 1.2. Mục ti u đề tài.......................................................................................... 10 1.3. Nội dung nghiên cứu................................................................................ 10 1.3.1. Nghiên cứu lý thuyết:........................................................................ 10 1.3.2. Thiết kế hệ thống:.............................................................................. 10 1.4. Giới hạn đề tài.......................................................................................... 10 1.5. Ý nghĩa thực tiễn...................................................................................... 11 hƣơng 2: Ơ SỞ LÝ THUYẾT........................................................................ 12 2.1. Chuẩn EIA RS-232-C .............................................................................. 12 2.1.1. Những đặc điểm cần lƣu ý trong chuẩn RS-232............................... 12 2.1.2. Các mức điện áp thƣờng truyền........................................................ 12 2.1.3. Cổng RS-232 trên PC........................................................................ 13 2.1.4. Truyền dữ liệu................................................................................... 13 2.1.5. Mạch giao tiếp RS-232 dùng IC max232 ......................................... 14 2.2. Chuẩn RS-422/RS-485............................................................................. 15 2.2.1. Cấu hình mạng 2-dây RS-485........................................................... 16 2.2.2. Cấu hình mạng 4-dây RS-485........................................................... 16 2.2.3. Kết thúc cáp....................................................................................... 17 2.2.4. ịnh thiên trong mạng RS-485......................................................... 17 2.3. Giao thức MODBUS................................................................................ 19 2.3.1. MODBUS là gì?................................................................................ 19 2.3.2. Nguyên tắc hoạt động của MODBUS............................................... 19 2.3.3. Sơ đồ trạng thái của Modbus ............................................................ 21 2.4. Kỹ thuật CRC........................................................................................... 23 2.3.1. Lý thuyết CRC .................................................................................. 23 2.3.2. Thuật toán CRC................................................................................. 23 hƣơng 3 CÁC LINH KIỆN CHÍNH SỬ DỤNG.............................................. 25 3.1. ATmega128.............................................................................................. 25 3.1.1. Giới thiệu về ATmega128................................................................. 25 3.1.2. Cấu trúc bộ nhớ................................................................................. 26
  • 4. 3 3.1.3. Các cổng vào ra................................................................................. 28 3.1.4. Các bộ định thời của ATmega128 .................................................... 29 3.1.6. Bộ truyền nhận dữ liệu nối tiếp USART........................................... 31 3.2. ATmega16................................................................................................ 32 3.3. Cảm biến nhiệt độ, độ ẩm SHT11............................................................ 33 3.3.1. Các thông số kỹ thuật.................................................................... 33 3.3.2. Khởi động cảm biến...................................................................... 34 3.3.3. Gửi một lệnh.................................................................................. 34 3.3.4. o độ ẩm và nhiệt độ .................................................................... 35 3.3.5. Chuỗi reset kết nối ........................................................................ 35 3.3.6. Tính toán tổng kiểm tra CRC-8..................................................... 35 3.3.7. Thanh ghi trạng thái ...................................................................... 36 3.3.8. Chuyển đổi tín hiệu ra....................................................................... 37 3.4. MMC/SD card.......................................................................................... 39 3.4.1. Sơ lƣợc về MMC/SD card................................................................. 39 3.4.2. Giao tiếp AVR với MMC/SD card ................................................... 40 hƣơng 4 : THIẾT KẾ HỆ TH NG .................................................................. 47 4.1. Phần cứng................................................................................................. 47 4.1.1. Sơ đồ nguyên lý master..................................................................... 47 4.1.2. Sơ đồ nguyên lý slave ....................................................................... 51 4.2. Phần mềm................................................................................................. 52 4.2.1. Giới thiệu công cụ lập trình CodeVisionAVR.................................. 52 4.2.2. Phần mềm cho master ....................................................................... 53 4.2.3. Phần mềm cho slave.......................................................................... 59 4.3. Lập trình phần mềm giao diện PC sử dụng VB.NET .............................. 62 KẾT LUẬN......................................................................................................... 64 Kết quả ............................................................................................................ 64 Hạn chế............................................................................................................ 64 Hƣớng phát triển đề tài.................................................................................... 64 DANH MỤC CÔNG TRÌNH KHOA H LIÊN QU N ẾN LUẬN VĂN . 64 TÀI LIỆU THAM KHẢO................................................................................... 64 PHỤ LỤC............................................................................................................ 66
  • 5. 4 LỜ M Tôi xin cam đoan những nội dung trong luận văn n y l do tôi thực hiện dƣới sự hƣớng dẫn trực tiếp của thầy giáo PGS-TS. Trần Quang Vinh. Mọi tham khảo dùng trong luận văn đều đƣợc trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố. Mọi sao chép không hợp lệ, vi phạm quy chế đ o tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm. Tác giả luận văn (Ký và ghi rõ họ tên) ồng Phạm Khôi
  • 6. 5 Danh mục các ký hiệu và chữ viết tắt SD card Secure Digital card EIA Electronic Industries Alliance TIA Telecommunications Industry Association IC Integrated circuit MMC card Multi Media Card PC Personal computer LCD Liquid-crystal display TTL Time to live ASCII American Standard Code for Information Interchange RTU Remote terminal unit CRC Cyclic Redundancy Check UART Universal asynchronous Receiver/Transmitter USART Universal Synchronous Receiver/Transmitter SPI Serial Peripheral Interface TQFP Thin quad flat pack EEPROM Electrically Erasable Programmable Read-Only Memory SRAM Static random-access memory I/O Input/output SHT Digital humidity and temperature sensor MSB Most Significant Byte or Most Significant Bit LSB Least Significant Byte or Least Significant Bit RH Relative humidity RxD Receive data pin TxD Transmit data pin INT Interrupt FAT File Allocation Table RTC Real-time clock VB.NET Visual Basic.NET Danh mục các bảng Bảng 3.1: bảng véc tơ ngắt của ATmega128 Bảng 3.2: Danh sách lệnh của SHT1x Bảng 3.3: Các hệ số chuyển đổi tối ưu cho sensor độ ẩm V4 Bảng 3.4: Các hệ số bù nhiệt độ Bảng 3.5: Các hệ số bù nhiệt độ Bảng 3.6: Các tham số để tính toán điểm sương (Td). Danh mục các hình vẽ, đồ thị Hình 1.1: Sơ đồ tổng quan hệ thống Hình 1.2: Kho bảo quản tên lửa hàng không
  • 7. 6 Hình 2.1 : Mức giới hạn điện áp trong chuẩn RS-232 Hình 2.2: Cổng RS-232 trên PC Hình 2.3: Mạch giao tiếp RS-232 dùng IC Max232 Hình 2.4: Liên kết RS-422 điểm-điểm Hình 2.5: Cấu hình mạng 2-dây RS-485 Hình 2.6: Đường truyền với kết thúc cáp Hình 2.7: Mạng RS-485 với hai điện trở 120Ω kết thúc cáp Hình 2.8: Khung Modbus trên đường truyền nối tiếp Hình 2.9: Cấu trúc khung ký tự ASCII Hình 2.10: Cấu trúc khung ký tự RTU Hình 2.11: Sơ đồ trạng thái của master Hình 2.12: Sơ đồ trạng thái của slave Hình 3.1: Bố trí chân của ATMEGA128 Hình 3.2: Bản đồ bộ nhớ dữ liệu Hình 3.3: Sơ đồ khối đơn giản của khối USART Hình 3.4: Hình dạng và kích thước của cảm biến nhiệt ẩm SHT11 Hình 3.5: Độ chính xác và dải hoạt động của các loại cảm biến SHT Hình 3.6:Sơ đồ chân của SHT11 Hình 3.7:Mạch ứng dụng của SHT11 Hình 3.8: Chuỗi khởi tạo truyền “Transmission Start” Hình 3.9: Chuỗi khởi tạo kết nối Connetion Reset Sequence Hình 3.10: Ghi vào thanh ghi trạng thái Hình 3.11: Đọc thanh ghi trạng thái Hình 3.13: Ví dụ về chuỗi đo RH Hình 3.12: Tổng quan của chuỗi đo. TS=khởi tạo truyền, MSB=Byte tín hiệu cao nhất, LSB = Byte tín hiệu sau cùng, LSb= Bít tín hiệu cuối cùng. Bảng 6: Các hệ số chuyển đổi tối ưu cho sensor độ ẩm V4 Hình 3.13: Chuyển đổi từ SORH sang độ ẩm tương đối Bảng 3.3: Các hệ số bù nhiệt độ Bảng 3.4: Các hệ số bù nhiệt độ Bảng 3.5: Các tham số để tính toán điểm sương (Td). Hình 3.14: Bố trí chân của MMC và SD card Hình 3.15: IC CD4050 chuyển đổi mức tín hiệu giữa vi điều khiển và MMC/SD card Hình 4.1: Sơ đồ nguyên lý của master Hình 4.2: Sơ đồ nguyên lý khối nguồn Hình 4.3: Sơ đồ nguyên lý khối thu/phát dữ liệu Hình 4.4: Sơ đồ nguyên lý khối giao tiếp giữa master và PC Hình 4.5: Sơ đồ nguyên lý mạch thời gian thực DS1307 Hình 4.6: Sơ đồ nguyên lý mạch điều chỉnh thời gian Hình 4.7: Sơ đồ mạch in master Hình 4.8: Mạch in master sau khi lắp ráp linh kiện
  • 8. 7 Hình 4.9: Sơ đồ nguyên lý của slave Hình 4.10: Sơ đồ mạch in của các slave Hình 4.11: Mạch in slave sau khi lắp ráp linh kiện và chạy thử Hình 4.12: Tạo một Project mới trong CodeVisionAVR Hình 4.12: Lựa chọn dòng vi điều khiển Hình 4.13: Chọn loại vi điều khiển và tần số hoạt động Hình 4.24: Chọn ngắt ngoài và chế độ hoạt động của ngắt Hình 4.15: Cấu hình cho timer1 Hình 4.16: Cấu hình cho UART0 Hình 4.17: Cấu hình cho UART1 Hình 4.18: Cấu hình cho I2C giao tiếp với DS1307 Hình 4.19: Cấu hình để giao tiếp với LCD2004 Hình 4.20: Tạo và lưu Project Hình 4.21: Tạo một Project mới Hình 4.22: Lựa chọn dòng vi điều khiển Hình 4.23: Chọn loại vi điều khiển và tần số hoạt động Hình 4.24: Cấu hình cho UART Hình 4.25: Cấu hình giao tiếp với LCD 1602 Hình 4.26: Giao diện chương trình trên PC Hình 4.27: Giao diện chương trình khi hoạt động Hình 4.28: Chạy thử toàn bộ hệ thống
  • 9. 8 MỞ ẦU Hiện nay Quân đội ta đang bảo quản một số lƣợng lớn các trang bị quân sự, với khí hậu nhiệt đới, độ ẩm và nhiệt độ cao v bi n độ thăng giáng lớn ảnh hƣởng rất lớn tới tuổi thọ và khả năng sẵn sang chiến đấu của các trang bị quân sự. Theo các nghiên cứu về kỹ thuật nhiệt đới thì khoảng độ ẩm từ 40-60% là phù hợp cho hầu hết các loại vật liệu. Trong khoảng này các loại vật liệu từ kim loại đến phi kim ít bị ăm mòn nhất, khoảng độ ẩm n y cũng hạn chế sự phát triển của các loại nấm mốc. Với các vũ khí trang bị hiện đại thì đƣợc bảo quản trong điều kiện này là cần thiết. Hệ thống tôi dự kiến chế tạo sẽ gồm các modul đo nhiệt độ v độ ẩm của các hòm bảo quản tên lửa, các thông số đo đƣợc l cơ sở để điều khiển máy hút ẩm duy trì độ ẩm trong các thùng bảo quản từ 40-60%, các số liệu về nhiệt độ v độ ẩm của từng thùng bảo quản cũng đƣợc gửi về máy tính dựa trên giao thức Modbus qua đƣờng truyền RS-485 để hiển thị lên máy tính. Phần mềm trên máy tính có chức năng hiển thị độ ẩm hiện thời, trạng thái hoạt động của máy hút ẩm v lƣu các giá trị n y v o cơ sở dữ liệu trên máy tính. Ngoài việc lƣu giữ số liệu trên máy tính thì hệ thống còn có thể lƣu số liệu vào thẻ nhớ SD card, đảm bảo khi tắt máy tính hoặc khi đƣờng truyền có sự cố thì số liệu vẫn đƣợc lƣu giữ trong SD card. Hệ thống đƣợc thiết kế đơn giản, dễ vận hành, bảo trì và sửa chữa, có độ chính xác cao, giá thành rẻ các vật tƣ linh kiện hầu hết có sẵn trên thị trƣờng Việt Nam.
  • 10. 9 hƣơng 1: TỔNG QUAN 1.1. ơ đồ tổng quan hệ thống Hòm bảo quản 1 ATMEGA128 LCD2004 MAX232 DS1307 MMC/SD CARD MAX485 LCD1602 SHT11 MAX485 MASTER ATMEGA16 BUS RS485 BUS RS485 SLAVE 1 ... PC RELAY Máy hút ẩm 1 Hòm bảo quản N LCD1602 SHT11 MAX485 ATMEGA16 SLAVE N RELAY Máy hút ẩm N Hình 1.1: Sơ đồ tổng quan hệ thống Trên hình 1.1 hệ thống gồm 1 master và các slave đƣợc nối với nhau theo chuẩn truyền thông EIA/TIA-485. Master và các slave giao tiếp với nhau theo giao thức MODBUS RTU. Các thành phần chính của master: Vi điều khiển ATmega128, màn hình LCD2004 gồm 20 cột và 4 hàng, IC MAX232 giao tiếp với máy tính PC theo chuẩn RS-232, IC thời gian thực DS1307, thẻ nhớ để lƣu trữ dữ liệu nhiệt độ v độ ẩm theo chu kỳ đặt trƣớc, IC MAX485 nối với đƣờng truyền theo chuẩn EIA/TIA-485. Các thành phần chính của slave: Vi điều khiển ATmega16, màn hình LCD1602 gồm 16 cột và 2 hàng, cảm biến nhiệt độ, độ ẩm SHT11, rơ le để điều khiển máy hút ẩm, IC truyền nhận dữ liệu MAX485. Nhiệm vụ của master: - Chịu trách nhiệm điều khiển đƣờng truyền RS-485 dựa trên giao thức MOSBUS RTU để giao tiếp với các slave nhằm thu thập dữ liệu nhiệt độ, độ ẩm, điểm sƣơng, trạng thái các máy hút ẩm…
  • 11. 10 - Hiển thị các dữ liệu thu đƣợc lên màn hình LCD2004. - Truyền toàn bộ dữ liệu tới máy tính P thông qua đƣờng truyền RS-232. - ọc thông tin thời gian trên IC thời gian thực DS1307 rồi lƣu dữ liệu vào thẻ nhớ (MMC/SD card) theo chu kỳ đặt trƣớc. Nhiệm vụ của các slave: - Giao tiếp với cảm biến nhiệt độ, độ ẩm để lấy thông tin về nhiệt độ, độ ẩm, điểm sƣơng. - Hiển thị các giá trị này lên màn hình LCD 1602. - iều khiển máy hút ẩm để duy trì độ ẩm trong các thùng bảo quản trong khoảng từ 45% đến 55%. - Truyền các dữ liệu tới master khi đƣợc master yêu cầu. Nhiệm vụ của PC: - Nhận dữ liệu từ master qua cổng COM. - Hiển thị dữ liệu lên giao diện của chƣơng trình phần mềm thu thập số liệu. - Lƣu dữ liệu nhiệt độ, độ ẩm, điểm sƣơng, trạng thái hoạt động của các máy hút ẩm theo thời gian. 1.2. Mục tiêu đề tài - Nghiên cứu chế tạo thành công hệ thống mạng điều khiển và kiểm soát nhiệt độ, độ ẩm hƣớng tới ứng dụng trong bảo quản vũ khí, trang bị kỹ thuật trong quân đội. - Hệ thống gồm các modul đo nhiệt độ, độ ẩm trong các thùng bảo quản (các slave), đồng thời điều khiển máy hút ẩm duy trì độ ẩm trong khoảng từ 45%-55%. - Dữ liệu nhiệt độ, độ ẩm đƣợc truyền về master đƣợc lƣu trữ trong thẻ nhớ tại master. Khoảng cách tối đa giữa master và các slave là 1200m và có thể lớn hơn nếu sử dụng các bộ lặp. - Phần mềm trên máy tính sẽ thu thập dữ liệu do master truyền về, hiển thị lên giao diện m n hình v lƣu các số liệu nhiệt ẩm vào file excel. 1.3. Nội dung nghiên cứu 1.3.1. Nghiên cứu lý thuyết: - Chuẩn EIA RS-232-C - Chuẩn EIA/TIA-485 - Giao thức Modbus - Các linh kiện chính sử dụng trong hệ thống 1.3.2. Thiết kế hệ thống: - Thiết kế mạch nguyên lý và mạch in cho master - Thiết kế mạch nguyên lý và mạch in cho slave - Lập trình phần mềm cho master - Lập trình phần mềm cho slave - Lập trình phần mềm cho PC 1.4. Giới hạn đề tài Do thời gian nghiên cứu hạn chế nên tôi mới chỉ chế tạo mẫu gồm 1 master, 4 slave. Tuy nhiên hệ thống hoàn toàn có thể tăng số lƣợng slave lên 32 slave.
  • 12. 11 1.5. Ý nghĩa thực tiễn. Hình 1.2: Kho bảo quản tên lửa hàng không - Hệ thống có khả năng ứng dụng trong thực tiễn bảo quản vũ khí trang bị của Quân đội nhằm hạn chế ảnh hƣởng của khí hậu nhiệt đới l n vũ khí, trang bị, kéo dài tuổi thọ của vũ khí trang bị, đặc biệt l các vũ khí trang bị đắt tiền. - Hệ thống cũng có thể đƣợc ứng dụng trong các kho bảo quản quân trang, quân nhu, các kho lƣơng thực, thực phẩm…
  • 13. 12 hƣơng 2 Ơ Ở LÝ THUYẾT 2.1. Chuẩn EIA RS-232-C Chuẩn giao tiếp RS-232 là một trong những kỹ thuật đƣợc sử dụng rộng rãi hiện nay để nối ghép các thiết bị ngoại vi với máy tính. Nó là một chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là hai thiết bị, chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu l 12.5m đến 25.4m, tốc độ 20kbit/s đôi khi l tốc độ 115kbit/s với một số thiết bị đặc biệt. Chuẩn RS-232 đƣợc nối ra một dắc cắm (gọi là cổng COM). Khi sử dụng có thể dùng hai hay toàn bộ chân của dắc cắm này, nếu mục đích chỉ truyền hoặc nhận tín hiệu giữa hai thiết bị thì ta chỉ cần sử dụng hai dây (một dây truyền hoặc nhận và một dây nối đất). Ý nghĩa của chuẩn truyền thông nối tiếp là trong một thời điểm chỉ có một bít đƣợc gửi đi dọc theo đƣờng truyền. ác máy tính thƣờng có một hoặc hai cổng nối tiếp theo chuẩn RS-232 đƣợc gọi là cổng OM. húng đƣợc dùng để ghép nối cho chuột, modem, thiết bị đo lƣờng…Tr n main máy tính có loại 9 chân hoặc loại 25 chân tùy v o đời máy và main của máy tính. Việc thiết kế giao tiếp với cổng RS-232 cũng tƣơng đối dễ d ng, đặc biệt khi chọn chế độ hoạt động l không đồng bộ và tốc độ truyền dữ liệu thấp. 2.1.1. Những đặc điểm cần lƣu ý trong chuẩn RS-232 - Trong chuẩn RS-232 có mức giới hạn tr n v dƣới( logic 0 và 1) là 12V. Hiện nay đang đƣợc cố định trở kháng tải trong phạm vi từ 3000-7000 - Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ 3V đến 12V. - Tốc độ truyền nhận dữ liệu cực đại là 100kbps (ngày nay có thể lớn hơn). - Các lối vào phải có diện dung nhỏ hơn 2500pF. - Trở kháng tải phải lớn hơn 3000 nhƣng phải nhỏ hơn 7000 . - ộ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS-232 không vƣợt quá 15m nếu không sử dụng modem. - Các giá trị tốc độ truyền dữ liệu chuẩn: 50, 75, 110, 750, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, …, 56600, 115200bps. 2.1.2. Các mức điện áp thƣờng truyền RS-232 sử dụng phƣơng thức truyền thông không đối xứng, tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn v đất. Do đó ngay từ lúc mới ra đời nó đã mang vẻ lỗi thời của chuẩn TTL, nó vẫn sử dụng các mức điện áp tƣơng thích TTL để mô tả các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng tải và các trở kháng ra của bộ phát. Hình 2.1 : Mức giới hạn điện áp trong chuẩn RS-232
  • 14. 13 Mức điện áp của tiêu chuẩn RS-232 (chuẩn thƣờng đƣợc dùng bây giờ) đƣợc mô tả nhƣ sau: - Mức logic 0: +3V, +12V. - Mức logic 1: -12V, -3V. Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính vì từ -3V tới 3V là phạm vi không đƣợc định nghĩa, trong trƣờng hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vƣợt qua quãng quá độ trong một thời gian ngắn hợp lý. iều này dẫn tới việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đƣờng truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. a số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2kbit/s [2, 3]. 2.1.3. Cổng RS-232 trên PC Chức năng của các chân : - Chân 1 : data carier detect (DCD) là chân phát tín hiệu mang dữ liệu. - Chân 2 : Receive data (RxD) là chân nhận dữ liệu. - Chân 3 : Transmit Data (TxD) là chân truyền dữ liệu. - hân 4 : Data Termial Ready (DTR) l chân đầu cuối dữ liệu sẵn s ng đƣợc kích hoạt bởi bộ phận khi muốn truyền dữ liệu. - Chân 5 : Signal Ground (SG) chân mass của tín hiệu - Chân 6: Data set ready (DSR) chân dữ liệu sẵn s ng, đƣợc kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu. - Chân 7: Request to send chân yêu cầu gửi, bộ truyền đặt đƣờng này lên mức kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu. - Chân 9: Ring Indicate (RI) báo chuông cho biết là bộ phận đang nhận tín hiệu rung chuông. Hình 2.2: Cổng RS-232 trên PC 2.1.4. Truyền dữ liệu 2.1.4.1. Quá trình truyền dữ liệu. Truyền dữ liệu qua cổng nối tiếp RS-232 đƣợc thực hiện không đồng bộ. Do vậy nên tại một thời điểm chỉ có một bit đƣợc truyền. Bộ truyền gửi một bit bắt đầu (bit start) để thông báo cho bộ nhận biết một ký tự sẽ đƣợc gửi đến trong lần truyền bit tiếp theo. Bit này luôn bắt đầu bằng mức 0. Tiếp theo đó l các bit dữ liệu (bit data) đƣợc gửi dƣới dạng mã ASCII (có thể là 5,6,7, hay 8 bit dữ liệu) sau đó l một Parity bit (kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng( bit stop) có thể là 1 hay 2 bit dừng [2].
  • 15. 14 2.1.4.2. Tốc độ baud ây là một tham số đặc trƣng của RS-232. Tham số n y chính l đặc trƣng cho quá trình truyền dữ liệu qua cổng nối tiếp RS-232 là tốc độ truyền nhận dữ liệu hay còn gọi là tốc độ bit. Tốc độ bit đƣợc định nghĩa l số bit truyền đƣợc trong thời gian 1 giây. Tốc độ bit này phải đƣợc thiết lập ở bên phát và bên nhận đều phải có tốc độ nhƣ nhau ( tốc độ giữa vi điều khiển và máy tính phải chung nhau một tốc độ truyền bit). Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ baud. Tốc độ baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu đƣợc sử dụng để diễn tả bit đƣợc truyền còn tốc độ bit thì phản ánh tốc độ mà phần tử mã hóa dữ liệu đƣợc sử dụng để diễn tả bit đƣợc truyền. Khi một phần tử mã hóa một bit dữ liệu thì hai tốc độ bit và tốc độ baud là phải đồng nhất. Một số tốc độ baud thƣờng dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 56000, 115200. Trong thiết bị thƣờng dùng tốc độ baud là 19200. Khi sử dụng chuẩn nối tiếp RS-232 thì yêu cầu khi sử dụng chuẩn là thời gian chuyển mức logic không vƣợt qua 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải nhỏ. iều này làm giới hạn tốc độ baud và khoảng cách truyền. 2.1.4.3. Bit chẵn lẻ hay Parity bit ây l bit kiểm tra lỗi tr n đƣờng truyền. Thực chất của quá trình kiểm tra lỗi khi truyền dữ liệu là bổ sung thêm dữ liệu đƣợc truyền để tìm ra hoặc sửa một số lỗi trong quá trình truyền. Do đó trong chuẩn RS-232 sử dụng một kỹ thuật kiểm tra chẵn lẻ. Một bit chẵn lẻ đƣợc bổ sung vào dữ liệu đƣợc truyền để thấy số lƣợng các bit “1” đƣợc gửi trong một khung truyền là chẵn hay lẻ. Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi nhƣ l 1, 3, 5, 7, 9… Nếu nhƣ một bit mắc lỗi thì bit Parity bit sẽ trùng giá trị với trƣờng hợp không mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi n y không đƣợc sử dụng trong trƣờng hợp có khả năng một vài bit bị mắc lỗi. 2.1.5. Mạch giao tiếp RS-232 dùng IC max232 Hình 2.3: Mạch giao tiếp RS-232 dùng IC Max232 U6 MAX232 C1+ 1 C1- 3 C2+ 4 C2- 5 VCC 16 GND 15 V+ 2 V- 6 R1OUT 12 R2OUT 9 T1IN 11 T2IN 10 R1IN 13 R2IN 8 T1OUT 14 T2OUT 7 C1 1µF/25V C2 1µF/25V C3 1µF/25V C4 1µF/25V C5 1µF/25V P2 Toi PC(Female) 5 9 4 8 3 7 2 6 1 VCC TxD RxD
  • 16. 15 2.2. Chuẩn RS-422/RS-485 RS-422 và RS-485 l các t n thƣờng gọi cho 2 chuẩn truyền thông nối tiếp. Các chuẩn n y đƣợc quy ƣớc bởi Hiệp hội điện tử công nghiệp EIA (Electronics Industry Association) tên chính xác của các chuẩn này là EIA/TIA-422 và EIA/TIA-485. Các hệ thống truyền thông dựa trên RS-422 và RS-485 truyền các thông tin số trên cặp dây xoắn đôi từ các bộ phát tới các bộ thu. Các thiết bị có thể truyền nhận trong khoảng cách lên tới 4000 feet (1220 mét) khi không có bộ lặp. Các bộ truyền RS-422 có thể truyền tới 10 bộ nhận. Trong RS-485 32 bộ truyền cũng có thể dùng chung 1 đƣờng truyền. Tốc độ truyền tối đa của các hệ thống RS-422/RS-485 có thể lên tới 10 Mbit/s. Cả hai hệ thống đều dùng lối ra cân bằng và lối vào vi sai vì thế cho khả năng chống nhiễu tốt hơn so với chuẩn RS-232. Kết quả là chúng có khả năng truyền xa hơn v tốc độ truyền cao hơn so với chuẩn RS-232 [4, 6]. RS-422 là một lựa chọn tốt để mở rộng khoảng cách và tốc độ của các kết nối điểm-điểm. Trong các trƣờng hợp dữ liệu phải truyền qua một khoảng cách lớn v đi qua các vùng có nhiễu điện từ thì RS-422 có thể thay thế cho RS-232 với độ tin cậy cao. Hình 2.4: Liên kết RS-422 điểm-điểm RS-422 cũng có thể tạo ra liên kết điểm-đa điểm. Trong liên kết này, Master có thể truyền dữ liệu tới tất cả các Slave. Tuy nhi n để master có thể nhận dữ liệu trả lời của chỉ một slave trong một thời điểm thì phải sử dụng RS-485. RS-485 có thể đƣợc dùng trong các hệ thống mạng 2 dây hoặc 4 dây. Khả năng điều khiển đƣờng truyền 3 trạng thái của các bộ truyền RS-485 cho phép nhiều bộ truyền đƣợc kết nối tới một đôi dây theo cấu hình bus (truyền/nhận tr n cùng 1 đôi dây). Với hệ thống 4 dây, bộ truyền của master đƣợc kết nối tới tất cả các slave nhận tr n 1 đôi dây và tất cả các slave truyền đƣợc kết nối với master nhận tr n đôi dây còn lại [4]. RS-485 đƣợc sử dụng rộng rãi trong các hệ thống truyền thông công nghiệp. Các hệ thống truyền thông công nghiệp nhƣ PROFIBUS, INTERBUS, v các hệ thống khác đƣợc xây dựng dựa trên công nghệ RS-485. Các chuẩn EIA/TIA-422 và EIA/TIA-485 không quy định các giao thức. Chúng chỉ đơn giản là các chuẩn của lớp vật lý. ó nghĩa l RS-422 và RS-485 có thể đƣợc áp dụng trong nhiều hệ thống và ứng dụng khác nhau. Thƣờng thì các chuẩn n y đƣợc dùng cho các liên kết nối tiếp. Các hệ thống sử dụng giao thức MODBUS thƣờng đƣợc sử dụng trong các mạng đa điểm RS-485 [4, 5].
  • 17. 16 2.2.1. Cấu hình mạng 2-dây RS-485 Hình 2.5: Cấu hình mạng 2-dây RS-485 ƣờng truyền ba trạng thái của RS-485 cho phép truyền và nhận tín hiệu bán song công trên cùng một đôi dây, đây còn đƣợc gọi là cấu hình 2-dây, ngoài ra một dây đất phải đƣợc th m v o để nối đất chung các trạm thu phát [4]. 2.2.2. Cấu hình mạng 4-dây RS-485 ũng giống nhƣ hệ thống mạng 2-dây, cái t n “4-dây” đôi khi gây nhầm lẫn. Trong thực tế hệ thống 4-dây phải sử dụng tới 5 dây để đảm bảo độ tin cậy. ặc trƣng cho hệ thống 4-dây là việc thực thi giao thức master-slave. Trong trƣờng hợp này bộ truyền của master đƣợc nối với đôi dây của tất cả các bộ nhận của các slave. ôi dây còn lại nối tất cả các bộ truyền của slave với bộ nhận của master. Dây thứ 5 là dây tín hiệu nối đất chung, nó nối tới tất cả các nút để đảm bảo VCM nằm trong giới hạn cho phép [4]. Hình 2.6: Cấu hình mạng 4-dây RS-485
  • 18. 17 2.2.3. Kết thúc cáp Kết thúc cáp đƣợc dùng để phối hợp trở kháng giữa các nút với trở kháng của đƣờng truyền. Các tín hiệu số liệu truyền tr n đƣờng dây với tốc độ thấp hơn một chút so với tốc độ ánh sáng []. Khi các tín hiệu này tới điểm cuối của đƣờng truyền , nếu đƣờng truyền không có kết thúc cáp với trở kháng bằng trở kháng đƣờng truyền thì tín hiệu đƣợc truyền sẽ không đƣợc bảo toàn vì một phần tín hiệu sẽ phản xạ ngƣợc trở lại đƣờng truyền. Các tín hiệu phản xạ sẽ gây nhiễu cho tín hiệu thật và có thể gây ra lỗi, do đó cần phải hạn chế thấp nhất các tín hiệu phản xạ. Trong thực tế thƣờng sử dụng giải pháp thêm vào một điện trở song song nối giữa 2 đầu đƣờng truyền A và B của bộ thu để phối hợp trở kháng với cáp truyền. Giá trị n y đƣợc quy định bởi nhà máy sản xuất cáp (120Ω l giá trị quy ƣớc chung). Giá trị n y đặc trƣng cho trở kháng thực tế của đƣờng truyền và nó không phải là hàm của độ d i đƣờng truyền. Không n n dùng điện trở kết thúc cáp bé hơn 90Ω [4, 5]. Hình 2.6: Đường truyền với kết thúc cáp 2.2.4. ịnh thiên trong mạng RS-485 Khi một mạng RS-485 ở trạng thái rỗi (không có dữ liệu tr n đƣờng truyền) tất cả các bộ phát RS-485 ở trạng thái thụ động, các bộ phát ở trạng thái trở kháng cao. Các bộ thu đƣợc kích hoạt để nghe ngóng dữ liệu tiếp theo. Trong suốt thời gian này đƣờng truyền phải đƣợc cấu hình ở trạng thái rỗi (mặt nạ logic 1, VAB>200mV) vì thế khi một bộ phát muốn khởi tạo việc gửi dữ liệu nối tiếp thì trƣớc tiên phải truyền bit start bằng cách kéo đƣờng truyền từ mức logic 1 về mức logic 0. Tuy nhiên, vì tất cả các bộ phát đều đang ở trạng thái trở kháng cao vì vậy không có gì để giữ đƣờng truyền trong trạng thái rỗi vì không có bộ phát n o đang hoạt động trên mạng. ƣờng truyền bị rơi v o trạng thái bất định. Nếu VAB<-200mV thì mức logic không đƣợc xác định (mặc nhi n đầu ra của các bộ nhận sẽ ấn định giá trị của bit cuối cùng đã nhận) [4, 6]. ể có thể duy trì đƣờng truyền ở trạng thái rỗi, các điện trở định thiên phải đƣợc thêm vào ở các đầu ra để khống chế điện áp tr n đƣờng truyền trong trạng thái rỗi. Giá trị của các điện trở định thiên không phụ thuộc v o điện trở kết thúc cáp và số các nút trên mạng. Mục đích của nó là tạo ra dòng điện một chiều đủ lớn trong mạng để duy trì điện áp trên toàn bộ đƣờng dây (khi các bộ phát không hoạt động) nghĩa l nó sẽ tạo ra một mặt nạ, hay tạo ra trạng thái logic 1.Chuẩn EIA/TIA-485 quy định mặt nạ phải tạo ra điện áp tr n đƣờng truyền lớn hơn -200mV(VAB). ác điện trở định thiên có thể đƣợc gắn ở bất cứ nơi n o tr n mạng hoặc có thể đƣợc chia ra và gắn ở nhiều nút. Trong thực tế thì điện trở định thiên là tổng trở mắc song song của tất cả các điện trở định thiên trong hệ thống.
  • 19. 18 Hình 2.7: Mạng RS-485 với hai điện trở 120Ω kết thúc cáp Giả sử một hệ thống có 10 bộ thu phát RS-485 đƣợc nối với nhau theo mạng hình bus (daisy-chain network). Hai điện trở kết thúc cáp 120Ω đƣợc nối vào tại hai điểm kết thúc của mạng. Mỗi nút có 2 điện trở định thi n 4.7kΩ, một điện trở kéo lên và một điện trở kéo xuống. Mỗi nút RS-485 có trở kháng tải đầu vào là 12K Ω. Nhƣ vậy 10 nút nối song song có tổng trở là 1200 Ω. Hai điện trở kết thúc cáp 120 Ω cho tổng trở là 60 Ω. Kết qua là tổng trở kháng tải mà tín hiệu truyền qua l ≈ 57 Ω. Mƣời nút mạng, mỗi nút có các điện trở định thiên là 4.7k Ω (một điện trở kéo l n v 1 điện trở kéo xuống) thì tổng trở định thiên là 470 Ω điện trở kéo lên và 470 Ω điện trở kéo xuống. Nhƣ vậy tổng trở tính từ 5V tới đất là 470 Ω + 57 Ω + 470 Ω = 997 Ω. Suy ra dòng qua các phân áp n y l 5V/997 Ω ≈ 5m [4]. Do đó điện áp tạo ra tr n đƣờng truyền là VAB = 5mA x 57 Ω = -285mV cao hơn mức tiêu chuẩn thấp nhất là -200mV (tiêu chuẩn quy định VAB phải lớn hơn - 200mV) [4, 6]. Cần lƣu ý rằng dòng điện có quan hệ mật thiết với các điện trở kết thúc cáp và các điện trở kết thúc cáp là các tải chính. Việc th m v o các nút có các điện trở định thiên sẽ l m tăng điện áp của đƣờng truyền ở trạng thái rỗi nhƣng dòng ti u thụ cũng
  • 20. 19 tăng theo. Việc giảm các nút lại làm cho điện áp đƣờng truyền ở trạng thái rỗi giảm đi và có thể không đủ (dƣới 200mV), vì thế cần phải tính toán các giá trị n y để hệ thống hoạt động tin cậy. 2.3. Giao thức MODBUS 2.3.1. MODBUS là gì? MODBUS do Modicon (hiện nay thuộc Schneider Electric) phát triển năm 1979, là một phƣơng tiện truyền thông với nhiều thiết bị thông qua một cặp dây xoắn đơn. Ban đầu, nó hoạt động trên RS-232, nhƣng sau đó nó sử dụng cho cả RS-485 để đạt tốc độ cao hơn, khoảng cách d i hơn v nhiều slave trên một bus truyền. MODBUS đã nhanh chóng trở thành tiêu chuẩn thông dụng trong ngành tự động hóa. MODBUS là một hệ thống “master - slave”, master đƣợc kết nối với một hay nhiều slave. Master thƣờng là một PLC, PC, DCS, hay RTU. Slave MODBUS RTU thƣờng là các thiết bị hiện trƣờng. Khi một master MODBUS RTU muốn có thông tin từ thiết bị slave, master sẽ gửi một thông điệp về dữ liệu cần, tóm tắt dò lỗi tới địa chỉ thiết bị slave. Mọi thiết bị khác trên mạng sẽ nhận thông điệp n y nhƣng chỉ có thiết bị n o đƣợc chỉ định mới có phản ứng. Các thiết bị slave trên mạng MODBUS không thể tạo ra kết nối, chúng chỉ có thể phản ứng. Nói cách khác, slave sẽ gửi data về cho master chỉ khi master có yêu cầu. Ba phiên bản MODBUS phổ biến nhất đƣợc sử dụng ngày nay là: - MODBUS ASCII. - MODBUS RTU. - MODBUS/TCP. Tất cả thông điệp đƣợc gửi dƣới cùng một format. Sự khác nhau duy nhất giữa 3 loại MODBUS là cách thức thông điệp đƣợc mã hóa. Với MODBUS ASCII, mọi thông điệp đƣợc mã hóa bằng hexadecimal, sử dụng đặc tính S II 4 bit. ối với mỗi một byte thông tin, cần có 2 byte truyền thông, gấp đôi so với MODBUS RTU hay MODBUS/TCP. MODBUS ASCII chậm nhất trong 3 giao thức tr n, nhƣng lại thích hợp với modem điện thoại hay kết nối sử dụng sóng radio do ASCII sử dụng các tính năng phân định thông điệp. Do tính năng phân định này, mọi rắc rối trong phƣơng tiện truyền dẫn sẽ không làm thiết bị nhận dịch sai thông tin. iều này quan trọng khi đề cập đến các modem chậm, điện thoại di động, kết nối ồn hay các phƣơng tiện truyền thông khó tính khác. ối với MODBUS-RTU, dữ liệu đƣợc mã hóa theo hệ nhị phân và chỉ cần một byte truyền thông cho một byte dữ liệu. ây l thiết bị lí tƣởng đối với RS-232 hay mạng RS-485 đa điểm, tốc độ baud từ 1200 đến 115.200. Tốc độ baud phổ biến nhất l 9600 đến 19200. MODBUS-RTU là giao thức công nghiệp đƣợc sử dụng rộng rãi nhất. MODBUS/T P đơn giản là MODBUS qua Ethernet. Thiết bị Master không kết nối trực tiếp với các thiết bị slave, thay v o đó các địa chỉ IP đƣợc sử dụng. Với MODBUS/TCP, dữ liệu MODBUS đƣợc tóm lƣợc đơn giản trong một gói T P/IP. Do đó, bất cứ mạng Ethernet hỗ trợ MODBUS/IP sẽ có hỗ trợ MODBUS/TCP. 2.3.2. Nguyên tắc hoạt động của MODBUS MOSBUS sử dụng giao thức master-slave. Tại một thời điểm chỉ có một master đƣợc kết nối với bus và một hoặc vài slave (tối đa l 247 slave) cùng kết nối tới đƣờng truyền nối tiếp. Chỉ master mới có quyền gửi yêu cầu, các slave không đƣợc truyền dữ
  • 21. 20 liệu nếu không nhận đƣợc yêu cầu từ master. Các slave không đƣợc giao tiếp với nhau. Tại một thời điểm master chỉ giao khởi tạo giao tiếp với 1 slave [7, 8]. Khung bản tin của mạng Modbus chuẩn gồm 4 trƣờng chính theo thứ tự: Trƣờng địa chỉ, trƣờng mã h m, trƣờng dữ liệu, trƣờng kiểm tra lỗi. Master gửi bản tin có trƣờng địa chỉ nằm đầu ti n, địa chỉ này chỉ tới thiết bị cần ra yêu cầu. Slave sẽ kiểm tra bus liên tục đến khi nhận đƣợc địa chỉ của mình. Lúc này slave sẽ kiểm tra mã h m để xem yêu cầu cần thực hiện, ngoài ra còn có thông tin bổ trợ để thực hiện yêu cầu đó trong trƣờng dữ liệu. Cuối cùng là thông tin về lỗi trong trƣờng kiểm tra lỗi để xem bản tin nhận đƣợc có chính xác không. - Hai thành phần chính của giao thức Modbus l trƣờng dữ liệu v trƣờng mã hàm, hai thành phần còn lại sẽ bỏ đi khi truyền trong mạng cấp cao hơn. Hình 2.8: Khung Modbus trên đường truyền nối tiếp ADU: Applicantion Data Unit PDU: Protocol Data Unit - Kích thƣớc lớn nhất có thể có thể truyền tr n đƣờng truyền RS-485 là 256 byte tƣơng ứng với lớp DU. Do đó lớp PDU có tối đa: 256-1 byte địa chỉ - 2 byte kiểm tra lỗi = 253 byte [7]. Nếu phát hiện lỗi trong bản tin, bên nhận sẽ dừng truyền. Quá một thời gian trễn n o đó (time out), master sẽ coi là có lỗi và quyết định h nh động phù hợp. Trong trƣờng hợp đặc biệt, slave nhận đƣợc thông báo không lỗi nhƣng vì một lý do khác, nó không thể thực hiện đƣợc yêu cầu, một thông báo theo kiểu “exception response” sẽ đƣợc tạo ra và gửi cho master để master định đoạt h nh động tiếp theo. Master có thể gửi yêu cầu tới riêng một slave n o đó bằng cách đƣa địa chỉ slave đó v o trƣờng địa chỉ hoặc gửi bản tin quảng bá tới tất cả các slave (đƣa giá trị 0 v o trƣờng địa chỉ), lúc này slave sẽ không gửi bản tin trả lời. Có hai kiểu định dạng khung bản tin khác nhau: ASCII và RTU, mỗi kiểu có ƣu điểm riêng. Hai kiểu này chỉ dùng với mạng modbus chuẩn. Chế độ ASCII Khi các thiết bị trong một mạng Modbus chuẩn giao tiếp với chế độ ASCII (American Standard Code for Information Interchange), mỗi byte trong thông báo đƣợc gửi thành hai ký tự S II 7 bit, trong đó mỗi ký tự biểu diễn một chữ số hex. Ƣu điểm của chế độ truyền này là nó cho phép một khoảng thời gian trống tối đa một giây giữa hai ký tự mà không gây ra lỗi. Cấu trúc của một ký tự khung gửi đi đƣợc thể hiện nhƣ hình 2.9. Mỗi ký tự khung bao gồm:  1 bit khởi đầu (start bit).  7 bit biểu diễn một chữ số hex của byte cần gửi dƣới dạng ký tự ASCII (0 -9 và A – F), trong đó bit thấp nhất đƣợc gửi đi trƣớc.
  • 22. 21  1 bit parity chẵn/lẻ, nếu sử dụng parity.  1 bit kết thúc (stop bit) nếu sử dụng parity hoặc 2 bit kết thúc nếu không sử dụng parity. Hình 2.9: Cấu trúc khung ký tự ASCII Chế độ RTU Khi các thiết bị trong một mạng Modbus chuẩn đƣợc đặt chế độ RTU, mỗi byte trong thông báo đƣợc gửi thành một ký tự 8 bit. Ƣu điểm lớn nhất của chế độ truyền này so với chế độ ASCII là hiệu suất cao hơn. Tuy nhi n, mỗi thông báo phải đƣợc truyền thành một dòng liên tục. Cấu trúc một ký tự khung gửi đi đƣợc thể hiện nhƣ hình 2.10. Hình 2.10: Cấu trúc khung ký tự RTU Mỗi ký tự khung bao gồm:  1 bit khởi đầu (start bit).  8 bit của byte thông báo cần gửi, trong đó bit thấp nhất đƣợc gửi đi trƣớc.  1 bit parity chẵn/lẻ nếu sử dụng parity.  1 bit kết thúc (stop bit) nếu sử dụng parity hoặc 2 bit kết thúc nếu không sử dụng parity). 2.3.3. ơ đồ trạng thái của Modbus ơ đồ trạng thái master: - Trạng thái “idle” = không có y u cầu cần xử lý. ây l trạng thái khởi tạo sau khi bật nguồn. Một yêu cầu chỉ có thể đƣợc gửi đi trong trạng thái “idle”. Sau khi gửi yêu cầu, master rời khỏi trạng thái “idle” v không đƣợc gửi yêu cầu thứ 2 tại thời điểm này. - Khi một yêu cầu ở chế độ unicast đƣợc gửi tới 1 slave, master chuyển tới trạng thái “Waiting for reply” v một “Respone Time-out” bắt đầu chạy. iều này tránh cho master rơi v o tình trạng chờ đợi trả lời vô thời hạn trong trạng thái “Waiting for reply”. Giá trị của Time-out tùy thuộc vào từng ứng dụng.
  • 23. 22 - Khi nhận đƣợc trả lời, master kiểm tra trả lời trƣớc khi xử lý dữ liệu. Việc kiểm tra có thể phát hiện ra lỗi, hoặc lỗi khung dữ liệu nhận, đây l tình huống không mong đợi. Trong trƣờng hợp này có thể yêu cầu gửi lại. - Nếu không nhận đƣợc trả lời, thì khi hết thời gian time-out, một lỗi có thể đƣợc tạo ra, sau đó master trở về trạng thái “idle”. Master có thể yêu cầu gửi lại. Số lần yêu cầu gửi lại phụ thuộc vào việc thiết lập master. Hình 2.11: Sơ đồ trạng thái của master - Khi một yêu cầu quảng bá (broadcast) đƣợc master gửi lên bus nối tiếp thì không có các đáp ứng từ các slave. Tuy nhiên master cần duy trì thời gian trên để các slave có thời gian xử lý trƣớc khi gửi 1 yêu cầu mới. Trễ n y đƣợc gọi là “Turnaround delay” vì vậy master đi v o trạng thái “Waiting Turnaroud delay” trƣớc khi trở về trạng thái “idle” v trƣớc khi có thể gửi một yêu cầu mới. - Trong chế độ unicast time-out phải đƣợc đặt đủ d i để slave đủ thời gian nhận và xử lý yêu cầu vì thế Turnaround delay phải ngắn hơn tim-out. Time-out từ 1 giây tới vài giây tại tốc đôk 9600bps bsg Turnaround delay khoảng từ 100ms đến 200ms. - Lỗi khung bao gồm: 1. Lỗi khi kiểm tra bit Parity, 2. Lỗi khi kiểm tra các bit dƣ đƣợc thêm vào [7]. ơ đồ trạng thái slave Hình 2.12: Sơ đồ trạng thái của slave
  • 24. 23 - Trạng thái “idle” = không có y u cầu cần xử lý. ây l trạng thái khởi tạo sau khi bật nguồn. - Khi nhận đƣợc 1 yêu cầu, slave kiểm tra gói trƣớc khi thực hiện h nh động đƣợc yêu cầu trong gói. Các lỗi có thể xảy ra là: lỗi format trong yêu cầu, sai hành động, … trong trƣờng hợp lỗi, một đáp ứng cần phải đƣợc đƣợc gửi tới master. - Khi hoàn tất h nh động yêu cầu, một bản tin unicast phải đƣợc định dạng và gửi tới master. - Nếu slave phát hiện ra lỗi trong khung nhận, thì sẽ không có đáp ứng trở lại master [7]. 2.4. Kỹ thuật CRC CRC (Cyclic Redundancy Check) là một phƣơng pháp để phát hiện lỗi bằng cách gắn thêm một khối bit phía sau khối dữ liệu. CRC là một kỹ thuật mạnh để phát hiện lỗi, vì vậy nó đƣợc dùng rộng rãi trong mọi hệ thống giao tiếp dữ liệu. Các bit bổ sung thêm vào các bit thông tin đƣợc gọi là các bit CRC. Những bit này có thể là 16 hoặc 32. Nếu các bit bổ sung là 16, R đƣợc biểu diễn nhƣ R -16. CRC-32 sử dụng 32 bit bổ sung. ó l những tiêu chuẩn quốc tế cho việc tính toán của CRC-16 và CRC-32. Việc nhận lỗi sử dụng CRC là rất đơn giản. Ở bên truyền, R đƣợc thêm vào các bit thông tin. Khi việc nhận kết thúc, bên nhận tính toán CRC từ những bit thông tin và nếu CRC tích hợp CRC nhận, vậy thì bên nhận biết đƣợc những bit thông tin là đúng. R -16 và CRC-32 là hai thuật toán tiêu chuẩn đƣợc sử dụng để tính chu kỳ kiểm tra dƣ thừa. Các bit CRC bổ sung (16 v 32) đƣợc nối thêm vào các bit thông tin ở bên phát. Tại phía thu, các CRC nhận đƣợc so sánh với ƣớc tính. Nếu phù hợp, các bit thông tin đƣợc coi l đã nhận đƣợc một cách chính xác. Nếu không phù hợp, nó cho thấy rằng có những sai sót trong các bit thông tin. 2.3.1. Lý thuyết CRC Một xâu bít bất kỳ đƣợc xem nhƣ một tập các hệ số (0 và 1) của một đa thức đại số. Nếu xâu gồm k bít thì đa thức tƣơng ứng sẽ có bậc là k-1 gồm các số hạng từ x0 đến xk-1. Ví dụ: 110001 x5 + x4 + x0 = x5 + x4 + 1 Phƣơng pháp R sẽ xây dựng một xâu các bít kiểm tra và ghép vào xâu bít cần truyền, đƣợc gọi l dãy hecksum. Dãy hecksum đƣợc xây dựng nhƣ sau: - Chọn trƣớc một đa thức gọi l đa thức sinh G(x) - hecksum đƣợc tìm thoả mãn điều kiện đa thức tƣơng ứng với xâu ghép gồm xâu gốc và checksum phải chia hết (Modulo 2) cho G(x). - Khi nhận đƣợc xâu bít, để kiểm soát lỗi lấy đa thức nhận đƣợc chia (Modulo 2) cho đa thức sinh G(x). Nếu không chia hết thì chắc chắn có lỗi, trƣờng hợp ngƣợc lại chƣa khẳng định là không có lỗi. 2.3.2. Thuật toán CRC Giả sử đa thức sinh đƣợc chọn là G(x) có bậc là r xâu bít cần truyền tƣơng ứng với đa thức M(x) có bậc m .
  • 25. 24 ác bƣớc để xây dựng dãy hecksum nhƣ sau: - Thêm r bits 0 vào cuối xâu bits cần truyền xâu ghép sẽ gồm đƣợc tìm thoả mãn điều kiện đa thức tƣơng ứng với xâu ghép gồm (m + r) bits tƣơng ứng với đa thức xr M(x). - hia Modulo 2 xâu bits tƣơng ứng xr M(x) cho xâu bits tƣơng ứng với G(x). - Lấy số bị chia ở bƣớc trên trừ đi Modulo 2 cho số d. Kết quả sẽ l xâu bít đƣợc truyền đi ( xâu gốc ghép với Checksum). Ký hiệu đa thức tƣơng ứng cho xâu đó l P(x). Rõ r ng P(x) chia hết cho G(x). Khi nhận, giả sử xâu bits nhận đƣợc có đa thức tƣơng ứng là Q(x) chia modulo 2 cho G(x). Giả thiết rằng Q(x) = P(x) + E(x), trong đó E(x) đƣợc gọi là đa thức lỗi. Ví dụ: Giả sử xâu gốc là 1101011011 suy ra M(x) = x9 + x8 + x6 + x4 + x3 + x + 1 có bậc m = 9; Chọn 10011 tƣơng ứng G(x)= x4 + x + 1 (r=4). - Bƣớc1. Xâu gốc ghép 4 bits 0 ta đƣợc 11010110110000. - Bƣớc 2. Chia modulo 2 11010110110000 /(modulo2) 10011 ta đƣợc thƣơng l 1100001010 v phần dƣ l 1110. - Bƣớc 3. Xâu cần truyền là 11010110110000 - (modulo2) 1110 = 11010110111110 l P(x). Theo phƣơng pháp này việc lựa chọn đa thức sinh chuẩn G(x) sẽ giúp cho việc phát hiện lỗi rất hiệu quả. Hiện nay ngƣời ta xây dựng 3 đa thức sinh chuẩn quốc tế: CRC – 12 = x12 + x11 + x3 + x2 + x + 1 CRC – 16 = x16 + x15 + x2 + 1 CRC – CCITT = x16 + x12 + x5 + 1
  • 26. 25 hƣơng 3 CÁC LINH KIỆN CHÍNH S DỤNG 3.1. ATmega128 3.1.1. Giới thiệu về ATmega128 Vi điều khiển AVR do hãng Atmel (Hoa Kì) sản xuất đƣợc gới thiệu lần đầu năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR (nhƣ T tiny 13, Ttiny 22…) có kích thƣớc bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR (chẳn hạn AT90S8535, AT90S8515…) có kích thƣớc bộ nhớ vào loại trung bình và mạnh hơn l dòng Mega (nhƣ Tmega32, ATmega128…) với bộ nhớ có kích thƣớc v i Kbyte đến vài trăm Kb cùng với các bộ ngoại vi đa dạng đƣợc tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip (dòng LCD AVR). Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản giữa các dòng chình là cấu trúc ngoại vi, còn nhân thì vẫn nhƣ nhau. ặt biệt, năm 2008, tmel lại tiếp tục cho ra đời dòng AVR mới là XmegaAVR, với những tính năng mạnh mẽ chƣa từng có ở các dòng VR trƣớc đó. ó thể nói XmegaAVR là dòng MCU 8 bit mạnh mẽ nhất hiện nay. Những Tính Năng hính ủa ATmega128: - L dòng dòng VR 8 bit có hiệu năng cao, công suất ti u thụ thấp - ó ki n trúc RIS cải tiến + Tập lệnh đầy đủ với 133 lệnh, hầu hết các lệnh chỉ thực hiện trong một chu kỳ xung nhịp đồng hồ. - 32x8 thanh ghi gồm các thanh ghi mục đích chung v các thanh ghi điều khiển ngoại vi. - ROM : 128 Kbytes - SRAM: 4Kbytes - EEPROM : 4Kbytes - 64 thanh ghi I/O - 160 thanh ghi v o ra mở rộng - 32 thanh ghi đa mục đích. - 2 bộ định thời 8 bit (0,2). - 2 bộ định thời 16 bit (1,3). - Bộ định thời watchdog - Bộ dao động nội R tần số 1 MHz, 2 MHz, 4 MHz, 8 MHz - D 8 k nh với độ phân giải 10 bit (Ở dòng Xmega l n tới 12 bit ) - 2 kênh PWM 8 bit - 6 k nh PWM có thể lập trình thay đổi độ phân giải từ 2 tới 16 bit - Bộ so sánh tƣơng tự có thể lựa chọn ngõ v o - Hai khối US RT lập trình đƣợc - Khối truyền nhận nối tiếp SPI - Khối giao tiếp nối tiếp 2 dây TWI - Hỗ trợ boot loader - 6 chế độ tiết kiệm năng lƣợng - Lựa chọn tần số hoạt động bằng phần mềm - óng gói 64 chân kiểu TQFP. - Tần số tối đa 16MHz - iện thế : 4.5v - 5.5v
  • 27. 26 Hình 3.1: Bố trí chân của ATMEGA128 3.1.2. Cấu trúc bộ nhớ Bộ nhớ vi điều khiển AVR có cấu trúc Harvard là cấu trúc có đƣờng Bus riêng cho bộ nhớ chƣơng trình v bộ nhớ dữ liệu. Bộ nhớ VR đƣợc chia làm 2 phần chính: Bộ nhớ chƣơng trình (program memory) và bộ nhớ dữ liệu (Data memory). Bộ Nhớ hƣơng Trình : Bộ nhớ chƣơng trình của AVR là bộ nhớ Flash có dung lƣợng 128 K bytes. Bộ nhớ chƣơng trình có độ rộng bus là 16 bit. Những địa chỉ đầu tiên của bộ nhớ chƣơng trình đƣợc dùng cho bảng véc tơ ngắt (xem chi tiết về bảng véc tơ ngắt ở chƣơng 4). Cần để ý là ở vi điều khiển ATmega128 bộ nhớ chƣơng trình còn có thể đƣợc chia làm 2 phần : phần boot loader (Boot loader program section) và phần ứng dụng (Application program section). Phần boot loader chứa chƣơng trình boot loader. hƣơng trình Boot loader là một phần mềm nhỏ nạp trong vi điều khiển v đƣợc chạy lúc khởi động. Phần mềm này có thể tải vào trong vi điều khiển chƣơng trình của ngƣời sử dụng v sau đó thực thi chƣơng trình n y. Mỗi khi reset vi điều khiển CPU sẽ nhảy tới thực thi chƣơng trình boot loader trƣớc, chƣơng trình boot loader sẽ dò xem có chƣơng trình n o cần nạp v o vi điều khiển hay không, nếu có chƣơng trình cần nạp, boot loader sẽ nạp chƣơng trình v o vùng nhớ ứng dụng (Application program section), rồi thực thi chƣơng trình n y. Ngƣợc lại, boot loader sẽ chuyển tới chƣơng trình ứng dụng có sẵn trong vùng nhớ ứng dụng để thực thi chƣơng trình n y. Phần ứng dụng (Application program section ) là vùng nhớ chứa chƣơng trình ứng dụng của ngƣời dùng. Kích thƣớc của phần boot loader và phần ứng dụng có thể tùy chọn. Bộ Nhớ Dữ Liệu : Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là bộ nhớ SRAM và bộ nhớ EEPROM. Tuy cùng là bộ nhớ dữ liệu nhƣng hai bộ nhớ này lại tách biệtnhau v đƣợc đánh địa chỉ riêng [10]. Bộ nhớ SRAM có dụng lƣợng 4 K bytes, Bộ nhớ SRAM có hai chế độ hoạt động là chế độ thông thƣờng và chế độ tƣơng thích với ATmega103, muốn thiết lập bộ
  • 28. 27 nhớ SRAM hoạt động theo chế độ nào ta sử dụng bit cầu chì M103C (M103C fuse bit (9)). Bộ nhớ SRAM ở chế độ bình thƣờng : Ở chế độ bình thƣờng bộ nhớ SRAM đƣợc chia thành 5 phần: Phần đầu là 32 thanh ghi chức năng chung (General Purpose Register) R0 đến R31 có địa chỉ từ $0000 tới $001F. Phần thứ 2 là không gian nhớ vào ra với 64 thanh ghi v o ra ( I/O Register ) có địa chỉ từ $0020 tới $005F. Phần thứ 3 dùng cho vùng nhớ dành cho các thanh ghi vào ra mở rộng ( Extended I/O Registers ) có địa chỉ từ $0060 tới $00FF. Phần thứ 4 là vùng SRAM nội với 4096 byte có địa chỉ từ $0100 tới $10FF. Phần thứ 5 là vùng nhớ SRAM ngoài ( External SRAM ) bắt đầu từ địa chỉ $1100, vùng SRAM mở rộng này có thể mở rộng l n đến 64 K byte. Khi nói bộ nhớ SRAM có dung lƣợng 4 K byte là nói tới phần thứ 4 ( SRAM nội ). Nếu tính cả các thanh ghi thì bộ nhớ SRAM trong chế độ bình thƣờng sẽ là 4.25 K byte = 4352 byte [10]. Bộ nhớ SRAM ở chế độ tƣơng thích mega103 Ở chế này bộ nhớ SRAM cơ bản cũng giống ở chế độ bình thƣờng, ngoại trừ phần thứ 3 là vùng nhớ dành cho các thanh ghi vào ra mở rộng không tồn tại, ngo i ra kích thƣớc của phần SRAM nội (internal SRAM) chỉ có 4000 byte so với 4096 byte ở chế độ bình thƣờng. Hình 2.2 thể hiện sơ đồbộ nhờ dữ liệu ở cả hai chế độ : Bình thƣờng v tƣơng thích Tmega103. Từ hình 3.2 ta thấy nếu cấu hình để bộ nhớ SRAM hoạt động ở chế độ tƣơng thích ATmega103 thì ta sẽ bị mất đi 160 thanh ghi v o ra mở rộng (extended I/O Register), là những thanh ghi đóng vai trò quan trọng trong các chế độ hoạt động của vi điều khiển [10]. Hình 3.2: Bản đồ bộ nhớ dữ liệu A : Chế độ bình thường B: Chế độ tương thích ATmega103 Bộ nhớ EEPROM : ây l bộ nhớ dữ liệu có thể ghi xóa ngay trong lúc vi điều khiển đang hoạt động và không bị mất dữ liệu khi nguồn điện cung cấp bị cắt. Có thể ví bộ nhớ dữ liệu EEPROM giống nhƣ l ổ cứng ( Hard disk ) của máy vi tính. Với vi điều khiển ATmega128, bộ nhớ EEPROM có kích thƣớc là 4 Kbyte. EEPROM
  • 29. 28 đƣợc xem nhƣ l một bộ nhớ v o ra đƣợc đánh địa chỉ độc lập với SR M, điều này có nghĩa l ta cần sử dụng các lệnh in, out … khi muốn truy xuất tới EEPROM. 3.1.3. Các cổng vào ra Cổng vào ra là một trong số các phƣơng tiện để vi điều khiển giao tiếp với các thiết bị ngoại vi. ATmega128 có cả thảy 7 cổng ( port ) vào ra 8 bit là : PortA, PortB, Port , PortD, PortE, PortF, PortG, tƣơng ứng với 56 đƣờng vào ra. Các cổng vào ra của AVR 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 (input ) hay hƣớng ra (output ). Tất các các cổng vào ra của VR điều có tính năng ọc – Chỉnh sửa – Ghi ( Read – Modify – write ) khi sử dụng chúng nhƣ l các cổng vào ra số thông thƣờng. iều n y có nghĩa l khi ta thay đổi hƣớng của một chân n o đó thì nó không làm ảnh hƣởng tới hƣớng của các chân khác. Tất cả các chân của các cổng ( port ) điều có điện trở kéo lên ( pull-up ) riêng, ta có thể cho phép hay không cho phép điện trở kéo lên này hoạt động. Khi khảo sát các cổng nhƣ l các cổng vào ra số thông thƣờng thì tính chất của các cổng ( Port , PortB,…PortG ) l tƣơng tự nhau, nên ta chỉ cần khảo sát một cổng n o đó trong số 7 cổng của vi điều khiển l đủ. Mỗi một cổng 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 để thay thế cho A, B,…G ). Ba thanh ghi n y sẽ đƣợc phối hợp với nhau để điều khiển hoạt động của cổng, chẳn hạn thiết lập cổng thành lối vào có sử dụng điện trở pull-up, ..v.v.. . Sau đây l diễn tả cụ thể vai trò của 3 thanh ghi trên [10]. Thanh Ghi DDRx. ây là thanh ghi 8 bit (có thể đọc ghi) có chức năng điều khiển hƣớng của cổng (là lối ra hay lối vào). Khi một bit của thanh ghi n y đƣợ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. Lấy ví dụ: Khi ta set tất cả 8 bit của thanh ghi DDR đều l 1, thì 8 chân tƣơng ứng của port l P 1, P 2, … P 7 ( tƣơng ứng với các chân số 50, 49, …44 của vi điều khiển ) đƣợc thiết lập thành ngõ ra. Thanh Ghi PORTx. PORTx là thanh ghi 8 bit có thể đọc ghi. â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, nói cách khác, khi ta 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 ghi th nh 1 thì điện trở treo (pull-up resistor) ở 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ở treo ở chân tƣơng ứng sẽ không đƣợc kích hoạt, cổng ở trạng thái cao trở (Hi-Z).
  • 30. 29 Thanh ghi PORTA Thanh Ghi PINx. 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 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 tƣơng ứng đƣợc đọc. Vì thế đối với thanh ghi PINx ta chỉ có thể đọc mà không thể ghi. Bảng 25 thể hiện các các thiết lập cách hoạt có thể có của cổng. 3.1.4. Các bộ định thời của ATmega128 ATmega128 có 4 bộ định thời , bộ định thời 1 và 3 là bộ định thời 16 bit, bộ định thời 0 và 2 là bộ định thời 8 bit. Bộ định thời 1 và 3 là bộ định thời 16 bit, bộ định thời 1 sử dụng 13 thanh ghi liên quan, còn bộ định thời 3 sử dụng 11 thanh ghi liên quan với nhiều chế độ thực thi khác nhau.Bộ định thời 1 và 3 hoạt động tƣơng đối giống nhau một đểm cần để ý là trong các thanh ghi liên quan tới bộ định thời 1 và 3 thì có nhiều thanh ghi đƣợc chia sẻ cho cả hai bộ định thời, chẳn hạn thanh ghi ETIPR có bít cuối là O F1 đƣợc dùng cho bộ định thời 1, các bit còn lại là dùng cho bộ định thời 3. Thậm chí có những thanh ghi chia sẻ cho bộ định thời 0 hoặc 2, chẳn hạn thanh ghi TIMSK có hai bit cuối dùng cho bộ định thời 2, hai bit đầu dùng cho bộ định thời 0, các bit còn lại dùng cho bộ định thời 1. - Bộ định thời 0 và 2 BOTTOM Bộ đếm đạt tới giá trị BOTTOM khi nó có giá trị 00h. MAX Bộ đếm đạt tới giá trị MAX khi nó bằng FFh. TOP Bộ đếm đạt giá trị TOP khi nó bằng với giá trị cao nhất trong chuỗi đếm, giá trị cao nhất trong chuỗi đếm không nhất thiết là FFh mà có thể là bất khì giá trị nào đƣợc qui định trong thanh ghi OCRn (n=0,2), tùy theo chế độ thực thi. Bộ định thời 0 có v i đặc điểm chính nhƣ: Bộ đếm đơn k nh, xóa bộ định thời khi có sự kiện so sánh khớp (compare match) và tự nạp lại, có thể đếm từ bộ dao động 32 KHz bên ngoài, chế độ PWM hiệu chỉnh pha… - Bộ định thời 1 và 3: BOTTOM Bộ đếm đạt tới giá trị BOTTOM khi nó có giá trị 0000h M X Bộ đếm đạt tới giá trị M X khi nó bằng FFFFh TOP Bộ đếm đạt giá trị TOP khi nó bằng với giá trị cao nhất trong chuỗi đếm, giá trị cao nhất trong chuỗi đếm không nhất thiết l FFFFh m có thể l bất khì giá trị nào đƣợc qui định trong thanh ghi O RnX (X= ,B, ) hay I Rn, tùy theo chế độ thực thi.
  • 31. 30 ây l các bộ định thời đa năng 16 bit. ó 5 chế độ hoạt động chính, ngoài các chức năng thông thƣờng hai bộ định thời n y còn đƣợc dùng để tạo ra xung điều rộng PWM dùng cho các mục đích điều khiển. Timer1 có thể tạo ra 2 tín hiệu PWM độc lập trên các chân OC1A và OC1B, timer3 có thể tạo ra 3 tín hiệu PWM độc lập trên các chân O 3 , O 3B v O 3 …[10]. 3.1.5. Ngắt
  • 32. 31 Bảng 3.1: bảng véc tơ ngắt của ATmega128 Ngắt là một sự kiện bên trong hay bên ngoài làm ngắt bộ vi điều khiển để báo cho nó biết rằng thiết bị cần dịch vụ của nó. ối với mỗi ngắt thì phải có một trình phục vụ ngắt ISR (Interrupt Service Routine) hay trình quản lý ngắt (Interrupt handler). Khi một ngắt đựợc gọi thì bộ vi điều khiển phục vụ ngắt. Khi một ngắt đựợc gọi thì bộ vi điều khiển chạy trình phục vụ ngắt. ối với mỗi ngắt thì có một vị trí cố định trong bộ nhớ để giữ địa chỉ ISR của nó. Nhóm các vị trí nhớ đƣợc dành ri ng để gửi các địa chỉ của các ISR đƣợc gọi là bảng véc tơ ngắt. Khi kích hoạt một ngắt bộ vi điều khiển đi qua các bƣớc sau: ● Vi điều khiển kết thúc lệnh đang thực hiện v lƣu địa chỉ của lệnh kế tiếp (PC) v o ngăn xếp. ● Nó nhảy đến một vị trí cố định trong bộ nhớ đƣợc gọi là bảng véc tơ ngắt nơi lƣu giữ địa chỉ của một trình phục vụ ngắt. ● Bộ vi điều khiển nhận địa chỉ ISR từ bảng véc tơ ngắt và nhảy tới đó. Nó bắt đầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR là RETI (trở về từ ngắt). ● Khi thực hiện lệnh RETI bộ vi điều khiển quay trở về nơi nó đã bị ngắt. Trƣớc hết nó nhận địa chỉ của bộ đếm chƣơng trình P từ ngăn xếp bằng cách kéo hai byte tr n đỉnh của ngăn xếp v o P . Sau đó bắt đầu thực hiện các lệnh từ địa chỉ đó. Bảng 3.1 là bảng véc tơ ngắt của ATmega128, cùng với địa chỉ của nó trong bộ nhớ chƣơng trình. 3.1.6. Bộ truyền nhận dữ liệu nối tiếp USART USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter): Bộ Truyền Nhận Nối Tiếp ồng Bộ Và Bất ồng Bộ Phổ Dụng, đây l khối chức năng dùng cho việc truyền thông giữa vi điều khiển với các thiết bị khác. Trong vấn đề truyền dữ liệu số, có thể phân chia cách thức (method) truyền dữ liệu ra hai chế độ (mode) cơ bản là : Chế độ truyền nhận ồng bộ (Synchronous) và Chế độ truyền nhận Bất đồng bộ (Asynchronous). Ngoài ra, nếu ở góc độ phần cứng thì có thể phân chia theo cách khác đó l : Truyền nhận dữ liệu theo kiểu Nối tiếp (serial) và Song song (paralell). • Truyền ồng Bộ: là kiểu truyền dữ liệu trong đó bộ truyền (Transmitter) và bộ nhận (Receiver) sử dụng chung một xung đồng hồ (clock). Do đó, hoạt động truyền và nhận dữ liệu diễn ra đồng thời. Xung clock đóng vai trò l tín hiệu đồng bộ cho hệ thống (gồm khối truyền và khối nhận). Ƣu điểm của kiểu truyền đồng bộ là tốc độ nhanh, thích hợp khi truyền dữ liệu khối (block).
  • 33. 32 • Truyền Bất ồng Bộ: Là kiểu truyền dữ liệu trong đó mỗi bộ truyền (Transmitter) và bộ nhận (Receiver) có bộ tạo xung clock riêng, tốc độ xung clock ở hai khối này có thể khác nhau, nhƣng thƣờng không quá 10% . Do không dùng chung xung clock, nên để đồng bộ quá trình truyền và nhận dữ liệu, ngƣời ta phải truyền các bit đồng bộ (Start, Stop,…) đi kèm với các bit dữ liệu. Các bộ truyền và bộ nhận sẽ dựa vào các bit đồng bộ n y để quyết định khi nào thì sẽ thực hiện hay kết thúc quá trình truyền hoặc nhận dữ liệu. Do đó, hệ thống truyền không đồ bộ còn đƣợc gọi là hệ thống truyền “tự đồng bộ”. Từ hai kiểu truyền dữ liệu cơ bản tr n, ngƣời ta đƣa ra nhiều giao thức (Protocol) truyền khác nhau nhƣ: SPI (đồng bộ), USRT (đồng bộ), UART (bất đồng bộ),…Tuy vậy, cũng có giao thức truyền mà không thể xếp đƣợc vào kiểu n o: đồng bộ hay bất đồng bộ, chẳn hạn kiểu truyền I2C (Trong AVR gọi là TWI), tuy vậy một cách hơi gƣợng ép thì có thể thấy giao thức truyền I2C gần với kiểu đồng bộ hơn vì các thiết bị giao tiếp với nhau theo chuẩn I2 điều dùng chung một xung clock. Hình 3.3: Sơ đồ khối đơn giản của khối USART ATmega128 có hai bộ USART là USART0 và USART1. Hai bộ USART này là độc lập nhau, điều này có nghĩa l hai khối USART0 và USART1 có thể hoạt động cùng một lúc. Sơ đồ khối đơn giản của khối USART thể hiện trong hình 3.3. 3.2. ATmega16 Tƣơng tự nhƣ dòng ATmega128 nhƣng các ngoại vi và bộ nhớ chƣơng trình ít hơn.
  • 34. 33 3.3. Cảm biến nhiệt độ, độ ẩm SHT11 Hiện nay tr n thị trƣờng có nhiều dòng cảm biến nhiệt độ v độ ẩm khác nhau. Dòng cảm biến nhiệt ẩm SHT của hãng Sensirion (Thụy sỹ) l dòng cảm biến tích hợp cả cảm biến nhiệt độ v độ ẩm tr n 1 chip đơn duy nhất, có độ chính xác v tin cậy cao. Trong khuôn khổ luận văn n y em lựa chọn cảm biến SHT11, cũng có thể nâng cao độ chính xác bằng cách sử dụng các cảm biến SHT15 hoặc SHT75, tuy nhi n chi phí cho các cảm biến n y cao hơn nhiều so với dung SHT11. Hình 3.4: Hình dạng và kích thước của cảm biến nhiệt ẩm SHT11 Hình 3.5: Độ chính xác và dải hoạt động của các loại cảm biến SHT ể đọc đƣợc nhiệt độ v độ ẩm cũng nhƣ tính toán điểm sƣơng cần phải tuân thủ theo các điều kiện kỹ thuật và thực hiện lập trình cho vi điều khiển phù hợp với các yêu cầu mà nhà sản xuất sensor đƣa ra nhƣ sau: 3.3.1. ác thông số kỹ thuật Hình 3.6:Sơ đồ chân của SHT11
  • 35. 34 - Các chân cung cấp nguồn (VDD, GND): iện áp nguồn cung cấp cho SHT1x phải nằm trong dải từ 2.4 – 5.5V. Giữa 2 chân VDD và GND phải đƣợc gắn với tụ 100nF. Mạch ứng dụng cho cảm biến v vi điều khiển nhƣ hình 3.7. Hình 3.7:Mạch ứng dụng của SHT11 Xung clock nối tiếp (SCK) sử dụng để đồng bộ hóa truyền thông giữa vi điều khiển và SHT1x. Dữ liệu nối tiếp (DATA) là chân 3 trạng thái đƣợc dùng cho việc truyền và nhận dữ liệu với cảm biến. ể tránh xung đột dữ liệu thì vi điều khiển chỉ điều khiển chân DATA về mức thấp do đó cần nối th m điện trở pull-up cho chân DATA [11]. 3.3.2. hởi động cảm biến Cảm biến phải đƣợc cấp điện áp nguồn VDD. Tốc độ sụt của nguồn phải không đƣợc quá 1V/ms. Sau khi cấp nguồn sensor cần 11ms để thoát khỏi trạng thái ngủ. Phải không có lệnh n o đƣợc gửi trƣớc thời gian này. 3.3.3. ửi một lệnh ể khởi tạo một giao tiếp, một chuỗi khởi tạo giao tiếp(Start Transmission) đƣợc phát ra. Chân dữ liệu D T đƣợc kéo xuống mức thấp trong khi S K đang mức cao, sau khi xung SCK xuống thấp và lại lên mức cao thì đƣờng D T đƣợc đƣa l n mức cao - xem hình 3.8. Hình 3.8: Chuỗi khởi tạo truyền “Transmission Start” Tiếp đó l một lệnh gồm 3 bit địa chỉ (Chỉ „000‟ đƣợc hỗ trợ) và 5 bít lệnh. SHT1x chỉ nhận một lệnh hợp lệ khi chân D T đang đƣợc kéo xuống mức thấp ( K bít) sau sƣờn thứ 8 của xung đồng bộ S K. ƣờng dữ liệu đƣợc giải phóng (và chuyển lên mức cao) sau khi sƣờn của xung SCK thứ 9 đi xuống [11]. Lệnh Mã ã nhận 0000x o nhiệt độ 00011 o độ ẩm 00101
  • 36. 35 ọc thanh ghi trạng thái 00111 Ghi thanh ghi trạng thái 00110 ã nhận 0101x-1110x Reset mềm, reset giao diện, xóa các thanh ghi trạng thái, đợi ít nhất 11ms trƣớc khi có lệnh tiếp theo. 11110 Bảng 3.2: Danh sách lệnh của SHT1x 3.3.4. o độ ẩm và nhiệt độ Sau khi đƣa ra lệnh đo („00000101‟ cho độ ẩm tƣơng đối, „00000011‟ cho nhiệt độ) vi điều khiển phải đợi phép đo ho n th nh. Việc này mất tối đa 20/80/320ms ứng với việc lựa chọn phép đo 8/12/14 bít. Khoảng thời gian này có thể thay đổi tùy theo tốc độ của bộ dao động nội và có thể thấp hơn 30%. ể chờ phép đo đƣợc hoàn thành SHT1x sẽ kéo đƣờng dữ liệu về mức thấp và trở về trạng thái rỗi. Vi điều khiển phải đợi cho tín hiệu dữ liệu sẵn s ng trƣớc khi khởi động lại S K để đọc dữ liệu ra, vì thế vi điều khiển có thể tiếp tục với các nhiệm vụ khác v đọc dữ liệu ra vào thời điểm thích hợp Hai byte dữ liệu đo v 1 byte kiểm tra CRC (tùy ý) sẽ đƣợc truyền. Vi điều khiển phải nhận từng byte bằng cách kéo đƣờng dữ liệu xuống mức thấp. Các giá trị MSB đƣợc đọc đầu ti n v đƣợc căn phải (Ví dụ: tại SCK thứ 5 MSB có 12 bít giá trị thì 8 bít kết quả của byte đầu tiên sẽ không đƣợc sử dụng). Việc truyền dữ liệu kết thúc sau bít xác nhận (ack) của dữ liệu CRC. Nếu 8 bít kiểm tra R không đƣợc sử dụng thì V K phải kết thúc giao tiếp sau dữ liệu đo LSB bằng việc giữ ACK ở mức cao. Thiết bị sẽ tự động trở về trạng thái ngủ sau khi đo v giao tiếp đã ho n th nh [11]. Lƣu ý: ể giữ cho bản than không bị đốt nóng quá 0.10 C, SHT1x phải không đƣợc hoạt động quá 10% thời gian. 3.3.5. huỗi reset kết nối Nếu việc giao tiếp với thiết bị bị mất thì cần có một chuỗi tín hiệu để reset theo kiểu nối tiếp nhƣ sau: Khi chân D T ở mức cao kéo dài 9 hoặc hơn 9 S K - hình 3.9, thì cần phải có chuỗi resets v sau đó l chuỗi khởi tạo Transmission Start [11]. Hình 3.9: Chuỗi khởi tạo kết nối Connetion Reset Sequence 3.3.6. ính toán tổng kiểm tra -8 Vấn đề an toàn truyền số liệu đƣợc bảo đảm bởi 8 bit kiểm tra. Nó bảo đảm rằng dữ liệu sai có thể đƣợc phát hiện và loại bỏ. Giống nhƣ mô tả ở trên các bít thêm vào này có thể đƣợc sử dụng hoặc không đƣợc đƣa v o.
  • 37. 36 3.3.7. hanh ghi trạng thái Có một số chức năng của SHT1x đƣợc cải tiến nhƣ lựa chọn đại lƣợng đo, thông báo việc hết pin hoặc sử dụng bộ đốt có thể đƣợc kích hoạt bằng cách gửi một lệnh tới thanh ghi trạng thái. Nguy n lý n y đƣợc miêu tả ngắn gọn. Chi tiết hơn đƣợc mô tả trong trong Ứng dụng thanh ghi trạng thái. Sau khi có lệnh đọc hoặc ghi thanh ghi trạng thái - xem bảng 3.2 - 8 bít nội dung của thanh ghi trạng thái có thể đƣợc đọc ra hoặc ghi vào. Có thể so sánh việc giao tiếp nhƣ hình 3.10 và hình 3.11. Hình 3.10: Ghi vào thanh ghi trạng thái Hình 3.11: Đọc thanh ghi trạng thái Ví dụ đầy đủ về một chu kỳ giao tiếp đƣợc thể hiện trên hình 3.12 và hình 3.13. Hình 3.12: Tổng quan của chuỗi đo. TS=khởi tạo truyền, MSB=Byte tín hiệu cao nhất, LSB = Byte tín hiệu sau cùng, LSb= Bít tín hiệu cuối cùng. Hình 3.13: Ví dụ về chuỗi đo RH với giá trị “0000’0100”0011’0001” = 1073 = 35.50%RH (chưa tính bù nhiệt). Các lần có dữ liệu hợp lệ được đưa ra trong các ô trên đường DATA. Các đường DATA đậm màu được điều khiển bởi sensor trong khi các đường nhạt màu được điều khiển bởi vi điều khiển.
  • 38. 37 Lựa chọn chế độ đo: Chế độ đo mặc định 14 bit (nhiệt độ) v 12 bít (độ ẩm) có thể đƣợc giảm xuống thành 12 bit và 8 bít. Tác dụng của việc thiết lập này dùng cho các ứng dụng đòi hỏi tốc độ cao hoặc những ứng dụng đòi hỏi tiêu thụ nguồn thấp. Chức năng nhận biết hết pin: khi điện áp VDD xuống dƣới 2.47V. ộ chính xác là 0.05V. Bộ đốt: Một bộ đốt nóng trên chip có thể đƣợc gán địa chỉ bởi việc ghi một lệnh vào thanh ghi trạng thái. Bộ đốt nóng có thể l m tăng nhiệt độ của sensor lên từ 5 – 100 C so với nhiệt độ xung quanh. Bộ đốt tiêu thụ dòng 8mA, nguồn cung cấp 5V. Một ví dụ về bộ đốt có thể giúp ích cho chức năng phân tích: ọc độ ẩm và nhiệt độ trƣớc và sau khi sử dụng bộ đốt để so sánh. Tại cùng một thời điểm nhiệt độ tăng trong khi độ ẩm tƣơng đối giảm. iểm sƣơng vẫn phải giữ nhƣ cũ. Lƣu ý: Nhiệt độ đọc đƣợc của sensor đã bị đốt nóng không phải là nhiệt độ môi trƣờng xung quanh. Muốn thế sensor phải không đƣợc tiếp tục đốt nóng [11] . 3.3.8. Chuyển đổi tín hiệu ra - ộ ẩm tƣơng đối ể bù lại độ không tuyến tính của sensor độ ẩm xem hình 3.13 - v đạt đƣợc độ chính xác cao. Ngƣời ta khuyến nghị chuyển đổi độ ẩm đọc đƣợc (SORH) theo công thức sau với các hệ số trong bảng 6: Bảng 3.3: Các hệ số chuyển đổi tối ưu cho sensor độ ẩm V4 ể đơn giản cho việc tính toán ngƣời ta đƣa ra công thức chuyển đổi nhƣ ở mục ứng dụng “RH với việc bù độ không tuyến tính của nhiệt độ”. ác giá trị vƣợt quá 99%RH chỉ ra rằng không khí đã bị bão hòa hoàn toàn và cần phải xử lý dữ liệu để hiển thị độ ẩm l 100%. Lƣu ý rằng Sensor độ ẩm không phụ thuộc nhiều v o điện áp. Hình 3.13: Chuyển đổi từ SORH sang độ ẩm tương đối - Bù nhiệt độ của tín hiệu độ ẩm ối với các nhiệt độ khác 250 C tín hiệu độ ẩm cần phải đƣợc bù nhiệt độ. Việc bù này có thể tƣơng ứng xấp xỉ 0.12%RH/0 C Các hệ số để bù nhiệt độ đƣợc cho ở bảng 3.3.
  • 39. 38 Bảng 3.4: Các hệ số bù nhiệt độ - hiệt độ Dải đo của sensor nhiệt độ đƣợc thiết kế l tƣơng đối tuyến tính. Sử dụng công thức sau để chuyển đổi tín hiệu số đầu ra (SOT) để có đƣợc giá trị nhiệt độ với các hệ số đƣợc cho trong bảng 3.4. T = d1 + d2 . SOT Bảng 3.5: Các hệ số bù nhiệt độ - iểm sƣơng SHT7x không đo trực tiếp điển sƣơng, tuy nhi n điểm sƣơng có thể đƣợc suy ra từ giá trị độ ẩm và nhiệt độ đọc đƣợc. Vì giá trị độ ẩm và nhiệt độ l hai đại lƣợng đo đƣợc trên cùng một chip vì vậy SHT7x cho phép tính toán điểm sƣơng. ể tính toán điểm sƣơng (Td) có nhiều công thức khác nhau, hầu hết chúng đều khá phức tạp. trong dải nhiệt độ từ -40-500 C ta có thể tính theo công thức gần đúng sau với các hệ số trong bảng 3.5. Bảng 3.6: Các tham số để tính toán điểm sương (Td). Lƣu ý rằng “ln(…)” l logarit tự nhiên. Với Rh và T thì các giá trị tuyến tính hóa v bù cho độ ẩm và nhiệt độ cũng đƣợc áp dụng. ể có nhiều thông tin hơn về việc tính toán điểm sƣơng có thể xem ở Ứng dụng “Tính toán điển sƣơng”.
  • 40. 39 3.4. MMC/SD card 3.4.1. ơ lƣợc về MMC/SD card MMC là viết tắt của cụm từ Multi-Media Card và SD là Secure Digital Card. Nhìn chung MMC và SD giống nhau về cấu trúc vật lý v phƣơng thức giao tiếp. iểm khác nhau lớn nhất của 2 loại card này là về tính năng bảo mật dữ liệu và tốc độ giao tiếp. SD card xuất hiện sau MMC card nên SD có nhiều tính năng v tốc độ cao hơn MM . Tuy nhi n với việc ghi/đọc MMC và SD ở tốc độ thấp bằng các vi điều khiển (nhƣ VR) thì sự khác nhau của 2 loại n y l không đáng quan tâm. Hình 3.14: Bố trí chân của MMC và SD card Về phƣơng thức giao tiếp, MM v SD card đều có thể đƣợc giao tiếp thông qua 2 chế độ (mode) cơ bản là SD/MMC mode và SPI mode. Giao tiếp bằng mode SD/MMC có tốc độ cao nhƣng đòi hỏi chip điều khiển cũng phải có tốc độ cao. Mode này không phù hợp với việc giao tiếp bằng vi điều khiển. Ngƣợc lại, mode giao tiếp SPI tuy có tốc độ thấp hơn nhƣng phù hợp với các chip điều khiển nhƣ VR [14]. Về hình dáng b n ngo i, MM v SD có cùng kích thƣớc và cấu trúc chân gần nhƣ nhau, nhƣ trong hình 3.14. Nhƣ trình b y trong hình 3.14, MMC card (hình bên phải) có 7 chân trong khi SD card (hình bên trái) có 9 chân. Các chân thêm 8, 9 trên SD card là các chân dữ liệu của mode SD/MMC nên không quan trọng khi giao tiếp ở mode SPI. Ngoài ra 7 chân còn lại trên SD card hoàn toàn giống với MMC. Phần b n dƣới mô tả chức năng các chân tròn mode SPI. - Chân 1: CS (Chip Select) là chân cọn cho dùng trong mode SPI, chân này nối với chân chọn chip của vi điều khiển (AVR). - Chân 2: DI (Data Input) hay chân MOSI của chuẩn SPIm, chân này cần đƣợc nối với chân MOSI tr n chip vi điều khiển. - Chân 3, 6: Là cá chân GND. - Chân 4: Là chân nguồn. - Chân 5: CLK là chân giữ nhịp trong mode SPI, chân này sẽ đƣợc nối với SLK tr n vi điều khiển. - Chân 7: DO (Data output) hay chân MISO của chuẩn SPI, chân n y đƣợc nối với chân MISO tr n vi điều khiển. Nguồn nuôi MM /SD card: ây l điểm cần lƣu ý khi sử dụng các card MMC/SD, nguồn cho các card này phải nằm trong khoảng 2.7V đến 3.6V. iều này thƣờng gây khó khăn khi điều khiển các card MMC/SD card bằng các vi điều khiển vì
  • 41. 40 các mạch điều khiển thƣờng dùng mức điện áp 5V. Vì thế, không giống nhƣ các chip điện tử số thông thƣờng, chúng ta không đƣợc phép nối MMC/SD card trực tiêp với vi điều khiển có nguồn nuôi 5V mà phải qua một IC chuyển đổi mức điện áp nhƣ CD4050 hoặc sử dụng cầu chia áp...[13]. Hình 3.15: IC CD4050 chuyển đổi mức tín hiệu giữa vi điều khiển và MMC/SD card 3.4.2. Giao tiếp AVR với MMC/SD card Trình biên dịch CodeVisionAVR cung cấp các thƣ viện và các hàm hỗ trợ giao tiếp giữa Vi điều khiển AVR với MMC/SD card sử dụng giao thức SPI. 3.4.2.1. Các hàm truy cập MMC/SD card ở mức thấp ác h m n y đƣợc định nghĩa v thiết lập trong file ti u đề sdcard.h, đặt trong thƣ mục .IN . Trƣớc khi sử dụng các hàm truy cập MMC/SD card ở mức thấp thì file này phải đƣợc khai báo ở đầu chƣơng trình chính bằng lệnh tiền xử lý #include. Các hàm truy cập MMC/SD card ở mức thấp gồm: void disk_timerproc (void) Hàm này phải đƣợc gọi với chu kỳ 10ms bởi một ngắt timer. Lƣu ý rằng phải đảm bảo chắc chắn h m n y đƣợc gọi mỗi 10ms để tránh trƣờng hợp các hàm bị khóa trong một vòng lặp vô hạn. unsigned char disk_initialize(unsigned char drv) Hàm này khởi tạo các cổng vào ra của giao thức SPI và các driver vật lý trên MMC/SD card drv: Biểu thị số thứ tự ổ đĩa, số thứ tự ổ đĩa bắt đầu từ 0 Giá trị trả về: Hàm này trả về 1 byte chứa trạng thái các cờ của đĩa, nó đƣợc định nghĩa bởi các macro trong sdcard.h: • STA_NOINIT (=0x01, bit 0 của kết quả trả về của h m) Ổ đĩa không sẵn sang l m việc. ờ n y đƣợc thiết lập sau khi vi điều khiển reset, card bị lấy ra hoặc hàm disk_initialize bị lỗi. • STA_NODISK (=0x02, bit 1 trong kết quả trả về của h m) ờ n y đƣợc thiết lập nếu không có card trong khay nhét card. • STA_PROTE T (=0x04, bit 2 của giá trị trả về của h m) Thẻ nhớ bị bảo vệ. Nếu cờ ST _NODISK cũng đƣợc thiết lập thì cờ ST _PROTE T bị vô hiệu.
  • 42. 41 Trƣờng hợp th nh công, giá trị trả về của cờ sẽ l 0, điều n y có nghĩa l mọi trạng thái của các cờ đƣợc seset. Lƣu ý: Với MMC dùng giao thức SPI, tham số drv phải là 0, nếu không hàm sẽ trả về giá trị với cờ ST _NOINIT đƣợc thiết lập. unsigned char disk_status(unsigned char drv) Trả về các trạng thái hiện tại của ổ đĩa vật lý có trong MM Các tham số: drv số thứ tự ổ đĩa, đƣợc đánh số bắt đầu từ 0 Giá trị trả về: Giá trị trả về của l 1 byte chứa các cờ trạng thái của đĩa, nó đƣợc quy định bởi các macros đƣợc định nghĩa trong sdcard.h • STA_NOINIT (=0x01, bit 0 của kết quả trả về của h m) Ổ đĩa chƣa đƣợc khởi tạo. ờ n y đƣợc thiết lập sau khi vi điều khiển reset, card bị lấy ra hoặc h m disk_initialize bị lỗi. • STA_NODISK (=0x02, bit 1 của kết quả trả về của h m) ờ n y đƣợc thiết lập nếu không có card trong khay nhét card. • STA_PROTECT (=0x04, bit 2 của kết quả trả về của h m) ard bị bảo vệ. Nếu cờ ST _NODISK đƣợc thiết lập thì cờ ST _PROTE T không có hiệu lực. Trƣờng hợp th nh công, giá trị trả về của cờ sẽ l 0, điều n y có nghĩa l mọi trạng thái của các cờ đƣợc seset. Lƣu ý: Với MMC/SD card sử dụng giao thức SPI, tham số drv phải luôn bằng 0, ngƣợc lại h m sẽ trả về giá trị với cờ ST _NOINIT đƣợc thiết lập. ác dạng dữ liệu của DRESULT đƣợc định nghĩa trong sdcard.h typedef enum { RES_OK=0, /* 0: Successful */ RES_ERROR, /* 1: R/W Error */ RES_WRPRT, /* 2: Write Protected */ RES_NOTRDY, /* 3: Not Ready */ RES_PARERR /* 4: Invalid Parameter */ } DRESULT; Nó đƣợc sử dụng để trả về kết quả của các h m điều khiển. DRESULT disk_read (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count) ọc các sector từ một ổ vật lý Các tham số: drv thứ tự ổ đĩa. Ổ đƣợc đánh số bắt đầu từ 0. buff trỏ tới mảng, nơi m dữ liệu đọc sẽ đƣợc lƣu trữ. sector biểu diễn địa chỉ khối logic của sector đầu ti n cần đọc count biểu diễn số các sector cần đọc (1..255) Giá trị trả về: • RES_OK - thành công • RES_ERROR - lỗi khi ghi
  • 43. 42 • RES_WRPRT - Thẻ bị bảo vệ (cấm ghi) • RES_NOTRDY - đĩa chƣa đƣợc khởi tạo • RES_PARERR - các tham số đƣa v o h m không hợp lệ Lƣu ý: Vơi MM /SD card sử dụng giao thức SPI, tham số drv phải luôn bằng 0, nếu không h m sẽ trả về giá trí với cờ ST _NOINIT đƣợc thiết lập. DRESULT disk_write (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count) Ghi các sector l n ổ vật lý Các tham số: drv l số thứ tự của ổ. Ổ đƣợc đánh số bắt đầu từ 0 buff trỏ tới mảng ký tự nơi m dữ liệu để ghi đƣợc lƣu trữ sector l địa chỉ khối logic của sector đầu ti n đƣợc ghi count l số sector đƣợc ghi (1...255). Giá trị trả về: • RES_OK – thành công • RES_ERROR – lỗi khi ghi • RES_WRPRT – Thẻ bị bảo vệ (cấm ghi) • RES_NOTRDY – đĩa chƣa đƣợc khởi tạo • RES_PARERR – các tham số đƣa v o h m không hợp lệ Lƣu ý: Vơi MM sử dụng giao thức SPI,tham số drv phải luôn băng 0, nếu không h m sẽ trả về giá trí với cờ ST _NOINIT đƣợc thiết lập. DRESULT disk_ioctl (unsigned char drv, unsigned char ctrl, void* buff) H m n y dùng để điều khiển một số đặc trƣng của MM /SD card v một số hàm khác. Các tham số: drv l số thứ tự của ổ. Ổ đƣợc đánh số bắt đầu từ 0 ctrl đặc trƣng cho mã lệnh buff trỏ tới bộ đệm để lƣu giữ kết quả của h m, phụ thuộc v o mã lệnh Khi không sử dụng, con trỏ NULL phải đƣợc gán nhƣ một tham số. Giá trị trả về • RES_OK – thành công • RES_ERROR – có một lỗi • RES_NOTRDY – đĩa chƣa đƣợc khởi tạo • RES_PARERR – các tham số đƣa v o h m không hợp lệ Lƣu ý: Vơi MM /SD card sử dụng giao thức SPI, tham số drv phải luôn bằng 0, nếu không h m sẽ trả về giá trị với cờ ST _NOINIT đƣợc thiết lập. ác mã lệnh của ctrl, đƣợc xác định bởi các macros đƣợc định nghĩa trong file sdcard.h v có hiệu lực trong h m disk_ioctl • CTRL_SYNC - chờ cho đến khi đĩa kết thúc quá trình ghi. on trỏ buff phải có giá trị NULL
  • 44. 43 • GET_SECTOR_SIZE - trả về kích thƣớc của sector tr n đĩa. on trỏ buff phải trỏ tới biến 16 bit kiểu unsigned int, cái m sẽ chứa kích cỡ của sector. Với MM thì kích thƣớc sector trả về sẽ l 512 byte. • GET_SECTOR_COUNT - trả về tổng số sector tr n đĩa. on trỏ buff phải trỏ tới biến 32bit unsigned long int, cái m chứa đựng tổng số các sector. • GET_BLOCK_SIZE - Trả về kích thƣớc khối bị xóa của mảng bộ nhớ trong tổng số các sector. on trỏ buff phải trỏ tới biến 32bit kiểu unsigned long int, cái sẽ chứa kích cỡ của khối. Nếu không biết kích cỡ khối bị xóa thì giá trị trả về sẽ l 1. 3.4.2.2. Các hàm truy cập MMC/SD card ở mức cao Các hàm này nhằm mục đích truy cập bộ nhớ MMC/SD card ở mức cao. Trƣớc khi sử dụng MMC/SD card phải đƣợc format ở các định dạng chuẩn của FAT12, FAT16 hoặc FAT32. ác h m n y đƣợc định nghĩa trong file ti u đề ff.h đặt trong thƣ mục .INC. Trƣớc khi dùng các hàm này chúng ta phải khai báo bởi lệnh tiền xử lý #include ở đầu chƣơng trình. Các hàm truy cập F T l : FRESULT f_mount(unsigned char vol, FATFS *fs) ấp/cấp lại ô nhớ cho vùng l m việc của đĩa logic H m n y phải đƣợc gọi đầu ti n trƣớc khi trƣớc bất cứ một h m truy cập F T n o khác. ƣu ý H m n y chỉ khởi tạo vùng l m việc, không có sự truy cập đĩa vật lý n o đƣợc thực hiện trong giai đoạn n y. Các tham số: vol: chỉ ra số của ổ đĩa vật lý (0…9). fs: l con trỏ trỏ tới dạng cấu trúc dữ liệu F T cùng với ổ logic, cái m phải đƣợc cấp phát hoặc cấp phát lại. Các giá trị trả về: - FR_OK - thành công - FR_INVALID_DRIVE - số thứ tự của ổ đĩa bị sai FRESULT f_open(FIL* fp, const char* path, unsigned char mode) Tạo một đối tƣợng file cấu trúc FIL dùng để truy cập file. on trỏ đọc/ghi file đƣợc thiết lập để bắt đầu của một file. Các tham số: fp trỏ tới dạng cấu trúc FIL đƣợc tạo. Sau khi h m f_open th nh công, cấu trúc n y có thể đƣợc sử dụng bởi các h m khác để truy cập file. path trỏ tới vùng R M chứa xâu ký tự thể hiện đƣờng dẫn của file đƣợc mở hoặc đƣợc tạo. T n đƣờng dẫn tuân theo định dạng sau: [số_ổ_đĩa_logic:][/][T n_chỉ_mục/]tên_file Mode là cách thức truy cập v mở file, đƣợc biểu diễn bởi sự kết hợp của các cờ theo các macros sau:
  • 45. 44 - FA_READ - đọc đối tƣợng. Dữ liệu có thể đƣợc đọc từ file. Với kiểu truy cập đọc/ghi phải kết hợp với FA_WRITE. - FA_WRITE - Ghi v o đối tƣợng. Dữ liệu có thể đƣợc ghi tới file. Với kiểu truy cập đọc/ghi phải kết hợp với F _RE D. - FA_OPEN_EXISTING - Mở một file. Nếu file không tồn tại, h m sẽ lỗi. - FA_OPEN_ALWAYS - Nếu file tồn tại, nó sẽ đƣợc mở. Nếu file không tồn tại nó sẽ tạo file v mở nó lần đầu. - FA_CREATE_NEW - Tạo một file, nếu file đã tồn tại, h m sẽ bị lỗi - FA_CREATE_ALWAYS - Tạo một file, nếu file đã tồn tại nó sẽ ghi đè l n và thiết lập kích cỡ bằng 0. Các giá trị trả về: · FR_OK - thành công · FR_NO_FILE - không tìm đƣợc file · FR_NO_PATH - không tìn thấy đƣờng dẫn · FR_INVALID_NAME - t n file bị lỗi · FR_INVALID_DRIVE - số thứ tự ổ đĩa bị lỗi · FR_EXIST - file đã tồn tại(đã có) · FR_DENIED - truy cập file bị từ chối bởi vì một trong các lý do sau: + Mở một file chỉ đƣợc phép đọc trong chế độ ghi + File không thể tạo đƣợc vì trùng t n hoặc thuộc tính chỉ đọc đã tồn tại + File không thể tạo đƣợc vì bảng thƣ mục hoặc đĩa đã đầy. · FR_NOT_READY - không truy cập đƣợc đĩa do lỗi trung gian hoặc lý do khác · FR_WRITE_PROTECTED - mở trong chế độ ghi hoặc không thể tạo file do lỗi media đƣợc bảo vệ. · FR_DISK_ERR - H m lỗi vì truy cập đĩa vật lý · FR_INT_ERR - H m lỗi do sai cấu trúc F T hoặc lỗi nội tại. · FR_NOT_ENABLED - Ổ logic không đƣợc thiết lập với h m f_mount · FR_NO_FILESYSTEM - phân vùng F T không có tr n đĩa. FRESULT f_read(FIL* fp, void* buff, unsigned int btr, unsigned int* br) ọc dữ liệu từ một file đã đƣợc mở trƣớc đó bởi h m f_open. Sau khi h m đƣợc thực thi, con trỏ đọc/ghi file tăng l n ứng với số byte đọc từ file. Các tham số: - fp trỏ tới dạng cấu trúc FIL l cấu trúc chứa các thông số của file. ấu trúc n y phải đƣợc khởi tạo trƣớc bởi việc gọi h m f_open. - buff trỏ tới bộ đệm mảng dạng byte, đƣợc đặt trong R M, nơi lƣu giữ dữ liệu đọc từ file. Kích thƣớc của bộ đệm phải đủ lớn để dữ liệu chứa vừa trong đó. - btr số lƣợng byte đọc từ file - br trỏ tới biến nguy n dƣơng chứa số byte dữ liệu có hiệu lực đọc từ file. Khi h m thực hiện th nh công, nếu số lƣợng byte đọc hiệu lực bé hơn giá trị btr thì con trỏ đọc/ghi file sẽ tiến tới cuối của file.