Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 108 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
108
Dung lượng
5,78 MB
Nội dung
Header Page of 16 ĐẠ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 Footer Page of 16 Header Page of 16 Trang - - LỜI CAM ĐOAN Tôi xin cam đoan toàn nội dung số liệu luận văn thạc sĩ: “Nghiên cứu chuẩn truyền thông xây dựng ứ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ự nghiên cứu thực Học viên thực luận văn Nguyễn Đắc Hải Footer Page of 16 Header Page of 16 Trang - - LỜI CẢM ƠN Để hoàn thành chương trình cao học viết luận văn này, 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 thầy cô tận tình dạy bảo suốt thời gian học tập 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 nhiều thời gian tâm huyết hướng dẫn nghiên cứu giúp hoàn thành luận văn tốt nghiệp Mặc dù có nhiều cố gắng hoàn thiện luận văn tất nhiệt tình lực mình, nhiên tránh khỏi thiếu sót, t ô i mong nhận đóng góp quí báu quí thầy cô bạn Hà Nội, tháng 05 năm 2010 Học viên Nguyễn Đắc Hải Footer Page of 16 Header Page of 16 Trang - - MỤC LỤC Trang phụ bìa Lời cam đoan Lời cảm ơn Mục lục Danh mục ký hiệu, chữ viết tắt Danh sách bảng Danh mục hình vẽ, đồ thị Mở đầu CHƯƠNG TỔNG QUAN VỀ HỆ THỐNG BMS 1.1 Giới thiệu chung 1.2 Các phân hệ hệ thống BMS 1.2.1 Quản lý vào/ tòa nhà 1.2.1.1 Thành phần hệ thống RFID 1.2.1.2 Hoạt động hệ thống RFID 1.2.2 Hệ thống báo cháy 1.2.2.1 Cách nhận biết báo cháy 1.2.2.2 Các phận hệ thống 1.2.3 Hệ thống thang máy 1.2.4 Hệ thống điều hoà trung tâm 1.2.5 Máy phát điện 1.2.6 Hệ thống điện CHƯƠNG 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 hệ thống BMS 2.2 Một số chuẩn truyền thông 2.2.1 Giới thiệu truyền thông qua chuẩn RS232 2.2.2 Giới thiệu truyền thông qua chuẩn RS-485 2.3 Giao thức truyền thông 2.3.1 Giới thiệu giao thức truyền thông BACnet 2.3.2 Giao thức mạng Ethernet CHƯƠNG THIẾT KẾ MỘT HỆ THỐNG THÀNH PHẦN TRONG HỆ THỐNG BMS 3.1 Mục tiêu đề tài Footer Page of 16 10 13 14 15 15 16 16 16 17 19 20 21 21 23 23 23 28 35 35 35 36 Header Page of 16 Trang - - 3.2 Cấu hình hệ thống 3.3 Thiết kế phần cứng hệ thống 3.3.1 Giới thiệu tổng quan họ vi điều khiển AVR 3.3.2 Giới thiệu vi điều khiển AVR Atmega 128 3.3.2.1 Sơ đồ chân 3.3.2.2 Cấu trúc nhớ 3.3.2.3 Cổng vào 3.3.2.4 Bộ định thời 3.3.2.5 Cấu trúc ngắt 3.3.3 Giới thiệu vi điều khiển AVR Atmega8 3.3.3.1 Giới thiệu chung 3.3.3.2 Sơ đồ chân 3.3.4 Cảm biến 3.3.5 Mạch Slaver 3.3.6 Mạch Master 3.3.7 Keyboard LCD 3.4 Xây dựng phần mềm nhúng điều khiển cho hệ thống 3.4.1 Xây dựng phần mềm nhúng điều khiển cho mạch Slaver dùng Atmega8 3.4.2 Xây dựng phần mềm nhúng điều khiển cho mạch Master dùng Atmega128 3.5 Kết khả ứng dụng hệ thống 3.5.1 Tính khoa học 3.5.2 Khả triển khai ứng dụng vào thực tiễn 3.5.3 Hiệu kinh tế xã hội Kết luận TÀI LIỆU THAM KHẢO Phụ lục Footer Page of 16 36 37 37 38 38 39 46 50 75 82 82 82 84 86 88 90 91 91 92 93 93 93 94 95 96 97 Header Page of 16 Trang - - DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ALN BACnet BMS CSMA/CD DCE DTE HVAC ISR OSI PLC RFID RI RISC RTS TCP/IP UL WGM Footer Page of 16 Application Level network – Lớp ứng dụng mạng Building Automation and Control network Protocol - Giao thức truyền thông hệ thống điều khiển tự động hoá nhà Building Management System - hệ thống quản lý tòa nhà Carrier-Sense Multiple Access/ Collision Detect Data Communication Equipment – Thiết bị truyền liệu Data Terminal Equipment - Thiết bị đầu cuối Hệ thống thông gió điều hòa không khí Interrupt service routine - Trình dịch vụ ngắt Open System Interconnection – Hệ thống liên kết mở Power Line Communication - đường điện lưới Radio Frequency Identification - Xác nhận đối tượng sóng vô tuyến Ring indicator – Chỉ thị chuông Reduced Instruction Set Computer Request to send – Yêu cầu gửi Transmission Control Protocol / Internet Protocol - Giao thức điều khiển truyền thông /Giao thức Internet Unit Load Waveform Generation Mode Header Page of 16 Trang - - DANH SÁCH CÁC BẢNG Bảng 1: Một số thông số điện học RS-232 25 Bảng 2:Các thông số quan trọng RS-485 28 Bảng 3: Thông số phương pháp 34 Bảng 4: Các chân Atmega128 39 Bảng 5: Cấu hình cho chân cổng 48 Bảng 6: Địa Port 50 Bảng 7: Lựa chọn tốc độ xung clock 54 Bảng 8: Lựa chọn chế độ thực thi định thời 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 A 79 Bảng 11: Điều khiển kiểu bắt mẫu ngắt B 80 Bảng 12: Các chân Atmega8 84 Bảng 13: Các thông số kỹ thuật sensor JS-20 85 Footer Page of 16 Header Page of 16 Trang - - 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 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 tòa nhà 21 Hình 5: Quy định trạng thái logic tín hiệu RS-232 24 Hình 6: Giắc cắm RS-232 loại 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ơ đồ kích thích ( driver ) thu ( receiver ) RS-485 29 Hình 10: Quy định trạng thái logic tín hiệu RS-485 30 Hình 11: Định nghĩa tải đơn vị 30 Hình 12: Quan hệ tốc độ truyền 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 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ó sử dụng boot loader 40 Hình 20: Vùng nhớ 64 ghi vào có cách chọn địa 42 Hình 21: Chức trỏ ghi R26 –R31 42 Hình 22: Tóm tắt đồ nhớ ATmega128 46 Hình 23 Sơ đồ cổng vào 49 Hình 24: Sơ đồ khối định thời (3) 51 Hình 25: Thanh ghi TEMP 56 Hình 26: Ngõ khối Compare Match Output Unit 65 Hình 27: Sơ đồ khối định thời 66 Hình 28: Sơ đồ khối định thời 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 góc quét JS-20 85 Hình 32: Sơ đồ nguyên lý mạch Slave 86 Hình 33: Sơ đồ mạch PCB mạch slave 87 Footer Page of 16 Header Page of 16 Trang - - Hình 34: Sơ đồ nguyên lý mạch Master 88 Hình 35: Sơ đồ mạch PCB mạch Master 89 Hình 36: Mạch điện điều khiển mạch Master 89 Hình 37: Sơ đồ mạch PCB LCD Keyboad 90 Hình 38: Mạch điện điều khiển Keyboad LCD 91 Hình 39: Sơ đồ khối hoạt động mạch Slave 91 Hình 40: Sơ đồ khối hoạt động mạch Master 92 Hình 41: Hình ảnh hệ thống 98 Footer Page of 16 Header Page 10 of 16 Trang - 10 - MỞ ĐẦU Trong năm gần đây, với không khí hội nhập kinh tế quốc tế Việt nam, trình công nghiệp hóa, đại hóa đất nước có bước phát triển nhanh Một bước thành công qui mô đô thị hóa với hàng loạt công trình kiến trúc đồ sộ xây dựng miền tổ quốc, góp phần cho phát triển kinh tế Trong công trình kiến trúc đồ sộ không kể đến tòa nhà cao tầng xây dựng Việt Nam Các tiêu chí đánh giá chất lượng tòa nhà cao tầng liên quan đến 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ế tính đại tòa nhà Hầu hết tòa nhà trang bị hệ thống điều khiển quản lý tòa nhà BMS (Building Management System) nước công nghiệp Chỉ có sở hệ thống BMS mà chuyên gia đánh giá chất lượng tòa nhà đạt tiêu chuẩn hay không đạt tiêu chuẩn quản lý đại.[14] Các tiêu chí liên quan đến hệ thống BMS bao gồm thành phần giám sát báo động, hệ thống thành phần quản lý lượng hệ thống thông tin Khi trang bị vậy, tất hệ thống thành phần việc có khả hoạt động độc lập cần phải điều khiển tập trung nhằm cho phép tăng độ an toàn, tính bền vững ổn định toàn hệ thống Hệ thống tổng thể cần thiết kế sử dụng khả tích hợp hệ thống thành phần sở hệ thông tin liên tục, không bị gián đoạn, có tốc độ xử lý liệu đủ cao nhằm tăng tính tin cậy hiệu sử dụng Thực tế phát triển vũ bão Công nghệ thông tin năm gần cho thấy: hệ thống kể hoàn toàn thực tốt sở nghiên cứu tích hợp hệ thống thành phần qua kênh thông tin tích hợp với dùng kết nối đường dây chuyên dụng truyền thống, kênh thông tin vô tuyến (wireless), dùng mạng điều khiển qua đường điện lưới PLC (Power Line Communication) dùng mạng máy tính (computer network), mạng điện thoại di động (mobile network) chí mạng Internet.[15] Các hệ thống quản lý tòa nhà BMS phát triển ứng dụng khoảng 2030 năm trở lại dựa cở sở công nghệ tự động hóa phát triển tích hợp tổng thể Hệ thống BMS đời trợ giúp cho việc quản lý tòa nhà hiệu kinh tế Tuy vốn ban đầu đầu tư cho thiết bị phần mềm quản lý không nhỏ, so với chi phí khai thác lâu dài hiệu kinh tế Chúng ta Footer Page 10 of 16 Header Page 94 of 16 Trang - 94 - Với đặc điểm tính trên, đề tài có khả triển khai ứng dụng rộng rãi thực tế mang tính đại thực tiễn cao 3.5.3 Hiệu kinh tế xã hội Nhờ có điều khiển tự động người giảm bớt công việc đóng ngắt số thiết bị điện, với điều kiện thi công đề tài khả thi, giá thành thấp, phù hợp với điều kiện nước nhà Đề tài mang tính tiện ích cao ứng dụng từ dân dụng đến công nghiệp nơi công cộng Sử dụng hệ thống điều khiển bật/ tắt đèn chiếu sáng người vào khu vực không cần chiếu sáng liên tục cầu thang, hành lang, nhà vệ sinh khu vực khác mà không cần bật/ tắt đèn chiếu sáng Điều đem lại tiện dụng, thoải mái đời sống sinh hoạt người, đồng thời lợi ích to lớn khác tiết kiệm lượng điện chiếu sáng góp phần vào công tiết kiệm tiêu thụ lượng điện toàn cầu Hơn tính khả thi tương lai, đề tài mang tính kích thích thúc đẩy phát triển ngành Công nghệ Điện tử Việt Nam Từ góp phần xây dựng đất nước ngày phồn vinh Footer Page 94 of 16 Header Page 95 of 16 Trang - 95 - KẾT LUẬN Hiện công nghệ tự động hóa nhiều nhà khoa học quan tâm nghiên cứu nhu cầu sử dụng sản phẩm tích hợp công nghệ tự động hóa người dân Luận văn trình bày nhu cầu sử dụng hệ thống điều khiển thông minh tòa nhà, giới thiệu số phân hệ sử dụng tòa nhà thông minh, khái niệm giao thức chuẩn truyền thông sử dụng hệ thống điều khiển phân hệ tòa nhà thông minh Đặc biệt luận văn trình bày việc thiết kế hệ thống điều khiển bật/ tắt đèn chiếu sáng tòa nhà cao tầng, cụ thể như: Thiết kế mạch điện tử sử dụng vi điều khiển Atmega8 Atmega128 hệ thống Thiết lập giao chuẩn RS485 mạch điện tử Sử dụng phần mềm CodeVisionAVR để xây dựng phần mềm nhúng cho mạch Sử dụng cảm biến JS-20 Largo Pir Qua đề tài này, học viên mong muốn nắm bắt tảng kiến thức lập trình cho vi điều khiển Atmega128, Atmega8 họ vi điều khiển AVR, đồng thời nắm bắt kỹ thuật thiết kế mạch điện tử để ứng dụng vào điều khiển tự động hóa Công nghệ luôn phát triển không ngừng có tính kế thừa, việc nghiên cứu, cập nhật kiến thức để làm chủ thiết bị đại cần thiết Footer Page 95 of 16 Header Page 96 of 16 Trang - 96 - TÀI LIỆU THAM KHẢO Tiếng Việt [1]Nguyễn Thị Lan Hương (2003), Kỹ thuật cảm biến [2] Lê Trung Thắng (2007), Vi điều khiển AVR – ATmega 128, Đại học Khoa Học Tự Nhiên TP Hồ Chí Minh [3] PGS TS Thái Duy Thức, KS Trịnh Quang Vinh (2009), Tổng quan vi điều khiển Atmega8, KHCN [4] Dương Minh Trí (1997), Sơ đồ chân linh kiện bán dẫn, KHKT [5] Trường Đại học kỹ thuật TP HCM (2006), Giáo trình vi điều khiển [6]Trường Đại học Giao thông Vận tải (2001), Các loại cáp mạng [7]Trường ĐH Giao thông Vận tải (2001), Thiết kế môn học Mạng máy tính số liệu [8] Nguyễn Thúy Vân (1997), Kỹ thuật số, KHKT Hà Nội Tiếng Anh [9] Gilbert Held (2003), Ethernet Networks: Design, Implementation, Operation, Management, John Wiley & Sons, Ltd [10] Robert C, Elsenpeter Toby J Velte (2003), Build Your Own Smart Home [11] F H Mitchell (1988), Introduction to Electronics Design, Printice Hall [12] Kenvin Gilligan (2003), Honeywell Engineering Manual of Automatic Control for Commercial Buildings [13] John, Wiley (2005), RFID HandBook Website: [14] http://en.wikipedia.org/wiki/Building_Management_System [15] http://www.ameco.com.vn/dch-v/38-dch-v/122-bms-giai-phap-tietkiem-nang-luong-trong-toa-nha.html [16] http://www.pcworld.com.vn/articles/quan-ly/giai-phap-congcu/2009/06/1194171/phat-trien-rfid-tai-viet-nam/ [17] www.atmel.com Footer Page 96 of 16 Header Page 97 of 16 Trang - 97 - PHỤ LỤC Hình ảnh hệ thống thiết kế Footer Page 97 of 16 Header Page 98 of 16 Trang - 98 - Hình 41: Hình ảnh hệ thống Phần mã nguồn phần mềm nhúng điều khiển cho mạch 1- Phần mã nguồn điều khiển cho mạch Master Chip type : ATmega128 Program type : Application Clock frequency : 16.000000 MHz Memory model : Small External SRAM size : Data Stack size : 1024 *****************************************************/ #include #include #include "lcdcustom.c" #include "sw.h" #include "LcdCommand.h" #include "acc.h" #define TX_MODE #define RX_MODE Footer Page 98 of 16 Header Page 99 of 16 Trang - 99 - #define RS485_N1_DIR PORTD.6 #define RS485_N0_DIR PORTD.7 #define MAX_SID // Max slave IDs #define QUERY_TIMER // N #define TIMER QUERY_TIMER*10 // N x 16ms // Defines #define FID_NO #define A_LENGHT 13 unsigned char Dulieu_Floor[A_LENGHT]={'{','O','K',FID_NO,0,0,0,0,0,0,0,0,'}'}; unsigned int count=0; unsigned char SID_NO; // IDs of Slave -> 31 unsigned char FRAME_Length; // Length of receive frame #define MAX_LENGTH 20 // Define max length of receive buffer unsigned char R_Buffer[MAX_LENGTH]; // Receive buffer for Slave IDs data union Long_Bytes { unsigned long DL_LONG; unsigned char DL_BYTE[4]; } DULIEU; bit DATA_Flag=FALSE; // Transmit to master when DATA ready #define UDRE0 UCSR0A.5 #define RXC0 UCSR0A.7 // Declare your global variables here extern unsigned char STATE_MACHINE; extern flash byte coltech_0[8]; extern flash byte coltech_1[8]; extern flash byte coltech_2[8]; extern flash byte coltech_3[8]; extern flash byte coltech_4[8]; extern flash byte coltech_5[8]; void main(void) { // Declare your local variables here unsigned char temp,temp2; STATE_MACHINE= 'A'; Footer Page 99 of 16 Header Page 100 of 16 Trang - 100 - Init_uC(); init_SW(); def_Coltech(); display_Coltech(0,0); init_default_SuperAdmin(); // Enable RS485 RX mode // RS485_N1_DIR = RX_MODE; PORTE.2= ; while (1) { // Place your code here switch(STATE_MACHINE) { case ACC_LOGIN_STATE: ACC_LOGIN_ACTION(); break; case PASS_LOGIN_STATE: PASS_LOGIN_ACTION(); break; case CHECK: CHECK_ACTION(); break; case MONITER: MONITER_ACTION(); break; } }; } //======================================================= // Alphanumeric LCD Module functions #asm equ lcd_port=0x18 ;PORTB #endasm #include void Init_uC() { Footer Page 100 of 16 Header Page 101 of 16 Trang - 101 - #asm("cli") PORTA=0xFF; DDRA=0xFF; // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization PORTC=0xFF; DDRC=0xFF; // Port D initialization PORTD=0xFF; DDRD=0xFF; // Port E initialization PORTE=0xFF; DDRE=0xCF; // Port G initialization PORTG=0x1F; DDRG=0x1F; // Timer/Counter initialization // Clock source: System Clock // Clock value: 15.625 kHz // Mode: Normal top=FFh // OC0 output: Disconnected ASSR=0x00; TCCR0=0x07; TCNT0=0x82; // OCR0=0x00; // Timer/Counter initialization // Clock source: System Clock // Clock value: 62.500 kHz // Mode: Normal top=FFFFh // OC1A output: Discon // OC1B output: Discon // OC1C output: Discon Footer Page 101 of 16 Header Page 102 of 16 Trang - 102 - // Noise Canceler: Off // Input Capture on Falling Edge TCCR1A=0x00; TCCR1B=0x04; TCNT1H=0xFF; TCNT1L=0x9B; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; OCR1CH=0x00; OCR1CL=0x00; // Timer/Counter initialization // Clock source: System Clock // Clock value: Timer Stopped // Mode: Normal top=FFh // OC2 output: Disconnected TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // Timer/Counter initialization // Clock source: System Clock // Clock value: 15.625 kHz // Mode: Normal top=FFFFh // Noise Canceler: Off // Input Capture on Falling Edge // OC3A output: Discon // OC3B output: Discon // OC3C output: Discon // Timer Overflow Interrupt: On // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off Footer Page 102 of 16 Header Page 103 of 16 Trang - 103 - // Compare C Match Interrupt: Off TCCR3A=0x00; TCCR3B=0x05; TCNT3H=0x00; TCNT3L=0x00; ICR3H=0x00; ICR3L=0x00; OCR3AH=0x00; OCR3AL=0x00; OCR3BH=0x00; OCR3BL=0x00; OCR3CH=0x00; OCR3CL=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off // INT3: Off // INT4: On // INT4 Mode: Faling Edge // INT5: Off // INT6: Off // INT7: Off EICRA=0x00; EICRB=0x03; EIMSK=0x10; EIFR=0x10; // USART0 initialization // Communication Parameters: Data, Stop, No Parity // USART0 Receiver: On // USART0 Transmitter: On // USART0 Mode: Asynchronous // USART0 Baud rate: 38400 UCSR0A=0x00; UCSR0B=0xD8; Footer Page 103 of 16 Header Page 104 of 16 Trang - 104 - UCSR0C=0x06; UBRR0H=0x00; UBRR0L=0x19; // USART1 initialization // Communication Parameters: Data, Stop, No Parity // USART1 Receiver: On // USART1 Transmitter: On // USART1 Mode: Asynchronous // USART1 Baud rate: 38400 UCSR1A=0x00; UCSR1B=0xD8; UCSR1C=0x06; UBRR1H=0x00; UBRR1L=0x19; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x05; ETIMSK=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // LCD module initialization lcd_init(20); // Global enable interrupts #asm("sei") } //========================================================== // USART0 Transmitter interrupt service routine interrupt [USART0_TXC] void usart0_tx_isr(void) { To_SLAVE(); } //========================================================== Footer Page 104 of 16 Header Page 105 of 16 Trang - 105 - // Interrupt to get slave data // USART0 Receiver interrupt service routine interrupt [USART0_RXC] void usart0_rx_isr(void) { static bit FRAME_flag = FALSE; static unsigned char byte_no = 0; unsigned char c; c=UDR0; if(c=='{') { byte_no=0; FRAME_flag=TRUE; } if(FRAME_flag) { R_Buffer[byte_no]=c; if(c=='}') { FRAME_flag=FALSE; if((R_Buffer[1]=='O') & (R_Buffer[2]=='K')) { FRAME_Length=byte_no+1; //RS485_DATA_ToSend(R_Buffer[3]); DATA_Flag=TRUE; } } else { byte_no++; } } } //========================================================== #define CHECK_LENGTH unsigned char Command; Footer Page 105 of 16 Header Page 106 of 16 Trang - 106 - const unsigned char CHECK_OK[CHECK_LENGTH]={'O','K',FID_NO}; // Interrupt to receive request // USART1 Receiver interrupt service routine interrupt [USART1_RXC] void usart1_rx_isr(void) { static unsigned char byte_no = 0; unsigned char c; c = UDR1; if(byte_no