Chương 1: Tổng quan về đồ án Cho ta hình dung khái quát về hệ thống, từ đó dễ dàng trong việc triển khai chi tiết các khối chức năng về phần cứng cũng như phần mềm Đặt vấn đề. Hiện nay, có nhiều phương pháp kết nối máy tính với các thiết bị điều khiển như thực hiện việc kết nối theo chuẩn RS232, RS485 rất phổ biến, tuy nhiên khi thực hiện việc kết nối các theo chuẩn này gặp phải một số vấn đề cơ bản sau: Khoảng cách kết nối giữa máy tính với thiết bị điều khiển khoảng 3040m. Tốc độ truyền thông của RS232 chỉ khoảng 19.2kBd. Ghép nối điểmđiểm. Những nhược điểm của các phương pháp giao tiếp trên cũng chính là những ưu điểm của mạng Ethernet. Với những lợi thế của mình, mạng Ethernet đã trở thành mạng phổ biến nhất trong các hệ thống nhà máy công nghiệp Vì vậy, để có thể hiểu rõ thêm về mạng Enthernet trong đo lường và điều khiển nên đề tài “Thu thập dữ liệu và điều khiển thiết bị qua mạng Ethernet” đã được thực hiện. Đã có nhiều đề tài điều khiển thiết bị qua mạng,nhưng hạn chế đó là phải sử dụng 1 máy tính làm sever kết nối với mạch điều khiển qua chuẩn RS232,hoạt động 2424h gây tốn kém và cồng kềnh. Để giải quyết vấn đề này trong đề tài này em đã dùng vi điều khiển ENC28J60 kết nối với vi điều khiển trung tâm qua kết nối chuẩn SPI. ENC28J60 đóng vi trò như 1 card mạng trên máy tính. Vi điều khiển trung tâm phải có tần số hoạt động cao,ổn định vì để có thể giao tiếp với ENC28J60 hoạt động với tần số 25MHz.Vì vậy em đã chọn vi điều khiển 18F4550 để thực hiện. Trên máy tính cần có 1 phần mềm để thu thập dữ liệu và điều khiển thiết bị.Ta có thể lập trình bằng nhiều chương trình khác nhau như Delphi,Java,C++,C…Vì đã có ít kiến thức về lập trình C nên em đã chọn lập trình C với phần mềm Visual Studio 2010. Microsoft Visual Studio 2010 cung cấp các gói công cụ mạnh mẽ trong việc lập trình các giao diện desktop tốc độ cao và đơn giản.Công cụ C đem lại hình ảnh trực quan với các giao diện desktop quen thuộc như button , textbox , radio button … với cơ sở liên kết dữ liệu chặt chẽ.
Trang 1Lời cam đoan :
Tôi Trần Tuấn Nam xin cam đoan nội dung của đồ án này không phải là bản sao
chép của bất cứ đồ án hoặc công trình đã có từ trước
Sinh Viên
Trần Tuấn Nam
Trang 2MỤC LỤC
MỤC LỤC HÌNH
Hình 2.1: Khung truyền 10
Hình 2.2: Ethernet/IEE 802.3 trong tập chuẩn IEEE 802 11
Hình 2.3: Minh họa phương pháp CSMA/CD 14
Hình 2.4: Kiến trúc giao thức TCP/IP 19
Hình 2.5: Lớp dữ liệu trong gói liên kết 21
Hình 2.6: Tổ chức địa chỉ IP 22
Hình 2.7: Mạng và mặt nạ 23
Hình 2.8 Sơ đồ chân PIC 18F4550 27
Hình 2.9: Thanh ghi SSPCON1 28
Hình 2.10: Thanh ghi SSPSTAT 28
Hình 2.11: Kết nối Master và Slave 29
Hình 2.18: S ơ đồ kết nối với vi điều khiển 34
Hình 2.19: DS18B20 hoạt động với nguồn ngoài 34
Hình 2.20: DS18B20 hoạt động với nguồn ký sinh 34
Hình 2.21: Thanh ghi nhiệt độ 35
Hình 2.22: Bộ nhớ của DS18B20 36
Hình 2.23: Th ời gian khởi tạo 38
Hình 2.23: Th ời gian khởi tạo 39
Hình 3.1 Sơ đồ khối 40
Hình 3.2 Sơ đồ kết nối chân DS18B20 41
Hình 3.3 Sơ đồ vi điều khiển 18F4550 42
Hình 3.4 Sơ đồ khối mạch công suất 42
Hình 3.5 Sơ đồ kết nối vi điều khiển ENC28J60 với cổng RJ45 43
Hình 3.6 Sơ đồ khối LCD16x2 43
Hình 3.7 Sơ đồ khối nguồn 44
Trang 3Hình 3.8 Sơ đồ nguyên lý 44
Hình 3.9 Sơ đồ mạch in 44
Hình 4.1 Khối mạch thi công 48
Hình 4.2 Ping tới mạch điều khiển 48
Hình 4.3 Giao diện phần mềm 49
MỤC LỤC BẢNG
Bảng 2.1: Một số loại cáp tryền Ethenet thông dụng 11
Bảng 2.2: Mối quan hệ nhiệt độ/dữ liệu 35
Bảng 2.3: Trình tự giao tiếp với 1 DS18B20 37
Bảng 2.4: Trình t ự giao tiếp với nhiều DS18B20 38
Trang 4Lời nói đầu
Internet ngày nay đã trở thành một công cụ hiệu quả trong tất cả các lĩnh vực đờisống xã hội, việc kết nối giữa các máy tính đã trở nên dễ dàng rất nhiều Với mongmuốn xây dựng một phương thức kết nối giữa máy tính và thiết bị điều khiển theochuẩn Ethernet nhằm mục đích nâng cao kiến thức thực tiễn,em đã được sự giúp đỡcủa thầy giáo - ThS Hoàng Minh Huy, đã tiến hành nghiên cứu, xây dựng mạchthiết bị điều khiển tích hợp giao diện truyền thông Ethernet
Em xin chân thành cảm ơn thầy giáo - ThS Hoàng Minh Huy đã tận tình hướngdẫn, giúp đỡ chúng em hoàn thành đồ án này Em cũng xin cảm ơn các bộ môn liênquan đã tạo điều kiện thuận lợi trong quá trình chúng em thực hiện đồ án
Trang 5CHƯƠNG 1 : MỤC TIÊU VÀ NHIỆM VỤ CỦA ĐỀ TÀI
Giới thiệu chương 1
Chương 1 cho ta cái nhìn tổng quan về hệ thống và phương pháp xây dựng đồ án
Mạng Ethernet công nghiệp đã và đang có những bước phát triển nhanh chóng, sẽdần thay thế các mạng công nghiệp truyền thống khác Các nhà máy sản xuất côngnghiệp cũng nhận thấy những lợi ích của Ethernet công nghiệp trong việc nâng caohiệu quả sản xuất,đơn giản hóa quản lý và tích hợp thông tin giữa sản xuất và quản
lý dễ dàng
Ngày nay, với sự phát triển nhanh chóng của thiết bị điện- điện tử, việc giao tiếp vớimáy tính là hết sức cần thiết Điều này không những tận dụng được tài nguyên, khảnăng xử lý của máy tính mà còn giúp người sử dụng có thể theo dõi các đối tượnglàm việc phía dưới
Hiện nay, có nhiều phương pháp kết nối máy tính với các thiết bị điều khiển nhưthực hiện việc kết nối theo chuẩn RS232, RS485 rất phổ biến, tuy nhiên khi thựchiện việc kết nối các theo chuẩn này gặp phải một số vấn đề cơ bản sau:
Khoảng cách kết nối giữa máy tính với thiết bị điều khiển khoảng 40m
30- Tốc độ truyền thông của RS232 chỉ khoảng 19.2kBd
Ghép nối điểm-điểm
Những nhược điểm của các phương pháp giao tiếp trên cũng chính là những ưuđiểm của mạng Ethernet Với những lợi thế của mình, mạng Ethernet đã trở thànhmạng phổ biến nhất trong các hệ thống nhà máy công nghiệp
Để có thể kết nối thiết bị điều khiển với máy tính theo chuẩn Ethernet, chúng em đãthực hiện đề tài này
Trang 61.2 Mục tiêu của đề tài
Thực hiện việc kết nối thiết bị điều khiển với PC thông qua mạng Ethernet Qua đó,thực hiện việc trao đổi dữ liệu, thực hiện một số ứng dụng cụ thể như : thu thập hiểnthị nhiệt độ; điều khiển, hiển thị tốc độ động cơ dùng Ethernet…
1.3 Nhiệm vụ của đề tài
Để thực hiện được mục tiêu của đề tài, nhiệm vụ cần đặt ra là :
1. Thiết kế mạch phần cứng thiết bị điều khiển
2. Xây dựng phần mềm giao diện Ethernet
Thiết kế phần mềm giao diện trên PC giúp người sử dụng thực hiện đặt các giá trịđặt và theo dõi trạng thái đối tượng bên dưới
Từ đó,đồ án “Điều khiển thiết bị và thu thập dữ liệu qua mạng Ethernet” đã
được thực hiện và gồm 4 chương chính:
CHƯƠNG 1: MỤC TIÊU VÀ NHIỆM VỤ CỦA ĐỀ TÀI
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
CHƯƠNG 4: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỒ ÁN
Tổng kết chương 1:
Qua chương 1 ta có thể hình dung khái quát về hệ thống ,từ đó dễ dàng trong việctriển khai chi tiết các khối chức năng về phần cứng cũng như phần mềm Đồng thờinhờ nghiên cứu cụ thể phương pháp thực hiện, nên tính định hướng của đồ án sẽ rất
rõ ràng
Trang 7CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Giới thiệu chương 2:
Chương 2 giới thiệu về những kiến thức làm nền tảng để thực hiện đồ án
2.1 Tổng quan về mạng Ethenet
2.1.1 Giới thiệu
Ethernet là kiểu mạng cục bộ (LAN) được sử dụng rộng rãi nhất hiện nay Thựcchất, Ethernet chỉ là mạng cấp dưới (lớp vật lý và một phần lớp liên kết dữ liệu), vìvậy có thể sử dụng các giao thức khác nhau ở phía trên, trong đó TCP/IP là tập giaothức được sử dụng phổ biến nhất Tuy vậy, mỗi nhà cung cấp sản phẩm có thể thựchiện giao thức riêng hoặc theo một chuẩn quốc tế cho giải pháp của mình trên cơ sở
Ethernet High Speed Ethernet (HSE) của Fieldbus Foundation chính là một trong
tám hệ bus trường được chuẩn hóa quốc tế theo IEC 61158
Ethernet có xuất xứ là tên gọi một sản phẩm của công ty Xerox, được sử dụng đầutiên vào năm 1975 để nối mạng 100 trạm máy tính với cáp đồng trục dài 1km, tốc
độ truyền 2,94 Mbit/s và áp dụng phương pháp truy nhập bus CSMA/CD Từ sựthành công của phương pháp này, Xerox đã cùng DEC và Intel đã xây dựng mộtchuẩn 10 Mbit/s- Ethernet Chuẩn này chính là cơ sở cho IEEE 802.3 sau này Đặcbiệ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ụngcáp đồng trục, đôi dây xoắn và cáp quang, gần đây Ethernet không dây (WirelessLAN, IEEE 802.11) cũng đang thu hút được sự quan tâm lớn
2.1.2 Khung truyền
Một frame của Ethernet bao gồm các phần sau:
Tất cả các byte đều có giá trị 10101010
Được dùng để đồng bộ đồng hồ giữa nơi nhận và gửi frame
Ethernet frame)
Byte này có giá trị 10101011
Được dùng để đánh dấu bắt đầu một frame
Trang 8 Tuy vậy, không có end-frame-delimieter cho Ethernet frame Việcthêm bit/byte (stuffing) cũng không được sử dụng cho các bit thông tin Kết thúccủa một frame được phát hiện bằng việc sử dụng tín hiệu vật lý.
Hình 2.1: Khung truyền
Đây là địa chỉ MAC của Ethernet card của nơi đến
Ý nghĩa của bit thấp nhất (least-significant bit) xác định 6 bytes này:
Ở chế độ hoạt động bình thường, Ethernet chỉ tiếp nhận những frame
có địa chỉ nơi đến trùng với địa chỉ (duy nhất) của nó, hoặc địa chỉ nơi đến thểhiện một thông điệp quảng bá Tuy vậy, hầu hết các Ethernet card đều có thểđược đặt ở chế độ "promiscuous" Trong chế độ này, nó sẽ nhận tất cả các framexuất hiện trong mạng LAN
Đây là địa chỉ MAC của Ethernet card nguồn
Có hai loại cấu trúc Ethernet frame
- Dùng để chỉ độ dài của Ethernet frame
• DIX Ethernet: Được công bố bởi DEC, Intel và Xeror vào năm
1980 (phổ biến hơn)
Trang 9- Dùng để chỉ giao thức của lớp phía trên
Do kích thước frame tối thiều là 64 bytes, kích thước tối thiểu củaphần thông tin là 64-18=46 bytes (18 bytes thông tin điều khiển)
Kích thước phần thông tin tối đa là 1500 bytes Do đó, kích thước gói
IP trong Ethernet tối đa là 1500 bytes, đây cũng là một trong ba kích thước gói
IP thông dụng nhất (40, 576, 1500)
Chứa mã kiểm tra CRC 32 bits
2.1.3 Kiến trúc giao thức
Kiến trúc giao thức của Ethernet theo chuẩn IEEE 802.3 chỉ bao gồm lớp vật lí vàlớp MAC (Medium Access Control, lớp điều khiển truy nhập môi trường)
Hình 2.2: Ethernet/IEE 802.3 trong tập chuẩn IEEE 802.
2.1.4 Cấu trúc mạng và kỹ thuật truyền dẫn
Về mặt logic, Ethernet có cấu trúc bus Cấu trúc mạng vật lí có thể là đường thẳnghoặc hình sao tùy theo phương tiện truyền dẫn Bốn loại cáp thông dụng nhất : cápđồng trục dầy, cáp đồng trục mỏng, cáp đôi dây xoắn, cáp quang
Tên hiệu Loại cáp Chiều dài tối đa Số trạm tối đa
Trang 10Loại 10BASE5 còn được gọi là cáp dầy ( thick Ethernet), loại cáp đồng trục thường
có màu vàng Kí hiệu 10BASE5 có nghĩa là tốc độ truyền tối đa 10Mbit/s, phươngpháp truyền tải dải cơ sở và chiều dài một đoạn mạng tối đa 500m Loại cáp đồngtrục thứ hai có kí hiệu 10BASE2 được gọi là cáp mỏng ( thin Ethernet), rẻ hơnnhưng hạn chế một đoạn mạng ở phạm vi 200m và số lượng 30 trạm
Với 10BASE5, bộ nối được gọi là vòi hút ( vampire tap), đóng vai trò một bộ thuphát ( transceiver ) Bộ thu phát chứa vi mạch điện tử thực hiện chức năng nghengóng đường truyền và nhận biết xung đột Trong trường hợp xung đột được pháthiện, bộ thu phát gửi một tín hiệu không hợp lệ để tất cả các bộ thu phát khác cũngnhận biết được rằng xung đột đã xảy ra Như vậy, chức năng của module giao diệnmạng được giảm nhẹ Cáp nối giữa bộ thu phát và card giao diện mạng được gọi làcáp thu phát, có thể dài tới 50m và chứa tới năm đôi dây xoắn bọc lót riêng biệt( STP) Hai đôi dây cần cho trao đổi dữ liệu, hai đôi cho truyền tín hiệu điều khiển,còn đôi dây thứ năm có thể sử dụng để cung cấp nguồn cho bộ thu phát Một số bộthu phát cho phép nối tới tám trạm qua các cổng khác nhau, nhờ vậy tiết kiệm được
số lượng bộ nối cũng như công lắp đặt
Với 10BASE2, card giao diện mạng được nối với cáp đồng trục thông qua bộ nốithụ động BNC hình chữ T Bộ thu phát được tích hợp trong bảng mạch điện tử củamodule giao diện mạng bên trong máy tính Như vậy, mỗi trạm có một bộ thu phátriêng biệt
Về bản chất, cả hai kiểu dây với cáp đồng trục như nói trên đều thực hiện cấu trúcbus
( vật lí cũng như logic), vì thế có ưu điểm là tiết kiệm dây Tuy nhiên, các lỗi phầncứng như đứt cáp, lỏng bộ phận nối rất khó phát hiện trực tuyến Mặc dù đã có một
số biện pháp khắc phục, phương pháp tin cậy hơn là sử dụng cấu trúc hình sao vớimột bộ chia ( hub) hoặc một bộ chuyển mạch ( switch ) Cấu trúc này thông thườngđược áp dụng với cáp đôi dây xoắn, nhưng cũng áp dụng được với cáp đồng trục( ví dụ Industrial Ethernet)
Đa số cấu hình mạng Ethernet có kết nối với thiết bị điều khiển thường sử dụngchuẩn chung 10BASE-T Trong mạng này các trạm được nối với nhau qua một bộchia giống như cách nối các mạng điện thoại
Ưu điểm của cấu trúc này là việc bổ xung hoặc tách một trạm ra khỏi mạng cũngnhư việc phát hiện cáp truyền rất đơn giản
Trang 11Nhược điểm có thể thấy rõ nhất đó là tốn dây dẫn và công đi dây cũng như chi phícho bộ chia chất lượng cao cũng là một vấn đề Bên cạnh đó, khoảng cách tối đacho phép từ một trạm tới bộ chia thường bị hạn chế trong vòng 100 – 150m.
Bên cạnh cáp đồng trục và cáp đôi dây xoắn thì cáp quang cũng được sử dụng nhiềutrong Ethernet, trong đó đặc biệt là 10BASE-F Với cách ghép nối duy nhất là điểm– điểm, cấu trúc mạng có thể là daisy-chain, hình sao hoặc hình cây Thông thường,chi phí cho các bộ nối và chặn đầu cuối rất lớn nhưng khả năng kháng nhiễu tốt vàtốc độ truyền cao lá các yếu tố quyết định trong nhiều phạm vi ứng dụng
Trong nhiều trường hợp, ta có thể sử dụng phối kết hợp nhiều loại trong một mạngEthernet Ví dụ, cáp quang hoặc cáp đồng trục dầy có thể sử dụng là đường trụcchính hay xương sống ( backbone ) trong cấu trúc cây, với các đường nhánh là cápmỏng hoặc đôi dây xoắn Đối với mạng quy mô lớn, có thể sử dụng các bộ lặp,nhưng đường dẫn giữa hai bộ thu phát không được phép dài quá 2,5km cũng nhưkhông đi qua quá bốn bộ lặp
2.1.5 Cơ chế giao tiếp
Sự phổ biến của Ethernet có được là nhờ tính năng mở Thứ nhất, Ethernet chỉ quiđịnh lớp vật lí và lớp MAC, cho phép các hệ thống khác nhau tùy ý thực hiện cácgiao thức và dịch vụ phía trên Thứ hai, phương pháp truy nhập bus ngẫu nhiênCSMA/CD không yêu cầu các trạm tham gia phải biết cấu hình mạng, vì vậy có thể
bổ xung hay tách một trạm ra khỏi mạng mà không ảnh hưởng tới các phần còn lại.Thứ ba, việc chuẩn hóa sớm trong IEEE 802.3 giúp cho các nhà cung cấp sản phẩmthực hiện dễ dàng hơn
Trong một mạng Ethernet, không kể tới bộ chia hoặc bộ chuyển mạch thì tất cả đều
có vai trò bình đẳng như nhau Mỗi trạm có một địa chỉ Ethernet riêng biệt và thốngnhất Việc giao tiếp giữa các trạm thông qua giao tiếp phía trên ví dụ NetBUI,IPX/SPX hoặc TCP/IP Tùy theo giao thức cụ thể, căn cước của bên gửi và bênnhận trong một bức điện của lớp phía trên sẽ được dịch sang địa chỉ Ethernet trướckhi được chuyển xuống lớp MAC
Bên cạnh cơ chế giao tiếp tay đôi, Ethernet còn hỗ trợ phương pháp gửi thông báođồng loạt ( multicast và broadcast ) Một thông báo multicast được gửi tới một
nhóm các trạm, trong khi một thông báo broadcast gửi tới tất cả các trạm.
2.1.6 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
Trang 12with 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 2.3: Minh họa phương pháp CSMA/CD.
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ầnmộ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ănghai 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ỗitrạ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
Trang 13trướ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ệuphả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ảihủ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ôngnhậ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à Ccũ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ờigian 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ùngchờ 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áptiề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ớihoạ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ãitrong 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ôngxá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ươngphá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ờigian thực
Điều kiện ràng buộc
Khả năng thực hiện phương pháp CSMA/CD bị hạn chế bởi một điều kiện ràngbuộc giữa chiều dài dây dẫn, tốc độ truyền thông và chiều dài bức điện Chỉ khi mộttrạm phát hiện được xung đột xảy ra trong khi bức điện chưa gửi xong mới có khảnăng hủy bỏ bức điện ( có thể chỉ đơn giản bằng cách không gửi tiếp cờ hiệu kếtthúc) Còn nếu bức điện đã được gửi đi xong rồi mới phát hiện xảy ra xung đột thì
đã quá muộn, một trạm khác có thể đã nhận được và xử lí bức điện với nội dung sailệch
Trong trường hợp xấu nhất hai trạm cùng gửi thông tin có thể ở hai đầu của dâydẫn, trạm thứ hai chỉ gửi bức điện trước khi tín hiệu từ trạm thứ nhất tới một chút.Tín hiệu bị xung đột xảy ra ở đây phải mất thêm một khoảng thời gian nữa đúng
bằng thời gian lan truyền tín hiệu Ts mới quay trở lại tới trạm thứ nhất Như vậy
Trang 14điều kiện thực hiện phương pháp CSMA/CD là thời gian gửi một bức điện phải lớnhơn hai lần thời gian lan truyền tín hiệu, tức :
( Chiều dài bức điện n/ Tốc độ truyền v) > 2Ts
0 hoặc 1 lần khe thời gian chờ trước khi thử gửi lại Nếu hai trạm ngẫu nhiên cùngchọn một khoảng thời gian, hoặc có sự xung đột với một trạm thứ ba, thì số khe thời
gian lựa chọn chờ sẽ là 0, 1, 2 hoặc 3.Sau lần xung đột thứ i , số khe thời gian chọn
ngẫu nhiên nằm trong khoảng từ 0 tới 2
i
-1 Tuy nhiên, sau mười lần xung đột, sốkhe thời gian chờ tối đa sẽ được giữ lại ở con số 1023 Sau 16 lần xung đột liên tiếp,các trạm sẽ coi là lỗi hệ thống và báo trở lại lớp giao thức phía trên Thuật toán nổi
tiếng này được gọi là Binary Exponential Backoff (BEB).
2.1.7 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ệutrong 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à cell Các mạng Isochronous, nơi dữ liệu được truyền theo một dòng liêntụ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ằmngoài phạm vi của chuẩn này) Con số 802 chỉ đơn giản là con số còn trống tiếptheo mà IEEE có thể dùng, đôi khi "802" còn được liên hệ với ngày mà cuộc họpđầu tiên được tổ chức –tháng 2 năm 1980
Trang 15Các dịch vụ và giao thức được đặc tả trong IEEE 802 ánh xạ tới hai tầng thấp (tầngliê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ầngliê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) Mỗi lĩnh vực có một
Working Group tập trung nghiên cứu
Các Working Group:
IEEE 802.1 Các giao thức LAN tầng cao
IEEE 802.2 điều khiển liên kết lôgic
IEEE 802.3 Ethernet
802.3u là chuẩn của FastEthernet802.3z là chuẩn Gigabit Ethernet
IEEE 802.4 Token bus (đã giải tán)
IEEE 802.5 Token Ring
IEEE 802.6 Metropolitan Area Network (đã giải tán)
IEEE 802.7 Broadband LAN using Coaxial Cable (đã giải tán)
IEEE 802.8 Fiber Optic TAG (đã giải tán)
IEEE 802.9 Integrated Services LAN (đã giải tán)
IEEE 802.10 Interoperable LAN Security (đã giải tán)
IEEE 802.11 Wireless LAN (Wi-Fi certification)
IEEE 802.12 công nghệ 100 Mbit/s plus
IEEE 802.13 (không sử dụng)
IEEE 802.14 modem cáp (đã giải tán)
IEEE 802.15 Wireless PAN
IEEE 802.15.1 (Bluetooth certification)
Trang 16IEEE 802.15.4 (ZigBee certification)
IEEE 802.16 Broadband Wireless Access (WiMAX certification)
IEEE 802.16e (Mobile) Broadband Wireless Access
IEEE 802.17 Resilient packet ring
IEEE 802.18 Radio Regulatory TAG
IEEE 802.19 Coexistence TAG
IEEE 802.20 Mobile Broadband Wireless Access
IEEE 802.21 Media Independent Handoff
IEEE 802.22 Wireless Regional Area Network
2.2 Các phương thức truyền tin dựa theo chuẩn Ethenet
2.2.1 Họ giao thức TCP/IP
TCP/IP (Transmission Control Protocol/Internet Protocol) là kết quả nghiên cứu vàtriển giao thức trong mạng chuyển mạch gói thử nghiệm mang tên Arpanet doARPA (Advanced Reseach Projecs Agency ) Khái niệm TCP/IP dùng để chỉ cảmột lớp tập giao thức và dịch vụ truyền thông được công nhận thành chuẩn choInternet Cho tới nay TCP/IP đã xâm nhập tới rất nhiều phạm vi ứng dụng khácnhau, trong đó có các máy tính cục bộ và mạng truyền thông công nghiệp
TCP/IP bao gồm 5 lớp độc lập : lớp ứng dụng, lớp vận chuyển, lớp Internet, lớptruy nhập và mạng vật lí
Lớp ứng dụng:
Lớp ứng dụng thực hiện các chức năng hỗ trợ cần thiết cho nhiều ứng dụng khácnhau : SMTP ( Simple Mail Transfer Protocol ) cho chuyển thư điện tứ, FTP ( FileTransfer Protocol ) cho chuyển giao file, 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, SNMP (Simple Network Management Protocol) giao thức quản trị mạngcung cấp những công cụ quản trị mạng, DNS(Domain Name Server) là dịch vụ tênmiền cho phép nhận ra máy tính từ một tên miền thay cho chuỗi địa chỉ Internet.Lớp ứ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ùngcổ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ứabên trong gói dữ liệu Những cổng được đánh bằng số và những ứng dụng chuẩnthườ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 21cho điều khiển, giao thức SMTP dùng cổng 25…
Trang 17Hình 2.4: Kiến trúc giao thức TCP/IP
Lớp vận chuyển:
Lớp vận chuyển có chức năng cung cấp các dịch vụ cho việc thực hiện vận chuyển
dữ liệu giữa các chương trình ứng dụng một cách tin cậy hoàn toàn TCP là giaothức tiêu biểu nhất, phổ biến nhất phục vụ việc thực hiện chức năng nói trên TCP
hỗ trợ việc trao đổi dữ liệu trên cơ sở dịch vụ có nối Khi dữ liệu nhận, giao thứcTCP lấy những gói được gửi từ lớp Internet và đặt chúng theo thứ tự của nó, bởi vìnhững gói có thể đến vị trí đích theo phương thức không theo một thứ tự, và kiểmtra nếu nội dung của gói nhận có nguyên vẹn hay không và gửi tín hiệuAcknowledge – chấp nhận – tới bên gửi, cho biết gói dữ liệu đã đến đích an toàn.Nếu không có tín hiệu Acknowledge của bên nhận (có nghĩa là dữ liệu chưa đếnđích hoặc có lỗi ), bên truyền sẽ truyền lại gói dữ liệu bị mất
Bên cạnh TCP, một giao thức khác cũng được sử dụng cho lớp vận chuyển đó làUDP (User Data Protocol ) Khác với TCP, UDP cung cấp dịch vụ không hướng kếtnối cho việc gửi dữ liệu mà không đảm bảo tuyệt đối đến đích, không đảm bảo trình
tự đến đích của các gói dữ liệu
Như vậy TCP được coi là một giao thức tin cậy, trong khi UDP được coi là giaothức không đáng tin cậy Tuy nhiên UDP lại đơn giản hơn và có hiệu suất nhanhhơn TCP, chỉ đòi hỏi một cơ chế xử lí giao thức tối thiểu và thường được dùng làm
cơ sở thực hiện các giao thức cao cấp theo yêu cầu riêng của người sử dụng, ví dụtiêu biểu là giao thức SNMP
Cả hai giao thức UDP và TCP sẽ lấy dữ liệu từ lớp ứng dụng và thêm header vàokhi truyền dữ liệu Khi nhận dữ liệu, header sẽ bị gỡ trước khi gửi dữ liệu đến cổngthích hợp Trong header này có một vài thông tin điều khiển liên quan đến số cổng
Trang 18nguồn, số cổng tới đích, chuỗi số ( để hệ thống sắp xếp lại dữ liệu và hệ thốngAcknowledge sử dụng trong TCP ) và Checksum (dùng để tính toán xem dữ liệuđến đích có bị lỗi hay không )
Header của UDP có 8 byte trong khi header của TCP có 20 hoặc 24 byte (tùy theokiểu byte lựa chọn )
Dữ liệu ở lớp này sẽ được chuyển tới lớp Internet nếu truyền dữ liệu hoặc được gửi
từ lớp Internet tới nếu nhận dữ liệu
Với giao thức IP, lớp Internet được sử dụng có nhiệm vụ thêm header tới gói dữ liệuđược nhận từ lớp vận chuyển, là một loại dữ liệu điều khiển khác, nó sẽ thêm địachỉ IP nguồn và địa chỉ IP đích – có nghĩa là địa chỉ IP của bên gửi dữ liệu và bênnhận dữ liệu
Mỗi datagram của IP có kích thước lớn nhất là 65.535 byte, bao gồm cả header mà
có thể dùng 20 hoặc 24 byte, phụ thuộc vào sự lựa chọn trong chương trình sử dụng.Như vậy datagram của IP có thể mang 65.515 byte hoặc 65.511 byte, giao thức IP
sẽ cắt gói xuống thành nhiều datagram nếu thấy cần thiết
Đối với mạng Ethernet, dữ liệu có thể lên tới 1500 byte, nghĩa là kích thước lớnnhất trường dữ liệu của frame được gửi lên mạng MTU ( Maximum Transfer Unit )
có giá trị 1500 byte Như vậy hệ điều hành tự động cấu hình giao thức IP để tạo radatagram của IP có chiều dài 1500 byte mà không phải là 65.535 byte
Hình dưới minh họa datagram được tạo ra từ lớp Internet bằng giao thức IP Nhưchúng ta đã đề cập header được giao thức IP thêm vào bao gồm địa chỉ IP nguồn,địa chỉ IP đích và một vài thông tin điều khiển
Lớp truy cập mạng:
Lớp truy cập mạng liên quan tới việc trao đổi dữ liệu giữa hai trạm thiết bị trongcù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
Trang 19Data TCP/IP
Header
TCP/IP Header
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ớpInternet sẽ được gửi xuống tới lớp truy nhập mạng nếu truyền dữ liệu, hoặc lớp truynhậ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
Lớp MAC (điều khiển truy nhập phương tiện truyền thông ) có nhiệm vụ lắp rápframe mà sẽ được gửi lên mạng, thêm địa chỉ MAC nguồn và địa chỉ MAC đích.Địa chỉ MAC là địa chỉ vật lí của cạc mạng Những frame mà là đích tới mạng khác
sẽ dùng địa chỉ MAC của router như là địa chỉ đích
Những lớp LLC và MAC sẽ thêm những header của chúng tới datagram mà nhậnđược từ lớp Internet Do đó, cấu trúc đầy đủ của frame được tạo ra từ hai lớp đóđược thể hiện trong hình vẽ dưới
Hình 2.5: Lớp dữ liệu trong gói liên kết
Lớp vận chuyển
Lớp Internet
Trang 20frame do lớp MAC tạo ra thành tín hiệu điện ( đối với hệ thống dây dẫn mạng bằngcable ) hoặc thành song từ trường ( đối với hệ thống mạng không dây ).
2.2.2 Cấu trúc gói tin
2.2.2.1 Cấu trúc địa chỉ IP:
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ếtvớ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 (NetworkInformation 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ạngcụ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êncũ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ó
Hình 2.6: 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 trongmạ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 địachỉ mạng lớp B với 65.534 máy cho mỗi một địa chỉ lớp B
Trang 21 Đị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 địachỉ 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ó
Hình 2.7: Mạng và mặt nạ
2.2.2.2 Cấu trúc gói tin IP
Gói tin (datagram) IP có dạng:
Ver-4 bít: chỉ version hiện hành của ip đang được dùng, nếu trường này khácvớ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ẳnghạ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ìnhthường, 1 ứng với gói tin có độ trễ thấp
Trang 221 bít tiếp theo (Throughput) chỉ thông lượng yêu cầu sử dụng để truyền góitin 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ìnhthườ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 tinnhỏ 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ít0: 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ớigó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 tintrong 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 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 ratrong 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ỗirouter
Trang 23 Padding-độ dài thay đổi: Dùng để đảm bảo phần header luôn kết thúc ở mộtmốc 32 bít.
Data: chứa thông tin lớp trên ,chiều dài thay đổi đến 64Kb
2.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àychỉ 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
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àitố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
Trang 24 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.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ếumuố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
2.3 Vi điều khiển 18F4550 và ENC28J60
2.3.1 Vi điều khiển 18F4550
2.3.1.1 Giới thiệu
PIC 18F4550 là vi điều khiển thuộc là vi điều khiển thuộc họ PIC18 do hãngMicroChip sản xuất Đây là vi điều khiển 8 bit khá mạnh, có đầy đủ tính năng củadòng PIC18, khả năng thực thi cao, tiết kiệm năng lượng, tích hợp nhiều ngoại vi,chi phí thấp Kiến trúc của PIC18F4550 tối ưu cho trình biên dịch C
Các tính năng nổi bật của PIC18F4550:
• Bộ nhớ Flash 64Kbytes, 3968 bytes SRAM, 1 Kbytes EEPROM cho phép nạpxóa 100000 Flash/1000000 EEPROM
• 35 chân I/O chia làm 4 port: PORTA, B, C, D, E
• Bộ nhân tần số PLL (x4) cho phép tần số hoạt động lên đến 48 MHz
• Module MSSP hỗ trợ chế độ SPI và I2C
• Module UART hỗ trợ RS485, RS232,USB
• Hỗ trợ nạp ICSP (In-Circuit Serial Programming) qua 2 chân
Trang 25Hình 2.8 Sơ đồ chân PIC 18F4550
2.3.1.2 Truyền thông SPI
Module MSSP của PIC18F4550 có 2 chế độ: chế độ SPI và chế độ I2C Trong đềtài này sẽ chỉ trình bày về chế độ SPI
Chế độ SPI cho phép 8 bits dữ liệu truyền và nhận đồng thời 4 chế độ SPI đều được
hỗ trợ Để có thể giao tiếp cần 4 chân:
• Serial Data Out (SDO) – RC7/RX/DT/SDO: ngõ ra dữ liệu
• Serial Data In (SDI) – RB0/AN12/INT0/FLT0/SDI/SDA: ngõ vào dữ liệu
• Serial Clock (SCK) – RB1/AN10/INT1/SCK/SCL: xung giữ nhịp của SPI
• Slave Select (SS) – RA5/AN4/SS/HLVDIN/C2OUT: đường chọn Slave cầngiao tiếp Nếu Master kéo SS xuống mức thấp thì việc giao tiếp giữa Master vàSlave sẽ xảy ra
Có 4 thanh ghi liên quan đến chế độ SPI: SSPCON1, SSPSTAT, SSPBUF, SSPSR
* SSPSR: là thanh ghi dịch, sử dụng để dịch dữ liệu vào, ra
* SSPBUF: là thanh ghi đệm có chức năng chứa giá trị nhận được và phát đi của
SPI
Trong chế độ nhận, SSPSR và SSPBUF tạo thành cặp bộ đệm nhận Khi SSPSRnhận hoàn chỉnh 1byte, nó được truyền sang SSPBUF và cờ ngắt SSPIF được bậtlên Trong chế độ truyền, việc ghi đến SSPBUF sẽ ghi đến cả SSPBUF và SSPSR
* SSPCON1: là thanh ghi điều khiển trong chế độ SPI
Trang 26Hình 2.9: Thanh ghi SSPCON1
• WCOL: bit phát hiện xung đột ghi
1 = thanh ghi SSPBUF được ghi trong khi nó vẫn đang truyền ở lệnh trước(phải được xóa bằng phần mềm)
0 = không xung đột
• SSPOV: bit chỉ định nhận tràn
• SSPEN: bit cho phép module MSSP hoạt động
1 = cho phép, 0 = cấm
• CKP: bit chọn cực tính của xung
1 = trạng thái nghỉ của xung là mức cao
0 = trạng thái nghỉ của xung là mức thấp
• SSPM3:SSPM0: bit chọn chế độ hoạt động của module MSSP
0101 = chế độ SPI Slave, xung = chân SCK, không sử dụng chân SS
0100 = chế độ SPI Slave, xung = chân SCK, chân SS sử dụng
0011 = chế độ SPI Master, xung = ngõ ra TMR2/2
0010 = chế độ SPI Master, xung = Fosc/64
0001 = chế độ SPI Master, xung = Fosc/16
0000 = chế độ SPI Master, xung = Fosc/4
* SSPSTAT: là thanh ghi trạng thái, 6 bits thấp chỉ đọc, 2 bits cao cho phép đọc/ghi
Hình 2.10: Thanh ghi SSPSTAT
• SMP: bit mẫu
Chế độ SPI Master
1 = dữ liệu ngõ vào được lấy mẫu tại thời điểm kết thúc ngõ ra dữ liệu
0 = dữ liệu ngõ vào được lấy mẫu tại thời điểm giữa ngõ ra dữ liệu
Chế độ SPI Slave
SMP phải được xóa
• CKE: bit chọn xung SPI
Trang 271 = Việc truyền xuất hiện khi có xung tác động cạnh xuống
0 = Việc truyền xuất hiện khi có xung tác động cạnh lên
• BF: bit báo bộ đệm đầy
1 = quá trình nhận hoàn tất, SSPBUF đầy
0 = quá trình nhận chưa hoàn tất, SSPBUF rỗng
* Kết nối điển hình giữa Master và Slave:
Hình 2.11: Kết nối Master và Slave
* Hoạt động:
Master có thể truyền dữ liệu bất cứ lúc nào bởi vì nó điều khiển đường xung giữnhịp SCK Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bittrong thanh ghi đệm của Master được truyền qua Slave SDO (Master) -> SDI(Slave) Đồng thời 1 bit trong thanh ghi đệm của chip Slave cũng được truyền quaMaster SDO (Slave) -> SDI (Master) Do 2 gói dữ liệu trên 2 chip được gởi qua lạiđồng thời nên quá trình truyền dữ liệu này được gọi là song công
Cực của xung giữ nhịp (CKP) là khái niệm dùng chỉ trạng thái chân SCK ở trạngthái nghỉ Ở trạng thái nghỉ (Idle) chân SCK có thể được giữ ở mức cao (CKP=1)hoặc mức thấp (CKP=0) Pha (SMP) chỉ cách mà dữ liệu được lấy mẫu theo xunggiữ nhịp Dữ liệu có thể được lấy mẫu ở cạnh lên của SCK (SMP=1) hoặc cạnhxuống (SMP=0)
Sự kết hợp giữa CKP và CKE tạo nên 4 chế độ hoạt động của SPI
* Chế độ Master:
Trang 28Hình 2.12: Dạng sóng chế độ Master
* Chế độ Slave:
Hình 2.13: Dạng sóng chế độ Slave
Trang 292.3.2 Vi điều khiển ENC28J60
2.3.2.1 Giới thiệu
− ENC28J60 là vi điều khiển hỗ trợ kết nối Ethernet cho bất kỳ vi điều khiển nào
có giao tiếp SPI ENC28J60 được thiết kế và chế tạo bởi Microchip
− Phần cứng của ENC28J60 được tích hợp trong cả hai lớp kết nối dữ liệu và lớpvật lý
− Hỗ trợ giao tiếp SPI với tốc độ tối đa đạt 20MHz
− Điện áp hoạt động của ENC28J60 từ 3.1V đến 3.6V
− Hỗ trợ công nghệ 10BASE-T
− Hỗ trợ truyền song công và bán song công
2.3.2.2 Khảo sát ENC28J60
Hình 2.14: Sơ đồ chân ENC28J60
Trang 30Hình 2.15: Sơ đồ khối ENC28J60
2.3.2.3 Giao tiếp giữa vi điều khiển với ENC28J60
Hình 2.16: Kết nối phần cứng vi điều khiển với ENC28J60
* Nguyên lý hoạt động của mạch:
• Vi điều khiển ENC28J60 được điều khiển hoàn toàn thông qua giao tiếp SPI vớiPIC18
• PIC18 đóng vai trò là Master trong giao tiếp SPI với ENC28J60
• Tương tự như kết nối mạng trên PC, PIC18 đóng vai trò là PC còn ENC28J60đóng vai trò như card mạng
• Nhận dữ liệu:
Trang 31o Tín hiệu yêu cầu từ mạng truyền qua cổng RJ45 vào ENC28J60 ENC28J60được thiết kế để giải mã tín hiệu và chuyển tín hiệu đó thành dữ liệu và lưu vào
bộ đệm thu Thông qua giao tiếp SPI, PIC18 liên tục kiểm tra bộ đệm củaENC28J60 Nếu phát hiện có dữ liệu nó sẽ đọc dữ liệu và xử lí
Gồm có 3 chân: VDD, GND là 2 chân cấp nguồn (5V) và DQ là chân để giao tiếp1-wire
Hình 2.17: Sơ đồ chân DS18B20
Mỗi thiết bị kết nối đến đường bus 1-wire là cổng 3 trạng thái hoặc cổng có cựcmáng để hở Điều này cho phép thiết bị nhả bus khi không truyền dữ liệu nữa Bus1-wire cần 1 điện trở kéo lên khoảng 4k7 Vì thế trạng thái nghỉ của bus 1-wire làmức cao
Cổng 1-wire (chân DQ) của DS18B20 là cực máng để hở Cần mắc 1 điện trở treo
có giá trị 4k7 vào chân DQ của DS18B20
Trang 32Hình 2.18: Sơ đồ kết nối với vi điều khiển
DS18B20 hoạt động ở mức điện áp 3 đến 5.5V
o Nguồn cung cấp cho DS18B20 là nguồn ngoài
Hình 2.19: DS18B20 hoạt động với nguồn ngoài
o Nguồn cung cấp cho DS18B20 từ đường dữ liệu
Hình 2.20: DS18B20 hoạt động với nguồn ký sinh
DS18B20 là cảm biến nhiệt độ chuyển trực tiếp nhiệt độ sang tín hiệu số Độ phângiải mặc định là 12 bits Để bắt đầu đo nhiệt độ và chuyển sang tín hiệu số, thìMaster phải phát lệnh Convert T [44h] Theo sau quá trình chuyển đổi, giá trị nhiệt
độ được lưu vào trong 2 bytes của thanh ghi nhiệt độ
Trang 33Hình 2.21: Thanh ghi nhiệt độ Bảng 2.2: Mối quan hệ nhiệt độ/dữ liệu
Dữ liệu nhiệt độ gồm 16 bits Trong đó:
o 4 bits thấp lưu giá trị nhiệt độ phần thập phân
o 7 bits tiếp theo lưu giá trị nhiệt độ phần nguyên
o S bit là bit dấu
S = 0 chỉ ra rằng nhiệt độ đo được là dương
S = 1 chỉ ra rằng nhiệt độ đo được là âm
Bộ nhớ của DS18B20 gồm: 8 byte SRAM và 3 byte EEPROM
o Byte 0 và 1 chứa LSB và MSB của giá trị nhiệt độ
o Byte 2 và 3: thanh ghi TH và TL
o Byte 4: thanh ghi cấu hình
o Byte 5, 6, 7: dự trữ
o Byte 8: chữa mã CRC từ byte 0 đến byte 7
Dữ liệu được ghi đến byte 2, 3 và 4 của RAM khi sử dụng lệnh Write Scratchpad[4Eh] , với LSB của byte 2 được truyền trước Để truyền TH, TL và thanh ghi cấuhình từ RAM vào EEPROM Master phải phát lệnh Copy Scratchpad [48h]