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 này. 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è bên em, cổ vũ động viên em lúc khó khăn để hoàn thành luận văn này. 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 2. 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 3. 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ế chúng ta. 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 ngoà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 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 toá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 ngắt phục vụ.) 56 } else { memmove(rx_data+data_index,rx_buffer,rx_wr_index); //copy du lieu vao bo dem data_index += rx_wr_index; rx_wr_index = 0; } if(data_index>RX_DATA_SIZE) { data_index = 0; #ifdef DEBUG_PROCESS_DATA { printf("\r\nOver"); } #endif } #asm("sei"); //printf("\r\n Sau copy,data_index:%d",data_index); } else if(rx_wr_index>(RX_DATA_SIZE-data_index)) { #asm("sei"); return; } #asm("sei"); } } /*-----Tach du lieu SMS cac lenh-----------------tach tung khung de dua lenh thuc hien du lieu tra ve la lenh tuong ung. ------------------------------------------------------ */ void ProcessData(void) { unsigned int i; char Temp1 = 0; if(data_index>1) { if(DuSoKhung==no) { 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[...]... ( RS232, Audio, ADC, VRTC, PWM, I2C ) Dễ kết nối kết nối với các dòng vi điều khiển như PIC, AVR, ARM, Arduino để phát triển các ứng dụng điều khiển, giám sát qua môi trường mạng GSM, GPRS Ngõ ra RS232 giúp giao tiếp máy tính và lập trình cho Module Sim900 thông qua tập lệnh AT COMMAND Hình 2.1: Sơ đồ chức năng Sim 900 1.1 Đặc điểm kĩ thuật của GSM Module Sim900 Module GSM/GPRS SIM900: - Quad-Band 850/900/1800/1900MHz... đất GPIO6/KBC4 O Giao di n bàn phím - PIN 52: NETLIGHT O Trạng thái mạng Chân này được nối với một LED, khi bắt được tần số mạng của sim lắp vào, LED này sẽ luôn luôn nhấp nháy - PIN 53: GND Nối đất - PIN 55: VBAT chân VBAT được dành riêng để kết nối điện áp cung cấp cho sim900 hoạt động Nguồn điện áp của sim900 hoạt động là VBAT = 3.4V 4.5V Nó phải có khả năng cung cấp đủ dòng điện trong tăng mạch... được điều khiển bởi thanh ghi ADMUX ADC này có thể hoạt động được ở hai chế độ Đó là chuyển đổi đơn:chỉ chuyển đổi một lần khi có lệnh chuyển đổi và chế độ tự chuyển đổi (Free running mode) đây là chế độ mà ADC tự động chuyển đổi khi được hoạt động và công vi c chuyển đổi có tính tuần hoàn(chỉ cần khởi động một lần) ADC được phép hoạt động nhờ thiết lập bit ADEN Quá trình chuyển đổi được bắt đầu bằng vi c... được Tóm lại - Để đọc dữ liệu từ ngoài thì ta phải thực hiện các bước sau: Đưa dữ liệu ra thanh ghi điều khiển DDRxn để đặt cho PORTx (hoặc bit n trong port) đó là đầu vào (xóa thanh ghi DDRx hoặc bit) Sau đó kích hoạt điện trở pull-up bằng cách set thanh ghi PORTx ( bit) Cuối cùng đọc dữ liệu từ địa chỉ PINxn (trong đó x: là cổng và n là bit) - Để đưa dữ liệu từ vi điều khiển ra các cổng cũng có các... tám chân của PORTA và chúng được chọn thông qua một MUX 22 Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi:ADMUX là thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA là thanh ghi điều khiển và thanh ghi trạng thái của ADC, ADCH và ADCL là 2 thanh ghi dữ liệu ADMUX: Multiplexer select register Đây là thanh ghi điều khiển 8 bit Hình 1.17a Thanh ghi ADMUX Với 4... bắt đầu hoạt động Dòng điện cung cấp I thường tăng lên đến 2A Hiệu điện thế chuẩn: Vchuẩn = 4.0V Hiệu điện thế lớn nhất: Vmax = 4.5V Hiệu điện thế nhỏ nhất: Vmin = 3.4V - PIN 56: VBAT - PIN 57: VBAT - PIN 58: GND Nối đất - PIN 59: GND - PIN 60: RF_ANT O Ăng ten thu sóng GND Nối đất - PIN 66: STATUS O Hiển thị trạng thái làm vi c của sim bằng đèn LED Khi có nguồn cung cấp cho sim900 hoạt động, LED này... lệnh "AT + CPOWD = 1" hoặc bằng cách sử dụng trực tiếp chân PWRKEY Nguồn quản lý ASIC ngắt kết nối các nguồn cung cấp từ sim900 Và nó chỉ cung cấp năng lượng cho các RTC còn lại Phần mềm không hoạt động Không thể truy cập các cổng nối tiếp khác Tuy nhiên điện áp hoạt động (kết nối với VBAT) vẫn còn Ngừng hoạt động nhưng không cần ngắt nguồn cung cấp Sử dụng lệnh "AT + CFUN" để thiết lập sim900 về chế... SMS từ hệ thống bình thường - GSM IDLE 29 Phần mềm được kích hoạt để hoạt động Sim900 đã đăng nhập vào hệ thống mạng GSM, và sẵn sàng để gửi và nhận tin nhắn,cuộc gọi - GSM TALK Kết nối giữa sim900 và thiết bị khác hỗ trợ GPRS được thực hiện Trong trường hợp này, công suất tiêu thụ phụ thuộc vào các thiết lập mạng như DTX bật/tắt, FR/EFR/HR, ăng-ten - GPRS STANDBY Sim900 đã sẵn sàng cho vi c kết nối. .. tin nhắn SMS tới một số điện thoại cho trước Cú pháp gửi tin như sau: - AT+CMGS= “số điện thoại cần gửi” - Nội dung tin nhắn - ESC/Ctrl Z Số điện thoại cần gửi phải được đặt trong dấu ngoặc kép Sau khi gõ xong số điện thoại thì cần thực hiện lệnh enter để xuống dòng và bắt đầu nội dung tin nhắn Kết thúc lệnh này bằng vi c thực hiện lệnh Cltr Z Ví dụ lệnh gửi tin nhắn tới số 0989196980 với nội dung “abcd”... Bộ đệm của bộ nhận có thể được đọc bằng cách đọc UDR Ví dụ sau đây là một hàm nhận USART dựa trên vi c kiểm tra cờ kết thúc truyền (RXC) Nhận khung với 9 bit dữ liệu Nếu nhận dữ liệu 9 bit, bit thứ 9 phải được đọc từ bit RXB8 trong thanh ghi UCSRB trước khi đọc các bit thấp trong UDR Ví dụ sau đây là một hàm nhận dữ liệu 9 bit 21 1.6 Bộ biến đổi A/D Vi điều khiểnATmega8 có một bộ biến đổi ADC tích . 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 và ứng dụng: Hệ thống đo lường tín hiệu đo. 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. 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