TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ
LUẬN VĂN TỐT NGHIỆP
THIẾT KẾ BỘ ĐIỀU KHIỂN TẮT/MỞ THIẾT BỊ ĐIỆN TRONG NHÀ
Sinh viên thực hiện Lê Văn Hòa
Cán bộ hướng dẫn TS. Lương Vinh Quốc Danh
MSSV: 1080972
Luận văn đã được nộp và đánh giá vào ngày …. tháng …. năm ….. Kết quả đánh giá:
Cán bộ đánh giá:
.
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
.......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... ..........................................................................................................................
Cần Thơ, ngày … tháng … năm 2012
3
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 1
.......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... ..........................................................................................................................
Cần Thơ, ngày … tháng … năm 2012
4
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 2
.......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... .......................................................................................................................... ..........................................................................................................................
Cần Thơ, ngày … tháng … năm 2012
5
LỜI CAM ĐOAN Trong quá trình thực hiện đề tài, có thể còn nhiều thiếu sót do kiến thức hạn chế nhưng những nội dung trình bày trong quyển báo cáo này là những hiểu biết và thành quả của tôi đạt được dưới sự giúp đỡ của giảng viên hướng dẫn là thầy Lương Vinh Quốc Danh. Tôi xin cam đoan rằng: những nội dung trình bày trong quyển báo cáo niên luận này không phải là bản sao chép từ bất kỳ công trình đã có trước nào. Nếu không đúng sự thật, tôi xin chịu mọi trách nhiệm trước nhà trường. Cần Thơ, ngày 02 tháng 5 năm 2012 Sinh viên thực hiện
Lê Văn Hòa
6
LỜI CẢM ƠN Lời đầu tiên tôi xin cảm ơn quý thầy cô khoa công nghệ trường đại học Cần Thơ đã truyền đạt cho tôi những kiến thức tốt nhất để hoàn thành luận văn tốt nghiệp này. Tôi xin được gửi lời cảm ơn sâu sắc đến thầy TS.Lương Vinh Quốc Danh là giảng viên trực tiếp hướng dẫn tôi hoàn thành đề tài này. Tôi xin cảm ơn vì sự chỉ bảo và hướng dẫn tận tình của thầy trong suốt quá trình thực hiện. Khi bắt tay vào thực hiện đồ án thì kiến thức và hiểu biết của tôi trong lĩnh vực này gần như là con số không, với những kiến thức uyên bác và sự nhiệt tình của thầy, thầy đã dẫn dắt tôi đi đến bước cuối cùng của đồ án. Tôi xin gửi lời cảm ơn đến gia đình, bạn bè và những người đã giúp đỡ tôi rất nhiều trong suốt quá trình thực hiện đồ án. Một lần nữa tôi xin được gửi lời biết ơn sâu sắc đến thầy cô, gia đình và bạn bè đã giúp đỡ tôi hoàn thành luận văn tốt nghiệp này. Sau cùng, tôi xin bày tỏ lòng biết ơn sâu sắc tới gia đình, người thân và bạn bè đã quan tâm, chia sẻ khó khăn và động viên tôi trong quá trình thực hiện luận văn.
7
DANH MỤC HÌNH Hình 2.1 – Sơ đồ chân MRF24J40MA .....................................................................16 Hình 2.2 – Bản đồ bộ nhớ MRF24J40 ......................................................................17 Hình 2.3 - Short Address Memory ............................................................................18 Hình 2.4 - Long Address Memory ............................................................................18 Hình 2.5 – SPI mode 0 timing ...................................................................................20 Hình 2.6 – SPI mode1 timing ....................................................................................20 Hình 2.7 – SPI mode 2 timing ...................................................................................21 Hình 2.8 – SPI mode 3 timing ...................................................................................21 Hình 2.9 – Cấu trúc của chuỗi dữ liệu ghi vào MRF24J40 ......................................21 Hình 2.10 – Cấu trúc của chuỗi dữ liệu đọc ra từ MRF24J40 ..................................22 Hình 2.11 – ghi chuỗi dữ liệu vào long address........................................................22 Hình 2.12 – đọc chuỗi dữ liệu đọc ra từ long address...............................................22 Hình 2.13 – Cấu trúc của gói tin nhận được .............................................................25 Hình 2.14 – Cấu trúc của gói tin phát đi ...................................................................25 Hình 2.15 – sơ đồ chân DS1307 ...............................................................................26 Hình 2.16 – Sơ đồ khối DS1307 ...............................................................................27 Hình 2.17 – Sơ đồ kết nối DS1307 với vi điều khiển ...............................................27 Hình 2.18 – Các thanh ghi của DS1307 ....................................................................28 Hình 2.19 – Chi tiết các thanh ghi thường sử dụng ..................................................30 Hình 2.20 – Thanh ghi điều khiển .............................................................................30 Hình 2.21 – Mạng I2C ..............................................................................................31 Hình 2.22 – Điều kiện star và stop ............................................................................33 Hình 2.23 – Định dạng của gói tin I2C .....................................................................34 Hình 2.24 – Sơ đồ chân AT89S52 ............................................................................35 Hình 2.25 – Tổ chức bộ nhớ AT89S52 .....................................................................37 Hình 2.26 – Chuẩn sony ............................................................................................39 Hình 2.27 – Chuẩn Matsushita ..................................................................................40 Hình 3.1 – Sơ đồ phần cứng tổng quát ......................................................................44 Hình 3.2 – Khối nhận tín hiệu hồng ngoại ................................................................45 Hình 3.3 – Khối Zigbee .............................................................................................45 8
Hình 3.4 – Khối cấp nguồn .......................................................................................46 Hình 3.5 – Khối RTC ................................................................................................46 Hình 3.6 – Khối LED 7 đoạn ....................................................................................47 Hình 3.7 – Khối vi điều khiển ...................................................................................48 Hình 3.8 – Khối điều khiển công suất .......................................................................49 Hình 3.9 – Khối mở rộng port ...................................................................................49 Hình 3.10 – Khối hiển thị ..........................................................................................50 Hình 3.11 – Modun mở rộng .....................................................................................51 Hình 3.12 – Quy cách sản phẩm ...............................................................................52 Hình 3.13 – Giải thuật tổng quát ...............................................................................53 Hình 3.14 – giải thuật khởi động ..............................................................................54 Hình 3.15 – Quét LED 7 đoạn ..................................................................................56 Hình 3.16 – Thực hiện lệnh từ điều khiển từ xa .......................................................58 Hình 3.17 – tắt/mở các đèn ......................................................................................59 Hình 3.18 – Nạp thời gian tắt và ở đèn .....................................................................60 Hình 3.19 – Kiểm tra thời gian tắt/mở ......................................................................61 Hình 3.20 - Modun phụ .............................................................................................62 Hình 3.22 - Bảng điều khiển chính khi mở đèn ........................................................63 Hình 3.21- Bảng điều khiển chính ............................................................................63 Hình 3.23 - Bộ điều khiển .........................................................................................63 Hình 1 - Chức năng của các đèn chỉ dẫn ..................................................................65 Hình 2 – Sơ đồ đấu dây điện .....................................................................................66 Hình 3 – Bật/tắt đèn ..................................................................................................66 Hình 4 – Điều chỉnh giờ ............................................................................................66 Hình 5 – Điều chỉnh ngày và tháng ...........................................................................67
9
DANH MỤC BẢNG Bảng 2.1 – Chức năng các chân của MRF24J40MA ................................................17 Bảng 2.2 – Chức năng các chân của DS1307 ...........................................................26 Bảng 2.3 – Chọn tần số SQW ...................................................................................30 Bảng 2.4 – Các thông số của chuẩn Sony .................................................................40 Bảng 2.5 – Các thông số của chuẩn Matsushita ........................................................41 Bảng 2.6 – Các thông số của chuẩn NEC .................................................................42 Bảng 2.7 – Các thông số của chuẩn RC5 ..................................................................43 Bảng 3.1 – Kích thước sản phẩm ..............................................................................52 Bảng 3.2 –Chi phí linh kiện ......................................................................................68
10
MỤC LỤC LỜI CAM ĐOAN .......................................................................................................6 LỜI CẢM ƠN .............................................................................................................7 DANH MỤC HÌNH ....................................................................................................8 DANH MỤC BẢNG .................................................................................................10 MỤC LỤC .................................................................................................................11 KÝ HIỆU VÀ VIẾT TẮT .........................................................................................13 TÓM TẮT .................................................................................................................14 ABSTRACT ..............................................................................................................14 CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI ................................................................15 1.1. ĐẶT VẤN ĐỀ .............................................................................................15 1.2. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ .............................................................15 1.3. PHẠM VI CỦA ĐỀ TÀI .............................................................................15 1.4. PHƯƠNG PHÁP THỰC HIỆN ..................................................................15 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .........................................................................16 2.1. TỔNG QUAN VỀ MODULE ZIGBEE MRF24J40MA ............................16 2.1.1. Sơ đồ chân.............................................................................................16 2.1.2. Bản đồ bộ nhớ .......................................................................................17 2.1.3. Các thanh ghi điều khiển ......................................................................18 2.1.4. Chuẩn giao tiếp SPI ..............................................................................19 2.1.5. Cách thức ghi/đọc dữ liệu vào bộ nhớ MRF24J40 ...............................21 2.1.6. Khởi động module MRF24J40MA .......................................................23 2.1.7. Thủ tục nhận gói tin ..............................................................................25 2.1.8. Thủ tục phát gói tin ...............................................................................25 2.1.9. Chế độ wake và sleep............................................................................26 2.2. TỔNG QUAN VỀ REAL TIME DS1307 VÀ CHUẨN I2C ......................26 2.2.1. Tổng quan về real time DS1307 ...........................................................26 2.2.2. Chuẩn giao tiếp I2C ..............................................................................30 2.3. TỔNG QUAN VỀ VI ĐIỀU KHIỂN 8051 .................................................34 2.3.1. Giới thiệu ..............................................................................................34 2.3.2. Vi điều khiển AT89S52 ........................................................................34 2.3.3. Sơ đồ .....................................................................................................35 2.3.4. Tổ chức bộ nhớ .....................................................................................37 11
2.4. CÁC CHUẨN DÙNG TRONG ĐIỀU KHIỂN BẰNG HỒNG NGOẠI ...37 2.4.1. Chuẩn Sony ...........................................................................................39 2.4.2. Chuẩn Matsushita .................................................................................40 2.4.3. Chuẩn NEC ...........................................................................................41 2.4.4. Chuẩn RC5 ............................................................................................42 CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG VÀ GIẢI THUẬT PHẦN MỀM.............44 3.1. SƠ ĐỒ PHẦN CỨNG TỔNG QUÁT.........................................................44 3.1.1. Khối nhận tín hiệu hồng ngoại..............................................................45 3.1.2. Khối Zigbee ..........................................................................................45 3.1.3. Khối nguồn ..........................................................................................46 3.1.4. Khối RTC ..............................................................................................46 3.1.5. Khối LED 7 đoạn ..................................................................................47 3.1.6. Khối vi điều khiển.................................................................................48 3.1.7. Khối điều khiển công suất ....................................................................49 3.1.8. Khối mở rộng port ................................................................................49 3.1.10.
Modun mở rộng .................................................................................51
3.1.11.
Quy cách sản phẩm............................................................................52
3.2. GIẢI THUẬT PHẦN MỀM ........................................................................53 3.2.1. Giải thuật tổng quát...............................................................................53 3.2.2. Khởi động .............................................................................................54 3.2.3. Quét LED 7 đoạn ..................................................................................56 3.2.4. Thực hiện lệnh từ điều khiển từ xa .......................................................57 3.2.5. Tắt/mở các đèn:....................................................................................59 3.2.6. Nạp thời gian tắt/mở đèn ......................................................................60 3.2.7. Kiểm tra thời gian tắt/mở ......................................................................61 CHƯƠNG 4. KẾT QUẢ VÀ ĐỀ NGHỊ ...................................................................62 4.1. KẾT QUẢ ....................................................................................................62 4.2. ĐỀ NGHỊ .....................................................................................................64 PHỤ LỤC ..................................................................................................................65 TÀI LIỆU THAM KHẢO .........................................................................................69
12
KÝ HIỆU VÀ VIẾT TẮT CCA Clear Channel Assessment
POR Power-On Reset
CFR Code of Federal Regulations
PQI Preamble Quality Indicator
CRC Cyclic Redundancy Check
PQT Preamble Quality Threshold
CS Carrier Sense
PTAT Proportional To
FCC Federal Communications Commission
Absolute Temperature
FEC Forward Error Correction
QLP Quad Leadless Package
FIFO First-In-First-Out
QPSK Quadrature Phase Shift Keying
FHSS Frequency Hopping Spread Spectrum
RC Resistor-Capacitor
FS Frequency Synthesizer
RF Radio Frequency
GFSK Gaussian shaped Frequency Shift Keying
RSSI Received Signal Strength Indicator
IF Intermediate Frequency
RX Receive, Receive Mode
I/Q In-Phase/Quadrature
SAW Surface Aqustic Wave
ISM Industrial, Scientific, Medical
SMD Surface Mount Device
LC Inductor-Capacitor
SNR Signal to Noise Ratio
LNA Low Noise Amplifier
SPI Serial Peripheral Interface
LO Local Oscillator
SRD Short Range Devices
LSB Least Significant Bit
TBD To Be Defined
LQI Link Quality Indicator
T/R Transmit/Receive
MCU Microcontroller Unit
TX Transmit, Transmit Mode
MSB Most Significant Bit
UHF Ultra High frequency
MSK Minimum Shift Keying
VCO Voltage Controlled Oscillator
N/A Not Applicable
WOR Wake on Radio, Low power polling
NRZ Non Return to Zero (Coding)
XOSC Crystal Oscillator
OOK On-Off Keying
XTAL Crystal
PA Power Amplifier
PCB Printed Circuit Board
PLL Phase Locked Loop
PER Packet Error Rate
13
TÓM TẮT Bộ điều khiển tắt/mở thiết bị điện trong nhà được thiết kế thành 2 phần: phần bảng điều khiển chính với các chức năng: Điều khiển tắt/mở đèn hoặc thiết bị dùng điện khác bằng bộ điều khiển từ xa, hẹn giờ tắt/mở đèn hoặc thiết bị dùng điện khác, hiển thị thời gian thực và ngày tháng, có tất cả 8 ngõ ra dùng cho 8 thiết bị độc lập, tất cả các điều khiển được thực hiện bằng bộ điều khiển từ xa hồng ngoại; Phần modun mở rộng có chức năng điều khiển 1 thiết bị, dùng cho trường hợp thiết bị cần điều khiển nằm xa hoặc nằm khác phòng (tầng) so với bảng điều khiển chính, modun phụ liên lạc với bảng điều khiển chính bằng chuẩn Zigbee IEEE 802.15.4. Từ khóa: hồng ngoại, Zigbee
ABSTRACT The controller on/off electrical equipment in the home is designed into two parts: the main panel with the function: Controls on/off lights or other electrical appliances by remote control, sleep timer lights or other electrical appliances, realtime display and date, with all 8 outputs for 8 devices independently, all control is done by using an infrared remote control; subsections modules only control on/off one device, used for cases of equipment to be located remote control or other is the room (floor) than the main panel, sub-modules communicate with the main panel by Zigbee standard IEEE 802.15.4. Keywords: infrared, Zigbee
14
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1.
ĐẶT VẤN ĐỀ
Theo cách truyền thống mỗi bóng đèn điện được điều khiển bằng 1 công tắt, ưu điểm của công tắt này là giá thành thấp, dễ lắp đặt. Nhược điểm là mỗi khi muốn mở đèn hay tắt đèn ta phải đi đến tận nơi để thực hiện. Và không ít lần ta quên tắt đèn, quạt khi hết giờ làm việc hay ban ngày mà đèn vẫn mở. Với lý do đó tôi nảy ra ý định làm một thiết bị có thể điều khiển đèn từ xa, định thời cho tất cả các đèn trong nhà, đồng thời ta vẫn tắt mở bình thường. Việc điều khiển được thực hiện bằng remote hồng ngoại và Zigbee. Chuẩn Zigbee có rất nhiều ưu điểm: tiêu thụ năng lượng thấp, tầm phát sóng ngoài trời khoảng 120 m, trong nhà khoảng 50m, bảo mật cao, giá thành thấp, kháng nhiễu cao. Modun MRF24J40MA sử dụng dải tần 2.4GHz, là sản phẩm dùng để xây dựng mạng không dây cá nhân, khi sử dụng không cần đăng ký tần số. 1.2.
LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Trên thị trường hiện nay xuất hiện nhiều sản phẩm nhà thông minh, trong đó bao gồm cả quản lý hệ thống chiếu sáng, nhưng phần lớn có giá thành cao, giao diện phức tạp, khó sử dụng đối với người không quen công nghệ. Ví dụ như hệ thống nhà thông minh HomeON (http://dantri.com.vn/c119/s119-536596/he-thong homeon-ngoi-nha-thong-minh.htm) sử dụng giao diện internet, hệ thống điện Gama của Siemens (Đức) sử dụng kỹ thuật power line communication có giá khoảng 15.000-20.000 USD, Hệ thống điều khiển thiết bị điện từ xa và tự động quay số báo động thông qua mạng điện thoại (http://thuvientructuyen.vn/chi-tiet-tailieu/525/11396.ebook). 1.3.
PHẠM VI CỦA ĐỀ TÀI
Tìm hiểu và ứng dụng chuẩn Zigbee IEEE 802.15.4 dùng để bắt tay giữa bảng điều khiển chính và các modun phụ (nhận lệnh từ bảng điều khiển chính). Tìm hiểu chuẩn NEC,RC5,Sony,Matsusita chuyên dùng trong điều khiển từ xa cho các thiết bị điện tử gia đình: TV, DVD, máy lạnh, quạt điện….. Tìm hiểu ứng dụng realtime DS1307 dùng làm IC thời gian. Điều khiển bật tắt, hẹn giờ tắt/mở thiết bị điện trong nhà, hiển thị thời gian, ngày tháng, điều chỉnh bằng bộ điều khiển từ xa (remote control) của TV. làm ra sản phẩm với các tính năng sau: điều khiển 08 thiết bị, mỗi thiết bị có công suất nhỏ hơn 500W. 1.4.
PHƯƠNG PHÁP THỰC HIỆN
Bộ sản phẩm sẽ bao gồm phần chính (bảng điều khiển chính) và các modun phụ (kết nối với modun chính bằng modun Zigbee MRF24J40MA). Người sử dụng dùng bộ điều khiển hồng ngoại để điều khiển modun chính và nếu đèn đang được điều khiển ở xa modun chính, không thể đưa dây điện trực tiếp đến thì dùng modun phụ. 15
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1.
TỔNG QUAN VỀ MODULE ZIGBEE MRF24J40MA
Đặt điểm chung: Modun MRF24J40MA Sử dụng IC MRF24J40, chuẩn IEEE 802.15.4. Giao thức MiWi™, ZigBee™, giao tiếp với vi điều khiển theo chuẩn SPI. Sử dụng thạch anh 20Mhz hoặc 32768Hz. Hỗ trợ chế độ tiết kiệm năng lượng, tiêu thụ dòng điện thấp: RX mode 19mA, TX mode 23mA. Vào chế độ sleep 2us. Kích thước chip 6x6 mm Đặt điểm RF/Analog: Băng tần ISM 2.405GHz-2.48GHz, độ nhạy -91dBm và tín hiệu vào tối đa 5dBm, công suất phát trung bình 0dBm, tích hợp TX/RX Switch. Tích hợp Low Phase Noise VCO, Frequency Synthesizer và PLL Loop Filter, VCO và lọc số tiêu chuẩn. Tích hợp RSSI ADC và I/Q DACs, tích hợp LDO. High Receiver and RSSI Dynamic Range Data rate 250Kbps Đặt điểm MAC/Baseband: Kiến trúc CSMA-CA Mechanism, Automatic ACK, response and FCS Check , beacon độc lập, transmit và GTS FIFO cấu trúc Security Engine (AES-128) với CTR, CCM và CBC-MAC modes. Hỗ trợ cả CCA modes và RSS/LQI, automatic Packet Retransmit Capability. Hỗ trợ chế độ in-line và chế độ độc lập cho cả bộ thu và bộ phát. MRF24J40 là một chip sản xuất theo chuẩn IEEE 802.15.4-2003 tuân thủ giao thức MiWi ™, ZigBee ™ . Các modun MRF24J40MA tích hợp không dây RF, lớp vật lý và lớp MAC, có thể kết hợp với một bộ vi xử lý đơn giản để truyền dữ liệu tốc độ thấp cho các ứng dụng bao gồm nhà thông minh, thiết bị điện tử tiêu dùng, thiết bị ngoại vi máy tính, đồ chơi, tự động hóa công nghiệp và nhiều hơn nữa. MRF24J40MA được tích hợp máy thu, máy phát,VCO PLL vào một IC duy nhất. nó sử dụng kiến trúc tiên tiến để giảm thiểu linh kiện ngoài và điện năng tiêu thụ. MRF24J40MA chủ yếu bao gồm TX/RX FIFOs, một bộ điều khiển CSMACA, superframe. IC MRF24J40 được chế tạo bằng công nghệ tiên tiến 0,18 micromet CMOS và được đóng gói QFN 40-pin 6x6 mm2. 2.1.1. Sơ đồ chân
Hình 2.1 – Sơ đồ chân MRF24J40MA (Nguồn: MRF24J40MA datasheet)
16
Bảng 2.1 – Chức năng các chân của MRF24J40MA pin
Symbol
type
Description
1
GND
Nối đất
0v
2
RESET
DI
Reset lại module, tác động mức thấp
3
WAKE
DI
Đánh thức mudule, tác động mức cao
4
INT
DO
Ngắt cứng
5
SDI
DI
Chân vào dữ liệu
6
SCK
DI
clock
7
SDO
DO
Chân ra dữ liệu
8
CS
DI
Chọn chip
9
NC
-
Bỏ trống
10
Vin
Nguồn
Nguồn(2.8v-3.6v)
11
GND
Nối đất
Nối đất
12
GND
Nối đất
Nối đất
Chú thích: A = Analog, D = Digital, I = Input, O = Output 2.1.2. Bản đồ bộ nhớ
Hình 2.2 – Bản đồ bộ nhớ MRF24J40 (Nguồn: MRF24J40 datasheet) Chip MRF24J40MA có hai loại bộ nhớ: Short Address Memory Space và Long Address Memory Space, trong đó chứa các lệnh điều khiển ngắt, công suất phát, kênh phát, CSA-MA, security…….và vùng dữ liệu thu phát. 17
2.1.3. Các thanh ghi điều khiển Các thanh ghi trong Short Address Memory chủ yếu quản lý tầng MAC, điều khiển gói tin thu phát. Long Address Memory chứa các thanh ghi điều khiển RF, cảm biến sóng mang, đo cường độ tín hiệu. Tham khảo thêm datasheet MRF24J40 để biết chức năng cụ thể của các thanh ghi.
Hình 2.3 - Short Address Memory (Nguồn: MRF24J40 datasheet)
Hình 2.4 - Long Address Memory (Nguồn: MRF24J40 datasheet) 18
2.1.4. Chuẩn giao tiếp SPI SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao do hảng Motorola đề xuất. Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip Master điều phối quá trình tuyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave. SPI là một cách truyền song công (full duplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời. SPI đôi khi được gọi là chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) và SS (Slave Select). SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi. Đây là điểm khác biệt với truyền thông không đồng bộ mà chúng ta đã biết trong chuẩn UART. Sự tồn tại của chân SCK giúp quá trình tuyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt rất cao. Xung nhịp chỉ được tạo ra bởi chip Master. MISO– Master Input / Slave Output: nếu là chip Master thì đây là đường Input còn nếu là chip Slave thì MISO lại là Output. MISO của Master và các Slaves được nối trực tiếp với nhau. MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường Output còn nếu là chip Slave thì MOSI là Input. MOSI của Master và các Slaves được nối trực tiếp với nhau. SS – Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip Slave đường SS sẽ ở mức cao khi không làm việc. Nếu chip Master kéo đường SS của một Slave nào đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó. Chỉ có 1 đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển SS trên Master, tùy thuộc vào thiết kế của người dùng. Hoạt động: mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bits. Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi dữ liệu của chip Slave cũng được truyền qua Master trên đường MISO. Do 2 gói dữ liệu trên 2 chip được gởi qua lại đồng thời nên quá trình truyền dữ liệu này được gọi là “song công”. Cực của xung giữ nhịp, phase và các chế độ hoạt động: cực của xung giữ nhịp (Clock Polarity) được gọi tắt là CPOL là khái niệm dùng chỉ trạng thái của chân SCK ở trạng thái nghỉ. Ở trạng thái nghỉ (Idle), chân SCK có thể được giữ ở mức cao (CPOL=1) hoặc thấp (CPOL=0). Phase (CPHA) dùng để chỉ cách mà dữ liệu được lấy mẫu (sample) theo xung giữ nhịp. Dữ liệu có thể được lấy mẫu ở cạnh lên của SCK (CPHA=0) hoặc cạnh xuống (CPHA=1). Sự kết hợp của SPOL và CPHA làm nên 4 chế độ hoạt động của SPI. Nhìn chung việc chọn 1 trong 4 chế độ này không ảnh hưởng đến chất lượng truyền thông mà chỉ cốt sao cho có sự tương thích giữa Master và Slave.
19
2.1.4.1.
SPI mode 0
Hình 2.5 – SPI mode 0 timing (Nguồn: MRF24J40 datasheet) Lấy mẫu data in tại cạnh lên của SCK, data out tại cạnh lên của SCK.CS phải bằng 0 khi dịch chuyển dữ liệu và khi truyền dữ liệu xong SCK bằng 0. 2.1.4.2.
SPI mode 1
Hình 2.6 – SPI mode1 timing (Nguồn: MRF24J40 datasheet) Lấy mẫu dữ liệu tại cạnh xuống của SCK trong khi CS=0, khi hoàn thành CSK phải bằng 0.
20
2.1.4.3.
SPI mode 2
Hình 2.7 – SPI mode 2 timing (Nguồn: MRF24J40 datasheet) Lấy mẫu dữ liệu tại cạnh xuống của SCK trong khi CS=0, khi hoàn thành CSK phải bằng 1. 2.1.4.4.
SPI mode 3
Hình 2.8 – SPI mode 3 timing (Nguồn: MRF24J40 datasheet) Lấy mẫu dữ liệu tại cạnh lên của SCK trong khi CS=0, khi hoàn thành CSK phải bằng 1. 2.1.5. Cách thức ghi/đọc dữ liệu vào bộ nhớ MRF24J40 2.1.5.1.
Ghi vào short address
Hình 2.9 – Cấu trúc của chuỗi dữ liệu ghi vào MRF24J40 (Nguồn: MRF24J40 datasheet)
21
Việc ghi, đọc dữ liệu vào chip MRF24J40 theo chuẩn SPI mode 0. Cấu trúc của gói dữ liệu ghi vào bao gồm năm bit địa chỉ được đưa vào trước và được đặt giữa hai bit 0……1, theo sau là 8 bit dữ liệu cần ghi vào bộ nhớ, CS=0 khi đọc/ghi. 2.1.5.2.
Đọc từ short address
Hình 2.10 – Cấu trúc của chuỗi dữ liệu đọc ra từ MRF24J40 (Nguồn: MRF24J40 datasheet) Cấu trúc của gói dữ liệu đoc ra: năm bit địa chỉ được đưa vào trước và được đặt giữa hai bit 0……0, 8 bit dữ liệu được đưa ra SDO ngay sau đó, CS=0 khi thực hiện. 2.1.5.3.
Ghi vào long address
Hình 2.11 – ghi chuỗi dữ liệu vào long address (Nguồn: MRF24J40 datasheet) Long address có 10 bit, được đặt giữa 2 bit 1….1, bỏ trống 4 bit, rồi đến 8 bit dữ liệu, CS=0 khi thực hiện. 2.1.5.4.
Đọc dữ liệu từ long address
Hình 2.12 – đọc chuỗi dữ liệu đọc ra từ long address (Nguồn: MRF24J40 datasheet) Long address có 10 bit, được đặt giữa 2 bit 1….0 bỏ trống 4 bit, rồi đến 8 bit dữ liệu ra ở SDO, CS=0 khi thực hiện.
22
2.1.6. Khởi động module MRF24J40MA %INITIALIZING THE MRF24J40 void MRF24J40Init(void) { BYTE i; WORD j; /* place the device in hardware reset */ RESETn = 0; for(j=0;j<(WORD)300;j++){} /* remove the device from hardware reset */ RESETn = 1; for(j=0;j<(WORD)300;j++){} /* reset the RF module */ SetShortRAMAddr(RFCTL,0x04); /* remove the RF module from reset */ SetShortRAMAddr(RFCTL,0x00); /* flush the RX fifo */ SetShortRAMAddr(WRITE_RXFLUSH,0x01); /* Program the short MAC Address, 0xffff */ SetShortRAMAddr(SADRL,0xFF); SetShortRAMAddr(SADRH,0xFF); SetShortRAMAddr(PANIDL,0xFF); SetShortRAMAddr(PANIDH,0xFF); /* Program Long MAC Address*/ for(i=0;i<(BYTE)8;i++) { SetShortRAMAddr(EADR0+i*2,myLongAddress[i]); } /* enable the RF-PLL */ SetLongRAMAddr(RFCTRL2,0x80); /* set TX for max output power */ SetLongRAMAddr(RFCTRL3,0x00); 23
/* enabled TX filter control */ SetLongRAMAddr(RFCTRL6,0x80); SetLongRAMAddr(RFCTRL8,0b00010000); /* Program CCA mode using RSSI */ SetShortRAMAddr(BBREG2,0x78); /* Enable the packet RSSI */ SetShortRAMAddr(BBREG6,0x40); /* Program CCA, RSSI threshold values */ SetShortRAMAddr(RSSITHCCA,0x00); SetLongRAMAddr(RFCTRL0,0x00); //channel 11 SetShortRAMAddr(RFCTL,0x04); //reset the RF module with new settings SetShortRAMAddr(RFCTL,0x00); }
24
2.1.7. Thủ tục nhận gói tin
Hình 2.13 – Cấu trúc của gói tin nhận được (Nguồn: MRF24J40 datasheet) 1. Nhận được ngắt nhận được gói tin từ chip MRF24J40. 2. Vô hiệu hóa tất cả các ngắt của vi điều khiển. 3. Set RXDECINV = 1; Tạm thời không nhận gói tin( nếu nhận thì gói tin trước chưa được đọc đã bị thay thế bằng gói tin mới). 4. Đọc ô nhớ 300h để lấy thông tin về chiều dài của gói tin. 5. Lưu toàn bộ gói tin vào vi điều khiển. 6. Clear RXDECINV = 0; Cho phép nhận gói tin mới. 7. Cho phép vi điều khiển ngắt. 2.1.8. Thủ tục phát gói tin
Hình 2.14 – Cấu trúc của gói tin phát đi (Nguồn: MRF24J40 datasheet) 1. Ghi header length, frame length, header, vùng dữ liệu như hình 2.14 2. ghi vào thanh ghi txnmtrig 01h để phát gói tin.
25
2.1.9. Chế độ wake và sleep Chuẩn bị chân WAKE: 1. WAKE pin = low 2. RXCON (0x0D) = 0x60 – Cho phép chân WAKE tác động ở mức cao. 3. WAKECON (0x22) = 0x80 – cho phép Immediate Wake-up mode Put to Sleep: 4. SOFTRST (0x2A) = 0x04 reset lại phần mềm 5. SLPACK (0x35) = 0x80 – Put MRF24J40 to Sleep immediately To Wake: 6. WAKE pin = high – Wake-up MRF24J40 7. Delay 2 ms to allow 20 MHz main oscillator time to stabilize before transmitting or receiving. 2.2.
TỔNG QUAN VỀ REAL TIME DS1307 VÀ CHUẨN I2C
2.2.1. Tổng quan về real time DS1307 2.2.1.1.
Sơ đồ chân
Hình 2.15 – sơ đồ chân DS1307 (Nguồn: DS1307 datasheet) Bảng 2.2 – Chức năng các chân của DS1307 pin
symbol
Description
1
X1
Kết nối với thạch anh
2
X2
3
Vbat
Pin cung cấp dự phòng khi mất điện(3V)
4
GND
mass
5
SDA
Đường dữ liệu
6
SCL
Xung đồng hồ
7
SQW/OUT
Chân ra phụ
8
Vcc
Nguồn cung cấp chính(5V) 26
Hình 2.16 – Sơ đồ khối DS1307 (Nguồn: DS1307 datasheet) Các chân của DS1307 được mô tả như sau: X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động cho chip. VBAT: cực dương của một nguồn pin 3V nuôi chip. GND: chân mass chung cho cả pin 3V và Vcc. Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển. Chú ý là nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì DS1307 vẫn đang hoạt động (nhưng không ghi và đọc được). SQW/OUT: một ngõ phụ tạo xung vuông (Square Wave / Output Driver), tần số của xung được tạo có thể được lập trình. Như vậy chân này hầu như không liên quan đến chức năng của DS1307 là đồng hồ thời gian thực, chúng ta sẽ bỏ trống chân này khi nối mạch. SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C. Có thể kết nối DS1307 bằng một mạch điện đơn giản như sau:
Hình 2.17 – Sơ đồ kết nối DS1307 với vi điều khiển (Nguồn: DS1307 datasheet)
27
2.2.1.2.
Tổ chức bộ nhớ và chức năng của các thanh ghi.
DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng, tình bằng giây, phút, giờ… DS1307 là một sản phẩm của Dallas Semiconductor (một công ty thuộc Maxim Integrated Products). Chip này có 7 thanh ghi 8-bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng, năm. Ngoài ra DS1307 còn có 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống có thể dùng như RAM. DS1307 xuất hiện ở 2 gói SOIC và DIP có 8 chân Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch nguồn, mạch dao động, mạch điều khiển logic, mạch giao diện I2C, con trỏ địa chỉ và các thanh ghi (hay RAM). Sử dụng DS1307 chủ yếu là ghi và đọc các thanh ghi của chip này. Vì thế có 2 vấn đề cơ bản đó là cấu trúc các thanh ghi và cách truy xuất các thanh ghi này thông qua giao diện I2C. Như đã trình bày, bộ nhớ DS1307 có tất cả 64 thanh ghi 8-bit được đánh địa chỉ từ 0 đến 63 (từ 00H đến 3FH theo hệ HexaDecimal). Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu là dùng cho chức năng “đồng hồ” (RTC) còn lại 56 thanh ghi bỏ trống có thể được dùng chứa biến tạm như RAM nếu muốn. Bảy thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao gồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm (YEAR). Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thời gian khởi động cho RTC. Việc đọc giá trị từ 7 thanh ghi là đọc thời gian thực mà chip tạo ra. Ví dụ, lúc khởi động chương trình, chúng ta ghi vào thanh ghi “giây” giá trị 42, sau đó 12s chúng ta đọc thanh ghi này, chúng ta thu được giá trị 54. Thanh ghi thứ 8 (CONTROL) là thanh ghi điều khiển xung ngõ ra SQW/OUT (chân 6). Tuy nhiên, do chúng ta không dùng chân SQW/OUT nên có thề bỏ qua thanh ghi thứ 8. Tổ chức bộ nhớ của DS1307 được trình bày trong hình 2.18,2.19. Vì 7 thanh ghi đầu tiên là quan trọng nhất trong hoạt động của DS1307, chúng ta sẽ khảo sát các thanh ghi này một cách chi tiết. DS1307 có 64 byte bộ nhớ, trong đó 8 byte đầu chứa dữ liệu và điều khiển, 56 byte sau được sử dụng như RAM không bay hơi dùng để lưu trữ dữ liệu.
Hình 2.18 – Các thanh ghi của DS1307 (Nguồn: DS1307 datasheet) 28
Tổ chức các thanh ghi thời gian Thanh ghi giây (SECONDS): thanh ghi này là thanh ghi đầu tiên trong bộ nhớ của DS1307, địa chỉ của nó là 0×00. Bốn bit thấp của thanh ghi này chứa mã BCD 4-bit của chữ số hàng đơn vị của giá trị giây. Do giá trị cao nhất của chữ số hàng chục là 5 (không có giây 60) nên chỉ cần 3 bit (các bit SECONDS 6:4) là có thể mã hóa được (số 5 =101, 3 bit). Bit cao nhất, bit 7, trong thanh ghi này là 1 điều khiển có tên CH (Clock halt – treo đồng hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị vô hiệu hóa, đồng hồ không hoạt động. Vì vậy, nhất thiết phải reset bit này xuống 0 ngay từ đầu. Thanh ghi phút (MINUTES): có địa chỉ 01H, chứa giá trị phút của đồng hồ. Tương tự thanh ghi SECONDS, chỉ có 7 bit của thanh ghi này được dùng lưu mã BCD của phút, bit 7 luôn luôn bằng 0. Thanh ghi giờ (HOURS): có thể nói đây là thanh ghi phức tạp nhất trong DS1307. Thanh ghi này có địa chỉ 02H. Trước hết 4-bits thấp của thanh ghi này được dùng cho chữ số hàng đơn vị của giờ. Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ (gọi là mode) là 12h (1h đến 12h) và 24h (1h đến 24h) giờ, bit6 xác lập hệ thống giờ. Nếu bit6=0 thì hệ thống 24h được chọn, khi đó 2 bit cao 5 và 4 dùng mã hóa chữ số hàng chục của giá trị giờ. Do giá trị lớn nhất của chữ số hàng chục trong trường hợp này là 2 (=10, nhị phân) nên 2 bit 5 và 4 là đủ để mã hóa. Nếu bit6=1 thì hệ thống 12h được chọn, với trường hợp này chỉ có bit 4 dùng mã hóa chữ số hàng chục của giờ, bit 5 chỉ buổi trong ngày, AM hoặc PM. Bit5 =0 là AM và bit5=1 là PM. Bit 7 luôn bằng 0. Thanh ghi thứ (DAY – ngày trong tuần): nằm ở địa chỉ 03H. Thanh ghi DAY chỉ mang giá trị từ 1 đến 7 tương ứng từ Chủ nhật đến thứ 7 trong 1 tuần. Vì thế, chỉ có 3 bit thấp trong thanh ghi này có nghĩa. Các thanh ghi còn lại có cấu trúc tương tự, DATE chứa ngày trong tháng (1 đến 31), MONTH chứa tháng (1 đến 12) vàYEAR chứa năm (00 đến 99). Chú ý, DS1307 chỉ dùng cho 100 năm, nên giá trị năm chỉ có 2 chữ số, phần đầu của năm do người dùng tự thêm vào (ví dụ 20xx). Ngoài các thanh ghi trong bộ nhớ, DS1307 còn có một thanh ghi khác nằm riêng gọi là con trỏ địa chỉ hay thanh ghi địa chỉ (Address Register). Giá trị của thanh ghi này là địa chỉ của thanh ghi trong bộ nhớ mà người dùng muốn truy cập. Dữ liệu được lưu trong bộ nhớ DS1307 theo dạng số BCD, tức là số hàng chục được lưu trên 4 bit cao, số hàng đơn vị được lưu trên 4 bit thấp của thanh ghi. Thanh ghi second: Địa chỉ 00h, đây là thanh ghi lưu trữ giây và lien tục đếm lên, các bit 6,5,4 được dùng để lưu hang chục của giây, các bit 3,2,1,0 chứa hang đơn vị của giây, bit7 là bit CH(clock hold) khi bit này bằng 1 real time ngừng chạy, khi hoạt động người ta phải xòa bit này về 0. Thanh ghi minutes: địa chỉ 01h, là thanh ghi dành cho phút, 4 bit cao chứa hang chục của phút, 4 bit thấp chứa hang đơn vị của phút. Thanh ghi hous: địa chỉ 02h, đây là thanh ghi khó sử dụng nhất trong DS1307, bit6 quy định chế độ 12h/24h, khi bit này bằng 0 là chế độ 24h, bằng 1 là chế độ 12h, khi ở chế độ 12h thì bit 5 sẽ chứa thông tin PM/AM
29
Hình 2.19 – Chi tiết các thanh ghi thường sử dụng (Nguồn: DS1307 datasheet)
Hình 2.20 – Thanh ghi điều khiển (Nguồn: DS1307 datasheet) Thanh ghi DAY,DATE,MONTH,YEAR chứa thông tin về thứ, ngày, tháng, năm. Thanh ghi điều khiển: địa chỉ 07h, chứa các điều khiển cho real time SQWE: bằng 1 cho phép xuất xung vuông ở chân SQWE, bằng 0 không cho phép và mức logic của chân này là bit OUT. RS1 và RS0: hai bit này quy định tần số xung vuông xuất ra ở chân SQWE Bảng 2.3 – Chọn tần số SQW
2.2.2. Chuẩn giao tiếp I2C I2C là viết tắc của từ Inter-Integrated Circuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor sáng lập và xây dựng thành chuẩn năm 1990. Phiên bản mới nhất của I2C là V3.0 phát hành năm 2007. I2C là một chuẩn truyền thông nối tiếp đa chip chủ (tạm dịch của cụm từ multi-master serial computer bus). Khái niệm “multi-master” được hiểu là trong 30
cùng một bus có thể có nhiều hơn một thiết bị làm Master, đồng thời một Slave có thể trở thành một Master nếu nó có khả năng. Ví dụ trong một mạng TWI của nhiều vi điều khiển kết nối với nhau, bất kỳ một vi điều khiển nào cũng đều có thể trở thành Master ở một thời điểm nào đó. Tuy nhiên nếu một mạng dùng một vi điều khiển để điều khiển các chip nhớ (như EEPROM AT24C1024 chẳng hạn) thì khái niệm “multi-master” không tồn tại vì các chip nhớ được thiết kế sẵn là Slave, không có khả năng trở thành master. I2C được thực hiện trên 2 đường SDA (Serial DATA) và SCL (Serial Clock) trong đó SDA là đường truyền/nhận dữ liệu và SCL là đường xung nhịp. Căn cứ theo chuẩn I2C, các đường SDA và SCL trên các thiết bị có cấu hình “cực góp mở” (open-drain hoặc open-collector), nghĩa là cần có các “điện trở kéo lên” (pull-up resistor) cho các đường này. Ở trạng thái nghỉ (Idle), 2 chân SDA và SCL ở mức cao. Hình 2.21 mô tả một mô hình mạng I2C cơ bản.
Hình 2.21 – Mạng I2C Tiếp theo chúng ta tìm hiểu một số khái niệm và đặc điểm của I2C. Các khái niệm và đặc điểm được đề cập dưới đây được dùng cho cả TWI và I2C. Master: là chip khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL. Slave: là chip có một địa chỉ cố định, được gọi bởi Master và phục vụ yêu cầu từ Master. SDA- Serial Data: là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay dữ liệu đều được truyền trên đường này theo thứ tự từng bit một. Chú ý là trong chuẩn I2C, bit có trọng số lớn nhất (MSB) được truyền trước nhất, đặc điểm này ngược lại với chuẩn UART. SCL –Serial Clock: là đường giữ nhịp nối tiếp. I2C là chuần truyền thông nối tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình truyền/nhận, cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được lấy mẫu (sample). Dữ liệu nối tiếp trên đường SDA được lấy mẫu khi đường SCL ở mức cao trong một chu kỳ giữ nhịp, vì thế đường SDA không được đổi trạng thái khi SCL ở mức cao (trừ START và STOP condition). Chân SDA có thể được đổi trạng thái khi SCL ở mức thấp. 31
START Condition-Điều kiện bắt đầu: từ trạng thái nghỉ, khi cả SDA và SCL ở mức cao nếu Master muốn thực hiện một “cuộc gọi”, Master sẽ kéo chân SDA xuống thấp trong khi SCL vẫn cao. Trạng thái này gọi là START Condition (gọi tắt là S). STOP Condition-Điều kiện kết thúc: sau khi thực hiện truyền/nhận dữ liệu, nếu Master muốn kết thúc quá trình nó sẽ tạo ra một STOP condition. STOP condition được Master thực hiện bằng cách kéo chân SDA lên cao khi đường SCL đang ở mức cao. STOP condition chỉ được tạo ra sau khi địa chỉ hoặc dữ liệu đã được truyền/nhận. REPEAT START – Bắt đầu lặp lại: khoảng giữa START và STOP condition là khoảng bận của đường truyền, các Master khác không tác động được vào đường truyền trong khoảng này. Trường hợp sau khi kết thúc truyền/nhận mà Master không gởi STOP condition lại gởi thêm 1 START condition gọi là REPEAT START. Khả năng này thường được dùng khi Master muốn lấy dữ liệu liên tiếp từ các Slaves. Hình 2.22 mô tả các Master tạo ra START, STOP và REPEAT START. Address Packet Format – Định dạng gói địa chỉ: trên mạng TWI (I2C), tất cả các thiết bị (chip) đều có thể là Master hay Slave. Mỗi thiết bị có một địa chỉ cố định gọi là Device address. Khi một Master muốn giao tiếp với một Slave nào đó, nó trước hết tạo ra một START condition và tiếp theo là gởi địa chỉ Device address của Slave cần giao tiếp trên đường truyền, vì thế xuất hiện khái niệm “gói địa chỉ” (Address Packet). Gói địa chỉ trong I2C có định dạng 9 bits trong đó 7 bit đầu (gọi là SLA, được gởi liền sau START condition) chứa địa chỉ Slave, một bit READ/WRITE và một bit ACK-Ackknowledge (xác nhận). Do bit địa chỉ có độ dài 7 bits nên về mặt lý thuyết, trên 1 mạng TWI (I2C) có thể tồn tại tối đa 2^7=128 thiết bị có địa chỉ riêng biệt. Tuy nhiên, có một số địa chỉ không được sử dụng như các địa chỉ có định dạng 1111xxx (tức các địa chỉ lớn hơn hoặc bằng 120 không được dùng). Riêng địa chỉ 0 được dùng cho “cuộc gọi chung” (General call). Bit READ/WRITE (R/W) được truyền tiếp sau 7 bit địa chỉ là bit báo cho Slave biết Master muốn “đọc” hay “ghi” vào Slave. Nếu bit này bằng 0 (gọi là W) thì quá trình “Ghi” dữ liệu từ Master đến Slave được yêu cầu, nếu bit này bằng 1 (gọi là R) thì Master muốn “đọc” dữ liệu từ Slave về. Tám bits trên (SLA+R/W) được Master phát ra sau khi phát START condition, nếu một Slave trên mạng nhận ra rằng địa chỉ mà Master yêu cầu trùng khớp với Device address của chính mình, nó sẽ “đáp trả” lại Master bằng cách phát ra 1 tín hiệu “xác nhận” ACK bằng cách kéo chân SDA xuống thấp trong xung thứ 9. Ngược lại, nếu không có Slave đáp ứng lại, chân SDA vẫn ở mức cao trong xung giữ nhịp thứ 9 thì gọi là tín hiệu “không xác nhận” – NOT ACK, lúc này Master cần có những ứng xử phù hợp tùy theo mỗi trường hợp cụ thể, ví dụ Master có thể gởi STOP condition và sau đó phát lại địa chỉ Slave khác…Như vậy, trong 9 bit của gói địa chỉ thì chỉ có 8 bit được gởi bởi Master, bit còn lại là do Slave. Ví dụ Master muốn yêu cầu “đọc” dữ liệu từ Slave có địa chỉ 43, nó cần phát đi một byte như sau trên đường truyền: (43<<1)+1, trong đó (43<<1) là dịch số 43 về bên trái 1 vị trí vì 7 bit địa chỉ nằm ở các vị trí cao trong gói địa chỉ, sau đó cộng giá trị này với “1” tức là quá trình “đọc” được yêu cầu.
32
Hình 2.22 – Điều kiện star và stop (Nguồn: DS1307 datasheet) General call – Cuộc gọi chung: khi Master phát đi gói địa chỉ có dạng 0 (thực chất là 0+W) tức nó muốn thực hiện một cuộc gọi chung đến tất cả các Slave. Tất nhiên, cho phép hay không cho phép cuộc gọi chung là do Slave quyết định. Nếu các Slave được cài đặt cho phép cuộc gọi chung, chúng sẽ đáp lại Master bằng ACK. Cuộc gọi chung thường xảy ra khi Master muốn gởi dữ liệu chung đến các Slaves. Chú ý là cuộc gọi chung có dạng 0+R là vô nghĩa vì không thể có chuyện Master nhận dữ liệu từ tất cả các Slave cùng thời điểm. Data Packet Format – Định dạng gói dữ liệu: sau khi địa chỉ đã được phát đi, Slave đã đáp lại Master bằng ACK thì quá trình truyền/nhận dữ liệu sẽ diễn ra giữa cặp Master/Slave này. Tùy vào bit R/W trong gói địa chỉ, dữ liệu có thể được truyền theo hướng từ Master đến Slave hay từ Slave đến Master. Dù di chuyển theo hướng nào, gói dữ liệu luôn bao gồm 9 bits trong đó 8 bits đầu là dữ liệu và 1 bit cuối là bit ACK. Tám bits dữ liệu do thiết bị phát gởi và bit ACK do thiết bị nhận tạo ra. Ví dụ khi Master thực hiện quá trình gởi dữ liệu đến Slave, nó sẽ phát ra 8 bits dữ liệu, Slave nhận và phát lại ACK (kéo SDA xuống 0 ở xung thứ 9), sau đó Master sẽ quyết định gởi tiếp byte dữ liệu khác hay không. Nếu Slave phát tín hiệu NOT ACK (không tác động SDA ở xung thứ 9) sau khi nhận dữ liệu thì Master sẽ kết thúc quá trình gởi bằng cách phát đi STOP condition. Hình 2.23 mô tả định dạng gói dữ liệu trong I2C. Phối hợp gói địa chỉ và dữ liệu: một quá trình truyền/nhận I2C thường được bắt đầu từ Master, Master phát đi một START condition sau đó gởi gói địa chỉ SLA+R/W trên đường truyền. Tiếp theo nếu có một Slave đáp ứng lại, dữ liệu có thể truyền/nhận liên tiếp trên đường truyền (1 hoặc nhiều byte liên tiếp). Khung truyền thông thường được mô tả như hình 2.23.
33
Hình 2.23 – Định dạng của gói tin I2C (Nguồn: DS1307 datasheet) Multi-Master Bus –Đường truyền đa chip chủ: như đã trình bày ở trên, I2C là chuẩn truyền thông đa chip chủ, nghĩa là tại một thời điểm có thể có nhiều hơn 1 chip làm Master nếu các chip này phát ra START condition cùng lúc. Nếu các Master có cùng yêu cầu và thao tác đối với Slave thì chúng có thể “cùng tồn tại” và quá trình truyền/nhận có thể thành công. Tuy nhiên, trong đa số trường hợp sẽ có một số Master bị “thất lạc” (lost). Một Master bị lost khi nó truyền/nhận 1 mức cao trên SDA trong khi các Master khác truyền/nhận 1 mức thấp. Truyền thông đa chip chủ tương đối phức tạp và vì thế em sẽ không đề cập trường hợp này trong lúc thực hiện giao tiếp trong luận văn này. 2.3.
TỔNG QUAN VỀ VI ĐIỀU KHIỂN 8051
2.3.1. Giới thiệu Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiên vào năm 1980 là các IC thiết kế cho các ứng dụng hướng điều khiển. Các IC này chính là một hệ thống vi xử lý hoàn chỉnh bao gồm các các thành phần của hệ vi xử lý: CPU, bộ nhớ,các mạch giao tiếp, điều khiển ngắt. MCS-51 là họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set Computer), có độ dài và thời gian thực thi của các lệnh khác nhau. Tập lệnh cung cấp cho MCS-51 có các lệnh dùng cho điều khiển xuất / nhập tác động đến từng bit. MCS-51 bao gồm nhiều vi điều khiển khác nhau, bộ vi điều khiển đầu tiên là 8051 có 4KB ROM, 128 byte RAM và 8031, không có ROM nội, phải sử dụng bộ nhớ ngoài. Sau này, các nhà sản xuất khác như Siemens, Fujitsu, … cũng được cấp phép làm nhà cung cấp thứ hai. MCS-51 bao gồm nhiều phiên bản khác nhau, mỗi phiên bản sau tăng thêm một số thanh ghi điều khiển hoạt động của MCS-51. 2.3.2. Vi điều khiển AT89S52 AT89S52 là vi điều khiển do Atmel sản xuất, chế tạo theo công nghệ CMOS có các đặc tính như sau: - 8 KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả năng tới 1000 chu kỳ ghi xoá - Tần số hoạt động từ: 0Hz đến 33 MHz - 3 mức khóa bộ nhớ lập trình - 256 Byte RAM nội. 34
- 4 Port xuất /nhập I/O 8 bit. - 3 bộ Timer/counter 16 Bit. - 6 nguồn ngắt. - Giao tiếp nối tiếp điều khiển bằng phần cứng. - 64 KB vùng nhớ mã ngoài - 64 KB vùng nhớ dữ liệu ngoài. - Cho phép xử lý bit. - 210 vị trí nhớ có thể định vị bit. - 4 chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia. - Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm (Power-down). 2.3.3. Sơ đồ
Hình 2.24 – Sơ đồ chân AT89S52 (Nguồn:AT89S52 datasheet) Port 0 là port có 2 chức năng ở các chân 32 – 39 của AT89C51: Chức năng IO (xuất / nhập): dùng cho các thiết kế nhỏ. Tuy nhiên, khi dùng chức năng này thì Port 0 phải dùng thêm các điện trở kéo lên (pull-up), giá trị của điện trở phụ thuộc vào thành phần kết nối với Port. Khi dùng làm ngõ ra, Port 0 có thể kéo được 8 ngõ TTL. Khi dùng làm ngõ vào, Port 0 phải được set mức logic 1 trước đó. Chức năng địa chỉ / dữ liệu đa hợp: khi dùng các thiết kế lớn, đòi hỏi phải sử dụng bộ nhớ ngoài thì Port 0 vừa là bus dữ liệu (8 bit) vừa là bus địa chỉ (8 bit thấp). 35
Ngoài ra khi lập trình cho AT89C51, Port 0 còn dùng để nhận mã khi lập trình và xuất mà khi kiểm tra (quá trình kiểm tra đòi hỏi phải có điện trở kéo lên). Port1 (chân 1 – 8) chỉ có một chức năng là IO, không dùng cho mục đích khác (chỉ trong 8032/8052/8952 thì dùng thêm P1.0 và P1.1 cho bộ định thời thứ 3). Port 1 đã có điện trở kéo lên nên không cần thêm điện trở ngoài. Port 1 có khả năng kéo được 4 ngõ TTL và còn dùng làm 8 bit địa chỉ thấp trong quá trình lập trình hay kiểm tra. Khi dùng làm ngõ vào, Port 1 phải được set mức logic 1 trước đó. Port 2 (chân 21 – 28) là port có 2 chức năng: Chức năng IO (xuất / nhập): có khả năng kéo được 4 ngõ TTL. Chức năng địa chỉ: dùng làm 8 bit địa chỉ cao khi cần bộ nhớ ngoài có địa chỉ 16 bit. Khi đó, Port 2 không được dùng cho mục đích IO. Khi dùng làm ngõ vào, Port 2 phải được set mức logic 1 trước đó. Khi lập trình, Port 2 dùng làm 8 bit địa chỉ cao hay một số tín hiệu điều khiển. Port 3 (chân 10 – 17) là port có 2 chức năng: Chức năng IO: có khả năng kéo được 4 ngõ TTL. Khi dùng làm ngõ vào, Port 3 phải được set mức logic 1 trước đó. Chức năng giao tiếp: Dùng để giao tiếp UART với máy tính. Nguồn: Chân 40: VCC = 5V ± 20% Chân 20: GND PSEN (Program Store Enable): PSEN (chân 29) cho phép đọc bộ nhớ chương trình mở rộng đối với các ứng dụng sử dụng ROM ngoài, thường được nối đến chân OC (Output Control) của ROM để đọc các byte mã lệnh. PSEN sẽ ở mức logic 0 trong thời gian AT89S52 lấy lệnh.Trong quá trình này, PSEN sẽ tích cực 2 lần trong 1 chu kỳ máy. Mã lệnh của chương trình được đọc từ ROM thông qua bus dữ liệu (Port0) và bus địa chỉ (Port0 + Port2). Khi 89S52 thi hành chương trình trong ROM nội, PSEN sẽ ở mức logic 1. ALE/PROG (chân 30) cho phép tách các đường địa chỉ và dữ liệu tại Port 0 khi truy xuất bộ nhớ ngoài. ALE thường nối với chân Clock của IC chốt (74373, 74573). Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Xung này có thể cấm bằng cách set bit 0 của SFR tại địa chỉ 8Eh lên 1. Khi đó, ALE chỉ có tác dụng khi dùng lệnh MOVX hay MOVC. Ngoài ra, chân này còn được dùng làm ngõ vào xung lập trình cho ROM nội ( PROG). EA /VPP (External Access) : EA (chân 31) dùng để cho phép thực thi chương trình từ ROM ngoài. Khi nối chân 31 với Vcc, AT89S52 sẽ thực thi chương trình từ ROM nội (tối đa 8KB), ngược lại thì thực thi từ ROM ngoài (tối đa 64KB).
36
Ngoài ra, chân EA được lấy làm chân cấp nguồn 12V khi lập trình cho ROM(89S52). ST (Reset): RST (chân 9) cho phép reset AT89S52 khi ngõ vào tín hiệu đưa lên mức 1 trong ít nhất là 2 chu kỳ máy. X1,X2: Ngõ vào và ngõ ra bộ dao động, khi sử dụng có thể chỉ cần kết nối thêm thạch anh và các tụ. Tần số thạch anh thường sử dụng cho AT89S52 là 12Mhz. 2.3.4. Tổ chức bộ nhớ
Hình 2.25 – Tổ chức bộ nhớ AT89S52 (Nguồn: AT89S52 datasheet) 2.4.
CÁC CHUẨN DÙNG TRONG ĐIỀU KHIỂN BẰNG HỒNG NGOẠI
Trong nhiều ứng dụng điều khiển thiết bị điện thì điều khiển từ xa là cái mà người ta hay dùng nhất trong hiện nay bởi vì tính linh hoạt và tiện của nó! Điều khiển từ xa chúng ta nhìn thấy nhiều nhất là cái điều khiển từ xa của tivi bây giờ chúng ta muốn nó điều khiển các thiết bị khác như là đèn, quạt, mợ-tơ bơm nước, TV… bằng sóng hồng ngoại thì cái này không khác mấy so với cái điều khiển tivi của chúng ta nhưng chúng ta phải cách ly được phần điều khiển và công suất. Ánh sáng hồng ngoại (tia hồng ngoại) là ánh sáng không thể nhìn thấy được bằng mắt thường, có bước sóng khoảng từ 0.86μm đến 0.98μm. Tia hồng ngoại có vận tốc truyền bằng vận tốc ánh sáng. Tia hồng ngoại có thể truyền đi được nhiều kênh tín hiệu. Nó được ứng dụng rộng rãi trong công nghiệp. Lượng thông tin có thể đạt 3 mega bit /s. Lượng thông tin được truyền đi với ánh sáng hồng ngoại lớn gấp nhiều lần so với song điện từ mà người ta vẫn dùng. Tia hồng ngoại dễ bị hấp thụ, khả năng xuyên thấu kém. Trong điều khiển từ xa bằng tia hồng ngoại, chùm tia hồng ngoại phát đi hẹp, có hướng, do đó khi thu phải đúng hướng. Sóng hồng ngoại có những đặc tính quan trọng giống 37
như ánh sáng ( sự hội tụ qua thấu kính, tiêu cự …). Ánh sáng thường và ánh sáng hồng ngoại khác nhau rất rõ trong sự xuyên suốt qua vật chất. Có những vật chất ta thấy nó dưới một màu xám đục nhưng với ánh sáng hồng ngoại nó trở nên xuyên suốt. Vì vật liệu bán dẫn “trong suốt” đối với ánh sáng hồng ngoại, tia hồng ngoại không bị yếu đi khi nó vượt qua các lớp bán dẫn để đi ra ngoài. Nguyên lý thu phát hồng ngoại: việc thu hoặc phát bức xạ hồng ngoại bằng nhiều phương tiện khác nhau, có thể nhận tia hồng ngoại từ ánh sáng mặt trời. Nhiều thứ có thể phát tia hồng ngoại như: lò bức xạ, lò điện, đèn, cơ thể người,… Để có thể truyền tia hồng ngoại tốt phải tránh xung nhiễu bắt buộc phải dùng mã phát và nhận ổn định để xác định xem đó là xung truyền hay nhiễu.Tần số làm việc tốt nhất từ 30 KHz đến 60 KHz, nhưng thường sử dụng khoảng 36 KHz. Ánh sáng hồng ngoại truyền 36 lần/1s khi truyền mức 0 hay mức 1. Dùng tần số 36 KHz để truyền tín hiệu hồng ngoại thì dễ, nhưng khó thu và giải mã phải sử dụng bộ lọc để tín hiệu ngõ ra là xung vuông, nếu ngõ ra có xung nghĩa là đã nhận được tín hiệu ở ngõ vào. Khối chọn chức năng và khối mã hóa: Khi người sử dụng bấm vào các phím chức năng để phát lệnh yêu cầu của mình, mổĩ phím chức năng tương ứng với một số thập phân. Mạch mã hóa sẽ chuyển đổi thành mã nhị phân tương ứng dưới dạng mã lệnh tín hiệu số gồm các bít 0 và 1. Số bit trong mã lệnh nhị phân có thể là 4 bit hay 8 bit… tùy theo số lượng các phím chức năng nhiều hay ít.-Khối dao động có điều kiện: Khi nhấn 1 phím chức năng thì dồng thời khởi động mạch dao động tạo xung đồng hồ, tần số xung đồng hồ xác định thời gian chuẩn của mỗi bit.-Khối chốt dữ liệu và khối chuyển đổi song song ra nối tiếp: Mã nhị phân tại mạch mã hóa sẽ được chốt để đưa vào mạch chuyển đổi dữ liệu song song ra nối tiếp. Mạch chuyển đổi dữ liệu song song ra nối tiếp được điều khiển bởi xung đồng hồ và mạch định thời nhằm đảm bảo kết thúc đúng lúc việc chuyển đổi đủ số bit của một mã lệnh.Khối điều chế và phát FM: mã lệnh dưới dạng nối tiếp sẽ được đưa qua mạch điều chế và phát FM để ghép mã lệnh vào sóng mang có tần số 38Khz đến 100Khz, nhờ sóng mang cao tần tín hiệu được truyền đi xa hơn, nghĩa là tăng cự ly phát. Khối thiết bị phát : là một LED hồng ngoại. Khi mã lệnh có giá trị bit =’1’ thì LED phát hồng ngoại trong khoảng thời gian T của bit đó. Khi mã lệnh có giá trị bit=’0’ thì LED không sáng. Do đó bên thu không nhận được tín hiệu xem như bit = ‘0’ . Phần thu: Khối thiết bị thu: Tia hồng ngoại từ phần phát được tiếp nhận bởi LED thu hồng ngoại hay các linh kiện quang khác. Khối khuếch đại và Tách sóng: trước tiên khuếch đại tính hiệu nhận rồiđưa qua mạch tách sóng nhằm triệt tiêu sóng mang và tách lấy dữ liệu cần thiết là mã lệnh.- Khối chuyển đổi nối tiếp sang song song và Khối giải mã: mã lệnhđược đưa vào mạch chuyển đổi nối tiếp sang song song và đưa tiếp qua khối giải mã ra thành số thập phân tương ứng dưới dạng một xung kích tại ngõ ra tương ứng để kích mở mạch điều khiển.
38
Tần số sóng mang còn được dùng để so pha với tần số dao động bênphần thu giúp cho mạch thu phát hoạt động đồng bộ, đảm bảo cho mạch tách sóng và mạch chuyển đổi nối tiếp sang song song hoạt động chính xác 2.4.1. Chuẩn Sony Tần số sóng mang được chia từ 480 Khz cho 12 là 40Khz, và độ rộng xung là 1/3 chu kỳ. Khi khung dữ liệu được phát lập lại, chu kỳ khung là 45ms hoặc chu kỳ bit là 150. Một khung dữ liệu bao gồm Syn pulse, 7 bit dữ liệu và 5 bit mã người dùng.
Hình 2.26 – Chuẩn sony (Nguồn: Vishay Data Formats for IR Control)
39
Bảng 2.4 – Các thông số của chuẩn Sony
Data Item
Time (sec.)
Time (no. of period)
Syn pulse
2.4ms
8T
Data off time
0.61ms
2T
Data on time (0)
0.59ms
2T
Data on time (1)
1.19ms
4T
Data period (0)
1.2ms
4T
Data period (1)
1.8ms
6T
Frame output cycle
45ms
150T
T=0.3ms 2.4.2. Chuẩn Matsushita Tần số sóng mang được chia từ 440 Khz cho 12 là 36.6Khz, và độ rộng xung là 1/2 chu kỳ. Khi khung dữ liệu được phát lập lại, chu kỳ khung là 104.7ms hoặc chu kỳ bit là 240. Một khung dữ liệu bao gồm Syn pulse 6 bit mã người dùng, 6 bit dữ liệu, đảo của 6 bit mã người dùng, đảo của 6 bit dữ liệu.
Hình 2.27 – Chuẩn Matsushita (Nguồn: Vishay Data Formats for IR Control) 40
Bảng 2.5 – Các thông số của chuẩn Matsushita
Data Item
Time (sec.)
Time (no. of period)
Syn pulse on time
3.49ms
8T
Syn pulse off time
3.49ms
8T
Data on time (0)
0.86ms
2T
Data off time (0)
0.88ms
2T
Data on time (1)
0.86ms
2T
Data off time (1)
2.63ms
6T
Data period (0)
1.74ms
4T
Data period (1)
3.49ms
8T
Frame output cycle
104.7ms
240T
T=0.436ms 2.4.3. Chuẩn NEC Tần số sóng mang được chia từ 455 Khz cho 12 là 38Khz, và độ rộng xung là 1/3 chu kỳ. Khi khung dữ liệu được phát lập lại, chu kỳ khung là 107.9ms hoặc chu kỳ bit là 186. Một khung dữ liệu bao gồm Syn pulse 8 bit mã người dùng, 8 bit dữ liệu, đảo của 8 bit mã người dùng, đảo của 8 bit dữ liệu.
Hình 2.28 – Chuẩn NEC (Nguồn: Vishay Data Formats for IR Control)
41
Bảng 2.6 – Các thông số của chuẩn NEC Data Item
Time (sec.)
Time (no. of period)
Syn pulse on time
8.993ms
15.5T
Syn pulse off time
4.642ms
8T
Syn pulse off time
2.321ms
4T
(subsequent frame)
0.561ms
T
Data on time (0)
0.598ms
T
Data off time (0)
0.561ms
T
Data on time (1)
1.7582.63ms
3T
Data off time (1)
1.160ms
2T
Data period (0)
2.321ms
4T
Data period (1)
107.9ms
186T
T=0.58ms 2.4.4. Chuẩn RC5 Tần số sóng mang được chia từ 432 Khz cho 12 là 36Khz, và độ rộng xung là 1/3 chu kỳ. Khi khung dữ liệu được phát lập lại, chu kỳ khung là 113.7ms hoặc chu kỳ bit là 256. Một khung dữ liệu bao gồm 2 bit Syn pulse, 1 bit control, 5 bit mã người dùng, 6 bit dữ liệu.
Hình 2.29 – Chuẩn RC5 (Nguồn: Vishay Data Formats for IR Control)
42
Bảng 2.7 – Các thông số của chuẩn RC5 Data Item
Time (sec.)
Time (no. of period)
Data off time
0.888ms
2T
Data on time
0.888ms
2T
Data period (0)
3.552ms
4T
Data period (1)
3.552ms
4T
Frame output cycle
113.7ms
256T
T=0.444ms
43
CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG VÀ GIẢI THUẬT PHẦN MỀM SƠ ĐỒ PHẦN CỨNG TỔNG QUÁT
3.1.
1
5v
5v
R11
10 13
QA QB QC QD QE QF QG QH
CLR G GND
HEADER 10
12v
gnd reset wake int sdi sck sdo cs nc vin gnd1 gnd2
1 2 3 4 5 6 7 8
D1
U3 1
0 GND
1 2 3 4 5 6 7 8 9 10 11 12
C12 CAP
CAP
C10 CAPACITOR
VIN
DIODE
C4 33p
3
5v C9 CAP
7805
2
0
VOUT
C8 CAP
0
HEADER 2
31 9
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
P1.0/T2 P3.0/RXD P1.1/T2-EX P3.1/TXD P1.2 P3.2/INT0 P1.3 P3.3/INT1 P1.4 P3.4/T0 P1.5 P3.5/T1 P1.6 P3.6/WR P1.7 P3.7/RD XTAL1 XTAL2
ALE/PROG PSEN
EA/VPP RST
5v
C6 CAP
0
19 18
Y2 12MHz
C5 33p
0
0 21 22 23 24 25 26 27 28
p2.0 p2.1 p2.2 p2.3 p2.4 p2.5 p2.6 p2.7
10 11 12 13 14 15 16 17
p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6 p3.7
30 29
AT89C52
20
C11
12v J1 1 2
R32 R31 R30 R29 R28 R27 R13
39 38 37 36 35 34 33 32
p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7
0
U11 mrf 24j40ma
U13
p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7
8
0 74HC595
C5 104
10 9 8 7 6 5 4 3 2 1
40
33x8 15 1 2 3 4 5 6 7
VCC
st ck
C18 104
0
SDO
GND
p0.5 p1.7
RESISTOR SIP 9
9
9 8 7 6 5 4 3 2
data
12 11
J11
VCC
p0.4
16
U1 14
C3 1u R4 10k
0
VIN
VOUT
6 5
p0.7 p0.6
2
SCL SDA
BT1 BATTERY
3
8 VCC
GND
U12 3
5v
VBAT
p3.6 p3.5 p3.7 p3.3 p3.2 p3.1 p3.0
5v U2
SQW/OUT X2 X1
GND
1
LD1117/TO
5v
7 2 1 Y1 CRY STAL
0
U4
R3 RESISTOR C1 CAPACITOR R1
IR receive
4
DS1307
out v cc GND
1 3 2
p3.4 Q1 2N1070
ir_receiv e
RESISTOR
J2 J3
J4
J5
J6
J7
J8
J9
J10
HEADER 2
HEADER 2
HEADER 2
HEADER 2
HEADER 2
HEADER 2
HEADER 2
2 1
2 1
2 1
2 1
2 1
2 1
2 1
0
0
2 1
HEADER 2
2 1
HEADER 2
Q14
Q13
Q12
Q11
Q10
Q9
Q8
Q23
220v 1
C1815x8
220v 2
F9 FUSE p1.6 L1
L2
L3
L4
L5
L6
L7
5v 5v
R15
4
1
MOC3020
p1.7
R17
U6
Q4 BTA12
220v 2
L1
1
Q5 BTA12
330
U10
330
MOC3020 R25 U14
L4
p0.0
p0.1
p0.2
p0.3
1 2
p2.7 330
L5 L6
Q21
Q25 BTA12
1 2
p2.6
Q18
5v
6
6
2
p2.5 4
R24
4
2
1
4
6
R23
MOC3020
R41
R42
Q22 C1815x4
220v 2
Q24 BTA12
BTA12 MOC3020
R40
5k6x4
Q17
6
Q6 1
R39
0
U8
330 L3
Q7 BTA12 BTA12
R26
U15 4
5v
R22
2
5v
220v 2
A1015x4
220v 2 L2
U9 MOC3020
MOC3020 R20 p2.3
U7
330
4
330
1 2
p2.2
q20 Q15 R19
5k6x4
6
Q3 BTA12
2
p2.1
U5
5v
330
p1.0
4
MOC3020
2
p2.4
p1.1
C7
6
1
220v 2
R18 Q16
4
Q2 BTA12
6
6
MOC3020
R21
p1.2
Q19
220v 2
330
p1.3
5v 220v 2
p2.0
p1.4
12v 5v
220v 2
R14
p1.5
L8
L7 L8
Hình 3.1 – Sơ đồ phần cứng tổng quát Phần cứng bao gồm các khối sau:khối nhận tín hiệu hồng ngoại, khối Zigbee, khối nguồn, khối RTC, khối LED 7 đoạn, khối vi điều khiển, khối điều khiển công suất, khối mở rộng port và khối hiển thị.
44
3.1.1. Khối nhận tín hiệu hồng ngoại 5v
U4
R3 RESISTOR C1 CAPACITOR R1
IR receive out v cc GND
1 3 2
p3.4 Q1 2N1070
ir_receiv e
RESISTOR
0
0
Hình 3.2 – Khối nhận tín hiệu hồng ngoại IR receive là loại mắt thu hồng ngoại 3 chân, Tín hiệu hồng ngoại từ bộ điều khiển đưa tới đã được điều chế PAM, mắt thu này thu và giải điều chế, nhưng tín hiệu ở ngõ ra bị đảo lại so với tín hiệu phát tại bộ điều khiển. R1,R3,Q1 tạo thành cổng đảo, đảo tín hiệu lại cho giống với nơi phát. 3.1.2. Khối Zigbee
1 2 3 4 5 6 7 8 9 10 11 12
gnd reset wake int sdi sck sdo cs nc vin gnd1 gnd2
U11 mrf 24j40ma
R32 R31 R30 R29 R28 R27 R13
p3.6 p3.5 p3.7 p3.3 p3.2 p3.1 p3.0
0
5v
3
VIN
GND
U12
VOUT
2
1
LD1117/TO
0
Hình 3.3 – Khối Zigbee
Modun MRF24J40MA sử dụng nguồn 3.3v, được cấp bởi LD1117(ổn áp 3.3v), kết nối với vi điều khiển thông qua các điện trở 1k nhằm ngăn nguồn 5v từ vi điều khiển đi trực tiếp vào chip MRF24J40. Sử dụng port3 để kết nối với modun MRF24J40MA. 45
3.1.3. Khối nguồn 12v
C11
12v J1
C12 CAP
CAP
1 2
U3 1
0
VIN
2
DIODE
GND
D1
C10 CAPACITOR
0
3
VOUT
5v C9 CAP
7805
C8 CAP
0
HEADER 2
C6 CAP
0
0
Hình 3.4 – Khối cấp nguồn Nguồn 5v (7805) cấp cho khối vi điều khiển, opto cách li quang, LED chỉ thị. Khối 12v cung cấp cho LED 7 đoạn. Diode D1 ngăn cấp nguồn ngược vào 7805, Ngõ ra được lọc bởi các tụ C11,C12(12v), C9,C8,C6(5v). Sử dụng nguồn 12v 1A. 3.1.4. Khối RTC
SCL SDA
3
BT1 BATTERY
VBAT
p0.7 p0.6
VCC
U2 6 5
8
5v
GND
SQW/OUT X2 X1
7 2 1 Y1 CRY STAL
4
DS1307
Hình 3.5 – Khối RTC
RTC DS1307 sử dụng thạch anh 32768Hz, pin CMOS 3V backup dùng khi mất điện, khi mất nguồn 5v RTC sẽ sử dụng pin để đảm bảo RTC chạy đúng giờ và RAM không bị xóa, đường SCL và SDA kết nối với vi điều khiển thông qua 2 chân p0.7 và p0.6, chân SQW/OUT là các chân ngõ ra phụ, không sử dụng.
46
3.1.5. Khối LED 7 đoạn Q14
Q13
Q12
Q11
Q10
Q9
Q8
Q23 C1815x8
p1.6
p1.5
p1.4
p1.3
p1.2
p1.1
p1.0
p1.7
12v Q19
q20 A1015x4
C7 R18 Q16
Q15 R19
R22
R26
5k6x4 R39
0
R40
R41
R42 5k6x4
Q17
Q18
Q21
Q22 C1815x4
p0.0
p0.1
p0.2
p0.3
Hình 3.6 – Khối LED 7 đoạn LED 7 đoạn dùng LED đơn kết nối theo dạng anode chung, các đường dữ liệu tác động ở mức thấp đưa ra port1, các chân chọn LED tác động ở mức cao(12v) sử dụng các chân p0.0, p0.1, p0.2, p0.3. Các BJT trong sơ đồ là loại C1815 và A1015.
47
3.1.6. Khối vi điều khiển
1
5v
R11 RESISTOR SIP 9
1 2 3 4 5 6 7 8
p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7
C5 33p C4 33p
Y2 12MHz
19 18 31 9
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
P1.0/T2 P3.0/RXD P1.1/T2-EX P3.1/TXD P1.2 P3.2/INT0 P1.3 P3.3/INT1 P1.4 P3.4/T0 P1.5 P3.5/T1 P1.6 P3.6/WR P1.7 P3.7/RD XTAL1 XTAL2
ALE/PROG PSEN
EA/VPP RST
21 22 23 24 25 26 27 28
p2.0 p2.1 p2.2 p2.3 p2.4 p2.5 p2.6 p2.7
10 11 12 13 14 15 16 17
p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6 p3.7
30 29
AT89C52
20
5v
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
VCC
39 38 37 36 35 34 33 32
p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7
0
GND
9 8 7 6 5 4 3 2
U13
40
C5 104
C3 1u R4 10k
Hình 3.7 – Khối vi điều khiển Khối vi điều khiển sử dụng chip AT89S52(họ 8051), thạch anh 12Mhz, port0 được kéo lên nguồn bằng điện trở 4k7, sử dụng rom nội thực thi chương trình. Tụ kết hợp với thạch anh là 33p, C3 và R4 tạo thành mạch reset tự động khi mới cấp nguồn, tụ C5 lọc nhiễu tần số cao.
48
3.1.7. Khối điều khiển công suất 5v 5v
220v 2
5v 5v
220v 2
U5 4
R17
Q4 BTA12
U6
U7
330
5v
Q7
R24
2
R25 U14
330
4
330
MOC3020 2
p2.6 U10
1 2
p2.7
4
p2.5
Q25 BTA12
1
330 L5 L6
6
MOC3020
1
L4
5v
6
6
6
MOC3020 R23 U9 MOC3020
220v 2
Q24 BTA12
BTA12
1
4
330
U8
330 L3
BTA12
2
p2.4
BTA12
5v
220v 2 Q6
R21
Q5
220v 2 L2
5v
1 2
p2.3
220v 2
L1
MOC3020 R20
6
1 2
p2.2
330
220v 2
U15 4
330
1 2
p2.1
MOC3020
4
R15
2
p2.0
Q3 BTA12
6
MOC3020
4
1
6
Q2 BTA12
4
R14
6
220v 2 MOC3020
L7 L8
Hình 3.8 – Khối điều khiển công suất Khối công suất sử dụng triac BTA12A, kích và cách li điện bằng opto triac MOC3020. Mõi ngõ ra chịu tải trên 600W 3.1.8. Khối mở rộng port
14
p0.4
12 11
p0.5 p1.7
10 13
CLR G
SDO QA QB QC QD QE QF QG QH
9 33x8 15 1 2 3 4 5 6 7
0 74HC595
10 9 8 7 6 5 4 3 2 1
8
0
st ck
GND
C18 104
data
J11
VCC
U1
16
5v
HEADER 10
0
Hình 3.9 – Khối mở rộng port
Khối mở rộng port dùng cho 8 LED chỉ thị trạng thái của 8 ngõ ra, LED sáng tương ứng ngõ ra đang có điện.
49
D2
D2
D2
D2
D2
D2
LED
LED
LED
LED
LED
LED
D2
anode D2
LED
LED
a
D2
D2
LED
LED
D2
D2
LED
LED
f
b
D2
D2
LED
LED
D2
D2
LED
LED
g
D2
D2
LED
LED
D2
D2
D2
D2
D2
D2
LED
LED
LED
LED
LED
LED
D2
D2
LED
LED
D2
D2
LED
LED
D2
D2
LED
LED
e
c
D2
D2
LED
LED
D2
D2
LED
LED
d
D2
D2
LED
LED
D2
D2
D2
D2
D2
D2
LED
LED
LED
LED
LED
LED
Hình 3.10 – Khối hiển thị 3.1.9. Khối hiển thị Dùng 4 LED 7 đoạn lớn để hiển thị thời gian, mõi LED 7 đoạn do 42 LED đơn hợp thành, mõi đoạn gồm 6 LED đơn. Ưu điểm: tính thẫm mĩ cao, kích thước tùy ý, màu sắc đa dạng, chi phí thay thế thấp, độ sáng cao. Nhược điểm: Chi phí cao.
50
Modun mở rộng
3.1.10. J2
J3 F1 1 2
2 1 2.2A
220v in
out 5v
1 D12
Q1 U4 MOC3020
2
1 2 3 4 5 6 7 8 9 10 11 12
6
gnd reset wake int sdi sck sdo cs nc vin gnd1 gnd2
U1 mrf 24j40ma
R10 220
4
BTA12
LED
U2 R11 220
12 13 14 15 16 17 18 19
P1.0/AIN0 P1.1/AIN1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.7 XTAL1
1
EX_5V
R1 C1 RESISTOR CAP 20 C4 CAP
RST/VPP VCC
XTAL2
4
10
1 2
D11 1N4007 C5 100U D10 1N4007
5
5v
GND
5v
J1
2 3 6 7 8 9 11
Y1 CRY STAL 5v
C2 33P
C3 33P
AT89C2051
Hình 3.11 – Modun mở rộng Khối mở rộng dùng để bật/tắt đèn mà không cần nối dây điện trực tiếp từ bảng điều khiển chính đến đèn cần bật/tắt, lệnh bật/tắt được gởi từ bảng điều khiển chính thông qua wireless(chuẩn Zigbee IEEE 802.15.4). Phần mở rộng sử dụng chip AT89C2051.
51
3.1.11.
Quy cách sản phẩm
Hình 3.12 – Quy cách sản phẩm
Bảng 3.1 – Kích thước sản phẩm Tên
Kích thước
Lỗ gắn LED
4.8 mm
LED 7 đoạn
65mmx105mm
Kích thước bảng
160mmx350mm
52
3.2.
GIẢI THUẬT PHẦN MỀM
3.2.1. Giải thuật tổng quát
Hình 3.13 – Giải thuật tổng quát Khi mới cấp điện, phải khởi động modun MRF24J40MA bao gồm khởi động phần cứng và khởi động phần mềm. đinh nghĩa các biến, khởi động ngắt timer0, ngắt ngoài 0 của vi điêu khiển và thiết lập ngắt nhận gói tin của modun MRF24J40MA. Nạp thời gian thực và thời gian thiết lập của 8 đèn từ RTC lên vùng nhớ đệm của vi điều khiển. Chương trình khởi động chỉ chạy 1 lần khi reset vi điều khiển. Sau khi khởi động xong xẽ thực hiện việc hiển thị giờ ra LED 7 đoạn, thời gian sáng của mõi LED 7 đoạn khoảng 200ms, sau đó thực hiện kiểm tra xem có nhận được điều khiển từ remote không, nếu có thì thực hiện các công việc do người sử dụng yêu cầu, sau đó lấy thời gian thực từ RTC lên vùng đệm để hiển thị và kiểm tra thời gian tắt/mở để tắt/mở đèn theo thời gian cài đặt của người sử dụng.
53
Thời gian để vi điều khiển thực hiện lệnh từ remote, cập nhật thời gian và kiểm tra thời gian tắt/mở khoảng vài chục ms. Code: CALL INITIAL CALL SETINTERRUPT Chương trình chính sẽ gọi chương trình con khởi động modun RF và thiết lập ngắt. Bộ phận nhận lệnh từ điều khiển từ xa(remote hồng ngoại) nằm trong ngắt timer0, khi nhận được lệnh, chương trình phục vụ ngắt sẽ đưa lệnh vừa nhận được vào thanh ghi lệnh IRMCR, chương trình chính dựa vào thanh ghi này để làm việc. 3.2.2. Khởi động
Hình 3.14 – giải thuật khởi động Khi mới cấp điện vi điều khiển sẽ khởi tạo các điều kiện để cho phép ngắt ở timer0, timer1 ở chế độ đếm xung ngoài và khởi động modun Zigbee MRF24J40MA. khởi động modun Zigbee MRF24J40MA: 1. SOFTRST (0x2A) = 0x07 – Perform a software Reset. The bits will be automatically cleared to ‘0’ by hardware. 2. PACON2 (0x18) = 0x98 – Initialize FIFOEN = 1 and TXONTS = 0x6. 3. TXSTBL (0x2E) = 0x95 – Initialize RFSTBL = 0x9. 4. RFCON1 (0x201) = 0x01 – Initialize VCOOPT = 0x01. 5. RFCON2 (0x202) = 0x80 – Enable PLL (PLLEN = 1). 6. RFCON6 (0x206) = 0x90 – Initialize TXFIL = 1 and 20MRECVR = 1. 7. RFCON7 (0x207) = 0x80 – Initialize SLPCLKSEL = 0x2 (100 kHz Internal oscillator). 8. RFCON8 (0x208) = 0x10 – Initialize RFVCO = 1. 54
9. SLPCON1 (0x220) = 0x21 – Initialize CLKOUTEN = 1 and SLPCLKDIV = 0x01. Configuration for nonbeacon-enabled devices (see Section 3.8 “Beacon-Enabled and Nonbeacon-Enabled Networks”): 10. BBREG2 (0x3A) = 0x80 – Set CCA mode to ED. 11. RSSITHCCA (0x3F) = 0x60 – Set CCA ED threshold. 12. BBREG6 (0x3E) = 0x40 – Set appended RSSI value to RXFIFO. 13. Enable interrupts – See Section 3.3 “Interrupts”. 14. Set channel – See Section 3.4 “Channel Selection”. 15. RFCTL (0x36) = 0x04 – Reset RF state machine. 16. RFCTL (0x36) = 0x00. 17. Delay at least 192 μs. cho phép ngắt ở timer0, timer1 ở chế độ đếm xung ngoài: mov tmod,#61h setb ea setb et0 setb tr0 setb tr1 timer 0 ở chế độ 16 bit, timer 1 ở chế độ 8 bit auto reload.
55
3.2.3. Quét LED 7 đoạn
Hình 3.15 – Quét LED 7 đoạn Phần lớn thời gian chương trình phục vụ cho việc quét LED 7 đoạn, nhằm đảm bảo LED 7 đoạn ít bị chớp nhất khi thực hiện các công việc tốn thời gian nhiều. Đoạn chương trình quét LED 7 đoạn chỉ hiển thị 4 ô nhớ 33h,34h,35h,36h đây là 4 số được tính toán ra từ vùng nhớ đệm. Code: call chuyendoi;đổi sang mã LED 7 đoạn. mov a,@r1 call movap1 inc r1 mov a,r0 call movap0 rl a mov r0,a 56
Thanh ghi R1 chứa địa chỉ của mã LED 7 đoạn, R0 chứa vị trí LED 7 đoạn, p1 đưa dữ liệu ra LED 7 đoạn, p0 quét LED. 3.2.4. Thực hiện lệnh từ điều khiển từ xa Đoạn chương trình thực hiện lệnh từ điều khiển từ xa thực hiện việc so sánh lệnh nhận được từ remote hồng ngoại với các giá trị đã được định sẵn và gọi chương trình con thực hiện công việc tương ứng. Nếu nhận được số 10 sẽ thực hiện công việc: đảo bit cr.1 của thanh ghi trạng thái chương trình bit này được chỉ thị trên đèn tắt/mở , nếu bit cr.1=1, kèm theo ấn phím bất kỳ từ 0---9, sẽ Nạp thời gian tắt của đèn lên vùng nhớ đệm, ngược lại nếu bit cr.1=0, kèm theo ấn phím bất kỳ từ 0---9, sẽ Nạp thời gian mở của đèn lên vùng nhớ đệm. Nếu ircmd=9, thực hiện đảo bit cr.0, nếu cr.0=1 chương trình ở chế độ 1 nghĩa là khi ấn các phím từ 1---9 sẽ ra lệnh tắt/mở đèn bình thường. Nếu cr.0=0, chương trình ở chế độ 2, chế độ điều chỉnh thời gian, dùng kết hợp với bit cr.1 để điều chỉnh. Nếu ircmd=12(phím >), chương trình chính gọi chương trình con dời con trỏ LED 7 đoạn sang phải 1 số, khi phím > con trỏ sẽ dời sang phải đến số cuối cùng rồi quay lại số đầu tiên. Con trỏ ở vị trí nào thì nhấp nháy ở vị trí đó, sau khoảng 15s không thao tác phím, chương trình sẽ về trạng thái hoạt động bình thường, con trỏ ở vị trí 0. Nếu ircmd=12(phím /\), chương trình chính gọi chương trình con hiệu chỉnh thời gian. Sau khi ta chọn loại thời gian cần điều chỉnh, dời con trỏ sang phải để tìm số cần thay đổi, phím /\ để tăng số hiện tại lên 1 đơn vị. Dựa vào thời gian nằm trên vùng nhớ đệm là gì mà việc tăng lên 1 đơn vị nằm giới hạn của số đó, rồi quay về 0. VD: Nếu ta đang chỉnh ngày tháng, con trỏ ở hàng chục của tháng(hàng đơn vị của tháng = 1), thì hàng chục chỉ nằm trong đoạn 0—1.
57
Hình 3.16 – Thực hiện lệnh từ điều khiển từ xa 58
3.2.5. Tắt/mở các đèn:
Hình 3.17 – tắt/mở các đèn Kiểm tra nếu thanh ghi IRMCR =1…8 sẽ bật/tắt đèn 1…..8 đồng thời gửi lệnh vừa thực hiện đến các modun mở rộng bằng chuẩn Zigbee IEEE 802.15.4. Sauk hi thực hiện xong sẽ reset thanh ghi IRMCR =0.
59
3.2.6. Nạp thời gian tắt/mở đèn
Hình 3.18 – Nạp thời gian tắt và ở đèn Việc Nạp thời gian tắt/mở đèn lên vùng nhớ đệm do thanh ghi cr quyết định. Nếu bit cr.0=0(chế độ điều chỉnh) và cr.1=0(đèn tắt/mở sáng), kèm theo ân phím từ 0---9, chương trình sẽ Nạp thời gian mở đèn, riêng đối với phím 0 chương trình Nạp thời gian thực lên vùng nhớ đệm của vi điều khiển và ngược lại. Biến screenposition chứa loại thời gian đang lưu trên vùng nhớ đệm, dựa vào biến này mà vi điều khiển biết được địa chỉ cần phải lưu lại sau khi điều chỉnh thời gian trên RTC.
60
3.2.7. Kiểm tra thời gian tắt/mở
Hình 3.19 – Kiểm tra thời gian tắt/mở Chương trình kiểm tra thời gian tắt mở đèn sẽ so sánh thời gian thực tế với thời gian do người sử dụng cài đặt định thời tắt/mở đèn, nếu 2 giá trị này bằng nhau chương trình sẽ ra quyết định tắt hoặc mở tùy theo giá trị được lưu. Khi thời gian tắt bằng với thời gian mở chương trình sẽ không làm gì, dùng khi người sử dụng không muốn sử dụng chứa năng hẹn giờ. 61
CHƯƠNG 4. KẾT QUẢ VÀ ĐỀ NGHỊ 4.1.
KẾT QUẢ
Đã tìm hiểu và sử dụng được những tính năng cơ bản của modun Zigbee MRF24J40MA của hãng Microchip sản xuất để truyền và nhận gói tin. Tìm hiểu và sử dụng được các chuẩn dùng trong điều khiển từ xa bằng tia hồng ngoại. Đã viết xong chương trình cho vi điều khiển họ 8051, điều khiển bảng điều khiển chính và modun phụ. Hoàn thành sản phẩm bật/tắt 8 đèn bằng remote TV, hẹn giờ mở/tắt 8 đèn, công suất mõi đèn không quá 500W, kèm theo modun phụ nhận lệnh từ bảng điều khiển chính thông qua chuẩn không dây Zigbee dùng khi không thể đấu dây điện trực tiếp từ bảng điều khiển chính đến đèn ( hoặc vì tốn nhiều dây điện, hoặc vì tính thẩm mỹ…). Kết quả thực nghiệm thực tế cho thấy thiết bị hoạt động khá dúng giờ(1 tuần sai 2 giây), so với giờ trên đài TV(THCT). Phần điều khiển công suất và phần hiển thị hoạt động ít bị nhiễu. Tuy nhiên modun Zigbee MRF24J40MA hoạt động với tầm thu phát chưa được như nhà sản suất công bố (400 ft), thực tế chỉ đạt trên dưới 30 m dùng trong nhà. Hình ảnh thực tế:
Hình 3.20 - Modun phụ
62
Hình 3.21- Bảng điều khiển chính
Hình 3.22 - Bảng điều khiển chính khi mở đèn
Hình 3.23 - Bộ điều khiển
63
4.2.
ĐỀ NGHỊ
Đây là một sản phẩm giúp căn nhà được đơn giản hóa việc quản lý hệ thống đèn chiếu sáng, có thể sử dụng trong thực tế được vì giá thành sản xuất rẻ( Nếu không sử dụng các modun mở rộng, thì giá của bảng điều khiển chính chưa đến 500 000 đồng/ bộ), dễ sử dụng, an toàn(khi mở/tắt đèn hoàn toàn không chạm tay chân đến thiết bị), dễ lắp đặt(đặt biệt là các ngôi nhà đã hoàn chỉnh hệ thống điện), tính thẩm mỹ cao(vừa làm đồng hồ vừa điều khiển đèn). Có thể dùng được trong gia đình, nhà xưởng, trường học, trang trại chăn nuôi, cơ sở kinh doanh mua bán.
64
PHỤ LỤC Hướng dẫn sử dụng: (trong hướng dẫn này tạm gọi các ngõ ra L1---L8 là ngõ ra dùng cho đèn):
220vac
1. Cách bố trí
L8 L7 L6 L5 L4 L3 L2 L1 7s2
7s1
7s3
7s4 adjust time on/of
led8
led7
led6
led4 ir led5
led3
led2
led1
db
Hình 1 - Chức năng của các đèn chỉ dẫn a. L1….L8: 8 ngõ ra đấu trực tiếp ra 8 đèn (220v) b. 220vac: Ngõ vào 220V c. 7s1…7s4: 4 LED 7 đoạn hiển thị thời gian và ngày tháng d. Db: dấu 2 chấm phân cách giờ và phút. e. LED1…..LED8: 8 LED đơn hiển thị trạng thái tương ứng của 8 ngõ ra f. Adjust time: Chế độ 1/chế độ 2 g. Tắt/mở : timeon/timeoff, time/day h. Ir: mắt thu hồng ngoại.
65
2. Cách đấu dây điện: 220v ac
cp
L8 L7 L6 L5 L4 L3 L2 L1
Hình 2 – Sơ đồ đấu dây điện 3. Bật/tắt đèn(chế độ 1 đèn Adjust time và tắt/mở tắt):
Hình 3 – Bật/tắt đèn
Khi mới cấp điện thiết bị mặc định ở chế độ 1 (LED Adjust time tắt) Ấn các phím từ 1---8 trên remote để bật/tắt 8 đèn. 4. Điều chỉnh giờ:
Hình 4 – Điều chỉnh giờ 66
Ấn phím 9(đèn Adjust time sáng) để vào chế độ điều chỉnh(chế độ 2), ấn phím 0 để Nạp thời gian lên vùng đệm, ấn phím > để di chuyển con trỏ , ấn phím /\ để tăng số tại vị trí con trỏ đang nhấp nháy lên 1 đơn vị. Ấn lại phím 9 để thoát, nếu không sau 15s không thao tác thiết bị sẽ trở về chế độ 1(đèn Adjust time tắt). 5. Điều chỉnh ngày và tháng:
Hình 5 – Điều chỉnh ngày và tháng Ấn phím 9 để vào chế độ điều chỉnh(chế độ 2), ấn phím enter(đèn tắt/mở sáng ), ấn phím 0 để Nạp ngày, tháng lên vùng đệm, ấn phím > để di chuyển con trỏ , ấn phím /\ để tăng số tại vị trí con trỏ đang nhấp nháy lên 1 đơn vị. Ấn lại phím 9 để thoát, nếu không sau 15s không thao tác thiết bị sẽ trở về chế độ 1(đèn Adjust time tắt). 6. Điều chỉnh thời gian tắt/mở đèn:
Hình 6 – Điều chỉnh thời gian tắt/mở đèn Ấn phím 9(đèn Adjust time sáng) để vào chế độ điều chỉnh(chế độ 2), ấn phím enter( chọn thời gian tắt/mở, đèn tắt/mở sáng: thời gian mở, ngược lại là thời gian tắt) ấn phím từ 1….8 để Nạp thời gian tắt/mở tương ứng của đèn 1…8 lên vùng đệm, ấn phím > để di chuyển con trỏ , ấn phím /\ để tăng số tại vị trí con trỏ đang nhấp nháy lên 1 đơn vị. Ấn lại phím 9 để thoát, nếu không sau 15s không thao tác thiết bị sẽ trở về chế độ 1(đèn Adjust time tắt). Nếu không muốn sử dụng chế độ hẹn giờ, vui lòng để thời gian tắt và mở bằng nhau.
67
7. Chi phí linh kiện Bảng 3.2 –Chi phí linh kiện
Số lượng
Đơn giá
giá
AT89S52
1
23000đ
23000đ
AT89C2051
1
20000đ
20000đ
Đế cắm 40 chân
1
3000đ
3000đ
Đế cắm 20 chân
1
2000đ
2000đ
MRF24J40MA
2
206750đ
413500đ
BTA12A
9
5000đ
45000đ
C1815
14
500đ
7000đ
A1015
4
500đ
2000đ
CRYSTAL 12MHz
2
3000đ
6000đ
CRYSTAL 32768
1
3000đ
3000đ
7805
1
5000đ
5000đ
1N4007
1
100đ
100đ
LM1117
1
5000đ
5000đ
Tụ 33p
4
50đ
200đ
Tụ 104
4
50đ
200đ
Tụ 1000u
4
1000đ
4000đ
Điện trở thanh 4k7
5
1000đ
5000đ
Điện trở 5k6
12
50đ
600đ
Điện trở 220
17
50đ
750đ
Điện trở 100
7
50đ
350đ
LED đơn
181
500đ
90500đ
Mạch in
1
60000đ
60000đ
Tên linh kiện
Tổng cộng:696300đ
68
TÀI LIỆU THAM KHẢO [1] Microchip. MRF24J40 Data Sheet IEEE 802.15.4™ 2.4 GHz RF Transceiver. năm 2008 [2] Microchip. SPI communication [3] Microchip MiWi™ P2P Wireless Protocol [4] Vishay Semiconductors. Data Formats for IR Remote Control [5] ATMEL datasheet of AT89S52 microcontroler [6] DALAS datasheet of RTC DS1307 [7] Phạm Hùng Kim Khánh. Giáo trình MCS51 [8] Trương Văn Tám. Giáo trình mạch tương tự. Nhà xuất bản Đại học Cần Thơ. Cần Thơ, 1995. [9] Lương Văn Sơn. Giáo trình Kỹ thuật số. Nhà xuất bản Đại học Cần Thơ. Cần Thơ, 1995.
69