TRƯỜNG ………………….
KHOA……………………….
[\[\
BÁO CÁO TỐT NGHIỆP
Đề tài:
Vi điều khiển
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 1
LỜI CẢM ƠN
Trước tiên chúng tôi xin gửi lời cảm ơn đến các thầy, cô giáo Trường Đại Học
Công Nghệ - ĐHQGHN, bộ môn Điện Tử Viễn Thông đã nhiệt tình giảng dạy và
truyền đạt những kiến thức, kinh nghiệm quí giá trong suốt bốn năm chúng tôi học đại
học.
Tôi xin gửi lời cảm ơn sâu sắc đến PGS.TS Ngô Diên Tập, đã tận tình hướng dẫn,
dụng rất nhiều. Những sinh viên nghành Điện, Điện Tử , Cơ Điện Tử, Tin Học, Viễn
Thông hâu như ai cũng biết cách để làm việc với vi điều khiển. Ngày nay, những
tiến bộ trong công nghệ bán dẫn đã thúc đẩy sự phat triển không ngừng của nghành
công nghiệp tự động, các quá trình điều khiển tự đông hoá và điều khiển thời gian thực
đã đặt ra yêu cầu rất lớn về việc trao đổi dữ liệu giưa các hệ thống hay giữa các bộ
phân trong cùng một hệ thống.
Các mục tiêu đề ra trong luận văn:
Chương I: Sơ Lược Về Vi Điều Khiển
Chương II: Vi Điều Khiển Microchip PIC
Chương III: Vi Điều Khiển PIC 18F4550
Chương IV: Công Nghệ USB Qua Microchip 18F4550
Chương V: Chuyên Đổi Từ Thiết Bị Flash PIC 18F Sang PIC 18FXXJ
Chương VI: Đồng Hồ Báo Thức
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 3
CHƯƠNG IV: CÔNG NGHỆ USB QUA MICROCHIP 18F4550 34
4.1 Giới thiệu 34
4.2 Vi xử lý 18f4550 34
4.3 Lắp ráp bảng phát triển 34
4.3 Truyền tải khởi động vào 18F4550 36
4.4 Phát triển ứng dụng trong MPLAB IDE 37
CHƯƠNG V: CHUYỂN ĐỔI TỪ THIẾT BỊ FLASH PIC18F SANG PIC18FXXJ 47
5.1 Chuyển đổi thiết bị 47
5.2 Giới thiệu 47
5.3 Reset Brown-out (BOR) 51
5.4 XUNG 51
5.5Tuỳ chọn dao động ký 52
5.6 Đồng hồ đo năng lượng 52
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 4
5.7 Độ trễ khởi động/reset 52
5.8 Sự khác Biệt Về Chân 53
5.9 Điện trở kéo gắn trong 54
5.10 Tỷ lệ dòng trên các chân vào/ra 54
5.11 V
CAP
/V
DDCORE
và ENVREG 55
5.12 Bộ Nhớ Chương Trình 55
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 5
CHƯƠNG I
SƠ LƯỢC VỀ VI ĐIỀU KHIỂN
1.1. Sơ Lược Về Cấu Trúc Của Vi Điều Khiển
Năm 1971 bộ vi xử lý đầu tiên ra đời đã mở ra một thời đại mới trong công
nghệ điện tử và tin học, nó đã ảnh hưởng sâu sắc đến mọi lĩnh vực khoa học công nghệ.
Các hẹ thống được thiết kế dựa trên nền tảng của bộ vi xử lý ( điển hình như PC) co
khả năng mà các hệ thống điện tử thông thường không thể thực hiện được.
Các hãng chế tạo bán dẫn đã tích hợp các mạch ngoại vi và bộ vi xử lý lên một
chíp duy nhất (on chíp) để tạo ra các bộ vi điều khiển, để nhằm hạn chế tối đa các linh
kiện mắc ngoài khi xây dựng hệ thống có sử dụng vi xử lý, vi điều khiển.
Những bộ vi điều khiển mới hiện nay của các hãng như: ATMEL, MOTOROLA,
MICROCHIP… Bên trong đã tích hợp nhiều thiết bị ngoại vi như khối ADC, khố
PWM, các loại bộ nhớ, bộ đệm, các cổng truyền thông như: 12C, UART, CAN, PSP,
USB, khối điều khiển LCD, thậm chí cả các khối thu phát không dây RF. Điều này
khiến cho việc thực hiện các ưng dụng với vi điều khiển trở nên dễ dàng, giảm được
kích thước mạch điện và chi phí.
Việc thiết kế và chế tạo ra các bộ xử lý (microprocessor) hiện nay phát triển theo
hai hớng chính. Hướng thứ nhất là phát triển cac bộ xử lý mạnh tốc độ cao thực hiện
hàng tỷ lệnh mỗi giây, độ dài từ dữ liệu lớn 32 hoặc 64 bit, truy nhập không gian bộ
nhớ đến hàng trăm Mbyte hiện nay đã lên hàng Gbyte. Các bộ xử lý này được dùng
thiết bị viễn thông, máy văn phòng, đồ điện tử gia dụng, đồ chơi trẻ em, thiết bị giải trí.
Các thiết bị đó nói chung đều cần một cơ cấu điều khiển thông minh, có khả năng
tương tác với người sử dụng.
Chương trình cho vi điều khiển là một tập các lệnh đã được dịch thành mã máy
thường được nạp trực tiếp vào bộ nhớ ROM của vi điều khiển từ máy tinh thông
quamọt bộ nạp trình. Một phía của bộ nap được nối với cổng máy tính (COM, USB,
LPT) để nhận dữ liệu từ máy tính, phía kia đưa dữ liệu tới vi điều khiển thông qua các
chân nạp trình của vi điều khiển . Các chân này lại là các chân vào ra thông thường sau
khi vi đièu khiển đã được nạp chương trình.
Các cổng vào ra số cho các dữ liệu nhị phân di chuyển voà ra qua các chân của vi
điều khiển. Các chân này được dùng để ghép nối vi điều khiển với các thiết bị vào ra
số hay ghép nối với các bộ vi điều khiển khác để thực hiện các chức nang nào đó.
Cổng truyền thông dữ liệu nối tiếp tạo khả năng giao tiếp của hệ thống với các hệ
thống khác qua các chuẩn giao tiếp như: URAT, CAN, 12C, SPI…
Các bộ đếm dùng để tạo ra các nhịp thời gian chính xác hoặc để đếm xung.
Khối chuyển đổi A/D cho phép vi điều khiển giao tiếp với các thiết bị điện tử
tương tụ như cảm biến tương tự nhờ đó nó có thể đưa các dữ liệu tương tự vào để xử
lý và lưu trữ. Khối A/D cho phép vi điều khiển điều khiển các thiết bị không tương
thích điều khiển số.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 7
1.2 Một Vài Họ Vi Điều Khiển Phổ Biến:
1.2.1 INTEL 8051
Có 40 chân, trong đó có 32 chân vào ra
128 byte RAM
5 bộ timer 16 bit
Có bộ nhớ không tự bay hơi EEFROM 512 byte
Khả năng định địa chỉ 16 Kbyte bộ nhó ngoài
Tần số xung nhịp 8 MHz
Nạp trình song song
1.2.4 MICROCHIP PIC 12Xxxx, 16Xxxx, 17Xxxx, 18Xxxx, DSPIC
Đóng vỏDip8-18-28-40 (phổ biến), tương ứng là 5-13-22-3 chân I/O
Dung lượng bộ nhớ chương trình ROM 512 byte đến 8 Kbyte
Có từ 25 đến 400 byte RAM
Ở các loại cấp chung và cấp cao có khối UART
Có 1 đến 3 timer 8 bit, 16 bit
Bộ ADC 8bit, 10bit, 6-8 kênh vào
Có bộ nhớ EEFROM dung lượng 64-512 byte ở các họ Fxxx và DSPIC
Có khả năng định địa chỉ cho bộ nhớ ngoài ở các họ cấp cao
Tần số xung nhịp từ 4-40 MHz
Tập lệnh RISC
Đa số nạp trình theo chuẩn ICSP
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 9
CHƯƠNG II
10
16C84 và PIC16F84. Bộ nhớ chương trình flash đã loại bỏ vai trò của vi điều khiển có
bộ nhớ xoá bằng tia cực tím, có vỏ bằng gốm đắt tiền và các đèn chiếu tia cực tím.
2.2 Phân Loại
Tiêu chuẩn để phân nhóm dựa trên sự khác nhau về kiến trúc bộ xử lý bên trong vi
điều khiển.
Số các thanh ghi có thể truy cập được
Có hay không có ngắt , số lượng ngắt
Số lượng các phần cứng có chức năng đặc biệt
Độ dài từ lệnh
Dựa vào những đặc điểm đó vi điều khiển PIC được chia làm 4 họ:
2.2.1 Họ cấp thấp (low-end)
Gồm các loại được ký hiệu 12C5xx, 16C5x, 16C505, 16HV540
Độ dài từ lệnh 12 bit
Bố chí các thanh ghi: có 32 thanh ghi trên một bank, tối đa có 4 bank
Đặc điểm chung
Rất thích hợp trong các ứng dụng giao diện đơn giản với ngoại vi.
Bộ nhớ chương trình kiểu OTP hoặc EPROM xoá được bằng tia cực tím.
Tốc độ cao, thực hiện được 5 triệu chỉ thị/s với tần số xung nhịp 20MHz.
Chỉ có một bộ đếm timer.
Không có các ngắt cứng.
Không có các lối ra tăng cường.
Nạp trình song song, trừ PIC12C5xx và PIC16C505 được nạp trình nối
tiếp theo giao thực ICSP.
2.2.2 Họ cấp chung (Mid-range)
năng đặc biệt (SFR).
Đặc điểm chung.
Kiến trúc khác so với họ PIC cấp chung, cấp thấp.
Có ác lệnh tăng cường và nhiều khả năng định địa chỉ.
Vi điều khiển giao tiếp bus, truy nhập cac thiết bị song song trực tiếp.
Có một số lối vào/ra tăng cường.
Bộ nhớ chương trình OTP.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 12
Nạp trình kiểu song song.
2.2.4 Họ cấp cao (High- performance)
Gồm những loại có ký hiệu 18Cxxx và 18Fxx2
Độ dài từ lệnh 16 bit.
Bố trí các thanh ghi 256 byte trên một bank, tối đa có 16 bank.
Đặc điểm chung:
Kiển trúc nâng cao, dựa trên nền tảng của họ cấp trung, theo xu hướng thừa kế
những tính năng của các loại cấp trung đồng thời bổ xung các tính năng mới.
Do đó dần dần có khả năng thay thế toàn bộ PIC cấp trung.
Có các lệnh tăng cường và nhiều khả năng định địa chỉ.
Có khả năng truy nhập tới 2Mbyte bộ nhớ chương trình, 4Kbyte bộ nhớ RAM.
Véctơ ngắt đơn, có thể lập trình được mức độ ưu tiên các nguồn ngắt.
Khả năng vào/ra tương tự họ cấp trung.
Tần số hoạt động tối đa 40MHz, có bộ nhân tần số PLL.
Có bộ nhớ chương trình flash.
Nạp trình nối tiếp, có khả năng tự ghi vào bộ nhớ chương trình.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 14
CHƯƠNG III
VI ĐIỀU KHIỂN PIC 18F4550
Các chỉ thị dài 1 byte với một số ngoại lệ dài 2 byte (CALL, MOVFF, GOTO
LSFR). Sử dụng cơ chế đường ống để thực thi mã bằng việc khiến các chỉ thị liên tiếp
hoạt động trong 4 xung (độ dài xung) và có 4 lần nhảy xung được thêm vào.
Các đặc tính đáng chú ý khác là có đồng hồ, ngắt (đồng hồ gắn trong và gắn
ngoài) với hai mức ưu tiên và dùng cả hai mức như bộ so sánh tương tự kèm theo với
bộ phát điện thế chuẩn có 16 mức (hữu ích khi dùng trigger ở mức phần cứng).
Cuối cùng, CIP cũng có một bộ chuyển đổi tương tự 10 bit nhưng dao động ký
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 16
không đủ yêu cầu về tốc độ cao cần thiết. Vì vậy, máy phát dao động có tốc độ 48
MHz giữa thời gian trễ do truyền tải và các ngắt khác (vòng lặp …). Không thể đạt
được tốc độ lớn hơn 200 kHz.
3.1 Sơ đồ chân
Sau đây là sơ đồ chân của PIC18F4550 trong hộp DIP-40.
Đặc biệt, có thể nhận ra chân D- và D+ từ kết nối USB (chân 23 và 24). Hình 3:Sơ đồ chân của PIC18F4550 trong hộp DIP-40
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 17
COFS
CSCK
CSDI
CSDO
I/O
I/O
I
O
Cổng giao tiếp chuyển đổi dữ liệu đồng bộ khung.
Cổng giao tiếp chuyển đổi dữ liệu Clock vào ra nối tiếp.
Lối vào dữ liệu nối tiếp.
Lối ra dữ liệu nối tiếp.
C1RX
C1TX
I
O
Cổng nhận bus CAN1
Cổng phát bus CAN1
EMUD
EMUC
EMUD1
EMUC1
EMUD2
I/O
I/O
I/O
I/O
Cổng vào ra dữ liệu kênh truyền thông sơ cấp của ICD.
Vào ra xung nhịp kênh sơ cấp.
Schmitt được sử dụng khi cấu hình trong chế độ RC.
Lối ra bộ dao động tinh thể.
PGD
PGC
I/O
I
Vào ra dữ liệu của ICSP.
Lối vào Clock của ICSP.
RA11 I/O Port A.
RB0-RB12
I/O PortB.
RC13-
RC15
I/O PortC.
RD0-RD3,
RD8, RD9
I/O PortD.
RF0-RF5 I/O PortF.
SCK1 I/O Vào ra Clock đồng bộ của khối SPI1.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 20
SDI1
SDO1
SS1
I
O
Cổng nhận khối UART1.
Cổng phát khối UART1.
Cổng nhận mở rộng khối UART1.
Cổng phát mở rộng khối UART1.
VDD Chân nguồn Vdd.
VSS Chân nguồn Vss.
Vref+
Vref-
I
I
Lối vào Vref+ (cao) thế analog chuẩn.
Lối vào Vref- (thấp) thế chuẩn.
3.2 Các Công Cụ Lập Trình
Khi lựa chọn kiến trúc, phải nói đến cách lập trình. Với CIP thì thường dùng
PICSTART Plus của Microchip. Tuy nhiên, mô hình ta đã chọn là mô hình duy nhất
không tương thích với nhà sản xuất này. Mặt khác, ta có thuận lợi nếu theo nhà phát
triển này, ta sẽ có sẵn một chiếc mà không cần phải mua. Đánh giá khi hoàn thành
project thì trong tương lai bản cập nhật sẽ được phép dùng.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 21
CIP phát biểu dù chưa thực hiện nhưng sẽ theo kịp với nhu cầu bảo mật hay xây
dựng chương trình riêng của mình.
Hình 7 : Phần mềm bằng ICD
Quản lý các đầu vào và đầu ra số cũng như đầu vào tương tự (bộ chuyển đổi
tương tự - số)
Giai đoạn hai của việc thực hiện USB, rất đơn giản, chỉ là tích luỹ kinh nghiệm
phát triển của năm trước tại đây đáng đề cập đến đặc tính của CIP
Với ứng dụng này sẽ sử dụng công cụ lập trình sau
CCS ICD là giải pháp loại bỏ lỗi và lập trình cho microchip PIC16Fxx và
PIC18Fxx MCU hoàn chỉnh in-circuit. ICD có thể loại bỏ lỗi qua PIC16 và hỗ trợ
PIC18 trống loại bỏ lỗi theo cách loại trừ sai phạm. Nó cũng cung cấp lập trình nối tiếp
in-circuit (ICSP) cho tất cả các chip Flash. Một danh sách các phần được DCI hỗ trợ
được ghi chi tiết ở đây.
Các đơn vị CCS ICD làm việc tốt với phần mềm điều khiển PCW hay CCS độc
lập với ICD CCS. Debug PCW là quan trọng và tích hợp với bộ biên dịch và PCW
PCWH và cung cấp thông tin phát sinh lỗi được viết chi tiết bằng C. Phần mềm cho
phép các chương trình điều khiển độc lập nhanh chóng tác động vào ICSP chính nhờ
ICD. Phần mềm điều khiển cũng cho phép bạn cập nhật các hỗ trợ mà không thay đổi
về mặt logic đối tượng ICD, không phải bỏ đi chip của đơn vị ICD. (Dùng các công cụ
phần mềm này đòi hỏi phải nạp cho đơn vị CCS ICD không thay đổi logic phương tiện
trên ICD, được tải theo mặc định) Phần mềm điều khiển từ đơn vị ICD và cho phép
thiết lập các phần Flash được hỗ trợ. Để giúp loại bỏ lỗi, chức năng của PCW hay
PCWH là debug và tích hợp IDE với IDE.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 23
ICD-S40 đã thay thế ICD-S20 và DCI 4 MHz. Hãy chú ý, ICD-S40 và ICD-U40
chỉ làm việc với phần mềm và không dùng MPLAB IDE CCS. ICD nguyên bản CCS 4
mà thay đổi là ICD có cấu hình như trên, tuỳ chọn thay đổi đầu vào tương tự và máy
chỉ thị thể hiện có truyền thông giữa thiết bị và host.
3.4 Tiêu Thụ Năng Lượng
Để quyết định xem có cần cấp nguồn ngoài (hay đơn giản là cấp nguồn qua cổng
USB), xem danh sách sau các thành phần và tiêu thụ năng lượng của chúng. Do cổng USB có thể cấp dòng 500 mA nên phải dùng nguồn từ ngoài để cấp
nguồn. Ta dùng bộ điều chỉnh 7805 và chọn nguồn 9VDC vì đó là điện thế tối thiểu
cần để 7805 hoạt động được (và để tản nhiệt) và có thể thay bằng pin 9V nếu cần.