Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
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,
cung cấp tài liệu trong suốt quá trình thực hiện đề tài này
Tôi xin gửi lời cảm ơn đến tập thể lớp K49ĐB, những người đồng hành trong khóa
học và có nhiều ý kiến đóng góp.
Một lần nữa xin gửi lời cảm ơn chân thành và sâu sắc!
Hà Nội, tháng 6 năm 2008
Sinh viên thực hiện:
Nguyễn Thế Anh
1
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
MỞ ĐẦU
Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam, và được ứng 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
Mục lục
Mục lục 2
2
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
CHƯƠNG I ......................................................................................................................5
SƠ LƯỢC VỀ VI ĐIỀU KHIỂN.....................................................................................5
1.1. Sơ Lược Về Cấu Trúc Của Vi Điều Khiển...........................................................5
1.2 Một Vài Họ Vi Điều Khiển Phổ Biến:...................................................................7
1.2.1 INTEL 8051..................................................................................................7
1.2.3 MOTOROLA 68HCxx..................................................................................7
1.2.4 MICROCHIP PIC 12Xxxx, 16Xxxx, 17Xxxx, 18Xxxx, DSPIC..................8
CHƯƠNG II......................................................................................................................9
VI ĐIỀU KHIỂN MICROCHIP PIC................................................................................9
2.1 Lịch Sử Phát Triển................................................................................................9
2.2 Phân Loại.............................................................................................................10
2.2.1 Họ cấp thấp (low-end).................................................................................10
2.2.2 Họ cấp chung (Mid-range) .........................................................................10
2.2.3 Họ cấp cao (High-end) 17Cxxx...................................................................11
2.2.4 Họ cấp cao (High- performance).................................................................12
2.3 Một Số Ưu Điểm Microchip PIC.........................................................................12
CHƯƠNG III...................................................................................................................14
VI ĐIỀU KHIỂN PIC 18F4550......................................................................................14
3.1 Sơ đồ chân............................................................................................................16
3.2 Các Công Cụ Lập Trình.......................................................................................20
3.3 Đơn vị ICD-U40..................................................................................................23
3.4 Tiêu Thụ Năng Lượng.........................................................................................24
3.5 FIRMWARE........................................................................................................25
3.6 Các công cụ làm việc...........................................................................................25
3.7 Thiết bị lớp...........................................................................................................25
3.8 Firmware HID......................................................................................................26
3.9 Một số đặc tính:...................................................................................................26
3.10 Nguyên tắc hoạt động:.......................................................................................26
3.11 Driver.................................................................................................................27
3.12 Mô Tả Thực Hiện Firmware Thứ Hai................................................................29
3.13 Kết luận..............................................................................................................32
CHƯƠNG IV...................................................................................................................34
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....................................................................................................................46
CHUYỂN ĐỔI TỪ THIẾT BỊ FLASH PIC18F SANG PIC18FXXJ............................46
5.1 Chuyển đổi thiết bị...............................................................................................46
5.2 Giới thiệu.............................................................................................................46
5.3 Reset Brown-out (BOR).......................................................................................51
5.4 XUNG..................................................................................................................51
3
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
5.5Tuỳ chọn dao động ký...........................................................................................53
5.6 Đồng hồ đo năng lượng.......................................................................................53
5.7 Độ trễ khởi động/reset.........................................................................................53
5.8 Sự khác Biệt Về Chân..........................................................................................53
5.9 Điện trở kéo gắn trong.........................................................................................55
5.10 Tỷ lệ dòng trên các chân vào/ra.........................................................................55
5.11 VCAP/VDDCORE và ENVREG.......................................................................55
5.12 Bộ Nhớ Chương Trình.......................................................................................55
5.12.1 ID thiết bị...................................................................................................55
5.12.2 Từ cấu hình................................................................................................55
5.12.3 Các chu trình ghi.......................................................................................59
5.12.4 Khả năng ghi nhớ đặc tính.........................................................................59
5.12.5Mô phỏng tự ghi và EEPROM...................................................................59
5.12.6 Bảo vệ mã..................................................................................................60
5.12.7 Vào chế độ lập trình..................................................................................60
5.13 Thiết Lập Chính Xác Cho Chương Trình Thiết Bị Và Công Cụ Phần Mềm.....60
5.14 KHÁC BIỆT MODULE...................................................................................61
5.15 TỔNG KẾT........................................................................................................62
CHƯƠNG VI.....................................................................................................63
ĐỒNG HỒ BÁO THỨC............................................................................................63
6.1 Tóm lược..............................................................................................................63
6.2 Chỉ thị hoạt động..................................................................................................63
6.2.1 Ngày tháng/thời gian hiện tại......................................................................63
6.2.2 Thời gian 12 giờ hay thời gian quân sự.......................................................64
6.2.3 Báo thức......................................................................................................65
6.2.4 Âm báo thức................................................................................................66
6.2.5 Đồng bộ, chờ và ngừng báo thức................................................................66
6.3 USB......................................................................................................................68
6.4 Lập trình PIC........................................................................................................68
6.4.1 Đồng hồ.......................................................................................................68
6.4.2 USB.............................................................................................................69
6.5 Sử dụng Compact Flash.......................................................................................69
6.6 Chip bộ mã hoá MP3...........................................................................................70
6.7 Bộ chuyển đổi số - tương tự CS4334 ..................................................................73
6.8 Màn hình LED ....................................................................................................73
6.9 Kết luận ...............................................................................................................73
4
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
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 trongcác
hệ thống cần có công suất tính toán cao như ở máy tính cá nhân PC (Personal
Computer). các hệ điều khiển trong công nghiệp. Hướng thứ hai đó là thiết k, chế tạo
các vi điều khiển (microcontroller), đó là một vi mạch đơn bên trong gồm bộ xử lý
8,12,14 hoặc 16 bit và các khối chức năng như bộ nhớ, bộ đệm, bộ biến đổi A/D, cổng
nối tiếp… . Các vi điều khiển điển hình là intel 8051, ATMEL, AVR, MOTOROLA
68HC11, Microchip Pic…
Điều thúc đảy việc nghiên cứu chế tạo vi điều khiển đó là tính đa dụng, dễ dàng
lập trình và giá thành thấp. Vi điều khiển tỏ ra rất hấp dẫn trong các ứng dụng điều
khiển điện tử vì có kích thước nhỏ, tuy nhỏ nhưng chức năng cũng rất đa dạng, dễ dàng
tích hợp vào trong hệ thống để điều khiển toàn hệ thống.
5
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
Các thành phần của vi điều khỉên là: CPU, RAM, ROM, các bộ đếm, bộ định thời,
các cổng vào ra, giao diện truyền thông nối tiếp, các khối chuyển đổi tương tự số A/D
và ngược lại số tương tự D/A. Khối xử lý trung tâm CPU thực hiện các chỉ thị được lưu
trong bộ nhơ chương trinh ROM để điều khiển tất cả các thành phần còn lại. Bộ nhớ
truy cập ngẫu nhiên RAM được dùng để lưu các thiết lập và các biến sử dụng trong
chương trình. Chương trình và các số liệu cố định được lưu trong ROM. Bộ nhớ ROM
của vi điều khiển sẽ trở thành phần sụn (firmware) sau khi được nạp trình. Bộ nhớ ROM
này có thể là loại ROM mặt nạ (masked ROM), với loại này chương trinh được đưa
vào ngay trong quá trình chế tạo vi mạch. Hay có thể là loại OTP ROM chỉ cho phép
nạp chương trình một lần, loại EFROM co thể ghi va xoá nhiều lần bằng tia cực tim,
ngoài ra còn loại bộ nhớ nữa là EEFROM là loại bộ nhớ không tự bay hơi có thể được
thay đổi dễ dàng bởi người lập trình.
Vi điều khiển được sử dụng rộng rãi trong các thiết bị điện tử: chúng có trong các
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ố.
6
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
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
Có khả năng định địa chỉ được 64Kbyte bộ nhớ ngoài
Có 2 tới 3 khối timer
Tần số xung nhịp 12-24MHz
Có khối UART
Nạp trình song song ở các phân họ có bộ nhớ chương trình
1.2.2 ATMEL AVR AT90Sxxxx
Đóng vỏ 8-20-40 chân, tương ứng là 3-15-32 chân vào ra
Chữ lượng bộ nhớ chương trình từ 512 byte đến 8 Kbyte.
Có 128 byte đến 512 byte RAM
Có khối UART trong một số loại cấo cao
Có 1 đến 2 timer 8 bit một số loại có timer 16 bit
Bộ ADC 10bit với 6-8 kênh vào
Có bộ nhớ EEFROM dung lượng 64-512 byte
Tần số xung nhịp 10 MHz
Tập lệnh RISC
Nạp trình nối tiếp theo chuẩn ICSP
1.2.3 MOTOROLA 68HCxx
Đóng vỏ PLCC52, 68 hoặc 82 chân
38 chân vào ra
Có 1 byte bộ nhớ RAM bên trong
Không có hoặc tối đa 20Kbyte bộ nhớ lệnh
Có khối UARTx
7
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
Bộ ADC 8bit, 6-8 kênh vào
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
8
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
CHƯƠNG II
VI ĐIỀU KHIỂN MICROCHIP PIC
2.1 Lịch Sử Phát Triển
Năm 1965 hãng Genneral Instrument thành lập ban vi điện tử nhằm tập trung
nghiên cứu công nghệ chế tạo bộ nhớ kiểu EPROM và EEPROM, đó là các linh kiện thu
hút nhiều đầu tư của các phòng thí nghiệm bán dẫn. Đầu những năm 70 Genneral
Instrument cũng chế tạo vi xử lý 16 bit PC1600. Bộ xử lý này khá tốt nhưng có nhược
điểm là khả năng vào ra không mạnh để thích ứng bộ xử lý PC1600 trong các ứng dụng
cần có tính nâng cao. Năm 1975 Genneral Instrument thiết kế vi mạch điều khiển giao
tiếp ngoại vi (Peripheral interface controler) viết tắt là PIC, đó là linh kiện hỗ trợ các
tính năng vào ra cho vi xử lý PIC không cần nhiều chức năng vì chỉ xử lý các công việc
vào ra do đó bộ mã lệnh của nó khó nhỏ gọn. Những vi điều khiển PIC đầu tiên có điểm
yếu là chế tạo theo công nghệ n-MOS nên tiêu thụ nhiều năng lượng, bộ nhớ chương
trình là loại ROM mặt nạ chỉ nạp được một lần, do đó chương trình điều khiển được nạp
ngay khi chế tạo vi mạch nên chỉ thích hợp với các khách hàng đặt mua với số lượng
lớn, để lắp ráp trong sản xuất những sản phẩm cụ thể.
Những năm đầu thập ki 80 Genneral Instrument gặp khó khăn trong thương mại và
tổ chức lại. Hãng tập trung vào chế tạo linh kiện bán dẫn công suát lớn là thế mạnh cho
tới hiện nay của hãng. Genneral Instrument đã chuyển nhượng Ban vi điện tử và nhà
máy tại Chandle, bang Anizona cho các nhà đầu tư. Họ lập ra một công ty mới, đặt tên
là Arizona Microchip technology hiện nay là Microchip technology Inc.
Chiến lược của các nhà đầu tư là tập trung vào vi điều khiển và các bộ nhớ bán
dẫn. Các vi mạch PIC n-MOS được cải tiến, chế tạo dựa trên nền tảng công nghệ mới
CMOS. Các sản phẩm đầu tiên của Microchip được biết tới và bán ra với số lượng lớn
là các vi điều khiển PIC thuộc họ PIC16C5x. Họ này có hai biến thể với bộ nhớ chương
trình là OTP và UV EPROM. Loại OTP có thể nạp trình một lần dùng cho sản xuất loại
lớn. Loại UV EPROM có thể xóa được bằng tia cực tím (tia UV) dùng khi phát triển,
thử nghiệm phần mềm.
Năm 1983 Microchip là hãng đầu tiên đã tích hợp được bộ nhớ chương trình flash
EEPROM vào những vi điều khiển mới, trong đó được biết đến nhiều nhất là PIC
9
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
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)
Bao gồm 12C6xx, 14C000, 16C55x, 16C6x, 16C62x, 16F62x, 16C67x, 16C8x, 16F87x
và 16C9xx
Độ dài từ lệnh 14 bit
10
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
Là họ vi điều khiển PIC thông dụng nhất hiện nay.
Bố chí các thanh ghi: 128 byte trên một bank, tối đa 4 bank.
Là vi điều khiển vạn năng tinh năng mạnh.
Có rất nhiều biến thể khắc nhau, với các kiểu đóng vỏ đa dạng: DIP, PLCC,
SSOP…
Đặc điểm:
Tốc độ cao, thực hiện được 5 triệu chỉ thị /s ở xung nhịp 20MHz.
Có các ngắt phần cứng.
Có từ 1 đến 3 bộ đếm – timer
Có rất nhiều kiểu khác nhau về chân vào/ra tăng cường bao gồm các vào/ra tương tự,
giao diện truyền thông nối tiếp: đồng bộ, không đồng bộ, 12C, SPI, CAN, USB…, bộ
điều khiển LCD.
Bộ nhớ chương trình flash ở hầu hết các vi mạch.
Khả năng nạp trình nối tiếp ICSP.
Có khả năng tự ghi vào bộ nhớ chương trình (self-programming).
Có phần cứng gỡ rối chương trình ICD ở một số loại.
2.2.3 Họ cấp cao (High-end) 17Cxxx
Gồm các loại 17Cxxx
Độ dài từ lệnh 16 bit
Bố trí các thanh ghi: 224 byte trên một bank, tối đa 8 bank, 48 thanh ghi chức
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.
11
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
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.
Hiện nay mới nhất là DSPIC với nhiều tính năng vượt trội:
Kiến trúc Harvard sửa đổi, 83 lệnh đơn, với chế độ địa chỉ mềm dẻo….
2.3 Một Số Ưu Điểm Microchip PIC
Bộ nạp trình cho PIC có thể tự lắp ráp một các dễ dàng với chi phí thấp do PIC chủ
yếu nạp trình theo chuẩn ICSP (In-Circuit Siral Programming) là phương thức nạp trình
nối tiếp: các dữ liệu được nạp vào bộ nhớ chương trình thông qua 2 chân vào/ra được
gán là cổng truy nhập đến bộ nhớ chương trình trong quá trình nạp trình. Do đó nhờ có
bộ nhớ flash và nạp trình theo chuẩn ICSP mà những người nghiên cứư và sử dụng
PICđã tiết kiệm được đáng kể chi phí mua các công cụ nạp. Với bộ nhớ flash thì thời
gian nạp trình cũng được cải thiện đáng kể ( chỉ khoảng vài chục giây) so với UV
EPROM (cỡ hơn chục phút).
Microchip cung cấp rất đầy đủ và chi tiết các tài liệu kỹ thuật về tất cả các loại vi
điều khiển PIC. Ngoài ra còn cung cấp phần mềm công cụ miễn phí MPLAB-IDE được
12
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
đánh giá là tốt nhất so với các công cụ phát triển tương tự của các hãng sản xuất vi điều
khiển khác (các tài liệu công cụ này được cung cấp miễn phí trên www.microchip.com).
Ngoài ra còn có rất nhiều sách viết về PIC và các trang web nói về vi điều khiển này.
Tài liệu hỗ trợ cho vi điều khiển PIC chỉ dùng sau máy tính cá nhân PC và về doanh số
bán ra thi trường hiện nay. Microchip đã đứng đầu về doanh số bán PIC 8 bit, vượt lên
trên cả các vi điều khiển của motorola.
13
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
CHƯƠNG III
VI ĐIỀU KHIỂN PIC 18F4550
PIC18F4550 là một vi xử lý cơ bản đa chức năng và rẻ. Nó là sản phẩm của họ vi
xử lý PIC thông dụng của công ty Microchip của Mỹ có trụ sở đặt tại Chandler, Arizona
(Mỹ).
Hình 1: PIC18F4550
Điểm riêng biệt của vi xử lý PIC18F4550 là nó là một trong những PIC hỗ trợ toàn
thể cho USB, nghĩa là có USB gắn trong có sẵn các chân đầu ra để nối trực tiếp với máy
tính mà không cần mạch kéo hay bất cứ mạch gắn ngoài nào khác.
14
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
Hình 2: Giao Tiếp USB
Hỗ trợ tinh thể và dao động ký nhiều tần số như đầu vào và bộ cân bằng nên bộ xử
lý có thể hoạt động với tần số 48 MHz của dao động ký độc lập khi kết nối. Khi kết thúc
hoạt động thì chỉnh dao động ký được kết nối (thông qua các bit cấu hình). Làm việc với
tốc độ 48 MHz là điều kiện tiên quyết để chuyển sang chế độ toàn tốc nhờ cổng USB.
Vì vậy, driver USB chuyển sang chế độ toàn tốc (1.5 Mbyte/giây) qua USB và tương
thích với chuẩn USB 2.0. Nó cũng có 35 chân vào/ra số chung (xem sơ đồ chân ở phần
dưới) và có sẵn vỏ bọc gồm DIP-40 nên rất thuận tiện cho nhà phát triển và những
người nghiệp dư quan tâm.
Với bộ nhớ, có 32kb Flash lưu trữ chương trình, 2kb bộ nhớ SRAM bay hơi và
256 byte EEPROM (bộ nhớ không bay hơi) để lưu trữ dài hạn dữ liệu như cấu hình …
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ý
15
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
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
16
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
Hình 4: TQFP
Hình 5: QFN
17
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
Bảng 1: Bảng mô tả các chức năng từng chân của PIC18F4550
Chân Hướng Mô tả chức năng và các đặc tính
AN0-
AN12
I 13 kênh Input, Analog, AN6 và AN7 còn dùng cho lập
trình dữ liệu và xung clock vào.
Avdd Nguồn dương cho môđun tương tự.
Avss Nguồn Ground cho modul tương tự.
CLKI I Lối vào của xung Clock ngoài, luôn kết hợp với chân
OSC1.
CLKO O Lối ra của bộ dao động tinh thể, nối với tinh thể hoặc
bộ cộng hưởng trong chế độ dao động thạch anh.
Giống như CKLO trong chế độ RC hoặc EC. Luôn kết
hợp với chân chức năng OSC2
CN0-CN7,
CN17-CN18
I Khai báo thay đổi ở lối vào.
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
EMUC2
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.
Vào ra dữ liệu kênh thứ cấp.
…
18
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
EMUD3
EMUC3
IC1,
IC2,IC 7,
IC8
I Các cổng vào của môđun Capture.
INT0,
INT1,
INT2
I Các ngắt ngoài.
LVDIN I Cổng vào phát hiện sụt thế.
/MCLR I Power, chân Reset, mức tích cực thấp.
OSC1
OSC2
I
O
Lối vào bộ giao động tinh thể. Bộ đệm Trigger 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
SDI1
SDO1
SS1
I/O
I
O
I
Vào ra Clock đồng bộ của khối SPI1.
Lối vào dữ liêu của khối SPI1.
Lối ra dữ liệu của SPI1.
Slaver đồng bộ.
SCL I/O Vào ra Clock nối tiếp của I2C.
19
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
SDA
I/O
Vào ra Data nối tiếp đồng bộ của I2C.
SOSCO
SOSCI
O
I
Lối ra bộ dao động tinh thể công suất thấp 32Khz.
Lối vào bộ dao động 32Khz.
T1CK
T2CK
I
I
Lối vào xung Clock ngoài của Timer1.
………………………………..Timer2.
U1RX
U1TX
U1ARX
U1ATX
I
O
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.
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.
Giải pháp ta tìm ra là chương trình và bộ debug ICD2. Giải pháp ta tìm ra là
chương trình và bộ debug ICD2. Ta dễ quản lý nhóm của nhà phát triển thể hiện các đặc
tính:
Thiết bị sử dụng được chia thành như sau
20
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
Một bộ debug/chương trình thiết bị tổng hợp MPLAB ICD2 là bộ D/P thời gian
thực, giá rẻ có các đặc tính sau:
Giao diện USB (Toàn tốc 2Mbit/giây) và RS-232 nối tới máy host
Debug nền thời gian thực
Giao diện người dùng đồ hoạ MPLAB IDE (có bản copy miễn phí)
Mạch giám sát đoản mạch/quá tải điện thế tích hợp
Firmware cập nhật từ máy tính
Hoàn toàn gắn kèm
Hỗ trợ điện thế thấp đến 2.0 Volt (dải từ 2.0 đến 6.0)
LED chẩn đoán (Nguồn, Bận, Lỗi)
Không gian đọc/viết và miền EEDATA của vi điều khiển chính
Các bit cấu hình chương trình
Xoá không gian bộ nhớ chương trình sau khi kiểm định
Các đồng hồ ngưng ngoại vi dừng lại tại các điểm ngưng
Biểu đồ chính của kết nối với ICD2
Hình 6: Kết Nối Với ICD2
Thể hiện phần mềm bằng ICD
21
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
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.
22
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
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
MHz làm việc với MPLAB IDE 5.xx.
Cần phải cấp nguồn 3V cho ICD-U40. ICD-S40 không hỗ trợ 3V. CCS cung cấp
hai giải pháp cho ICD:
3.3 Đơn vị ICD-U40
Đơn vị ICD nối với máy tính và phần mềm Debug trên USB. Nó hoạt động với tần
số xung 40 MHz nên thời gian debug nhanh hơn (có cả cáp USB). Đơn vị được cấp
nguồn ICD-U40 USB. Bộ nguồn cũng cấp nguồn 5V để nối “cầu” gần ICD trong đơn vị
(đơn vị phải được bật)
Hình 8: Đơn Vị ICD-U40
Sơ đồ hai ứng dụng được trình bày dưới đây:
Thông tin relay:
Hình 9 : Thông Tin relay
23
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
Phần này dùng để kết nối với ICD của MPLAB để connector J2 có thể lập trình lại
cũng như chiếu sáng và gỡ bỏ thiết bị, với loại kết nối này thì không cần card CIP
DEMO USB FS của Microchip và có giá thành cao.
Đây là cách sử dụng ứng dụng thứ hai.
Hinh 10: Thông Tin relay
Cần phải nói rằng connector DCI đã thay đổi, không còn là cáp 5 connector nữa
mà đã chuyển thành cáp 6 connector, đó là do việc phát triển project gặp khó khăn khi
dùng ICD, nó hầu như không thể bị ảnh hưởng hay debug nhiều lần, đây là lý do chính
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.
24
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
3.5 FIRMWARE
Thực hiện truyền thông USB
2 ví dụ được phát triển để thực hiện truyền thông qua USB:
• Cung cấp host thông tin (máy tính) cho thiết bị (vi điều khiển) và thông tin relay từ
thiết bị (vi điều khiển) cho host (máy tính).
• Quản lý các đầu vào và đầu ra số cũng như các đầu vào tương tự (bộ chuyển đổi tương
tự - số)
Thông tin truyền thông và quảng bá Web:
3.6 Các công cụ làm việc
Firmware là chương trình chạy trong CIP và điều khiển truyền thông. Nó được viết
hoàn toàn bằng C dùng MPLAB C18 của Microchip, một bộ biên dịch C của cùng nhà
sản xuất hỗ trợ chuẩn PKI ANSI C’89 và được thiết kế cùng MPLAB IDE (là công cụ
để lập trình và debug CIP). Một đặc tính khác của MPLAB C18 là khả năng sinh ra giá
trị nhị phân do vi điều khiển quản lý.
Họ PIC18F (ví dụ, PIC18F4550) dùng chỉ thị mở rộng như một kiến trúc.
Chú ý MPLAB C18 có thể download miễn phí trên trang của Microchip (xem liên
kết tham khảo). Tuy nhiên, phiên bản miễn phí (gọi là phiên bản dùng cho sinh viên) có
thời hạn sử dụng là 60 ngày. Trong 60 ngày đó, chương trình sẽ tiếp tục hoạt động
nhưng không quản lý, vì vậy bộ biên dịch sẽ sinh ra các giá trị nhị phân để tiếp tục hoạt
động nhưng sẽ tốn không gian hơn (do không được quản lý) và không dùng các chỉ thị
của PIC18F4550 phổ dụng nên cần nhiều tính năng phần mềm hơn và vì vậy kém hiệu
quả.
3.7 Thiết bị lớp
Theo chuẩn thì có nhiều loại thiết bị USB với các đặc tính khác nhau thường thấy
trong thiết bị. Ví dụ, có lớp cho camera số, một lớp cho máy scan, một cho máy in …
Các lớp thiết bị được xây dựng để nâng cao tính tương thích của các thiết bị. Vì vậy, bất
cứ hệ điều hành nào có driver làm việc với camera số đều có thể đọc được ảnh từ
camera số được thiết kế phù hợp với các thông số kỹ thuật của loại thiết bị đó.
Đặc biệt với ứng dụng của chúng ta, ta chọn sử dụng loại thiết bị HID (Thiết bị
giao diện người dùng), về cơ bản là một kết nối tương tự với chuột hay bàn phím. Lý do
25