Xem mẫu
- 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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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