Message Protocol).
Việc dẫn đường qua các mạng sử dụng giao thức diều khiển truyền tin (Internet Control Message Protocol - ICMP) được định nghĩa trong RFC 792. ICMP sử dụng gói tin IP để chuyển thông báo của nó. ICMP gửi các thông báo làm các công việc: Điều khiển, thông báo lỗi và chức năng thông tin cho TCP/IP. Thông thường ICMP được gửi khi một gói tin không thể đi tới đích, một gateway không còn đủ chỗ nhớ để nhận thêm gói tin hay một gateway hướng dẫn máy tính sử dụng gateway khác để truyền thông tin theo một con đường tối ưu hơn.
Mặc dù mỗi thông báo ICMP có một kiểu định dạng riêng của nó, song các thông báo đều chứa 3 trường đầu tiên giống nhau:
TYPE: Định nghĩa thông báo đi sau.
CODE: Cung cấp thông tin thêm về thông báo. CHECKSUM: Chứa checksum của thông báo.
Bảng 2. 3: Cấu trúc gói ICMP
Type Field ICMP Message Type
0 Echo Reply
3 Destination Ủneachable
4 Source Quench
5 Redirect (Change a router)
8 Echo Request
11 Time Exceeded for a Datagram 12 Parameter Problem on a Datagram 13 Timestamp Request
14 Timestamp Reply
15 Information Request 16 Information Reply 17 Address Mask Request 18 Address Mask Reply
Chương 3: Phần cứng 3.1. Vi điều khiển PIC
3.1.1. Giới thiệu về vi điều khiển PIC
PIC là một họ vi điều khiển theo kiến trúc Havard được sản xuất bởi công ty Microchip Techonology
3.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ớ 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 cà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 keess 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 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ác hang đặ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 kỉ 80 Genneral Instument gặp khó khan 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 hang. General Instrument đã chuyển nhượng Ban vi điện tử và nhà máy tại Chandle, bang Anizona cho cá nhà đầu tư. Họ lập ra một công ty mới, đặt tên là Arizpna Microchip technology hiện nay là Microchip technology Inc.
Chiến lược của nhà đầu tư là tập chung vào vi điều khiển và bộ nhớ của 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 thượ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.
Măn 1983 Microchip là hãng đầu tiên đã tích hợp được bộ nhớ chương trình fash EEPROM vào những vi điều khiển mới, trong đó được biết đến nhiều nhất là PIC16C84 và PIC16F84. Bộ nhớ chương trình fash đã loại bỏ vai trò của vi điều khiển có bộ nhớ xóa 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.
3.1.1.2. Phân loại
Hiện nay có khá nhiều các dòng PIC và có nhiều khác biệt về phần cứng, nhưng các chức năng chính có thể điểm qua một vài nét như sau:
8/16 bit CPU, xây dựng theo kiến trúc Harvard có sửa đổi khác với kiến trúc Von Neumann của AVR.
Flash và ROM có thể tùy chọn từ 256 byte đến 256Kbyte
Các cổng Xuất/Nhập (T/O ports) (mức logic thường từ 0V đến 5.5V, ứng với logic 0 và logic 1).
8/16 Bit Tỉmer
Công nghệ Nanowatt (dòng PIC 18Fxxxx)
Các chuẩn giao tiếp ngoại vi nối tiếp đồng bộ/Không đồng bộ USART, AUSART, EUSARTs.
Bộ chuyển đổi ADC Analog –to-digital converters , 10/12bit Bộ so sánh điện áp (Voltage Comparators)
Các module Capture/Compare/PWM. LCD
MSSP peripheral dung cho giao tiếp I2C, SPI, I2S. Bộ nhớ nội EEPROM –có thể ghi/xóa lên tới 1 triệu lần Module điều khiển động cơ, đọc encoder
Hỗ trợ điều khiển Ethernet Hỗ trợ giao tiếp CAN Hỗ trợ giao tiếp LIN Hỗ trợ giao tiếp IrDA
Một số dòng có tích hợp bộ RF (PIC 16F639 và rfPIC) KEELOQ mã hóa và giải mã
DSP những tính năng xử lý tín hiệu số (dsPIC)
Tiêu chuẩn để phân nhóm dựa vào sự khác nhau về kiến trúc bộ xử lý bên trong của vi điều khiển:
- Số các thanh ghi có thể truy nhập được. - Có hay không có ngắt, số lượng ngắt . - Độ dài từ lệnh.
- Chia làm 4 họ:
Họ cấp thấp (low - end): 12C5xx,16C5x,16C505, 16HV540.
Họ cấp chung (mid - range): 12C6xx, 14C000, 16C6x, 16C62x, 16F62x,16C67x, 16CC8x, 16F87x, 169xx.
Họ cấp cao (high - end): 17Cxxx.
Họ cấp cao (high – performance): 18Cxxx,18Fxx2.
3.1.2. Một số ưu điểm của Microchip PIC
Bộ nạp trình cho PIC có thể tự lắp ráp một cách dễ dàng với chi phí thấp dp ƠIC chủ yếu nạp trình theo chuẩn ICSP (In –Circuit Siral Programming) là phương pháp 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ứu và sử dụng PIC đã tiết kiệm được đáng kể cho 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
Microchip cũng 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 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ỉ dung sau máy tính cá nhân PC và về doanh số bán ra thị trường hiện nay. Microchip đã đứng đầu về doanh số bán PIIC 8bit, vượt lên các vi điều khiển của Motorola.
3.1.3. Vi điều khiển PIC18F45503.1.3.1. PIC18F4550 3.1.3.1. PIC18F4550
Hình 3. 1: Hình thực tế của PIC18F4550
PIC18F4550 là vi điều khiển thuộc nhóm cao cấp trong dòng vi điều khiển PIC18 – hiệu suất tính toán lớn, giá cả phù hợp - độ bền cao, dung lượng bộ nhớ chương trình được nâng cấp. Ngoài ra chúng còn được thiết kế để phù hợp cho những ứng dụng có hiệu suất cao, ít tiêu tốn năng lượng.
Những tính năng PIC18F4550
Tần số hoạt động: DC - 48 MHz Bộ nhớ chương trình (Bytes): 32768 Bộ nhớ chương trình (Chỉ định): 16384 Bộ nhớ dữ liệu (Bytes): 2048
Nguồn ngắt: 20
Cổng I/O: Ports A,B,C,D,E Timers: 4
Module Capture/Compare/PWM: 1
Module Capture/Compare/PWM cải tiến: 1 Giao tiếp nối tiếp: MSSP, USART cải tiến. Module Universal Serial Bus (USB): 1 Streaming Parallel Port (SPP): có
Module 10-Bit Analog-to Digital: 13 Input Channels Bộ so sánh (Comparators): 2
Resets (and Delays): POR, BOR, RESET Instruction, Stack Full, Stack Underflow (PWRT, OST), MCLR (optional), WDT
Programmable Low-Voltage Detect: có Programmable Brown-out Reset: có
Instruction Set: 75 Instructions; 83 with Extendexd Instruction Set enabled
Packages: 40-Pin PDIP, 44-Pin QFN, 44-Pin TQFP
Điểm chú ý của PIC18f4550:
Với bộ nhớ có 32kb Flash lưu trữ chương trình, 2kb bộ nhớ SRAM bay hơi và 256byte 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 1byte với ngoại lệ dài 2byte (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 nhịp (độ dại xung) 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à dung 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 dung trigger ở mức phần cứng).
Cuối cùng, PIC cũng có bộ chuyển đổi tương tự 10 bit nhưng dao đông ký 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 độ
48Mhz giữa thời gian trễ do truyền tải các ngắt khác (vòng lặp…). Không thể đạt được tốc độ lớn hơn 200Khz.
3.1.3.2 Sơ đồ chân
Hình 3. 2: sơ đồ chân của PIC18F4550
3.1.3.3 Chức năng của các chân PIC18F4550
Bảng 3. 1: Bảng chức năng chân của PIC18F4550
stt chân Chức năng Thanh Ghi TRIS I/O Kiểu I/O Mô tả
1
MCLR / VPP/R
E3
MCLR 1 I ST Master clear.chân reset đầu vào thiết lập
VPP P Đầu vào kênh 0 của bộ biển đổi
A/D
RE3 1 I ST Đầu vào số
13 OSC1/ CLKI
OSC1 1 I ANA Đầu vào nối với bộ giao động
CLKI 1 I ANA
Đầu vào nguồn xung ngoài, Luôn gắn liền với
chức năng pin OSC1
14
OSC2/ CLKO /RA6
OSC2 0 O -- Đầu vào nối với bộ giao động CLKO 0 O -- Đầu vào nguồn xung ngoài, Luôn
gắn liền với chức năng pin OSC1 RA6 1/0 I/O TLL chân vào/ra bình thường
Bảng 3. 2: Bảng chức năng chân của PORTA
stt chân Chức năng Thanh Ghi TRIS I/O Kiểu I/O Mô tả 2 RA0/A N0 RA0 0 1 O I TTL
Chiều ra vào dữ liệu, không ảnh hưởng đầu vào tương tự
AN0 1 I ANA
Đầu vào kênh 0 của bộ biển đổi A/D 3 RA1/A N1 RA1 0 1 O I TTL
Chiều ra vào dữ liệu, không ảnh hưởng đầu vào tương tự
AN1 1 I ANA Đầu vào kênh 1 của bộ biển đổi A/D 4 RA2/A N2/ VREF- /CVRE F RA2 0 1 O I TTL
Chiều ra vào dữ liệu, không ảnh hưởng đầu vào tương tự AN2 1 I ANA Đầu vào kênh 2 của bộ biển đổi
A/D
VREF- 1 I ANA A/D và đầu vào điện áp tham chiếu mức thấp bộ so sánh
CVREF X O ANA Đầu ra điện áp tham chiếu bộ so sánh 5 RA3/A N3/ VREF + RA3 0 1 O I TTL
Chiều ra vào dữ liệu, không ảnh hưởng đầu vào tương tự AN3 1 I ANA Đầu vào kênh 3 của bộ biển đổi
A/D
VREF+ 1 I ANA A/D và đầu vào điện áp tham chiếu mức cao bộ so sánh 6 RA4/T 0CKI/ C1OU T/ RCV RA4 0 1 O I ST
Chiều ra vào dữ liệu, không ảnh hưởng đầu vào tương tự
T0CKI 1 I ST Cấp xung cho timer0
C1OUT 0 O -- Đầu ra 1 bộ so sánh/ưu tiên hơn vào/ra dữ liệu
RCV 1 I TTL Đầu vào USB thu phát RCV bên ngoài 7 RA5/A N4/SS/ HLVD IN/C2 OUT RA5 0 1 O I TTL
Chiều ra vào dữ liệu, không ảnh hưởng đầu vào tương tự AN4 1 I ANA Đầu vào kênh 4 của bộ biển đổi
A/D
chế độ SPI HLVDI
N 1 I ANA Đầu vào module phát điện áp cao C2OUT 0 O -- Đầu ra 2 bộ so sánh/ưu tiên hơn
vào/ra dữ liệu
Bảng 3. 3: Bảng chức năng chân của PORTB
stt chân Chức năng Thanh Ghi TRIS I/O Kiểu I/O Mô tả 33 RB0/A N12/I NT0/ FLT0/ SDI/S DA
RB0 1/0 I/O TTL Chiều ra /vào dữ liệu, không ảnh hưởng đầu vào tương tự AN12 1 I ANA Đầu vào kênh 12 của bộ biển đổi
A/D
INT0 1 I ST Ngắt ngoài 0
FLT0 1 I ST Đầu vào báo sự cố PWM(module ECCP1)
SDI 1 I ST Đầu vào dữ liệu chế độ SPI
SDA 1/0 I/O ST Đầu vào/ra dữ liệu chế độ I2C
34 RB1/A N10/I NT1/S CK/SC L
RB1 1/0 I/O TTL Chiều ra/ vào dữ liệu, không ảnh hưởng đầu vào tương tự AN10 1 I ANA Đầu vào kênh 10 của bộ biển đổi
A/D
INT1 1 I ST Ngắt ngoài 1
SCK 1/0 I ST Xung đồng bộ nối tiếp đầu vào/ra cho chế độ SPI
cho chế độ I2C 35 RB2/A N8 /INT2/ VMO
RB2 1/0 I/O TTL Chiều ra/ vào dữ liệu, không ảnh hưởng đầu vào tương tự AN8 1 I ANA Đầu vào kênh 8 của bộ biển đổi
A/D
INT2 1 I ST Ngắt ngoài 2
VMO 0 O -- Ngắt thu phát USB ,đầu ra VMO
36
RB3/A N9/CC P2/VP
O
RB3 1/0 I/O TTL Chiều ra /vào dữ liệu, không ảnh hưởng đầu vào tương tự AN9 1 I ANA Đầu vào kênh 9 của bộ biển đổi
A/D CCP2(1
) 1/0 I/O ST
Đầu vào bộ capture CCP2/ CCP2 của bộ so sánh đầu ra của PWM VPO 0 O -- Ngắt thu phát USB ,đầu ra VPO
37
RB4/A N11/K BI0/CS
SPP
RB4 1/0 I/O TTL Chiều ra/vào dữ liệu, không ảnh hưởng đầu vào tương tự AN11 1 I ANA Đầu vào kênh 11 của bộ biển đổi
A/D
KBI0 1 I TTL Chân ngắt của ngắt thay đổi mức PORTB
CSSPP 0 O -- Điều kiển chọn chip đầu ra SPP
38
RB5/K BI1/P
GM
RB5 1/0 I/O TTL Chiều ra /vào dữ liệu số KBI1 1 I TTL Chân ngắt của ngắt thay đổi mức
PORTB
PGM 1/0 I/O ST Tín hiệu nối mạch nạp nối tiếp(ICSP)
39 RB6/K BI2/P
RB6 1/0 I/O TTL Chiều ra/ vào dữ liệu số KBI2 1 I TTL Chân ngắt của ngắt thay đổi mức
GC PORTB
PGC 1/0 I/O ST Đầu vào xung từ(ICSP và ICD)
40
RB7/K BI3/P
GD
RB7 1/0 I/O TTL Chiều ra/ vào dữ liệu số KBI3 1 I TTL Chân ngắt của ngắt thay đổi mức
PORTB
Bảng 3. 4: Bảng chức năng chân của PORTC
stt chân Chức năng Thanh Ghi TRIS I/O Kiểu I/O Mô tả 15 RC0/ T1OS O/ T13CK I
RC0 1/0 I/O ST Chiều ra /vào dữ liệu số T1OSO 0 O — Đầu ra bộ phất xung timer 1 T13CK
I 1 I ST
Cấp xung cho timer1 /timer3 chế độ đếm sự kiện (counter). 16 RC1/ T1OSI/ CCP2/ UOE
RC1 1/0 I/O ST Chiều ra /vào dữ liệu số
T1OSI x I CM
OS
Đầu vào bộ dao động timer1.cấm đầu ra/vào số
CCP2(2
) 1/0 I/O ST
Đầu vào capture (CCP2)/CCP2 của bộ so sánh và đầu ra của PWM UOE 0 — — Ngắt thu phát USB ,đầu ra UOE
17
RC2/C CP1 /P1A
RC2 1/0 I/O ST Chiều ra /vào dữ liệu số
CCP1 1/0 I/O ST Đầu vào capture (CCP1)/ CCP1 của bộ so sánh và đầu ra của PWM P1A 0 O TTL Điện áp tăng cường đâu ra CCP1
PWM, kênh A.
D-/VM
D- 1/0 I/O — Dòng trừ khác biệt USB (đầu vào/ ra)
VM 1 I TTL Ngắt thu phát USB ,đầu vào VM
24
RC5/D + /VP
RC5 1 I TTL Chiều ra /vào dữ liệu số
D+ 1/0 I/O — Dòng cộng khác biệt USB (đầu vào/ ra)
VP 1 O TTL Ngắt thu phát USB ,đầu vào VP
25
RC6/T X/ CK
RC6 1/0 I/O ST Chiều ra /vào dữ liệu số TX 0 O — Chân truyền dữ liệu nối tiếp không
động bộ của module EUSART CK 1/0 I/O ST Chân phát xung (clock) đồng bộ
nối tiếp của module EUSART
26
RC7/R X/ DT/SD
O
RC7 1/0 I/O ST Chiều ra /vào dữ liệu số RX 0 O ST Chân nhận dữ liệu nối tiếp không
động bộ của module EUSART
DT 1/0 I/O ST
Chân truyền dữ liệu nối tiếp động