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

pdf108 trang | Chia sẻ: haohao | Lượt xem: 1064 | Lượt tải: 0download
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:

  • pdfLUẬ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
Tài liệu liên quan