Tác giả luận văn Ký và ghi rõ họ tên Trang 6 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 Associ
Trang 2ƢỜ Ọ Ệ
Ồ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
Trang 3MỤ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
Trang 43.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
Trang 6Danh 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
ASCII American Standard Code for Information Interchange
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
SHT Digital humidity and temperature sensor
MSB Most Significant Byte or Most Significant Bit
LSB Least Significant Byte or Least Significant Bit
Trang 7Hì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ừ SO RH 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
Trang 8Hì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
Trang 9MỞ Ầ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
Trang 10LCD1602 SHT11
MAX485 ATMEGA16
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…
Trang 11- 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:
- 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
Trang 121.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…
Trang 13hươ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
Trang 14Mức điện áp của tiêu chuẩn RS-232 (chuẩn thường được dùng bây giờ) được
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]
Trang 152.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
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
T1IN 11 T2IN 10
R1IN 13 R2IN 8
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
Trang 162.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]
Trang 17Hình 2.6: Cấu hình mạng 4-dây RS-485
Trang 18do đó 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
Trang 19Hì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
Trang 20tă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à:
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ữ
Trang 21liệ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
Trang 22 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
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
- 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
Trang 23- 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
Trang 24- 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
Trang 25á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
CRC – 12 = x12 + x11 + x3 + x2 + x + 1
CRC – 16 = x16 + x15 + x2 + 1
CRC – CCITT = x16 + x12 + x5 + 1
Trang 26hươ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
- Khối truyền nhận nối tiếp SPI
- Khối giao tiếp nối tiếp 2 dây TWI
Trang 27Hì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ộ
Trang 28nhớ SRAM hoạt động theo chế độ nào ta sử dụng bit cầu chì M103C (M103C fuse bit (9))
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
Trang 29đượ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)
Trang 30Thanh 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
Trang 31â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
Trang 32Bả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)
Trang 33• 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
Trang 34Hì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
Trang 35- 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]
Trang 36ọc thanh ghi trạng thái 00111 Ghi thanh ghi trạng thái 00110
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
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.10C, 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
Trang 373.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
Trang 38Lự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 – 100C 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ừ SO RH sang độ ẩm tương đối
- Bù nhiệt độ của tín hiệu độ ẩm
ối với các nhiệt độ khác 250C 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/0C
Các hệ số để bù nhiệt độ được cho ở bảng 3.3
Trang 39Bả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-500C 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”
Trang 403.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