LỜI NÓI ĐẦU .5
CHƯƠNG I: YÊU CẦU VÀ MỤC TIÊU CỦA ĐỀ TÀI .6
1.1 Phân tích yêu cầu của đề tài .6
1.2 Mục tiêu của đề tài 6
1.3 Nội dung của đề tài .7
1.4 Ý nghĩa của đề tài. 7
CHƯƠNG II: TỔNG QUAN VỀ CHUYỂN ĐỔI ĐIỆN ÁP 8
2.1 Giới thiệu thiết bị chuyển đổi điện áp .8
2.2 Chuyển đổi AC - AC .8
2.2.1 Giới thiệu về máy biến áp .9
2.2.2 Nguyên lý hoạt động của máy biến áp .10
2.2.3 Các đại lượng đặc trưng của máy biến áp .11
2.2.4 Phân loại và ứng dụng của máy biến áp 12
2.3 Chuyển đổi AC - DC .13
2.3.1 Mạch chỉnh lưu nưa sóng .13
2.3.2 Chỉnh lưu 2 nửa chu kỳ .14
2.4 Chuyển đổi DC - AC .14
CHƯƠNG III: HỆ THỐNG NGHỊCH LƯU 15
3.1 Tổng quan về hệ thống INVERTER 15
3.2 Tổng quan về hện thông nghịch lưu .15
3.2.1 Nghịch lưu phụ thuộc 15
3.2.2 Nghịch lưu độc lập 15
3.2.2.1 Nghịch lưu song song và nối tiếp .16
3.2.2.2 Nghịch lưu nguồn áp và nguồn dòng .18
3.3 Các loại nghịch lưu có trên thị trường .19
3.3.1 Nghịch lưu sóng vuông .19
3.3.2 Nghịch lưu sóng vuông kết hợp với bộ lọc LC .21
3.3.3 Nghịch lưu sử dụng nhiều cấp điện áp một chiểu .22
CHƯƠNG IV: THIẾT KẾ VÀ THI CÔNG BỘ NGHỊCH LƯU TỪ
12VDC SANG 220VAC/ 500W .25
4.1 Sơ đồ khối của bộ nghịch lưu 25
4.1.1 Sơ đồ khối .25
4.1.2 Chức năng các khối 25
4.2 Các linh kiện sử dụng trong bộ nghịch lưu . 27
4.2.1 Vi điều khiển Atmega16 .27
4.2.1.1 Giới thiệu tổng quan .27
4.2.1.2 Chức năng của Atmega 16 28
4.2.1.3 Một số modul của Atmega16 30
4.2.2 Giới thiệu màn hình hiển thị LCD . 46
4.2.2.1 Hoạt dộng lCD . 46
4.2.2.2 Chức năng các chân của LCD 46
4.2.3 IC ổn áp 7805 . 49
4.2.4 IRF 3205 .49
4.2.5 Diode . 50
4.2.6 Transistor 52
4.2.7 Điện trở . 53
4.2.8 Tụ điện 54
4.3 Thiết kế và thi công .55
4.3.1 Sơ đồ mạch nguyên lý, mạch in các khối 55
4.3.1.1 Sơ đồ mạch nguyên lý 55
4.3.1.2 Sơ đồ mạch in .61
4.3.2 Lưu đồ thuật toán sử lý của bộ nghịch lưu .64
4.3.2.1 Lưu đồ chương trình chính 64
4.3.2.2 Lưu đồ chương trình phím ấn 65
4.3.2.3 Lưu đồ chương trình dừng .66
4.3.2.4 Lưu đồ chương trình nghịch lưu 66
4.3.2.5 Lưu đô chương trình nạp 67
4.3.3 Nguyên lý hoạt dộng của bộ nghịch lưu .67
4.3.4 Chương trình điều khiển .69
CHƯƠNG V: KẾT LUẬN .89
TÀI LIỆU THAM KHẢO: .
89 trang |
Chia sẻ: lethao | Lượt xem: 12881 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế và thi công bộ nghich lưu 12vVDC sang 220VAC, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
- Tai – L2 – Q3B – 0V.
Với tín hiệu h3 thực hiện cho dòng điện chạy từ
310V – Q5A – L1 - Tai – L2 – Q5B – 0V.
Với tín hiệu l1 thực hiện cho dòng điện chạy từ
98V – Q2A – L1 - Tai – L2 – Q2B – 0V.
Với tín hiệu l2 thực hiện cho dòng điện chạy từ
230V – Q4A – L1 - Tai – L2 – Q4B – 0V.
Với tín hiệu l3 thực hiện cho dòng điện chạy từ
310V – Q6A – L1 - Tai – L2 – Q6B – 0V.
Với càng nhiều cấp điện áp, các bậc thang càng bé lại, chất lượng dong điện càng được càng được nâng cao hơn, hiệu suất cũng tăng lên. Đến khi đạt mức lý tưởng với n cấp điện áp ( n → ∞) thì dòng điện sẽ là hình sin. Nhưng rất khó để thực hiện được điều đó. Vì càng tăng cấp điện áp thì tính phức tạp của mạch càng cao, Các tín hiệu điều khiển đòi hỏi tăng lên. Vì vậy các mức điện áp chỉ có thể tăng đến một giá trị nhất định.
Ưu Điểm:
Do sóng ra sau khi đã qua bộ lọc đã tương đối giống sóng sin vì vậy đã có khả năng chại các tải cảm như quat, máy bơm, các động cơ nhỏ.
Hiệu suất cao hơn so với 2 loại trước.
Nhược điểm:
Giá thành tương đối cao, mạch tương đối phức tạp đòi hỏi phải có kiến thức chác mới có thể tìm hiểu và thi công láp đặt được.
CHƯƠNG IV: THIẾT KẾ VÀ THI CÔNG BỘ
NGHỊCH LƯU TỪ 12 VDC SANG 220 VAC/ 500W
Sơ đồ khối của bộ nghịch lưu
Sơ đồ khối
Hiển thị
Phím ấn
Nguồng
Hồi tiếp
Bộ điều khiển trung tâm
Tải
Ắc quy
Chuyển
Mạch
Chuyển đổi
DC - AC
220 VAC
Điện lưới
Chức năng các khối
Nguồn
Tạo ra nguồn ổn áp 5 VDC cấp cho khối điều khiển trung tâm.
Hạn dòng từ ác quy để cấp cho khối chuyển mạch
Bộ điều khiển trung tâm.
Tạo dao động 50Hz đưa tới điều khiển khối chuyển đổi DC – AC
Kiểm tra các phím điều khiển và truyền dữ liệu cần hiển thị tới LCD ( giá trị điện áp của Ắc quy, giá trị điện áp cấp cho tải, giá trị điện áp nguồng điện khi nạp, chế độ hiện hành).
Mã hóa dữ liệu nhận về từ khối hồi tiếp.
Điều khiển khối chuyển mạch.
Khối Hiển thị và phím ấn
Khối thực hiện giao tiếp giữ bộ nghịch lưu và người sử dụng, khối này cho người sử dụng biết về các thông số đang hoạt động. Nhận các yêu cầu điều khiển của người dùng sau đó chuyền về bộ sủ lý trung tâm để thực hiện yêu cầu đó
Khối chuyển đổi DC – AC
Thực hiện chuyển đổi tín hiệu một chiều từ Ắc quy thành tín hiệu soay chiều, có tần số là tần số là tần số cấp tới từ bộ điều khiển chung tâm
Thực hiện lọc tín hiệu đầu ra.
Chuyển mạch
Thực hiện chuyển mạch bằng các Role để thực hiện thay đôi của các quá trình ( nghịch lưu hoặc nạp điện).
Khối hồi tiếp
Thực hiện lấy mẫu điện áp cấp cho tải và điện áp từ nguồn điện đưa về khối sử ly trung tâm.
Các linh kiện sử dụng trong bộ nghịch lưu
Vi điều khiển ATmega 16
Giới thiệu tổng quan
Giới thiệu AVR:
- Vi điều khiển AVR do hãng Atmel ( hoa kỳ ) sản xuất được giới thiệu lần đầu tiên năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny ( như At tiny 13, At tiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi , rồi đén dòng AVR ( chẳng hạn AT90S8535, AT90S8515…) co kích thước bộ nhớ vào loại trung bình và manh hơn là dòng Mega ( như ATmega 16, Atmega 32, ATmega 128…..) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với bộ ngoại vi đa dạng được tích hợpcả bộ LCD trên chip ( dòng LCD AVR). Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản giữa các đòng chính là cấu trúc ngoại vi, còn nhân thì vẫn như nhau
- ATmega16 là một lọai Vi điều khiển có nhìều tính năng đặc biệt thích hợp cho việc giải quyết những bài tóan điều khiển trên nền vi xử lý.+Các lọai vi điều khiển AVR rất phổ biến trên thị trừơng Việt Nam nên không khó khăn trong việc thay thế và sửa chữa hệ thống lúc cần.+Giá thành của dòng Vi Điều Khiển này khá phải chăng+Các phần mềm lập trình và mã nguồn mở có thể tìm kiếm khá dễ dàng trên mạng.Các thiết kế demo nhiều nên có nhiều gợi ý tốt cho người thiết kế hệ thống.- ATmega16 là vi điều khiển 8bit dựa trên kiến trúc RISC. Với khả năng thực hiện mỗi lệnh trong vong một chu kỳ xung clock, Atmega16 có thể đạt được tốc độ 1MIPS trên mỗi MHz( 1triệu lệnh/s/MHz),các lệnh được xử lý nhanh hơn,tiêu thụ năng lượng thấp.
Chức năng của ATmega 16
Hình 4.1 Sơ đồ chân Atmega 16
* Atmega16 có cấu trúc RISC với: +131 lệnh,hầu hết được thực thi trong 1 chu kì xung nhịp. +32x8 thanh ghi đa dụng +Full static operation +Tốc độ làm việc 16MPIS,với thạch anh 16MHz +Trong chip co 2 chuc nang ho tro go roi va lap trinh saon chuong trinh - Bộ nhớ: +16 KB ISP Flash với khả năng 10.000lần ghi/xóa +512Byte EEROM +1KB SRAM ngọai* Giao tiếp JTAG +Khả năng quét toàn diện theo chuẩn JTAG +Hỗ trợ khả năng gỡ rối +Hỗ trợ lập trình Flash,EEROM,fuse… +Lock bit qua giao tiếp JTAG* Ngọai vi: +2 timer/counter 8 bit với các mode :so sánh và chia tần số +1 timer/counter 16 bit với các mode:so sánh,chia tần số,capture,PWM +1 timer thời gian thực(Real time clock) với bộ dao động riêng biệt +4 kênh PWM(họăc nhiều hơn trong các VĐK khác thuộc họ này) +8 kênh biến đổi ADC 10bit +Hỗ trợ giao tiếp I2C +Bộ giao giao tiếp nối tiếp lập trình được USART +Giao tiếp SPI +Watch_dog timer với bộ dao động on-chip riêng biệt* Những thuộc tính đặc biệt: +Power On reset và Brown-out detection +chế độ hiệu chỉnh bộ sai số cho bộ dao động RC On-chip +Các chế độ ngắt ngòai và trong đa dạng +6 mode sleep:Idle,ADC noise reduction,tiết kiệm năng lượng,power-down, standby,extended standby
* I/O port: +32 chân I/O(Atmega16) và 21 chân I/O (Atmega8) lập trình được +vỏ 40 chaân (Atmega16) ,28 chân(Atmega8),64 chân(AT90can128);* Nguồn cấp: 2,7->5.5 V với ATmega16L 4.5->5.5V với ATmega16H* Tiêu hao năng lượng: +Khi họat động tiêu thụ dòng 1,1mA +Ở mode Idle tiêu thụ dòng 0.35mA +Ở chế độ Power_down tiêu thụ dòng nhỏ hơn 1uA
* Đây là những chức năng cơ bản thường thấy trong các Vi điều khiển AVR,ngòai ra trong các vi điều khiển khác thuộc dòng vi điều khiển này thì thường được hỗ trợ thêm những chức năng đặc biệt.Ví dụ AT90can128 hỗ trợ thêm bộ giao tiếp mạng Can bus on-chip
* Các phần mềm lập trình cho AVR: + AVRStuido (free), Code Vision. Các phần mềm này có hỗ trợ phần nạp và debug on chip + Ngoài ra có thể dùng chương trình nạp PonyProg2000, Winpic800...
Một số modul của Atmega 16
Cổng vào ra I/O
- Vi điều khiển ATmega16 có 32 đuờng vào ra chia làm bốn nhóm 8bit một. Các cổng vào ra của AVR là cổng vào ra 2 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 ( out put ). Tất cả các cổng vào ra của AVR đề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ố thong thường. Điều này có nghĩa là khi tat hay đổi hướng của 1 chân nào đó thì nó không ả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á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ở léo lên này hoat động.
- Điện trở kéo lên ( pull- up ): là 1 điện trở được dung khi thiết kế các mạch điện tử logic. Nó có 1 đầ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 1 mạch logic chức năng, Điện trở kéo lên có thể được nắp đặt tại các lối vào ra của các khôíi mạch logic để thiết lập mức logic 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 trở kếo lên cũng có thể nắp đặt tại các gaio diện giữa 2 khối mạch logic không cùng loại logic, đặc biệt là khi 2 khối mạch này được cấp nguồn khác nhau.
- Khi khảo sát các cổng như là các cổng vào ra số thong thường thì tính chất của các cổng ( Port A, PortB, PortC ) là tương tự nhau, nên ta chỉ cần lkhảo sát 1 cổng nào đó trong 3 cổng của vi điều khiển là đủ
- Mỗi 1 cổng vào ra của vi điều khiển được lien kết với 3 thanh ghi : PORTx, DDRx, PINx (ở đây x là thay thé cho A, B, C ). 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ẳmg hạn thiết lạp cổng thành lối vào có sử dụng điện trở pull-up… Sau đây là vai trò của 3 thanh ghi trên.
Thanh ghi DDRx
Đây là thanh ghi 8bit( ta có thể đọc và ghi ở các thanh ghi này) có tác dụng điều khiển hướng cổng PORTx( tức là cổng vào hay cổng ra). Nếu như một bit trong thanh ghi này được set thì bit tương ứng đó trên PORTx đuệoc định nghĩa như một cổng ra. Ngược lại nếu như bit đó không được set thi bit tương úng trên PORTx được định nghĩa là cổng vào
Thanh ghi PORTx
Đây cũng là thanh ghi 8bit ( các bit có thể đọc và được ghi) nó là thanh ghi dữ liệu của cổng Px và trong trường hợp nếu cổng được định nghĩa là cổng ra thì khi tag hi một môtl bit lên thanh ghi này thì chân tương ứng trên port đó cùng có mức logic. Trong trường hợp đó mà cổng được định nghĩa là cổng vào thì thanh ghi này mang dữ liệu điều khiển cổng. Cụ thể là nếu bit nào đó của thanh ghi này được set (đưa lên mức 1 ) thì điện trở kéo lên pull up của chân tương ứng của port đó sẽ được kích hoạt. Ngược lại nó sẽ ở trạng thái. Thanh ghi này sau khi khởi động Vi điều khiển sẽ có giá trị là 0x00
Thanh ghi PINx
Đây là thanh ghi 8bit chứa dữ liệu vào của PORTx ( trong trường hợp PORTx được thiết lập là cổng vào) và nó chỉ có thể đọc mà không ghi vào được
Bộ nhớ AVR ATmega16
- AVR có 2 không gian bộ nhớ chính là bộ nhớ dữ liệu vào bộ nhớ chương trình. Ngoài ra ATmega16 còn có them bộ nhớ EEPROM để lưu trữ dữ liệu
Bộ nhớ chương trình( bộ nhớ Flash)
bộ nhớ Flash 16Kb của ATmega16 dùng để lưu trữ chương trình. Do các lẹnh của AVR có độ dài 16 hoặc 32 bit nên bộ nhớ Flash được sắp xếp théo kiểu 8Kx16. Bộ nhớ Flash được chia làm 2 phần, phần dành cho chương trình boot và phần dành cho chương trinh ứng dụng
Bộ nhớ dữ liệu SRAM
1120 ô nhớ dữ liệu đinh địa chỉ cho file thanh ghi, bộ nhớ I/O và bộ nhớ dữ liệu SRAM nội. Trong đó 96 ô nhớ đầu tiên định địa chỉ cho file thanh ghi và bộ nhớ I/O và 1024 ô nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội
Hình 4.2 Cấu trúc bộ nhớ
Bộ nhớ dữ liệu EEPROM
Đây là bộ nhớ dữ liệu có thể ghi xoá ngay trong lúc vi điều khiẻn hoạt động và không bị mất dữ liệu khi nguồn điện cung cấp bị mất. Có thể
ví bộ nhớ dữ liệu EEPROM giống như ổ cứng của máy tính. Với vi điều khiển ATmega16 chứa bộ nhớ dữ liệu EEPROM dung lượng 512byte, và được sắp xếp theo từng byte, cho phép các thao tác đọc/ ghi từng byte một . EEPROM được xem như là 1 bộ nhớ vào ra được đánh địa chỉ độc lập với SRAM , điều này có nghĩa ta cần sử dụng 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 EERA được kết hợp từ 2 thanh ghi 8 bit là EEARH và thanh ghi EEARL.
Thanh ghi EECR
Đây là thanh ghi điều khiển EEPROM, ta chỉ sử dụng 4 bit đầu chảu thanh ghi này,4 bit cuối là dự trữ. Sau đây là chức năng của từng bit.
Bit 3- EERIE : EEPROM ( Ready Interrup 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 dược cho phép ( bằng cách set bit 1 trong thanh ghi SREG lên 1) thì EEPROM sẽ tạo ra 1 ngắt với CPU khi bit EEWE được xoá, điều này có nghĩa là khi các ngắt được cho phép ( bit 1 trong thanh ghi SREG và bit EERIE tronh thanh ghi EECR được set thành 1) với quá trình ghi vào ROM vừa xong thì sẽ tạo ra 1 ngắt với CPU , chương trình sẽ nháy với vectơ ngắt có địa chỉ là 002C để thực hiện 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 dượ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 xoá bởi phần cứng sau 4 chu kỳ máy.
Bit1- EEWE : EEPROM (Write Enable ) Bit này vừa đong vai trò như 1 bit cờ, vừa là bit điều khiển việc ghi dữ liệu vào EEPROM. Ở vai trò của 1 bit điều khiển nếu bit EEMWE đã được set lên 1 thì khi ta set bit EEWE lên 1 thì 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 1 bit cờ khi quá trình ghi dữ liệu vào EEPROM hoàn tất , phần cứng sẽ tự động xoá bit này về 0. Trước khi dữ liệu vào EEPROM ta cần phải biết chắc là khong có qú 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. Để ý là sau khi quá trình đọc dữ liẹu từ EEPROM hoàn tất, bit EERE sẽ được tự động xoá bởi phần cứng. Nếu EEPROM đ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:
+ Chờ cho bit EEWE về 0
+ Cấm tất cả các ngắt
+ Ghi địa chỉ vào thanh ghi EEAR
+ Ghi dữ liệu mà ta cần ghi vào EEPROM vào thanh ghi EEDR
+ Set bit EEMWE thành 1
+ Set bit EEWE thành 1
+ Cho phép các ngắt trở lại
- Nếu 1 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ở lên không chính xác nếu trong vhươ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.
Đọ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: Chờ cho bit EEWE về 0. Ghi địa chỉ vào thanh ghi EEAR . Set bit EERE lên 1
Bộ Định thời (Timer/ Counter )
- là một modum định thời/đếm 8bit, có đặc điểm sau:
+ Bộ đếm một kênh.
+ Xoá bộ định thời khi trong mode so sánh( tự động nạp)
+ PWM
+ Tạo tần số
+ Bộ đếm sự kiẹn ngoài
+ Bộ chia tần 10 bit
+ Nguồn ngắt tràn bộ đếm và so sánh
- Các thanh ghi : TCNT0 và OCR0 là các thanh ghi 8 bit. Các tín hiệu yêu cầu ngắt đều nằm trong thanh ghi TIFR. Các ngắt có thể được che bởi thanh ghi TIMSK.
- Bộ định thời có thể sử dụng xung clock nội thong qua bộ chia hoặc xung clock ngoài trên chân T0. Khối chọn xung clock điều khiển việc bộ định thời/bộ đếm sẽ dung nguồn xung nào để tăng giá trị của nó. Ngõ ra của khối chọn xung clock được xem là xung clock của bộ định thời.
- Đơn vị đếm
- Phần chính của bộ định thời 8 bit là 1 đơn vị song hướng có thể lập trình được
Hình 4.3 Đơn vị đếm
Count: tăng hay giảm TCNT01.
Direction: lựa chọn giữa đếm lên và đếm xuống.
Clear: xoá thanh ghi TCNT0.
Clkto : xung clock của bộ định thời.
TOP: báo hiệu bộ định thời đã tăng đến giá trị lớn nhất.
BOTTOM: báo hiệu bộ đinh thời đã giảm đến giá trị nhỏ nhất(0).
* Đơn vị so sánh ngõ ra
Bộ sa sánh 8 bit lien tục so sánh giá trị TCNT0 với giá trị trong thanh ghi so sánh ngõ ra(OCR0). Khi giá trị TCNT0 băng với OCR0, bộ so sánh sẽ tạo một báo hiệu. Báo hiệu này sẽ đặt giá trị cờ so sánh ngõ ra (OCF0 ) lên 1 vào chu kỳ xung clock tiếp theo. Nếu được kích hoạt ( OCIE0=1 ), cờ OCF0 sẽ tạo ra 1 ngắt được thực thi. Cờ OCF0 cũng có thể được xoá bằng phần mềm.
Hình 4.4 Sơ đồ đơn vị so sánh ngõ ra
- Mô tả các thanh ghi
Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0
+ Bit 7- FOC0 : so sánh ngõ ra bắt buộc
Bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM. Khi đặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng song
+ Bit 6, 3- WGM01, WGM00 : chế độ tạo dang song
Các bit này điều khiển đếm thứ tự của bộ đếm, nguồn cho giá trị lón nhất của bộ đếm ( TOP ) và kiểu tạo dạng song sẽ được sử dụng.
+ Bit 5, 4- COM01, COM00 : chế độ báo hiệu so sánh ngõ ra
Các bit này điều khiển hoạt động của chân OC0. Nếu 1 hoặc cả 2 bit COM01 và COM00 được đặt lên 1, ngõ ra OC0 sẽ hoạt động.
+ Bit 2, 0- CS02, CS00 : chọn sung đồng hồ
Ba bit này dung để lựa chọn nguồn xung cho bộ định thời/ bộ đếm
Thanh ghi bộ định thời/ bô đếm
- Thanh ghi bộ định thời/ bộ đếm cho phép truy cập trực tiếp ( cả đọc và ghi) vào bộ đếm 8 bit
Thanh ghi so sánh ngõ ra- OCR0
- Thanh ghi này chứa 1 giá trị 8 bit và lien tục được so sánh với giá trị của bộ đém
- Thanh ghi mặt nạ ngắt
+ Bit 1- OCIE0: cho phép ngắt báo hiệu so sánh
+ Bit 0- TOIE0 :cho phép ngăt tràn bộ đếm
Thanh ghi cờ ngắt bộ định thời
+ Bit 1- OCF0 : cờ so sánh ngõ ra 0
+ Bit 0- TOV0 : cờ tràn bộ đếm
Bit TOV0 được đặt lên 1 khi bộ đếm bị tràn và đựoc xoá bởi phần cứng khi vectơ ngắt tương ứng được thực hiện . Bit này cũng có thể xoá bằng phần mềm.
Ngắt ( Interrup)
Khái niệm về ngắt :
Ngắt là sự kiện bên trong hay bên ngoài làm ngắt bộ vi điều khiển để báo cho nó biết rằng thiết bị cần dịch vụ của nó.
- Một bộ vi điều khiển có thể phục vụ một vài thiết bị, có 2 cách để thực hiện điều này đó là sử dụng các ngắt Interrup và thăm dò ( polling). Trong phương pháp sử dụng các ngắt thì mỗi khi có thiết bị bất kỳ cần đến dịch vụ của nó thì nó báo cho bộ vi điều khiển bằng cách gửi 1 tín hiệu ngắt. Khi nhận được tín hiệu ngắt thì bộ vi điều khiển ngắt tất cả những gì nó đang thực hiện để chuyển sang phục vụ thiết bị. Chương trình đi cùng ngắt được gọi là dịch vụ ngắt ISR hay còn gọi là chương trình quản lý ngắt. Còn trong phương pháp thăm dò thì bộ vi điều khiển hiển thị lien tục tình trạng của 1 thiết bị đã cho và điều khiển thỏa mãn thì nó phục vụ thiết bị. Sau đó chuyển sang hiển thị tình trạng của thiết bị kế tiếp cho đến khi tất cả đều được phục vụ
- Điểm mạnh của phương pháp ngắt là bộ vi điều khiển là phục vụ rất nhiều thiết bị( tất nhiên là không cùng tại một thời điểm.
Trình phục vụ ngắt
- Đối với mỗi ngắt thì phải có 1 trình phục vụ ngắt ISR hay trình ngắt. Khi 1 ngăt được gọi thì bộ vi điều khiển phục vụ ngắt. Đối với mỗi ngắt thì có 1 vị trí cố định trong bộ nhớ giữa địa chỉ ISR của nó. Nhóm các vị trí nhớ được dành riêng để gửi các địa chỉ của các ISR được gọi là bảng vectơ ngắt.
- Khi kích hoạt 1 ngắt bộ vi điều khiển đi qua các bước sau :
+ Vi điều khiển kết thúc lênh đang thực hiện và lưu trữ đia chỉ của lệnh kế tiếp ( PC ) vào ngăn xếp.
+ Nó nhảy đến 1 vị trí cố định trong bộ nhớ được gọi là bảng vectơ ngắt nơi lưu giữ địa chỉ của 1 trình phục vụ ngắt
+ Bộ vi điều khiển nhận địa chỉ ISR từ bảng vectơ ngắt và nhảy tới đó. Nó bắt đầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR và RETI ( trở về từ ngắt )
+ Khi thực hiện lệnh RETI bộ vi điều khiển quay trở về nơi nó đã bị ngắt. Trước hết nó nhận địa chỉ của bộ đếm chương trình PC từ ngăn xếp bằng cách kéo 2 byte trên đỉnh của ngăn xếp vào PC. Sau đó bắt đầu thực hiện các lệnh từ địa chỉ đó.
Bảng vectơ ngắt của Atmega 16
USART
-USART : Bộ truyền nhận nối tiếp đồng bộ và bất đồng bộ phổ dụng . Đây là khối chức năng dung cho việc truyền thong giữa vi điều khiển với các thiết bị khác. Trong vấn đè truyền dữ liệu só, có thể phân chia cách thức(method) truyền dữ liệu ra 2 chế độ mode cơ bản là : chế độ nhận Đồng Bộ (shynchronous) và chế độ nhận Bất đồng bộ (Asynchronous). Ngoài ra , nếu có góc độ phần cứng thì có thể phân chia theo cách khác đó là : Truyền nhận dữ liệu theo kiểu Nối Tiếp ( serial) và song song (paralen)
Truyền đồng bộ: là kiểu truyền dữ liệu trong đó bộ truyền (Transmitter) và bộ nhận(Receiver) sử dụng chung mọt xung đồng hồ (clock).Do đó hoạt động truyền và nhận dữ liệu diễn ra đồng thời. Xung clock có vai trò là tín hiệu đồng bộ cho hệ thống ( gồm khối truyền và khối nhận). Ưu điểm của kiểu ctuyền đồng bộ là tốc độ nhanh, thích hợp khi truyền dữ liệu khôí block).
Truyền bất đồng bộ : là kiểu truyền dữ liệu trong đó mỗi bộ truyền (transmitter) và bộ nhận (receiver) có tạo bộ xung (lock) riêng, tốc độ xung clock ở 2 khối này có thể khác nhau, nhưng thưòng khong quá 10%. Do không dung chung xung clock, nên để đồng bộ quá trình truyền và nhận dữ liệu, người ta phải truyền các bit đồng bộ (Start, stop,…) đi kèm với các bit dữ lieu. Các bộ truyền và bộ nhận sẽ dựa vào các bit đồn bộ này quyết định khi nào sẽ thực hiện hay kết thúc quá trình truyền hoặc nhận dữ liệu. Do đó, hệ thống truyền không đồng bộ còn được gọi là hệ thống truyền “ tự đồng bộ “
-Từ 2 kiểu truyền dữ liệu cơ bản trên,người ta dưa ra nhiều giao thức truyền khác nhau như : SPI (đồng bộ ), USRT (đồng bộ ), UART ( bất đồng bộ )
Hình 4.5 Sơ đồ khối bộ USART
- Sơ đồ khói bộ USART được chia làm ba phần chính
khối tạo xung
Bộ truyền
Bộ nhận
- Bộ tạo xung clock : có chức năng thiết lập tốc đọ Baud. Bộ truyền bao gồm 1 thanh ghi đệm và một thanh ghi dịch, việc ghi dữ liệu vào bộ đếm cho phép quá trình truyền lien tục mà khong có độ trẽ giữa các khung. Bộ nhận có cấu tạo phức tạpnó bao gồm việc kiểm tra chẵn lẻ, điều khiển logic, thanh ghi dich, đồng thới nó có 2 cấp độ trong bộ đếm nhận . Ngoài việc đinh dạng khung như bộ truyền thì bộ nhận có khả năng phát hiện lỗi khung, lỗi chẵn lẻ, lỗi tràn dữ liệu
Đơn vị tạo xung clock
Txclk : xung đồng hồ bộ truyền
Rxclk : xung đồng hồ bộ nhận
Xcki : tín hiệu vào từ chân
XCK, sử dụng cho truyền đồng bộ Master
XCKO : tín hiệu cung clock ngõ ra tới chân XCK, sử dụng cho hoạt động truyền đồng bộ slave
Fose: tần số tử chân XTAL
-Định dạng khung: Trong ché độ truyền không đồng bộ, khung dữ liệu truyền đi không có 1tín hiệu clock để đồng bộ hoá dữ liêu ( vì thế mà gọi là không đồng bộ) , quá trình đông bộ hoá giữa bộ thu và bộ phát được thực hiện nhờ các bit đồng bộ là start bit và stop bit . Một khung nối tiếp bao giờ cũng được đinh dạn theo thứ tự 1 start bit , các bit giữ liệu (data bit ) 1 bit pairty tuỳ chọn phục vụ lỗi kiếm lỗi và kết thúc bằng 1 hoặc 2 stop bit
Hình 4.6 Định dạng khung truyền
St : bit start ( mức thấp )
(n) : bit dữ liệu ( 0 đến 8 )
P: bit chẵn lẻ
Sp: bit stop ( mức cao )
IDLE : không có dữ liệu truyền ( mức cao trong suốt thời gian idle )
- USART chấp nhận các định dạng khung sau:1 start bit (luôn có mức logic thấp, gọi là space) .5, 6, 7, 8 hoặc 9 data bits.Không có, hoặc 1 bit parity chẵn/lẻ.1 hoặc 2 stop bit (luôn có mức lôgic cao, gọi là mark). - Quá trình truyền USART:Việc truyền dữ liệu nối tiếp ra ngoài thông qua chân TxD.Một quá trình truyền dữ liệu từ MCU đi được khởi tạo bằng việc viết dữ liệu vào thanh ghi đệm dữ liệu UDR, sau đó dữ liệu được chuyển tới thanh ghi dịch bộ phát khi thanh ghi dịch đã sẵn sàng truyền một byte mới. Các bit start và stop được bổ sung vào khung dữ liệu trong thanh ghi này với thiết đặt từ thanh ghi điều khiển bộ phát. Cũng như vậy bit thứ 9 (nếu có) có thể được thêm vào TXB8 trong thanh ghi UCSRB trước khi byte thấp của ký tự được viết vào UDR. Khi thanh ghi dịch dịch hết dữ liệu (đã được điều chế) ra thế giới bên ngoài thông qua chân TxD, nó sẽ sẵn sàng nhận dữ liệu mới nếu nó đang ở trạng thái rỗi hoặc ngay lập tức sau khi bit stop cuối cùng của khung trước đó được truyền đi. Lưu ý rằng dữ liệu được dịch ra ngoài với bit LSB trước, cuối cùng là MSB. - Quá trình nhận USART:Phần mềm cho phép thanh ghi dịch nhận dữ liệu nối tiếp từ thế giới bên ngoài thông qua chân RxD (PD0). Bộ thu bắt đầu tiếp nhận dữ liệu khi dò được một bit Start. Sau khi dò được bit Stop đầu tiên (end of the frame), dữ liệu được chuyển đến thanh ghi UDR (bộ đệm dữ liệu bộ thu) không có các Start và Stop bits theo dạng song song để vào CPU.
- USART có 5 thanh ghi
+ Thanh ghi vào/ra dữ liệu (UDR). Các thanh ghi đệm dữ liệu của bộ thu và bộ phát của USART cùng chia sẻ vùng địa chỉ I/O được tham chiếu là thanh ghi dữ liệu UDR. Khi viết vào UDR thì nó thể hiện như là một bộ đệm truyền, còn khi đọc dữ liệu từ UDR thì nó lại thể hiện như một bộ đệm nhận. Đối với các bit 5,6 và 7, các bit không dùng sẽ bị bỏ qua bởi bộ đệm truyền và được đọc là 0 bởi bộ đệm nhận.Bộ đệm truyền chỉ có thể được viết khi cờ UDRE trong thanh ghi UCSRA được set. Dữ liệu viết vào UDR khi cờ UDRE không được set sẽ bị bỏ qua. Khi dữ liệu được viết vào bộ đệm truyền và bộ đệm truyền được enable thì nó sẽ tải dữ liệu vào thanh ghi dịch truyền nếu nó rỗng.Bộ đệm thu gồm hai mức FIFO. Hai thanh ghi đệm hoạt động như một bộ đệm vòng FIFO. FIFO sẽ thay đổi trạng thái của nó bất cứ khi nào bộ đệm nhận được truy cập. Quan trọng là các cờ lỗi (FE và DOR), và bit dữ liệu thứ 9 (RXB8) được đệm cùng với dữ liệu trong bộ đệm nhận. Vì vậy các bit trạng thái luôn phải được đọc trước khi thanh ghi UDR được đọc.+ Thanh ghi điều khiển và trạng thái A (UCSRA). Bit 7 – RXC: USART Receive Complete. Bit này được set khi có dữ liệu không đọc được vào bộ đệm nhận, hay bộ đệm nhận đ• đầy và nó bị xoá khi bộ đệm nhận là rỗng. Cờ RXC có thể sử dụng để phát ra một ngắt báo Receive Complete. Bit 6 – TXC: USART Transmit Complete: Bit này được set nếu quá trình truyền hoàn thành, đó là tại lúc kết thúc một khung gửi đi. Cờ TXC có thể dùng phát ra một ngắt Transmit Complete. Bit 5 – UDRE: USART Data Register Empty. Bit này được set nếu thanh ghi dữ liệu phát (bộ đệm truyền) là rỗng và sẵn sàng nhận dữ liệu mới. Cờ này cũng có thể dùng để phát ra một ngắt. Thanh ghi điều khiển và trạng thái B (UCSRB). Thanh ghi điều khiển
Các file đính kèm theo tài liệu này:
- Thiết kế và thi công bộ nghich lưu 12vVDC sang 220VAC.doc