Tài liệu Luận văn Nghiên cứu các chuẩn truyền thông và xây dựng một ứng dụng cho hệ thống giám sát, điều khiển, điều hành tòa nhà cao tầng: ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN ĐẮC HẢI
NGHIÊN CỨU CÁC CHUẨN TRUYỀN THÔNG
VÀ XÂY DỰNG MỘT ỨNG DỤNG CHO HỆ THỐNG
GIÁM SÁT, ĐIỀU KHIỂN, ĐIỀU HÀNH
TÒA NHÀ CAO TẦNG
Ngành: Công nghệ Điện tử - Viễn thông
Chuyên ngành: Kỹ thuật Điện tử
Mã số: 60.52.70
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Phạm Mạnh Thắng
Hà Nội - 2010
Trang - - 2
LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ những nội dung và số liệu trong luận văn thạc sĩ:
“Nghiên cứu các chuẩn truyền thông và xây dựng một ứng dụng cho hệ thống giám
sát, điều khiển, điều hành tòa nhà cao tầng” là do tôi tự nghiên cứu và thực hiện.
Học viên thực hiện luận văn
Nguyễn Đắc Hải
Trang - - 3
LỜI CẢM ƠN
Để hoàn thành chương trình cao học và viết luận văn này,
tôi xin chân thành cảm ơn quí thầy cô trường Đại học
Công nghệ- Đại học Quốc gia Hà Nội, đặc biệt là những thầy
cô đã tận tình dạy bảo tôi trong suốt thời gian học tập tại
trường.
Tôi xin gửi lời biết ơn sâu s...
108 trang |
Chia sẻ: haohao | Lượt xem: 1078 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Nghiên cứu các chuẩn truyền thông và xây dựng một ứng dụng cho hệ thống giám sát, điều khiển, điều hành tòa nhà cao tầng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN ĐẮC HẢI
NGHIÊN CỨU CÁC CHUẨN TRUYỀN THÔNG
VÀ XÂY DỰNG MỘT ỨNG DỤNG CHO HỆ THỐNG
GIÁM SÁT, ĐIỀU KHIỂN, ĐIỀU HÀNH
TÒA NHÀ CAO TẦNG
Ngành: Công nghệ Điện tử - Viễn thông
Chuyên ngành: Kỹ thuật Điện tử
Mã số: 60.52.70
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Phạm Mạnh Thắng
Hà Nội - 2010
Trang - - 2
LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ những nội dung và số liệu trong luận văn thạc sĩ:
“Nghiên cứu các chuẩn truyền thông và xây dựng một ứng dụng cho hệ thống giám
sát, điều khiển, điều hành tòa nhà cao tầng” là do tôi tự nghiên cứu và thực hiện.
Học viên thực hiện luận văn
Nguyễn Đắc Hải
Trang - - 3
LỜI CẢM ƠN
Để hoàn thành chương trình cao học và viết luận văn này,
tôi xin chân thành cảm ơn quí thầy cô trường Đại học
Công nghệ- Đại học Quốc gia Hà Nội, đặc biệt là những thầy
cô đã tận tình dạy bảo tôi trong suốt thời gian học tập tại
trường.
Tôi xin gửi lời biết ơn sâu sắc đến Tiến sĩ Phạm Mạnh
Thắng đã dành rất nhiều thời gian và tâm huyết hướng dẫn
nghiên cứu và giúp tôi hoàn thành luận văn tốt nghiệp.
Mặc dù tôi đã có nhiều cố gắng hoàn thiện luận văn bằng
tất cả sự nhiệt tình và năng lực của mình, tuy nhiên không
thể tránh khỏi những thiếu sót, t ô i rất mong nhận được
những đóng góp quí báu của quí thầy cô và các bạn.
Hà Nội, tháng 05 năm 2010
Học viên
Nguyễn Đắc Hải
Trang - - 4
MỤC LỤC
Trang phụ bìa.......................................................................................... 1
Lời cam đoan .......................................................................................... 2
Lời cảm ơn ............................................................................................. 3
Mục lục................................................................................................... 4
Danh mục các ký hiệu, các chữ viết tắt ................................................... 6
Danh sách các bảng ................................................................................ 7
Danh mục các hình vẽ, đồ thị.................................................................. 8
Mở đầu ................................................................................................... 10
CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG BMS
1.1. Giới thiệu chung .............................................................................. 13
1.2. Các phân hệ trong hệ thống BMS..................................................... 14
1.2.1. Quản lý vào/ ra trong tòa nhà ................................................... 15
1.2.1.1. Thành phần của một hệ thống RFID................................. 15
1.2.1.2. Hoạt động của hệ thống RFID .......................................... 16
1.2.2. Hệ thống báo cháy ................................................................... 16
1.2.2.1. Cách nhận biết và báo cháy.............................................. 16
1.2.2.2. Các bộ phận chính của hệ thống ....................................... 17
1.2.3. Hệ thống thang máy ................................................................ 19
1.2.4. Hệ thống điều hoà trung tâm .................................................... 20
1.2.5. Máy phát điện .......................................................................... 21
1.2.6. Hệ thống điện........................................................................... 21
CHƯƠNG 2. MỘT SỐ CHUẨN VÀ GIAO THỨC TRUYỀN THÔNG
ỨNG DỤNG TRONG HỆ THỐNG BMS
2.1. Mạng truyền thông trong hệ thống BMS .......................................... 23
2.2. Một số chuẩn truyền thông............................................................... 23
2.2.1. Giới thiệu về truyền thông qua chuẩn RS232 ........................... 23
2.2.2. Giới thiệu về truyền thông qua chuẩn RS-485.......................... 28
2.3. Giao thức truyền thông .................................................................... 35
2.3.1. Giới thiệu giao thức truyền thông BACnet ............................... 35
2.3.2. Giao thức mạng Ethernet.......................................................... 35
CHƯƠNG 3. THIẾT KẾ MỘT HỆ THỐNG THÀNH PHẦN
TRONG HỆ THỐNG BMS
3.1. Mục tiêu của đề tài........................................................................... 36
Trang - - 5
3.2. Cấu hình hệ thống ............................................................................ 36
3.3. Thiết kế phần cứng của hệ thống...................................................... 37
3.3.1. Giới thiệu tổng quan họ vi điều khiển AVR ............................. 37
3.3.2. Giới thiệu vi điều khiển AVR Atmega 128 .............................. 38
3.3.2.1. Sơ đồ chân ....................................................................... 38
3.3.2.2. Cấu trúc bộ nhớ ................................................................ 39
3.3.2.3. Cổng vào ra...................................................................... 46
3.3.2.4. Bộ định thời ..................................................................... 50
3.3.2.5. Cấu trúc ngắt .................................................................... 75
3.3.3. Giới thiệu vi điều khiển AVR Atmega8 ................................... 82
3.3.3.1. Giới thiệu chung............................................................... 82
3.3.3.2. Sơ đồ chân ....................................................................... 82
3.3.4. Cảm biến.................................................................................. 84
3.3.5. Mạch Slaver ............................................................................. 86
3.3.6. Mạch Master ............................................................................ 88
3.3.7. Keyboard và LCD .................................................................... 90
3.4. Xây dựng phần mềm nhúng điều khiển cho hệ thống ....................... 91
3.4.1. Xây dựng phần mềm nhúng điều khiển cho mạch Slaver
dùng Atmega8 .............................................................................. 91
3.4.2. Xây dựng phần mềm nhúng điều khiển cho mạch Master
dùng Atmega128.......................................................................... 92
3.5. Kết quả và khả năng ứng dụng của hệ thống .................................... 93
3.5.1. Tính khoa học .......................................................................... 93
3.5.2. Khả năng triển khai ứng dụng vào thực tiễn ............................. 93
3.5.3. Hiệu quả kinh tế xã hội ............................................................ 94
Kết luận ................................................................................................ 95
TÀI LIỆU THAM KHẢO ...................................................................... 96
Phụ lục ................................................................................................ 97
Trang - - 6
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
ALN Application Level network – Lớp ứng dụng mạng
BACnet Building Automation and Control network Protocol - Giao thức
truyền thông của hệ thống điều khiển và tự động hoá toà nhà
BMS Building Management System - hệ thống quản lý tòa nhà
CSMA/CD Carrier-Sense Multiple Access/ Collision Detect
DCE Data Communication Equipment – Thiết bị truyền dữ liệu
DTE Data Terminal Equipment - Thiết bị đầu cuối
HVAC Hệ thống thông gió và điều hòa không khí
ISR Interrupt service routine - Trình dịch vụ ngắt
OSI Open System Interconnection – Hệ thống liên kết mở
PLC Power Line Communication - đường điện lưới
RFID Radio Frequency Identification - Xác nhận đối tượng bằng sóng vô
tuyến
RI Ring indicator – Chỉ thị chuông
RISC Reduced Instruction Set Computer
RTS Request to send – Yêu cầu gửi
TCP/IP Transmission Control Protocol / Internet Protocol - Giao thức điều
khiển truyền thông /Giao thức Internet
UL Unit Load
WGM Waveform Generation Mode
Trang - - 7
DANH SÁCH CÁC BẢNG
Bảng 1: Một số thông số điện học của RS-232 ............................................... 25
Bảng 2:Các thông số quan trọng của RS-485.................................................. 28
Bảng 3: Thông số của các phương pháp ......................................................... 34
Bảng 4: Các chân của Atmega128 .................................................................. 39
Bảng 5: Cấu hình cho các chân cổng .............................................................. 48
Bảng 6: Địa chỉ các Port ................................................................................. 50
Bảng 7: Lựa chọn tốc độ xung clock .............................................................. 54
Bảng 8: Lựa chọn các chế độ thực thi của bộ định thời 0................................ 67
Bảng 9: Bảng Vector Ngắt Của ATmega128 .................................................. 78
Bảng 10: Điều khiển kiểu bắt mẫu ngắt trong thanh A ................................... 79
Bảng 11: Điều khiển kiểu bắt mẫu ngắt trong thanh B.................................... 80
Bảng 12: Các chân Atmega8 .......................................................................... 84
Bảng 13: Các thông số kỹ thuật của sensor JS-20........................................... 85
Trang - - 8
DANH SÁCH CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1: Hình minh họa hệ thống BMS ........................................................... 14
Hình 2: Reader và Card .................................................................................. 15
Hình 3: Thiết bị báo cháy ............................................................................... 18
Hình 4: Hệ thống giám sát, đo lường sử dụng điện trong tòa nhà ................... 21
Hình 5: Quy định trạng thái logic của tín hiệu RS-232. .................................. 24
Hình 6: Giắc cắm RS-232 loại 9 chân............................................................. 26
Hình 7: Giắc cắm RS-232 loại 25 chân........................................................... 27
Hình 8: Ghép nối trực tiếp ............................................................................. 28
Hình 9: Sơ đồ bộ kích thích ( driver ) và bộ thu ( receiver ) RS-485............... 29
Hình 10: Quy định trạng thái logic của tín hiệu RS-485. ................................ 30
Hình 11: Định nghĩa một tải đơn vị. ............................................................... 30
Hình 12: Quan hệ giữa tốc độ truyền và chiều dài dây dẫn ............................. 31
Hình 13: Cấu hình mạng RS – 485 hai dây..................................................... 32
Hình 14: Dây xoắn đôi ................................................................................... 32
Hình 15: Cấu hình mạng RS-485 sử dụng 4 dây. ............................................ 33
Hình 16: Các phương pháp chặn đầu cuối RS-485. ........................................ 34
Hình 17: Sơ đồ khối hệ thống......................................................................... 37
Hình 18: Sơ đồ chân ....................................................................................... 38
Hình 19: Bộ nhớ chương trình có và không có sử dụng boot loader ............... 40
Hình 20: Vùng nhớ 64 thanh ghi vào ra có 2 cách chọn địa chỉ ...................... 42
Hình 21: Chức năng con trỏ của các thanh ghi R26 –R31............................... 42
Hình 22: Tóm tắt bản đồ bộ nhớ ATmega128 ................................................ 46
Hình 23. Sơ đồ một cổng vào ra ..................................................................... 49
Hình 24: Sơ đồ khối bộ định thời 1 (3) ........................................................... 51
Hình 25: Thanh ghi TEMP ............................................................................. 56
Hình 26: Ngõ ra khối Compare Match Output Unit ........................................ 65
Hình 27: Sơ đồ khối bộ định thời 0 ................................................................ 66
Hình 28: Sơ đồ khối bộ định thời 2 ................................................................ 72
Hình 29: Sơ đồ chân Atmega8........................................................................ 83
Hình 30: Hình ảnh cảm biến JS- 20 Largo Pir ................................................ 84
Hình 31: Khoảng cách và góc quét của JS-20................................................. 85
Hình 32: Sơ đồ nguyên lý mạch Slave............................................................ 86
Hình 33: Sơ đồ mạch PCB của mạch slave ..................................................... 87
Trang - - 9
Hình 34: Sơ đồ nguyên lý mạch Master.......................................................... 88
Hình 35: Sơ đồ mạch PCB của mạch Master .................................................. 89
Hình 36: Mạch điện điều khiển của mạch Master ........................................... 89
Hình 37: Sơ đồ mạch PCB của LCD Keyboad ............................................... 90
Hình 38: Mạch điện điều khiển của Keyboad và LCD.................................... 91
Hình 39: Sơ đồ khối hoạt động của mạch Slave ............................................. 91
Hình 40: Sơ đồ khối hoạt động của mạch Master ........................................... 92
Hình 41: Hình ảnh của hệ thống ..................................................................... 98
Trang - - 10
MỞ ĐẦU
Trong những năm gần đây, cùng với không khí hội nhập kinh tế quốc tế của
Việt nam, quá trình công nghiệp hóa, hiện đại hóa của đất nước đã có những bước
phát triển rất nhanh. Một trong những bước thành công đó là qui mô đô thị hóa với
hàng loạt các công trình kiến trúc đồ sộ đã và đang được xây dựng trên mọi miền
của tổ quốc, góp phần cho sự phát triển kinh tế.
Trong các công trình kiến trúc đồ sộ đó không thể không kể đến các tòa nhà
cao tầng mới được xây dựng ở Việt Nam. Các tiêu chí đánh giá chất lượng các tòa
nhà cao tầng đó liên quan đến các mặt kiến trúc, kết cấu xây dựng, tiện nghi, độ an
toàn, độ tin cậy, tính kinh tế và tính hiện đại của tòa nhà.
Hầu hết các tòa nhà này hiện đều được trang bị hệ thống điều khiển và quản
lý tòa nhà BMS (Building Management System) như ở các nước công nghiệp. Chỉ
có trên cơ sở hệ thống BMS này mà các chuyên gia mới có thể đánh giá chất lượng
của các tòa nhà đạt tiêu chuẩn hay không đạt tiêu chuẩn quản lý hiện đại.[14]
Các tiêu chí liên quan đến hệ thống BMS bao gồm các thành phần giám sát
và báo động, các hệ thống thành phần quản lý năng lượng và hệ thống thông tin.
Khi được trang bị như vậy, tất cả các hệ thống thành phần đó ngoài việc có khả
năng hoạt động độc lập thì cần phải được điều khiển tập trung nhằm cho phép tăng
độ an toàn, tính bền vững và ổn định của toàn hệ thống. Hệ thống tổng thể cần
được thiết kế sử dụng khả năng tích hợp các hệ thống thành phần trên cơ sở một hệ
thông tin liên tục, không bị gián đoạn, có được tốc độ xử lý dữ liệu đủ cao nhằm
tăng tính tin cậy và hiệu quả sử dụng. Thực tế phát triển như vũ bão của Công nghệ
thông tin trong những năm gần đây đã cho thấy: hệ thống kể trên hoàn toàn có thể
thực hiện được tốt trên cơ sở nghiên cứu tích hợp các hệ thống thành phần qua các
kênh thông tin được tích hợp với nhau như dùng kết nối các đường dây chuyên
dụng truyền thống, các kênh thông tin vô tuyến (wireless), dùng ngay mạng điều
khiển qua đường điện lưới PLC (Power Line Communication) hoặc dùng mạng
máy tính (computer network), mạng điện thoại di động (mobile network) hoặc
thậm chí cả mạng Internet.[15]
Các hệ thống quản lý tòa nhà BMS được phát triển và ứng dụng khoảng 20-
30 năm trở lại đây dựa trên cở sở công nghệ tự động hóa phát triển và tích hợp tổng
thể. Hệ thống BMS ra đời trợ giúp cho việc quản lý các tòa nhà rất hiệu quả và kinh
tế. Tuy vốn ban đầu đầu tư cho thiết bị và các phần mềm quản lý là không nhỏ,
nhưng so với chi phí khai thác lâu dài thì rất hiệu quả và kinh tế. Chúng ta có thể
Trang - - 11
tham khảo các tòa nhà lớn ở sân bay Stuttgart của Đức, tòa nhà sinh thái ở Bỉ, nhà
băng Credit Suisse First Boston ở Anh, Capital tower và hãng sản xuất đĩa cứng
Seagate ở Singapore... Các tòa nhà này đã được trang bị hệ thống BMS của
Siemens và đã, đang được khai thác rất hiệu quả và kinh tế.
Các nhà cao tầng ở Việt nam đã sử dụng hệ thống BMS của Siemens. Các
tòa nhà: Saigon Center HCM được đưa vào sử dụng 1996, Red river building
Hanoi-1999, Opera Hilton Hotel Hanoi-2000, Hanoi Nation Stadium-2003. Sau khi
trang bị hệ BMS này, các tòa nhà đã khai thác rất hiệu qủa khả năng quản lý giám
sát và báo hiệu các sự cố của hệ thống HVAC (Hệ thống thông gió và điều hòa
không khí) và tiết kiệm được 50% năng lượng điện tiêu thụ cho hệ thống so với
trước khi lắp đặt hệ thống BMS.[14]
Bên cạnh việc sử dụng điện năng cho các hoạt động của tòa nhà(Hệ thống
điều hòa, vận hành thang máy,…) thì việc sử dụng điện năng cho điều khiển chiếu
sáng cũng chiếm một tỷ trọng khá lớn. Việc quản lý tốt vấn đề chiếu sáng không
chỉ đem lại môi trường làm việc đủ ánh sáng mà còn nâng cao hiệu quả đầu tư cho
việc tiết kiệm điện và chi phí vận hành.
Tự động hóa điều khiển chiếu sáng, người vận hành có thể lập sẵn lịch hoạt
động chiếu sáng cho từng khu vực nhất định, cho từng thời điểm nhất định. Như
khu hành lang là nơi thường xuyên có người qua lại, hệ thống sẽ tự động bật sáng
khu vực đó trong thời gian làm việc. Những khu vực nhạy cảm về vấn đề an ninh,
hệ thống sẽ tự động bật sáng khu vực đó về đêm hoặc chiếu sáng tăng cường trong
những thời điểm nhạy cảm.
Xuất phát từ những ý tưởng và những tình hình thực tế như ở trên, tôi chọn
đề tài: “Nghiên cứu các chuẩn truyền thông và xây dựng một ứng dụng cho hệ
thống giám sát, điều khiển, điều hành tòa nhà cao tầng” cho luận văn tốt nghiệp.
Luận văn được tổ chức thành 3 chương với các nội dung chính như sau:
Chương 1 – Tổng quan về hệ thống BMS: Giới thiệu tổng quan về hệ thống
BMS, các phân hệ trong hệ thống BMS
Chương 2 – Một số chuẩn và giao thức truyền thông ứng dụng trong hệ thống
BMS: Trình bày mạng truyền thông trong hệ thống BMS, một số chuẩn truyền
thông, giao thức truyền thông sử dụng trong hệ thống BMS.
Chương 3 – Thiết kế một hệ thống thành phần trong hệ thống BMS: Trình bày
mục tiêu của đề tài, xây dựng cấu hình của hệ thống, thiết kế phần cứng, thiết kế
các modul mạch điện của hệ thống và xây dựng phần mềm nhúng cho hệ thống
Trang - - 12
nhằm thực hiện công việc bật/ tắt đèn chiếu sáng tự động trong hệ thống BMS. Thử
nghiệm kết quả và khả năng ứng dụng của hệ thống.
Trang - - 13
CHƯƠNG 1
TỔNG QUAN VỀ HỆ THỐNG BMS
1.1. Giới thiệu chung
Mục tiêu của hệ thống BMS là tập trung hóa và đơn giản hóa việc
giám sát, vận hành và quản lý tòa nhà. BMS cho phép nâng cao hiệu suất của tòa
nhà bằng cách giảm chi phí nhân công, chi phí năng lượng và cung cấp môi trường
làm việc thoải mái và an toàn cho con người.
Một số lợi ích của hệ thống BMS:
- Đơn giản hóa vận hành: các thủ tục, các chức năng có tính lặp đi lặp lại
được chương trình hóa để vận hành tự động.
- Giảm thời gian đào tạo cho nhân viên vận hành: Do có các chỉ dẫn trực tiếp
trên màn hình cũng như giao diện trực quan của tòa nhà.
- Phản ứng nhanh đối với các đòi hỏi của khách hàng và các sự cố.
- Giảm chi phí năng lượng: quản lý tập trung việc điều khiển và quản lý năng
lượng.
- Quản lý tốt hơn các thiết bị trong tòa nhà: nhờ vào hệ thống dữ liệu lưu trữ,
chương trình bảo trì bảo dưỡng và hệ thống tự động báo cáo các cảnh báo.
- Linh hoạt trong việc lập trình theo nhu cầu, kích thước, tổ chức và các yêu
cầu mở rộng.
- Sử dụng hệ thống vận hành bằng việc tích hợp hệ thống phần mềm và phần
cứng của nhiều hệ thống con khác nhau như: báo cháy, an toàn, điều khiển truy
nhập, điều khiển thiết bị điện qua công nghệ mạng di động GSM,….
Trang - - 14
1.2. Các phân hệ trong hệ thống BMS
Hình 1: Hình minh họa hệ thống BMS
Trong hệ thống BMS có khá nhiều phân hệ, cụ thể:
- Trạm phân phối điện
- Máy phát điện dự phòng
- Hệ thống chiếu sáng
- Hệ thống điều hoà và thông gió
- Hệ thống cấp nước sinh hoạt
- Hệ thống báo cháy
- Hệ thống chữa cháy
Trang - - 15
- Hệ thống thang máy
- Hệ thống âm thanh công cộng
- Hệ thống quản lý vào/ra (dùng công nghệ RFID)
- Hệ thống an ninh
- Đóng ngắt thiết bị điện
- Điều khiển thiết bị điện qua công nghệ mạng di động GSM
- V.v…
Các hệ thống này có thể chia làm ba nhóm chính:
- Hệ thống giám sát và báo động,
- Hệ thống quản lý năng lượng,
- Hệ thống thông tin.
Ba nhóm này đặc trưng cho hệ thống BMS cho các tòa nhà cao tầng. Tùy
thuộc vào mục đích sử dụng mà ba nhóm hệ thống trên được trang bị cho các tòa
nhà hay không.[15]
1.2.1. Quản lý vào/ra trong tòa nhà
Để quản lý vào/ra tại các cửa trong tòa nhà bằng thẻ sử dụng công nghệ
RFID (Radio Frequency Identification). Công nghệ RFID là công nghệ xác nhận
đối tượng bằng sóng vô tuyến.
Dạng đơn giản nhất được sử dụng hiện nay hệ thống RFID bị động làm việc
như sau: một RFID reader truyền một tín hiệu tần số vô tuyến điện từ qua anten của
nó đến một con chip không tiếp xúc. Reader nhận thông tin trở lại từ chip và gửi nó
đến máy tính điều khiển đầu đọc và xử lý thông tin tìm được từ con chip. Các con
chip không tiếp xúc không tích điện, chúng hoạt động bằng cách sử dụng năng
lượng chúng nhận từ tín hiệu được gửi bởi một reader.[13]
1.2.1.1. Thành phần của một hệ thống RFID
Một hệ thống RFID toàn diện bao gồm bốn thành phần:
Hình 2: Reader và Card
Trang - - 16
1. Thẻ RFID được lập trình điện tử với thông tin duy nhất.
2. Các reader hoặc sensor (cái cảm biến) để truy vấn các thẻ.
3. Anten
4. Server[16]
1.2.1.2. Hoạt động của hệ thống RFID
Một hệ thống RFID có ba thành phần cơ bản: thẻ, đầu đọc, và một host
computer.
Thẻ RFID gồm chip bán dẫn nhỏ và anten được thu nhỏ trong một số hình
thức như thẻ vào ra cửa trong tòa nhà. Mỗi thẻ được lập trình với một nhận dạng
(ID) duy nhất cho phép theo dõi không dây đối tượng hoặc con người đang gắn thẻ
đó. Bởi vì các chip được sử dụng trong thẻ RFID có thể giữ một số lượng lớn dữ
liệu, chúng có thể chứa thông tin như chuỗi số, hướng dẫn cấu hình, dữ liệu kỹ
thuật, sổ sách y học và lịch trình. Cũng như phát sóng tivi hay radio, hệ thống
RFID cũng sử dụng bốn băng thông tần số chính: tần số thấp (LF), tần số cao (HF),
siêu cao tần (UHF) hoặc sóng cực ngắn (viba).
RFID reader gồm một anten liên lạc với thẻ RFID và một đơn vị đo điện tử
học đã được nối mạng với host computer. Đơn vị đo tiếp sóng giữa host computer
và tất cả các thẻ trong phạm vi đọc của anten, cho phép một đầu đọc liên lạc với
hàng trăm thẻ đồng thời. Nó cũng thực thi các chức năng bảo mật như mã hóa/ giải
mã và xác thực người dùng. Đầu đọc RFID có thể phát hiện thẻ ngay cả khi không
nhìn thấy chúng. Hầu hết các mạng RFID gồm nhiều thẻ và nhiều đầu đọc được nối
mạng với nhau bởi một máy tính trung tâm, hầu như thường là một trạm làm việc
gọn để bàn. Host xử lý dữ liệu mà các đầu đọc thu thập từ các thẻ và dịch nó giữa
mạng RFID và các hệ thống kỹ thuật thông tin lớn hơn, mà nơi đó quản lý dây
chuyền hoặc cơ sở dữ liệu quản lý có thể thực thi.[13]
1.2.2. Hệ thống báo cháy
1.2.2.1. Cách nhận biết và báo cháy
Khi có căn phòng trong tòa nhà bị cháy, ở những căn phòng có cháy đó
thường có dấu hiệu sau:
- Lửa, khói và vật liệu chỗ cháy bị thiêu hủy
- Nhiệt độ trong vùng cháy tăng lên cao
- Không khí bị Oxy hóa mạnh
- Có mùi cháy và mùi khét
Ta có thể dựa vào những dấu hiệu trên để đặt các hệ thống cảm biến để làm
các thiết bị báo cháy.
Trang - - 17
Thiết bị báo cháy tự động giúp chúng ta thường xuyên theo dõi để hạn chế
các vụ cháy tai hại, hạn chế thiệt hại và an toàn cho mọi người.
1.2.2.2. Các bộ phận chính của hệ thống
1.2.2.2.1. Cảm biến
Cảm biến là bộ phận quan trọng, nó quyết định độ nhạy và sự chính xác của
hệ thống báo cháy.
Cảm biến hoạt động dựa vào các đặc tính vật lý của vật liệu cấu tạo nên
chúng. Cảm biến được dùng để chuyển đổi các tín hiệu vật lý sang tín hiệu điện.
Các đặc tính của cảm biến ta cần quan tâm: độ nhạy, độ ổn định và độ tuyến
tính.
Cảm biến nhiệt
Là loại cảm biến dùng để chuyển tín hiệu dưới dạng nhiệt độ sang tín hiệu
điện, cảm biến nhiệt có độ nhạy tương đối cao và tuyến tính. Nguyên tắc làm việc
của cảm biến nhiệt là dòng điện hay điện áp thay đổi khi có nhiệt độ tại nơi đặt nó
thay đổi.
Các loại cảm biến nhiệt:
IC cảm biến:
Là loại cảm biến bán dẫn được chế tạo thành các IC chuyên có độ nhạy cao,
điện áp ra thay đổi tỷ lệ thuận với nhiệt độ, một số loại IC được bán trên thị trường
là: LM355, LM334,…
Thermo Couples:
Thermo Couples biến đổi đại lượng nhiệt độ thành dòng điện hay điện áp DC
nhỏ. Nó gồm hai dây kim loại khác nhau nối với nhau tại hai mối nối. Khi các dây
nối đặt ở các vị trí khác nhau trong dây sẽ xuất hiện suất điện động. Suất điện động
tỷ lệ thuận với sự chênh lệch nhiệt độ giữa hai mối nối.
Cảm biến lửa:
Khi lửa cháy thì phát ra ánh sáng hồng ngoại, nên ta sử dụng các linh kiện
phát hiện tia hồng ngoại để phát hiện lửa. Nguyên lý hoạt động của cảm biến lửa là
điện trở của các linh kiện thu sóng hồng ngoại tăng nó chuyển tín hiệu ánh sáng thu
được thành tín hiệu điện để báo cháy. Cảm biến loại này rất nhạy với lửa, tuy nhiên
cũng dễ báo nhầm nếu ta để cảm biến ngoài trời hoặc gần ánh sáng bóng đèn tròn.
Cảm biến khói:
Thường cảm biến loại này là bộ phận riêng biệt chạy bằng Pin được thiết kế
để lắp đặt trên trần nhà, trên tường. Có hai loại cảm biến khói:
Trang - - 18
Loại thứ nhất sử dụng nguyên tắc Ion hóa. Sử dụng một lượng nhỏ chất
phóng xạ để Ion hóa trong bộ cảm biến. Không khí Ion hóa sẽ dẫn điện và tạo ra
một dòng điện chạy giữa hai cực đã được nạp điện. Khi các phần tử khói lọt vào
khu vực cảm nhận được Ion hóa sẽ làm tăng điện trở trong buồng cảm nhận và làm
giảm luồng điện giữa hai cực. Khi luồng điện giảm xuống tới một giá trị nào đó thì
bộ cảm biến sẽ phát tín hiệu báo cháy.
Loại thứ hai sử dụng các linh kiện thu phát quang. Loại này được dùng bởi
linh kiện phát quang (Led, Led hồng ngoại,…) chiếu một tia ánh sáng qua vùng bảo
vệ vào một linh kiện thu quang (photo diode, photo transistor, quang trở, …). Khi
có cháy xảy ra, khói đi vào vùng bảo vệ sẽ che chắn hoặc làm giảm cường độ ánh
sáng chiếu vào linh kiện thu. Khi cường độ giảm xuống tới một giá trị nào đó thì bộ
cảm biến sẽ phát tín hiệu báo cháy.
Trong hai loại này thì cách thứ nhất nhạy hơn và hiệu quả hơn nhưng khó
thực thi, khó lắp hơn. Còn loại thứ hai linh kiện dễ kiếm và dễ thực thi và lắp đặt
hơn.
Một nhược điểm chung của các loại cảm biến này là: mạch báo động có thể
sai nếu vùng bảo vệ bị ảnh hưởng bởi các lớp bụi.[10]
1.2.2.2.2. Thiết bị báo động
Thiết bị báo động gồm có hai loại:
- Báo động tại chỗ
- Báo động qua điện thoại.
Trong các hệ thống báo cháy, các bộ cảm biến thường được đặt ở những nơi
dễ cháy và nối với các thiết bị báo động bằng dây dẫn điện, cho nên trong một số
trường hợp dây sẽ bị đứt. Vì vậy để một hệ thống hoạt động có hiệu quả thì người
ta thường sử dụng các bộ phát vô tuyến. trong đó bộ phận phát gắn với bộ cảm biến
còn bộ phận thu gắn với mạch báo động.
Hình 3: Thiết bị báo cháy
Trang - - 19
1.2.3. Hệ thống thang máy
Gần đây, hệ thống thang máy đã trở thành một hệ thống quan trọng và hệ
thống này thường đi kèm với một phần mềm trên máy PC để giám sát và điều
khiển. Hệ thống này cũng sẽ cung cấp một cơ chế giao tiếp để cho các nhà tích hợp
như BMS để truy nhập và lấy thông tin.
Một giao tiếp mức cao sẽ được cung cấp cho hệ thống điều khiển thang máy
và thang trung tâm. Thông qua giao diện này, hệ thống BMS sẽ có thể giám sát và
điều khiển các thông tin liên quan đến thang máy và cũng giao tiếp với hệ thống
thông báo, hệ thống nhắn tin và màn hình hiển thị của thang máy. Toà nhà sẽ trang
bị nơi đặt hệ thống, rack, kết nối mạng và các hạng mục liên quan cần thiết cho
cổng giao tiếp với hệ thống thang máy.
Các nhà cung cấp thang máy thường cung cấp các hệ thống thang máy với
các giao thức như OPC, BACNet, MODBUS, LNS, P2 hoặc đơn giản hơn là
TCP/IP. Hệ thống thang máy của các nhà cung cấp lớn như Schindler, Ryoden,
Mitsubishi…hỗ trợ giao thức TCP/IP.
Mỗi một hệ thống thang máy sẽ cung cấp các chức năng sau để có thể dùng
BMS điều khiển chúng (thông qua cổng giao tiếp của BMS):
-Tất cả các điểm kiểm tra trạng thái của thang máy và các điểm cảnh
báo sẽ được giám sát.
- Vị trí của mỗi thang máy sẽ được chỉ ra và có thể đặt được
- Hiển thị trạng thái hoạt động của thang máy
- Các thông báo bằng hình ảnh đang hiển thị hoặc được lên lịch trình
hiển thị cũng sẽ được xem bằng hệ thống BMS
- Hiển thị tầng nghỉ của thang máy
- Hướng đi của thang máy
- Giám sát được được trạng thái dừng khẩn cấp của thang máy
- Giám sát trạng thái của các cảnh báo của thang máy.
Các cảnh báo chung của hệ thống thang máy sẽ không cần phải đưa ra. Hệ
thống BMS sẽ nhận các thông tin cảnh báo và trạng thái chi tiết của hệ thống.
Hệ thống BMS sẽ cung cấp màn hình đồ hoạ mô phỏng động để chỉ ra các chuyển
động và trạng thái của tất cả thang máy.[12]
Trang - - 20
1.2.4. Hệ thống điều hoà trung tâm
Hệ thống điều hòa trung tâm là một trong những hệ thống quan trọng nhất
của tòa nhà. Hệ thống này bao gồm các mạch điện cũng như các mạch điều khiển
đảm bảo cho hệ thống làm việc một cách trôi chảy. Thông thường các nhà cung cấp
điều hòa sẽ ưu tiên chọn các bộ điều khiển từ những nhà cung cấp mà có thể tích
hợp vào hệ thống một cách dễ dàng.
Để tích hợp với hệ thống, các nhà cung cấp điều hòa cần phải cung cấp các
thiết bị có khả năng kết nối với hệ thống bên ngoài thông qua các giao thức mở như
OPC, BACNet, MODBUS hoặc LNS.
Việc điều khiển độ nóng, thông gió và các dịch vụ điều hoà khác thông
thường đều thông qua các bộ điều khiển số trực tiếp của hệ thống BMS. Hệ thống
BMS sẽ điều khiển và/hoặc giám sát tối thiểu là:
- Các máy lạnh trung tâm
- Điều chuyển không khí
- Chỉnh lượng không khí
- Quạt khí thải/ khí tươi
- Nhiệt độ và độ ẩm ngoài trời
- Nhiệt độ và độ ẩm phòng
- Thời gian hoạt động của tất cả các khối
- Các thông số môi trường khác.
Hệ thống điều khiển này sẽ giao tiếp với thiết bị điều khiển chung của hệ
thống điều hòa với các thủ tục mở như BACNet, MODBUS, LNS, P2 hoặc theo
chuẩn của chính nhà sản xuất. Hệ thống BMS sẽ giám sát và điều khiển thông qua
các thiết bị điều khiển này và cung cấp ít nhất là các tính năng sau: [12]
- Tình trạng của các thiết bị
- Công suất hệ thống
- Các mức quá nhiệt của hệ thống
- Mức quá tải của hệ thống
- Giám sát các trạng thái hoạt động
- Thời gian hoạt động của tất cả hệ thống hoặc cục bộ
- Tính toán hoạt động với hiệu suất cao nhất
Trang - - 21
1.2.5. Máy phát điện
Các bộ điều khiển của BMS sẽ cho phép hệ thống BMS giám sát và điều
khiển máy phát và hệ thống nhiên liệu và cung cấp tối thiểu là các thông tin sau:
- Trạng thái của từng máy phát
- Giám sát tình trạng và mức độ chất lượng của hệ thống phát điện
- Giám sát các cảnh báo của các khối của máy phát điện
- Giám sát thời gian hoạt động của tất cả các máy phát
- Giám sát các mức nhiên liệu trong tất cả các bình chứa
- Giám sát nguồn cung cấp năng lượng và các cảnh báo về rò rỉ [12]
1.2.6. Hệ thống điện
Hình 4: Hệ thống giám sát, đo lường sử dụng điện trong tòa nhà
Các dịch vụ về điện sẽ có các bộ điều khiển của riêng chúng và có giao diện
đến hệ thống BMS. Nhà cung cấp hệ thống điện sẽ cung cáp bộ điều khiển với thủ
tục giao diện hoặc cổng giao diện cần thiết để giao tiếp với hệ thống BMS. Cổng
giao tiếp sẽ cung cấp giao diện RS232 hoặc RS485. Bảng điều khiển của hệ thống
có các điểm kiểm tra, các bộ biến đổi để có thể đo được điện áp, dòng, tần số, công
suất và năng lượng của hệ thống điện.
Để tích hợp với hệ thống BMS, các bộ điều khiển cần phải có các thủ tục
giao tiếp cần thiết để hệ thống BMS có thể giao tiếp với chúng.
Thông qua giao diện này. Hệ thống BMS sẽ giám sát các thông tin được chỉ định
Trang - - 22
hoặc trạng thái của hệ thống điện từ trạm biến áp đến tủ phân phối từng tầng. Một
cách tối thiểu hệ thống BMS sẽ giám sát được các yếu tố sau:
- Công suất tiêu thụ lấy từ tất cả các bộ đo điện
- Nhu cầu tối đa
- Giám sát trạng thái của các mạch điện
- Giám sát và điều khiển trạng thái của các máy cắt/ áttômát
- Điện áp, dòng và tần số điện nguồn
- Giám sát trạng thái của tất cả bảng chuyển mạch của các dịch vụ
điện, điện áp và dòng của điện cung cấp.
Hệ thống BMS sẽ cung cấp việc hiển thị đồ hoạ của tất cả hệ thống điện hiển
thị hạ tầng kết nối và các mạch điện. Màn hình đồ hoạ sẽ hiển thị bề mặt của các
bảng chuyển mạch và chỉ ra tên và số của các mạch, các cầu chì cùng với các lượng
điện tiêu thụ, các giá trị đọc được của điện áp và dòng điện. Trạng thái của tất cả
các điểm giám sát thiết bị điện cũng được hiển thị.
Hệ thống BMS sẽ cung cấp các chức năng điều khiển mức vùng cho các
chức năng sau:
- Bất kỳ thay đổi nào về trạng thái của bộ chuyển mạch điều khiển cần phải
được phát hiện
- Bộ chuyển mạch điều khiển sẽ cung cấp trạng thái là đang làm việc hay
không
- Giám sát các modul điều khiển của tất cả hệ thống điều khiển chiếu sáng.
Hệ thống sẽ hiển thị chi tiết bên ngoài và các tầng cho thấy trạng thái của tất
cả các đèn từng khu vực và mạch điện bộ cảm biến chuyển động,cảm biến mức ánh
sáng.[10]
Trang - - 23
CHƯƠNG 2
MỘT SỐ CHUẨN VÀ GIAO THỨC TRUYỀN THÔNG
ỨNG DỤNG TRONG HỆ THỐNG BMS
2.1. Mạng truyền thông trong hệ thống BMS
Để ứng dụng được BMS, các thiết bị lắp đặt trong tòa nhà phải hỗ trợ kết nối
BMS, tức là hỗ trợ các chuẩn truyền thông chuẩn như: BACnet, LonWork, Modbus
hoặc hỗ trợ chuẩn tín hiệu công nghiệp 4-20mA. BMS có thể điều khiển các thiết bị
này qua chuẩn truyền thông.
Mạng thông tin của BMS chia làm 3 cấp ( hoặc 02 cấp) tùy vào từng nhà
cung cấp:
- Mạng trục backbone (thường là mạng Ethernet) : TCP/IP hoặc Bacnet/IP
10100/1000Mb nối các bộ điều khiển tòa nhà ( Builiding controllers) với nhau và
nối với các Server của hệ thống ( thường có 2 server chạy nóng và dự phòng).
- Mạng điều khiển tầng: là mạng dây chạy trực tiếp trong từng tầng, thường
là mạng RS485, chuẩn truyền thông thường là LON, Bacnet MS/TP, N2, P2 mạng
này do bộ điều khiển tầng quản lý và liên kết các bộ điều khiển nhỏ hơn đặt tại
từng thiết bị cụ thể trong tầng của tòa nhà.[6]
Thường các hệ BMS đơn giản chỉ có 02 phân lớp mạng như vậy. Các hệ
thống lớn và yêu cầu tích hợp cao thường có thêm phân lớp mạng thứ 3 nằm trên 2
lớp trên: ALN ( Application Level network). Phân lớp này thường là lớp mạng
interconnect giữa rất nhiều hệ thống khác nhau trong tòa nhà, cùng chia sẻ thông tin
và quản lý, nó sẽ có 1 hệ thống trung tâm để thu thập và phân phối thông tin cho
các Client trong hệ thống mạng.[7]
2.2. Một số chuẩn truyền thông
2.2.1. Giới thiệu về truyền thông qua chuẩn RS232
RS-232 lúc đầu được xây dựng phục vụ chủ yếu trong việc ghép nối điểm-
điểm giữa hai thiết bị đầu cuối ( DTE, Data Terminal Equipment ), như giữa hai
máy tính PC, PLC ..., giữa máy tính và máy in, hoặc giữa một thiết bị đầu cuối và
một thiết bị truyền dữ liệu ( DCE, Data Communication Equipment ).
Mặc dù tính năng hạn chế, RS-232 là một trong các chuẩn tín hiệu có từ lâu
nhất, vì thế được sử dụng rất rộng rãi. Ngày nay, mỗi máy tính cá nhân đều có một
vài cổng RS-232 ( cổng COM ), có thể sử dụng tự do để nối với các thiết bị ngoại
vi hoặc với các máy tính khác. Nhiều thiết bị công nghiệp cũng tích hợp cổng RS-
232 phục vụ lập trình hoặc tham số hoá.[9]
Trang - - 24
- Đặc tính điện học: RS-232 sử dụng phương thức truyền thô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. Mức điện áp được
sử dụng dao động trong khoảng từ -15V đến 15V. Khoảng từ 3V đến 15V ứng với
giá trị logic 0, khoảng từ -15V đến -3V ứng với mức giá trị logic 1. Chính vì
khoảng từ -3V đến 3V là phạm vi không được định nghĩa, trong trường hợp thay
đổi giá trị logic từ 0 lên 1 hoặc từ 1 xuống 0 một tín hiệu phải vượt qua khoảng
quá độ đó trong một thời gian ngắn hợp lý. Ví dụ, theo tiêu chuẩn DIN 66259
phần 2 qui định độ dốc tối thiểu của một tín hiệu phải là 6V/ms hoặc 3% nhịp xung,
tuỳ theo giá trị nào nhỏ hơn. Điều này dẫn đến 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.[9]
Hình 5: Quy định trạng thái logic của tín hiệu RS-232.
Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài dây dẫn. Đa số các hệ
thống hiện nay chỉ hỗ trợ tới tốc độ 19,2kBd ( chiều dài cho phép 30-50m ). Gần
đây, sự tiến bộ của vi mạch đã góp phần nâng cao tốc độ của các modem lên nhiều
lần so với ngưỡng 19,2kBd. Hiện nay đã có những mạch thu phát đạt tốc độ
460kBd và hơn nữa. Tuy nhiên tốc độ truyền dẫn thực tế lớn hơn 115,2 kBd theo
tiêu chuẩn RS-232 trong một hệ thống làm việc dựa vào ngắt là một điều khó có thể
thực hiện.
Một ưu điểm của chuẩn RS-232 là có thể sử dụng công suất phát tương đối
thấp, nhờ trở kháng đầu vào hạn chế trong phạm vi từ 3-7kΩ.
Một số thông số điện học quan trọng của RS-232:
Trang - - 25
Bảng 1: Một số thông số điện học của RS-232
Giao diện cơ học: chuẩn EIA/TIA-232F qui định ba loại giắc cắm RS-232 là
DB-9 ( 9 chân ), DB-25 ( 25 chân ) và ALT-A ( 26 chân ), trong đó hai loại đầu sử
dụng rỗng rãi hơn. Loại DB-9 cũng đã được chuẩn hóa riêng trong
EIA/TIA-574. [7]
Ý nghĩa của các chân quan trọng được mô tả dưới đây:
• RxD ( receive data ): đường nhận dữ liệu.
• TxD ( transmit data ): đường gửi dữ liệu.
• DTR ( Data terminal ready ): chân DTR thường ở trạng thái On khi thiết bị
đầu cuối sẵn sàng thiết lập kênh truyền thông. Qua việc giữ mạch DTR ở trạng
thái ON, thiết bị đầu cuối cho phép DCE của nó ở chế độ " tự trả lời "chấp nhận lời
gọi không yêu cầu. Mạch DTR ở trạng thái OFF chỉ khi thiết bị đầu cuối không
muốn DCE của nó chấp nhận lời gọi từ xa ( chế độ cục bộ ).
• DSR ( data set ready, DCE ready ): cả hai modem chuyển mạch DSR sang
ON khi một đường truyền thông đã được thiết lập giữa hai bên.
• DCD ( data carrier detect ): chân DCD được sử dụng để kiểm soát truy
nhập đường truyền. Một trạm nhận tín hiệu DCD là OFF sẽ hiểu là trạm đối tác
chưa đóng mạch yêu cầu gửi dữ liệu ( chân RTS ) và vì thế có thể đoạt quyền kiểm
Trang - - 26
soát đường truyền nếu cần thiết. Ngược lại, tín hiệu DCD là ON chỉ thị bên đối tác
đã gửi tín hiệu RTS và giành quyền kiểm soát đường truyền.
• RTS ( request to send ): đường RTS kiểm soát chiều truyền dữ liệu. Khi
một trạm cần gửi dữ liệu, nó đóng mạch RTS sang ON để báo hiệu với modem của
nó. Thông tin này cũng được chuyển tiếp tới modem xa.
• CTS ( clear to send ): khi CTS chuyển sang ON, một trạm được thông báo
rằng modem của nó đã sẵn sàng nhận dữ liệu từ trạm và kiểm soát đường điện thoại
cho việc truyền dữ liệu đi xa.
• RI ( ring indicator ): khi modem nhận được một lời gọi, mạch RI chuyển
ON/OFF một cách tuần tự với chuông điện thoại để báo hiệu cho trạm đầu cuối.
Tín hiệu này chỉ thị rằng một modem xa yêu cầu thiết lập liên kết dial-up.
Hình 6: Giắc cắm RS-232 loại 9 chân
Trang - - 27
Hình 7: Giắc cắm RS-232 loại 25 chân
- Chế độ làm việc: chế độ làm việc của hệ thống RS-232 là hai chiều toàn
phần ( full-duplex ), tức là hai thiết bị tham gia cùng có thể thu và phát tín hiệu
cùng một lúc. Như vậy, việc thực hiện truyền thông cần tối thiểu 3 dây dẫn - trong
đó hai dây tín hiệu nối chéo các đầu thu phát của hai trạm và một dây đất. Với cấu
hình tối thiều này, việc đảm bảo độ an toàn truyền dẫn tín hiệu thuộc về trách
nhiệm của phần mềm.
Ta còn có thể ghép nối trực tiếp giữa hai thiết bị thực hiện chế độ bắt tay (
handshake mode ) không thông qua modem. Qua việc sử dụng các dây dẫn DTR và
DSR, độ an toàn giao tiếp sẽ được đảm bảo. Trong trường hợp này các chân RTS
và CTS được nối ngắn. [7]
Trang - - 28
Hình 8: Ghép nối trực tiếp
2.2.2. Giới thiệu về truyền thông qua chuẩn RS-485
Đặc tính điện học: sử dụng tín hiệu điện áp chênh lệch đối xứng giữa hai dây
dẫn A và B. Nhờ vậy giảm được nhiễu và cho phép tăng chiều dài dây dẫn ( có thể
lên đến 1200m ). Điện áp chênh lệch dương tương ứng với trạng thái logic 0 và âm
tương ứng với trạng thái logic 1. Điện áp chênh lệch ở đầu vào dây nhận có thể
xuống tới 200mV.
Bảng 2:Các thông số quan trọng của RS-485
Trang - - 29
RS-485 có khả năng ghép nối nhiều điểm. Có thể ghép nối 32 trạm, được
định địa chỉ và giao tiếp đồng thời qua một đoạn RS-485 mà không cần lắp bộ. Để
đạt được điều này, trong một thời điểm chỉ một trạm được phép kiểm soát đường
dẫn và phát tín hiệu. Vì thế một bộ kích thích đều phải đưa về chế độ trở kháng cao
mỗi khi rỗi, tạo điều kiện cho các bộ kích thích ở các trạm khác tham gia. Chế độ
này gọi là chế độ tri-state. Một số vi mạch RS-485 tự động xử lý tình huống này,
trong nhiều trường hợp khác việc đó thuộc về trách nhiệm của phần mềm điều
khiển truyền thông. Trong mạch của bộ kích thích RS-485 có một tín hiệu vào
'enable ' được dùng cho mục đích chuyển bộ kích thích về trạng thái phát tín hiệu
hoặc tri-state.[6]
Hình 9: Sơ đồ bộ kích thích ( driver ) và bộ thu ( receiver ) RS-485.
Mặc dù phạm vi làm việc tối đa là -6V đến 6V (trong trường hợp hở mạch),
trạng thái logic của tín hiệu chỉ được định nghĩa trong khoảng từ ±1,5V đến ±5V
đối với đầu ra ( bên phát ) và từ ±0,2V đến ±5V đối đầu vào ( bên nhận ).
Số trạm tham gia: RS-485 cho phép nối mạng 32 tải đơn vị ( unit load, UL ),
ứng với 32 bộ thu phát hoặc nhiều hơn, tuỳ theo cách chọn tải cho mỗi thiết bị
thành viên. Thông thường, mỗi bộ thu phát được thiết kế tương đương với một tải
đơn vị. Gần đây cũng có những cố gắng giảm tải xuống 1/2UL hoặc 1/4UL, tức là
tăng trở kháng đầu vào lên hai hoặc bốn lần, với mục đích tăng số lượng trạm lên
64 hoặc 128. Tuy nhiên, tăng số trạm theo cách này sẽ gắn với việc phải giảm tốc
độ truyền thông, vì các trạm trở kháng lớn sẽ hoạt động chậm hơn.[6]
Trang - - 30
Hình 10: Quy định trạng thái logic của tín hiệu RS-485.
Giới hạn 32 tải đơn vị xuất phát từ đặc tính kỹ thuật của hệ thống truyền
thông nhiều điểm. Các tải được mắc song song vì thế việc tăng tải sẽ làm suy giảm
tín hiệu vượt quá mức cho phép. Theo qui định chuẩn, một bộ kích thích tín hiệu
phải đảm bảo dòng tổng cộng 60mA vừa đủ để cung cấp cho:
• Hai trở đầu cuối mắc song song tương ứng tải 60Ω ( 120Ω tại mỗi
đầu ) với điện áp tối thiểu 1,5V tạo dòng tương đương 25mA.
• 32 tải đơn vị mắc song song với dòng 1mA qua mỗi tải ( trường hợp
xấu nhất ), tạo dòng tương đương 32mA.
Hình 11: Định nghĩa một tải đơn vị.
Tốc độ truyền tải và chiều dài dây dẫn: RS485 cho phép truyền khoảng cách
tối đa giữa trạm đầu và trạm cuối trong một đoạn mạng là 1200m, không phụ thuộc
vào số trạm tham gia. Tốc độ truyền dẫn tối đa có thể lên đến 10Mbit/s, một số hệ
Trang - - 31
thống gần đây có khả năng làm việc với tốc độ 12Mbit/s. Tuy nhiên có sự ràng
buộc giữa tốc độ truyền dẫn tối đa và độ dài dây dẫn cho phép, tức là một mạng dài
1200m không thể làm việc với tốc độ 10MBd. Quan hệ giữa chúng phụ thuộc vào
chất lượng cáp dẫn và phụ thuộc vào việc đánh giá chất lượng tín hiệu.
Hình 12: Quan hệ giữa tốc độ truyền và chiều dài dây dẫn
Quan hệ giữa tốc độ truyền và chiều dài dây dẫn tối đa trong RS-485 sử dụng
đôi dây xoắn AWG24.
Tốc độ truyền tối đa phụ thuộc vào chất lượng cáp mạng, cụ thể là đôi dây
xoắn kiểu STP có khả năng chống nhiễu tốt hơn loại UPT và vì thế có thể truyền
với tốc độ cao hơn. Có thể sử dụng các bộ lặp để tăng số trạm trong một mạng,
cũng như chiều dài dây dẫn lên nhiều lần, đồng thời đảm bảo được chất lượng tín
hiệu.
Cấu hình mạng: RS-485 là chuẩn duy nhất do EIA đưa ra mà có khả năng
truyền thông đa điểm thực sự chỉ sử dụng một đường dẫn chung duy nhất, được gọi
là bus. Chính vì vậy mà nó được làm chuẩn cho lớp vật lý ở đa số các hệ thống bus
hiện thời.
Cấu hình phổ biến nhất là sử dụng hai dây dẫn cho việc truyền tín hiệu.
Trong trường hợp này, hệ thống chỉ có thể làm việc với chế độ hai chiều gián
đoạn ( half-duplex ) và các trạm có thể nhận quyền bình đẳng trong việc truy
nhập đường dẫn. Chú ý, đường dẫn được kết thúc bằng hai trở tại hai đầu chứ
không được phép ở giữa đường dây. Trên hình trên không vẽ dây nối đất song trên
thực tế việc nối đất là rất quan trọng.[6]
Trang - - 32
Hình 13: Cấu hình mạng RS – 485 hai dây
+ Cáp nối: RS-485 không phải là một chuẩn trọn vẹn mà chỉ là một chuẩn về
đặc tính điện học, vì vậy không đưa ra các qui định cho cáp nối cũng như các bộ
nối. Có thể dùng dây xoắn đôi, cáp trơn hoặc các loại cáp khác. Tuy nhiên dây xoắn
đôi vẫn là loại cáp được sử dụng phổ biến nhất nhờ đặc tính chống tạp nhiễu và
xuyên âm.
Hình 14: Dây xoắn đôi
Trở đầu cuối: Do tốc độ truyền thông và chiều dài dây dẫn có thể khác nhau
rất nhiều trong các ứng dụng nên hầu hết các bus RS-485 đều yêu cầu sử dụng trở
đầu cuối tại hai đầu dây. Sử dụng trở đầu cuối có tác dụng chống các hiệu ứng phụ
Trang - - 33
trong truyền dẫn tín hiệu như sự phản xạ tín hiệu.Trở đầu cuối dùng cho RS485
có thể từ 100Ω đến 120Ω.
Hình 15: Cấu hình mạng RS-485 sử dụng 4 dây.
Trong trường hợp cáp truyền ngắn và tốc độ truyền thấp, ta có thể không cần
dùng trở đầu cuối. Tín hiệu phản xạ sẽ suy giảm và triệt tiêu sau vài lần qua lại.
Tốc độ truyền dẫn thấp có nghĩa là chu kỳ nhịp bus dài. Nếu tín hiệu phản xạ triệt
tiêu hoàn toàn trước thời điểm trích mẫu ở nhịp tiếp theo ( thường vào giữa chu kỳ
) thì tín hiệu mang thông tin sẽ không bị ảnh hưởng.
Có nhiều phương pháp chặn đầu cuối một đường dẫn RS-485. Phương pháp
được dùng phổ biến nhất là chỉ dùng một điện trở thuần nhất nối giữa hai dây A và
B tại mỗi đầu. Phương pháp này gọi là chặn song song. Điện trở được chọn có giá
trị tương đương với trở kháng đặc trưng ( trở kháng sóng ) của cáp nối. Như vậy sẽ
không có tín hiệu phản xạ và chất lượng tín hiệu mang thông tin sẽ được đảm bảo.
Nhược điểm của phương pháp này là sự tổn hao nguồn tại hai điện trở.
Trang - - 34
Hình 16: Các phương pháp chặn đầu cuối RS-485.
Bảng 3: Thông số của các phương pháp
Phương pháp thứ hai được gọi là chặn RC, sử dụng kết hợp một tụ C mắc nối
tiếp với điện trở R. Mạch RC này cho phép khắc phục nhược điểm của cách sử
dụng một điện trở thuần nêu trên. Trong lúc tín hiệu ở giai đoạn quá độ, tụ C có tác
dụng ngắn mạch và trở R có tác dụng chặn đầu cuối. Khi tụ C đảo chiều sẽ cản trở
dòng một chiều và vì thế có tác dụng giảm tải. Tuy nhiên, hiệu ứng sẽ cản trở thông
thấp ( lowpass ) của mạch RC không cho phép hệ thống làm việc với tốc độ cao.
Một biến thể của phương pháp chặn song song cũng được sử dụng rộng rãi là
chặn tin cậy, bởi nó có tác dụng khác nữa là tạo thiên áp tin cậy ( fail-safe biasing )
đảm bảo một dòng tối thiểu cho trường hợp bus rỗi hoặc có sự cố.
Nối đất: Mặc dù mức tín hiệu được xác định bằng điện áp chênh lệch giữa
hai dây dẫn A và B không liên quan tới đất, hệ thống RS485 vẫn cần một đường
dây nối đất để tạo một đường thoát cho nhiễu chế độ chung và các dòng khác, ví dụ
dòng đầu vào bộ thu. Một sai lầm thường gặp là chỉ dùng hai dây để nối hai trạm.
Trong trường hợp này dòng chế độ chung sẽ tìm cách quay ngược trở lại nguồn
phát, bức xạ nhiễu ra môi trường xung quanh ảnh hưởng tới tính tương thích điện
từ của hệ thống. Nối đất sẽ có tác dụng tạo một đường thoát trở kháng nhỏ tại một
vị trí xác định, nhờ vậy giảm thiểu tác hại gây nhiễu. Hơn thế nữa với cấu hình trở
đầu cuối tin cậy, việc nối đất tạo thiên áp sẽ giữ một mức điện áp tối thiểu giữa hai
dây A và B trong trường hợp kể cả bus rỗi hoăc có sự cố.[7]
Trang - - 35
2.3. Giao thức truyền thông
Giao thức truyền thông là một yếu tố quan trọng trong cấu hình của BMS vì
nó ảnh hưởng trực tiếp đến dữ liệu được truyền từ điểm này đến điểm khác và bởi
vì các bộ điều khiển phân tán có thể phải lấy dữ liệu của nhau.
Sử dụng giao thức truyền thông ngang hàng (Peer Communication Protocol)
So với giao thức hỏi vòng, giao thức ngang hàng có các lợi ích sau:
- Việc truyền thông không phụ thuộc vào một thiết bị đơn lẻ nào – trạm chủ.
- Việc truyền thông được thực hiện trực tiếp giữa các thiết bị trong mạng mà
không cần phải thông qua một trạm trung gian nào.
- Các thông điệp hệ thống được truyền trực tiếp đến tất cả các trạm trên mạng.
2.3.1. Giới thiệu giao thức truyền thông BACnet
BACnet (Building Automation and Control network Protocol) là Giao thức
truyền thông của hệ thống điều khiển và tự động hoá toà nhà.
Ngày nay, BACnet đã và đang được các nhà cung cấp thiết bị chấp nhận một
cách rộng rãi như một chuẩn Quốc tế trong lĩnh vực tự đống hoá toà nhà. BACnet
được sáng lập bởi một hiệp hội các kỹ sư trong lĩnh vực cơ điện lạnh tại Mỹ có tên
là ASHRAE.[9]
Với tư cách là một chuẩn truyền thông mở giành cho toà nhà nó tạo ra nền
chuẩn cho phép các thiết bị của các hãng khác nhau trao đổi thông tin với nhau
trong toà nhà như: Cảnh báo, lịch biểu, theo dõi bằng đồ thị và báo cáo. Chính vì
vậy, BACnet tỏ ra rất cạnh tranh so với các chuẩn giao thức khác thể hiện ở chỗ:
- Chi phí tích hợp hệ thống thấp.
- Tính năng tích hợp hệ thống cao.
- Thu việc điều hành về một máy chủ.
- Loại bỏ sự ràng buộc vào một nhà cung cấp thiết bị[9]
2.3.2. Giao thức mạng Ethernet
Ethernet hay còn biết đến dưới tên gọi IEEE 802.3 là một giao thức mạng
chuẩn hóa việc truyền thông tin gói trong mạng cục bộ. Giao thức Ethernet được
xếp vào lớp thứ hai trong mô hình OSI tức tầng data link. Phương thức truyền gói
tin của Ethernet là Carrier-Sense Multiple Access/ Collision Detect
(CSMA/CD).[9]
Trang - - 36
CHƯƠNG 3
THIẾT KẾ MỘT HỆ THỐNG THÀNH PHẦN
TRONG HỆ THỐNG BMS
3.1. Mục tiêu của đề tài
Ngày nay chiếu sáng không chỉ đáp ứng nhu cầu có ánh sáng mà chiếu sáng
còn phải đảm bảo các yêu cầu về chất lượng ánh sáng, độ thẩm mỹ, mức độ hiệu
quả và độ tiện dụng của việc chiếu sáng. Với sự phát triển của Công nghệ điện tử
tin học, ngành công nghiệp chiếu sáng đã được nâng lên một tầm mới với mô hình
chiếu sáng tòa nhà thông minh.
Ở những nơi công cộng như hành lang, cầu thang, những nơi có không gian
lớn hoặc những nơi không cần sự chiếu sáng thường xuyên, việc bật sáng thường
xuyên sẽ gây ra tình trạng lãng phí điện, làm giảm tuổi thọ của bóng đèn. Vì vậy
chúng ta có thể sử dụng thiết bị cảm biến hồng ngoại để tự động điều khiển bật tắt
các thiết bị. Các cảm biến hồng ngoại được đặt ngay tại nơi cần chiếu sáng, trong
vùng quét. Khi có người đi qua cảm biến hồng ngoại sẽ nhận biết và truyền tín hiệu
về bộ điều khiển trung tâm để điều khiển bật tắt thiết bị. Thời gian bật tắt được tùy
biến cài đặt đảm bảo sự chiếu sáng tiện nghi. Do đó việc lắp đặt hệ thống cảm biến
không những đảm bảo tính tiện lợi, hiện đại mà còn nâng cao tính hiệu quả tiết
kiệm điện, nhất là các tòa nhà lớn.
Mục tiêu của đề tài này là nghiên cứu, thiết kế và chế tạo bo mạch điện tử
ứng dụng trong Tự động hóa và xây dựng phần mềm điều khiển cho bo mạch nêu
trên để điều khiển bật/ tắt đèn chiếu sáng và điều khiển đóng ngắt các thiết bị điện
dân dụng khác một cách tự động nhằm nâng cao đời sống tiện ích cho con người và
tiết kiệm năng lượng, góp phần vào công cuộc công nghiệp hóa hiện đại hóa đất
nước.
3.2. Cấu hình hệ thống
Hệ thống sử dụng các modul chính sau:
- Cảm biến.
- Mạch Slave nhận tín hiệu từ cảm biến và truyền tín hiệu đến mạch
Master.
- Mạch Master nhận tín hiệu từ mạch Slave. Mạch Master điều khiển
rơle bật/ tắt đèn chiếu sáng.
- Màn hình LCD
- Keyboard dùng để nhập account và password.
Trang - - 37
- Rơle đóng/ ngắt nguồn điện cấp cho bóng đèn (tải).
Các modul trong hệ thống được kết nối với nhau như hình dưới đây:
Hình 17: Sơ đồ khối hệ thống
3.3. Thiết kế phần cứng của hệ thống
3.3.1. Giới thiệu tổng quan họ vi điều khiển AVR
AVR là họ vi diều khiển mới khá mạnh, tích hợp tính năng cao, hơn hẳn họ
89xx của hãng Atmel theo công nghệ RISC(Reduced Instruction Set Computer ).
Những đặc điểm nổi trội của AVR đó là về tốc độ sử lý nhanh hơn, nhiều
tính năng hơn, giao tiếp đơn giản, khả năng chống nhiễu tốt hơn.
Có thể xem AVR ngang hàng với những họ vi điều khiển mới như: Pic, psoc
cùng thời. Tuy mỗi họ có những tính năng riêng tuỳ thuộc vào ứng dụng thực tế
của chúng ta, sử dụng cho phù hợp yêu cầu.
Những tính năng mạnh hơn như:
- Kiến trúc (RISC) với hầu hết các lệnh có chiều dài cố định, truy cập bộ nhớ
nạp - lưu dữ liệu và 32 thanh ghi đa năng.
- Kiến trúc đường ống lệnh kiểu 2 tầng làm tăng tốc độ thực thi lệnh.
- Có chứa nhiều bộ phận ngoại vi: giao diện SPI đồng bộ, các đường dẫn
vào/ra (I/O) lập trình được, giao tiếp I2C, bộ biến đổi ADC 10 bit, các kênh
băm xung PWM, chế độ sleep, standby, 1 bộ định thời Watchdog, 3 bộ
Cảm
biến
Slave
Master
Keyboard
Tải
LCD
Trang - - 38
timer/counter 8 bit, 1 bộ timer/counter 16 bit, 1 bộ só sánh tương tự (analog), có
bộ nhớ EEPROM , giao tiếp UART.
Hầu hết các lệnh đều thực hiện trong 1 chu kỳ xung nhịp.
- Hoạt động với tốc độ đồng hồ đến 12 MHZ, vi điều khiển AVR có khả
năng đạt đến tốc độ xử lý 12MPIS (1 triệu lệnh trên giây).
- Bộ nhớ chương trình và dữ liệu tích hợp ngay trên chip. AVR có 3 công
nghệ bộ nhớ khác nhau: EPROM( luôn lập trình mới được) xoá được kiểu flash,
EEPROM xoá được bằng tín hiệu xung điện nhưng nội dung bộ nhớ vẫn dữ nguyên
khi mất điện áp nguồn, RAM dùng cho các biến thông thường.
- Khả năng lập được trình trong hệ thống, do cách thiết kế và công nghệ bộ
nhớ có thể lập trình ngay trong khi đang được cấp nguồn trên mạch, không cần phải
nhấc chip ra như các vi điều khiển khác.
- Hỗ trợ lập trình bằng ngôn ngữ C.
- Điện áp làm việc thay đổi trong khoảng rộng từ 2.7->6V.[17]
3.3.2. Giới thiệu vi điều khiển AVR Atmega 128
3.3.2.1. Sơ đồ chân
Hình 18: Sơ đồ chân
Trang - - 39
Vi điều khiển AVR Atmega128 có 64 chân. Cụ thể các chân như sau:
Pin Number Description
1 PEN – Ground
2-9 PE0 - PE7 - Port E
10-17 PB0 - PB7 - Port B
18 TOSC2/PG3
19 TOSC1/PG4
20 RESET – Reset
21 VCC - Positive Power Supply
22 GND – Ground
23 XTAL2 – Crystal
24 XTAL1 – Crystal
25-32 PD0 - PD7 - Port D
33 PG0 (WR)
34 PG1 (RD)
35-42 PC0 - PC7 - Port C
43 PG2 (ALE)
44-51 PA7 - PA0 - Port A
52 VCC - Positive Power Supply
53 GND – Ground
54-61 PF7 - PF0 - Port F
62 AREF - Analog Reference
63 GND – Ground
64 AVCC - Analog Power Supply
Bảng 4: Các chân của Atmega128
3.3.2.2. Cấu trúc bộ nhớ
Bộ nhớ vi điều khiển AVR có đường Bus riêng cho bộ nhớ chương trình và
bộ nhớ dữ liệu. Bộ nhớ AVR đượ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ớ chươ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. 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 ).
Trang - - 40
Phần boot loader chứa chương trình boot loader. Chươ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. Hình 19 thể hiện cấu trúc bộ nhớ chương trình có sử dụng và
không sử dụng boot loader, khi sử dụng phần boot loader ta thấy 4 word đầu tiên
thay vì chỉ thị cho CPU chuyển tới chương trình ứng dụng của người dùng (là
chương trình có nhãn start ) thì chỉ thị CPU nhảy tới phần chương trình boot loader
để thực hiện trước, rồi mới quay trở lại thực hiện chương trình ứng dụng.[2]
Trang - - 41
Hình 19: Bộ nhớ chương trình có và không có sử dụng boot loader
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ệt nhau và được đánh địa chỉ riêng.
+ Bộ nhớ SRAM có dung 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ộ nhớ SRAM hoạt động theo chế độ nào ta sử dụng bit cầu chì M103C.
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.
64 thanh ghi vào ra trong vùng nhớ vào ra ( phần số 2 ) có 2 kiểu chọn địa
chỉ : Nếu xem chúng là vùng nhớ vào ra thì địa chỉ sẽ là $00 - $3F, khi sử dụng các
lệnh in, out … ta phải sử dụng địa chỉ này. Nếu xem chúng như là một phần của bộ
nhớ SRAM thì sẽ có địa chỉ là $0020 - $005F, khi ta dùng các lệnh như LD, ST…
ta phải sử dụng kiểu địa chỉ này.
Trang - - 42
Hình 20: Vùng nhớ 64 thanh ghi vào ra có 2 cách chọn địa chỉ
Tiệp ghanh ghi ( register file ): Tiệp 32 thanh ghi đa chức năng ( $0000 -
$001F ) đã được nói ở trên, ngoài chức năng là các thanh ghi đa chức năng, thì các
thanh ghi từ R26 tới R31 từng đôi một tạo thành các thanh ghi 16 bit X, Y, Z được
dùng làm con trỏ trỏ tới bộ nhớ chương trình và bộ nhớ dữ liệu ( Hình ). Thanh ghi
con trỏ X, Y có thể dùng làm con trỏ trỏ tới bộ nhớ dữ liệu, còn thanh ghi Z có thể
dùng làm con trỏ trỏ tới bộ nhớ chương trình. Các trình biên dịch C thường dùng
các thanh ghi con trỏ này để quản lí Data stack của chương trình C.[17]
Hình 21: Chức năng con trỏ của các thanh ghi R26 –R31
Trang - - 43
+ Bộ nhớ EEPROM 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 được xem như là một bộ nhớ vào ra được đánh địa chỉ độc lập với
SRAM, đ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. Để điều khiển vào ra dữ liệu với EEPROM ta sử dụng 3 thanh ghi
sau:
* Thanh Ghi EEAR ( EEARH và EEARL )
EEAR là thanh ghi 16 bit lưu giữ địa chỉ của các ô nhớ của EEPROM, thanh
ghi EEAR được kết hợp từ 2 thanh ghi 8 bit là EEARH và thanh ghi EEARL. Vì
bộ nhớ EEPROM của ATmega128 có dung lượng 4 Kbyte = 4096 byte = 212 byte
nên ta chỉ cần 12 bit của thanh ghi EEAR , 4 bit từ 15 -12 được dự trữ, ta nên ghi 0
vào các bit dự trữ này.
* Thanh Ghi EEDR
Đây là thanh ghi dữ liệu của EEPROM, là nơi chứa dữ liệu ta định ghi vào
hay lấy ra từ EEPROM.
* Thanh Ghi EECR
Trang - - 44
Đây là thanh ghi điều khiển EEPROM, ta chỉ sử dụng 4 bit đầu của thanh ghi
này, 4 bit cuối là dự trữ, ta nên ghi 0 vào các bit dự trữ. Sau đây ta xét chức năng
của từng bit.
- Bit 3 – EERIE: EEPROM Ready Interrupt Enable : Đây là bit cho
phép EEPROM ngắt CPU, khi bit này được set thành 1 và ngắt toàn cục được cho
phép ( bằng cách set bit I trong thanh ghi SREG lên 1 ) thì EEPROM sẽ tạo ra một
ngắt với CPU khi bit EEWE được xóa, điều này có nghĩa là khi các ngắt được cho
phép ( bit I trong thanh ghi SREG và bit EERIE trong thanh ghi EECR được set
thành 1 ) và quá trình ghi vào ROM vừa xong thì sẽ tạo ra một ngắt với CPU,
chương trình sẽ nhảy tới véc tơ ngắt có địa chỉ là $002C để thực thi chương trình
phục vụ ngắt ( ISR ). Khi bit EERIE là 0 thì ngắt không được cho phép.
- Bit 2 – EEMWE: EEPROM Master Write Enable : Khi bit EEMWE và
bit EEWE là 1 sẽ ra lệnh cho CPU ghi dữ liệu từ thanh ghi EEDR vào EEPROM,
địa chỉ của ô nhớ cần ghi trong EEPROM được lưu trong thanh ghi EEAR . Khi bit
này là 0 thì không cho phép ghi vào EEPROM. Bit EEMWE sẽ được xóa bởi phần
cứng sau 4 chu kì máy.
- Bit 1 – EEWE: EEPROM Write Enable : Bit này vừa đóng vai trò như
một bit cờ, vừa là bit điều khiển việc ghi dữ liệu vào EEPROM. Ở vai trò của một
bit điều khiển nếu bit EEMWE đã được set lên 1 thì khi ta set bit EEWE lên 1 sẽ
bắt đầu quá trình ghi dữ liệu vào EEPROM. Trong suốt quá trình ghi dữ liệu vào
EEPROM bit EEWE luôn giữ là 1. Ở vai trò của một bit cờ khi quá trình ghi dữ
liệu vào EEPROM hoàn tất, phần cứng sẽ tự động xóa bit này về 0. Trước khi ghi
dữ liệu vào EEPROM ta cần phải biết chắc là không có quá trình ghi EEPROM nào
khác đang xảy ra, để biết được điều này ta cần kiểm tra bit EEWE. Nếu bit EEWE
là 1 tức là EEPROM đang được ghi, ta phải chờ cho cho quá trình ghi vào
EEPROM hoàn tất thì mới ghi tiếp. Nếu bit EEWE là 0 tức là không có quá trình
ghi EEPROM nào đang diễn ra, lúc này ta có thể bắt đầu ghi dữ liệu vào EEPROM.
Khi bit EEWE được set lên 1 ( bắt đầu ghi vào EEPROM ) CPU sẽ tạm nghỉ trong
2 chu kì máy trước khi thực hiện lệnh kế tiếp.
- Bit 0 – EERE: EEPROM Read Enable : Khi bit này là 1, sẽ cho phép đọc
dữ liệu từ EEPROM, dữ liệu từ EEPROM có địa chỉ lưu trong thanh ghi EEAR lập
tức được chuyển vào thanh ghi EEDR. Khi bit EERE là 0 thì không cho phép đọc
EEPROM. Trước khi đọc dữ liệu từ EEPROM ta cần biết chắc là không diễn ra quá
trình ghi EEPROM bằng cách kiểm tra bit EEWE. Để ý là sau khi quá trình đọc
EEPROM hoàn tất, bit EERE sẽ được tự động xoá bởi phần cứng. Nếu EEPROM
Trang - - 45
đang được ghi thì ta không thể đọc được dữ liệu từ EEPROM. Khi bắt đầu quá
trình đọc dữ liệu từ EEPROM, CPU sẽ tạm nghỉ 4 chu kì máy trước khi thực hiện
lệnh kế tiếp.
Tóm lại để ghi vào EEPROM ta cần thực hiện các bước sau:
1. Chờ cho bit EEWE về 0.
2. Cấm tất cả các ngắt.
3. Ghi địa chỉ vào thanh ghi EEAR.
4. Ghi dữ liệu mà ta cần ghi vào EEPROM vào thanh ghi EEDR.
5. Set bit EEMWE thành 1.
6. Set bit EEWE thành 1.
7. Cho phép các ngắt trở lại.
Nếu một ngắt xảy ra giữa bước 5 và 6 sẽ làm hỏng quá trình ghi vào
EEPROM bởi vì bit EEMWE sau khi set lên 1 chỉ được giữ trong 4 chu kì máy,
chương trình ngắt sẽ làm hết thời gian ( time out ) duy trì bit này ở mức 1.
Một ngắt xuất hiện ở cuối bước 4 cũng có thể làm cho địa chỉ và dữ liệu cần
ghi vào EEPROM trở nên không chính xác nếu trong chương trình phục vụ ngắt có
chỉnh sửa lại các thanh ghi EEAR và EEDR. Đó là lí do ta cần cấm các ngắt trước
khi thực hiện tiếp các bước 3, 4, 5, 6.
Quá trình ghi dữ liệu vào EEPROM cũng có thể không an toàn nếu điện thế
nguồn nuôi ( Vcc ) quá thấp.[2]
Đọc dữ liệu từ EEPROM:
Việc đọc dữ liệu từ EEPROM đơn giản hơn ghi dữ liệu vào EEPROM, để
đọc dữ liệu từ EEPROM ta thực hiện các bước sau:
1. Chờ cho bit EEWE về 0.
2. Ghi địa chỉ vào thanh ghi EEAR.
3. Set bit EERE lên 1.
Tóm tắt: Bản đồ bộ nhớ bên trong của ATmega128 có thể tóm tắc lại như
sau:
Trang - - 46
Hình 22: Tóm tắt bản đồ bộ nhớ ATmega128
3.3.2.3. Cổng vào ra
3.2.2.3.1. Giới thiệu
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, PortC, 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 AVR đ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 ) đề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.[17]
Điện trở kéo lên là một điện trở được dùng khi thiết kế các mạch điện tử
logic. Nó có một đầu được nối với nguồn điện áp dương (thường là Vcc hoặc Vdd)
và đầu còn lại được nối với tín hiệu lối vào/ra của một mạch logic chức năng. Điện
trở kéo lên có thể được lắp đặt tại các lối vào của các khối mạch logic để thiết lập
mức logic lối vào của khối mạch khi không có thiết bị ngoài nối với lối vào. Điện
Trang - - 47
trở kéo lên cũng có thể được lắp đặt tại các giao diện giữa hai khối mạch logic
không cùng loại logic, đặc biệt là khi hai khối mạch này được cấp nguồn khác
nhau. Ngoài ra, điện trở kéo lên còn được lắp đặt tại lối ra của khối mạch khi lối ra
không thể nối nguồn để tạo dòng, ví dụ các linh kiện logic TTL có cực góp hở. Đối
với họ logic lưỡng cực với nguồn nuôi 5 Vdc thì giá trị của điện trở kéo lên thường
nằm trong khoảng 1000 đến 5000 Ohm, tùy theo yêu cầu cấp dòng trên toàn giải
hoạt động của mạch. Với lôgíc CMOS và lôgíc MOS chúng ta có thể sử dụng các
điện trở có giá trị lớn hơn nhiều, thường từ vài ngàn đến một triệu Ohm do dòng rò
rỉ cần thiết ở lối vào là rất nhỏ. Trong việc thiết kế các vi mạch ứng dụng, nếu một
IC có ngõ ra loại cực thu để hở giao tiếp với nhiều IC khác thì giá trị của điện trở
kéo lên sẽ tương đối nhỏ (khoảng vài trăm Ohm). Bởi vì lúc này hệ số fanout lớn
dẫn đến dòng ngõ ra của IC phải lớn để đủ cung cấp cho các ngõ vào của các IC
khác, nếu không vi mạch sẽ hoạt động chập chờn hoặc có thể không hoạt động.[8]
3.2.2.3.2. 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 ( PortA, 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ẳng 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.
- 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 DDRA đều là 1, thì 8 chân tương ứng của portA là
PA1, PA2, … PA7 ( 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.[17]
Trang - - 48
Thanh ghi DDRA
- 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 )
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.
Thanh ghi PINA
Bảng 5: Cấu hình cho các chân cổng
Trang - - 49
DDRxn là bit thứ n của thanh ghi DDRx
PORTxn là bit thứ n của thanh ghi PORTx
Dấu “x” ở cột thứ 3 để chỉ giá trị logic là tùy ý
Hình 23. Sơ đồ một cổng vào ra
Hình 23 thể hiện sơ đồ của một chân của cổng vào ra. Ở sơ đồ trên ta thấy
ngoài 2 bit của các thanh ghi DDRx và PORTx tham gia điều khiển điện trở treo
(pull-up resistor), còn có một tín hiệu nữa điều khiển điện trở treo, đó là tín hiệu
PUD, đây là bit nằm trong thanh ghi SFIOR, khi set bit này thành 1 thì điện trở
kéo lên sẽ không được cho phép bất kể các thiết lập của các thanh ghi DDRx và
PORTx. Khi bit này là 0 thì điện trở kéo lên được cho phép nếu { DDRxn,
PORTxn } = { 0, 1 }.[17]
Thanh ghi SFIOR
Dưới đây là địa chỉ của tất cả các port :
Trang - - 50
Bảng 6: Địa chỉ các Port
Để ý: 3 bit cuối ( bit 5, 6, 7 ) của các thanh ghi PORTG, DDRG và PING
không sử dụng được. Khi đọc ta luôn nhận được giá trị 0.
3.3.2.4. Bộ định thời
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. Dưới đây là mô tả chi tiết của 4 bộ định thời.
3.3.2.4.1. Bộ định thời 1
Trang - - 51
Hình 24: Sơ đồ khối bộ định thời 1 (3)
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.Vì bộ định thời 1 và 3 hoạt động giống nhau nên ở đây chỉ trình
bày bộ định thời 1. 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ẳng hạn
thanh ghi ETIPR có bít cuối là OCF1C đượ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ẳng 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. Các
thanh ghi liên quan tới bộ định thời 3 cũng được liệt kê ra mà không cần giải thích
chi tiết, tuy vậy cũng có vài khác biệt nhỏ giữa bộ định thời 1 và 3 được chú thích
cho từng trường hợp cụ thể trong mục “Bộ Định Thời 3”. Để tìm hiểu về bộ định
thời 1 (3) ta cần nắm vững các thanh ghi liên quan tới bộ định thời 1(3) và các chế
độ hoạt động của bộ định thời.[2]
Trang - - 52
CÁC THANH GHI BỘ ĐỊNH THỜI 1
1. Thanh ghi TCCR1A (Timer/Counter1 Control Register)
• Bit 7:6 – COMnA1:0: Compare Output Mode for Channel A
• Bit 5:4 – COMnB1:0: Compare Output Mode for Channel B
• Bit 3:2 – COMnC1:0: Compare Output Mode for Channel C
• Bit 1:0 – WGMn1:0: Waveform Generation Mode
• Bit 7:2 – COMnX1:0 (X=A, B, C): Compare Output Mode for Channel X :
Điều khiển cách hoạt động của ngõ ra so sánh (compare output) của lần lượt
các chân OCnA, OCnB và OCnC. Nếu một hay cả hai bit COMnA1:0 được set
lên 1 thì ngõ ra OCnA sẽ ưu tiên hơn chức năng port I/O thông thường mà nó kết
nối tới. Nếu một hay cả hai bit COMnB1:0 được set lên 1 thì ngõ ra OCnB sẽ ưu
tiên hơn chức năng port I/O thông thường mà nó kết nối tới. Nếu một hay cả hai
bit COMnC1:0 được set lên 1 thì ngõ ra OCnC sẽ ưu tiên hơn chức năng port I/O
thông thường mà nó kết nối tới, điều này có nghĩa là mỗi một chân của vi điều
khiển có thể thực hiện nhiều chức năng khác nhau, bình thường các chân OCnA,
OCnB, OCnC hoạt động như các chân vào ra thông thường, nhưng khi bộ định
thời đang hoạt động ở các chế độ có sử dụng tới chức năng so sánh khớp
(compare match) như các chế độ CTC, PWM của bộ định thời thì hành vi của chân
ngõ ra OCnA, OCnB, OCnC sẽ do bộ định thời điều khiển. Tuy nhiên chú ý là bit
của thanh ghi DDR tương ứng với các chân OCnA, OCnB, OCnC phải được set để
cho phép ngõ ra. Khi OCnA, OCnB, OCnC được kết nối tới chân thì tác dụng của
các bit COMnX1:0 còn phụ thuộc vào lựa chọn của các bit WGM3:0, nghĩa là khi
ta set một hay cả hai Bit COMn1:0 lên 1 thì chức năng ngõ ra so sánh được ưu tiên,
tuy nhiên cách hoạt động ở ngõ ra OCnX như thế nào thì còn phụ thuộc vào việc
lựa chọn của các bit WGMn3:0, được thể hiện trong các bảng dưới. Trong các chế
độ PWM, khi giá trị các thanh ghi dùng để so sánh (OCRnX, ICRn) có giá trị bằng
với TOP, thì sự kiện so sánh khớp (compare match) bị bỏ qua. Tuy vậy các chân
OCnX vẫn bị set hay xóa (tùy vào các bit COMnX 1:0) ở BOTTOM.
Trang - - 53
• Bit 1:0 – WGMn1:0: Waveform Generation Mode : Kết hợp với các bit
WGMn3:2 tìm trong thanh ghi TCCRnB, những bit này cho phép ta lựa chọn
chế độ thực thi của bộ định thời, nhờ đó có thể điều khiển việc đếm tuần tự của bộ
đếm. Giá trị bộ đếm lớn nhất là TOP và dạng sóng tạo ra ở chân OCnX (X=A, B,
C; n=1, 3) được sử dụng cho nhiều mục đích khác nhau. Các chế độ thực thi được
hỗ trợ bởi khối Timer/counter là : Normal mode ( counter ), Clear Timer on
Compare match (CTC) mode, PWM mode. Để ý là với bộ định thời 1 thì có 4 bit
WGM là: WGM13, WGM12,WGM11 và WGM10.[2]
2. Thanh ghi TCCR1B
• Bit 7 – ICNCn: Input Capture Noise Canceler
• Bit 6 – ICESn: Input Capture Edge Select
• Bit 5 – Reserved Bit
• Bit 4:3 – WGMn3:2: Waveform Generation Mode
• Bit 2:0 – CSn2:0: Clock Select
• Bit 7 – ICNCn: Input Capture Noise Canceler (viết tắt: ICNC): Việc set bit
này tới 1 sẽ kích hoạt chức năng chống nhiễu của bộ chống nhiễu lối vào ( ICNC ).
Khi chức năng ICNC được kích hoạt thì ngõ vào từ chân ICPn sẽ được lọc. Chức
năng lọc đòi hỏi 4 mẫu có giá trị bằng nhau liên tiếp ở chân ICPn cho sự thay đổi
ngõ ra của nó.
• Bit 6 – ICESn: Input Capture Edge Select: Bit này lựa chọn cạnh ở chân
Input Capture Pin (ICPn) dùng để bắt “sự kiện trigger” ( Trigger event (10) ). Khi
bit ICESn được thiết lập thành 0 thì một cạnh dương xuống ( falling (3) ) được
dùng như một trigger ( tín hiệu nảy). Ngược lại, khi bit này được set thành 1 thì
một cạnh âm lên (rising (4) ) được dùng như một trigger. Khi xảy ra sự kiện Input
capture (2) (theo thiết lập của bit ICESn là 1 hay 0) thì giá trị của bộ đếm được ghi
vào thanh ghi Input Capture Register ICRn (n=1, 3), và khi đó cờ ICFn (Input
Capture Flag) được set. Điều này sẽ tạo ra một ngắt Input capture nếu ngắt này
được cho phép. Khi thanh ghi ICRn được sử dụng như một giá trị TOP thì chân
ICPn không được kết nối và vì thế chức năng Input capture không được cho phép.
• Bit 5 : Dự trữ.
Trang - - 54
• Bit 4:3 – WGMn3:2: Waveform Generation Mode: Đã nói ở phần thanh
ghi TCCR1A.
• Bit 2:0 – CSn2:0: Clock Select : Dùng để lựa chọn tốc độ xung clock (xem
bảng 7). Để cấm bộ định thời hoạt động ta chỉ cần cho {CSn2, CSn1, CSn0} = {0,
0, 0}.
Bảng 7: Lựa chọn tốc độ xung clock
3. Thanh ghi TCCR1C
• Bit 7 – FOCnA: Force Output Compare for Channel A
• Bit 6 – FOCnB: Force Output Compare for Channel B
• Bit 5 – FOCnC: Force Output Compare for Channel C
• Bit 4:0 – Reserved Bits
Các bit FOCnA/FOCnB/FOCnC chỉ hoạt động khi các bit WGMn3:0 chỉ
định chế độ Non-PWM. Khi các bit FOCnA/FFOCnB/FOCnC được set thành 1 thì
ngay lập tức một sự kiện “So sánh khớp cưỡng chế” (Forced Compare Match (1) )
xảy ra trong bộ tạo sóng. Ngõ ra OCnA/OCnB/OCnC được thay đổi theo thiết lập
của các bit COMnX 1:0 (n=1, 3; X=A, B, C), nghĩa là bình thường sự kiện “so
sánh khớp” chỉ xảy ra khi khi giá trị bộ định thời (thanh ghi TCNTn (n=1, 3) ) bằng
với giá trị thanh ghi OCRnX( n=1,3; X=A,B,C), nhưng khi các bit FOCnX( n=1, 3;
X=A, B, C) được set thành 1 thì sự kiện “so sánh khớp” sẽ xảy ra mặc dù giá trị
của bộ định thời không bằng với giá trị của thanh ghi OCRnX( n=1,3; X=A,B,C).
Chú ý là các bit FOCnA/FOCnB/FOCnC cũng hoạt động như là những que dò
Trang - - 55
(strobe), vì thế nó là giá trị hiện thời của các bit COMnX1:0 xác định tác động của
“so sánh cưỡng chế” (forced compare). Các que dò FOCnA/FOCnB/FOCnC không
tạo ra bất kì ngắt nào và cũng không xóa bộ định thời trong chế độ CTC sử dụng
thanh ghi OCRnA như là giá trị TOP. Các bit FOCnA/FOCnB/FOCnC chỉ có thể
ghi, khi đọc các bit này ta luôn nhận được giá trị 0.
• Bit 4:0 dự trữ, phải ghi thành 0 khi ghi vào thanh ghi TCCRnC.
4. Thanh Ghi Timer/Counter1 – TCNT1H and TCNT1L
Thanh ghi bộ định thời TCNT1 là thanh ghi 16 bit được kết hợp từ hai thanh
ghi TCNT1H và thanh ghi TCNT1L. Thanh ghi TCNT1 có thể đọc hay ghi. Để cả
2 byte của TCNT 1 được đọc hay ghi đồng thời người ta dùng một thanh ghi tạm 8
bit byte cao 8-bit Temporary High Byte Register (TEMP). Thanh ghi TEMP được
chia sẻ cho tất cả các thanh ghi 16 bit khác. Không nên chỉnh sửa thanh ghi TCNTn
(n=1,3) khi nó đang đếm để tránh bị hỏng Compare Match giữa TCNTn và một
trong những thanh ghi OCRnX(n=1,3.X=A,B,C).
5. Thanh Ghi Output Compare Register 1 A– OCR1AH and OCR1AL
6. Thanh Ghi Output Compare Register 1 B– OCR1BH and OCR1BL
Thanh ghi output compare register (OCR1A/OCR1B/OCR1C) là thanh ghi
16 bit, giá trị của nó được liên tục so sánh với bộ đếm (TCNT1). Khi có sự bằng
Trang - - 56
nhau của hai thanh ghi này sẽ tạo ra một ngắt so sánh hay một dạng sóng ở chân
ngõ ra so sánh OCnX (X=A,B,C). Giống như thanh ghi TCNT1, thanh ghi OCRnX
(X=A,B,C) cũng là thanh ghi 16 bit nên để cả hai byte cao và thấp của thanh ghi
được ghi hay đọc đồng thời khi CPU cần truy xuất thanh ghi này, người ta dùng
thanh ghi tạm byte cao (TEMP), thanh ghi TEMP luôn lưu giữ byte cao của các
thanh ghi 16 bit khi các thanh ghi này cần dùng tới nó (xem hình 25). Chú ý là khi
ghi một giá trị vào thanh ghi OCRnX trong lúc bộ đếm đang chạy, thì giá trị của
thanh ghi OCRnX có thể cập nhật tức thời, nhưng cũng có thể chỉ được cập nhật
khi bộ đếm đạt tới một giá trị nào đó, chẳng hạn giá trị TOP, BOTTOM…
Hình 25: Thanh ghi TEMP
7. Thanh Ghi Input Capture Register 1 –ICR1H and ICR1L
Thanh ghi Input capture (ICR1n) sẽ cập nhật giá trị của bộ đếm TCNTn mỗi
khi xảy ra sự kiện ở chân ICPn. Ngoài ra thanh ghi này còn được sử dụng để định
nghĩa giá trị TOP của bộ đếm. Người ta cũng sử dụng thanh ghi TEMP khi cần truy
xuất thanh ghi ICRn (n=1, 3).[17]
Trang - - 57
8. Thanh Ghi Timer/Counter Interrupt Mask Register – TIMSK
(Interrupt for Timer/counter 1)
• Bit 5 – TICIE1: Timer/Counter1, Input Capture Interrupt Enable
• Bit 4 – OCIE1A: Timer/Counter1, Output Compare A Match Interrupt
Enable
• Bit 3 – OCIE1B: Timer/Counter1, Output Compare B Match Interrupt
Enable
• Bit 2 – TOIE1: Timer/Counter1, Overflow Interrupt Enable
Bit 5 – TICIE1: Timer/Counter1, Input Capture Interrupt Enable: Khi bit này
được set thành 1 và ngắt toàn cục (global interrupt) được cho phép thì ngắt bắt mẫu
ngõ vào bộ Timer/couter1 (Timer/Counter1 Input Capture interrupt) được cho
phép. Vector ngắt tương ứng sẽ được thực thi khi cờ ICF1 trong thanh ghi TIFR
được set.
Bit 4 – OCIE1A: Timer/Counter1, Output Compare A Match Interrupt
Enable: Khi bit này được set thành 1 và ngắt toàn cục (global interrupt) được cho
phép thì ngắt so sánh ngõ ra 1A (Timer/Counter1 Output Compare A Match
Interrupt) được cho phép. Vector ngắt tương ứng sẽ được thực thi khi cờ OCF1A
trong thanh ghi TIFR được set.
Bit 3 – OCIE1B: Timer/Counter1, Output Compare B Match Interrupt
Enable: Khi bit này được set thành 1 và ngắt toàn cục (global interrupt) được cho
phép thì ngắt so sánh ngõ ra 1B (Timer/Counter1 Output Compare B Match
Interrupt) được cho phép. Vector ngắt tương ứng sẽ được thực thi khi cờ OCF1B
trong thanh ghi TIFR được set.
Bit 2 – TOIE1: Timer/Counter1, Overflow Interrupt Enable: Khi bit này
được set thành 1 và ngắt toàn cục (global interrupt) được cho phép thì ngắt cờ tràn
bộ định thời 1 (Timer/Counter1 overflow interrupt) được cho phép. Vector ngắt
tương ứng sẽ được thực thi khi cờ TOV1 trong thanh ghi TIFR được set.[2]
Trang - - 58
9. Thanh Ghi Extended Timer/Counter Interrupt Mask Register –
ETIMSK (Interrupt for Timer/counter 3)
• Bit 7:6 – Reserved Bits
• Bit 5 – TICIE3: Timer/Counter3, Input Capture Interrupt Enable
• Bit 4 – OCIE3A: Timer/Counter3, Output Compare A Match Interrupt
Enable
• Bit 3 – OCIE3B: Timer/Counter3, Output Compare B Match Interrupt
Enable
• Bit 2 – TOIE3: Timer/Counter3, Overflow Interrupt Enable
• Bit 1 – OCIE3C: Timer/Counter3, Output Compare C Match Interrupt
Enable
• Bit 0 – OCIE1C: Timer/Counter1, Output Compare C Match Interrupt
Enable
Thanh ghi ETIMSK liên quan đến cả hai bộ định thời 1 và 3.
• Bit 7:6 – Reserved Bits: Dự trữ, phải ghi các bit này thành 0 khi ghi vào
thanh ghi ETIMSK
• Bit 5 – TICIE3: Timer/Counter3, Input Capture Interrupt Enable: Khi bit
này được set thành 1 và ngắt toàn cục (global interrupt) được cho phép thì ngắt bắt
mẫu ngõ. Vào bộ Timer/couter 3 (Timer/Counter3 Input Capture interrupt) được
cho phép. Vector ngắt tương ứng sẽ được thực thi khi cờ ICF3 trong thanh ghi
ETIFR được set.
• Bit 4 – OCIE3A: Timer/Counter3, Output Compare A Match Interrupt
Enable: Khi bit này được set thành 1 và ngắt toàn cục (global interrupt) được cho
phép thì ngắt so sánh ngõ ra 3A (Timer/Counter1 Output Compare A Match
Interrupt) được cho phép. Vector ngắt tương ứng sẽ được thực thi khi cờ OCF3A
trong thanh ghi ETIFR được set.
• Bit 3 – OCIE3B: Timer/Counter3, Output Compare B Match Interrupt
Enable: Khi bit này được set thành 1 và ngắt toàn cục (global interrupt) được cho
phép thì ngắt so sánh ngõ ra 3B (Timer/Counter3 Output Compare B Match
Interrupt) được cho phép. Vector ngắt tương ứng sẽ được thực thi khi cờ OCF3B
trong thanh ghi ETIFR được set.
Trang - - 59
• Bit 2 – TOIE3: Timer/Counter3, Overflow Interrupt Enable: Khi bit này
được set thành 1 và ngắt toàn cục (global interrupt) được cho phép thì ngắt cờ tràn
bộ định thời 3 (Timer/Counter3 overflow interrupt) được cho phép. Vector ngắt
tương ứng sẽ được thực thi khi cờ TOV4 trong thanh ghi ETIFR được set.
• Bit 1 – OCIE3C: Timer/Counter3, Output Compare C Match Interrupt
Enable: Khi bit này được set thành 1 và ngắt toàn cục (global interrupt) được cho
phép thì ngắt so sánh ngõ ra 3C (Timer/Counter3 Output Compare C Match
Interrupt) được cho phép. Vector ngắt tương ứng sẽ được thực thi khi cờ OCF3C
trong thanh ghi ETIFR được set.
• Bit 0 – OCIE1C: Timer/Counter1, Output Compare C Match Interrupt
Enable: Khi bit này được set thành 1 và ngắt toàn cục (global interrupt) được cho
phép thì ngắt so sánh ngõ ra 1C (Timer/Counter1 Output Compare C Match
Interrupt) được cho phép. Vector ngắt tương ứng sẽ được thực thi khi cờ OCF1C
trong thanh ghi ETIFR được set.[2]
10. Thanh Ghi Timer/Counter Interrupt Flag Register – TIFR
• Bit 5 – ICF1: Timer/Counter1, Input Capture Flag
• Bit 4 – OCF1A: Timer/Counter1, Output Compare A Match Flag
• Bit 3 – OCF1B: Timer/Counter1, Output Compare B Match Flag
• Bit 2 – TOV1: Timer/Counter1, Overflow Flag
Thanh ghi TIFR liên quan tới bộ định thời 1 và 2.
• Bit 5 – ICF1: Timer/Counter1, Input Capture Flag: Cờ này được set khi xảy
ra sự kiện bắt mẫu ngõ vào (Input Capture) của chân ICP1. Khi thanh ghi ICR1
(Input Capture Register) được thiết lập bởi các bit WGMn3:0 để sử dụng như một
giá trị TOP thì cờ ICF1 sẽ được set khi bộ đếm đạt tới giá trị TOP. Cờ ICF1 sẽ tự
động xóa khi ngắt tương ứng được thực thi, hoặc có thể xóa hay set bằng cách ghi
một giá trị logic vào vị trí của nó.
• Bit 4 – OCF1A: Timer/Counter1, Output Compare A Match Flag: Cờ này
được set ngay sau khi giá trị bộ đếm (TCNT1) bằng với giá trị thanh ghi OCR1A
Trang - - 60
(Output Compare Register A). Chú ý là một so sánh cưỡng bức (FOC1A) sẽ không
set cờ này. Cờ OCF1A sẽ tự động xóa khi ngắt tương ứng được thực thi hoặc có thể
xóa hay set bằng cách ghi một giá trị logic vào vị trí của nó.
• Bit 3 – OCF1B: Timer/Counter1, Output Compare B Match Flag: Cờ này
được set ngay sau khi giá trị bộ đếm (TCNT1) bằng với giá trị thanh ghi OCR1B
(Output Compare Register B). Chú ý là một so sánh cưỡng bức (FOC1B) sẽ không
set cờ này. Cờ OCF1B sẽ tự động xóa khi ngắt tương ứng được thực thi, hoặc có
thể xóa hay set bằng cách ghi một giá trị logic vào vị trí của nó.
• Bit 2 – TOV1: Timer/Counter1, Overflow Flag: Việc thiết lập cờ này phụ
thuộc vào thiết lập của các bit WGMn3:0, trong chế độ bình thường và CTC cờ
TOV1 được set khi bộ định thời tràn.[5]
11. Thanh Ghi Extended Timer/Counter Interrupt Flag Register –
ETIFR
• Bit 7:6 – Reserved Bits
• Bit 5 – ICF3: Timer/Counter3, Input Capture Flag
• Bit 4 – OCF3A: Timer/Counter3, Output Compare A Match Flag
• Bit 3 – OCF3B: Timer/Counter3, Output Compare B Match Flag
• Bit 2 – TOV3: Timer/Counter3, Overflow Flag
• Bit 1 – OCF3C: Timer/Counter3, Output Compare C Match Flag
• Bit 0 – OCF1C: Timer/Counter1, Output Compare C Match Flag
• Bit 7:6 – Reserved Bits: Dự trữ, phải ghi 0 khi ghi vào thanh ghi ETIFR.
• Bit 5 – ICF3: Timer/Counter3, Input Capture Flag: Cờ này được set khi xảy
ra sự kiện bắt ngõ vào (Input Capture) của chân ICP3. Khi thanh ghi ICR3 (Input
Capture Register) được thiết lập bởi các bit WGMn3:0 để sử dụng như một giá trị
TOP thì cờ ICF3. Sẽ được set khi bộ đếm đạt tới giá trị TOP. Cờ ICF3 sẽ tự động
xóa khi ngắt tương ứng được thực thi,hoặc có thể xóa hay set bằng cách ghi một giá
trị logic vào vị trí của nó.
• Bit 4 – OCF3A: Timer/Counter3, Output Compare A Match Flag: : Cờ này
được set ngay sau khi giá trị bộ đếm (TCNT3) bằng với giá trị thanh ghi OCR3A
(Output Compare Register A). Chú ý là một so sánh cưỡng bức (FOC3A) sẽ không
Trang - - 61
set cờ này. Cờ OCF3A sẽ tự động xóa khi ngắt tương ứng được thực thi, hoặc có
thể xóa hay set bằng cách ghi một giá trị logic vào vị trí của nó.
• Bit 3 – OCF3B: Timer/Counter3, Output Compare B Match Flag: Cờ này
được set ngay sau khi giá trị bộ đếm (TCNT3) bằng với giá trị thanh ghi OCR3B
(Output Compare Register B).Chú ý là một so sánh cưỡng bức (FOC3B) sẽ không
set cờ này. Cờ OCF3B sẽ tự động xóa khi ngắt tương ứng được thực thi, hoặc có
thể xóa hay set bằng cách ghi một giá trị logic vào vị trí của nó.
• Bit 2 – TOV3: Timer/Counter3, Overflow Flag: Việc thiết lập cờ này phụ
thuộc vào thiết lập của các bit WGMn3:0, trong chế độ bình thường và CTC cờ
TOV3 được set khi bộ định thời tràn.
• Bit 1 – OCF3C: Timer/Counter3, Output Compare C Match Flag: Cờ này
được set ngay sau khi giá trị bộ đếm (TCNT3) bằng với giá trị thanh ghi OCR3C
(Output Compare Register C). Chú ý là một so sánh cưỡng bức (FOC3C) sẽ không
set cờ này. Cờ OCF3C sẽ tự động xóa khi ngắt tương ứng được thực thi, hoặc có
thể xóa hay set bằng cách ghi một giá trị logic vào vị trí của nó.
• Bit 0 – OCF1C: Timer/Counter1, Output Compare C Match Flag: Cờ này
được set ngay sau khi giá trị bộ đếm (TCNT1) bằng với giá trị thanh ghi OCR1C
(Output Compare Register C). Chú ý là một so sánh cưỡng bức (FOC1C) sẽ không
set cờ này. Cờ OCF1C sẽ tự động xóa khi ngắt tương ứng được thực thi, hoặc có
thể xóa hay set bằng cách ghi một giá trị logic vào vị trí của nó.[2]
12. Thanh Ghi Special Function IO Register –SFIOR
• Bit 7 – TSM: Timer/Counter Synchronization Mode
• Bit 0 – PSR321: Prescaler Reset Timer/Counter3, Timer/Counter2, and
Timer/Counter1 • Bit 7 – TSM: Timer/Counter Synchronization Mode: Ghi bit này
thành 1 sẽ kích hoạt chế độ “Đồng bộ bộ định thời”. Trong chế độ này giá trị ghi
vào hai bit PSR0 và PSR321 được giữ, vì thế nó giữ cho tín hiệu reset của bộ chia
trước ( prescaler (8) ) tương ứng được xác nhận ( do đó bộ chia trước prescaler vẫn
ở trạng thái Reset ). Điều này để chắc chắn là các bộ Timer/couter tương ứng được
tạm dừng để có thể được cấu hình với giá trị như nhau mà không làm hỏng các cấu
Trang - - 62
hình sẵn có khác. Khi TMS là 0 thì các bit PSR0 và PSR321 được xóa bởi phần
cứng và các bộ định thời (1,2,3) bắt đầu đếm đồng thời.
• Bit 0 – PSR321: Prescaler Reset Timer/Counter3, Timer/Counter2, and
Timer/Counter1: Khi bit này là 1 thì bộ chia trước (prescaler) của ba bộ định thời
1,2,3 được reset. Bit PSR321 được xóa bởi phần cứng ngoại trừ trường hợp bit
TSM được set.
Chú ý là ba bộ định thời 1, 2, 3 cùng chia sẽ một bộ chia trước (prescaler)
nên việc reset bộ chia trước (prescaler) sẽ tác động lên cả ba bộ định thời này.[2]
3.3.2.4.2. BỘ ĐỊNH THỜI 3
Bộ định thời 3 giống bộ định thời 1 nên ở đây chỉ trình bày các thanh ghi
liên quan tới bộ định thời 3, chức năng của từng thanh ghi có thể xem các thanh ghi
tương ứng với nó ở bộ định thời 1.
1. Thanh ghi TCCR3A (Timer/Counter3 Control Register A)
• Bit 7:6 – COM3A1:0: Compare Output Mode for Channel A
• Bit 5:4 – COM3B1:0: Compare Output Mode for Channel B
• Bit 3:2 – COM3C1:0: Compare Output Mode for Channel C
• Bit 1:0 – WGMn1:0: Waveform Generation Mode
2. Thanh ghi TCCR3B (Timer/Counter3 Control Register B)
Để ý là khối Input Capture Unit của bộ định thời 3 có khác chút ít so với của
bộ định thời 1. Xem chi tiết về khối Input Capture Unit ở phần mô tả “Khối Input
Capture Unit”.
• Bit 7 – ICNC3: Input Capture Noise Canceler
Trang - - 63
• Bit 6 – ICES3: Input Capture Edge Select
• Bit 5 – Reserved Bit
• Bit 4:3 – WGM3 3:2: Waveform Generation Mode
• Bit 2:0 – CS3 2:0: Clock Select
3. Thanh ghi TCCR3C (Timer/Counter3 Control Register C)
• Bit 7 – FOC3A: Force Output Compare for Channel A
• Bit 6 – FOC3B: Force Output Compare for Channel B
• Bit 5 – FOC3C: Force Output Compare for Channel C
• Bit 4:0 – Reserved Bits
4. Thanh Ghi Timer/Counter1 – TCNT3H and TCNT3L
5. Thanh Ghi Output Compare Register 3 A– OCR3AH and OCR3AL
Trang - - 64
6. Thanh Ghi Output Compare Register 3 B– OCR3BH and OCR3BL
7. Thanh Ghi Output Compare Register 3C– OCR3CH and OCR3CL
8. Thanh Ghi Input Capture Register 3 –ICR3H and ICR3L
9. Thanh Ghi Extended Timer/Counter Interrupt Mask Register –
ETIMSK (Interrupt for Timer/counter 3)
Để ý là ở bộ định thời 1 có sử dụng thanh ghi TIMSK và ETIMSK , còn bộ
định thời 3 chỉ sử dụng thanh ghi ETIMSK.
Trang - - 65
10. Thanh Ghi Extended Timer/Counter Interrupt Flag Register –
ETIFR
Để ý là bộ định thời 1 sử dụng cả 2 thanh ghi TIFR và ETIFR , còn bộ định
thời 3 chỉ sử dụng thanh ghi TIFR.
11. Thanh Ghi Special Function IO Register –SFIOR
12. Ngõ Ra Khối Compare Match Output Unit
Hình 26: Ngõ ra khối Compare Match Output Unit
Nhìn hình 27 trên ta thấy Pin OCnX (chẳng hạn pin 15 của IC tương ứng
với OC1A), là ngõ ra của khối Compare Match Output Unit, có thể được nối với 3
Trang - - 66
thanh ghi là OCnX, PortX và DDRX. Thanh ghi nào được nối với OCn là phụ
thuộc vào các bit COMn1:0 (tức tùy theo chế độ hoạt động của bộ định thời), giả
sử ta thiết lập các bit COMn1:0 để cho thanh ghi OCn được nối với PIN OCn, thì
hoạt động của PIN OCn (tức dạng sóng ở ngõ ra OCn ) lại phụ thuộc vào thiết lập
của các bit WGMn3:0, các bit WGMn3:0 sẽ qui định dạng sóng ngõ ra tại OCn như
thế nào. Ngược lại, nếu ta thiết lập bộ định thời hoạt động ở chế độ bình thường
(tức không sử dụng chức năng “so sánh khớp” thì chân OCn trở thành chân vào ra
số thông thường. Ngõ ra khối Compare Match Output Unit của bộ định thời 1 cũng
giống như ở bộ định thời 3.[17]
3.3.2.4.3. BỘ ĐỊNH THỜI 0
Hình 27: Sơ đồ khối bộ định thời 0
Bộ định thời 0 là bộ định thời 8 bit, bộ định thời 0 liên quan tới 7 thanh ghi
với nhiều chế độ thực thi khác nhau.
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. Dưới đây là mô tả chức
năng của các thanh ghi liên quan tới bộ định thời 0.[17]
Trang - - 67
1. Thanh Ghi Timer/Counter Control Register – TCCR0
• Bit 7 – FOC0: Force Output Compare ( 6 )
• Bit 6, 3 – WGM01:0: Waveform Generation Mode
• Bit 5:4 – COM01:0: Compare Match Output Mode
• Bit 2:0 – CS02:0: Clock Select
• Bit 7 – FOC0: Force Output Compare: Bit này chỉ hoạt động khi các bit
WGM chỉ định chế độ non-PWM ( chẳng hạn chế độ CTC,…). Khi ở chế độ PWM
nên ghi bit này thành 0. Ở chế độ non-PWM, khi bit FOC0 được ghi thành 1 lập tức
một sự kiện “so sánh khớp cưỡng bức” ( Force compare match ) xảy ra ở bộ tạo
sóng, tức là sự kiện so sánh khớp bị bắt buộc xảy ra mặt dù giá trị bộ định thời
không bằng với giá trị ghi sẵn trong thanh ghi OCR0. Lúc này ngõ ra OC0 sẽ thay
đổi tùy theo thiết lập của những bit COM01:0 tương ứng với nó. Bit FOC0 sẽ tự
động xóa bởi phần cứng sau 1 chu kì clock. Bit này không thể đọc.
• Bit 6, 3 – WGM01:0: Waveform Generation Mode : Những bit này điều
khiển các chế độ thực thi của bộ đếm, theo đó dạng sóng tương ứng được tạo ra từ
bộ tạo sóng. Các chế độ thực thi được hỗ trợ là: Normal, CTC, PWM. Cụ thể xem
bảng 8.
Bảng 8: Lựa chọn các chế độ thực thi của bộ định thời 0.
(1): Tên các bit CTC0 và PWM0 đã không được sử dụng nữa và được thay
thế bằng các tên khác là WGM01 và WGM00. Khi lập trình nên chú ý điều này.
• Bit 5:4 – COM01:0: Compare Match Output Mode : Hai bit này điều khiển
hành vi của chân OC0. Nếu một trong hai bit này được set thành 1 thì ngõ ra OC0
Trang - - 68
được ưu tiên hơn chức năng I/O thông thường. Chú ý là các bit tương ứng của
OC0 trong thanh ghi DDR phải được set để cho phép ngõ ra. Khi bit OC0 được kết
nối với chân ngõ ra OC0 thì tác động của các bit COM01:0 đối với hành vi của
chân OC0 còn phụ thuộc vào các thiết lập của các bit WGM01:0. Chẳng hạn, khi ta
set bit { WGM00, WGM01, COM00, COM01} = { 0, 0, 1, 0 } thì bộ định thời 0 sẽ
hoạt động ở chế độ Normal và ở chế độ này hành vi của chân OC0 là: OC0 sẽ thay
đổi mức logic mỗi khi có sự kiện So sánh khớp ( Compare match ). Để ý là ở chế
độ Normal, với thiết lập các bit WGM00, WGM01, COM00, COM01 như trên, giá
trị thanh ghi OCR0 được cập nhật ngay tức thời, khác với ở chế độ PWM giá trị
thanh ghi OCR0 chỉ được cập nhật khi bộ định thời đếm tới giá trị TOP (giả định
trong đoạn chương trình ứng dụng có sự thay đổi giá trị thanh ghi OCR0).[2]
2. Thanh Ghi Timer/Counter Register –TCNT0
Đây là thanh ghi đếm 8 bit của bộ định thời 0 .Giá trị thanh ghi này tăng
hoặc giảm 1 đơn vị sau mỗi chu kì clock. Không nên ghi vào thanh ghi này khi nó
đang đếm.
3. Thanh Ghi Output Compare Register –OCR0
OCR0 là thanh ghi 8 bit, giá trị của nó được liên tục so sánh với giá trị của
thanh ghi TCNT0. Khi hai giá trị của hai thanh ghi này bằng nhau thì xảy ra một sự
kiện “so sánh khớp” (compare match). Sự kiện so sánh khớp sẽ tạo ra một ngắt, nếu
ngắt được cho phép. Hay tạo ra một dạng sóng ở chân ngõ ra OC0, tùy theo chế độ
thực thi của bộ định thời.
Trang - - 69
4. Thanh Ghi Timer/Counter Interrupt Mask Register – TIMSK
• Bit 1 – OCIE0: Timer/Counter0 Output Compare Match Interrupt Enable
• Bit 0 – TOIE0: Timer/Counter0 Overflow Interrupt Enable
• Bit 1 – OCIE0: Timer/Counter0 Output Compare Match Interrupt Enable:
Khi bit OCIE0 ghi là 1 và bit I của thanh ghi trạng thái SREG được set
thành 1 thì ngắt sự kiện “so sánh khớp” (compare match interrupt ) được cho phép.
Khi đó một ngắt sẽ được thực thi khi xảy ra một sự kiện “so sánh khớp”.
• Bit 0 – TOIE0: Timer/Counter0 Overflow Interrupt Enable: Khi bit này
được ghi là 1 và ngắt toàn cục được cho phép thì ngắt tràn bộ định thời
(Timer/Counter0 Overflow interrupt) được cho phép. Khi đó một ngắt tương ứng sẽ
được thực thi khi bộ định thời tràn.[2]
5. Thanh Ghi Timer/Counter Interrupt Flag Register – TIFR
• Bit 1 – OCF0: Output Compare Flag 0
• Bit 0 – TOV0: Timer/Counter0 Overflow Flag
• Bit 1 – OCF0: Output Compare Flag 0: Bit này sẽ được set lên 1 khi xảy ra
“so sánh khớp ” (compare match) giữa bộ định thời (tức thanh ghi TCCN0) với
thanh ghi OCR0. Cờ OCF0 sẽ tự động xóa khi ngắt tương ứng được thực thi. Ngoài
ra ta cũng có thể xóa cờ OCF0 bằng cách ghi một giá trị logic vào nó. Khi bit I
trong thanh ghi SREG, bit OCIE0 (Timer/Counter0 Compare Match Interrupt
Trang - - 70
Enable) và bit OCF0 được set lên 1 thì ngắt “so sánh khớp” (Compare Match
Interrupt) sẽ được thực thi.
• Bit 0 – TOV0: Timer/Counter0 Overflow Flag: Bit TOV0 được set thành 1
khi bộ định thời tràn và nó được xóa khi ngắt tương ứng được thực thi. Ngoài ra
cũng có thể xóa bằng cách ghi một giá trị logic vào vị trí của nó . Khi bit I trong
thanh ghi SREG, bit TOIE0 (Timer/Counter0 Overflow interrupt) và bit TOV0
được set lên 1 thì ngắt tràn bộ định thời 0 (Timer/Counter0 Overflow Interrupt ) sẽ
được thực thi. Trong chế độ PWM cờ TOV0 được Set khi bộ định thời 0 đổi hướng
đếm tại giá trị 00h.
6. Thanh Ghi Special Function IO Register –SFIOR
• Bit 7 – TSM: Timer/Counter Synchronization Mode
• Bit 1 – PSR0: Prescaler Reset Timer/Counter0
• Bit 7 – TSM: Timer/Counter Synchronization Mode: Ghi bit này thành 1 sẽ
kích hoạt chế độ đồng bộ bộ định thời (Timer/Counter Synchronization). Trong chế
độ này, một giá trị được ghi vào các bit PSR0 và PSR321 sẽ được giữ lại, vì thế nó
giữ cho tín hiệu reset của bộ chia trước (prescaler) tương ứng được xác nhận ( do
đó bộ chia trước (prescaler) vẫn ở trạng thái Reset ). Điều này là để chắc chắn là
các bộ định thời tương ứng sẽ được tạm nghỉ và có thể được cấu hình với các giá
trị như nhau mà không làm ảnh hưởng đến một trong những cấu hình nâng cao
khác của chúng. Khi bit này được ghi thành 0 thì các bộ định thời sẽ bắt đầu đếm
đồng thời.
• Bit 1 – PSR0: Prescaler Reset Timer/Counter0: Khi bit này là 1 thì bộ chia
trước của bộ định thời 0 (Timer/couter 0 prescaler) sẽ được đặt lại. Bit này thường
được xóa tức thời bởi phần cứng. Nếu bit này được ghi khi bộ định thời 0 đang
thực thi chế độ không đồng bộ thì nó vẫn giữ nguyên giá trị của nó cho đến khi bộ
chia trước được đặt lại. Bit này sẽ không được xóa bởi phần cứng nếu như bit TSM
được set thành 1.[17]
Trang - - 71
7. Thanh Ghi Asynchronous Status Register – ASSR
• Bit 3 – AS0: Asynchronous Timer/Counter0
• Bit 2 – TCN0UB: Timer/Counter0 Update Busy
• Bit 1 – OCR0UB: Output Compare Register0 Update Busy
• Bit 0 – TCR0UB: Timer/Counter Control Register0 Update Busy
• Bit 3 – AS0: Asynchronous Timer/Counter0: Khi bit AS0 là 0 thì bộ định
thời được đếm từ nguồn xung clock I/O, tức ClkI/O. Khi AS0 được ghi thành 1 bộ
định thời được đếm từ xung thạch anh ở chân TOSC1. Khi giá trị của AS0 bị thay
đổi thì nội dụng của các thanh ghi TCNT0, OCR0 và TCCR0 có thể bị hỏng.
• Bit 2 – TCN0UB: Timer/Counter0 Update Busy: Khi bộ định thời 0 thực
thi quá trình không đồng bộ và thanh ghi TCNT0 đang được ghi thì bit TCN0UB sẽ
set lên 1. Khi thanh ghi TCNT0 vừa được cập nhật từ thanh ghi lưu trữ tạm thì bit
này bị xóa bởi phần cứng. Mức logic 0 trong trường hợp này là để chỉ ra rằng thanh
ghi TCNT0 đã sẵn sàng để cập nhật một giá trị mới.
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- NGHIÊN CỨU CÁC CHUẨN TRUYỀN THÔNG VÀ XÂY DỰNG MỘT ỨNG DỤNG CHO HỆ THỐNG GIÁM SÁT, ĐIỀU KHIỂN, ĐIỀU HÀNH TÒA NHÀ CAO TẦNG.pdf