Đăng ký Đăng nhập
Trang chủ Tóm tắt luận văn thạc sĩ kỹ thuật nghiên cứu thiết kế thiết bị huấn luyện báo ...

Tài liệu Tóm tắt luận văn thạc sĩ kỹ thuật nghiên cứu thiết kế thiết bị huấn luyện báo vụ trên công nghệ dspic

.PDF
131
118
148

Mô tả:

1 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến LỜI MỞ ĐẦU Đối với quân đội ta nhiệm vụ trọng tâm trong thời bình là huấn luyện chiến đấu để đảm bảo cho bộ đội có đủ sức mạnh tinh thần, vật chất sẵn sàng hoàn thành các nhiệm vụ đƣợc giao. Quán triệt chủ trƣơng hiện đại hoá quân đội. Đáp ứng các yêu cầu ngày càng tăng của công tác huấn luyện quân sự trong thời kỳ đổi mới và hiện đại. Sự phát triển vƣợt bậc của khoa học kỹ thuật trong những năm gần đây. Đối với lĩnh vực quân sự, công nghệ điện tử, tin học nói chung và kỹ thuật vi xử lý nói riêng đƣợc ứng dụng để cải tiến, nâng cấp và chế tạo ra các trang thiết bị mới phục vụ huấn luyện chiến đấu và sẵn sàng chiến đấu. Hiện nay phƣơng thức truyền tin vô tuyến điện báo MORSE (Bảng mã MORSE chính là cở sở để mã hoá / giải mã thông tin khi thực hiện truyền tin vô tuyến điện báo) vẫn là phổ biến. Qua quá trình học tập, cùng với sự tìm hiểu tại các đơn vị thông tin. Tôi nhận thấy rằng các trang thiết bị dùng cho huấn luyện báo vụ hiện nay còn rất thô sơ. Chính vì vậy, phải sử dụng phƣơng pháp huấn luyện thủ công là chủ yếu. Từ đó chất lƣợng huấn luyện báo vụ, cũng nhƣ trình độ của đội ngũ nhân viên báo vụ hiện nay còn nhiều hạn chế. Thông qua nội dung các môn học của khoá học, Đã trang bị các kiến thức rất đầy đủ về lập trình chƣơng trình điều khiển cho các ONCHIP, cũng nhƣ các kiến thức về thiết kế các mạch điện chức năng có ứng dụng các ONCHIP. Trên cơ sở của bộ vi xử lý cơ bản của hãng Intel, ngày nay với công nghệ cao ngƣời ta đã chế tạo ra các bộ vi xử lý ONCHIP có tốc độ xử lý nhanh, dung lƣợng bộ nhớ ROM, RAM lớn và tích hợp sẵn nhiều chức năng. Tiểu biểu là các ONCHIP nhƣ 89, AVR, ... đặc biệt là PIC và DSPIC do hãng MICROCHIP sản xuất. PIC, DSPIC phù hợp với tất cả các ứng dụng từ đơn giản đến phức tạp. Đặc biệt nó rất phù hợp khi giải quyết các bài toán về điều khiển, nên ngƣời ta còn gọi nó là 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 2 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Ngoài việc dùng ngôn ngữ lập trình ASM thông dụng, chúng ta còn có thể sử dụng các ngôn ngữ lập trình khác nhƣ : C, PASCAL, BASIC..để lập trình cho hệ thống của mình. Tất cả các nội dung trên là lý do chính thúc đẩy tôi đ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ụ trên công nghệ DSPIC". Đề tài gồm có các chƣơng: + Chƣơng một: Tổng quan về công nghệ vi điều khiển PIC, DSPIC. + Chƣơng hai: Lập trình cho các chức năng của PIC, DSPIC. + Chƣơng ba: Tổng quan về thiết bị huấn luyện báo vụ chuyên dùng. + Chƣơng bốn: Thiết kế và chế tạo phần cứng. + Chƣơng năm: Thiết kế và lập trình phần mềm. Kết quả nghiên cứu của đề tài là một sản phẩm sẽ đƣợc ứng dụng tại các đơn vị huấn luyện trong quân đội, đảm bảo thông tin vô tuyến điện báo. Ngoài ra kết quả nghiên cứu của đề tài còn mở ra một hƣớng mới trong việc ứng dụng công nghệ PIC, DSPIC để nghiên cứu thiết kế, chế tạo các trang thiết bị mới trong quân sự hiện nay. Nội dung của luận văn còn là một nguồn tài liệu tƣơng đối đầy đủ về công nghệ PIC, DSPIC, cách đƣa công nghệ này và các ứng dụng thực tế... Giúp cho các sinh viên khác, hoặc cho những ai muốn học tập và nghiên cứu để ứng dụng công nghệ này. Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 3 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Chương 1 TỔNG QUAN VỀ CÔNG NGHỆ VI ĐIỀU KHIỂN PIC, DSPIC 1.1. Giới thiệu về hệ vi điều khiển PIC, DSPIC Vi điều khiển thực chất là một cấu trúc siêu nhỏ, nó bao gồm các linh kiện điện tử có kích thƣớc cỡ MICRO hoặc NANO. Các linh kiện này đƣợc kết hợp với nhau, sau đó đƣợc nối tới các thiết bị bên ngoài thông qua các chân của vi điều khiển. Chính vì vậy khi hiểu đƣợc kiến trúc của vi điều khiển, chúng ta sẽ rất thuận tiện khi sử dụng chúng vào ứng dụng của mình. Kiến trúc của vi điều khiển, cũng giống nhƣ kiến trúc máy tính. Các vi điều khiển hiện nay, thƣờng phổ biến ở một trong hai dạng kiến trúc sau. Kiến trúc VON NEUMANN, và kiến trúc HARVARD. Sự khác nhau giữa hai kiến trúc này, là ở chỗ việc tổ chức bộ nhớ dữ liệu và bộ nhớ chƣơng trình. Kiến trúc VON NEUMANN tổ chức bộ nhớ dữ liệu và bộ chƣơng trình chung với nhau, do vậy vi điều khiển có kiến trúc này sẽ sử dụng chung đƣờng truyền (BUS). Ƣu điểm của vi điều khiển có kiến trúc này là tận dụng đƣợc tài nguyên bộ nhớ, nhƣng nhƣợc điểm là tốc độ xử lý không đạt cao. Còn kiến trúc HARVARD lại tách rời bộ nhớ dữ liệu và bộ nhớ chƣơng trình, do đó đƣờng truyền (BUS) của nó đƣợc tách riêng ra. Vì vậy vi điều khiển có kiến trúc này là đạt tốc độ xử lý cao, nhƣng nhƣợc điểm là không tận dụng đƣợc tài nguyên bộ nhớ. Mặt khác đƣờng truyền dữ liệu và đƣờng truyền lệnh điều khiển, có thể có dung lƣợng khác nhau. Hiện nay có 3 họ vi điều khiển nổi tiếng, đó là 8051 (Bao gồm cả AVR), MOTOROLA và PIC (Bao gồm cả DSPIC). Để hiểu đƣợc vi điều khiển, sử dụng thành thạo nó chúng ta cần phải có các kiến thức sau: - Tìm hiểu về kiến trúc máy tính, cơ bản về 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 thanh ghi; Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 4 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến - Khái niệm STACK; - Khái niệm con trỏ POINTER; - Khái niệm địa chỉ, địa chỉ gián tiếp của một thanh ghi; - Khái niệm về định thời (TIMER); - Khái niệm về ngắt trong, ngắt ngoài. - Các chuẩn giao tiếp RS232, USB, I2C.... - Thành thạo một trong số các ngôn ngữ lập trình cho vi điều khiển. PIC là tên viết tắt của "Máy tính thông minh" (PROGRAMMABLE INTELLIGENT COMPUTER) do hãng GENERAL INSTRUMENT đặt tên cho con vi điều khiển đầu tiên của hãng là PIC1650. Đây là con vi điều khiển đầu tiên, đồng thời nó còn là tiền đề cho sự ra đời của các vi điều khiển họ PIC sau này của hãng. Họ vi điều khiển PIC có cấu trúc HARVARD, do vậy nó có tốc độ xử lý rất cao. Đồng thời dung lƣợng bộ nhớ dữ liệu, bộ nhớ chƣơng trình tƣơng đối lớn. Họ vi điều khiển PIC phù hợp với các ứng dụng từ đơn giản đến các ứng dụng phức tạp, đặc biệt nó phù hợp với các ứng dụng có liên quan đến các cơ cấu điều khiển. Đến ngày nay, PIC1650 đƣợc phát triển thành PIC16C54. Hãng MICROCHIP (WWW.MICROCHIP.COM) đang tiếp tục phát triển các sản phẩm vi điều khiển, trong đó có vi điều khiển PIC. Cho đến nay, các sản phẩm vi điều khiển PIC của MICROCHIP đã gần 100 loại sản phẩm từ họ 10Fxxx, 18LFxxx, 18Fxxx đến các họ 12Cxxx, 12Fxxx, 16Cxxx, 17Cxxx, 16Fxxx, 16Fxxx,16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx... Tuy nhiên có một số họ PIC hiện nay không còn đƣợc sản xuất nữa. Hiện nay hãng MICROCHIP đã có các họ vi điều khiển 16-BIT, gồm PIC24H và PIC24F. Tiếp đến là họ vi điều khiển 32-BIT có tên là PIC32MX, và mới đây nhất là họ vi điều khiển DSPIC30F và DSPIC33F. Phân loại PIC theo các chữ cái: Các họ PIC xxCxx đƣợc đƣa vào một nhóm, gọi là nhóm OTP (ONE TIME PROGRAMMANBLE). Nhóm này chỉ có thể lập trình và nạp chƣơng trình cho nó đƣợc một lần duy nhất, và không thể thay đổi Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 5 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến chƣơng trình bên trong của nó bằng mạch điện thông thƣờng. Nhóm thứ hai theo cách phân chia này, đó là số còn lại với các chữ cái F, hoặc LF và duy nhất 16C84. Nhóm này là nhóm FLASH, cho phép ghi xoá bằng các mạch điện tử thông thƣờng (Ngày nay ngƣời ta còn sản xuất các loại này). Chúng ta gọi nhóm này là nhóm FLASH, nhƣng thực tế thì nó bao gồm cả nhóm EEPROM và FLASH. Tuy nhiên, vì chung đặc điểm là có thể ghi xoá nhiều lần nên chúng ta gọi chung thành nhóm FLASH. Phân loại PIC theo hai con số đầu tiên của sản phẩm: Đây là cách phân loại thông dụng, bởi vì các họ PIC và DSPIC hiện này đều thuộc nhóm FLASH. Do vậy cách phân loại này sẽ nói lên đƣợc sự khác nhau của các họ vi điều khiển PIC và DSPIC. Loại thứ nhất là dòng PIC cơ bản (BASE-LINE), gồm các PIC 12Cxxx, loại thứ hai là các dòng PIC 10,12F và 16, gọi là dòng phổ thông (MID-RANGE). Loại thứ ba là dòng PIC 18 (HIGH-END). Sự khác nhau của các dòng này chính là độ dài lệnh (INSTRUCTION WORD LENGTH), với dòng BASE-LINE có độ dài lệnh là 12 BIT, MID-RANGE có độ dài lệnh là 14 BIT và HIGH-END có độ dài từ lệnh là 16-BIT. Tuy nhiên các dòng PIC có độ dài từ lệnh lớn hơn thì thƣờng có bộ 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 đây là dòng PIC MID-RANGE, thông dụng nhất hiện nay ở Việt Nam là PIC 16F877A. Cấu hình cụ thể của dòng này nhƣ sau: Bảng 1-1. Cấu hình của PIC16FxxxA Từ bảng trên chúng ta thấy rằng PIC 16F877A có cấu hình nhƣ sau: Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 6 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiế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: 8 chân. - Tích hợp sẵn 2 bộ giao tiếp PWM (Điều khiển động cơ). - Tích hợp sẵn 1 giao tiếp SPI. - Tích hợp sẵn 1 giao tiếp I2C. - Tích hợp sẵn 1 giao tiếp USART. - Tích hợp sẵn 2 bộ định thời 8 BIT, và 1 bộ định thời 10 BIT. - Tích hợp sẵn 2 bộ so sánh. Dòng PIC 18Fxxxx đây là dòng PIC HIGH-END, thông dụng nhất hiện nay ở Việt Nam là PIC 18F4550. Cấu hình cụ thể của dòng này nhƣ sau: Bảng 1-2. Cấu hình của PIC18Fxxxx Từ bảng trên chúng ta thấy rằng PIC 18F4550 có cấu hình nhƣ sau: - Bộ nhớ chƣơng trình (PROGRAM MEMORY): 32 KBYTES (Lớn gấp 2 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 7 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiế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 2 bộ giao tiếp PWM (Điều khiển động cơ). - Tích hợp sẵn 1 giao tiếp SPI. Tích hợp sẵn 1 giao tiếp I2C. - Tích hợp sẵn 1 giao tiếp USART. - Tích hợp sẵn 1 bộ định thời 8 BIT, và 3 bộ định thời 16 BIT. - Tích hợp sẵn 2 bộ so sánh. - Tích hợp sẵn 1 chuẩn giao tiếp USB. Còn đối với dòng DSPIC cũng có cấu hình cụ thể nhƣ sau: Bảng 1-3. Cấu hình của DSPIC30Fxxxx 1.2. Cấu trúc của PIC, DSPIC 1.2.1. Cấu trúc bộ chân cắm PIC và DSPIC thƣờng có cấu trúc vỏ chíp (Bộ chân cắm) kiểu QFN, TQFP...nhƣng thông dụng nhất vẫn là kiểu PDIP. Cụ thể nhƣ sau: Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 8 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Hình 1-1. Cấu trúc bộ chân cắm QFN, TQFP của PIC Hình 1-2. Cấu trúc bộ chân cắm PDIP của DSPIC và PIC Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 9 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến 1.2.2. Chức năng các chân của vi điều khiển Một chân của vi điều khiển thƣờng có nhiều chức năng, nhƣng tại một thời điểm nó chỉ thực hiện đƣợc một chức năng cụ thể. Việc thực hiện chức năng nào là do ngƣời lập trình quy định, chức năng của một chân có thể đƣợc thay đổi khi vi điều khiển đang hoạt động. Thông thƣờng các chân của vi điều khiển đƣợc chia thành các 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 năng. Ví dụ vi điều khiển 18F4550, chức năng của các chân cơ bản nhƣ sau: Trong đó các chân cơ bản có chức năng nhƣ 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, hoặc bộ dao động ngoài: - Chân 13 (Osc1). Hình 1-3. Cấu trúc chi tiết bộ chân cắm của 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 Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến - Chân 14(Osc2). + Các cổng I/O bao gồm: - Cổng A (A0..A5), từ chân 2 đến chân 7; - Cổng B (B0..B7), từ chân 33 đến chân 40; 6 pin 8 pin - Cổng C (C0..C7), từ chân 15 đến chân 18 và từ chân 23 đến chân 26; 8 pin - Cổng D (D0..D7), từ chân 19 đến chân 22 và từ chân 27 đến chân 30; 8 pin - Cổng E (E0..E2), từ chân 8 đến chân 10;. 3 pin + Các chân chức năng cơ bản bao gồm: - Chân 1 (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); Ngoài ra còn có các chân thực hiện các chức năng khác nhƣ: Nạp chƣơng trình, giao tiếp PWM, A/D, ngắt ngoài. Mỗi một cổng, một chân của vi điều khiển đều có một địa chỉ PORT, và một địa chỉ SET_TRIS. Thao tác trên hai địa chỉ này, cho phép chúng ta sử dụng đƣợc các cổng, các chân đúng theo mục đích sử dụng. 1.3. Các loại mạch nạp và phần mềm điều khiển nạp cho PIC, DSPIC Có rất nhiều loại mạch nạp cho PIC, DSPIC. Mỗi một loại mạch nạp thƣờng đi kèm với một phần mềm, để điều khiển mạch nạp này hoạt động. Thông thƣờng các mạch nạp cho PIC thì cũng nạp đƣợc cho DSPIC. Tuy nhiên cũng có một số mạch nạp cho PIC có cấu tạo đơn giản, hoặc phần mềm điều khiển không hỗ trợ do vậy sẽ không nạp đƣợc cho DSPIC. + Các kiểu mạch nạp phổ biến hiện nay - Mạch nạp kết nối qua cổng song song (Hay còn gọi là LPT): Ƣu điểm của loại mạch nạp có kết nối kiểu này là tốc độ nạp nhanh, an toàn cho PIC. Nhƣợc điểm là do các máy tính hiện nay thƣờng không có cổng LPT, do vậy mạch nạp này ít đƣợc 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 11 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Hình 1-4. Mạch nạp PIC-PG3 Hình 1-5. Phần mềm điều khiển nạp WINPIC800 - Mạch nạp kết nối qua cổng nối tiếp (COM): Mạch nạp loại này thƣờng có kết cấu đơn giản nhất trong tất cả các loại mạch nạp, do vậy nó rất gọn nhẹ. Đồng thời mạch nạp loại này thƣờng lấy điện áp từ cổng COM, để làm nguồn cung cấp cho mạch hoạt động. Loại mạch nạp này có nhƣợc điểm là thƣờng không hỗ trợ nạp cho DSPIC, không đảm bảo an toàn cho PIC khi nạp. Bởi vì chúng sử dụng trực tiếp nguồn điện từ cổng COM, để làm điện áp lập trình khi nạp. Mặt khác các LAPTOP hiện nay, thƣờng không có sẵn cổng COM. Khi sử dụng bộ chuyển đổi USB to COM, thì mạch nạp loại này không thể hoạt động đƣợc. Mạch nạp có kết nối cổng COM, cũng sử dụng phần mềm điều khiển WINPIC, hoặc ICPROG. Ngoài nạp đƣợc cho hầu hết các loại PIC, mạch này còn có thể nạp đƣợc cho các loại EPROM loại 24Cxxx và tƣơng đƣơng. Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 12 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Hình 1-6. Mạch nạp PIC-PG1 Hình 1-7. PIC-ICS/ICD Connector Hình 1-8. Mạch nạp PIC-PG3 Hình 1-9. Mạch nạp PIC-PG2 Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 13 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Hình 1-10. Phần mềm điều khiển nạp IC-PROG 1.01 - Mạch nạp kết nối qua cổng USB: Đây là loại mạch nạp cho PIC phổ biến nhất hiện nay, đƣợc thiết kế bởi hãng MICROCHIP. Loại mạch nạp này đƣợc kết nối trực tiếp với cổng USB của máy tính, sử dụng nguồn từ cổng USB để làm nguồn nuôi cho mạch nạp. Nó có cấu tạo tƣơng đối phức tạp, nên nạp đƣợc hầu hết tất cả các loại PIC, EPROM và hỗ trợ nạp cho cả DSPIC. Tốc độ nạp nhanh, đảm bảo an toàn cho PIC. Tự động giám sát điện áp nạp thích hợp với từng loại PIC, DSPIC. Nhƣng nhƣợc điểm của nó là: Việc kết nối với máy tính cần phải có DRIVE, và hay sảy ra xung đột; Quá trình nạp phải tuân thủ nghiêm ngặt các bƣớc thực hiện, nếu không sẽ bị lỗi (Hỏng) mạch nạp. Các mạch nạp kết nối qua cổng USB, thƣờng sử dụng phần mềm điều khiển nạp MPLAB-IDE của hãng MICROCHIP. Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 14 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Hình 1-11. Mạch nạp PIC-MCP-USB Hình 1-12. Mạch nạp ICD2-USB Hình 1-13. Mạch nạp GTP-USB Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 15 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Hình 1-14. Mạch nạp GTP-USB Hình 1-15. Phần mềm điều khiển nạp MPLAB-IDE 1.4. Các chương trình hỗ trợ viết mã và biên dịch cho PIC, DSPIC Sự ra đời của một loại vi điều khiển, đi kèm với việc phát triển phần mềm ứng dụng cho việc lập trình cho con vi điều khiển đó. Vi điều khiển chỉ hiểu và làm việc với hai con số 0 và 1. Ban đầu để lập trình cho vi điều khiển là làm việc với dãy các con số 0 và 1. Sau này khi kiến trúc của vi điều khiển ngày càng phức tạp, Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 16 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến số lƣợng thanh ghi lệnh nhiều lên. Việc lập trình với dãy các số 0 và 1 không còn phù hợp nữa, đòi hỏi phải có sự ra đời của các ngôn ngữ lập trình cho vi điều khiển. Chúng ta có thể viết mã lệnh cho PIC, DSPIC bằng bất cứ một phần mềm soạn thảo nào đó. Sau đó sử dụng trình biên dịch phù hợp để dịch sang dạng Hex, rồi nạp cho PIC hoặc DSPIC. Nhƣng chúng ta muốn nhận đƣợc sự hỗ trợ khi lập trình, thì chúng ta phải sử dụng một trong các phần mềm chuyên dùng sau đây: - MPLAB: Đây là phần mềm viết mã, biên dịch và điều khiển nạp của hãng MICROCHIP. Nguyên bản của phần mềm này chỉ cho phép chúng ta viết mã lệnh cho PIC, và chỉ dùng ngôn ngữ AMSEMBLY (ASM). Tuy nhiên khi kết hợp (Nhúng) thêm với CCS, thì MPLAB cho phép viết mã với ngôn ngữ C và cho cả đƣợc với DSPIC. Ƣu điểm của MPLAB, khi viết mã bằng ASM là khi biên dịch file *.Hex có kích thƣớc nhỏ. Đây là ƣu điểm nổi trội, duy nhất chỉ có đƣợc ở MPLAB. Hình 1-16. Phần mềm biên dịch MPLAB Nhƣng nhƣợc điểm của MPLAB là việc lập trình thƣờng rất khó khăn, đòi hỏi ngƣời lập trình phải nắm chắc đƣợc cấu trúc của PIC; Cũng nhƣ các kiến thức về vi xử lý... Mặt khác trong MPLAB thƣờng không có sẵn các thƣ viện (Hàm và Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 17 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến thủ tục), do vậy để truy xuất đến các thiết bị ngoại vi nhƣ LCD, EPROM, USART, USB.... thƣờng phải thực hiện thủ công. Do vậy lại đỏi hỏi ngƣời lập trình phải hiểu tƣờng tận đƣợc cả cấu trúc của thiết bị ngoại vi liên quan. Cấu trúc một chƣơng trình viết bằng ASM trong môi trƣờng MPLAB nhƣ sau: #include 1) header file org 0x000000 2) Địa chỉ vector ngắt : goto MAIN Khi cú ngắt xảy ra thỡ pointer sẽ nhảy org 0x000008 đến nhón ISR_HIGH hoặc ISR_LOW goto ISR_HIGH ISR: viết tắt của Interrupt Service org 0x000018 Rountine . Địa chỉ ngắt cụ thể của từng goto ISR_LOW loại chip, loại ngắt cao hay thấp do org 0x000030 datasheet cung cấp. MAIN 3) Bắt đầu chƣơng trỡnh chớnh ………………… ………………… . ……………….. “chƣơng trỡnh con 1” Chƣơng trỡnh con bắt đầu bằng TấN ( “chƣơng trỡnh con 2” lable) của chƣơng trỡnh đó và kết thúc bằng bằng chữ RETURN. Chƣơng trỡnh ngắt đƣợc xem là chƣơng trỡnh con, kết thỳc bằng RETFIE END - CCS C: Là một phần mềm cho phép lập trình và biên dịch cho vi điều khiển bằng ngôn ngữ C. ` Ƣu điểm của CCS là dùng ngôn ngữ C, nên chƣơng trình rất mạch lạc, rõ ràng. Câu lệnh lập trình đơn giản, ngắn gọn. Có rất nhiều các thƣ viện, để hỗ trợ viết mã. Sau cùng là kích thƣớc file *.Hex khi biên dich xong cũng vừa phải (Trong giới hạn chấp nhận đƣợc). Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 18 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Nhƣợc điểm lớn nhất của CCS là trong quá trình biên dịch có thể phát sinh mã dạng Hex sai; Do vậy nhiều khi chúng ta lập trình rất rõ ràng nhƣng PIC vẫn làm việc không đúng theo yêu cầu, hoặc cho kết quả sai. Để tránh đƣợc điều này, đòi hỏi ngƣời lập trình phải có nhiều kinh nghiệm. Đơn giản hoá các thuật toán phức tạp, tránh những cấu trúc lệnh có thể dẫn đến lỗi phát sinh mã Hex sai. Cấu trúc một chƣơng trình viết bằng C trong môi trƣờng CCS nhƣ sau: #include <18F4431.h> #use delay.... #fuses ... //header file //khai báo tần số thạch anh. //khai báo cấu hình cần sử dụng Khai báo các biến toàn cục. Chƣơng trình ngắt. Các chƣơng trình con. Main { Gọi các chƣơng trình con. .............. } //Chƣơng trình chính. Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 19 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Hình 1-17. Phần mềm biên dịch CCS Ngoài các phần mềm soạn thảo và biên dịch nêu trên, hiện nay còn có rất nhiều các phần mềm khác soạn thảo và biên dịch cho PIC. Các phần mềm này sử dụng ngôn ngữ lập trình nhƣ: PASCAL, BASIC... Nhìn chung các phần mềm này ít đƣợc sử dụng bởi vì ba nguyên nhân sau: Một là phải mua bản quyền hợp pháp thì mới có thể biên dịch đƣợc; Hai là *.Hex sau khi biên dịch thƣờng có kích thƣớc lớn, nên đòi hỏi phải sử dụng PIC có bộ nhớ chƣơng trình lớn; Ba là do lập trình trên các công cụ, đối tƣợng có sẵn nên ngƣời lập trình không can thiệp sâu đƣợc vào cấu trúc bên trong của vi điều khiển. Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp 20 Luận văn thạc sỹ kỹ thuật Hướng dẫn KH: PGS.TS: Đỗ Xuân Tiến Chương 2 LẬP TRÌNH CHO CÁC CHỨC NĂNG CỦA PIC, DSPIC 2.1. Ngôn ngữ lập trình CCS Sự ra đời của một loại vi điều khiển đi kèm với việc phát triển phần mềm ứng dụng, cho việc lập trình cho con vi điều khiển đó. Vi điều khiển chỉ hiểu và làm việc với hai con số 0 và 1. Ban đầu để việc lập trình cho vi điều khiển, ngƣời ta phải làm việc với dãy các con số 0 và 1. Sau này khi kiến trúc của vi điều khiển ngày càng phức tạp, số lƣợng thanh ghi lệnh nhiều lên. Do đó việc lập trình với dãy các số 0 và 1 không còn phù hợp nữa, đòi hỏi ra đời một ngôn ngữ mới thay thế. Từ đó ngôn ngữ lập trình ASSEMBLY ra đời, sau đó là ngôn ngữ C ra đời. Nhu cầu dùng ngôn ngữ C để thay cho ASSEMBLY trong việc mô tả các lệnh lập trình cho vi điều khiển một cách ngắn gọn, dễ hiểu hơn đã dẫn đến sự ra đời của nhiều chƣơng trình soạn thảo và biên dịch C cho vi điều khiển: KEIL C, HT-PIC, MIKROC, CCS... CCS là trình biên dịch lập trình ngôn ngữ C cho vi điều khiển PIC của hãng MICROCHIP. Chƣơng trình là sự tích hợp của 3 trình biên dịch riêng biệt cho 3 dòng PIC khác nhau đó là: - PCB biên dịch cho dòng PIC 12-BIT. - PCM biên dịch cho dòng PIC 14-BIT. - PCH biên dịch cho dòng PIC 16 và 18-BIT. Tất cả 3 trình biên dịch này đƣợc tích hợp lại vào trong một chƣơng trình bao gồm cả soạn thảo và biên dịch là CCS, phiên bản mới nhất hiện nay là PCWH COMPILER VER 3.227 cho phép biên dịch đƣợc cả cho DSPIC. Giống nhƣ nhiều trình biên dịch C khác cho PIC, CCS giúp cho chúng ta nắm bắt nhanh chóng đƣợc vi điều khiển PIC, DSPIC và sử dụng chúng trong các dự án. Các chƣơng trình điều khiển sẽ đƣợc thực hiện nhanh chóng và đạt hiệu quả cao thông qua việc sử dụng ngôn ngữ lập trình cấp cao - ngôn ngữ C. Học viên: Hoàng Việt Sơn – K12 KT ĐT – ĐH Kỹ thuật công nghiệp
- Xem thêm -

Tài liệu liên quan