Điều khiển thiết bị qua giao thức TCPIP Giao thức TCPIP được dùng phổ biến trong truyền thông liên mạng, với khoảng cách truyền xa, tốc độ nhanh, khả năng điều khiển luồng, kiểm tra lỗi, và tương thích cao. Với kết nối theo chuẩn RS232, RS485 tốc độ thấp, kết nối điểmđiểm nên có tối đa hai thiết bị nối nhau. Đề tài “Điều khiển thiết bị qua giao thức TCPIP” tận dụng những ưu điểm giao thức TCPIP cho việc điều khiển các thiết bị qua mạng LAN và WAN.
Trang 1ĐẠI HỌC QG TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN TỬ VIỄN THÔNG
Trang 2Lời cam đoan
LỜI CAM ĐOAN
Trang 3Mục lục
MỤC LỤC
TỪ VIẾT TẮT 1
LỜI MỞ ĐẦU 2
CHƯƠNG 1 TỔNG QUAN VỀ ETHERNET 3
1.1 Cấu trúc khung tin Ethernet 3
1.2 Cấu trúc địa chỉ Ethernet 4
1.3 Các loại khung Ethernet 4
1.3.1 Các khung unicast 4
1.3.2 Các khung broadcast 5
1.3.3 Các khung multicast 5
1.4 Truy nhập bus 5
1.5 Các loại mạng Ethernet 6
1.5.1 Các hệ thống Ethernet 10Mb/s 6
1.5.2 Các hệ thống Ethernet 100 Mb/s – Ethernet cao tốc ( Fast Ethernet ) 7
1.5.3 Các hệ thống Giga Ethernet 7
1.6 Chuẩn IEEE 802 7
CHƯƠNG 2 HỌ GIAO THỨC TCP/IP 9
2.1 Họ giao thức TCP/IP 9
2.1.1 Tầng Ứng Dụng (Application Layer) 9
2.1.2 Tầng Giao Vận (Transport Layer) 10
2.1.3 Tầng Internet (Internet Layer) 10
2.1.4 Lớp giao tiếp mạng 10
2.2 Cấu trúc gói tin IP,TCP,UDP 11
2.2.1 Cấu trúc địa chỉ IP 11
2.2.2 Cấu trúc gói tin IP 12
2.2.3 Cấu trúc gói tin TCP 13
2.2.4 Cấu trúc gói tin UDP 14
CHƯƠNG 3: GIỚI THIỆU LINH KIỆN 15
3.1 TỔNG QUAN VỀ PIC 15
3.1.1 Tại sao dùng Pic? 15
3.1.2 Các dòng Pic và cách lựa chọn Vi điều khiển PIC 15
3.1.3 Ngôn ngữ lập trình cho Pic 16
3.1.4 Mạch nạp Pic: 16
3.2 CẤU TRÚC TỔNG QUÁT PIC 18F4620 16
Trang 4Mục lục
3.2.1.Một vài thông số về Pic 18F4620 16
3.2.2 Sơ đồ chân ,cấu trúc và chức năng PIC 18F4620 loại 40 chân PDIP 18
3.2.3 Sơ đồ khối của Pic18F4620 23
3.2.4.Tổ chức bộ nhớ: 23
3.2.4.1 Tổ chức của bộ nhớ chương trình 23
3.2.4.2 Tổ chức của bộ nhớ dữ liệu: 24
3.2.4.3 Bộ nhớ dữ liệu EEPROM và bộ nhớ chương trình FLASH: 25
3.2.5 Các cổng xuất nhập: 26
3.2.5.1 Port B và thanh ghi TRISB 27
3.2.5.2 Port C và thanh ghi TRISC 28
3.2.5.3 Port D và thanh ghi TRISD: 28
3.2.5.4 PortE và thanh ghi TRISE : 29
3.2.6 Hoạt động của các bô ngoại vi: 29
3.3.IC 7408 33
3.4.IC 7805 34
3.5 IC giao tiếp mạng ENC28J60 34
3.5.1 Cấu trúc và chức năng: 34
3.5.2 Chức năng các chân của ENC28J60: 35
3.5.3 Sơ đồ kết nối với các thiết bị ngoại vi: 35
3.6 Cổng Mạng RJ45: 35
CHƯƠNG 4: THIẾT KẾ PHẦN CỨNG VÀ MẠCH THỰC TẾ 37
4.1 SơĐồ Khối Hệ Thống: 37
4.2 Khối Cổng RJ45 Giao Tiếp Cáp Mạng: 37
4.3 Khối Hiển Thị LCD: 38
4.4 Khối Vi Xử Lý: 38
4.5 Khối Giao Tiếp Mạng: 39
4.6 Sơ Đồ Layout Của Mạch: 39
CHƯƠNG 5: PHẦN MỀM VÀ CODE CHƯƠNG TRÌNH 41
5.1 Lưu Đồ Giải Thuật: 41
5.2 Kết Quả Thực Tế: 41
5.3 Code Chương Trình: 45
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỂ TÀI 68
6.1 Kết Quả Đạt Được 68
6.2 Hướng Phát Triển 68
TÀI LIỆU THAM KHẢO 69
Trang 5Từ viết tắt
TỪ VIẾT TẮT
SPI Serial Perippheral Interface Giao tiếp ngoại vi nối tiếp
TCP/IP Transmission Control Protocol
/ Internet Protocol
Giao thức Điều Khiển Truyền Thông
/Giao thức Internet
MAC Media Access Control Address Đây là địa chỉ được ấn định khi
sản xuất thiết bị
PIC Peripheral Interface Controller Bộ điều khiển giao tiếp ngoại vi
WAN Wide Area Network Mạng diện rộng là mạng dữ liệu
được thiết kế để kết nối giữa các mạng độ thị (mạng MAN) giữa các khu vực địa lý cách xa nhau
DHCP Dynamic Host Configuration
Protocol
Giao thức cấu hình trạm động
SNMP Simple Network Management
Protocol
Giao thức quản lý mạng đơn giản
FTP File Transfer Protocol Giao thức truyền tập tin
TFTP Trivial File Transfer Protocol Giao truyền tập tin bình thường
SMTP Simple Mail Transfer Protocol Giao thức gửi thư đơn giản
TELNET TErminaL NETwork là 1 giao thức kết nối với internet
hoặc tại các mạng máy tính cục bộ
ARP Address Resolution Protocol Có chức năng biên dịch địa chỉ IP
của máy đích thành địa chỉ MAC
ICMP Internet Control Message
Trang 6Mục lục
Trang 7Lời mở đầu
LỜI MỞ ĐẦU
Giao thức TCP/IP được dùng phổ biến trong truyền thông liên mạng, với khoảng cách truyền xa, tốc độ nhanh, khả năng điều khiển luồng, kiểm tra lỗi, và tương thích cao Với kết nối theo chuẩn RS232, RS485 tốc độ thấp, kết nối điểm-điểm nên có tối đa
hai thiết bị nối nhau Đề tài “Điều khiển thiết bị qua giao thức TCP/IP” tận dụng
những ưu điểm giao thức TCP/IP cho việc điều khiển các thiết bị qua mạng LAN và WAN
Trang 8Chương 1: Tổng quan về ethernet
CHƯƠNG 1 TỔNG QUAN VỀ ETHERNET
Ethernet là kiểu mạng cục bộ (LAN) được sử dụng rộng rãi nhất hiện nay.Hiện thời công nghệ Ethernet thường được sử dụng nhất là công nghệ sử dụng cáp đôi xoắn 10Mbps
Ethernet đã được phát minh ra tại trung tâm nghiên cứu Xerox Palo Alto vào những năm 1970 bởi tiến sĩ Robert M Metcalfe Nó đã được thiết kế với mục đích
phục vụ nghiên cứu trong “hệ thống công sở trong tương lai”, bao gồm trạm cá nhân
đầu tiên trên thế giới, trạm Xerox Alto Trạm Ethernet đầu tiên chạy với tốc độ xấp xỉ 3Mbps Chuẩn Ethernet 10Mbps đầu tiên được xuất bản năm 1980 bởi sự phối hợp phát triển của 3 hãng : DEC, Intel và Xerox Chuẩn này có tên DIX Ethernet ( lấy tên theo 3 chữ cái đầu của tên các hãng)
Uỷ ban 802.3 của IEEE đã lấy DIX Ethernet làm nền tảng để phát triển Năm
1985, chuẩn 802.3 đầu tiên đã ra đời với tên IEEE 802.3 Carrier Sense Multiple
Access with Collition Detection (CSMA/CD) Mặc dù không sử dụng tên Ethernet
nhưng hầu hết mọi người đều hiểu đó là chuẩn của công nghệ Ethernet.Ngày nay chuẩn IEEE 802.3 là chuẩn chính thức của Ethernet.IEEE đã phát triển chuẩn Ethernet trên nhiều công nghệ truyền dẫn khác nhau vì thế có nhiều loại mạng Ethernet.Đặc biệt, với phiên bản 100 Mbit/s (Fast Ethernet, IEEE 802.3u), Ethernet ngày càng đóng một vai trò quan trọng trong các hệ thống công nghiệp Bên cạnh việc sử dụng cáp đồng trục, đôi dây xoắn và cáp quang, gần đây Ethernet không dây (Wireless LAN, IEEE 802.11) cũng đang thu hút được sự quan tâm lớn
1.1 Cấu trúc khung tin Ethernet
Các chuẩn Ethernet đều hoạt động ở tầng Data Link trong mô hình 7 lớp OSI vì thế đơn vị dữ liệu mà các trạm trao đổi với nhau là các khung (frame) Cấu trúc khung Ethernet như sau:
Mở đầu
555…5H
SFD (D5H)
Địa chỉ đích
Địa chỉ nguồn
Độ dài kiểu gói
7 byte 1 byte 2/6 byte 2/6 byte 2 byte 46-1500 byte 4 byte
Bảng 1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet
- Preamble (mở đầu): trường này đánh dấu sự xuất hiện của khung bit, nó luôn mang giá trị 10101010 Từ nhóm bit này, phía nhận có thể tạo ra xung đồng hồ 10 Mhz
- SFD (start frame delimiter): trường này mới thực sự xác định sự bắt đầu của 1 khung Nó luôn mang giá trị 10101011
- Các trường Destination và Source: mang địa chỉ vật lý của các trạm nhận và gửi khung, xác định khung được gửi từ đâu và sẽ được gửi tới đâu
- LEN: giá trị của trường nói lên độ lớn của phần dữ liệu mà khung mang theo
Trang 9Chương 1: Tổng quan về ethernet
- FCS mang CRC (cyclic redundancy checksum): phía gửi sẽ tính toán trường này trước khi truyền khung Phía nhận tính toán lại CRC này theo cách tương tự Nếu hai kết quả trùng nhau, khung được xem là nhận đúng, ngược lại khung coi như là lỗi
và bị loại bỏ
1.2 Cấu trúc địa chỉ Ethernet
Mỗi giao tiếp mạng Ethernet được định danh duy nhất bởi 48 bit địa chỉ (6 octet) Đây là địa chỉ được ấn định khi sản xuất thiết bị, gọi là địa chỉ MAC (Media Access Control Address ) Địa chỉ MAC được biểu diễn bởi các chữ số hexa ( hệ cơ
số 16 ) Ví dụ:00:60:97:8F:4F:86 hoặc 00-60-97-8F-4F-86.Khuôn dạng địa chỉ MAC được chia làm 2 phần:
- 3 octet đầu xác định hãng sản xuất, chịu sự quản lý của tổ chức IEEE
- 3 octet sau do nhà sản xuất ấn định
Kết hợp ta lẽ có một địa chỉ MAC duy nhất cho một giao tiếp mạng Ethernet.Địa chỉ MAC được sử dụng làm địa chỉ nguồn và địa chỉ đích trong khung Ethernet
1.3 Các loại khung Ethernet
1.3.1 Các khung unicast
Giả sử trạm 1 cần truyền khung tới trạm 2
Khung Ethernet do trạm 1 tạo ra có địa chỉ:
- MAC nguồn: 00-60-08-93-DB-C1
- MAC đích: 00-60-08-93-AB-12
Hình 1.1: Mô hình truyền thông unicast
Đây là khung unicast.Khung này được truyền tới một trạm xác định Tất cả các trạm trong phân đoạn mạng trên sẽ đều nhận được khung này nhưng:
- Chỉ có trạm 2 thấy địa chỉ MAC đích của khung trùng với địa chỉ MAC của giao tiếp mạng của mình nên tiếp tục xử lý các thông tin khác trong khung
Trang 10Chương 1: Tổng quan về ethernet
- Các trạm khác sau khi so sánh địa chỉ sẽ bỏ qua không tiếp tục xử lý khung nữa
1.3.2 Các khung broadcast
Các khung broadcast có địa chỉ MAC đích là FF-FF-FF-FF-FF-FF Khi nhận được các khung này, mặc dù không trùng với địa chỉ MAC của giao tiếp mạng của mình nhưng các trạm đều phải nhận khung và tiếp tục xử lý
Giao thức ARP sử dụng các khung broadcast này để tìm địa chỉ MAC tương ứng với một địa chỉ IP cho trước Một số giao thức định tuyến cũng sử dụng các khung broadcast để các router trao đổi bảng định tuyến
1.3.3 Các khung multicast
Trạm nguồn gửi khung tới một số trạm nhất định chứ không phải là tất cả.Địa chỉ MAC đích của khung là địa chỉ đặc biệt mà chỉ các trạm trong cùng nhóm mới chấp nhận các khung gửi tới địa chỉ này
1.4 Truy nhập bus
Một vấn đề lớn thường gây lo ngại trong việc sử dụng Ethernet ở cấp trường là phương pháp truy nhập bus ngẫu nhiên CSMA/CD ( Carrier Sense Multiple Access with Collision Avoidance ) và sự ảnh hưởng tới hiệu suất cũng như tính năng thời gian thực của hệ thống Ở đây, một trong những yếu tố quyết định tới hiệu suất của hệ thống là thuật toán tính thời gian truy nhập lại cho các trạm trong trường hợp xảy ra xung đột
Hình 1.2: Minh họa phương pháp CSMA/CD
Trang 11Chương 1: Tổng quan về ethernet
Nguyên tắc làm việc phương pháp CSMA/CD:
Theo phương pháp CSMA/CD, mỗi trạm đều có quyền truy nhập bus mà không cần một sự kiểm soát nào Phương pháp được tiến hành như sau:
- Mỗi trạm đều phải tự nghe đường dẫn (carrier sense), nếu đường dẫn rỗi (không
có tín hiệu ) thì mới được phát
- Do việc lan truyền tín hiệu cần một thời gian nào đó, nên vẫn có khả năng hai trạm cùng phát tín hiệu lên đường dẫn Chính vì vậy, trong khi phát thì mỗi trạm vẫn phải nghe đường dẫn để so sánh tín hiệu phát đi với tín hiệu nhận được xem có xảy ra xung đột hay không (collision detection)
- Trong trường hợp xảy ra xung đột, mỗi trạm đều phải hủy bỏ bức điện của mình, chờ một thời gian ngẫu nhiên và thử gửi lại
Một tình huống xảy ra xung đột tiêu biểu và cách khắc phục được minh họa trên hình Trạm A và C cùng nghe đường dẫn Đường dẫn rỗi nên A có thể gửi trước Trong khi tín hiệu từ trạm A gửi đi chưa kịp tới nên trạm C không hay biết và cũng gửi, gây ra xung đột tại một điểm gần C A và C sẽ lần lượt nhận được tín hiệu phản hồi, so sánh với tín hiệu gửi đi và phát hiện xung đột.Cả hai trạm sẽ cùng phải hủy bỏ bức điện đã gửi đi bằng cách không phát tiếp, các trạm muốn nhận sẽ không nhận được cờ hiệu kết thúc bức điện và sẽ coi như bức điện không hợp lệ A và C cũng có thể gửi đi một tín hiệu “ jam” đặc biệt để báo cho các trạm cần nhận biết Sau đó mỗi trạm sẽ chờ một thời gian chờ ngẫu nhiên, trước khi thử phát lại Thời gian chờ ngẫu nhiên ở đây tuy nhiên phải được tính theo một thuật toán nào đó để sao cho thời gian chờ ngắn một cách hợp lí và không giống nhau giữa các trạm cùng chờ Thông thường
thời gian chờ này là bội số của hai lần thời gian lan truyền tín hiệu Ts
Ưu điểm của CSMA/CD là tính chất đơn giản, linh hoạt Khác với các phương pháp tiền định, việc ghép thêm hay bỏ đi một trạm trong mạng không ảnh hưởng gì tới hoạt động của hệ thống Chính vì vậy, phương pháp này được áp dụng rộng rãi trong mạng Ethernet
Nhược điểm của CSMA/CD là tính chất bất định của thời gian phản ứng.Các trạm đều bình đẳng như nhau nên quá trình chờ ở một trạm có thể lặp đi lặp lại, không xác định được tương đối chính xác thời gian.Hiệu suất sử dụng đường truyền vì thế cũng thấp Rõ ràng, nếu như không kết hợp thêm với các kỹ thuật khác thì phương pháp này không thích hợp với các cấp thấp, đòi hỏi trao đổi dữ liệu định kỳ, thời gian thực
1.5 Các loại mạng Ethernet
IEEE đã phát triển chuẩn Ethernet trên nhiều công nghệ truyền dẫn khác nhau vì thế có nhiều loại mạng Ethernet Mỗi loại mạng được mô tả dựa theo ba yếu tố: tốc độ, phương thức tín hiệu sử dụng và đặc tính đường truyền vật lý
1.5.1 Các hệ thống Ethernet 10Mb/s
Trang 12Chương 1: Tổng quan về ethernet
10Base5 Đây là tiêu chuẩn Ethernet đầu tiên, dựa trên cáp đồng trục loại dày Tốc độ đạt được 10 Mb/s, sử dụng băng tần cơ sở, chiều dài cáp tối đa cho 1 phân đoạn mạng là 500m
10Base2 Có tên khác là “thin Ethernet” , dựa trên hệ thống cáp đồng trục mỏng với tốc độ 10 Mb/s, chiều dài cáp tối đa của phân đoạn là 185 m (IEEE làm tròn thành 200m)
10BaseT Chữ T là viết tắt của “twisted”: cáp xoắn cặp 10BaseT hoạt động tốc
độ 10 Mb/s dựa trên hệ thống cáp xoắn cặp Cat 3 trở lên
10BaseF F là viết tắt của Fiber Optic ( sợi quang) Đây là chuẩn Ethernet dùng cho sợi quang hoạt động ở tốc độ 10 Mb/s , ra đời năm 1993
1.5.2 Các hệ thống Ethernet 100 Mb/s – Ethernet cao tốc ( Fast Ethernet )
100BaseT Chuẩn Ethernet hoạt động với tốc độ 100 Mb/s trên cả cắp xoắn cặp lẫn cáp sợi quang
100BaseX Chữ X nói lên đặc tính mã hóa đường truyền của hệ thống này (sử dụng phương pháp mã hoá 4B/5B của chuẩn FDDI) Bao gồm 2 chuẩn 100BaseFX và 100BaseTX:
100BaseFX Tốc độ 100Mb/s, sử dụng cáp sợi quang đa mode
1000Base-SX: tốc độ 1000 Mb/s, sử dụng sợi quang với sóng ngắn
1000Base-LX: tốc độ 1000 Mb/s, sử dụng sợi quang với sóng dài
1000Base-CX: tốc độ 1000 Mb/s, sử dụng cáp đồng
- 1000BaseT Hoạt động ở tốc độ Giga bit, băng tần cơ sở trên cáp xoắn cặp Cat
5 trở lên Sử dụng kiểu mã hoá đường truyền riêng để đạt được tốc độ cao trên loại cáp này
1.6 Chuẩn IEEE 802
IEEE 802 là họ các chuẩn IEEE dành cho các mạng LAN và mạng MAN
(metropolitan area network).Cụ thể hơn, các chuẩn IEEE 802 được giới hạn cho các
mạng mang các gói tin có kích thước đa dạng (Khác với các mạng này, dữ liệu trong các mạng cell-based được truyền theo các đơn vị nhỏ có cùng kích thước được gọi là
Trang 13Chương 1: Tổng quan về ethernet
cell Các mạng Isochronous, nơi dữ liệu được truyền theo một dòng liên tục các octet, hoặc nhóm các octet, tại các khoảng thời gian đều đặn, cũng nằm ngoài phạm vi của chuẩn này)
Các dịch vụ và giao thức được đặc tả trong IEEE 802 ánh xạ tới hai tầng thấp (tầng liên kết dữ liệu và tầng vật lý của mô hình 7 tầng OSI Thực tế, IEEE 802 chia tầng liên kết dữ liệu OSI thành hai tầng con LLC (điều khiển liên kết lôgic) và MAC (điều khiển truy nhập môi trường truyền), do đó các tầng này có thể được liệt kê như sau:
- Tầng liên kết dữ liệu
- Tầng con LLC
- Tầng con MAC
- Tầng vật lý
Họ chuẩn IEEE 802 được bảo trì bởi Ban Tiêu chuẩn LAN/MAN IEEE 802
(IEEE 802 LAN/MAN Standards Committee (LMSC)).Các chuẩn được dùng rộng rãi
nhất là dành cho họ Ethernet, Token Ring, mạng LAN không dây, các mạng LAN
dùng bridge và bridge ảo (Bridging and Virtual Bridged LANs).Chuẩn dành cho họ
Ethernet là chuẩn IEEE 802.3
Trang 14Chương 2: Họ giao thức TCP/IP
CHƯƠNG 2 HỌ GIAO THỨC TCP/IP 2.1 Họ giao thức TCP/IP
TCP/IP là viết tắt của Transmission Control Protocol / Internet Protocol (Giao thức Điều Khiển Truyền Thông /Giao thức Internet).TCP/IP không chỉ gồm 2 giao thức mà thực tế nó là tập hợp của nhiều giao thức TCP/IP sử dụng mô hình truyền thông 4 tầng hay còn gọi là mô hình DoD (Mô hình của Bộ Quốc Phòng Mỹ) Các tầng trong mô hình này là:
- Tầng Ứng Dụng (Application Layer)
- Tầng Giao Vận (Transport Layer)
- Tầng Liên Mạng (Internet Layer)
- Tầng Giao Tiếp Mạng (Network Interface Layer)
Hình 2.1: Cấu trúc họ giao thức TCP/IP 2.1.1 Tầng Ứng Dụng (Application Layer)
Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng.Được sử dụng để định dạng và trao đổi thông tin người dùng 1 số giao thức thông dụng trong tầng này là:
- DHCP (Dynamic Host Configuration Protocol): Giao thức cấu hình trạm động
- DNS (Domain Name System): Hệ thống tên miền
- SNMP (Simple Network Management Protocol): Giao thức quản lý mạng đơn giản
- FTP (File Transfer Protocol): Giao thức truyền tập tin
- TFTP (Trivial File Transfer Protocol): Giao truyền tập tin bình thường
- SMTP (Simple Mail Transfer Protocol): Giao thức gửi thư đơn giản
Trang 15Chương 2: Họ giao thức TCP/IP
- TELNET: là chương trình mô phỏng thiết bị đầu cuối cho phép người dùng login vào một máy chủ từ một máy tính nào đó trên mạng
Tầng ứng dụng trao đổi dữ liệu với lớp dưới (lớp vận chuyển) qua cổng.Việc dùng cổng bằng số cho phép giao thức của lớp vận chuyển biết loại nội dung nào chứa bên trong gói dữ liệu.Những cổng được đánh bằng số và những ứng dụng chuẩn thường dùng cùng cổng Ví dụ: giao thức FTP dùng cổng 20 cho dữ liệu và cổng 21 cho điều khiển, giao thức SMTP dùng cổng 25…
2.1.2 Tầng Giao Vận (Transport Layer)
Có trách nhiệm thiết lập phiên truyền thông giữa các máy tính và quy định cách truyền
dữ liệu 2 giao thức chính trong tầng này gồm:
- UDP (User Datagram Protocol): Còn gọi là Giao Thức Gói Người Dùng UDP cung cấp các kênh truyền thông phi kết nối nên nó không đảm bảo truyền dữ liệu 1 cách tin cậy Các ứng dụng dùng UDP thường chỉ truyền những gói có kích thước nhỏ,
độ tin cậy dữ liệu phụ thuộc vào từng ứng dụng
- TCP (Transmission Control Protocol): Ngược lại với UDP, TCP cung cấp các kênh truyền thông hướng kết nối và đảm bảo truyền dữ liệu 1 cách tin cậy TCP thường truyền các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về các gói tin đã nhận
2.1.3 Tầng Internet (Internet Layer)
Nằm bên trên tầng truy nhập mạng Tầng này có chức năng gán địa chỉ, đóng gói
và định tuyến (Route) dữ liệu 4 giao thức quan trọng nhất trong tầng này gồm:
- IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu trước khi truyền
- IGMP (Internet Group Management Protocol): Có chức năng điều khiển truyền
đa hướng (Multicast)
2.1.4 Lớp giao tiếp mạng
Tầng giao tiếp mạng liên quan tới việc trao đổi dữ liệu giữa hai trạm thiết bị trong cùng một mạng.Các chức năng bao gồm việc kiểm soát truy nhập môi trường truyền dẫn, kiểm soát lỗi và lưu thông dữ liệu.Datagram được tạo từ lớp Internet sẽ được gửi xuống tới lớp truy nhập mạng nếu truyền dữ liệu, hoặc tầng giao tiếp mạng
sẽ lấy dữ liệu từ mạng và gửi nó tới lớp Internet nếu chúng ta nhận dữ liệu Như đã đề cập ở phần trên, Ethernet là giao thức cấp dưới có ba lớp LLC ( Logic Link Control ), MAC ( Media Access Control ) và lớp vật lí Physical
Trang 16Chương 2: Họ giao thức TCP/IP
2.2 Cấu trúc gói tin IP,TCP,UDP
2.2.1 Cấu trúc địa chỉ IP
Mạng Internet dùng hệ thống địa chỉ IP (32 bit) để "định vị" các máy tính liên kết với nó Có hai cách đánh địa chỉ phụ thuộc vào cách liên kết của từng máy tính cụ thể Nếu các máy tính được kết nối trực tiếp với mạng Internet thì NIC (Network Information Centre) sẽ cấp cho các máy tính đó một địa chỉ IP (IP Address)
Nếu các máy tính không kết nối trực tiếp với mạng Internet mà thông qua một mạng cục bộ thì người quản trị mạng sẽ cấp cho các máy tính đó một địa chỉ IP (tuy nhiên cũng dưới sự cho phép của NIC)
Hệ thống địa chỉ này được thiết kế mềm dẻo qua một sự phân lớp, có 5 lớp địa chỉ
IP là : A, B, C, D, E Sự khác nhau cơ bản giữa các lớp địa chỉ này là ở khả năng tổ chức các cấu trúc con của nó
Bảng 2: Tổ chức địa chỉ IP
Địa chỉ lớp A: Lớp A sử dụng byte đầu tiên của 4 byte để đánh địa chỉ mạng Như hình trên, nó được nhận ra bởi bit đầu tiên trong byte đầu tiên của địa chỉ có giá trị 0 3 bytes còn lại được sử dụng để đánh địa chỉ máy trong mạng Có 126 địa chỉ lớp
A (được đánh địa chỉ trong byte thứ nhất) với số máy tính trong mạng là 2563 - 2 = 16.777.214 máy cho mỗi một địa chỉ lớp A (sử dụng 3 bytes để đánh địa chỉ máy) Địa chỉ lớp B: Một địa chỉ lớp B được nhận ra bởi 2 bit đầu tiên của byte thứ nhất mang giá trị 10 Lớp B sử dụng 2 byte đầu tiên của 4 byte để đánh địa chỉ mạng và 2 byte cuối đánh địa chỉ máy trong mạng Có 64*256 - 2 = 16.128 địa chỉ mạng lớp B với 65.534 máy cho mỗi một địa chỉ lớp B
Địa chỉ lớp C: Một địa chỉ lớp C được nhận ra với 3 bit đầu mang giá trị 110 Mạng lớp C sử dụng 3 byte đầu để đánh địa chỉ mạng và 1 byte cuối đánh địa chỉ máy tính có trong mạng Có 2.097.152 -2 địa chỉ lớp C, mỗi địa chỉ lớp C có 254 máy Địa chỉ lớp D: Dùng để gửi các IP datagram tới một nhóm các host trên một mạng
Địa chỉ lớp E: Dùng để dự phòng và dùng trong tương lai
Class D 1 1 1 0 Multicast address
Class E 1 1 1 1 0 Reverved for future use
Trang 17Chương 2: Họ giao thức TCP/IP
2.2.2 Cấu trúc gói tin IP
Ver-4 bít: chỉ version hiện hành của ip đang được dùng, nếu trường này khác với phiên bản IP của thiết bị nhận, thiết bị nhận sẽ loại bỏ các gói tin này
IHL(IP Header Length)-4bít: chỉ độ dài phần header của gói tin, tính theo từ 32 bít
TOS(Type of Service)-1byte: cho biết dịch vụ nào mà gói tin muốn sử dụng chẳng hạn như độ ưu tiên, thời hạn chậm trễ, năng suất truyền và độ tin cậy Cụ thể như sau:
3 bít đầu (Precedence) chỉ quyền ưu tiên gửi gói tin, từ gói tin bình thường
là 0 đến gói tin kiểm soát mạng là 7
1 bít tiếp theo (Delay) chỉ độ trễ yêu cầu, 0 ứng với gói tin có độ trễ bình thường, 1 ứng với gói tin có độ trễ thấp
1 bít tiếp theo (Throughput) chỉ thông lượng yêu cầu sử dụng để truyền gói tin với lựa chọn truyền trên đường thông suất thấp hay trên đường thông suất cao, 0 ứng với thông lượng bình thường, 1 ứng với thông lượng cao
1 bít tiếp theo (Reliability) chỉ độ tin cậy yêu cầu, 0 ứng với độ tin cậy bình thường, 1 ứng với độ tin cậy cao
Total Length-2byte:chỉ độ dài toàn bộ gói tin tính cả phần header, tính theo đơn
vị byte
Indentification-16 bít: cùng với các tham số khác như Source Address, Destination Address dùng để định danh duy nhất một gói tin trong thời gian nó tồn tại trên mạng
Flags: Các gói tin khi truyền trên đường đi có thể bị phân thành nhiều gói tin nhỏ Trường Flags dùng để điều khiển phân đoạn và lắp ghép gói tin Cụ thể như sau:
Bít 0: chưa sử dụng, luôn lấy giá trị 0
Bít 1: 0 ứng với gói tin bị phân mảnh, 1 ứng với gói tin không bị phân mảnh
Bít 2: 0 ứng với gói tin thuộc phân đoạn cuối cùng của gói tin gốc, 1 ứng với gói tin không phải là phân đoạn cuối cùng của gói tin gốc
Fragment Offset-13bít: chỉ vị trí của phân đoạn trong gói tin gốc, tính theo đơn vị
8 byte
Time To Live-1byte: quy định thời gian tồn tại tính bằng giây của gói tin trong mạng Thời gian này được đặt bởi trạm gửi và giảm đi (thường quy ước là 1) khi gói
Trang 18Chương 2: Họ giao thức TCP/IP
tin đi qua mỗi router của liên mạng Một giá trị tối thiểu phải đủ lớn để mạng hoạt động tốt
Protocol: Chỉ tầng giao thức kế tiếp sẽ nhận vùng dữ liệu ở trạm đích TCP có ứng với giá trị 6, UDP ứng với giá trị 17, 1 ứng với ICMP
Header Checksum-2byte: Dùng để phát hiện lỗi header của gói tin xảy ra trong quá trình truyền của nó
Source IP Address-4byte: Địa chỉ IP của nơi truyền gói tin
Destination IP Address-4byte: Địa chỉ IP của nơi nhận gói tin
IP Option-độ dài thay đổi: Khai báo các lựa chọn do người sử dụng yêu cầu, ví
dụ như: mức độ bảo mật, đường mà gói tin được gửi đi, timestamp ở mỗi router
Padding-độ dài thay đổi: Dùng để đảm bảo phần header luôn kết thúc ở một mốc
32 bít
Data: chứa thông tin lớp trên ,chiều dài thay đổi đến 64Kb
2.2.3 Cấu trúc gói tin TCP
Đơn vị dữ liệu trong TCP được gọi là Segment với cấu trúc như sau:
- Source Port-2 byte: số hiệu cổng TCP của trạm nguồn
- Destination Port-2byte: số hiệu cổng TCP của trạm đích
- Sequence number: số hiệu của byte đầu tiên của segment, nếu cờ SYN bật thì
nó là số thứ tự gói ban đầu và byte đầu tiên được gửi có số thứ tự này cộng thêm 1 Nếu không có cờ SYN thì đây là số thứ tự của byte đầu tiên
- Acknowledgment Number-2byte: nếu cờ ACK bật thì giá trị của trường chính
là số thứ tự gói tin tiếp theo mà bên nhận cần Báo là nhận tốt các segment mà trạm đích đã gửi cho trạm nguồn
- Data offset-4bit: độ dài của phần header tính theo đơn vị từ 32 bit Tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu
- Reserved-6 bít
- Flags: các bít điều khiển
URG: Vùng con trỏ khẩn (Urgent pointer) có hiệu lực
ACK: Vùng báo nhận ACK number có hiệu lực
PSH: Chức năng PUSH
RST: khởi động lại liên kết
SYN: đồng bộ hoá số hiệu tuần tự
FIND: không còn dữ liệu từ trạm nguồn
Trang 19Chương 2: Họ giao thức TCP/IP
- Window-2byte: số byte dữ liệu bắt đầu từ byte được chỉ ra trong ACK number
mà trạm nguồn đã sẵn sàng để nhận
Checksum: checksum cho cả phần header lẫn dữ liệu
- Urgent Pointer-2byte: nếu cờ URG bật thì giá trị trường này chính là số từ 16 bit mà số thứ tự gói tin (sequence number) cần dịch trái
- Option-2byte: vùng tuỳ chọn, khai báo các option của TCP trong đó có độ dài tối đa của vùng TCP data trong một segment
- Padding: phần chèn thêm vào header để đảm bảo phần header luôn kết thúc ở một mốc 32 bít
- TCP data: chứa dữ liệu của tầng trên có độ dài tối đa ngầm định là 536byte Giá trị này có thể khai báo trong trường Option
2.2.4 Cấu trúc gói tin UDP
Vùng header của UDP có 64 bít với 4 trường :
- Source Port-2byte: xác định cổng của người gửi thông tin và có ý nghĩa nếu muốn nhận thông tin phản hồi từ người nhận Nếu không thì đặt nó bằng 0
- Destination Port-2byte: xác định cổng nhận thông tin và trường này là cần thiết
- Length-2byte: là chiều dài của toàn bộ gói tin(phần header và phần dữ liệu) Chiều dài tối thiểu là 8 byte khi gói tin không có dữ liệu, chỉ có header
- Checksum-2byte: dùng cho việc kiểm tra lỗi của phần header và phần dữ liệu
Trang 20Chương 3: Giới thiệu linh kiện
CHƯƠNG 3: GIỚI THIỆU LINH KIỆN 3.1 TỔNG QUAN VỀ PIC
Pic là gì?
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics
Division thuộc General_Instrument.PIC bắt nguồn từ chữ viết tắt của “Programmable
Intelligent Computer” (Máy tính khả trình thông minh) là một sản phẩm của hãng
General Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650 Lúc này, PIC
1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vì
vậy, người ta cũng gọi PIC với tên “Peripheral Interface Controller” (Bộ điều khiển
giao tiếp ngoại vi) CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600 PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được sử dụng thời bấy giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động) Năm
1985 General Instruments bán bộ phận 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 – lúc đó quá lỗi thời Tuy nhiên, PIC được bổ sung EPROM để tạo thành 1 bộ điều khiển vào ra khả trình Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn (như USART, PWM, ADC…), với bộ nhớ chương trình từ 512 Word đến 32K Word
3.1.1 Tại sao dùng Pic?
Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam Giá thành không quá đắt Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập
Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051 Số lượng người sử dụng họ vi điều khiển PIC hiện nay 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ở đã được 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,… Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình từ đơn giản đến phức tạp,… Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không ngừng được phát triển
3.1.2 Các dòng Pic và cách lựa chọn Vi điều khiển PIC
Các sản phẩm vi điều khiển PIC của Microchip có gần 100 loại sản phẩm từ họ 10Fxxx đến các họ 12Cxxx, 12Fxxx, 16Cxx, 17Cxx, 16Fxx, 16Fxxx, 16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx, 18Fxxxx, 18LFxxxx,…
Trang 21Chương 3: Giới thiệu linh kiện
Cách phân loại PIC theo chữ cái
Các họ PIC xxCxxx được đưa vào một nhóm, gọi là OTP (One Time Programmable): chúng ta chỉ có thể lập trình và nạp chương trình cho nó được một lần duy nhất
Nhóm thứ hai có chữ cái F hoặc LF: chúng ta gọi nhóm này là nhóm Flash, nhóm này cho phép ghi xóa nhiều lần bằng các mạch điện thông thường
Cách phân loại theo hai con số đầu tiên của sản phẩm
Loại thứ nhất là dòng PIC cơ bản( Base – line ), gồm các PIC 12Cxxx, có độ dài 12bit
Loại thứ hai là các dòng PIC 10F, 12F va 16F, gọi là dòng phổ thông ( Mid – Range ), có dộ dài 14 bit
Loại thứ ba là dòng PIC 18( High – End ), có độ dài 16 bit
Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản xuất Cách lựa chọn một vi điều khiển PIC phù hợp: Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng Có nhiều vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển chỉ có 8 chân,ngoài ra còn có các vi điều khiển 18, 28,
40, 44, … chân Cần chọn vi điều khiển PIC có bộ nhớ flash để có thể nạp xóa chương trình được nhiều lần hơn Tiếp theocần chú ý đến các khối chức năng được tích hợp sẵn trong vi điều khiển, các chuẩn giao tiếp bên trong Sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho phép
3.1.3 Ngôn ngữ lập trình cho Pic
Ngôn ngữ lập trình cho PIC rất đa dạng Ngôn ngữ lập trình cấp thấp có MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lập trình cấp cao hơn bao gồm C, Basic, Pascal, … Ngoài ra còn có một số ngôn ngữ lập trình được phát triển dành riêng cho PIC như PICBasic, MikroBasic,…
3.1.4 Mạch nạp Pic:
Đây cũng là một dòng sản phẩm rất đa dạng dành cho vi điều khiển PIC Có thể
sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hãng Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II Có thể dùng các sản phẩm này để nạp cho vi điều khiển khác thông qua chương trình MPLAB Dòng sản phẩm chính thống này có ưu thế là nạp được cho tất cả các vi điều khiển PIC, tuy nhiên giá thành rất cao và thường gặp rất nhiều khó khăn trong quá trình mua sản phẩm
3.2 CẤU TRÚC TỔNG QUÁT PIC 18F4620
3.2.1.Một vài thông số về Pic 18F4620
Đây là vi điều khiển thuộc họ PIC18Fxxx với tập lệnh gồm 35 lệnh có độ dài 16 bit Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối đa
Trang 22Chương 3: Giới thiệu linh kiện
cho phép là 40 MHz với một chu kì lệnh là 400ns Bộ nhớ chương trình 64Kx16 bit,
bộ nhớ dữ liệu 2944 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 2048 byte Số PORT I/O là 5 với 33 pin I/O
Các đặc tính ngoại vi bao gồm các khối chức năng sau:
- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C
- Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ
- Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân
Một vài đặc tính khác của vi điều khiển như:
- Được chế tao bằng công nghệ CMOS
- Bộ nhớ flash với khả năng ghi xóa được 100.000 lần
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần
- Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 100 năm
- Khả năng tự nạp chương trình với sự điều khiển của phần mềm
- Chức năng bảo mật mã chương trình
Trang 23Chương 3: Giới thiệu linh kiện
Bảng 3: Tóm tắt đặc điểm của PIC18F4620
3.2.2 Sơ đồ chân ,cấu trúc và chức năng PIC 18F4620 loại 40 chân PDIP
Trang 24Chương 3: Giới thiệu linh kiện
Hình 3.1: Sơ đồ chân Pic 18F4620 loại 40 chân PDIP
Chức năng các chân :
* Chân OSC1/CLKI (13) : ngõ vào dao động thạch anh hoặc xung clock bên ngoài
- OSC1 : ngõ vào dao động thạch anh hoặc xung clock bên ngoài Ngõ vào Schmit trigger khi được cấu tạo ở chế độ RC ; một cách khác của CMOS
- CLKI : ngõ vào nguồn xung bên ngoài Luôn được kết hợp với chức năng OSC1
* Chân OSC2/CLKO (13) : ngõ vào dao động thạch anh hoặc xung clock
- OSC2 : Ngõ ra dao động thạch anh Kết nối đến thạch anh hoặc bộ cộng hưởng
- CLKO : ở chế độ RC, ngõ ra của OSC2, bằng tần số của OSC1 và chỉ ra tốc độ của chu kỳ lệnh
Trang 25Chương 3: Giới thiệu linh kiện
- RA2 : xuất/nhập số
- AN2 : ngõ vào tương tự 2
- RA3 : xuất/nhập số
- AN3 : ngõ vào tương tự 3
* Chân RA4/TOCKI/C1OUT (6) :
- RA4 : xuất/nhập số - mở khi được cấu tạo như ngõ ra
- TOCKI : ngõ vào xung clock bên ngoài cho Timer 0
- C1 OUT : Ngõ ra bộ so sánh 1
- RA5 : xuất/nhập số
- AN4 : ngõ vào tương tự 4
- SS : ngõ vào chọn lựa SPI phụ
Trang 26Chương 3: Giới thiệu linh kiện
- T1 OCO : ngõ vào bộ dao động Timer 1
- T1 CKI : ngõ vào xung clock bên ngoài Timer 1
* Chân RC1/T1 OSI/CCP2 (16) :
- RC1 : xuất/nhập số
- T1 OSI : ngõ vào bộ dao động Timer 1
- CCP2 : ngõ vào Capture 2, ngõ ra compare 2, ngõ ra PWM2
- SCK : ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ SPI
* Chân RC4/SDI/SDA (23) :
- RC4 : xuất/nhập số
- SDI : dữ liệu vào SPI
* Chân RC5/SDO (24) :
- RC5 : xuất/nhập số
Trang 27Chương 3: Giới thiệu linh kiện
- SDO : dữ liệu ra SPI
- RD : điều khiển việc đọc ở port nhánh song song
- AN5 : ngõ vào tương tự 5
- RE1 : xuất/nhập số
- WR : điều khiển việc ghi ở port nhánh song song
- AN6 : ngõ vào tương tự 6
- RE2 : xuất/nhập số
Trang 28Chương 3: Giới thiệu linh kiện
- CS : Chip lựa chọn sự điều khiển ở port nhánh song song
- AN7 : ngõ vào tương tự 7
3.2.3 Sơ đồ khối của Pic18F4620
Hình 3.2: Sơ đồ khối vi điều khiển PIC18F4620
3.2.4.Tổ chức bộ nhớ:
Bộ nhớ chương trình( 64K Flash ROM), bộ nhớ dữ liệu( 2944 bytes RAM) và
bộ nhớ dữ liệu EEPROM( 2048 bytes)
3.2.4.1 Tổ chức của bộ nhớ chương trình
Bộ nhớ chương trình của vi điều khiển PIC18F4620 là bộ nhớ Flash, có bộ đếm chương trình( Program Counter) dài 16 bit có thể định địa chỉ cho 64K không gian bộ nhớ, 64K không gian bộ nhớ được chia làm 8 trang bộ nhớ Mọi sự truy cập ngoài vùng không gian này sẽ không có tác dụng
Trang 29Chương 3: Giới thiệu linh kiện
Bộ nhớ chương trình còn bao gồm một ngăn xếp( Stack) 8 mức
Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector) Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector)
Hình 3.3: Ngăn xếp và bản đồ bộ nhớ chương trình
3.2.4.2 Tổ chức của bộ nhớ dữ liệu:
Bộ nhớ dữ liệu của PIC được chia ra làm nhiều bank Đối với PIC18F4620 có
bộ nhớ dữ liệu được chia ra làm 4 bank: bank 0, bank 1, bank 2 và bank 3 Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFR (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cà các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình
Trang 30Chương 3: Giới thiệu linh kiện
chứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình
Hình 3.4: Sơ đồ bộ nhớ dữ liệu PIC18F4620 3.2.4.3 Bộ nhớ dữ liệu EEPROM và bộ nhớ chương trình FLASH:
Bộ nhớ dữ liệu EEPROM và bộ nhớ chương trình FLASH cho phép đọc hoặc ghi trong suốt hoạt động bình thường trong phạm vi VDD Những thao tác này xảy ra trên một byte đơn cho bộ nhớ dữ liệu EEPROM và trên một từ đơn cho bộ nhớ chương trình FLASH Một thao tác ghi gây ra sự xóa rồi ghi, thao tác này được thực hiện trên một byte hoặc một từ được chỉ định.Sự truy cập vào bộ nhớ chương trình phải kể đến
sự tính toán checksum.Ghi một byte hoặc một word sẽ tự động xóa vùng nhớ và ghi lên giá trị mới (xóa trước khi ghi).Việc ghi vào bộ nhớ dữ liệu EEPROM không ảnh hưởng đến hoạt động của thiết bị.Việc ghi vào bộ nhớ chương trình sẽ dừng thực thi các lệnh cho đến khi quá trình ghi hoàn thành.Bộ nhớ chương trình không thể được truy cập trong suốt quá trình ghi Trong suốt quá trình ghi, bộ dao động tiếp tục chạy, thiết bị ngoại vi vẫn tiếp tục hoạt động và những sự kiện về ngắt sẽ được phát hiện và đợi cho đến khi quá trình ghi hoàn thành Khi quá trình ghi hoàn thành, lệnh tiếp theo trong hàng đợi lệnh sẽ được thực hiện và một rẽ nhánh đến vectơ ngắt sẽ xảy ra đến
Trang 31Chương 3: Giới thiệu linh kiện
ngắt được phép và gây ra trong suốt quá trình ghi Việc đọc và ghi truy cập đến cả hai
bộ nhớ xảy ra gián tiếp thông qua việc đặt những thanh ghi mục đích chung (SFR) Có sáu thanh ghi mục đích chung được sử dụng là:
Bộ nhớ dữ liệu EEPROM cho phép những thao tác đọc và ghi byte không can thiệp đến những thao tác bình thường của bộ vi điều khiển Khi có sự trao đổi với bộ nhớ dữ liệu EEPROM, thanh ghi EEADR giữ địa chỉ sẽ được truy cập.Phụ thuộc vào thao tác, thanh ghi EEDATA giữ dữ liệu được ghi hoặc được đọc tại địa chỉ trong thanh ghi EEADR PIC18F4620 có 2048 byte cho bộ nhớ dữ liệu EEPROM và do đó nó sử dụng tất cả 16 bit của EEADR Bộ nhớ chương trình FLASH không cho phép truy cập vào quá trình đọc, nhưng quá trình ghi sẽ dừng thực thi các lệnh cho đến khi quá trình ghi hoàn thành Khi trao đổi với bộ nhớ chương trình cặp thanh ghi EEADRH:EEADR sẽ tạo thành một từ hai byte, và sẽ chứa 13 bit địa chỉ của vùng nhớ được truy cập Sự kết hợp hai thanh ghi EEDATH:EEDATA sẽ chứa dữ liệu 14 bit cho việc ghi, hoặc phản ánh giá trị của bộ nhớ chương trình sau mỗi lần đọc Giống sự truy cập vào bộ nhớ dữ liệu EEPROM, giá trị của những thanh ghi EEADRH:EEADR phải bên trong phạm vi hợp lệ của bộ nhớ chương trình, phụ thuộc vào linh kiện (0000h đến 1FFFh đối với PIC18F4550)
3.2.5 Các cổng xuất nhập:
PIC18F4620 là họ vi điều khiển có 40 chân, mỗi chân có một chức năng khác nhau Trong đó có một số chân đa công dụng( đa hợp): mỗi chân có thể họat động như một đường xuất nhập ( I/O) hoặc là một chân chức năng đặc biệt dùng để giao tiếp với các thiết bị ngoại vi
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với bên ngoài Vi điều khiển PIC18F4620 có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE
Port A và thanh ghi TRISA:
PortA gồm 6 chân từ RA0-RA5 Việc ghi các giá trị vào thanh ghi TRISA sẽ quy định các chân của PortA là Input hay Output Nếu là 0 thì là Output, 1 là Input
Việc đọc thanh ghi PortA sẽ đọc trạng thái các chân PortA Việc ghi giá trị vào thanh ghi PortA sẽ thay đổi trạng thái của các chân PortA
Riêng chân RA4 được tích hợp thêm chức năng là chân cung cấp xung Clock ngoài cho Timer0 (RA4/TOCKI) Những chân khác của PortA được đa hợp với các chân ngõ vào Analog của ADC và chân ngỏ vào điện thế so sánh của bộ so sánh
(Comparator) Hoạt động của những chân này được qui địng bằng những Bit tương ứng trong thanh ghi ADCCON1 va CMCON1 Khi các chân của PortA được sử dụng
là ngõ vào Analog thì các Bit của thanh ghi TRISA phải luôn bằng 1
Các thanh ghi SFR liên quan đến PORTA bao gồm:
Trang 32Chương 3: Giới thiệu linh kiện
TRISA (địa chỉ 85h) : điều khiển xuất nhập
CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh
CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp
ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC
3.2.5.1 Port B và thanh ghi TRISB
PortB gồm 8 chân từ RB0-RB7 Việc ghi các giá trị vào thanh ghi TRISB sẽ quy định các chân của PortB là Input hay Output Nếu là 0 thì là Output, 1 là Input
Việc đọc thanh ghi PortB sẽ đọc trạng thái các chân PortB Việc ghi giá trị vào thanh ghi PortB sẽ thay đổi trạng thái của các chân PortB
Ba chân của PortB được đa hợp với chức năng In-Circuit Debugger và Low
Voltage Programming fuction: RB3/PGM, RB6/PGC và RB7/PGD
Mỗi chân của PortB có một transistor kéo lên Vdd, chức năng này hoạt động khi Bit RPBU được xóa Chứ năng này sẽ tự động tắt khi chân Port đựơc quy địng là Input
Bốn chân của Portb từ RB7-RB4 có chức năng ngắt (Interrupt) khi trạng thái chân Port thay đổi (Khi chân Port được quy định là Ouput thì chức na7ng ngắt không họat động) Giá trị chân Port được so sánh với giá trị được lưu lại trước đó, khi có trạng thái sai lệch giữa 2 giá trị này, ngắt sẽ xảy ra với cờ ngắt RBIF INTCON<0> bật lên Ngắt
có thể làm cho Vi điều khiển thoát khỏi trạng thái “SLEEP”
Bất cứ một họat động truy xuất nào trên PortB sẽ xóa trạng thái sai lệch, kết thúc ngắt và cho phép xóa cờ RBIF
Các thanh ghi SFR liên quan đến PORTB bao gồm:
- PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB
- TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập
Trang 33Chương 3: Giới thiệu linh kiện
- OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0
3.2.5.2 Port C và thanh ghi TRISC
PortC gồm 8 chân từ RC0-RC7 Việc ghi các giá trị vào thanh ghi TRISC sẽ quy định các chân của PortC là Input hay Output Nếu là 0 thì là Output, 1 là Input
Việc đọc thanh ghi PortC sẽ đọc trạng thái các chân PortC Việc ghi giá trị vào thanh ghi PortC sẽ thay đổi trạng thái của các chân PortC
Các chân của PortC được đa gợp với các chức năng ngọai vi
Khi các hàm chức năng ngoại vi được cho phép, ta cần quan tâm chặt chẽ tới giá trị các Bit của thanh ghi TRISC và mặt định các chân này là Ouput, ngoài ra một số chức năng ngoại vi khác sẽ tự động mặt định các chân là ngõ vào
Các thanh ghi điều khiển liên quan đến PORTC:
- PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC
- TRISC (địa chỉ 87h) : điều khiển xuất nhập
3.2.5.3 Port D và thanh ghi TRISD:
PortD gồm 8 chân từ RD0-RD7 Ngoài việc PortD được cấu trúc là một Port vừa xuất nhập nó còn có thể họat động như một cổng song song bằng cách xét Bit
PSPMODE, trong chế độ này Buffer ngõ vào linh kiện TTL
Các thanh ghi liên quan đến PORTD bao gồm :
- Thanh ghi PORTD(địa chỉ 08h) : chứa giá trị các pin trong PORTD
- Thanh ghi TRISD(địa chỉ 88h) : điều khiển xuất nhập
Trang 34Chương 3: Giới thiệu linh kiện
3.2.5.4 PortE và thanh ghi TRISE :
PortE có 3 chân RE0/RD/AN5, RE1/WR/AN6 VÀ RE2/CS/AN7 có thể được cấu hình là các chân xuất nhập
Các chân của PortE có thể trở thành các chân điều khiển cho các cổng của Vi điều khiển khi Bit PSPMODE được xét là 1 Trong chế độ này phải đảm bảo rằng các Bit từ
0 dến 2 cua thanh ghi TRISE phải được xét bằng 1 để các chân này được cấu hình như các chân ngõ vào
Ngoài ra các chân PortE còn được cấu hình như các ngõ vào Analog, tại chế độ này khi đọc trạng thái các chân PortE sẽ cho ta giá trị 0
Thanh ghi TRISE quy định chức năng xuất nhập của các chân PortE ngay cả khi
nó được sử dụng là các ngõ vào Analog
Các thanh ghi liên quan đến PORTE bao gồm:
- PORTE(địa chỉ 09h) : chứa giá trị các chân trong PORTE
- TRISE(địa chỉ 89h) : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP
- ADCON1(địa chỉ 9Fh) : thanh ghi điều khiển khối ADC
3.2.6 Hoạt động của các bô ngoại vi:
Bộ Capture/Compare/PWM :
Họ PIC18Fxxx có hai bộ CCP, mỗi bộ là một thanh ghi 16 bit mà có thể hoạt động như là :
Trang 35Chương 3: Giới thiệu linh kiện
- Thanh ghi Capture 16 bit
- Thanh ghi Compare 16 bit
- Thanh ghi chu trình làm việc chủ/tớ PWM
Cả hai bộ CCP1 và CCP2 cơ bản hoạt động giống nhau, ngoại trừ trong khi hoạt động với sự kiện trigger đặt biệt
Trang 36Chương 3: Giới thiệu linh kiện
Chế độ Capture:
Trong chế độ này, cặp thanh ghi CCPR1H : CCPR1L giữ giá trị 16 bit của thanh ghi TMR1 khi có một sự kiện xảy ra trên chân RC2/CCP1 Sự kiện được định nghĩa như là một trong các yếu tố sau:
- Sau mỗi cạnh lên của xung clock
- Sau mỗi cạnh xuống của xung clock
- Sau mỗi canh lên thứ tư
- Sau mỗi cạnh lên thứ 16
Việc lựa chọn sự kiện nào được cấu hình bởi các bit điều khiển
CCP1M3:CCP1M0 Nếu một sự kiện mới xảy ra trước khi giá trị trong thanh ghi CCPR1 được đọc, giá trị mới sẽ đè lên giá trị cũ
Sơ đồ khối của bộ CCP hoạt động trong chế độ Capture:
Chế độ PWM ( Điều biến độ rộng xung ) :
Trong chế độ này, một xung vuông 10 bit được tạo ra trên chân CCPx Vì chân này đa hợp với chân chốt của PORTC nên bit TRISC<2> phải được xóa để cấu hình cho chân CCP1 ở trạng thái xuất dữ liệu
Các bước sau được yêu cầu để thiết lập cho bộ CCP hoạt động trong chế độ PWM:
- Thiết lập chu kỳ cho PWM bằng cách ghi lên thanh ghi PR2
Trang 37Chương 3: Giới thiệu linh kiện
- Thiết lập chu trình họat động bằng cách ghi lên thanh ghi
- CCPR1L và bit4 bit5 trong thanh ghi CCP1CON
- Cấu hình cho chân CCP1 ở trạng thái xuất dữ liệu
- Cấu hình cho bộ CCP1 hoạt động trong chế độ PWM
Sơ đồ khối của bộ PWM:
Các thanh ghi liên quan đến chế độ Capture , Compare và Timer1