Nghiên cứu cấu trúc, tính chất điện và huỳnh quang của Vật liệu lai nano sử dụng trong chiếu sáng mới : Luận án TS. Vật liệu và linh kiện nano (Chuyên ngành đào tạo thí điểm)
Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 73 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
73
Dung lượng
2,9 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VINH TUẤN ĐO LƯỜNG ĐIỀU KHIỂN TỪ XA QUA MẠNG ĐIỆN THOẠI DI ĐỘNG BẰNG MODULE SIM900 KẾT NỐI VI ĐIỀU KHIỂN ATMEGA8 LUẬN VĂN THẠC SĨ CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG HÀ NỘI – 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VINH TUẤN ĐO LƯỜNG ĐIỀU KHIỂN TỪ XA QUA MẠNG ĐIỆN THOẠI DI ĐỘNG BẰNG MODULE SIM900 KẾT NỐI VI ĐIỀU KHIỂN ATMEGA8 NGÀNH: CÔNG NGHỆ ĐIỆN TỬ – VIỄN THÔNG CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ MÃ SỐ: 60520203 LUẬN VĂN THẠC SĨ CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS TRẦN QUANG VINH HÀ NỘI – 2014 LỜI CẢM ƠN Em xin gửi lời gửi cảm ơn sâu sắc đến Thầy PGS TS Trần Quang Vinh tạo điều kiện giúp đỡ em hoàn thành luận văn Em xin cảm ơn tới bạn khóa hỗ trợ giải đáp vướng mắc em suốt trình nghiên cứu Em xin gửi lời cảm ơn Thầy cô Khoa Điện tử - Viễn thông, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội tận tình truyền đạt kiến thức bổ ích thời gian em học tập trường Cuối em xin gửi lời cảm ơn đến gia đình, bạn bè ln bên em, cổ vũ động viên em lúc khó khăn để hoàn thành luận văn Em xin chân thành cảm ơn! LỜI CAM ĐOAN Tôi xin cam đoan nội dung luận văn thực hiện, giúp đỡ định hướng thầy giáo hướng dẫn PGS TS Trần Quang Vinh Kiến thức trình bày luận văn chắt lọc qua trình tìm hiểu thực trạng công việc thực tế Tài liệu bảng biểu lấy từ nguồn khác trích dẫn đầy đủ Hà nội, ngày 10 tháng 10 năm 2014 Tác giả luận văn Nguyễn Vinh Tuấn MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ CHƯƠNG I TỔNG QUAN VỀ VI ĐIỀU KHIỂN ATMEGA 1.1 Giới thiệu chung 1.2 Cấu trúc nhân AVR 1.2.1 ALU 1.2.2 Thanh ghi trạng thái 1.2.3 Các ghi chức chung 1.2.4 Con trỏ ngăn xếp (SP) 1.2.5 Quản lý ngắt 1.2.6 Cấu trúc nhớ 10 1.3 Các cổng vào (I/O) 11 1.3.1 Thanh ghi DDRx 12 1.3.2 Thanh ghi PORTx 13 1.3.2 Thanh ghi PINx 13 1.4 Bộ định thời 13 1.4.1 Các ghi 14 1.4.2 Đơn vị đếm 14 1.5 USART 17 1.5.1 Tạo xung clock 18 1.5.2Định dạng khung truyền 19 1.5.3 Khởi tạo USART 20 1.5.4 Truyền thông liệu-bộ truyền USART 20 1.5.6 Nhận liệu-bộ nhận USART 20 1.6 Bộ biến đổi A/D 21 CHƯƠNG II: GIỚI THIỆU MODULE SIM 900 25 Tổng quan Module SIM900 25 2.2 Khảo sát sơ đồ chân chức chân 26 2.3 Các chế độ hoạt động sim900 28 2.3.1 Chế độ Hoạt động 28 2.3.2 Chế độ tắt nguồn 29 2.3 Tập lệnh AT 29 2.3.1 Cú pháp tổng quát lệnh AT mở rộng 30 2.3.2 Mã kết lệnh AT 30 2.3.4 Các lỗi +CMS ý nghĩa lỗi 30 2.3.5 Mã lỗi +CMS 31 CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 36 3.1 Kiến trúc phần cứng 36 3.2 Tích hợp mạch phần cứng 39 3.3 Công cụ lập trình 40 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 49 TÀI LIỆU THAM KHẢO 50 PHỤ LỤC 51 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT RAM : Random Access Memory ROM : Read Only Memory RE : Read Enable signal RISC: Reduced Instruction Set Computing AGSI : Advanced Simulation Interface ARM : Advanced RISC Machine RTOS : Real Time Operating System VCC : Voltage Connected to Collector ISS : Instruction Set Simulator IDE : Intergrated Development Environment LED : Light Emitting Diode ADSL : Asymmetric Digital Subscriber Line AM : Amplitude Modulation ARIB : Association of Radio Industries and Business ASK : Amplitude Shift Keying CFO : Carrier Frequency Offset CIR : Channel Impulse Response CP : Cycle Prefix CPE : Common Phase Error DAB : Digital Audio Broadcasting DC : Direct Current DFS : Dynamic Frequency Selection DFT : Discrete Fourier Transfrom DQPSK : Differential Quadrature Phase Shift Keying FDM : Frequency Divition Multiplexing FDD : Frequency Division Duplexing FEC : Forward Error Correction FFT : Fast Fourier Transfrom FM : Frequency Modulation DANH MỤC CÁC HÌNH VẼ Hình 1.1:Sơ đồ cấu trúc ATmega8 Hình 1.2 : Thanh ghi trạng thái SREG Hình 1.3 Thanh ghi chức chung Hình 1.4: Thanh ghi trỏ ngăn xếp Hình 1.5: Bản đồ nhớ chương trình 11 Hình 1.6 Bản đồ nhớ liệu SRAM 11 Hình 1.7 Sơ đồ cấu trúc định thời 14 Hình 1.8 Đơn vị đếm 14 Hình 1.9 Sơ đồ đơn vị so sánh ngõ 15 Hình 1.10 Thanh ghi điều khiển định thời 15 Hình 1.11 Thanh ghi định thời 16 Hình 1.12: Thanh ghi mặt nạ ngắt TIMSK 16 Hình 1.13 Thanh ghi cờ ngắt định thời 16 Hình 1.14 Sơ đồ khối USART 18 Hình 1.15 Đơn vị tạo xung clock 19 Hình 1.16 Định dạng khung truyền 19 Hình 1.17 Sơ đồ biến đổi A/D 21 Hình 1.17a Thanh ghi ADMUX 22 Hình 1.18 Thanh ghi điều khiển trạng thái ADC 22 Hình 1.19 Thanh ghi liệu ADC 24 Hình 2.1: Sơ đồ chức Sim 900 25 Hình 2.2 Sơ đồ chân Module Sim900 26 Hình 2.3 Ứng dụng mơ hình triển khai thực tế 34 Hình 3.1 Sơ đồ khối kết nối vi điều khiển với modul sim 900 36 Hình Sơ đồ khối hệ thống 36 Hình 3.3 mạch nguồn cung cấp 37 Hình 3.4 Mạch ATmega8 kết nối header 37 Hình 3.5 Mạch RS232 38 Hình 3.6 Cầu phân áp biến trờ 38 Hình 3.7 mạch Rơle đóng ngắt tải cơng suất 39 Hình 3.8 Mạch Vi điều khiển ATmega8 39 Hình 3.9 Mạch ModulSim900 40 Giao diện kết nối Mạch ATmega8 ModulSim900 40 Hình 3.10 Tạo project 40 Hình 3.11 Chọn lọa chip 41 Hình 3.11 Chọn cấu hình ATmega8 41 Hình 3.12 Giao diện chương trình 42 Hình 3.13 Các hàm biến định nghĩa 44 Hình 3.14 lưu đồ hoạt động, cấu trúc chương trình 44 Hình 3.15 mơ tả chu trình gọi hàm xử lý liệu 45 Hình 3.16 Tạo project chương trình java 46 Hình 3.17 Sơ đồ hàm biến xử lý số liệu 46 Hình 3.20 Tương tác gọi hàm xử lý khối chức 47 Hình 3.18 Giao diện chương trình điện thoại hoạt động 48 MỞ ĐẦU Hiện nay, xung quanh ta bắt gặp nhiều sản phẩm công nghệ điện – điện tử với quy mô to, nhỏ tất các lĩnh vực viễn thông, y tế, giáo dục, … Trên giới nước phát triển công nghệ, ứng dụng điện tử điều khiển đo lường phát triển từ lâu, Việt Nam phát triển mới, hầu hết nhập nguyên sản phẩm phục vụ cho ứng dụng mà chưa tự tạo riêng cho nhiều ứng dụng mang tính cơng nghệ đặc biệt để đáp ứng nhu cầu thực tế Với yêu cầu trên, đề tài tập trung vào việc phát triển module “ĐO LƯỜNG ĐIỀU KHIỂN TỪ XA QUA MẠNG ĐIỆN THOẠI DI ĐỘNG BẰNG MODULE SIM 900 KẾT NỐI VI ĐIỀU KHIỂN ATMEGA8” Phạm vi đề tài ứng dụng: Hệ thống đo lường tín hiệu đo điện áp đầu vào, đưa tín hiệu điều khiển lối ra, có tác động từ đầu vào (bật nguồn, cảm biến, công tắc hành trình…) hệ thống gửi tin nhắn thơng báo trạng thái tới người điều khiển, người sử dụng tương tác với hệ thống phần cứng việc gửi tin nhắn theo tập lệnh định nghĩa từ trước Hệ thống áp dụng vào việc đo giá trị điện áp biến đổi biến trở, điều khiển bật tắt đèn, ứng dụng đơn giản tương tự Tuy nhiên thời gian kiến thức có hạn nên luận văn chưa thể đề cập đầy đủ vấn đề liên quan, chắn không tránh khỏi thiếu sót Em mong nhận thông cảm hy vọng nhận nhiều ý kiến đóng góp để em có thêm kiến thức quý báu cho công việc tương lai Em xin chân thành cảm ơn ! CHƯƠNG I TỔNG QUAN VỀ VI ĐIỀU KHIỂN ATMEGA 1.1 Giới thiệu chung ATmega có cơng suất cao, tiêu thụ lượng thấp, cấu RISC tiến với 130 lệnh với chu đơn xung lớn nhất, 32 ghi đa mục đích 8bit, 16 MIPA số đặt 16MHz, nhân chu kỳ On-chip, Power-on Reset Brown-out Dectectiion lập trình, dao động RC bên lập trình mức, mode ngủ ( Idle, ADC Noise reduction, Power-save, power-down Standby), có khả Reset bật nguồn, khả dò lỗi Brown out laapjt rình được, có nguồn ngắt ngồi Thiết bị sản xuất áp dụng cơng nghệ tích hợp nhớ non-volatile cao Atmel Bộ nhớ chương trình Flash lập trình thơng qua ghép nối tiếp SPI chương trình lập trình boot sử dụng ghép nối để download chương trình ứng dụng nhớ Flash Mạch gồm có Atmega8, Sim900, port mở rộng, cổng Com kết nối với máy tính, giao tiếp với Sim900 Hình 1.1:Sơ đồ cấu trúc ATmega8 ATmega8 vi điều khiển bit, 8Kbyte flash, 512byte EEPROM, 1Kbyte SRAM, có hai timer/couter bit 01 timer/couter 16 bit, có kênh điều khiển xung, kênh lối vào chuyển đổi DC độ phân giải 10 bit dựa kiến trúc RISC Sử dụng mạch giao động từ 0-8Mhz với Atmega8L, với atmega8 từ 0-16Mhz ATmega 8 hỗ trợ đầy đủ chương trình cơng cụ phát triển hệ thống như: trình dịch C, macro assemblers, chương trình mô phỏng/sửa lỗi, kit thử nghiêm, 1.2 Cấu trúc nhân AVR AVR sử dụng cấu trúc Harvard, tách riêng nhớ bus cho chương trình liệu Các lệnh thực chu kỳ xung clock Bộ nhớ chương trình lưu nhớ Flash 1.2.1 ALU ALU làm việc trực tiếp với ghi chức chung Các phép toán thực chu kỳ xung clock Hoạt động ALU chia làm loại: đại số, logic theo bit 1.2.2 Thanh ghi trạng thái Đây ghi trạng thái có bit lưu trữ trạng thái ALU sau phép tính số học logic Hình 1.2 : Thanh ghi trạng thái SREG C: Carry Flag ;cờ nhớ (Nếu phép tốn có nhớ cờ thiết lập) Z: Zero Flag ;Cờ zero (Nếu kết phép toán 0) N: Negative Flag (Nếu kết phép toán âm) V: Two’s complement overflow indicator (Cờ thiết lập tràn số bù 2) V, For signed tests (S=N XOR V)S: N H: Half Carry Flag (Được sử dụng số toán hạng rõ sau) T: Transfer bit used by BLD and BST instructions(Được sử dụng làm nơi chung gian lệnh BLD,BST) I: Global Interrupt Enable/Disable Flag (Đây bit cho phép toàn cục ngắt Nếu bit trạng thái logic khơng có ngắt phục vụ.) 57 #ifdef DEBUG_PROCESS_DATA { printf("\r\ndata_index_:%d",data_index); } #endif for(i=0;ii)&&(i>0))//neu dau cua khung nam o giua thi cho ve dau { if((rx_data[i]=='+')&&(rx_data[i+1] == 'C')) //dung ma dau cua tin nhan { memmove(rx_data,rx_data+i,data_index-i); data_index -= i; //printf("\r\n Nhan duoc ma khung"); return; //ket thuc khong xu ly nua } if((rx_data[i]=='\r')&&(rx_data[i+1] == '\n')&&(rx_data[0] == '+')) { Temp1++; if(Temp1==1) ViTriDauKhung = i+2; //lay vi tri bat dau cua du lieu //printf("\r\n Xuong dong: %d",Temp1); if(Temp1>1) { DuSoKhung = yes; //co bao du so khung va cho phep lay du lieu ViTriKtKhung = i+1; //ViTriKtKhung = '\n' goto Du_Khung; //return; } } } if((i>60)&&(rx_data[0] != '+')&&(iRX_DATA_SIZE))//||((data_index>4)&&(rx_data[4]!='R')))/ /||(i+1>=RX_DATA_SIZE))//|| { data_index=0; } } } Du_Khung: /* -xu ly du lieu da nhan du */ if(DuSoKhung==yes) { #ifdef DEBUG_PROCESS_DATA { printf("\r\n du so khung, Data="); } #endif /* du so khung va bat dau xu ly du lieu -*/ if((!strncmp(rx_data,"+CMT:",5))||(!strncmp(rx_data,"+CMGR:",6))) { //printf("\r\n Get data \r"); GetData(); } rx_data[0] = 1; //reset memmove(rx_data,rx_data+ViTriKtKhung+1,data_index-ViTriKtKhung-1); data_index -= (ViTriKtKhung+1); DuSoKhung = no; } } void GetPhoneNumber(char *phone) 59 { char i,j; #ifdef DEBUG_GET_DATA { printf("\r\n PhoneCheck:"); } #endif for(i=6;i