Điều khiển thiết bị qua internet.

thaitu_mechatro

Trứng gà
Chào các members và ban quản trị forum !
Trước tiên mình xin gửi lời cảm ơn đến tất cả vì những bài viết và tutors rất , bản thân mình đã học được rất nhiều từ đây .
Hôm nay mình xin mở một thread đầu tiên về vấn đề giao tiếp với Ethernet , mình nghĩ đề tài này khá thú vị ... và có nhiều bạn quan tâm , và đa số chúng ta đều sở hữu một đường truyền mạnh rồi nên việc thực hành cũng khá dễ . Mình thấy có nhiều đề tài tốt nghiệp về vấn đề này rồi , và tài liệu cũng có một ít ... nhưng cũng theo tiêu chí của forum " khởi đầ luôn khó khăn " nên mình mạo muội nhờ các bạn nào đã có kinh nghiệm là cái này rồi thì hường dẫn những bước đầu cho người đi sau , hoặc những ai quan tâm có thể thảo luận ở đây ...
Mình xin bắt đầu :
Trước tiên cho mình hỏi , phần MAC và PHY trong ENC28J60 có tác dụng gì ?
Thứ hai , TCP/IP Stack bản chất nó là gì ? nó có tác dụng gì ? Mình đã đọc nhiều tài liệu tiếng Anh và cả luận văn nhưng vẫn không hiểu ...
Cám ơn các bạn đã quan tâm !
 
cảm ơn bạn. về phần Ethernet thực ra mình cũng chưa tìm hiểu nhiều. mình chỉ có một số góp ý cho bạn thôi. để làm ethernet thì trước tiên bạn nên đọc mô hình TCP/IP ngoài mô hình TCP/IP thì nó có thêm một số mô hình khác. nhưng mô hình TCP/IP được sử dụng rộng rãi nhất.
Cách thức mà dữ liệu được gửi qua giao thức IP được tiến hành như sau:
- Khi nhận được 1 segment dữ liệu (từ giao thức lớp trên là TCP hay UDP) cần gửi đến đích nào đó, địa chỉ đích này phải được xác định bằng địa chỉ IP (tức là địa chỉ mạng hay địa chỉ luận lý). Lớp giao thức IP sẽ gắn thêm vào đầu segment dữ liệu một header IP để tạo thành gói IP hoàn chỉnh. Trong header IP này có chứa 2 thông tin quan trọng, đó là địa chỉ host gửi (source IP address) và địa chỉ host nhận (destination IP address). Địa chỉ source đương nhiên là địa chỉ của bản thân nó, còn địa chỉ đích phải được cung cấp cho lớp IP khi muốn gửi dữ liệu qua giao thức này.

- Gói tin IP này sau đó được chuyển đến lớp giao thức ethernet để thêm phần header ethernet vào và gửi đi.

- Nhưng như ở phần trước ta đã biết, giao thức ethernet lại gửi các frame dữ liệu đi dựa vào 1 loại địa chỉ khác là địa chỉ MAC (hay còn gọi là địa chỉ vật lý). Tại sao lại cần đến 2 địa chỉ như vậy? Lý do là địa chỉ vật lý chỉ có giá trị trong phạm vi mạng LAN, nó sẽ không thể giúp xác định vị trí host ở bên ngoài phạm vi mạng LAN. Khi gửi dữ liệu ra ngoài mạng LAN, các router sẽ chuyển dữ liệu đi dựa và địa chỉ IP.

- Như vậy trong phần địa chỉ MAC nguồn và địa chỉ MAC đích trong header của frame ehternet, ta sẽ điền các địa chỉ nào? Đối với địa chỉ MAC nguồn, đương nhiên ta sẽ điền địa chỉ MAC của chính ENC28J60 đã được xác lập. Nhưng còn địa chỉ MAC đích, sẽ có 2 trường hợp xảy ra:
+ Nếu host đích nằm trong cùng 1 mạng LAN với chúng ta, ta sẽ điền địa chỉ MAC đích là địa chỉ tương ứng của host đích. Frame dữ liệu sẽ được gửi thẳng đến đích.
+ Nếu host đích nằm bên ngoài mạng LAN, rõ ràng ta không thể gửi dữ liệu trực tiếp đến host đích mà phải thông qua gateway, khi đó địa chỉ MAC đích phải là địa chỉ gateway. (Để dễ hiểu, cứ hình dung ta gắn mạch này tại nhà, sau modem ADSL cùng với 1 máy tính để bàn tại nhà, nếu mạch của chúng ta cần gửi dữ liệu đến máy tính cũng ở tại nhà, trong cùng mạng LAN, nó sẽ gửi trực tiếp theo địa chỉ MAC của máy tính đó. Nhưng nếu cần gửi dũ liệu đến 1 máy tính bên ngoài, nằm trên mạng Internet, khi đó nó không thể gửi frame dữ liệu thẳng đến máy tính kia mà nó phải gửi qua gateway, trong trường hợp này chính là modem ADSL. Như vậy lúc đó địa chỉ MAC đích phải là địa chỉ MAC của gateway).

- Vẫn còn một vấn đề nữa mà ta phải giải quyết. Đó là trong cả hai trường hợp trên, dù là cần gửi cho gateway hay thẳng đến host đích, thì đến đây, ta mới chỉ biết địa chỉ IP của host đích (hay của gateway) mà không biết địa chỉ MAC tương ứng. Vậy nảy sinh một vấn đề là làm sao biết được địa chỉ MAC của một host khi biết địa chỉ IP?


Đến đây, chính là phát sinh vai trò của giao thức phân giải địa chỉ (APR – Address Resolution Protocol). Vai trò của giao thức này là tìm ra địa chỉ MAC khi biết địa chỉ IP của 1 host.
Hoạt động của giao thức ARP:

- Cách thức làm việc của giao thức ARP thực ra khá đơn giản. Nhiệm vụ của nó là khi giao thức IP hỏi nó: “Host có địa chỉ IP là a.b.c.d thì địa chỉ MAC là bao nhiêu?” thì nó phải trả lời ngay: “Địa chỉ MAC của nó là XX:XX:XX:XX:XX:XX!”. Chức năng này trong project của chúng ta sẽ được cung cấp bởi hàm “arpIpOut” (xem lại lưu đồ dữ liệu vào ra). Tức là trước khi giao thức IP chuyển dữ liệu xuống cho giao thức ethernet, nó sẽ gọi hàm “arpIpOut” để phân giải địa chỉ MAC cho host đích.

- Tuy nhiên chỉ chừng đó chưa đủ giải thích cho hoạt động của ARP. Câu hỏi tiếp theo sẽ là: Vậy ARP lấy thông tin ở đâu để trả lời cho câu hỏi trên?

- Cách thức nó giải quyết vấn đề cũng đơn giản không kém: giao thức ARP duy trì một bảng gọi là ARP cache gồm 2 cột, một cột ghi địa chỉ IP, một cột ghi địa chỉ MAC tương ứng với địa chỉ IP đó. Mỗi khi được hỏi bởi giao thức IP, nó sẽ tra bảng này để tìm câu trả lời.

- Vậy đến đây, các bạn phải nảy ra ngay 1 câu hỏi kế tiếp: vậy những gì chứa trong bảng ARP cache từ đâu mà có, khi mới khởi động hệ thống, bảng này đương nhiên sẽ trống trơn. Và chuyện gì sẽ xảy ra khi giao thức ARP được hỏi về 1 địa chỉ IP, mà khi nó tra trong bảng ARP thì không thấy?

- Cách giải quyết của giao thức ARP như sau: khi được hỏi về một địa chỉ IP a.b.c.d nào đó mà không có sẵn trong bảng ARP cache, nó sẽ lập tức “la lớn” trong mạng LAN: “Ai là người có địa chỉ IP là a.b.c.d?” Các máy tính trong mạng LAN đều nghe được câu hỏi này, và lẽ dĩ nhiên chỉ có đúng máy tính có địa chỉ IP a.b.c.d sẽ trả lời: “Là tôi đây, tôi có địa chỉ MAC là XX:XX:XX:XX:XX:XX!”. Vậy giao thức ARP sẽ lập tức thêm cặp địa chỉ IP a.b.c.d và địa chỉ MAC XX:XX:XX:XX:XX:XX vào trong bảng ARP cache và trả lời lại cho giao thức IP: “Địa chỉ MAC của nó là XX:XX:XX:XX:XX:XX!”.

- Nghe có vẻ buồn cười nhưng trong thực tế, trên máy tính của chúng ta, mọi việc diễn ra đúng như vậy, việc “la lớn” của ARP được thực hiện bằng cách nó gửi đi một gói tin có tên gọi là ARP request dưới dạng broadcast, tức là gửi đến mọi máy trong mạng LAN, địa chỉ MAC đích của gói broadcast sẽ là FF:FF:FF:FF:FF:FF. Trong gói ARP request có chứa địa chỉ IP mà nó cần tìm. Tất cả các máy tính trong mạng LAN sẽ nhận được gói tin này, và máy tính có địa chỉ IP trên sẽ trả lời bằng bản tin ARP reply, trong bản tin này sẽ có địa chỉ MAC của nó.

- Đó là cách thứ nhất để giao thức ARP điền thông tin vào bảng ARP cache. Còn có 1 cách nữa khá đơn giản giúp nó điền đầy thông tin vào bảng ARP cache: đó là mỗi khi có 1 gói tin IP đến, lẽ dĩ nhiên là phía host đã gửi gói tin này đã điền đầy đủ thông tin địa chỉ MAC (chứa trong header ehternet) và địa chỉ IP của nó (chứa trong header IP). Như vậy giao thức ARP sẽ lấy cặp địa chỉ này và cập nhật vào bảng ARP cache.

- Điều cuối cùng cần lưu ‎ý về bảng ARP cache này là các dòng (tức cặp địa chỉ IP – MAC) chứa trong nó không được duy trì mãi mãi mà có 1 thời gian timeout, quá thời gian này mà không có thông tin cập nhật cho cặp địa chỉ đó thì nó sẽ bị xóa khỏi ARP cache, và nếu lỡ giao thức IP cần gửi dữ liệu cho địa chỉ IP đã bị xóa thì ARP sẽ đi hỏi lại về địa chỉ IP đó.

Note: để xem được bảng arp cache trên máy tính của mình, các bạn có thể mở cửa sổ command (vào Start->Run->gõ cmd, nhấn Enter), sau đó gõ lệnh "arp -a".


bài viết được lấy từ nttam79 bên trang dientuvietnam.net
 

thaitu_mechatro

Trứng gà
cảm ơn bạn. về phần Ethernet thực ra mình cũng chưa tìm hiểu nhiều. mình chỉ có một số góp ý cho bạn thôi. để làm ethernet thì trước tiên bạn nên đọc mô hình TCP/IP ngoài mô hình TCP/IP thì nó có thêm một số mô hình khác. nhưng mô hình TCP/IP được sử dụng rộng rãi nhất.
Cách thức mà dữ liệu được gửi qua giao thức IP được tiến hành như sau:
- Khi nhận được 1 segment dữ liệu (từ giao thức lớp trên là TCP hay UDP) cần gửi đến đích nào đó, địa chỉ đích này phải được xác định bằng địa chỉ IP (tức là địa chỉ mạng hay địa chỉ luận lý). Lớp giao thức IP sẽ gắn thêm vào đầu segment dữ liệu một header IP để tạo thành gói IP hoàn chỉnh. Trong header IP này có chứa 2 thông tin quan trọng, đó là địa chỉ host gửi (source IP address) và địa chỉ host nhận (destination IP address). Địa chỉ source đương nhiên là địa chỉ của bản thân nó, còn địa chỉ đích phải được cung cấp cho lớp IP khi muốn gửi dữ liệu qua giao thức này.

- Gói tin IP này sau đó được chuyển đến lớp giao thức ethernet để thêm phần header ethernet vào và gửi đi.

- Nhưng như ở phần trước ta đã biết, giao thức ethernet lại gửi các frame dữ liệu đi dựa vào 1 loại địa chỉ khác là địa chỉ MAC (hay còn gọi là địa chỉ vật lý). Tại sao lại cần đến 2 địa chỉ như vậy? Lý do là địa chỉ vật lý chỉ có giá trị trong phạm vi mạng LAN, nó sẽ không thể giúp xác định vị trí host ở bên ngoài phạm vi mạng LAN. Khi gửi dữ liệu ra ngoài mạng LAN, các router sẽ chuyển dữ liệu đi dựa và địa chỉ IP.

- Như vậy trong phần địa chỉ MAC nguồn và địa chỉ MAC đích trong header của frame ehternet, ta sẽ điền các địa chỉ nào? Đối với địa chỉ MAC nguồn, đương nhiên ta sẽ điền địa chỉ MAC của chính ENC28J60 đã được xác lập. Nhưng còn địa chỉ MAC đích, sẽ có 2 trường hợp xảy ra:
+ Nếu host đích nằm trong cùng 1 mạng LAN với chúng ta, ta sẽ điền địa chỉ MAC đích là địa chỉ tương ứng của host đích. Frame dữ liệu sẽ được gửi thẳng đến đích.
+ Nếu host đích nằm bên ngoài mạng LAN, rõ ràng ta không thể gửi dữ liệu trực tiếp đến host đích mà phải thông qua gateway, khi đó địa chỉ MAC đích phải là địa chỉ gateway. (Để dễ hiểu, cứ hình dung ta gắn mạch này tại nhà, sau modem ADSL cùng với 1 máy tính để bàn tại nhà, nếu mạch của chúng ta cần gửi dữ liệu đến máy tính cũng ở tại nhà, trong cùng mạng LAN, nó sẽ gửi trực tiếp theo địa chỉ MAC của máy tính đó. Nhưng nếu cần gửi dũ liệu đến 1 máy tính bên ngoài, nằm trên mạng Internet, khi đó nó không thể gửi frame dữ liệu thẳng đến máy tính kia mà nó phải gửi qua gateway, trong trường hợp này chính là modem ADSL. Như vậy lúc đó địa chỉ MAC đích phải là địa chỉ MAC của gateway).

- Vẫn còn một vấn đề nữa mà ta phải giải quyết. Đó là trong cả hai trường hợp trên, dù là cần gửi cho gateway hay thẳng đến host đích, thì đến đây, ta mới chỉ biết địa chỉ IP của host đích (hay của gateway) mà không biết địa chỉ MAC tương ứng. Vậy nảy sinh một vấn đề là làm sao biết được địa chỉ MAC của một host khi biết địa chỉ IP?


Đến đây, chính là phát sinh vai trò của giao thức phân giải địa chỉ (APR – Address Resolution Protocol). Vai trò của giao thức này là tìm ra địa chỉ MAC khi biết địa chỉ IP của 1 host.
Hoạt động của giao thức ARP:

- Cách thức làm việc của giao thức ARP thực ra khá đơn giản. Nhiệm vụ của nó là khi giao thức IP hỏi nó: “Host có địa chỉ IP là a.b.c.d thì địa chỉ MAC là bao nhiêu?” thì nó phải trả lời ngay: “Địa chỉ MAC của nó là XX:XX:XX:XX:XX:XX!”. Chức năng này trong project của chúng ta sẽ được cung cấp bởi hàm “arpIpOut” (xem lại lưu đồ dữ liệu vào ra). Tức là trước khi giao thức IP chuyển dữ liệu xuống cho giao thức ethernet, nó sẽ gọi hàm “arpIpOut” để phân giải địa chỉ MAC cho host đích.

- Tuy nhiên chỉ chừng đó chưa đủ giải thích cho hoạt động của ARP. Câu hỏi tiếp theo sẽ là: Vậy ARP lấy thông tin ở đâu để trả lời cho câu hỏi trên?

- Cách thức nó giải quyết vấn đề cũng đơn giản không kém: giao thức ARP duy trì một bảng gọi là ARP cache gồm 2 cột, một cột ghi địa chỉ IP, một cột ghi địa chỉ MAC tương ứng với địa chỉ IP đó. Mỗi khi được hỏi bởi giao thức IP, nó sẽ tra bảng này để tìm câu trả lời.

- Vậy đến đây, các bạn phải nảy ra ngay 1 câu hỏi kế tiếp: vậy những gì chứa trong bảng ARP cache từ đâu mà có, khi mới khởi động hệ thống, bảng này đương nhiên sẽ trống trơn. Và chuyện gì sẽ xảy ra khi giao thức ARP được hỏi về 1 địa chỉ IP, mà khi nó tra trong bảng ARP thì không thấy?

- Cách giải quyết của giao thức ARP như sau: khi được hỏi về một địa chỉ IP a.b.c.d nào đó mà không có sẵn trong bảng ARP cache, nó sẽ lập tức “la lớn” trong mạng LAN: “Ai là người có địa chỉ IP là a.b.c.d?” Các máy tính trong mạng LAN đều nghe được câu hỏi này, và lẽ dĩ nhiên chỉ có đúng máy tính có địa chỉ IP a.b.c.d sẽ trả lời: “Là tôi đây, tôi có địa chỉ MAC là XX:XX:XX:XX:XX:XX!”. Vậy giao thức ARP sẽ lập tức thêm cặp địa chỉ IP a.b.c.d và địa chỉ MAC XX:XX:XX:XX:XX:XX vào trong bảng ARP cache và trả lời lại cho giao thức IP: “Địa chỉ MAC của nó là XX:XX:XX:XX:XX:XX!”.

- Nghe có vẻ buồn cười nhưng trong thực tế, trên máy tính của chúng ta, mọi việc diễn ra đúng như vậy, việc “la lớn” của ARP được thực hiện bằng cách nó gửi đi một gói tin có tên gọi là ARP request dưới dạng broadcast, tức là gửi đến mọi máy trong mạng LAN, địa chỉ MAC đích của gói broadcast sẽ là FF:FF:FF:FF:FF:FF. Trong gói ARP request có chứa địa chỉ IP mà nó cần tìm. Tất cả các máy tính trong mạng LAN sẽ nhận được gói tin này, và máy tính có địa chỉ IP trên sẽ trả lời bằng bản tin ARP reply, trong bản tin này sẽ có địa chỉ MAC của nó.

- Đó là cách thứ nhất để giao thức ARP điền thông tin vào bảng ARP cache. Còn có 1 cách nữa khá đơn giản giúp nó điền đầy thông tin vào bảng ARP cache: đó là mỗi khi có 1 gói tin IP đến, lẽ dĩ nhiên là phía host đã gửi gói tin này đã điền đầy đủ thông tin địa chỉ MAC (chứa trong header ehternet) và địa chỉ IP của nó (chứa trong header IP). Như vậy giao thức ARP sẽ lấy cặp địa chỉ này và cập nhật vào bảng ARP cache.

- Điều cuối cùng cần lưu ‎ý về bảng ARP cache này là các dòng (tức cặp địa chỉ IP – MAC) chứa trong nó không được duy trì mãi mãi mà có 1 thời gian timeout, quá thời gian này mà không có thông tin cập nhật cho cặp địa chỉ đó thì nó sẽ bị xóa khỏi ARP cache, và nếu lỡ giao thức IP cần gửi dữ liệu cho địa chỉ IP đã bị xóa thì ARP sẽ đi hỏi lại về địa chỉ IP đó.

Note: để xem được bảng arp cache trên máy tính của mình, các bạn có thể mở cửa sổ command (vào Start->Run->gõ cmd, nhấn Enter), sau đó gõ lệnh "arp -a".


bài viết được lấy từ nttam79 bên trang dientuvietnam.net
Cảm ơn bạn , nhưng mình học cơ điện tử , mình chỉ ứng dụng những công nghệ trên thôi chứ không đi sâu tìm hiểu , những khái niệm bạn đưa ra ở trên ( gói tin , lớp giao thức , APR ... ) nghe lạ quá , mình không hiểu , bạn có thể đơn giản hoá tí giùm mình không ... mình chỉ cần điều khiển được một thiết bị ( vd : con led ) kết nối với con PIC qua ethernet , rồi đọc trạng thái của một thiết bị , cũng kêt nối với PIC ngược về thôi ...
Bạn có thể giải thích mà không sử dụng những khái niệm bên điện tử viễn thông mà theo cách bạn hiểu vấn đề giùm mình ???
Casm ơn bạn nhiều !
 
nếu vậy thì thật sự là khó đó bạn. nếu bạn muốn truyền giữa nhiều vi điều khiển với nhau mà không thông qua mạng thì được chẳng hạn như bạn chỉ cần một cai huc, hay swicth thì được không cần phải sử dụng giao thức TCP/IP. vì các thiết bị này làm việc theo lớp vật lý. bạn chỉ cần dùng ngay trực tiếp địa chỉ MAC để truyền thì địa chỉ MAC này sẽ quy định địa chỉ đích và địa chỉ nguồn. còn bạn dùng qua mạng Ethernet thì không còn cách nào khác là phải học giao thức để truyền trên nó rồi. nếu không hiểu thì bạn sẽ không làm được nó vì giao thức mạng Ethernet là rất lớn và kho sử dụng. những từ ngữ trên chính là thuật ngữ chuyên ngành của nó rồi nên mình cũng rất khó có thể giải thích rõ hơn nữa. ở đây mình chỉ đưa ra một số khái niệm thôi.
gói tin: tức là khung dữ liệu mà bạn muốn truyền đi bao gồm tất cả, kể cả địa chỉ đích đến và địa chỉ nguồn. (người ta còn gọi header và data đó.
lớp giao thức: tức là theo sự phân lớp của mô hình. thì Ethernet là mô hình có 7 lớp. trong đó có 2 lớp vật lý và 5 lớp người dùng. thường 5 lớp này sẽ được người dùng sử dụng như các phần mềm để thực hiện công việc sinh ra các khung dữ liệu và cách mã hoá ứng dụng của họ. còn 2 lớp vật lý dùng để truyền tải những khung dữ liệu đó đi. thông thường ta chỉ quan tâm 2 lớp dưới này thôi còn những lớp trên ta không quan tâm. giả sử bạn muốn truyền một khung dữ liệu ABCDEF thì các lớp trên có nhiệm vụ tạo ra khung dữ liệu này. còn 2 lớp dưới có tác dụng truyền khung này đi mà thôi. thì 2 lớp dưới này bao gồm lớp IP và lớp vật lý trong đó lớp IP là lớp 2 cao hơn lớp vật lý là lớp 1.
ARP: chẳng qua là một cái bảng để tra xem địa chỉ IP này thuộc địa chỉ MAC nào thôi.
 

thaitu_mechatro

Trứng gà
Bạn có thể mô tả một quá trình từ khi máy tính truy cập vào web được nhúng trong MCU đến khi MCU nhận được command hoặc data từ computer dùm mình không ?
 
Chào các members và ban quản trị forum !
Trước tiên mình xin gửi lời cảm ơn đến tất cả vì những bài viết và tutors rất , bản thân mình đã học được rất nhiều từ đây .
Hôm nay mình xin mở một thread đầu tiên về vấn đề giao tiếp với Ethernet , mình nghĩ đề tài này khá thú vị ... và có nhiều bạn quan tâm , và đa số chúng ta đều sở hữu một đường truyền mạnh rồi nên việc thực hành cũng khá dễ . Mình thấy có nhiều đề tài tốt nghiệp về vấn đề này rồi , và tài liệu cũng có một ít ... nhưng cũng theo tiêu chí của forum " khởi đầ luôn khó khăn " nên mình mạo muội nhờ các bạn nào đã có kinh nghiệm là cái này rồi thì hường dẫn những bước đầu cho người đi sau , hoặc những ai quan tâm có thể thảo luận ở đây ...
Mình xin bắt đầu :
Trước tiên cho mình hỏi , phần MAC và PHY trong ENC28J60 có tác dụng gì ?
Thứ hai , TCP/IP Stack bản chất nó là gì ? nó có tác dụng gì ? Mình đã đọc nhiều tài liệu tiếng Anh và cả luận văn nhưng vẫn không hiểu ...
Cám ơn các bạn đã quan tâm !
mình xin lý giải câu hỏi trên của bạn
thường các dòng vi xử lý hiện tại thường chỉ quản lý ethernet từ lớp MAC trở lên có nghĩ là chỉ quan tâm đến địa chỉ của các gói ethernet , nhưng ethernet khác với tín hiệu vật lý bình thường là nó truyền đi theo tín hiệu điện áp vi sai vì vậy cần phải có 1 IC Phy (vật lý ) làm nhiệm vụ đỏi tín hiệu từ TTL sang tín hiệu ethernet Manchester vi sai hoặc NRZI áp từ 2.5->1.8 và -1.8->-2.5 V , ngoài ra con vật lý còn có khả năng auto negotiation (tự động bắt tay) khi được cònig chức năng này con vật lý sẽ phát xung ra đường truyền và nhận về để đo khả năng dung lượng truyền dữ liệu và mode đường truyền ( Haft hoặc full duplex)
Các quá trình config đó ta dùng MCU giao tiếp với IC PHY wa chuẩn SPI hoặc chuẩn MII và RMII ( thường trong những dòng MCU 32 bit hiện tại ), wa các giao thức này lớp MAC và lớp vật lý có thể giao tiếp được với nhau nhờ đó ta có thể đọc trang thái đường truyền và config cầu hình trên MCU
TCP/IP stack cung cấp cho bạn các hình thức câu lệnh hàm kết nối sẵn cho người dùng không cần phải viết lại mà tiếp tục dựa trên nó mà phát triển ( các hảng thiết kế MCU khi đưa ra có dòng MCU có ethernet đều cùng cấp các gói này )
Mình đang làm ethernet về dòng Arm cortex M3 lpc1768 của NXP nếu bạn có hứng thú thì nghiên cứu
 

thaitu_mechatro

Trứng gà
mình xin lý giải câu hỏi trên của bạn
thường các dòng vi xử lý hiện tại thường chỉ quản lý ethernet từ lớp MAC trở lên có nghĩ là chỉ quan tâm đến địa chỉ của các gói ethernet , nhưng ethernet khác với tín hiệu vật lý bình thường là nó truyền đi theo tín hiệu điện áp vi sai vì vậy cần phải có 1 IC Phy (vật lý ) làm nhiệm vụ đỏi tín hiệu từ TTL sang tín hiệu ethernet Manchester vi sai hoặc NRZI áp từ 2.5->1.8 và -1.8->-2.5 V , ngoài ra con vật lý còn có khả năng auto negotiation (tự động bắt tay) khi được cònig chức năng này con vật lý sẽ phát xung ra đường truyền và nhận về để đo khả năng dung lượng truyền dữ liệu và mode đường truyền ( Haft hoặc full duplex)
Các quá trình config đó ta dùng MCU giao tiếp với IC PHY wa chuẩn SPI hoặc chuẩn MII và RMII ( thường trong những dòng MCU 32 bit hiện tại ), wa các giao thức này lớp MAC và lớp vật lý có thể giao tiếp được với nhau nhờ đó ta có thể đọc trang thái đường truyền và config cầu hình trên MCU
TCP/IP stack cung cấp cho bạn các hình thức câu lệnh hàm kết nối sẵn cho người dùng không cần phải viết lại mà tiếp tục dựa trên nó mà phát triển ( các hảng thiết kế MCU khi đưa ra có dòng MCU có ethernet đều cùng cấp các gói này )
Mình đang làm ethernet về dòng Arm cortex M3 lpc1768 của NXP nếu bạn có hứng thú thì nghiên cứu
uhm thanks bạn nhiều , mình cũng bắt đầu chuyển qua xài arm , nếu được mong bạn hướng dẫn chút . Bạn có thể cho mình xin địa chỉ email được không ...
 
E

emiuthoitrang

Guest
Mình cũng được thầy gợi ý làm về dòng Arm, nếu có thể thì các bạn có thể up tài liệu lên đây luôn được không? Để ai đang ngâm cứu Arm cũng được share hết á ^^
 
Mình cũng được thầy gợi ý làm về dòng Arm, nếu có thể thì các bạn có thể up tài liệu lên đây luôn được không? Để ai đang ngâm cứu Arm cũng được share hết á ^^
Tết này sẽ có tài liệu , mình đang bận thi bạn thông cảm :)
 

nguyenhongduc_nc

Thành Viên PIF
Em cũng đang nghiên cứu đề tài điều khiển thiết bị qua mạng dùng LPC1769 nhưng em vẫn chưa hình dung được cách truyền như thế nào
Theo như sample code của NXP về Ethernet thì VDK dùng còn IC Physical để truyền dữ liệu lên local host.
Em có tham khảo cách sử dụng ASP.net của anh LEE để up load 1 trang web lên mạng. Nhưng em vẫn chưa hiểu được cách truyền nhận giữa vi điều khiển với GUI ,giữa GUI với ethernet như thế nào,có phải dùng chức năng UART ở đây không?
Vấn đề mà em quan tâm là làm sao có thể điều khiển thiết bị qua 1 trang web đã được mình thiết kế.VD như điều khiển tắt mở LED bằng cách click chuột trên trang web mình tự tạo
Nếu muốn làm được như vậy thì em phải cần học những gì ,biết về cái gì .
Rất mong được sự giúp đỡ của mọi người.Em xin cám ơn :D
 

Tan Sy Nguyen

Cố Vấn CLB
Staff member
Trong tài liệu này có nói sơ lược về TCP/IP và cấu trúc frame truyền của nó. Đã học qua truyền số liệu và mạng thì sẽ thấy rất dễ hiểu. Nếu em thực sự quan tâm vấn đề này thì có thể liên hệ anh ở Lab của PIF. Vấn đề khá dài dòng nên không thể giải thích bằng đôi lời.
 

Attachments

Top