Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học điều khiển động cơ dc với pid số trên dspic 33fj64gp802....

Tài liệu điều khiển động cơ dc với pid số trên dspic 33fj64gp802.

.PDF
69
154
84

Mô tả:

ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG Điều khiển động cơ DC (DC Motor) là một trong những ứng dụng cơ bản nhất trong ngành điều khiển nói chung và điều khiển tự động nói riêng. Động cơ DC đối với sinh viên ngành tự động cũng đã trở nên rất thân quen thuộc từ các cuộc thi trong trường như FanLed 2009 (CLB Nghiên Cứu Khoa Học Khoa Điện-Điện tử) đến những cuộc thi nổi tiếng như RoboCon. Đến với Đồ Án 1 lần này chúng tôi xin giới thiệu với người đọc một vấn đề tiếp cận mới với động cơ DC.Đó là “Điều khiển động cơ DC với PID số trên DSPIC 33FJ64GP802”,ở đây là tổng hợp nhiều vấn đề mà chúng tôi đã được học trên trường từ những môn học như: Lý Thuyết Điều Khiển Tự Động,Vi Xử Lý,Thiết Bị Hệ Thống Tự Động và các môn thí nghiệm liên quan.Đồ án này chúng tôi thực hiện điều khiển động cơ DC bằng cách đọc từ encoder về vi điều khiển,hiển thị trên LCD tốc độ(vị trí) động cơ,kết nối với máy tính qua giao tiếp UART (cổng RS 232)với chương trình giao tiếp trên máy tính là GUI của Matlab có thể đặt vận tốc và các thông số trên màn hình máy tính,trên hết là giải thuật điều khiển động cơ DC là giải thuật PID mà chúng ta đã được học. Để tiếp cận với Đồ án thì lần lượt chúng tôi sẽ giới thiệu từ vi điều khiển DSPIC 33FJ64GP802 rồi đến lý thuyết điều khiển bằng PID,thiết kế phần cứng của nhóm,và giải thuật PID bằng phần mềm biên dịch C MPLAB Lời cuối cùng,chúng tôi xin cảm ơn thầy hướng dẫn của nhóm tôi: T.s HUỲNH THÁI HOÀNG, bên cạnh đó chúng tôi cũng cảm ơn những bạn trong CLB Nghiên Cứu Khoa Học Khoa Điện –Điện tử đã tận tình giúp đỡ cho chúng tôi hoàn thành tốt Đồ án này. SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang1 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG MỤC LỤC .Trang Lời giới thiệu .................................................................................................. 1 Mục lục ........................................................................................................... 2 CHƯƠNG I: GIỚI THIỆU VỀ DSPIC 33FJ64GP802 1.1 Giới Thiệu Họ Vi Điều Khiển DSPIC 33F & Sơ Đồ Chân & Cấu Trúc Bên Trong DSPIC 33FJ64GP802 1.1.1 Giới thiệu về họ vi điều khiển DSPIC 33FJ64GP............................... 4 1.1.2 Giới thiệu về DSPIC 33FJ64GP802 ................................................... 4 1.1.3 Sơ đồ chân DSPIC 33FJ64GP802 ...................................................... 5 1.1.4 Mô tả chân I/O của DSPIC 33FJ64GP802 ......................................... 7 1.1.5 Cấu trúc bên trong DSPIC 33FJ64GP802 .......................................... 8 1.1.6 Cấu hình bộ dao động cho chip .......................................................... 9 1.2 Tổ Chức Bộ Nhớ Và Vùng Địa Chỉ Bên Trong DSPIC 33FJ64GP802 1.2.1 Tổ chức bộ nhớ chương trình.............................................................. 11 1.2.2 Vùng địa chỉ dữ liệu .......................................................................... 12 1.2.3 Tổ chức dữ liệu bộ nhớ và sự sắp hàng ............................................. 12 1.3 TIMER Trong DSPIC 33FJ64GP802 1.3.1 Giới thiệu .......................................................................................... 13 1.3.2 Timer A ............................................................................................. 14 1.3.3 Timer B ............................................................................................. 14 1.3.4 Timer C ............................................................................................. 15 1.3.5 Các chế độ thực hiện ......................................................................... 16 1.3.6 Chế độ Timer và cách đặt cấu hình .................................................... 16 1.3.7 Đặt cấu hình Timer 32-bit.................................................................. 17 1.4 NGẮT Trong DSPIC 33FJ64GP802 1.4.1 Giới thiệu về khối ngắt trong DSPIC 33F .......................................... 18 1.4.2 Ưu tiên ngắt ....................................................................................... 19 1.4.3 Tác vụ ngắt ........................................................................................ 19 1.4.4 Thanh ghi trạng thái và điều khiển ngắt ............................................. 20 1.4.5 Thủ tục tạo ngắt ................................................................................. 20 1.4.6 Chương trình phục vụ ngắt (Interrupt Service Rountine) ................... 20 1.5 UART Trong DSPIC 33FJ64GP802 1.5.1 Giới thiệu về UART .......................................................................... 21 1.5.2 Những thanh ghi điều khiển............................................................... 22 1.5.3 Bộ phát tốc độ Baud .......................................................................... 23 1.5.4 Đặt cấu hình UART ........................................................................... 24 1.5.5 Bộ truyền dữ liệu UART ................................................................... 25 1.5.6 Bộ ngắt truyền dữ liệu UART ............................................................ 26 1.5.7 Khối nhận dữ liệu UART .................................................................. 27 SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang2 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG CHƯƠNG II: GIẢI THUẬT ĐIỀU KHIỂN PID & ĐIỀU KHIỂN PID SỐ 2.1 Giải Thuật Điều Khiển PID 2.1.1 Lịch sử phát triển................................................................................ 29 2.1.2 Giới thiệu về giải thuật PID ................................................................ 29 2.1.3 Phương pháp Zeigler-Nichols ............................................................. 32 2.2 Điều Khiển PID Số 2.2.1 Vì sao lại sử dụng bộ điều khiển PID số ............................................. 34 2.2.2 Số hóa các công thức tính bộ điều khiển PID số ................................. 34 CHƯƠNG III: THIẾT KẾ PHẦN CỨNG 3.1 Đối Tượng Điều Khiển 3.1.1 Động cơ DC ....................................................................................... 38 3.1.2 Bộ encoder tương đối (incremental optical encoder)........................... 39 3.1.3 Đọc encoder bằng ngắt ngoài.............................................................. 41 3.2 Mô Tả Phần Cứng 3.2.1 Khối Main .......................................................................................... 41 3.2.2 Khối Công Suất .................................................................................. 43 3.2.3 Khối Nguồn ........................................................................................ 43 3.2.4 Khối cổng nạp .................................................................................... 44 3.2.5 Khối UART ........................................................................................ 44 3.2.6 Khối LCD........................................................................................... 45 3.2.7 Khối Nút nhấn ................................................................................... 45 3.2.8 Khối giao tiếp máy tính (GUI) ........................................................... 46 3.2.9 Tóm tắt ............................................................................................... 49 CHƯƠNG IV : LƯU ĐỒ GIẢI THUẬT,KẾT QUẢ THỰC NGHIỆM & KẾT LUẬN 4.1 Lưu Đồ Giải Thuật 4.1.1 Lưu đồ giải thuật tổng quát................................................................. 53 4.1.2 Lưu đồ giải thuật hàm Main ............................................................... 54 4.1.3 Lưu đồ giải thuật Mappin ................................................................... 55 4.1.4 Lưu đồ giải thuật ngắt ngoài ............................................................... 56 4.1.5 Lưu đồ giải thuật ngắt Timer .............................................................. 57 4.1.6 Lưu đồ giải thuật điều khiển PID vị trí ............................................... 58 4.1.7 Lưu đồ giải thuật điều khiển PID vận tốc ........................................... 59 4.1.8 Lưu đồ giải thuật UART ..................................................................... 60 4.2 Kêt Quả Thực Nghiệm 4.2.1 Hiệu chỉnh PID vị trí .......................................................................... 61 4.2.2 Hiệu chỉnh PID vận tốc ...................................................................... 64 4.3 Kết Luận 4.3.1 Kết luận về DSPIC 33FJ64GP802 ...................................................... 67 4.3.2 Kết luận về giải thuật PID và bộ điều khiển PID số ............................ 67 4.3.3 Kết luận về phần cứng và thiết kế mạch ............................................. 68 PHỤ LỤC .......................................................................................................... 69 SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang3 ĐỒ ÁN 1 Chương I: GVHD:TS.HUỲNH THÁI HOÀNG GIỚI THIỆU VỀ DSPIC 33FJ64GP802 1.1 GIỚI THIỆU HỌ VI ĐIỀU KHIỂN DSPIC 33FJ64GP SƠ ĐỒ CHÂN & CẤU TRÚC BÊN TRONG DSPIC 33FJ64GP802 1.1.1 Giới thiệu về họ vi điều khiển DSPIC 33FJ64GP Họ vi điều khiển DSPIC 33FJ64GP là họ vi điều khiển chuẩn CMOS 16 bit (high performance, 16- Bit digital signal controllers),với CPU được chế tạo theo cấu trúc Harvard (có vùng nhớ riêng cho chương trình (mã) và dữ liệu).Họ vi điều khiển DSPIC 33FJ64GP mang đầy đủ các đặc tính của một dòng vi điều khiển thông thường (I/O port,timer,interrupt,UART…).Nhưng đặc biệt so với các dòng vi điều khiển khác như 8051,hay AVR thì DSPIC 33FJ64GP có nhưng thế mạnh sau:  Bộ dao động của DSPIC thông qua bộ chia (nhân tần số) PLL, sau đó dùng 2 chu kỳ để thực hiện 1 lệnh,ở DSPIC cho phép tần số dao động tối đa là 80Mhz chạy ở tối đa 40MIPS nên tốc độ xử lý (1 chu kỳ máy là 0.05µs) nhanh hơn rất nhiều so với PIC 16F887 và 8051,cũng như khả năng nhân tần số thông qua bộ chia có thể giúp ta thay đổi tần số dao động.  Tập lệnh rút gọn,với trình biên dịch C làm tối ưu hóa giải thuật,ngoài ra DSPIC rất mạnh về khả năng xử lý số với 2 module lớn là DAC (audio digital to analog converter) và DCI (data converter interface).  Ngoài ra họ vi điều khiển DSPIC 33FJ64GP còn cho phép nhiều module giao tiếp (communication Modules) như SPI (hỗ trợ 8-bit và 16-bit với giao diện I/O đơn giản),I2C,UART,truyền thông CAN(ECANTM module). 1.1.2 Giới thiệu về DSPIC 33FJ64GP802 Là một trong nhưng vi điều khiển thuộc họ DSPIC 33F,nên ngoài những đặc tính có được đã nêu ở trên thì đối với 33FJ64GP802 còn có những đặc điểm sau: + Số chân: 28 + Bộ nhớ chương trình (program flash memory): 64Kbyte + Ram: 16Kbyte + Số chân có thể remap (remappable pins): 16 + UART : 2 + Ngắt ngoài (external Interrupts) :3 + ADC (10-bit/12-bit) :10 SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang4 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG + I/O pins : 21 + Timer : 5 (16 bit) Để có thể thấy được tính năng nổi trội và sự hơn hẳn của DSPIC 33FJ64GP802 ta có bảng so sanh sau với một số vi điều khiển đã học Device Program Memory Data Memory PIC 16F690 4Kbyte SRAM /RAM (byte) 128 256 DSPIC 33FJ64 GP802 64Kbyte 16K Flash 8051 EEP ROM / ROM 4Kbyte 256byte I/O A/D Operating Range Timer Interrrupt 32 18 0 1MIPS 2 6 12 5MIPS 3 10 40MIPS 5 21 49 P Communication Modules W M 0 1 UART 4 1UART,1SPI, 1 I2C 2UART,2SPI, 1ECAN,1 I2CTM 4 (10bit/12bit 1.1.3 Sơ đồ chân DSPIC 33FJ64GP802 Hình 1.1  Từ sơ đồ chân ở trên ta thấy : + DSPIC 33FJ64GP802 có tất cả 28 chân,có 2 loại là loại linh kiện dán hoặc chân. + DSPIC 33FJ64GP802 có 2 PORT I/O : PORT A,PORT B,PORT C.Trong đó PORTA gồm các chân : RA0÷RA4,trong đó PORT B gồm các chân : RB0÷RB15.Ngoài ra còn có thêm 15 chân remapable pin từ RP0(1) ÷ RP15(1). SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang5 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG + DSPIC 33FJ64GP802 sử dụng thạch anh (Crystal) gắn bên ngoài có tầm từ 3Mhz đến 10Mhz,còn nếu dùng thạch anh tốc độ cao (high speed crystal) có tầm từ 10Mhz-40Mhz. + Kết nối phần cứng bên ngoài của DSPIC 33FJ64GP802 trong mạch được thực hiên như sau (theo datasheet). Hình 1.2 Dựa vào hình vẽ trên (hình 1.2) ta có thể thiết kế phần cứng cho mạch,nhưng trước hết ta cần xác định các giá trị R1,R và tụ C,các giá trị tụ nối giữa AVDD – AVSS. Theo datasheet ta có được - Tụ nối giữa VCAP /VDDCORE và Ground có tác dụng ổn định điện áp ngõ ra và chân này (VCAP / VDDCORE) không được nối với VDD và có giá trị từ 4.7µF ÷ 10µF. - Các tụ nối giữa các cặp chân cung cấp nguồn như VDD,VSS,AVDD và AVSS có giá trị thích hợp là 0.1µF, 1020V.Các tụ này nên mắc gần các chân càng tốt hơn trong quá trình lọc. - Đối với cách kết nối ngõ vào chân RESET (MCLR) SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang6 ĐỒ ÁN 1 - GVHD:TS.HUỲNH THÁI HOÀNG Hình 1.3 Với giá trị R ≤ 10 kΩ (R = 10kΩ) là thích hợp cùng vơi đó là giá trị của R1,theo datasheet ta thấy R1 ≤ 470Ω (R = 470Ω) có tác dụng hạn dòng,còn lại tụ C ở đây vơi giá trị thích hợp là 0.1µF (tụ 104) là thích hợp. 1.1.4 Mô tả chân I/O của DSPIC 33FJ64GP802 Tên Chân (Pin Name) AN0-AN12 CLKI CLKO Loại chân (Pin Type) I I O INT0-INT2 RA0-RA4 RB0-RB15 T1CK-T5CK I I/O I/O I MCLR AVDD I/P P U1CTS U1RTS I O U1RX U1TX CVREF C1RX C1TX I O O I O Loại bộ đệm Mô tả (Buffer type) Analog Những kênh ngõ vào analog ST/CMOS Ngõ vào của bộ dao động ngoài,luôn kết nối với chân ST/CMOS OSC1-2 ST Ngắt ngoài 0-2 ST PORTA ST PORTB Ngõ vào timer 1-timer 5(với external clock) ST Ngõ Reset P Nối V+ nguồn cung cấp (3.3V) ST Ngõ vào UART1 xóa để nhận ST Ngõ ra UART1 sẵn sàng nhận ST Ngõ vào UART1 nhận ST Ngõ ra UART1 truyền đi ANA Ngõ ra so sánh điện áp ST Ngõ vào nhận ECAN1 ST Ngõ ra truyền đi ECAN1 SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang7 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG 1.1.5 Cấu trúc bên trong DSPIC 33FJ64GP802 Từ cấu trúc bên trong họ vi điều khiển 33FJ64GPX02 ta có thể thấy được rằng: + Các chân lấy từ vi điều khiển có 2 loại là: Một là các chân ở dạng remappable pins,và các PORT (A,B,C) thực hiện các chức năng I/O hoặc khác + Sử dụng 2 đường Bus dữ liệu là : X data bus,Y data bus.Trong đó X data bus nối với các PORT và ngõ interrupt controller đồng thời kết nối với bộ đếm chương trình Programmer counter, data latch.Còn Y data bus nối với DMA RAM từ DMA RAM nối với DMA Controller nối kết với các PORT và Remappable Pins của vi điều khiển. Hình 1.4 SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang8 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG 1.1.6 Cấu hình Bộ dao động cho chip - Có 2 sự lựa chọn cho bộ định thời trên chíp (nguồn xung nhịp) là bộ dao động nội và bộ dao động ngoại. - Bộ PLL ( Phase-Locked Loop) trên chip dùng để định tầm cho tần số thực thi cũng như định tần số xung nhịp cần thiết cho hệ thống. - Bộ dao động FRC có thể được dùng với bộ PLL trên chip có thể cho phép chip thực thi lệnh với tốc độ tối đa mà không cần bất cứ nguồn xung nhịp nào bên ngoài. - Thanh ghi điều khiển nguồn xung nhịp là OSCON Hình 1.5 DSPIC 33FJ64GP802 cung cấp cho ta 7 chế độ lựa chọn xung nhịp: - Bộ dao động nhanh RC (FRC) - Bộ dao động FRC kết hợp với Phase Locked Loop (PLL) - Bộ dao động chính (XT,HS hoặc EC) - Bộ dao động với PLL - Bộ dao động phụ (LP) - Bộ dao động nguồn thấp RC (LPRC) SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang9 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG - Bộ dao động FRC với postscaler  Việc lựa chọn bộ định thời cho hệ thống: Thiết lập cấu hình những bit cho bộ dao động được đặt trong thanh ghi cấu hình trong bộ nhớ chương trình.Trong đó: +Những bits cấu hình lựa chọn dao động tức thời FNOSC<2:0> + Những bits lập nên chế độ dao động chính là POSCMD<1:0> + Những bits cho phép người dùng lựa chọn trong 12 bộ xung nhịp  Ngõ ra bộ dao động (hoặc ngõ ra của PLL nếu ngõ này được chọn) là FOSC được chia cho 2 để tạo ra chỉ dẫn thiết bị xung nhịp (FCY) và xung nhịp biên (FP).FCY sẽ xác định tốc độ thực thi lệnh của thiết bị và tốc độ đó có thể tăng lên 40MHz.  Một trong những điều chúng ta cần lưu ý trong việc viết chương trình cho DSPIC 33FJ64GP802 là việc CONFIG các tính năng hay các hàm header,trong đó có việc CONFIG cấu hình của PLL.Chúng ta cần biết là:Bộ PLL trên chip cũng cấp khả năng linh hoạt cao trong việc lựa chọn tốc độ thực hiện lệnh.Có thể tham khảo theo sơ đồ dưới (Hình 1.6) o Ngõ ra của bộ dao động chính hoặc FRC,bao hàm trong đó là “FIN”,được chia cho cho chỉ số định tầm N1 có giá trị từ 2,3…33 trước khi được cung cấp bởi điện áp điều khiển dao động PLL(VCOvoltage controlled Oscillator).Ngõ vào của VCO phải được lựa chọn trong tầm 0.8Mhz đến 8Mhz. o Bộ chia hồi tiếp cung cấp bởi chỉ số ‘M’.Chỉ tiêu này được lựa chọn là để cho tần số VCO ngõ ra nằm trong tần số 100Mhz -200Mhz o Ngõ ra VCO sau cùng được chia cho chỉ số N2.’N2’ có thể là 2,4,8 và phải được chọn sao cho ngõ ra tần số PLL nằm trong tầm 12.5Mhz đến 80Mhz,để tạo ra tốc độ thực thi lệnh từ 6.25-40MIPS Vd: Như cho tần số của thạch anh là 10Mhz được dùng để chọn chế độ dao động là XT với PLL Nếu PLLPRE<4:0> = 0 thì N1 = 2 lúc này ngõ vào VCO là 10/2 = 5 Mhz thuộc khoảng 0.8 – 8Mhz (thỏa) Nếu PLLDIV<8:0> = 0x1E thì M = 32 lúc này thì ngõ ra VCO là 5 x 32 = 160 Mhz cũng thuộc trong khoảng 100-200 Mhz SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang10 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG Nếu PLLPOST<1:0> = 0 thì N2 = 2.Lúc này cung cấp cho FOSC là 160/2 = 80Mhz.Thì kết quả tốc độ xử lý lệnh là 80/2 = 40MIPS Hình 1.6 1.2 TỔ CHỨC BỘ NHỚ VÀ VÙNG ĐỊA CHỈ BÊN TRONG DSPIC 33FJ64GP802 1.2.1 Tổ chức bộ nhớ chương trình Không gian bộ nhớ chương trình được tổ chức thành từng khối word địa chỉ.Mặc dầu nó có được tạo bởi 24bits,nhưng những khối word địa chỉ này dễ dàng tương thích cho truy cập mỗi địa chỉ bộ nhớ chương trình tại vùng word thấp và word cao (lower word và upper word).Word thấp luôn đặt ở địa chỉ chẵn còn word cao đặt ở địa chỉ lẻ.(hình 2.1) Địa chỉ bộ nhớ chương trình thường là những word xếp gọn trên vùng word thấp và những địa chỉ được tăng lên hoặc giảm đi trong quá trình code thực thi.Việc sắp xếp này mang lại sự tương thích với không gian địa chỉ dữ liệu bộ nhớ và dữ liệu chương trình được truy cập dễ dàng. Hình 2.1 SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang11 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG 1.2.2 Vùng địa chỉ dữ liệu DSPIC 33FJ64GP802 có vùng địa chỉ phân chia 16-bit-wide dữ liệu. Vùng địa chỉ dùng AGUs (Address Generation Units) để thực hiện các tác vụ đọc và ghi.Sơ đồ bộ nhớ dữ liệu và truy cập được thể hiện qua hình dưới (Hình 2.2).Tất cả vùng địa chỉ tích cực (EAs) trong vùng địa chỉ dữ liệu rộng 16bits và chỉ đến những bytes trong vùng đó.Sự sắp xếp này cho ra địa chỉ vùng địa chỉ truy cập đến là 64Kbytes hay là 32K words.Một nửa thấp vùng dữ liệu được dùng cho việc bù địa chỉ,còn nửa cao dữ liệu được dùng để dự trữ chương trình 1.2.3 Tổ chức dữ liệu bộ nhớ và sự sắp hàng Việc giữ lại kết cấu tương thích với thiết bị những thiết bị PIC MCU và cải thiện vùng sử dụng bộ nhớ một cách hiệu quả,DSPIC 33FJ64GP802 hỗ trợ cả tác vụ tương tác đến các byte lẫn các word trong bộ nhớ.Cũng nhờ vì kết quả của việc truy cập các byte mà tất cả việc tính toán hay truy cập địa chỉ một cách hiệu quả được định nội bởi từng bước thông qua các word-aligned (word xếp hàng). Việc đọc dữ liệu byte,đọc hoàn toàn word có chứa byte,dùng LSB của bất kỳ EA để xác định byte nào được lựa chọn.Byte được chọn được đặt trên LSB của phần data.Điều đó chứng tỏ rằng bộ nhớ dữ liệu và những thanh ghi được tổ chức thành 2 phần song song nhau và chia sẻ chung phần địa chỉ decode nhưng tách riêng thành những đường ghi khác nhau (write lines).Byte dữ liệu chỉ có thể được ghi vào phân vùng tương thích ở những chuỗi hay thanh ghi mà có nối kết với địa chỉ byte đó. Tất cả các word truy cập phải được xếp thẳng hàng trên vùng địa chỉ chẵn.Các word dữ liệu truy cập mà không xếp thẳng hàng không được hỗ trợ,vì vậy cần lưu ý trong quá trình truy xuất byte và word hoặc trong quá trình dịch mã 8-bits (8-bits MCU code).Nếu tác vụ đọc hoặc ghi được cố tình thực thi với các word xếp không thẳng hàng thì có thể dẫn đến việc sinh ra các lỗi địa chỉ.Nếu có lỗi báo trong tác vụ ghi thì sự chỉ dẫn tác vụ này sẽ tiến hành nhưng việc ghi sẽ không thực hiện.Một cách khác là khi có lỗi xảy ra thì hệ thống hay ứng dụng người dùng sẽ cho phép kiểm tra trạng thái tại lỗi đó. Tất cả các byte có thể được ghi vào thanh ghi W hoặc vào Least significant byte.Phần Most Significant byte không được dùng đến. Tác vụ chỉ dẫn mở rộng dấu (SE) được cung cấp để cho phép các ứng dụng người dùng có thể chuyển từ 8-bits có dấu sang 16-bits có dấu.Như một sự lựa chọn với 16-bits không dấu dữ liệu người dùng có thể xóa phần MSB của bất kỳ thanh ghi W nào bởi tác vụ ZE(zero-extend). SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang12 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG Hình 2.2 1.3 TIMERS TRONG DSPIC 33FJ64GP802 1.3.1 Giới Thiệu Họ vi điều khiển DSPIC đưa ra một vài khối 16-bit Timer,trong đó chia ra 3 loại Timer khác nhau là: + Timer loại A(Timer 1). + Timer loại B(Timer 2,Timer 4). + Timer loại C(Timer 3,Timer 5). Timer B và Timer C có thể kết hợp lại để tạo thành bộ Timer 32-bit. Mỗi khối timer 16-bit timer/counter chứa những thanh ghi có thể đọc hoặc ghi sau: SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang13 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG + TMRx:Thanh ghi đếm 16 bit Timer. + PRx: Thanh ghi 16-bits Timer Period giao tiếp với Timer. +TxCON:Thanh ghi điều khiển 16-bits Timer. Mỗi khối timer đều có những bit giao tiếp với điều khiển ngắt. Bit enable ngắt(TxIE). Bit cờ trạng thái ngắt(TxIF). Bit điều khiển khoảng thời gian ngắt(TxIP<2:0>). 1.3.2 Timer A Timer 1 trên chip là loại Timer A,so với các loại Timer khác thì Timer A có những đặc điểm khác như : +Thực thi lệnh từ bộ dao động nguồn thấp 32kHz trên các thiết bị +Có thể thực thi lệnh không đồng bộ với bộ đếm Counter từ nguồn xung nhịp bên ngoài. Sơ đồ Timer A như sau: Hình 3.2 1.3.3 Timer B Timer 2,Timer 4 là những Timer loại B.Timer B chứa những điểm đặc biệt : +Có thể kết nối với Timer C để tạo nên bộ timer 32-bits. +Ngõ vào của bộ xung nhịp bên ngoài (TxCK) luôn luôn đồng bộ hóa với xung nhịp bên trong thiết bị và bộ xung nhịp đồng bộ được thực thi sau khi TxCK được chia cho bộ định tầm. Sơ đồ khối Timer B : SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang14 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG Hình 3.3 1.3.4 Timer C Các Timer :Timer 3,Timer 5 là thuộc loại Timer C,với những chi tiết khác biệt sau : + Có thể kết nối với bộ Timer B để tạo ra bộ timer 32-bits. + Có tối thiểu một Timer loại C để kích khởi cho cho bộ chuyển đổi A/D. +Ngõ vào của bộ xung nhịp bên ngoài (TxCK) luôn luôn đồng bộ hóa với xung nhịp bên trong thiết bị. Sơ đồ cấu trúc Timer C : Hình 3.4 SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang15 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG 1.3.5 Các chế độ thực hiện Khối Timer có thể thực hiện theo các chế độ sau : + Chế độ Timer. (Timer mode) +Chế độ đếm đồng bộ (Synchronous Counter mode) +Chế độ đếm không đồng bộ(Asynchronous Counter mode) +Chế độ cổng (Gated Timer mode) Chế độ Timer và chế độ cổng, ngõ vào bộ xung nhịp được lấy từ chu kỳ xung nội (FCY).Chế độ đếm đồng bộ và chế độ đếm không đồng bộ,ngõ vào xung nhịp được lấy từ xung nhịp ngoài tại chân TxCK. Những chế độ chọn được xác định bởi các bits: +TCS (TxCON<1>): Bit điều khiển nguồn xung Timer + TSYNC (TxCON<2>): Bit điều khiển chế độ đồng bộ hóa ( Chỉ có Timer A) + TGATE (TxCON<6>): Bit điều khiển mở cổng 1.3.6 Chế độ Timer và cách đặt cấu hình Ở chế độ Timer,ngõ vào xung nhịp được lái bởi chu kỳ xung nội (FCY),và được chia cho giá trị định tầm trong chương trình.Khi chế độ timer được khởi động,Timer được chạy tại bất kỳ nấc cao của ngõ vào xung nhịp và lúc sinh ra tác vụ ngắt. Đặt cấu hình Timer: + Xóa bit điều khiển TCS (TxCON<1>) để chọn nguồn xung nhịp nội. + Xóa bit điều khiển TGATE (TxCON<6>) để ngắt chế độ Cổng timer thực thi. Chú ý: Thanh ghi PRx có tác dụng reset thời gian đếm timer sau khi bit TxIF được lập lên mức cao. Bit TxIF được lập nên mức cao để chỉ kết thúc một chu trình thực thi (delay). Vd: Đây là ví dụ mô tả code tuần tự được lập nên Timer 1 chế độ 16-bit.Phần code này sẽ cho ra một sự kiện ngắt sau mỗi 10 chu kỳ lệnh. SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang16 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG Các chế độ khác của bộ Timer như : Chế độ Cổng (Gated Timer mode),chế độ đếm đồng bộ ( Synchronous Counter mode),chế độ đếm không đồng bộ(Asynchronous Counter mode) cũng có cách đặt cấu hình tương tự như chế độ timer như trên,có thể xem chi tiết cụ thể ở datasheet. 1.3.7 Đặt cấu hình Timer 32-bit Chế độ timer 32-bit được tạo bởi kết hợp giữa Timer loại B và Timer loại C.Để thực hiện Timer 32-bit thì bit điều khiển Timer 32-bit ở trong thanh ghi điều khiển Timer loại B (TxCON<3>) phải được đưa lên cao.Timer C chứa word cao trong khi Timer B chứa word thấp. Khi cấu hình cho tác vụ 32-bit,chỉ có những bit trong thanh ghi điều khiển loại B là cần thiết cho việc lập nên và điều khiển.Cũng không loại trừ bit TSIDL,tất cả các bit trong thanh ghi điều khiển Timer C thì bỏ ngõ. Để điều khiển ngắt,32-bit timer kết hợp dùng cho ngắt tích cực,cờ ngắt,và những bit ưu tiên ngắt timer C.Bit điều khiển ngắt và trạng thái của Timer B bị bỏ ngõ trong tác vụ thực thi timer 32-bit Chế độ 32-bit Timer được xác định bởi những bit theo sau ở trong thanh ghi Timer B:  TCS(TxCON<1>):Bit điều khiển nguồn xung nhịp Timer.  TGATE (TxCON<6>): Bit điều khiển cổng timer. Ngõ vào xung nhịp (FCY hoặc TxCK) cho tất cả 32-bit Timers được định tầm lựa chọn các thông số sau: 1:1,1:8,1:64, và 1:256.Việc định tầm xung nhịp này được lựa chọn bằng bits định tầm xung nhịp Timer (TCKPS<1:0>) trong thanh ghi điều khiển loại B (TxCON<5:4>).Bộ định tầm đếm được xóa khi bất kỳ tác vụ theo sau đây: + Ghi vào thanh ghi Timer B (TMRx) hoặc thanh ghi điều khiển Timer B (TxCON). SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang17 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG +Xóa bít tích cực timer (TON) trong thanh ghi điều khiển Timer B (TxCON<15>). + Khi reset hệ thống. 1.4 NGẮT TRONG DSPIC 33FJ64GP802 1.4.1 Giới thiệu về khối ngắt trong DSPIC 33F Họ vi điều khiển DSPIC 33F có khối (module) điều khiển ngắt đã giảm đi số lượng những tín hiệu ngắt ngoại biên và những tín hiệu ngắt đơn đến CPU của DSPIC33F.Ở khối này chứa đựng những đặc điểm sau: + 7 chế độ lựa chọn mức cao cho người dùng. + Vector ngắt có thể up lên tận 126 vector + Một vector ngắt cho mỗi quá trình ngắt +Bảng vector ngắt có thể thay đổi để phục vụ quá trình debug Bảng vector (Interrupt Vector table) SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang18 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG 1.4.2 Ưu tiên ngắt Mỗi nguồn ngắt ngoại vi có thể được gán với một trong 7 mức ưu tiên ngắt.Đối với mỗi ngắt riêng lẻ thì những bit điều khiển mức ưu tiên ngắt của người dùng được chứa trong 3 bit thấp (3 bit đầu tiên 0,1,2) của thanh ghi IPC.Bit còn lại (bit 3) trong 4 bit thấp được đặt ở mức tích cực thấp.Những bit này xác định việc gán mức ưu tiên đến một chế độ ngắt riêng biệt.Nếu các bit của thanh ghi IPC được nối với nguồn ngắt và đều được xóa,thì nguồn ngắt sẽ bịđưa về mức thấp. Ngoài ra việc lập mỗi nguồn ngắt cho một trong 7 mức tích cực của ứng dụng người dùng sẽ cung cấp cho người dùng khả năng linh hoạt xử lý ngắt.VD: khối UART1 Rx ngắt có thể dùng mức ưu tiên 7 và ngắt ngoài 0 (INT0) có thể đặt ở mức ưu tiên 1 tuy vậy nó sẽ làm cho mức ưu tiên ngắt giảm đi tốc độ truy xuất. 1.4.3 Tác vụ ngắt Tất cả những cờ ngắt sự kiện đều được lấy mẫu trong quá trình thực thi lệnh.Một yêu cầu chờ ngắt (IRQ) được chỉ ra khi cờ ngắt được bật lên 1 (tích cực) trong thanh ghi IFS.IRQ xuất hiện sẽ dẫn đến tác vụ ngắt,nếu bit tương thích ở trong thanh ghi tích cực ngắt (IECx) được đặt lên mức tích cực.Trong khoảng nghỉ của chu kỳ lệnh lúc mà IRQ được lấy mẫu,thì những mức ưu tiên trong yêu cầu chờ ngắt sẽ được tham chiếu. Lệnh của vi điều khiển khi IRQ được lấy mẫu hoàn toàn trước chương trình phục vụ ngắt thực hiện (Interrupt Service Rountine). Nếu trong quá trình chờ yêu cầu ngắt mà người dùng gán mức ưu tiên lớn hơn mức ưu tiên lệnh xử lý hiện tại của vi điều khiển,được chỉ bởi bits trạng thái (SR <7:5>) trên IPL<2:0>,thì quá trình ngắt sẽ được vi điều khiển thực hiện,quá trình xử lý hiện tại các thông tin hay dữ liệu sẽ được lưu vào stack,quá trình này được diễn tả:  Giá trị hiện tại của PC.  Byte thấp của thanh ghi trạng thái (SRL).  Bit trạng thái IPL3 (CORCON<3>). Với 3 giá trị này cho phép chương trình hay con trỏ chương trình (Program counter address) sẽ tự động quay về vị trí trước khi thực hiện ngắt để tiếp tục thực thi lệnh nhờ việc lưu lại những bit trạng thái MCU và thông tin trước ngắt. SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang19 ĐỒ ÁN 1 GVHD:TS.HUỲNH THÁI HOÀNG Hình 4.1 1.4.4 Thanh ghi trạng thái và điều khiển ngắt  INTCON1,INTCON2: Đây là những thanh ghi điều khiển ngắt toàn cục.Trong đó INTCON1 chứa bit NSTDIS (Nesting Disable) cũng giống như việc xử lý trạng thái cờ và nguồn xử lý ngắt.Còn INTCON2 điều khiển tín hiệu yêu cầu ngắt ngoài và tra bảng vector ngắt.  IFSx:Thanh ghi trạng thái cờ ngắt.  IECx: Thanh ghi điều khiển việc tích cực ngắt.  IPCx: Thanh ghi điều khiển ưu tiên ngắt.  SR: Thanh ghi trạng thái CPU. 1.4.5 Thủ tục tạo ngắt  Ban đầu: Đặt cấu hình nguồn ngắt: 1. Đặt bit điều khiển NSTDIS lên cao. 2. Sau đó gán mức ưu tiên người dùng cho nguồn ngắt bằng cách ghi ra những bit điều khiển trên thanh ghi điều khiển. IPCx.Mức ưu tiên phụ thuộc vào ứng dụng người dùng và loại nguồn ngắt.Nếu không muốn dùng nhiều mức ưu tiên,ta có thể dùng chương trình để tích cực tất cả các bit trên thanh ghi IPCx để tất cả các nguồn ngắt đều có giá trị khác 0. 3. Xóa bit trạng thái cờ ngắt nối với ngoại biên qua kết nối với thanh ghi trạng thái IFSx. 4. Tích cực nguồn ngắt bằng cách lập tích cực các bit điều khiển có kết nối với nguồn bời thanh ghi điều khiển IECx. 1.4.6 Chương trình phục vụ ngắt (Interrupt Service Routine) Đây là chương trình mà khi quá trình ngắt thì vector PC sẽ chỉ đến chương trình con này để thực thi các lệnh.Nói chung đối với DSPIC 33F cũng tương tự như SVTH: LÊ VĂN QUÝ - ĐINH QUANG TRƯỜNG – TRẦN VĂN VINH Trang20
- Xem thêm -

Tài liệu liên quan