LỜI MỞ ĐẦU
Ngày nay, các thiết bị điện tử và tự động hóa có mặt ở khắp nơi, chúng có mặt
trong tất cả các lĩnh vực, từ những ứng dụng trong công nghiệp cho đến những sản
phẩm dân dụng, và những ứng dụng chuyên dụng trong quân sự, công nghệ thông tin,
điện tử viễn thông. Mà lõi của các thiết bị đó đại đa số là các họ vi xử lí, vi điều khiển.
Một trong những vi điều khiển được ứng dụng rộng rãi và có nhiều tài nguyên là họ vi
điều khiển PIC.
Trước đây, việc giám sát từ xa thông qua một hệ thống gồm các phần tử nối với
nhau bằng dây dẫn với các chuẩn truyền thông phổ biến như RS-232, RS-485. Tuy
nhiên, việc mở rộng phạm vi điều khiển (sự gia tăng về số lượng các phần tử) thì mô
hình này gặp nhiều khó khăn, và đặc biệt là khoảng cách điều khiển rất hạn chế. Sự ra
đời của công nghệ truyền thông với giao thức TCP/IP đã làm thay đổi hoàn toàn phạm
vi ứng dụng của thiết bị giám sát và điều khiển từ xa. Mô hình mạng phổ biến đó là
mạng nội bộ LAN (Local Area Network) và mạng diện rộng WAN (Wide Area
Network), gọi chung là mạng Ethernet đã cho phép mở rộng phạm vi giám sát và quy
mô của hệ thống. Thêm vào đó, khi muốn truyền xa hơn, có thể truy câp vào hệ thống
từ bất kỳ đâu chỉ cần có thêm đường truyền Internet.
Vi điều khiển PIC có rất nhiều tài nguyên, có đầy đủ tính năng của một vi điều
khiển khác như các cổng I/O, biến đổi ADC, các bộ timer…Và PIC18F97J60 là một
trong những chip vi điều khiển có đấy đủ tính năng như vậy, đăc biệt hơn khi vi điều
khiển này hỗ trợ chuẩn Ethernet giúp các thiết bị có thể dễ dàng kết nối Internet.
Xuất phát từ thực tiễn đó qua đề tài: “ Nghiên cứu, ứng dụng vi điều khiển
PIC 18F97J60 ” nhóm chúng em đã quyết định chọn một ứng dụng quan trọng nổi
trội hơn so với các họ vi điều khiển khác đó chính là điều khiển thiết bị từ xa qua giao
thức TCP/IP dùng PIC18F97J60 .
Trong quá trình thực hiện đề tài không tránh khỏi nhiều thiếu sót, chúng em
mong nhận được nhiều ý kiến đóng góp từ quý thầy cô và các bạn để đề tài hoàn thiện
hơn.
Chúng em xin chân thành cảm ơn!
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Tên đề tài : ………………………… ………………………………………………
………………………… ………………………………………………
………………………… ………………………………………………
Mục đích : ………………………… ………………………………………………
………………………… ………………………………………………
………………………… ………………………………………………
………………………… ………………………………………………
Yêu cầu : ………………………… ………………………………………………
………………………… ………………………………………………
………………………… ………………………………………………
………………………… ………………………………………………
………………………… ………………………………………………
Nơi thực hiện : ………………………… ……………………………………………
Kết quả thực hiện : ( Bản vẽ, thuyết trình, chương trình… )
………………………… ……………………………………………………………….
Ngày giao đề tài : ……… ………………………………………………………………
Ngày hoàn thành : ……… ……………………………………………………………
Giáo viên hướng dẫn ( Ghi rõ chức danh, học hàm, học vị, họ và tên )
………………………… ……………………………………………………………….
Hà Nội, ngày………tháng…….…năm………
Giáo viên hướng dẫn Khoa công nghệ tự động
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
NHẬN XÉT
(Của giảng viên hướng dẫn)
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
Mục lục
Trang
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
Danh mục hình vẽ
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
8
CHƯƠNG 1
TÌM HIỂU VĐK PIC 18F97J60
1.1.Tổng quan về VĐK PIC.
1.1.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
thành nên dòng vi điều khiển PIC ngày nay.
1.1.3. 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.
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
9
- 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ọ:
1.1.3.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.
1.1.3.2. Họ cấp trung (Mid-range)
Bao gồm 12C6xx, 14C000, 16C55x, 16C6x, 16C62x, 16F62x, 16C67x, 16C8x,
16F87x và 16C9xx.
Độ dài từ lệnh 14 bit
- Nạp trình kiểu song song.
1.1.3.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:
1.1.4. Kiến trúc PIC
Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc:
kiến trúc Von Neuman và kiến trúc Havard.
Hình 1.1. Kiến trúc Havard và kiến trúc Von-Neuman.
Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard. Điểm khác
biệt giữa kiến trúc Havard và kiến trúc Von-Neuman là cấu trúc bộ nhớ dữ liệu và bộ
nhớ chương trình.
Đối với kiến trúc Von-Neuman, bộ nhớ dữ liệu và bộ nhớ chương trình nằm
chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối một cách linh hoạt bộ nhớ
chương trình và bộ nhớ dữ liệu. Tuy nhiên điều này chỉ có ý nghĩa khi tốc độ xử lí của
CPU phải rất cao, vì với cấu trúc đó, trong cùng một thời điểm CPU chỉ có thể tương
tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình. Như vậy có thể nói kiến trúc Von-
Neuman không thích hợp với cấu trúc của một vi điều khiển.
điều khiển với tính năng thời gian thực.
- PIC18F97J60 còn là một dòng IC chuyên dụng trong giao tiếp mạng Internet
với module giao thức mạng được tích hợp sẵn trong chip.Với bộ nhớ chương
trình Flash khá lớn 128KB và bộ nhớ RAM 3.8KB sẽ cho phép ta thực hiện
được các bài toán phức tạp.
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
12
- Trên chip có 16 kênh ADC 10 bít nên việc thực hiện các bài toán đo lường trở
nên đơn giản.
- Chíp có thể hoạt động bằng nguồn dao động nội ở tần số tối đa 41.6667Mhz,
với tính năng này giúp cho nó có thể hoạt động tốt trong môi trường có độ ẩm
cao.
- PIC18F97J60 được thiết kế dưới dạng chíp dán 100 chân, trong đó có thể sử
dụng tối đa được 70 chân I/O.
1.2.1.1. Tính năng chính
Công nghệ nanoWatt
Tất cả các thiết bị trong họ PIC18F97J60 kết hợp một loạt các tính năng mà có thể làm
giảm đáng kể năng lượng tiêu thụ trong quá trình hoạt động. Các tính năng chính bao gồm:
- Chế độ chạy luân phiên: với xung clocking điều khiển từ nguồn Timer1 hoặc bộ dao
động RC bên trong, điện năng tiêu thụ trong thời gian thực hiện mã có thể được giảm
đến 90%.
- Chế độ nghỉ chạy: bộ điều khiển cũng có thể chạy với lõi CPU không làm việc nhưng
các thiết bị ngoại vi vẫn còn hoạt động. Ở trạng thái này, tiêu thụ điện năng có thể
được giảm hơn nữa, ít nhất là 4% mức điện năng yêu cầu khi hoạt động bình thường.
- Chuyển đổi chế độ nhanh: chế độ quản lí năng lượng được gọi bởi mã lệnh của người
sử dụng trong suốt quá trình vận hành, cho phép người sử dụng kết hợp ý tưởng quản
lí năng lượng vào trong các thiết kế phần mềm ứng dụng.
Lựa chọn bộ dao động Oscillator và các tính năng chính
vi, bao gồm sử dụng độc lập hoặc kết hợp 2 mô đun: USARTs và SSP, có phương thức hoạt
động của cả SPI và I2C ™ (Master và Slave). Ngoài ra, với những mục đích chung, một trong
những cổng I/O có thể được cấu hình lại như là một Slave song song 8-bit để cho bộ vi xử lý
trực tiếp xử lý thông tin liên lạc.
Khối CCP: Tất cả các thiết bị trong họ này kết hợp 2 khối CCP và 3 khối ECCP để tối
đa hóa sự linh hoạt trong ứng dụng điều khiển. Lên đến bốn căn cứ thời gian khác nhau có thể
được sử dụng để thực hiện một số hoạt động khác nhau cùng một lúc. Mỗi một trong ba khối
ECCP cung cấp lên đến bốn đầu ra PWM, cho phép tổng cộng mười hai PWM. Các khối
ECCP cũng cung cấp các tính năng mang lại nhiều lợi ích, bao gồm cả lựa chọn phân cực, lập
trình thời gian trùng dẫn, tự động tắt máy và khởi động lại, chế độ đầu ra Half- Bridge hoặc
Full-Bridge.
Bộ chuyển đổi A/D 10-Bit: mô-đun này kết hợp với lập trình làm giảm thời gian, cho
phép kênh được lựa chọn và chuyển đổi được bắt đầu mà không cần phải chờ đợi một thời
gian lấy mẫu và do đó, giảm chi phí mã.
Tính năng đặc biệt của CPU
Họ PIC18F97J60 bao gồm một số tính năng nhằm mục đích để tối đa hóa độ tin cậy
và giảm thiểu chi phí thông qua việc loại bỏ các thành phần bên ngoài. Đó là:
• Lựa chọn bộ dao động
• Đặt lại:
- Power-on Reset (POR)
- Power-up Timer (PWRT)
- Oscillator Start-up Timer (OST)
- Brown-out Reset (BOR)
• Ngắt
• Kiểm tra hoạt động xung clock an toàn/ lỗi
• Khởi động 2 tốc độ
• Mã bảo vệ
• Chương trình nối tiếp trong mạch
•Điều chỉnh điện áp trên chip
Họ PIC18F97J60 thường được thiết kế để hoạt động với điện áp danh nghĩa 2.5V.
Cổng truyền thông PSP Có
Bus bộ nhớ mở rộng Có
Modules A/D 10 bit 16 kênh vào
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
15
1.2.2. Sơ đồ chân PIC 18F97J60
Hình 1.3. Sơ đồ chân PIC18F97J60
Mô tả các chân của PIC18F97J60
MCLR-13- Master Clear: Reset thiết bị ở mức thấp
OSC1/CLKI-63- Đầu vào dao động thạch anh hoặc clock mở rộng.
• OSC1- đầu vào dao động thạch anh hoặc đầu vào nguồn clock mở rộng. Bộ
đệm ST khi đặt chế độ RC nội bộ, CMOS khác.
• CLKI- đầu vào nguồn clock mở rộng, luôn gắn liền với chân OSC1
OSC2/CLKO- 64- đầu ra bộ dao động thạch anh hoặc clock
• OSC2- đầu ra bộ dao động thạch anh. Kết nối với thạch anh hoặc bộ cộng
hưởng trong chế độ dao động thạch anh
• CLKO- trong chế độ RC nội bộ, chân OSC2 các đầu ra CLKO với tần số bằng
¼ tần số của OSC1
35- PORTA là 1 cổng I/O 2 chiều
• I/O- vào/ra số
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
16
• O- đầu ra chỉ thị Ethernet LEDA
• I- đầu vào tương tự 0
34- I/O- vào/ra số
• O- đầu ra chỉ thị Ethernet LEDB
44- PORTC là một cổng I / O hai chiều
• I/O- vào/ra số
• O- đầu ra bộ dao động Timer1
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
17
• I- đầu vào clock mở rộng Timer1/Timer3
43- I/O- vào/ra số
• I- Đầu vào bộ dao động Timer1
• I/O- đầu vào Capture 2/đầu ra so sánh 2/ đầu ra PWM 2
• O- đầu ra A của khối ECCP2 PWM.
53- I/O- vào/ra số
• I/O- đầu vào Capture 2/đầu ra so sánh 2/ đầu ra PWM 1
• O- đầu ra A của khối ECCP1 PWM.
54- I/O- vào/ra số
• I/O- vào ra clock đồng bộ nối tiếp cho chế độ SPI
• I/O- vào ra clock đồng bộ nối tiếp cho chế độ I2C™
55- I/O- vào/ra số
• I- dữ liệu vào SPI
• I/O – vào ra dữ liệu I2C
56- I/O- vào/ra số
O - dữ liệu vào SPI
45- I/O- vào/ra số
• O- truyền tải không đồng bộ EUSART1
• I/O – xung clock đồng bộ EUSART1
46- I/O- vào/ra số
• I- nhận không đồng bộ EUSART1
• I/O- dữ liệu đồng bộ EUSART1
92-I/O- vào/ra số
• I/O- bộ nhớ địa chỉ/ dữ liệu mở rộng 7
• I/O- cổng dữ liệu tớ song song
• I- lựa chọn đầu vào SPI
4- PORTE là 1 cổng vào ra 2 chiều
• I/O- vào/ra số
• I/O- bộ nhớ địa chỉ/ dữ liệu mở rộng 8
• I- điều khiển đọc cho cổng tớ song song
O- đầu ra D cho khối ECCP2 PWM
3-I/O- vào/ra số
• I/O- bộ nhớ địa chỉ/ dữ liệu mở rộng 9
• I- điều khiển ghi cho cổng tớ song song
• O- đầu ra C cho khối ECCP2 PWM
98-I/O- vào/ra số
• I/O- bộ nhớ địa chỉ/ dữ liệu mở rộng 10
• I- chip lựa chọn điều khiển cho cổng tớ song song
O- đầu ra B cho khối ECCP2 PWM
97-I/O- vào/ra số
• I/O- bộ nhớ địa chỉ/ dữ liệu mở rộng 11
O - đầu ra C cho khối ECCP3 PWM
96-I/O- vào/ra số
• I/O- bộ nhớ địa chỉ/ dữ liệu mở rộng 12
• O - đầu ra B cho khối ECCP3 PWM
95-I/O- vào/ra số
• I/O- bộ nhớ địa chỉ/ dữ liệu mở rộng 13
O- đầu ra C cho khối ECCP1 PWM
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
19
94-I/O- vào/ra số
70-I/O- vào/ra số
• O- truyền tải không đồng bộ EUSART2
• I/O- xung clock đồng bộ EUSART2
52- I/O- vào/ra số
• I- nhận dữ liệu không đồng bộ EUSART2
• I/O- dữ liệu đồng bộ EUSART2
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
20
51-I/O- vào/ra số
• I/O- đầu vào Capture 4/đầu vào so sánh 4/ đầu ra PWM 4
• O- đầu ra D của khối ECCP3 PWM
14-I/O- vào/ra số
• I/O- đầu vào Capture 5/đầu vào so sánh 5/ đầu ra PWM 5
• O- đầu ra D của khối ECCP1 PWM
11-I/O- vào/ra số
10-I/O- vào/ra số
38-I/O- vào/ra số
99- PORTH là 1 cổng vào ra 2 chiều
• I/O- vào/ra số
• O- bộ nhớ địa chỉ mở rộng 16
100-I/O- vào/ra số
• O- bộ nhớ địa chỉ mở rộng 17
1-I/O- vào/ra số
• O- bộ nhớ địa chỉ mở rộng 18
2-I/O- vào/ra số
• O- bộ nhớ địa chỉ mở rộng 19
27-I/O- vào/ra số
• I- đầu vào tương tự 12
• O- điều khiển byte cao bộ nhớ ngoài
9- không kết nối
15, 36, 40, 60, 65, 85- nối đất cho các chân vào ra và logic
17, 37, 59, 62, 86- cung cấp tín hiệu tích cực cho các chân vào ra và logiccủa thiết bị
ngoại vi kỹ thuật số
31- nối đất cho các modun tương tự
30- cung cấp tín hiệu tích cực cho các modun tương tự
29- kích hoạt bộ điều chỉnh điện áp trên chip
16- kết nối với lõi hoặc bộ lọc tụ điện bên ngoài.
Cung cấp tín hiệu logic tích cực cho lõi vi điều khiển
Kết nối bộ lọc tụ điện bên ngoài
82- nối đất khối Ethernet PHY PLL.
81- cung cấp điện áp 3.3V cho khối Ethernet PHY PLL
79- nối đất cho hệ con truyền tải của khối Ethernet PHY PLL
76- cung cấp điện áp 3.3V cho hệ con truyền tải của khối Ethernet PHY PLL
72- nối đất cho hệ con nhận dữ liệu của khối Ethernet PHY PLL
75- cung cấp điện áp 3.3V cho hệ con nhận dữ liệu của khối Ethernet PHY PLL
80- Xu hướng hiện tại cho Ethernet PHY. Phải được gắn với VSS thông qua một điện
trở.
78, 77- đầu ra các tín hiệu khác nhau của chuẩn truyền thông Ethernet
74, 73- đầu vào các tín hiệu khác nhau của chuẩn truyền thông Ethernet
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
22
1.2.3. Sơ đồ khối PIC18F97J60 (100-PIN)
Hình 1.4. Sơ đồ khối PIC18F97J60
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
Hình 1.6. Mô tả bộ nhớ chương trình
b. Tổ chức bộ nhớ dữ liệu
Bộ nhớ dữ liệu trong thiết bị PIC18 được thực hiện như RAM tĩnh. Mỗi thanh
ghi trong bộ nhớ dữ liệu có 12-bit địa chỉ, cho phép lên đến 4096 byte của địa chỉ bộ
nhớ. Không gian bộ nhớ được chia thành 16 bank, mỗi bank có chứa 256 byte. Tất cả
các thiếthọ PIC18F97J60 đều có sẵn các bank và cung cấp 3808 byte bộ nhớ dữ liệu có
sẵn cho người dùng.
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân
25
Hình 1.7 mô tả tổ chức bộ nhớ dữ liệu của thiết bị.
Bộ nhớ dữ liệu chứa các thanh ghi chức năng đặc biệt (SFRs) và thanh ghi mục
đích chung (GPRS). Các SFR có thể được sử dụng để kiểm soát tình trạng của bộ điều
khiển và các thiết bị ngoại vi, trong khi GPRS được sử dụng cho lưu trữ dữ liệu và
hoạt động trung gian trong các ứng dụng của người dùng.
Các tập lệnh và kiến trúc cho phép hoạt động trên tất cả các bank. Toàn bộ bộ
nhớ dữ liệu có thể được truy cập trực tiếp, gián tiếp hoặc chế độ giải quyết các vấn đề
đã chỉ định.
GVHD: ThS. Bùi Thị Duyên SVTH: Vũ Văn Cảnh
KS. Nguyễn Khánh Hưng Nguyễn Văn Phong
Lê Anh Quân