Wiznet W5100 so với Microchip ENCx24J600


8

Những ưu và nhược điểm khi sử dụng Wiznet W5100 hoặc Microchip EncX24J600 là gì?

Đó là một chút phức tạp để giải thích.

Câu hỏi của tôi là về hiệu suất của ngăn xếp Microchip TCP so với lõi TCP / IP của Wiznet trên chip. Cũng về chi phí ($$).

Ví dụ: Với Wiznet, vi điều khiển sẽ có ít xử lý hơn, do đó giải phóng vi điều khiển để thực hiện các tác vụ khác. Nhưng tôi nghĩ rằng điều này sẽ phụ thuộc vào lớp bạn đang làm việc.

Với ngăn xếp Microchip TCP, có lẽ tôi có những hạn chế đối với các thiết bị ngoại vi mà tôi có thể kiểm soát. Có lẽ tôi sẽ phải sử dụng một vi điều khiển thứ hai.

Vì vậy, tôi hy vọng tôi đã giải thích tốt hơn cho bạn để giúp tôi trong sự lựa chọn tốt nhất.


Tôi đã sẵn sàng nghiên cứu các giải pháp để làm một cái gì đó như thế này. Cảm ơn bạn đã hỏi thăm.
Kortuk

1
Bất kỳ lý do đặc biệt cho ENCX24J600? ENC28J60 phổ biến hơn nhiều.
Kevin Vermeer

1
@reemrevnivek Tôi cần giao tiếp với tốc độ 100 Mbps.
Daniel Grillo

1
W5100 được liên kết với một liên kết tốc độ đơn hướng, với một giao thức rất kém hiệu quả (nó gửi một địa chỉ 16 bit với mỗi iirc byte dữ liệu). Vì vậy, bạn có like (liên kết SPI) / 3 như tốc độ tối đa song công hiệu quả. Xem thêm câu trả lời đầy đủ của tôi dưới đây
Marco van de Voort

Câu trả lời:


3

W5100 có lõi TCP / IP trên chip. Với các thiết bị Microchip ENC, người dùng phải tự thực hiện ngăn xếp TCP / IP, trên MCU được giao tiếp với nó. Điều này khá dễ dàng với một PIC phù hợp, vì các ngăn xếp TCP / IP miễn phí có sẵn từ Microchip.

W5100 có lợi thế là nó có thể được sử dụng với hầu như bất kỳ MCU nào, nhưng cần một thiết bị khá mạnh để chạy ngăn xếp TCP / IP nếu sử dụng chip ENC.

Tất nhiên, một tùy chọn khác là sử dụng MCU với MAC và PHY tích hợp. Microchip tạo ra một số cái đẹp, và có cả các biến thể ARM với chúng.


Đó là phạm vi kiến ​​thức của tôi.
Kortuk

2

Công ty tôi làm việc sử dụng PIC18F97J60. Đó là bộ vi xử lý 8 bit có MAC và PHY tích hợp rất giống với ENC24J60. Nếu bạn đang dự định sử dụng bộ vi xử lý PIC thì bạn có thể sử dụng ngăn xếp TCP / IP của Microchip. Ngăn xếp này cung cấp mọi thứ ngay đến lớp ứng dụng. Nếu bạn đang sử dụng bộ xử lý không phải Microchip, tôi nghĩ bạn chỉ có thể sử dụng trình điều khiển ENC24J60. Điều đó nói rằng có vẻ như Wiznet tích hợp các lớp vận chuyển vào phần cứng chứ không chỉ MAC và PHY. Tuy nhiên, họ để nó cho nhà phát triển triển khai các lớp ứng dụng như Telnet, FTP và HTTP.


Một điều cần lưu ý, PIC18F97J60 dường như chỉ được đảm bảo cho 100 chu kỳ ghi flash, vì vậy có thể là một vấn đề cần phát triển. ww1.microchip.com/doads/en/DeviceDoc/39762e.pdf (
trg

Số chu kỳ ghi tối thiểu là 100. Điển hình là 1k. Tôi chưa bao giờ có vấn đề.
mjh2007

Con số đó có thể sẽ vượt qua toàn bộ phạm vi nhiệt độ, vì vậy độ bền ở nhiệt độ bình thường dường như không phải là vấn đề.
đồ điện tử


1

Tôi biết nó đã cũ, nhưng tôi tình cờ đã làm điều này với một dspice năm ngoái, vì vậy tôi sẽ tóm tắt vì lợi ích của người khác.

Đầu tiên, tôi sẽ không sử dụng W5100, nhưng anh trai của nó là W5500 , về cơ bản là bản sửa đổi và sử dụng SPI tốt hơn nhiều. Tôi cũng sẽ xem xét chuyển sang một phần có DMA, đặc biệt nếu bạn chỉ muốn làm cho nó thành UDP.

Trong cả hai trường hợp, bạn có thể sẽ sử dụng ngăn xếp Microchip MLA TCP / IP, Wiznet cung cấp các bản vá cho việc này.

Thật không may, tất cả các biến thể ngăn xếp TCP / IP của Microchip dường như thực hiện chặn giao tiếp qua SPI (không có DMA, không có chế độ bộ đệm nâng cao) . Tôi đã cố gắng cắt nó xuống chỉ còn UDP và cắt toàn bộ phần vi mạch (sử dụng trình điều khiển cơ bản wiznet trực tiếp và viết lại trong quá trình này).

Tôi cũng đồng ý với MJH rằng PIC18F97J60 kích hoạt DMA là lựa chọn tốt hơn so với PIC rẻ hơn với ENC (trừ khi số lượng của bạn thực sự cao), nhưng tôi hơi thất vọng vì TCP / IP không thực sự sử dụng các lợi ích của J60, gắn bó đến mẫu số chung thấp nhất.

Ưu điểm của việc sử dụng phần IP thay vì phần ethernet là bạn có thể giới hạn ổ cắm ở một cổng nhất định và bạn sẽ không phải chuyển bất kỳ lưu lượng không liên quan nào qua liên kết SPI của mình. W5500 có 4KB trên mỗi ổ cắm và tôi sử dụng một ổ cắm riêng để nhận và gửi để tối đa hóa việc sử dụng bộ đệm.

Ngăn xếp UDP hiện tại của tôi chỉ phản ứng trên ngắt wiznet và không tải xuống dữ liệu tải trọng mà nó không cần. Tôi sử dụng nó UDP, dựa trên gói (không có luồng) và sử dụng các chương trình phát sóng trên các cổng để gửi (để tránh phải lưu trữ dữ liệu MAC cho các mục đích ARP, mặc dù nhìn lại có lẽ không phải là sự tối ưu hóa tốt nhất).

Trên 60MIPS, một roundtrip (nhận một gói nhỏ, trả lời với một gói nhỏ) mất khoảng 100-120us, trong đó khoảng 10-12us là thời gian CPU trong ba khối khác nhau (nhận trước (3-5us), nhận bài và đặt trước (5-7 chúng tôi tùy thuộc) và gửi bài (2us). Cứ sau 2kb tôi phải thực hiện một số bảo trì đó là khoảng 40us thời gian treo tường và 5us thời gian CPU.

Các lệnh ngắn được thực hiện bằng cách sử dụng bộ đệm nâng cao. Lâu hơn được thực hiện bằng cách sử dụng DMA (trên dspice, DMA cần 2 bit thời gian giữa các byte (hoặc từ ở chế độ 16 bit), bộ đệm nâng cao thì không).

Bộ này chưa (chưa) mở, nhưng nếu sb cần con trỏ, vui lòng trả lời trong các bình luận. Tôi dự định chuyển stack sang pic32 (mk) trong năm tới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.