Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 129 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
129
Dung lượng
4,58 MB
Nội dung
1 Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân LỜI MỞ ĐẦU Đối với quân đội ta nhiệm vụ trọng tâm thời bình huấn luyện chiến đấu để đảm bảo cho đội có đủ sức mạnh tinh thần, vật chất sẵn sàng hoàn thành nhiệm vụ giao Quán triệt chủ trương đại hoá quân đội Đáp ứng yêu cầu ngày tăng công tác huấn luyện quân thời kỳ đổi đại Sự phát triển vượt bậc khoa học kỹ thuật năm gần Đối với lĩnh vực quân sự, cơng nghệ điện tử, tin học nói chung kỹ thuật vi xử lý nói riêng ứng dụng để cải tiến, nâng cấp chế tạo trang thiết bị phục vụ huấn luyện chiến đấu sẵn sàng chiến đấu Hiện phương thức truyền tin vơ tuyến điện báo MORSE (Bảng mã MORSE cở sở để mã hố / giải mã thơng tin thực truyền tin vô tuyến điện báo) phổ biến Qua trình học tập, với tìm hiểu đơn vị thơng tin Tơi nhận thấy trang thiết bị dùng cho huấn luyện báo vụ cịn thơ sơ Chính vậy, phải sử dụng phương pháp huấn luyện thủ cơng chủ yếu Từ chất lượng huấn luyện báo vụ, trình độ đội ngũ nhân viên báo vụ cịn nhiều hạn chế Thơng qua nội dung mơn học khố học, Đã trang bị kiến thức đầy đủ lập trình chương trình điều khiển cho ONCHIP, kiến thức thiết kế mạch điện chức có ứng dụng ONCHIP Trên sở vi xử lý hãng Intel, ngày với công nghệ cao người ta chế tạo vi xử lý ONCHIP có tốc độ xử lý nhanh, dung lượng nhớ ROM, RAM lớn tích hợp sẵn nhiều chức Tiểu biểu ONCHIP 89, AVR, đặc biệt PIC DSPIC hãng MICROCHIP sản xuất PIC, DSPIC phù hợp với tất ứng dụng từ đơn giản đến phức tạp Đặc biệt phù hợp giải toán điều khiển, nên người ta cịn gọi vi điều khiển PIC, DSPIC Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân Ngoài việc dùng ngơn ngữ lập trình ASM thơng dụng, cịn sử dụng ngơn ngữ lập trình khác : C, PASCAL, BASIC để lập trình cho hệ thống Tất nội dung lý thúc đẩy tơi đến chọn đề tài cho luận văn tốt nghiệp có tên là: "Nghiên cứu thiết kế thiết bị huấn luyện báo vụ cơng nghệ DSPIC" Đề tài gồm có chương: + Chương một: Tổng quan công nghệ vi điều khiển PIC, DSPIC + Chương hai: Lập trình cho chức PIC, DSPIC + Chương ba: Tổng quan thiết bị huấn luyện báo vụ chuyên dùng + Chương bốn: Thiết kế chế tạo phần cứng + Chương năm: Thiết kế lập trình phần mềm Kết nghiên cứu đề tài sản phẩm ứng dụng đơn vị huấn luyện quân đội, đảm bảo thông tin vô tuyến điện báo Ngoài kết nghiên cứu đề tài mở hướng việc ứng dụng công nghệ PIC, DSPIC để nghiên cứu thiết kế, chế tạo trang thiết bị quân Nội dung luận văn nguồn tài liệu tương đối đầy đủ công nghệ PIC, DSPIC, cách đưa công nghệ ứng dụng thực tế Giúp cho sinh viên khác, cho muốn học tập nghiên cứu để ứng dụng cơng nghệ Học viên: Hồng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân Chương TỔNG QUAN VỀ CÔNG NGHỆ VI ĐIỀU KHIỂN PIC, DSPIC 1.1 Giới thiệu hệ vi điều khiển PIC, DSPIC Vi điều khiển thực chất cấu trúc siêu nhỏ, bao gồm linh kiện điện tử có kích thước cỡ MICRO NANO Các linh kiện kết hợp với nhau, sau nối tới thiết bị bên ngồi thơng qua chân vi điều khiển Chính hiểu kiến trúc vi điều khiển, thuận tiện sử dụng chúng vào ứng dụng Kiến trúc vi điều khiển, giống kiến trúc máy tính Các vi điều khiển nay, thường phổ biến hai dạng kiến trúc sau Kiến trúc VON NEUMANN, kiến trúc HARVARD Sự khác hai kiến trúc này, chỗ việc tổ chức nhớ liệu nhớ chương trình Kiến trúc VON NEUMANN tổ chức nhớ liệu chương trình chung với nhau, vi điều khiển có kiến trúc sử dụng chung đường truyền (BUS) Ưu điểm vi điều khiển có kiến trúc tận dụng tài nguyên nhớ, nhược điểm tốc độ xử lý không đạt cao Còn kiến trúc HARVARD lại tách rời nhớ liệu nhớ chương trình, đường truyền (BUS) tách riêng Vì vi điều khiển có kiến trúc đạt tốc độ xử lý cao, nhược điểm không tận dụng tài nguyên nhớ Mặt khác đường truyền liệu đường truyền lệnh điều khiển, có dung lượng khác Hiện có họ vi điều khiển tiếng, 8051 (Bao gồm AVR), MOTOROLA PIC (Bao gồm DSPIC) Để hiểu vi điều khiển, sử dụng thành thạo cần phải có kiến thức sau: - Tìm hiểu kiến trúc máy tính, kiến trúc VON MEUMANN, kiến trúc HARVARD; - Tìm hiểu khái niệm RISC, CISC; - Khái niệm ghi; Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân - Khái niệm STACK; - Khái niệm trỏ POINTER; - Khái niệm địa chỉ, địa gián tiếp ghi; - Khái niệm định thời (TIMER); - Khái niệm ngắt trong, ngắt - Các chuẩn giao tiếp RS232, USB, I2C - Thành thạo số ngơn ngữ lập trình cho vi điều khiển PIC tên viết tắt "Máy tính thơng minh" (PROGRAMMABLE INTELLIGENT COMPUTER) hãng GENERAL INSTRUMENT đặt tên cho vi điều khiển hãng PIC1650 Đây vi điều khiển đầu tiên, đồng thời cịn tiền đề cho đời vi điều khiển họ PIC sau hãng Họ vi điều khiển PIC có cấu trúc HARVARD, có tốc độ xử lý cao Đồng thời dung lượng nhớ liệu, nhớ chương trình tương đối lớn Họ vi điều khiển PIC phù hợp với ứng dụng từ đơn giản đến ứng dụng phức tạp, đặc biệt phù hợp với ứng dụng có liên quan đến cấu điều khiển Đến ngày nay, PIC1650 phát triển thành PIC16C54 Hãng MICROCHIP (WWW.MICROCHIP.COM) tiếp tục phát triển sản phẩm vi điều khiển, có vi điều khiển PIC Cho đến nay, sản phẩm vi điều khiển PIC MICROCHIP gần 100 loại sản phẩm từ họ 10Fxxx, 18LFxxx, 18Fxxx đến họ 12Cxxx, 12Fxxx, 16Cxxx, 17Cxxx, 16Fxxx, 16Fxxx,16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx Tuy nhiên có số họ PIC khơng cịn sản xuất Hiện hãng MICROCHIP có họ vi điều khiển 16-BIT, gồm PIC24H PIC24F Tiếp đến họ vi điều khiển 32-BIT có tên PIC32MX, họ vi điều khiển DSPIC30F DSPIC33F Phân loại PIC theo chữ cái: Các họ PIC xxCxx đưa vào nhóm, gọi nhóm OTP (ONE TIME PROGRAMMANBLE) Nhóm lập trình nạp chương trình cho lần nhất, khơng thể thay đổi Học viên: Hồng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân chương trình bên mạch điện thơng thường Nhóm thứ hai theo cách phân chia này, số cịn lại với chữ F, LF 16C84 Nhóm nhóm FLASH, cho phép ghi xố mạch điện tử thông thường (Ngày người ta sản xuất loại này) Chúng ta gọi nhóm nhóm FLASH, thực tế bao gồm nhóm EEPROM FLASH Tuy nhiên, chung đặc điểm ghi xố nhiều lần nên gọi chung thành nhóm FLASH Phân loại PIC theo hai số sản phẩm: Đây cách phân loại thơng dụng, họ PIC DSPIC thuộc nhóm FLASH Do cách phân loại nói lên khác họ vi điều khiển PIC DSPIC Loại thứ dòng PIC (BASE-LINE), gồm PIC 12Cxxx, loại thứ hai dịng PIC 10,12F 16, gọi dịng phổ thơng (MID-RANGE) Loại thứ ba dòng PIC 18 (HIGH-END) Sự khác dịng độ dài lệnh (INSTRUCTION WORD LENGTH), với dịng BASE-LINE có độ dài lệnh 12 BIT, MID-RANGE có độ dài lệnh 14 BIT HIGH-END có độ dài từ lệnh 16-BIT Tuy nhiên dịng PIC có độ dài từ lệnh lớn thường có nhớ ROM, RAM lớn hơn, tích hợp sẵn nhiều chuẩn giao tiếp ví dụ: Dịng PIC 16F8xxA dịng PIC MID-RANGE, thông dụng Việt Nam PIC 16F877A Cấu hình cụ thể dịng sau: Bảng 1-1 Cấu hình PIC16FxxxA Từ bảng thấy PIC 16F877A có cấu sau: Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân - Bộ nhớ chương trình (PROGRAM MEMORY): 14.3 KBYTES - Số lệnh điều khiển (WORD INSTRUCTIONS): 8192 lệnh - Bộ nhớ SRAM: 368 BYTES - Bộ nhớ EEPROM (bộ nhớ EPROM nội): 256 BYTES - Số chân I/O = 33 chân - Số chân nhận tín hiệu vào để chuyển đổi A/D 10 BIT: chân - Tích hợp sẵn giao tiếp PWM (Điều khiển động cơ) - Tích hợp sẵn giao tiếp SPI - Tích hợp sẵn giao tiếp I2C - Tích hợp sẵn giao tiếp USART - Tích hợp sẵn định thời BIT, định thời 10 BIT - Tích hợp sẵn so sánh Dịng PIC 18Fxxxx dịng PIC HIGH-END, thơng dụng Việt Nam PIC 18F4550 Cấu hình cụ thể dịng sau: Bảng 1-2 Cấu hình PIC18Fxxxx Từ bảng thấy PIC 18F4550 có cấu sau: - Bộ nhớ chương trình (PROGRAM MEMORY): 32 KBYTES (Lớn gấp lần so với dòng 16F877A) - Số lệnh điều khiển (WORD INSTRUCTIONS): 16384 lệnh - Bộ nhớ SRAM: 2048 BYTES - Bộ nhớ EEPROM (bộ nhớ EPROM nội): 256 BYTES - Số chân I/O = 35 chân Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân - Số chân nhận tín hiệu vào để chuyển đổi A/D 10 BIT: 13 chân - Tích hợp sẵn giao tiếp PWM (Điều khiển động cơ) - Tích hợp sẵn giao tiếp SPI Tích hợp sẵn giao tiếp I2C - Tích hợp sẵn giao tiếp USART - Tích hợp sẵn định thời BIT, định thời 16 BIT - Tích hợp sẵn so sánh - Tích hợp sẵn chuẩn giao tiếp USB Cịn dịng DSPIC có cấu hình cụ thể sau: Bảng 1-3 Cấu hình DSPIC30Fxxxx 1.2 Cấu trúc PIC, DSPIC 1.2.1 Cấu trúc chân cắm PIC DSPIC thường có cấu trúc vỏ chíp (Bộ chân cắm) kiểu QFN, TQFP thông dụng kiểu PDIP Cụ thể sau: Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân Hình 1-1 Cấu trúc chân cắm QFN, TQFP PIC Hình 1-2 Cấu trúc chân cắm PDIP DSPIC PIC Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân 1.2.2 Chức chân vi điều khiển Một chân vi điều khiển thường có nhiều chức năng, thời điểm thực chức cụ thể Việc thực chức người lập trình quy định, chức chân thay đổi vi điều khiển hoạt động Thông thường chân vi điều khiển chia thành nhóm sau đây: - Các chân dùng để cấp nguồn - Các chân dùng để nối tới thạch anh - Các cổng I/O - Các chân chức Ví dụ vi điều khiển 18F4550, chức chân sau: Trong chân có chức sau: + Các chân cấp nguồn: - Chân 11, 32 (VDD) - Chân 12, 31(VSS) + Các chân nối tới thạch anh, dao động ngồi: - Chân 13 (Osc1) Hình 1-3 Cấu trúc chi tiết chân cắm PIC 18F4550 Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 10 Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân - Chân 14(Osc2) + Các cổng I/O bao gồm: - Cổng A (A0 A5), từ chân đến chân 7; - Cổng B (B0 B7), từ chân 33 đến chân 40; pin pin - Cổng C (C0 C7), từ chân 15 đến chân 18 từ chân 23 đến chân 26; pin - Cổng D (D0 D7), từ chân 19 đến chân 22 từ chân 27 đến chân 30; pin - Cổng E (E0 E2), từ chân đến chân 10; pin + Các chân chức bao gồm: - Chân (RESET); - Chân 18, 23, 24 (Giao tiếp USB); - Chân 25, 26 (Giao tiếp USART); (25=TxD=RC6; 26=RxD=RC7) - Chân 33, 34 (Giao tiếp I2C); Ngồi cịn có chân thực chức khác như: Nạp chương trình, giao tiếp PWM, A/D, ngắt Mỗi cổng, chân vi điều khiển có địa PORT, địa SET_TRIS Thao tác hai địa này, cho phép sử dụng cổng, chân theo mục đích sử dụng 1.3 Các loại mạch nạp phần mềm điều khiển nạp cho PIC, DSPIC Có nhiều loại mạch nạp cho PIC, DSPIC Mỗi loại mạch nạp thường kèm với phần mềm, để điều khiển mạch nạp hoạt động Thông thường mạch nạp cho PIC nạp cho DSPIC Tuy nhiên có số mạch nạp cho PIC có cấu tạo đơn giản, phần mềm điều khiển không hỗ trợ không nạp cho DSPIC + Các kiểu mạch nạp phổ biến - Mạch nạp kết nối qua cổng song song (Hay gọi LPT): Ưu điểm loại mạch nạp có kết nối kiểu tốc độ nạp nhanh, an toàn cho PIC Nhược điểm máy tính thường khơng có cổng LPT, mạch nạp sử dụng; Đồng thời thường không hỗ trợ nạp cho DSPIC Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 115 Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân } kt_b7=1; //Mở chốt dieukhien_out(); //Xuất liệu BUS điều khiển } 5.2 Chương trình monitor cho PIC SLAVE 5.2.1 Lưu đồ thuật toán Khởi động Chờ lệnh từ PIC MASTER Huấn luyện thu báo Thay đổi tần số tín hiệu MORSE Huấn luyện phát báo Hình đồ thuật toán 5.2.2 Mã nguồn5-3 Lưusố MODUL chương trình MONITOR PIC SLAVE + Nhận liệu từ PIC MASTER giải mã lệnh điều khiển Dữ liệu từ PIC MASTER truyền xuống PIC SLAVE, thông qua giao tiếp I2C Do PIC SLAVE để việc thu liệu thuận tiện, kịp thời PIC SLAVE phải sử dụng chế ngắt ( Ngắt #INT_SSP) PIC SLAVE vừa thu liệu về, vừa thực giải mã liệu để tìm lệnh điều khiển, bao gồm lệnh điều khiển sau: - Lệnh điều khiển tần số - Lệnh điều khiển huấn luyện thu báo - Lệnh điều khiển huấn luyện phát báo Đoạn mã nguồn CCS sau chương trình MONITOR PIC SLAVE, thực toàn nhiệm vụ nêu Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 116 Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân //=====================Ngắt thu I2C============================ #INT_SSP void i2c_isr() { int8 ka; int8 state; state= i2c_isr_state(); if (state < 0x80) { value = i2c_read(); if (value=='!') {index_i2c=0; data_bd=0;} //else{index_i2c=index_i2c+1;} //data_i2c[index_i2c]=value; if (value!='!' && data_bd==0) { index_i2c=index_i2c+1; data_i2c[index_i2c]=value;} if (value!='!' && data_bd==1) { ++index; thu[index]=value;} if (value=='%')// ket thuc chuoi i2c => xu ly { if (data_i2c[1]=='T') // Lenh HL thu bao { play_STOP=0; phatbao=1; } if (data_i2c[1]=='?') //slave=>master: bd, td,td1 -{ datap_i2c[1]='!'; datap_i2c[2]=(file/100); datap_i2c[3]=(file%100)/10; datap_i2c[4]=(file%100)%10; datap_i2c[5]=(td/100); datap_i2c[6]=(td%100)/10; Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 117 Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân datap_i2c[7]=(td%100)%10; datap_i2c[8]=td1; indexp_i2c=8; } if(data_i2c[1]=='V') //master => slave: td,td1 { td=((int16)data_i2c[2]*100)+((int16)data_i2c[3]*10)+ (int16)data_i2c[4]; td1=data_i2c[5]; trep=data_i2c[5]-1; if (trep slave: STOP. -{ play_STOP=2; } if (data_i2c[1]=='Z') //master => slave dieu khien tan so cua bo dao dong { tanso=data_i2c[2]-2; output_E(tanso); } if (data_i2c[1]=='E') //HL thu co PCT, hoac PCD { wmax=data_i2c[2]; lso=data_i2c[3]; lcai=data_i2c[4]; tongchu=((int16)data_i2c[5]*100)+ ((int16)data_i2c[6]*10)+(int16)data_i2c[7]; //tong so chu toan ban dien xoathu(); index=0; data_bd=1; } if (data_i2c[1]=='P') Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 118 Luận văn thạc sỹ kỹ thuật Tiến Hướng dẫn KH: PGS.TS: Đỗ Xuân { play_STOP=0; phatbao=2; } }// -ket thuc chuoi i2c } if (state == 0x80)//data tu slave > master { if (indexp_i2c>=1) //co data can truyen ve master { i2c_write(datap_i2c[1]); indexp_i2c=indexp_i2c-1; for (ka=0;ka