Xem mẫu

  1. z  ĐỀ TÀI BÁO CÁO VI ĐIỀU KHIỂN NÂNG CAO KHOA ĐIỆN TỬ CÔNG NGHỆ ĐH HÀ NỘI
  2. [Type the document title] I.Lịch sử phát triển của vi điều khiển PIC PIC (Programmable Interlligent Computer) là một sản phNm của hãng General Intruments đặt cho dòng sản phNm đầu tiên của họ là PIC 1605. Vào thập kỷ 70 của thế kỷ 20, General Intruments và Honeywell kết hợp sản xuất ra bộ vi xử lý 16 bit CP1600. Đây là bộ vi xử lý khá mạnh vào thời điểm đó nhưng lại hạn chế về hoạt động vào/ra. PIC 1650 được sản xuất để hỗ trợ vi xử lý CP 1600 trong các máy tính sử dụng bộ vi xử lý này. PIC 1650 hoạt động với tập lệnh đơn giản nằm trong ROM. Vào thời điểm đó chưa có khái niệm về RISC(Reduced Intructions Set Code), tuy nhiên PIC 1650 thực sự là một bộ vi điều khiển được thiết kế theo kiểu kiến trúc RISC. Tập lệnh của PIC 1650 vơi khoảng 30 lệnh và độ dài của mỗi lệnh là 14 bit. Mỗi lệnh được PIC 1650 thực hiện trong 1 chu kỳ máy(4 chu kỳ của bộ dao động). Năm 1985 General Intruments bán bộ phận sản xuất vi điện tử của họ và chủ sở hữu mới hủy bỏ hầu hết các dự án liên quan( do các dự án lúc trước đó đã lỗi thời). Năm 1989 Microchip Technology tiếp tục phát triển PIC, bắt đầu bằng việc thêm bộ nhớ EEPROM để tạo thành một bộ điều khiển vào ra khả trình. Tiếp đến là tích hợp các tính năng như ngắt, ADC( Analog Digital Convertr) … để tạo thành cá bộ vi điều khiển( Micro Controller). Đến năm 1992 Microchip Technology đã cho ra đời 6 loại chip với 3 dòng khác nhau: Dòng chip có độ dài mã lệnh bằng 12 bit gồm 4 chip PIC 15C5x. Các - chip này có từ 12 đến 28 chân vào/ra. - Dòng chip độ dài mã lệnh băng 14 bit là PIC 16C71. Bộ vi điều khiển này đã được tích hợp thêm hai tài nguyên là ngắt ADC. - Dòng chip độ dài mã lệnh bằng 16 bit là PIC 17C41, tuy nhiên dòng chip này không được chú trọng phát triển vào thời điểm đó. Cùng thời gian này hàng loạt các công cụ hỗ trợ cũng được các công ty khác nhau cho ra đời. Điển hình là PICMASTER emulator, PIC Pro II programmer và cả trình dịch C( C Compiler). Các công cụ này cùng với việc thay bộ nhớ OTP (one – time programmable parts) bằng bộ nhớ EEP (Electically Erasable Parts) đã mang đến rắt nhiều tiện lợi cho người lập trình, ví dụ như: người lập trình có thể nạp chương trình mà không cần gỡ chip ra khỏi mạch. PIC 16C84 là bộ vi điều khiển đầu tiên có bộ nhớ kiểu EEP. Không lâu sau đó Microchip Technology tiếp tục đưa vào bộ vi điều khiển với mã lệnh dài 14 bit PIC16F877 tính năng gỡ rối(Flash debugging). Tính năng này cho phép KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 1
  3. [Type the document title] người lập trình có thể kiểm soát từng thanh ghi, từng câu lệnh trong chương trình. Nhờ những cải tiến liên tiếp, PIC16F87 trở thành bộ vi điều khiển bán chạy nhất vào thời điểm đó( năm 1995 đến 1998). Đến năm 2000, Microchip Technology tái phát triển lại dòng chip có độ dài mã lệnh bằng 16bit đã có trước đó 8 năm. Đại diện cho dòng chip này là PIC18F4520 với tốc độ mã lệnh bằng 16bit đã có trước đó 8 năm. Đại diện cho dòng chip này là PIC18F452 với tốc độ , dung lượng bộ nhớ được cải thiện và khá nhiều tính năng được bổ sung như các bộ định thời(timer), truyền thông nối tiếp…Dòng vi điều khiển PIC 8 bit đã dẫn đầu số lượng bộ bán ra mỗi năm liên tục từ năm 2002 đến nay. Trước nhu cầu về tốc độ xử lý cũng như các tính năng đặc biệt khác, Microchip Technology tiếp tục cho ra đời các dòng vi điều khiển tiên tiến hơn như: PIC24, PIC33, dsPIC.. Ngày nay đã có đến hàng chục dòng PIC với hàng trăm loại chip khác nhau. Tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn... KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 2
  4. [Type the document title] II. Kiến trúc phần cứng của vi điều khiển PIC 2.1. Sơ đồ khối Hình 2.1: Sơ đồ khối của PIC 18F4520 Các khối chính trên PIC 18F4520 bao gồm: • CPU: Tần số tối đa 40MHz, kiến trúc Havard, được sản xuất bằng công nghệ nano Watt. • Bộ nhớ: KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 3
  5. [Type the document title] Bộ nhớ chương trình FLASH: 32K RAM: 1536 bytes Bộ nhớ dữ liệu EEPROM: 256 bytes • Cổng vào ra: A,B,C,D,E Cổng A: RA0-RA7 Cổng B: RB0-RB7 Cổng C: RC0-RC7 Cổng D: RD0-RD7 Cổng E: RE0-RE3 • Định thời/đếm: 4 bộ (Timer2: 8bit; Timer0,1,3: 16 bit) • PWM: 2 bộ (CCP1:RC2; CCP2:RC1) • Truyền thông nối tiếp L2 module: MSSP và EUSART Module MSSP gồm 2 module: SPI(Serial Peripheral Interface) và IC (Intergrated Circuit) • ADC: 13 kênh ADC với độ phân giải 10bit 2.2.Sơ đồ chân Hình 2.2: Sơ đồ chân PIC 18F4520 dạng TQFP KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 4
  6. [Type the document title] Hình 2.3: Sơ đồ chân PIC 18F4520 dạng DIP Chân số Loại Loại Mô tả Tên chân chân bộ PDI QF TQFP nhớ P N đ ệm clear(đầu Master vào)hoặc lập trình MCLR/VPP/RE3 1 18 18 điện áp đầu vào Master clear(Reset)đầu MCLR I ST vào,chân này hoạt động ở mức thấp, thiết lập lại cho thiết bị. Lập trình điện áp VPP P đầu vào RE3 I ST Đầu vào số Đầu vào của dao OSC1/CLK1/RA7 13 32 30 động tinh thể và dao động đồng hồ bên KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 5
  7. [Type the document title] ngoài Đầu vào của dao động tinh thể hoặc OSC1 I ST đầu vào dao động đồng hồ bên ngoài. Bộ nhớ đệm ST khi cấu hình chế độ RC tương tự khác Đầu vào của nguồn xung clock ngoài. Luôn gắn liền với chức năng của chân, CLK1 I CMO OSC1(xem chân S OSC1/CLK1; OSC2/CLK0 Chân vào/ra RA7 I/O TTL Đầu vào dao động OSC2/CLK0/RA6 14 33 31 tinh thể hoặc dao động đồng hồ bên ngoài Đầu ra dao động OSC2 O _ tinh thể, liên kết tinh thể hoặc cộng hưởng trong chế độ dao động tinh thể Trong chế độ RC, CLK0 O _ OSC2,chân đầu ra KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 6
  8. [Type the document title] CLK0 có ¼ tần số củaOSC1& biểu thị tỉ lệ chu kì lệnh Chân vào/ra RA6 I/O TTL PORTA là cổng vào ra 2 chiều RA0/AN0 2 19 19 Vào/ra số RA0 I/O TTL AN0 I Analo g RA1/AN1 3 20 20 Vào/ra số RA1 I/O Đầu vào tương tự 1 TTL AN1 I Analo RA2/AN2/VREF- 4 21 21 g /CVREF Vào/ra số RA2 I/O Đầu vào tương tự 2 AN2 I TTL A/D đầu vào tham VREF- I chiếu điện áp (mức Analo thấp) g CVREF So sánh đầu ra điện Analo O dáp tham chiếu g Vào/ra số RA3/AN3/VREF+ 5 22 22 Đầu vào tương tự 3 Analo RA3 I/O g Đầu vào tham chiếu AN3 I điện áp (mức cao) VREF+ I KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 7
  9. [Type the document title] TTL Đầu vào xung clock RA4/T0CKI/ 6 23 23 Analo g bên ngoài C1OUT So sánh đầu ra 1 Analo RA4 I/O g C1OUT O Vào/ra số RA5/AN4/SS/HLVD 7 24 24 Đầu vào tương tự 4 IN ST SPI chọn đầu vào C2OUT I/O Dò tìm điện áp đầu RA5 I vào mức cao/thấp _ AN4 I So sánh ngõ ra 2 SS I Xem chân HLVDIN OSC2/CLK0/RA6 TTL Xem chân O Analo OSC1/CLK1/RA7 C2OUT g RA6 TTL Analo g RA7 _ KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 8
  10. [Type the document title] PORTB là cổng vào/ra 2 chiều. RB0/INT0/FLT0/AN 33 9 8 Vào/ra số 12 I/O TTL Ngắt ngoài 0 RB0 I ST PWM lỗi đầu vào INT0 I ST cho nâng cao CCP1 FLT0 Đầu vào tương tự 12 I Analo AN12 g 34 10 9 Vào/ra số RB1/INT1/AN10 I/O Ngắt ngoài 1 RB1 TTL I Đầu vào tương tự 10 INT1 ST I AN10 Analo 35 11 10 Vào/ra số g RB2/INT2/AN8 I/O Ngắt ngoài 2 RB2 I Đầu vào tương tự 8 TTL INT2 I ST AN8 36 12 11 Vào/ra số Analo RB3/AN9/CCP2 g I/O Đầu vào tương tự 9 RB3 I Đầu vào 2/so sánh AN9 đầu ra 2/PWM đầu TTL I/O (1) ra CCP2 Analo g 37 14 14 Vào/ra số ST RB4/KBI0/AN11 I/O Chân thay đổi ngắt RB4 I KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 9
  11. [Type the document title] Đầu vào tương tự 11 KBI0 I AN11 38 15 15 TTL Vào/ra số RB5/KBI1/PGM I/O TTL Chân thay đổi ngắt RB5 I Analo g Chân cho phép lập KBI1 I/O trình điện áp mức PGM thấp ICSPTM TTL TTL Vào/ra số ST RB6/KBI2/PGC I/O Chân thay đổi ngắt RB6 I Chân lập trinhg gỡ lỗi&lập tình ICSP KBI3 I/O dữ liệu trong vi PGD mạch TTL PORTC là cổng TTL vào/ra hai chiều. ST Vào/ra số 15 34 32 Bộ dao động đầu ra RC0/T1OSO/T13CKI I/O timer1 RC0 O Timer1/Timer3 đầu T1OSO vào xung clock bên ngoài I ST T13CKI _ Vào/ra số Bộ dao động đầu 16 35 35 vào Timer1 ST RC1/T1OSI/CCP2 I/O KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 10
  12. [Type the document title] Đầu vào2/so sánh RC1 I đầu ra2/PWM2 đầu T1OSI ra I/O CCP2(2) ST Vào/ra số 17 36 36 CMO Đầu vào1/so sánh S đầu ra1/PWM1 đầu RC2/CCP1/P1A I/O ra RC2 I/O Nâng cao đầu ra 1 ST CCP1 O Vào/ra số P1A 18 37 37 Đầu vào nối tiếp ST RC3/SCK/SCL I/O đồng bộ xung clock/ ST đầu ra cho chế độ RC3 I/O SPI SCK Đầu vào nối tiếp _ đồng bộ xung clock/đầu ra cho chế I/O độ TMI2C ST SCL ST Vào/ra số 23 42 42 Dữ liệu SPI RC4/SDI/SDA I/O I2C dữ liệu vào/ra ST RC4 I SDI I/O Vào/ra số SDA 24 43 43 Dữ liệu đầu ra SPI RC5/SD0 I/O ST RC5 I/O KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 11
  13. [Type the document title] Vào/ra số SD0 25 44 44 I/O EUSART truyền tải RC6/TX/CK I/O I/O không đồng bộ RC6 O EUSART xung TX ST clock đồng bộ(xem đến liên quan I/O ST RX/DT) CK ST Vào/ra số 26 1 1 _ Nh ậ n EUSART RC7/RX/DT I/O không đồng bộ RC7 I ST EUSART dữ liệu đồng bộ(xem liên RX quan TX/CK) I/O DT PORD là cổng vào ST ra 2 chiều. Cổng Slave(PSP) để giao ST tiếp với cổng vi xử lý. Các chân này có bộ đếm đầu vào ST TTL khi PSP module được kích hoạt. Vào/ra số Cổng dữ liệu Salve song song 19 38 38 KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 12
  14. [Type the document title] Vào/ra số RD0/PSP0 Cổng dữ liệu Salve I/O RD0 I/O Vào/ra số PSP0 Cổng dữ liệu Salve 20 39 39 RD1/PSP1 I/O Vào/ra số RD1 I/O ST Cổng dữ liệu Salve PSP1 21 40 40 TTL RD2/PSP2 I/O Vào/ra số RD2 I/O Cổng dữ liệu Salve PSP2 22 41 41 ST RD3/PSP3 I/O TTL Vào/ra số RD3 I/O Cổng dữ liệu Salve PSP3 27 2 2 ST Tăng cường đầu ra RD4/PSP4 I/O TTL CCP1 RD4 I/O PSP4 28 3 3 ST Vào/ra số RD5/PSP5/P1B I/O TTL Cổng dữ liệu Salve RD5 I/O Tăng cường đầu ra PSP5 O ST CCP1 P1B TTL 30 5 5 PORE là cổng vào ra 2 chiều RD7/PSP7/P1D I/O ST RD5 I/O TTL KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 13
  15. [Type the document title] Vào/ra số PSP7 O _ Điều khiển đọc cho P1D cổng Slave song song ST Đầu vào tương tự 5 TTL 8 25 25 _ Vào/ra số RE0/RD/AN5 I/O Điều khiển ghi cho cổng Slave song RE0 I song Đầu vào tương tự 6 RD I 9 26 26 Vào/ra số AN5 I/O ST Chọn chip điều RE1/WR/AN6 I TTL khiển cổng Slave song song. RE1 Đầu vào tương tự 7 WR I Analo g Xem chân 10 27 27 MCLR/VPP/RE3 AN6 I/O Mát tham chiếu cho ST RE2/CS/AN7 I logic & chân vòa/ra TTL RE2 CS I Cấp mức logic Analo cực&chân thcihs AN7 _ _ _ _ g vào/ra RE3 12, 6, 6, 29 P ST Không có kế nối 31 30, KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 14
  16. [Type the document title] VSS 31 TTL 11, 7,8, 7,28 P 32 28, Analo 29 g VDD 13 _ _ 13,13, _ 33,34 _ NC _ _ • Chú thích: TTL: TTL ứng với đầu vào CMOS: CMOS ứng với đầu vào hoặc đầu ra ST: Schmitt Trigger đầu vào ứng với mức độ CMOS I: đầu vào O:đầu ra Power: chức năng • Chú ý: Mặc định cho CCP2 khi cấu hình bit,CCP2MX,được thiết lập. Thay thế cho CCP2 khi cấu hình bit,CCP2MX, được xóa bỏ. KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 15
  17. [Type the document title] 2.3. Bộ dao động PIC 18F4520 có thể hoạt động ở một trong 10 chế độ tạo dao động khác nhau. Việc lựa chọn các chế độ tạo dao động nhờ các thiết bị FOSC0:FOSC1 trong thanh ghi CONFIG1H. Sơ đồ bộ dao động trên vi điều khiển được mô tả trên hình sau: Hình 2.4. Sơ đồ khối bộ tạo dao động trên PIC 18F4520 2.3.1. Tạo dao động bằng thạch anh ngoài Ở chế độ XT,LP,HS hoặc HSPLL, một bộ dao động thạch anh và 02 tụ được kết nối với vi điều khiển(như hình 2.5) để tạo dao động cung cấp xung nhịp cho hệ thống. Hình 2.5. Tạo dao động bằng thạch anh KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 16
  18. [Type the document title] Trong đó tần số của thạch anh và giá trị của tụ điện được cho như sau: Freq OSC1 OSC2 3.58MHz 15pF 15pF 4.19MHz 15pF 15pF 4MHz 30pF 30pF 4MHz 50pF 50pF 2.3.2. Tạo dao động bằng RC ngoài Trong chế độ RC, xung nhịp của hệ thống được cung cấp bởi mạch tạo dao động (như hình 2.6).Tần số của xung nhịp này bằng ¼ tần số của mạch RC. Hình 2.6. Tạo dao động bằng RC ở chế độ RC Giá trị linh kiện: 3K
  19. [Type the document title] Hình 2.7. Tạo dao động bằng mạch RC ở chế độ RCIO 2.4.Hoạt động Reset PIC 18F4520 có 8 kiểu reset, trong đó cách reset thông dụng nhất là reset khi bật nguồn và reset bằng WDT. Hình 2.8. Sơ đồ khối mạch reset trên vi điều khiển KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 18
  20. [Type the document title] Để reset chip khi bật nguồn, cần một mạch điện như hình 2.9 Hình 2.9. Mạch Reset khi bật nguồn Việc chọn kiểu reset bằng thao tác bật nguồn hay WDT phụ thuộc vào bit trong thanh ghi RCON: R/W R/W-1 U-0 R/W-1 R-1 R-1 R/W-0 R/W-0 IPEN SBOREN - RI TO PD POR BOR Bit7 bit 0 2.5. Tổ chức bộ nhớ Bộ nhớ của nhớ của PIC 18F4520 gồm 3 loại: - ộ nhớ chương trình - Bộ nhớ RAM - Bộ nhớ dữ liệu EPROM Như những thiết bị kiến trúc Harvard, các dữ liệu và bộ nhớ của chương trình sử dụng những đường bus riêng biệt, việc này cho phép chúng ta có thể truy cập cùng lúc 2 bộ nhớ. Các dữ liệu EEPROM cho các mục đích thực tế có thể coi là một thiết bị ngoại vi. Từ nó ta có thể gửi và truy cập thông qua những thanh ghi điều khiển. 2.5.1. Tổ chức bộ nhớ chương trình Vi điều khiển PIC18 thực hiện một bộ đếm chương trình có độ dài 21-Bit có khoảng trống là 2Mbyte.Truy cập tới vị trí giữa bộ nhớ và 2-Mbyte địa chỉ thì tất cả các giá trị trả về sẽ là “0” (sử dụng lệnh NOP). KHOA ĐIỆN TỬ ĐHCN HÀ NỘI BÁO CÁO VĐK NÂNG CAO Page 19
nguon tai.lieu . vn