Thiết kế và chế tạo rơle bảo vệ sa thải tải theo tần số

MỤC LỤC Chương I Trang Đặt vấn đề và nhiệm vụ thư I. Đặt vấn đề 1 II. Nhiệm vụ thư 3 Chương II Tổng quan về Rơle số I. Khái niệm về Rơle số 4 II. Một số chủng loại Rơle thành bộ ngày nay 6 1. Rơle bảo vệ đường dây truyền tải 6 2. Rơle bảo vệ đường dây phân phối 8 3. Rơle bảo vệ máy biến áp 9 4. Rơle bảo vệ động cơ 10 5. Rơle bảo vệ máy phát 11 6. Rơle bảo vệ thanh cái 12 7. Các loại rơle khác 13 III. Các loại sự cố 14 1. Sự cố quá tải 14 2. Sự cố quá dòng 14 3. Sự cố tần số thấp 17 Chương III Sơ đồ khối và thiết kế phần cứng I. Sơ đồ khối 18 II. Thiết kế phần cứng 18 1. Mạch lọc thông thấp và chuẩn hoá tín hiệu 18 2. Khối xử lý và điều khiển 22 2.1 Cổng vào ra song song 22 2.2 Cấu trúc bộ nhớ 24 2.3 Một số thanh ghi của AT90S8535 25 2.4 Timer/Counter của AT90S8535 28 2.5 Watchdog Timer của bộ vi điều khiển 30 2.6 Truy cập dữ liệu với EEPROM trong 31 2.7 Giao diện ngoại vi nối tiếp SPI 31 2.8 UART 32 2.9 Bộ so sánh tương tự 33 2.10 Bộ biến đổi ADC 34 3 Khối ngoại vi (LCD, Phím, RTC, EEPROM) 37 3.1 Phím 37 3.2 Mạch đối thoại LCD 39 3.3 Mạch RTC DS12887 40 3.4 Mạch giao tiếp với EEPROM 24C16 42 4. Khối truyền tin với máy tính 43 5. Khối điều khiển tiếp điểm 45 6. Khối nguồn nuôi 46 Chương IV Modul phần mềm và lưu đồ thuật toán 49 Chương V Đánh giá thiết bị 61 Phụ lục Mã nguồn chương trình của Rơle 63

doc66 trang | Chia sẻ: banmai | Lượt xem: 1919 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Thiết kế và chế tạo rơle bảo vệ sa thải tải theo tần số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Sơ đồ khối mạch lọc và chuẩn hoá Biến áp Để loại bỏ thành phần nhiễu, trước khi tín hiệu vào mạch chuẩn hoá ta cho đi qua mạch lọc thông thấp. Điện áp ra của biến áp là 220/12V được đưa qua mạch lọc thông thấp dùng vi mạch LM 324 với tần số cắt Tc = 2P*R*C. Sau đó tín hiệu điện áp này được đưa qua mạch chỉnh lưu thành điện áp một chiều giá trị 0 ¸ 5V tương ứng với điện áp vào từ 0 ¸ 220V. Hình 4: Mạch lọc và chuẩn hoá điện áp Mạch lọc thông thấp: Có tác dụng chặn lại những tín hiệu có tần số cao làm méo tín hiệu hình sin. với sơ đồ trên thì tần số cắt của mạch lọc là: Tc = 2P*(R4+R5)*C1 Wc = Hàm truyền đạt của mạch lọc : Vậy ta có : ; . Với w nhỏ, khi đó coi như bằng không. K1 = 1 ; K = K0 = Với w = wc , khi đó : K1 = ; K = K0 Vì trong mạch cho phép tần số công nghiệp đi qua nên ta chọn fc = 50Hz. Khi đó wc = 2.P.fc = 2.P.50 = 314 (rad) Mà theo công thức Vậy R4.C1 = = 3,2 (ms) Từ đó ta chọn C1 = 220 nF R4 = 15 kW Theo tính toán điện áp ra khỏi biến áp là 12V( máy biến áp có hệ số biến áp 220/12). Sau đó điện áp này được qua một bộ phân áp bởi R1 và R2 để áp trên R2 là: Vậy để áp ra khỏi mạch chuyển đổi chuẩn hoá này đạt được 5V thì hệ số khuếch đại của mạch lọc này là . Khi đó áp ra là 2,16.3,2 = 6,9V. Và sau đó điện áp này được đưa qua biến trở để hiệu chỉnh thành 5V. Sở dĩ phải làm như vậy vì điện trở được dùng có độ chính xác không cao, nên cần loại bỏ sai số do điện trở gây ra. Điện áp ra khỏi mạch lọc được đưa vào mạch chỉnh lưu 2 nửa chu kỳ sau đó lọc san phẳng bằng 1 tụ hoá C2 = 4.7(mF). Cũng từ điện áp ra khỏi mạch lọc này được đưa vào mạch biến đổi điện áp hình sin ra thành xung vuông có cả phần âm và phần dương. Hoạt động của mạch là so sánh điện áp vào với 0 nhờ một mạch so sánh LM393. Khi Uvào > 0 thì Ura của LM393 là +5V Khi Uvào < 0 thì Ura của LM393 là -5V Hình 5: Mạch tạo xung vuông Tần số của xung vuông này chính bằng tần số đầu vào từ máy biến áp của mạch. Để cắt bỏ phần âm của tín hiệu ta dùng một diode. Vì trong đồ án này sử dụng phương pháp đo tần số bằng cách đo chu kỳ do đó tìn hiệu xung vuông tần số được đưa vào chân ngắt INT0 để khởi động timer sau đó ta đếm thời gian của 2 lần ngắt chính là chu kỳ cần đo. Và ta có tần số f = 1/T. 2. Khối xử lý và điều khiển Dòng vi điều khiển AVR là dòng xử lý 8 bit với cấu trúc havard, tập lệnh RISC với 118 lệnh, phần lớn là lệnh thực hiện trong một chu kỳ. Nhằm tìm hiểu những tính năng mạnh của dòng vi điều khiển này, trong đồ án này đã sử dụng loại vi điều khiển AT90S8535. Đây là sản phẩm của hãng Atmel và nó có những đặc tính như sau: Bao gồm: 32 thanh ghi đa chức năng 8 bít. Có thể đạt tới tốc độ 8 triệu lệnh/ giây với tần số đạt vào là 8 MHz. 8k bộ nhớ chưng trình flash có giao tiếp SPI ghi xoá được 1000 lần. 512 byte EEPROM ghi xoá 100,000 lần. 512 byte SRAM trong. Chức năng ngoại vi gồm có : 1 ADC 10 bit 8 kênh. 2 Timer 8 bit các tần số định trước, và chế độ so sánh. 1 Timer 16 bit với tần số định trước có chế độ compare và capture. Lập trình cho watchdog timer với tần số trên chíp Có bộ so sánh tưng tự trên chíp. Và có một số chức năng đặc biệt khác như : Khởi động bằng mạch khởi động. Có mạch Realtime clock với mạch dao động riêng và chế độ đếm. Các nguồn ngắt trong và ngắt ngoài. Ba chế độ ngủ: Idle, power save, power down. 2.1 Cổng vào ra song song: Vi điều khiển AT90S8535 có 4 cổng và ra song song đó là PortA, PortB, PortC, PortD. Mỗi cổng của AVR có 3 thanh ghi đó là thanh ghi điều khiển hướng vào ra của dữ liệu (Data Direction Register), thanh ghi dữ liệu (Data Register), và thanh ghi PIN (Port Input Adress) khi đọc dữ liệu vào từ port thì ta chỉ việc đọc giá trị từ PIN. Port A: Là cổng 8 bit 2 chiều. Các chân của cổng có sẵn điện trở treo cao bên trong. Đệm đầu ra cổng A có dòng sink 20mA và có thể điều khiển LED trực tiếp.Port A cũng có thể được dùng như các đầu vào của ADC. Các chân cổng A là 3 trạng thái khi Reset, và khi không có clock. Port B Là cổng 8 bit 2 chiều. Các chân của cổng có sẵn điện trở treo cao bên trong. Đệm đầu ra cổng A có dòng sink 20mA và có thể điều khiển LED trực tiếp. Các chân cổng B còn có các chức năng khác như : Các chân Chức năng PB0 T0 (đầu vào ngoài của T/C 0) PB1 T1 (đầu vào ngoài của T/C 1) PB2 AIN0(đầu vào dương của bộ so sánh tương tự) PB3 AIN1(đầu vào âm của bộ so sánh tương tự) PB4 (SPI slave select input) PB5 MOSI (SPI Bus Master Output/Slave Input) PB6 MISO (SPI Bus Master Input/Slave Output) PB7 SCK (SPI Bus Serial Clock) Port C: Là cổng 8 bit 2 chiều vào ra, các thanh ghi điều khiển là DDRC, PORTC, PINC. Cũng như các cổng khác bộ đệm vào của port C có khả năng hút dòng tới 20mA nên có thể điều khiển trực tiếp LED. Còn hai chân PC6 và PC7 được nối với một bộ tạo dao động thạch anh 32.768 kHz để làm tần số hoạt động cho timer2 hoạt động như một bộ RTC. Khi đó hai chân này không còn chức năng là chân vào ra của cổng này nữa. Port D Là cổng 8 bit 2 chiều vào ra, các thanh ghi điều khiển là DDRD, PORTD, PIND. Cũng như các cổng khác bộ đệm vào của port C có khả năng hút dòng tới 20mA nên có thể điều khiển trực tiếp LED. Ngoài ra các chân của Port D còn có các chức năng khác như sau: Các chân Chức năng PD0 RxD (UART Input Line) PD1 TxD (UART Output Line) PD2 INT0 (đầu vào ngắt ngoài 0) PD3 INT1 (đầu vào ngắt ngoài 1) PD4 OC1B (Timer/Counter1 output compare B match output) PD5 OC1A (Timer/Counter1 output compare A match output) PD6 ICP (Timer/Counter1 input capture pin) PD7 OC2 (Timer/Counter2 output compare match output) 2.2 Cấu trúc bộ nhớ: Bộ nhớ chương trình là bộ nhớ Flash, dung lượng là 8k, được tổ chức 4kx16 bit. Bộ nhớ chương trình được truy nhập theo từng chu kỳ đồng hồ, và một lệnh được nạp vào thanh ghi lệnh. Thanh ghi lệnh nối với tệp 32 thanh ghi bằng cách lựa chọn xem thanh ghi nào sẽ được ALU sử dụng để thực thi lệnh. Lối ra của thanh ghi lệnh được giải mã bằng bộ giải mã lệnh để quyết định chọn tín hiệu nào sẽ được kích hoạt để hoàn thành lệnh hiện tại. Bộ nhớ chương trình bên cạnh các lệnh lưu trữ, cũng chứa các vector ngắt bắt đầu từ địa chỉ $0000h. Chưong trình hiện tại sẽ bắt đầu ở vị trí phía bên kia vùng dùng cho các vetor ngắt. AVR có 13 vector ngắt như sau: Địa chỉ Vector Giải thích $0000 Reset ;Reset handler $0001 EXT_INT0 ;IRQ0 handler $0002 XT_INT1 ;IRQ1 handler $0003 ETIM_CAPT ;Timer1 capture handler $0004 TIM1_COMA ;Timer1 compareA handler $0005 TIM1_COMB ;Timer1 compareB handler $0006 TIM1_OVF ;Timer1 over flow handler $0007 TIM0_OVF ;Timer0 oveflow handler $0008 SPI_STC ;SPI transfer complate handler $0009 UART_RxC ;UART Rx complate ;handler $000A UART_DRE ;UART UDR empty handler $000B UART_TxC ;UART Tx complate handler $000C ANA_COMP ;Analog compare handler Bộ nhớ dữ liệu có tất cả 5 phần khác nhau: Một tệp thanh ghi (register file) với 32 thanh ghi 8 bit từ R0¸R31. 64 thanh ghi vào ra (I/O), mỗi thanh 8 bit. Bộ nhớ SRAM bên trong, có dung lượng 512 byte. Bộ nhớ SRAM được sử dụng cho ngăn xếp cũng như để lưu trữ các biến. Trong thời gian ngắt và đoạn gọi chưng trình con, giá trị hiện tại của con trỏ chưng trình được lưu trữ trong ngăn xếp. Kích thước của ngăn xếp phụ thuộc vào SRAM trên chip. Vị trí của ngăn xếp được chỉ bởi con trỏ ngăn xếp. Con trỏ ngăn xếp là thanh ghi có độ dài 2 byte. Con trỏ ngăn xếp cần được khởi tạo sau khi reset, và trước khi ngăn xếp được sử dụng. Bộ nhớ SRAM bên ngoài, sử dụng các cổng để truy nhập bộ nhớ và dữ liệu bên ngoài. EEPROM được truy nhập theo bn đồ bộ nhớ riêng. AVR 908535 có 512 EEPROM, địa chỉ bắt đầu từ $000. Việc đọc EEPROM diễn ra nhanh hơn việc ghi vào. có thể ghi được 100,000 lần. 2.3 Một số thanh ghi của AVR AT90S8535: Thanh ghi trạng thái SREG: Thanh ghi trạng thái có 8 bit cờ đóng vai trò báo hiệu trạng thái hiện tại của bộ xử lý. Tất c các bit đó được xoá khi reset và có thể được đọc và ghi bởi chương trình. 7 6 5 4 3 2 1 0 I T H S V N Z C I : cho phép ngắt toàn cục. Việc thiết lập bit này cho phép tất cả ngắt. Xoá bit này cấm hết tất cả ngắt T : bit copy storage. được sử dụng với lệnh nạp và lưu trữ bit để nạp hay lưu trữ các bit từ một thanh ghi vào thanh ghi khác. H : half carry flag. Chỉ cho thấy sự nhớ một nửa trong một số lệnh số học. S : sign flag. Bit này là kết quả của EXOR giữa cờ phủ định N và cờ tràn Overflow V : cờ tràn lấy bù nhị phân N : cờ phủ định (Nagative Flag) Z : zero flag báo một kết quả bằng 0 sau khi thực hiện một phép tính số học hay logic. C : cờ nhớ carry. Thanh ghi con trỏ ngăn xếp Thanh ghi này có độ rộng 2 byte được gọi là SPH và SPL. Bởi vì SP được khởi tạo bằng $0000 khi reset nên chương trình người dùng cần khởi tạo SP cho thích hợp vì địa chỉ bắt đầu của Interal SRAM dùng làm ngăn xếp bắt đầu từ $60. Thanh ghi che ngắt chung GIMSK GISMK general Interupt Mask Register được sử dụng để cho phép hoặc cấm các ngắt ngoài riêng biệt bằng cách đặt lại các bit có liên quan. Đồng thời khi đó bit I trong thanh ghi SREG được set bằng 1 thì ngắt mới được xảy ra. 7 6 5 4 3 2 1 0 INT0 INT1 Thanh ghi cờ ngắt chung GIFR General Interupt Flag Register chỉ báo cho thấy nếu một ngắt đã xuất hiện. Nếu một ngắt ngoài xuất hiện thì cờ INT tương ứng trong GIFR được đặt thành 1.Thanh ghi này điều khiển cho phép hay cấm ngắt ngoài INT0 hay INT1 thông qua hai bit 7,6 của thanh ghi này 7 6 5 4 3 2 1 0 INTF1 INTF0 - - - - - - Thanh ghi điều khiển toàn cục MCUCR Các bit trong thanh ghi điều khiển toàn bộ vi điều khiển (MCU Control Register). Điều khiển các chế độ cho phép hay cấm truy nhập bộ nhớ ngoài, chế độ ngủ, và điều khiển sự phát hiện ngắt ngoài. 7 6 5 4 3 2 1 0 - SE SM1 SM0 ISC11 ISC10 ISI01 ISC00 Bit 7: SRE cho phép SRAM ngoài. Bit 6: SRW bit trạng thái chờ truy nhập SRAM ngoài Bit 5: SE cho phép ngủ Bit 4: SM chế độ ngủ SM=1 là chế độ ngủ, SM=0 chế độ gim dòng tiêu thụ Bit 3,2: ISC11, ISC10. bit điều khiển nhạy cm ngắt (ngắt theo sườn hay mức Bit 1,0: ISC01, ISC00 chọn ngắt ngoài theo sườn hay mức, tích cực thấp hay cao. Thanh ghi trạng thái bộ xử lý MCUSR Cung cấp thông tin về nguồn tín hiệu reset (reset ngoài hay reset do watchdog timer) 7 6 5 4 3 2 1 0 - - - - - - EXTRF PORF Thanh ghi TIMSK Đây là thanh ghi điều khiển cho phép ngắt của Timer/Counter 7 6 5 4 3 2 1 0 OCIE2 TOEI2 TICIE1 OCIE1A OCIE1B TOIE1 - TOIE0 OCIE2 : Timer/Counter2 output compare match interrupt enable. TOEI2 : Cho phép ngắt tràn của Timer/Counter2 TICIE1: Cho phép ngắt Input Capture của Timer/counter1 OCIE1A: Cho phép ngắt Output compareA của Timer/counter OCIE1B: Cho phép ngắt Output compareB của Timer/counter TOIE1: Cho phép ngắt tràn của Timer/counter1. TOIE0: Cho phép ngắt tràn của Timer/counter0. Thanh ghi cờ ngắt timer TIMSK (Timer/counter Interrupt Flag) 7 6 5 4 3 2 1 0 OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 - TOV0 OCF2: Cờ ngắt output compare của Timer/counter2 TOV2: Cờ ngắt tràn của Timer/counter 2 ICF1 : Cờ ngắt Input capture của Timer/counter1 OCF1A: Cờ ngắt Output compareA của Timer/counter1 OCF1B: Cờ ngắt Output compareB của Timer/counter1 TOV1 : Cờ ngắt tràn của Timer/counter1 TOV0 : Cờ ngắt tràn của Timer/counter0 2.4 Timer/Counter của AVR 908535 AVR 908535 cung cấp 3 Timer trong đó có 2 timer/counter 8 bit và T1 và 1 Timer 16 bit. Timer/Counter2 có thể lựa chọn tín hiệu đồng hồ từ nguồn dao động ngoài. Nguồn dao động ngoài tối ưu cho T2 là có tần số 32.768 MHz, nó có thể cho phép T2 hoạt động như mạch đồng hồ thời gian thực (RTC). T0,T1 lựa chọn tần số chia trước từ cùng một bộ chia tần 10 bit. T2 sử dụng bộ chia tần riêng. Những Timer/Counter này có thể hoạt động như Timer với tín hiệu đồng hồ bên trong hoặc như những Counter với đầu vào tín hiệu bên ngoài. Từ sơ đồ của mạch chia tần dùng cho T2 ta thấy nguồn tín hiệu cho bộ chia tần này là PKC2 mặc định nối với đồng hồ của hệ thống(CK). Để T2 hoạt động như mạch RTC thì ta set bit AS2 trong thanh ghi ASSR, khi đó bộ chia tần của T2 lấy xung clock để hoạt động từ chân PC6(TOSC1). Khi AS2=1 thì chân PC6 và PC7 được ngắt ra khỏi cổng C và được sử dụng để nối bộ dao động riêng cho T2. Bộ dao động này thường có tần số 32.768MHz. 8 bit-Timer/Counter 0: Timer/Counter 0 8 bit có thể chọn tín hiệu clock từ đồng hồ hệ thống (CK), hay từ chân ngoài. Thanh ghi dùng để điều khiển T0 8 bit là TCCR0. Cờ báo tràn nằm trong thanh ghi cờ tràn TIFR. Việc cho phép và cấm ngắt đối với T0 được tìm thấy trong thanh ghi TIMSK. Khi T0 được giữ nhịp từ bên ngoài, thời gian cực tiểu giữa hai lần xảy ra sự chuyển mức tín hiệu đồng hồ ít nhất cũng phi bằng 1 chu kỳ xung đồng hồ bên trong CPU. Tín hiệu giữ nhịp bên ngoài được lấy mẫu theo sườn dương bằng xung đồng hồ bên trong CPU. Bộ Timer/Counter0 8 bit thể hiện cả độ phân giải cao lẫn độ chính xác cao và luôn ưu tiên số chia tần số thấp hơn. 16 bit-Timer/Counter 0: Timer/Counter 16 bit có thể lựa chọn xung clock nguồn từ Ck hoặc từ chân bên ngoài. Các tín hiệu điều khiển T1 nằm trong thanh ghi TCCR1A và TCCR1B, các trạng thái khác cũng tìm thấy trong hai thanh ghi này như: cờ tràn, compare match và capture event. Việc cho phép và cấm ngắt nằm trong thanh ghi interupt Mask register TIMSK. Khi T1 được giữ nhịp từ bên ngoài, tín hiệu bên ngoài được đồng bộ với tần số dao động của CPU, thời gian cực tiểu giữa hai lần xy ra sự chuyển mức tín hiệu đồng hồ ít nhất cũng phi bằng 1 chu kỳ xung đồng hồ bên trong CPU. Tín hiệu giữ nhịp bên ngoài được lấy mẫu theo sườn dưng bằng xung đồng hồ bên trong CPU. Bộ Timer/Counter1 16 bit thể hiện cả độ phân giải cao lẫn độ chính xác cao và luôn ưu tiên số chia tần số thấp hơn. Timer/Counter1 16 bit còn có chức năng output compare sử dụng thanh ghi output compare register 1A và B (OCR1A ,OCR1B). dữ liệu nguồn nằm trong thanh ghi này được so sánh với nội dung của T1. T1 cũng có thể sử dụng các chế độ điều chế độ rộng xung 8,9,10 bit. Chức năng Input capture cho phép lấy nội dung của T1 vào thanh ghi ICR1. Thanh ghi điều khiển timer/counter 1 (TCCR1B) sẽ quy định các sự kiện capture 8 bit-Timer/Counter 2: Nguồn xung clock của T2 là PCK2 hay bộ chia tần riêng của T2. Việc điều khiển hoạt động của T2 thông qua thanh ghi TCCR2. Cờ tràn và cờ compare match nằm trong thanh ghi trạng thái ngắt TIFR. Việc cho phép hay cấm ngắt thông qua thanh ghi TIMSK. Trong chế độ so sánh T2 dùng thanh ghi OCR2 làm nguồn dữ liệu để so sánh với nội dung của timer/counter. Timer/Counter 2 cũng có thể dùng ở chế độ điều chế độ rộng xung 8 bit. 2.5 Watchdog Timer của AVR 908535 Watchdog Timer sử dụng bộ dao động riêng trên chip. Bằng việc điều khiển bộ chia tần mà thời gian Reset được thay đổi theo bảng sau: Thanh ghi điều khiển của Watchdog Timer WDTCR WDTOE WDE WDP2 WDP1 WDP0 WDTOE: watchdog timer turn off Enable. Bit này phi được set 1 khi bit WDE bị xóa, nếu không thì Watchdog timer không được phép sử sụng. Khi được set lên thì sau 4 chu kỳ máy bít này bị xóa bởi phần cứng. WDE: Bit này bằng 1 thì cho phép watchdog timer, nếu bit này bij xóa thì cấm WDT. Bit này chỉ có thể bị khóa nếu WDTOE =1. Để cấm hoạt động của WDT ta làm như sau: Trong cùng 1 toán hạng viết 1 vào WDTOE và WDE sau đó trong 4 chu kỳ đồng hồ tiếp theo viết 0 vào WDE. WDP0.. WDP2 : lựa chọn tần số chia của WDT khi WDT được cho phép. 2.6 Truy cập dữ liệu với EEPROM: Thời gian truy nhập dữ liệu vào EEPROM từ 2.5-4 ms, tùy thuộc vào điện áp Vcc cung cấp. Chức năng self-timming cho phép chương trình phần mềm tự động biết khi nào byte tiếp theo được phép ghi vào. Một ngắt đặc biệt được dựng lên để báo EEPROM sẵn sàng để nhận dữ liệu mới. Các thanh ghi địa chỉ EEARH và EEARL, thanh ghi điều khiển EECR, thanh ghi dữ liệu EEDR (đã trình bày ở phần trên), được sử dụng để thao tác với EEPROM. Các giải pháp để tránh sai lạc dữ liệu đối với EEPROM có thể xảy ra: a - sử dụng mạch phát hiện brown out (BOD) để phát hiện các chu kỳ thời gian khi điện áp nguồn nuôi thấp và yêu cầu reset trong những khong thời gian như Vậy. Tiến hành Reset hệ thống là cách tốt hn việc tiếp tục tiến hành mà vẫn có thể có kh năng xy ra sai lạc dữ liệu trong EEPROM. b – tránh ghi vào EEPROM trong thời gian điện áp nguồn nuôi bị gim thấp.Gii pháp này nói thì dễ nhưng thực hiện rất khó vì không biết khi nào thì điện áp gim. c - Không nên sử dụng bộ nhớ EEPROM một cách lạm dụng 2.7 Giao diện ngoại vi nối tiếp SPI: SPI cho phép truyền thông nối tiếp tốc độ cao và có đặc điểm sau: Truyền Full-duplex, sử dụng 3 dây để đồng bộ dữ liệu truyền. Hoạt động như Master hoặc Slave. Truyền MSB trước hay LSB. Có thể thay đổi 4 tốc độ truyền. Có cờ báo ngắt truyền thông. Cờ báo bo vệ xung đột thông tin. Đánh thức hệ thống từ chế độ ngủ. Thanh ghi trạng thái SPI – SPSR SPIF WCOL - - - - - - Bit 7 :SPIF - cờ ngắt SPI. Khi một cuộc truyền nối tiếp SPI được hoàn thành và bit SPIE trên thanh ghi SPCR được đặt thành 1, còn các cờ ngắt toàn cục được cho phép, thì cờ SPIF được đặt thành 1. cờ SPIF bị bộ xử lý xoá thành 0 khi ngắt được thực thi. Bit SPIF cũng có thể bị xoá bằng cách đọc thanh ghi trạng thái SPI khi cờ bằng 1 và sau đó truy nhập thanh ghi dữ liệu SPI. Bit 6 :WCOL – write collision flag (cờ xung đột ghi). Bit này được đặt nếu thanh ghi dữ liệu SPI (SPDR) được gh trong khoảng thời gian diễn ra một cuộc truyền dữ liệu. Bit này bị xoá cùng với cờ SPIF, bởi trước tiên là việc đọc thanh ghi trạnh thái SPI khi WCOL được đặt thành 1 và sau đó truy nhập thanh ghi dữ liệu SPI Thanh ghi điều khiển SPI 7 6 5 4 3 2 1 0 SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0 Bit 7: SPIE cho phép ngắt SPI bit này làm cho một ngắt SPI phi được tạo ra nếu SPIF=1 và các ngắt toàn cục được cho phép. Bit 6: SPE bit này bằng 1 thì cho phép SPI Bit 5: DORD đặt thứ tự dữ liệu. Khi đặt thành 1 LSB của dữ liệu được truyền trước. Khi xoá thì MSB của dữ liệu được truyền trước. Bit 4 : MSTR master/slave select.Khi đặt thành 1 cổng SPI trong chế độ chủ và khi xoá nó thành cổng Slave. Nếu như SS được cấu hình để là lối vào và được đặt thành mức thấp thì bit MSTR sẽ bị xoá thành 0 và SPIF được set=1. Người dùng sẽ phải đặt MSTR thành 1một lần nữa để khởi động thành Master Bit 3: CPOL Clock Polarity. Khi đặt thành 1 thì SCK là cao(High) khi nghỉ (Idle: không có công việc xử lý) còn khi bị xoá thành 0 thì SCK trở thành mức thấp khi không có công việc cần xử lý. Bit 2:CPHA Clock phase. Quy định pha kích hoạt của xung nhịp. Bit 1-0 SPR1, SPR0 clock rate select. Các bit này quy định tốc độ đồng hồ SCK khi được đặt cấu hình như Master. Nếu như vi mạch như là 1 slave thì các bit này không ảnh hưởng lên tần số SCK. Bộ thu phát nối tiếp dị bộ vạn năng UART Bộ thu phát của AT90S8535 hoạt động ở chế độ Full_duplex. Có bộ đệm truyền nhận riêng biệt. Có ba ngắt dành cho UART là TX_complate (ngắt này xảy ra khi truyền xong dữ liệu), ngắt RX_complate (xảy ra khi nhận xong 1 byte dữ liệu), ngắt TX_data register empty ( thanh ghi truyền rỗng). Hoạt động của bộ nhận: Bộ nhận lấy mẫu tín hiệu trên chân RxD ở tần số gấp 16 lần tốc độ(baud). Bit start được phát hiện khi có sườn xuống trên đường truyền để chuyển trạng thái 1 sang 0. và sau đó các bit tiếp theo tuần tự được phát hiện. Sau khi phát hiện bit start bộ nhận tiếp tục lấy mẫu trên đường truyền ở những lần 8, 9, 10. Nếu lớn hơn hai lần mà vẫn nhận được giá trị 1 thì bộ nhận coi nó như là nhiễu, và tiếp tục quan sát đường truyền. Tuy nhiên nếu bit start là hợp lệ thì dữ liệu được nhận vào và cũng được lấy mẫu ở những chu kỳ thứ 8,9,10. Giá trị logic phải phát hiện được ít nhất 2 hay 3 lần thì mới coi là bit hợp lệ. Khi nhận xong bit Stop bộ nhận sẽ kiểm tra mức logic nếu 2 hay hơn nữa số lần lấy mẫu là 0 thì báo lỗi Frame. Hoạt động của bộ truyền: Việc truyền dữ liệu được khởi tạo bằng việc viết dữ liệu cần truyền vào thanh ghi dữ liệu UART – UDR. Dữ liệu được truyền từ UDR tới thanh ghi dịch truyền khi một ký tự được viết vào UDR khi bit Stop của ký tự trước đó được dịch ra. Thanh ghi dịch sẽ tải vào ngay lập tức. Nếu thanh ghi dịch 10(11)bit rỗng dữ liệu được truyển từ UDR tới thanh ghi dịch. Khi bit UDRE trong UART Status Register bằng 1, UART sẵn sàng nhận ký tự tiếp theo, cùng lúc đó dữ liệu được truyền từ UDR vào thanh ghi dịch. Bit 0 của thanh ghi dịch bị xóa để làm bit Start và bit 9,10 làm bit Stop. Trong khi truyền bit UDRE=1, khi không còn dữ liệu mới được ghi vào thì cờ Tx complate trong USR được set. 2.9 Bộ so sánh tưng tự: Bộ so sánh tương tự sẽ so sánh giá trị của đầu vào dương PB2(AIN0) và đầu vào âm PB3(AIN1). Khi điện áp đầu dương lớn hơn điện áp đầu âm thì đầu ra của bộ so sánh ACO được set bằng 1. Đầu ra của bộ so sánh tương tự có thể dùng để kích hoạt chức năng input capture của Timer/Counter 1. Hay nó còn dùng làm ngắt riêng của bộ so sánh này. Ta có thể chọn các chế độ ngắt khác nhau như ngắt theo sườn lên hay sườn xuống, đo giá trị. Thanh ghi trạng thái và điều khiển của bộ so sánh tương tự là ACSR. Thanh ghi ACSR được sử dụng để điều khiển hoạt động của bộ so sánh cũng như để giám sát lối ra của bộ so sánh. ACD - ACO ACI ACIE ACIC ACIS1 ACIS0 Bit 7 :ACD Analog comparator disable( cấm bộ so sánh analog). Khi đặt thành 1 thì nguồn nuôi cho bộ so sánh bị ngắt. Bit 5: ACO Analog comparator output. Đây là lối ra của bộ so sánh analog. Bit 4: ACI Analog comparator Interupt Flag. Cờ ngắt bộ so sánh analog. Bit này được set bằng 1 khi 1 sự kiện so sánh đ• trigger 1 trạng thái ngắt bộ so sánh được quy định bởi ACIS1 và ACIS0. Ngắt bộ so sánh được thực thi nếu bit ACIE được đặt thành 1 và các ngắt toàn cục được cho phép. Bit 3: ACIE. Analog comparator Interupt Enable(cho phép ngắt bọ so sánh analog) Khi đặt thành 1 thì ngắt bộ so sánh analog được cho phép. Khi đặt thành 0 thì ngắt bộ so sánh bị cấm. Bit 2: ACIC. Analog comparator input capture Enable. Khi đặt thành 1, lối ra bộ so sánh được nối với mạch “input capture front end” của bộ định thời timer1. Bit 1,0: ACIS1,ACIS0 : Analog comparator interupt Mode select. Việc kết hợp của các bit này lựa chon các chế độ ngắt. 2.10 Bộ biến đổi ADC của AVR 908535: Các đặc trưng của ADC này là: Độ phân giải 10 bit. Độ phi tuyến 0.5 LSB Sai số tuyệt đối là xấp xỉ 2 LSB. Thời gian biến đổi là 65 – 260 mS. 8 kênh vào. chế độ chạy tự do hoặc biến đổi đơn. Khi biến đổi xong sẽ gây ra ngắt. Chống nhiễu và không gây ra nhiễu. AT90S8535 gồm ADC 10 sử dụng phương pháp biến đổi xấp xỉ liên tiếp. 8 kênh vào của ADC được nối qua cổng A tới một bộ dồn kênh. Phải đảm bảo rằng mức điện áp trên kênh không thay đổi trong quá trình biến đổi. ADC có hai nguồn điện áp tương tự riêng đó là AVCC và AGND. AGND phi được nối với GND và AVCC= Vcc±0.3V. Điện áp chuẩn bên ngoài nối qua chân AREF. Điện áp này phải nằm trong dải 2V tới AVCC. ADC biến đổi điện áp tương tự vào thành giá trị số 10 bit qua phương pháp xấp xỉ liên tiếp. Giá trị nhỏ nhất là AGND và giá trị lớn nhất là điện áp trên AREF – 1LSB. Các kênh được lựa chọn nhờ MUX bit trong thanh ghi ADMUX. ADC có hai chế độ hoạt độnglà Free running và Single conversion. ở chế độ Single conversion mỗi lần biến đổi phải được khởi tạo bởi người dùng. Còn ở chế độ Free running ADC lấy mẫu liên tục và ghi vào thanh ghi dữ liệu ADC. Bit ADFR trong thanh ghi ADCSR chọn chế độ hoạt động cho ADC. Việc set bit ADEN trong ADCSR cho phép ADC hoạt động. Kênh được chọn vào sẽ chưa được biến đổi ngay nếu chưa set bit này. ADC sẽ không tiêu thụ công suất nếu bit ADEN bị xóa do đó cần phải tắt ADC trước khi chuyển sang chế độ ngủ tiết kiệm công suất. Việc biến đổi bắt đầu bằng việc viết giá trị 1 vào bit khởi động ADC (ADSC). Bit này giữ giá trị cao trong suốt quá trình biến đổi và bị xóa bởi phần cứng khi quá trình biến đổi hoàn thành. Nếu có kênh dữ liệu khác được lựa chọn trong khi đang thực hiện biến đổi thì ADC sẽ thực hiện nốt quá trình đang làm và sau đó mới thực hiện sự thay đổi. Vì dữ liệu ra của ADC là 10 bit nên phải sử dụng hai thanh ghi ADCH và ADCL để cất kết quả. Khi đọc dữ liệu ta đọc ADCL trước rồi mới tới ADCH. Khi ADCL được đọc thì sự truy nhập vào thanh ghi bị đóng lại, có nghĩa là nếu thanh ghi ADCL được đọc và quá trình biến đổi xong trước khi ADCH được đọc thì kết qu bị sai. Sau đó ADCH được đọc thì sự truy nhập các thanh ghi ADC lại được cho phép. ADC có nguồn ngắt riêng sinh ra khi quá trình biến đổi hoàn thành hay khi truy nhập dữ liệu bị cấm trong lúc đang đọc ADCH và ADCL ngắt sinh ra khi bị mất dữ liệu. Mạch xấp xỉ liên tiếp cần xung vào có tần số từ 50kHz tới 200kHz để đạt được độ phân giải lớn nhất. Nếu độ phân giải nhỏ hơn 10 bit thì cần xung với tần số cao hn 200 kHz để có tần số lấy mẫu lớn hơn. Các bit ADPS2..0 trong thanh ghi ADCSR dùng để tạo ra tần số phù hợp từ tần số của đồng hồ hệ thống đến trên 100kHz. Bộ chia tần của ADC bắt đầu đếm từ thời điểm ADC bật lên và bit ADEN trong ADCSR đặt bằng 1. Bộ chia tần chạy cho tới khi ADEN trở về thấp thì được Reset. Khi set bit ADSC trong ADCSR để bắt đầu quá trình biến đổi thì quá trình biến đổi được bắt đầu tại sườn lên của chu kỳ đồng hồ ADC. Bình thường quá trình biến đổi hết 13 chu kỳ đồng hồ. Quá trình trích và giữ mẫu hết 1.5 chu kỳ, và quá trình biến đổi hết 13.5 chu kỳ. Khi quá trình biến đổi hoàn thành dữ liệu được ghi vào thanh ghi dữ liệu ADC và cờ ADIF được set. Trong chế độ single thì bit ADSC bị xóa khi thực hiện xong quá trình biến đổi và các chương trình phần mềm có thể set lại ADSC để bắt đầu quá trình biến đổi khác. Còn ở chế độ Free running quá trình biến đổi mới được thực hiện ngay sau khi sự biến đổi trước kết thúc, trong khi đó ADSC vẫn ở mức cao. Trong chế độ Free running với tần số 200kHz thì thời gian biến đổi là ngắn nhất (65mS) và độ phân giải cao nhất. ADC có kh năng loại bớt nhiễu trong quá trình nghỉ của CPU. Để thực hiện chức năng này ta phải theo thủ tục sau: ADC được cho phép và không biến đổi. Chế độ của ADC là Single và ngắt được cho phép. ADEN=1, ADSC=0, ADFR=0, ADIE=1. Vào chế độ nghỉ. ADC bắt đầu biến đổi 1 lần khi CPU được dừng. Nếu không có ngắt khác xảy ra trước khi quá trình biến đổi hoàn thành, ngắt ADC sẽ đánh thức MCU và thực hiện chương trình phục vụ ngắt. Thanh ghi ADMUX cho phép lựa chọn kênh đầu vào. - - - - - MUX2 MUX1 MUX0 Thanh ghi trạng thái và điều khiển ADC - ADCSR ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0 Bit 7 – ADEN : ADC enable. Bit này set bằng 1 thì cho phép ADC. Xóa bit này là tắt ADC. Việc tắt ADC khi đang trong quá trình biến đổi sẽ kết thúc ngay quá trình biến đổi đó. Bit 6 – ADSC : ADC start conversion. bit này bằng 1 bắt đầu quá trình biến đổi. Khi quá trình biến đổi hoàn thành bit này bị xóa bởi phần cứng, việc viết 0 vào bit này sẽ không có tác dụng. Bit 5 – ADFR :ADC Free running select. Bit này bằng 1 ADC hoạt động ở chế độ free running . xóa bit này sẽ kết thúc chế độ này. Bit 4 – ADIF : ADC interupt flag. Set 1 khi quá trình biến đổi kết thúc và dữ liệu được ghi vào thanh ghi dữ liệu. Bit này được set khi bit ADIE =1 và bit I trong SREG bằng 1. ADIF bị xóa bởi phần cứng khi thực hiện xong chưng trình phục vụ ngắt. Bit 3 – ADIE : ADC interupt enable. Cùng với bít I trong SREG sẽ cho phép ngắt khi biến đổi xong. Bit 2..0 – ADPS2..ADPS0: bit lựa chọn số chia cho bộ chia tần của ADC. Với các số chia 2, 2, 4, 8, 16, 32, 64, 128. Thanh ghi dữ liệu ADC ADCL và ADCH chứa kết quả của quá trình biến đổi. 3. Khối ngoại vi ( Phím, LCD, RTC, EEPROM) 3.1 Phím: Người sử dụng có thể đặt thông số cho rơle qua hệ thống gồm có 4 phím: Phím FUNC: Chọn các chức năng của rơle Phím INC : Tăng giá trị đặt Phím DEC : Giảm giá trị đặt Phím OK : Ghi lại giá trị đặt, thực hiện chức năng đã chọn Vì số phím của rơle ít nên ta không sử dụng ma trận phím mà dùng mạch mã hoá ưu tiên 74LS148. Đây là mạch giải mã 8 đầu vào ( I0 ¸ I7 ) tích cực thấp với I7 có mức ưư tiên cao nhất. và 3 đầu ra ( A0 ¸ A2 ) cho biết nhận biết đầu vào nào được tích cực. Vi mạch này thiết kế để chỉ có một đầu vào tích cực, khi có đồng thời hai phím được nhấn thì phím nào có mức ưu tiên cao hơn thì có được đáp ứng đầu ra tương ứng. Chân EI của 74LS148 cho phép tín hilệu vào, khi EI ở mức HIGH thì tất cả đầu ra ở mức không tích cực (HIGH) với mọi đầu vào. CHân EI ở mức LOW cho phép việc thực hiện mã hoá tuỳ theo đầu vào mà có đầu ra tương ứng. Chân EO bình thưòng không có tích cực đầu vào thì ở mức thấp, khi có tín hiệu vào thì nhảy giá trị lên mức cao. Chân GS bình thưòng không có tích cực đầu vào thì ở mức cao, khi có tín hiệu vào thì nhảy về mức thấp. Do đó ta dùng hia chân EO hay GS này để gây ngắt cho vi điều khiển Sau đây là bảng chân lý của 74LS148: EI 0 1 2 3 4 5 6 7 GS A0 A1 A2 EO 1 X X X X X X X X 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 X X X X X X X 0 0 0 0 0 1 0 X X X X X X 0 1 0 0 0 1 1 0 X X X X X 0 1 1 0 0 1 0 1 0 X X X X 0 1 1 1 0 0 1 1 1 0 X X X 0 1 1 1 1 0 1 0 0 1 0 X X 0 1 1 1 1 1 0 1 0 1 1 0 X 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 Trong đồ án này chỉ dùng 4 phím và sơ đồ ghép nối như sau: Bốn đầu vào được sử dụng là I1, I2, I3, I4. Đầu ra tương ứng là A0, A1, A2 được nối vào chân PD6..PD4 của vi xử lý. Chân GS dùng làm tín hiệu ngắt 1 báo cho vi xử lý biết có phím nhấn. Hình 6: Sơ đồ nguyên lý mạch bàn phím 3.2 Mạch đối thoại LCD: LCD (Liquid Crystal Display) là loại màn hình hiển thị thông tin tốn ít năng lượng. Hiện nay có rất nhiều loại LCD với chất lượng cũng như chủng loại rất phong phú. Như về kích thước 1x8, 2x16, 2x20, 4x20…và độ phân giải của những LCD này thường là 5x7dots hay 5x10 dots.LCD được gắn lên mạch in với bộ tạo ký tự và một hệ điều khiển, giao thức điều khiển tương thích với chuẩn TTL Sau đây là sơ đồ ghép nối LCD: Hình 7: Sơ đồ ghép nối LCD LCD có hai chế độ truyền nhận dữ liệu đó là truyền nhận 8 bit và chế độ BCD 4 bit. LCD được sử dụng trong đồ án là loại 2x16 (2 dòng x 16 ký tự). Thông tin đưa vào LCD theo bus dữ liệu D0 – D7 (PortC của vi xử lý) tới chân 7 – 14 của LCD. Điều khiển hoạt động của LCD qua chân 3(E), 4(RS) còn chân 5 (R/W) thì nối xuống đất mặc định là luôn thực hiện ghi lệnh (R/W = 0: write to LCD, = 1read from LCD). Vậy ta luôn thự hiện việc ghi vào LCD modul, do đó không thực hiện được việc kiểm tra cờ bận của LCD, để làm việc này ta dùng trễ khi viết lệnh để vượt qua trạng thái bận này. Chân cho phép Enable link (E): Đây là tín hiệu điều khiển chính mà được đưa ra trong toàn bộ quá trình điều khiển LCD. Tín hiệu này được tích cực ở mức logic cao theo sườn lên L-H-L. Dữ liệu được đưa vào khi E tích cực. Chân RS dùng để thực hiện việc ghi lệnh hay ghi dữ liệu của LCD. Các bước thực hiện để điều khiển hoạt động của LCD: khởi tạo, đặt vị trí con trỏ, chế độ hiển thị (5x7, hay 5x10 dots), chọn ký tự cần được hiển thị, vượt qua trạng thái bận của LCD. Sau đây là bảng mã lệnh điều khiển của LCD: Command Binary Hex D7 D6 D5 D4 D3 D2 D1 D0 Clear display 0 0 0 0 0 0 0 1 01 Currsor home 0 0 0 0 0 0 1 x 01 or 02 Entry Mode Set 0 0 0 0 0 1 I/D S 04 to 07 Display on/off Control 0 0 0 0 1 D C B 08 to 0F Display/currsor Shift 0 0 0 1 S/C R/L x x 10 to 1F Function Set 0 0 1 8/4 2/1 10/7 x x 20 to 3F I/D: = 0 Increment, = 1 Decrement S: = 0 No display shift, = 1 Display shift D : = 0 Display off, = 1Display on C: = 0 Currsor off, = 1 Currsor on B : = 0 Currsor blink off, = 1 On S/C := 0 Move currsor, = 1 Shift dispay R/L: = 0 Shift left, = 1 Shift right 8/4: = 0 4-Bit interface, = 1 8-Bit interface 2/1: = 0 1/8- duty (1 Line) 10/7: = 0 5x7 dots = 1 1/16-duty(2 Line) = 1 5x10 dots. 3.3 Mạch RTC DS12887 (Real Time Clock) : Ds12887 có thể thay thế cho đồng hồ lịch trong máy tính IBM. Chân của nó tương thích với DS1287 và MC146818B. Dữ liệu hoàn toàn không bị mất đi khi không cấp nguồn trong hơn 10 năm. Bản thân DS 12887 có chứa một số thành phần phụ: tự cập nhật ngày, giờ, phút, giây. Bên trong của nó có sẵn Lithium,quartz, và các mạch hỗ trợ. Thời gian, lịch, đồng hồ được biểu diễn ở dạng nhị phân hay BCD. Có chế độ đặt 24 giờ hay 12giờ có AM và PM. Giao diện với phần mềm có 128 byte RAM trong đó có 14 byte dùng cho thanh ghi điều khiển và đồng hồ, còn 114 byte dành cho người sử dụng. Có 3 nguồn ngắt che được là: ngắt thời gian mỗi giây một lần hay một ngày một lần, ngắt theo khoảng thời gian 122 ms đến 500 ms, kết thúc chu kỳ cập nhật đồng hồ. Hoạt động của DS 12887: Thông thường khi không có nguồn cấp cho DS12887 thì nó sử dụng pin lithium có sẵn bên trong để nuôi NV-RAM. Do đó dữ liệu không bị mất. khi có nguồn bên ngoài cấp vào cho DS12887 (VCC ³ 4.25V) thì bên trong nó có mạch tự động phát hiện nguồn cấp và sau 200ms ta có thể truy cập vào thiết bị. Đây cũng chính là khoảng thời gian để cho ổn định hệ thống bên trong. Khi VCC < 4.25V thì không cho phép truy cập vào bên trong bộ nhớ của DS12887. Khi VCC < 3V thì việc update thời gian bên trong được sử dụng bởi Pin trong. Tín hiệu điều khiển AS (Adress strobe): khi có sườn xuống của tín hiệu này thì địa chỉ được chốt lại Tín hiệu DS (Data Strobe or Read input): Khi sử dung Bus Intel DS có tính năng như tín hiệu Read, nó có thể coi như tín hiệu Output Enable trong những bộ nhớ thông thường. Tín hiệu R/W ( Read / Write) thực hiện việc ghi vào RAM của DS12887 khi tích cực ở mức thấp. Thanh ghi điều khiển của DS1287 có 4 thanh ghi A, B, C, D điều khiển toàn bộ hoạt động của thiết bị. Thanh ghi A: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 UIP – (The Update In Progress): Đây là bit trạng thái có giá tri 1 khi đang update, bằng 0 khi không có sự update nào. Không bị tác động bởi việc reset. DV0,DV1,DV2: Khởi động cho bộ dao động bên trong RS0 ¸ RS3: Lựa chọn cho tần số hoạt động của chân SQW. Thanh ghi B: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 SET PIE AIE UIE SQWE DM 24/12 DSE SET – khi bằng 0 việc thực hiện update thông thường mỗi giây 1 lần. khi bit này bằng 1 không cho phép update thời gian, lịch của thiết bị. PIE – Cho phép ngắt periodic AIE – Cho phép ngắt alarm UIE – Cho phép ngắt khi update SQWE – Cho phép tạo ra xung vuông trên chân SQW DM – Data Mode chế độ dữ liệu binary hay BCD (1/0) 24/12 - Điều khiển chế độ 12 giờ hay 24 giờ. DSE – Day light saving Enable Lưu dữ liệu theo mùa. Thanh ghi C: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 IRQF PF AF UF 0 0 0 0 IRQF – Interrupt Request Flag Cho phép tất cả ngắt PF – Cho phép ngắt Periodic (bit này là Read only) AF – Cho phép ngắt Alarm (bit này là Read only) UF – Cho phép ngắt Update (bit này là Read only) Thanh ghi D: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 VRT 0 0 0 0 0 0 0 VRT – Valid RAM and time. Bit này luôn bằng 1, và không thể tác động bằng phần mềm. Bằng 0 khi hết Pin hay nội dung của RTC data và RAM có vấn đề. 3.4 Bộ nhớ ngoài Theo yêu cầu khi thiết kế rơle là phải ghi lại được các thông số để khi mất điện ta không phải đặt lại từ đầu ngoài ra còn ghi lại lịch sử sự cố đã xảy ra, vì vậy cần có bộ nhớ EEPROM ngoài. Trong đồ án này sử dụng bộ nhớ EEPROM 24C16 có dung lượng là 2k byte. Giao tiếp của bộ nhớ này với thiết bị bên ngoài là theo chuẩn I2C.Các bộ nhớ EEPROM nối tiếp được sử dụng khá phổ biến vì nhiều nguyên nhân. Ta có thể lưu trữ đến 64kbyte dữ liệu trong một vi mạch nhỏ 8 chân. Việc truyền thông chỉ cần hai đường dẫn tín hiệu. Các EEPROM này có thể ghi được đến 100,000 lần. Ngay cả khi thao tác ghi tốn mất 10ms thì bằng cách ghi toàn bộ trang đồng thời tốc độ ghi trung bình được cải thiện. Việc ghi 1 trang dữ liệu vào EEPROM cũng tốn một khoảng thời gian gần bằng việc ghi 1 byte. Địa chỉ của bộ nhớ này được xác định khi trong khung truyền sau khi phát hiện điều kiện Start Byte đầu tiên được truyền là địa chỉ thiết bị. Địa chỉ này được định nghĩa như sau: 1 0 1 0 A2 A1 A0 R/W Đối với EEPROM có AT24C01, AT24C02 thì A2, A1, A0 dùng làm địa chỉ thiết bị. Với 24C04 chân A0 không được sử dụng. Với 24C16 chân A0, A1, A2 không được sử dụng. Bộ nhớ EEPROM có một chân chống ghi WP (write protect) chân này có thể nối lên 5V để cấm bất kỳ thao tác ghi nào vào EEPROM. S Ghép nối với EEPROM 4 Khối truyền tin với máy tính Mức điện áp của mạch điện tuân theo chuẩn TTL (mức điên áp từ 0 – 5V) còn mức điện áp của máy tính từ 0 – 12V. Vậy để thực hiện được việc truyền tin giữa máy tính và mạch điều khiển bên ngoài ta phải thông qua mạch phối ghép chuẩn là RS232. Cổng RS232 là giao diện được dùng cho nhiều mục đích đo lường điều khiển và nhiều ứng dụng khác. Trong máy tính cổng RS232 thường là các cổng COM1, COM2. Việc truyền số liệu qua cổng RS232 được thực hiện truyền tin nối tiếp và truyền theo kiểu Point to Point tức là trao đổi trực tiếp giữa hai thiết bị, không tạ thành mạng thông tin được. Các thông số kỹ thuật của RS232: Tốc độ truyền tin tối đa 20 kbps Khoảng cách truyền cực đại 15m Mức logic 1 : -3V ¸ -25V Mức logic 0 : +3V ¸ +25 V Tín hiệu ồn cho phép 2V Các đầu nối thường dùng trong truyền tin RS232 là DB9, DB25. Tốc độ truyền nối tiếp (tốc độ baud) có thể là 300, 600, 1200, 4800, 9600, 19200. Tốc độ hay dùng là 9600 baud. Để chuyển mức tín hiệu TTL thành mức tương thích với RS232 ở mạch bên ngoài ta sử dụng vi mạch được chế tạo bởi hãng Maxim đó là max232. Hai loại cổng hay dùng trong truyền thông nối tiếp Hình 7: Sơ đồ khối max232 và Sơ dồ ghép nối 5 Khối điều khiển tiếp điểm. Khi sự cố tần số được phát hiện Rơle sẽ thực hiện việc đóng cắt các máy cắt sa thải tải để ổn định tần số thông qua việc đóng cắt rơle tiếp điểm trung gian có nguồn nuôi 12V. Vì Rơle số sa thải tải tần số này điều khiển 4 lộ tải do đó cần có 4 rơle tiếp điểm trung gian. Việc đóng cắt rơle trung gian này thông qua vi mạch ULN 2803.ULN 2803 là một dãy 8 transitor mắc theo kiểu Darlington chịu dòng và áp cao. được sử dụng để kết nối giữa những mạch số có mức logic thấp(như là các mức TTL, CMOS, PMOS/NMOS) với những mạch đòi hỏi điện áp, dòng cao hơn như là đèn, rơle, hay các tải tương tự trong các ứng dụng. Tất cả họ ULN280X đều có đặc tính đầu ra hở colector, có diode bảo vệ. Nó có khả năng chịu dòng khoảng 500mA, điện áp ra lớn nhất khoảng 50 Vôn, điện áp vào tối đa cỡ 30 Von. ULN2803 được thiết kế cho phù hợp với mức TTL trong khi ULN2804 được thiết kế chuẩn cho các mức từ 6 đến 15 vôn của CMOS hay PMOS. Sơ đồ chân nối bên trong của vi mạch này như sau: Từ cấu trúc của vi mạch UNL như trên nên xây dựng được sơ đồ mạch điều khiển máy cắt thông qua rơle tiếp điểm như sau: Hình 8: Sơ đồ cắt cho 1 lộ 6 Khối nguồn nuôi. Các nguồn áp được sử dụng trong mạch là ± 12V, ± 5V. Do đó cần thiết phải có mạch tạo nguồn để các linh kiện trong mạch hoạt động được. Mạch taok nguồn áp này sử dụng IC ổn áp LM7805, LM7812, LM7905, LM7912. Hình 9: Sơ đồ nguồn nuôi CHƯƠNG IV MODUL PHẦN MỀM VÀ LƯU ĐỒ THUẬT TOÁN I)Giới thiệu chung . Rơle số được thiết kế dựa trên các modul phần cứng riêng biệt .Mỗi một modul thực hiện một chức năng riêng và chúng thực hiện nhịp nhàng với nhau theo các thuật toán đã định sẵn. Với việc khai thác triệt để các chức năng ngắt của vi điều khiển AVR , toàn bộ phần mềm của Rơle được chia ra thành 5 modul ngắt .Các modul này hoạt động và xử lý riêng biệt nên đảm bảo tính năng thời gian thực cho rơle.Các modul ngắt này gồm : -Ngắt ngoài 0 dùng để đo tần số lưới điện. -Ngắt ngoài 1 dùng để ghép nối với bàn phím. -Ngắt do tràn timer0 dùng để hiển thị tần số và điện áp. -Ngắt do tràn timer2 dùng để định thời gian cắt cho rơle. -Ngắt truyền thông nối tiếp dùng để ghép nối với PC. Các modul này tuy hoạt động riêng biệt nhưng chúng đều tác động lên các cờ trạng thái chung của chương trình và giúp cho rơle hoạt động một cách an toàn chính xác. Phần tiếp sau đây sẽ đi sâu cụ thể vào các modul riêng. II)Lưu đồ thuật toán của chương trình. 1)Lưu đồ sau khi reset Sau khi reset vi điều khiển khởi tạo các cổng theo hướng định trước.Tiếp theo là cài đặt tham số cho các timer , các ngắt bên ngoài ,ngắt truyền thông….Kết thúc việc khởi tạo ,vi điều khiển sẽ đợi ngắt và thực thi các chương trình phục vụ ngắt . main -Khởi tạo phần cứng cho LCD -Khởi tạo Timer0 -Khởi tạo Timer2 -Khởi tạo ngắt ngoài 0 -Khởi tạo ngắt ngoài 1 -Khởi tạo cổng truyền tin -Cài đặt giá trị cho các tham số . Đợi ngắt 2)Lưu đồ đo tần số Ngắt ngoài 0 T1_run? -Timer1 dừng -Đọc dữ liệu từ Timer1 cất vào SRAM -Timer1 bắt đầu chạy -T1_run =1 Reti Đ S -Tính toán -Canh tần -Reclose -T1_run=0 Để đo tần số ,trong thiết kế này sử dụng phương pháp đo chu kỳ .Tức là đếm số xung trong hai lần chuyển trạng thái từ thấp lên cao của tín hiệu hình sin.Sau khi đo chu kỳ ta sẽ thu được tần số và gọi chương trình canh đo tần số. 3)Lưu đồ thuật toán xử lý bàn phím . Bàn phím là thiết bị dung để lập trình các thông số cho rơle một cách trực tiếp . Bàn phím gồm 4 phím là : Function, increment,decrement, enter.Trong đó phím Function thực hiện các chức năng sau: Func Chức năng Func1 Stop rơle :rơle không điều khiển máy cắt Func2 Cài đặt thông số cho lộ 1 Func3 Cài đặt thông số cho lộ 2 Func4 Cài đặt thông số cho lộ 3 Func5 Cài đặt thông số cho lộ 4 Func6 Chọn chức năng có reclose hay không Cài đặt các thông số cho rơle bao gồm : đặt các tần số ngưỡng fn, đặt các thời gian cắt T_totrip, đặt các mức ưu tiên cho từng lộ. a) Lưu đồ phím chung. Ngắt phím Key=func Gọi chương trình phục vụ phím func Key=inc Gọi chương trình phục vụ phím inc Key=dec Gọi chương trình phục vụ phím dec Key=enter Gọi chương trình phục vụ phím enter reti Đ Đ Đ Đ S S S S b)Lưu đồ phím Function Phím này có tác dụng chọn các chức năng như : stop rơle, cài đặt các tham số cho các lộ ,lựa chọn thuộc tính reclose. để xác định chức năng nào được chọn ta dùng cờ var_func,giá trị của cờ này cho ta chức năng tương ứng. func ret V_func=1 Gọi chức năng stop rơle V_func=3 Setting lộ 2 V_func=4 Setting lộ 3 V_func=5 Setting lộ 4 V_func=2 Setting lộ 1 V_func=6 reclose Đ Đ Đ Đ Đ Đ S S S S S S c)Lưu đồ xử lý phím increment và decrement inc ret V_func=1 phục vụ lựa chọn yes hoặc no stop rơle V_func=3 chọn tần số hay t_trip2,tăng giảm giá trị vừa chọn V_func=4 chọn tần số hay t_trip3,tăng giảm giá trị vừa chọn V_func=2 chọn tần số hay t_trip1,tăng giảm giá trị vừa chọn V_func=5 chọn tần số hay t_trip4,tăng giảm giá trị vừa chọn V_func=6 Lựa chọn Yes hoặc No chức năng reclose Đ Đ Đ Đ Đ Đ S S S S S S d)Lưu đồ phím Enter Trong khi thiết lập các thông số cho rơle thì phím enter có tính chất quyết định là ghi nhận sự thay đổi của người lập trình lên các tham số hoạt động. enter ret V_func=1 Thực hiện chức năng stop rơle V_func=3 Ghi vào SRAM Các giá trị tần số đặt1 và T_trip1 V_func=4 Ghi vào SRAM Các giá trị tần số đặt1 và T_trip1 V_func=2 Ghi vào SRAM Các giá trị tần số đặt1 và T_trip1 V_func=5 Ghi vào SRAM Các giá trị tần số đặt1 và T_trip1 V_func=6 Ghi vào SRAM Lựa chọn reclose Đ Đ Đ Đ Đ Đ S S S S S S 4)Lưu đồ thuật toán hiển thị giá trị điện áp và tần số Đây là chức năng hiển thị giá trị tần số và điện áp sau thời gian 500ms.Thời gian này được tính bằng số lần tràn timer0.Trong chương trình phục vụ ngắt tràn dữ liệu về tần số và điện áp đã ghi trong SRAM được đem ra để biến đổi ,tính toán,sau đó hiển thị trên LCD.Trong lưu đồ này ta đặt trước giá trị cho Timer0 để sau 10mS nó sẽ tràn Timer0 Inc dem Dem= 50 -Rcall display -Dem=0 reti 5)Lưu đồ canh tần số và reclose Canh tần số và reclose là hai chương trình con nằm trong ngắt ngoài 0. Đây là hai chương trình quan trọng , quyết định tới đặc tính đóng mở của rơle. Trong chương trình canh tần số ,tần số thu được sau khi ra khỏi chương trình tính toán sẽ được đem so sánh với các tần số đặt ,nếu phát hiện tần số đầu vào nhỏ hơn tần số đặt ở lộ nào thì chương trình sẽ dựng một cờ để thông báo, đồng thời sẽ kích hoạt Timer2 chạy .Chương trình sẽ điều khiển cắt máy cắt sau một khoảng thời gian bằng thời gian T_trip mà người lập trình rơle đặt.Như vậy các lộ mà có sự cố sẽ được cách ly khỏi lưới điện một cách nhanh chóng.Nhưng các lộ không có sự cố vẫn bị cách ly khỏi lưới điện ,bởi tần số ngưỡng đặt cho lộ đó lớn hơn tần số thu được .Mặt khác các sự cố có thể xảy ra trong một khoảng thời gian ngắn ,sau đó kết thúc.Lộ bị lỗi lại trở về trạng thái hoạt động bình thường .Vì vậy việc đóng lại các lộ không bị lỗi và các lộ trở về từ trạng thái lỗi trong một thời gian ngắn là việc hết sức quan trọng của rơle. Cho nên chương trình reclose sẽ được cài đặt vào phần mềm của rơle. Chương trình con reclose sẽ được thực thi khi mà tần số đo được không nhỏ hơn tần số đặt của bất kỳ lộ nào.Nó sẽ kiểm tra xem lộ nào đã bị cắt ra khỏi lưới điện và sẽ đóng lộ đó lại ,nếu việc đóng lại gây ra lỗi tần số thì rơle sẽ cắt lộ đó ra khỏi lưới.Việc đóng lại này chỉ thực thi lặp lại trong 3 lần,nếu quá ba lần mà vẫn lỗi thì rơle sẽ cắt hẳn lộ này ra khỏi lưới điện.Việc đóng lại lộ này sẽ được tiến hành bằng bàn phím hoặc bằng phần mềm trên máy tính . Để thực hiện thời gian T_totrip ta dung timer2.Timer2 sẽ được cài đặt để cứ sau khoảng thời gian 10ms sẽ tràn một lần .Chương trình con phục vụ ngắt tràn sẽ tăng một biến dem_trip ,biến này sẽ được so sánh với các T_totrip của các lộ.Nếu thấy lộ nào có thời gian đặt bằng với dem_trip thì chương trình con phục vụ cắt sẽ được thực thi. T2 overflow Dem_trip = T_totrip? -Tăng dem_trip -Đặt thông số cho T2 F =error? -Cắt rơle -Đặt lại các cờ hồi phục Reti Đ Đ S S 6)Lưu đồ truyền tin với máy tính. Việc kết nối với máy tính cho phép người sử dụng đặt các thông số cho rơle một cách dễ dàng.Ngoài việc đặt thông số cho rơle ,người sử dụng còn có thể truy nhập vào rơle để theo dõi các sự cố đã xảy ra hoặc theo dõi ngay tức thời giá trị điện áp và tần số. Khung bản tin truyền từ máy tính xuống rơle bao gồm :mã lệnh +nội dung+kết thúc. Khi gặp mã lệnh hợp lệ ,rơle sẽ gọi chương trình con phục vụ lệnh đó.Việc thực hiện này thông qua ngắt truyền tin.Các mã lệnh bao gồm: “A” : Mã cài đặt tham số cho các lộ. “H” : Đọc lịch sử sự cố từ EEPROM “P” : Đọc các thông số hiện tại của rơle Sau đây là lưu đồ thuật toán. Receive Recei_flag = 1 Yes No Buff = “A” Buff = “H” Buff = “P” Reti Rcall Setting Recei_flag = 1 Rcall Send_his Recei_flag =0 Rcall Send_para Recei_flag = 0 Yes Yes Yes No No No CHƯƠNG VI: ĐÁNH GIÁ THIẾT BỊ I)Đánh giá sai số của thiết bị. 1)Phần đo điện áp. Sai số mạch tương tự gây nên cho phần đo điện áp bao gồm: 1) Biến áp và mạch khuyếch đại. Biến áp: biến đổi điện áp từ 220à 12V,biên độ đầu ra có thể không ổn định do các cuộn dây sơ cấp và thứ cấp bị nóng.Mặt khác độ tuyến tính của máy biến áp cũng ảnh tới trị số đầu ra. Mạch khuyếch đại:hệ số khuyếch đại có thể bị biến đổi khi hoạt động vì các do các trở đầu vào bị đốt nóng. bằng thực nghiệm đo được sai số của phần này bằng 0,3% àbiện pháp khắc phục: dùng các máy biến áp có dải rộng và độ tuyến tính cao.Trước khi đưa máy vào làm việc cần hiệu chỉnh bằng cách thay đổi giá trị của điện áp đầu vào ADC thông qua biến trở 10K . Các dây cáp nối từ mạch đo tới ADC cần phải được chống nhiễu bằng cách bọc kim .Dùng tụ lọc san phẳng có trị số thích hợp để san phẳng điện áp sau chỉnh lưu .Nhưng tụ lọc này không được lớn quá ,vì nếu lớn quá thì độ tích điện tăng,khi đầu vào thay đổi thì đầu ra chưa kịp thay đổi theo. 2)Sai số do mạch số. -Sai số do ADC bằng 3 bước lượng tử .ADC là 10bit nên sai số bằng 3/1024=0,29% -Sai số do nhiễu bên ngoài = 0,1% èNhư vậy tổng sai số gây nên cho phần đo điện áp là : 0,1+0,29+0,3 ≈0,7% 2)Phần đo tần số . Sai số chủ yếu gây ra cho phần đo tần số là nhiễu bên ngoài .Bằng các bộ lọc tích cực ta có thể hạn chế được nhiễu này . Mặt khác phần tính tần số còn gây ra sai số do phép chia 16bit ,nhưng nếu ta chỉ lấy hai số sau dấu phảy thì có thể coi sai số này bằng 0. II) Đánh giá thiết bị. Rơle số được chế tạo dùng vi điều khiển AVR 90s8535 của hãng ATMEL,với ưu điểm là tốc độ rất nhanh so với một số loại vi điều khiển khác nên khả năng phát hiện và xử lý sự cố được đảm bảo an toàn và tương đối chính xác.Giảm thời gian tính toán các phép toán . Rơle có thể thực hiện các công việc: -Đo điện áp lưới điện. -Đo tần sô lưới điện . -Canh tần số ,cắt các lộ xảy ra sự cố và đóng lại khi không còn sự cố . -Có thể lập trình các mức bảo vệ ,mức ưu tiên thông qua bàn phím và máy tính. Hạn chế của thiết bị: Do thiết bị được thiết kế và chế tạo trong khoảng thời gian ngắn nên chưa được hoàn chỉnh.Còn thiếu một số chức năng: -Đo dòng ,và bảo vệ dòng điện. -Dải điện áp vào không thể thay đổi được. -Chưa tích hợp mạch nạp cho vi điều khiển nên chưa tận dụng được ưu điểm của vi điều khiển là lập trình online . KẾT LUẬN Bằng sự cố gắng miệt mài cùng với sự hướng dẫn chỉ bảo tận tình của Ths. Nguyễn Tuấn Ninh chúng em đã thiết kế rơle số bảo vệ và sa thải theo tần số.Bước đầu đi vào thử nghiệm rơle chạy tốt , đảm bảo được một số chức năng theo yêu cầu như :canh tần , đóng lại…Tuy nhiên đây là thiết kế đầu tay nên không tránh khỏi thiếu xót. Trong thời gian tới ,chúng em sẽ cố gắng hoàn chỉnh các tính năng và khắc phục các thiếu xót để rơle hoạt động ổn định và tốt hơn.Hy vọng thiết kế của mình sẽ được ứng dụng rộng rãi trong thực tế và sẽ đóng góp một phần vào việc thay thế các rơle nhập ngoại,tiết kiệm kinh phí của cho điện lực Việt Nam . Để từ đó giảm giá thành cho người sử dụng điện và chất lượng phục vụ sẽ tốt hơn. TÀI LIỆU THAM KHẢO 1)Cơ sở kỹ thuật điện Nguyễn Bình Thành 2)Kỹ thuật điện tử số Tài liệu của bộ môn Đo Lường &Tin Học 3)Bộ khuyếch đại xử lý và IC tuyến tính William D.Stanley Người dịch Trịnh Trung Thành Nguyễn Hữu Ngọc Đặng Văn Sử 4)Rơle số lý thuyết và ứng dung TS.Nguyễn Hồng Thái KS.Nguyễn Văn Tẩm 5)Các trang Web tham khảo - www.avrproject.com - www.atmel.com - www.maxim.com

Các file đính kèm theo tài liệu này:

  • docA9000.DOC