กรณีศึกษา Ethernet Link Down

บังเอิญได้รับเรื่อง Ethernet Link Down มาให้ลองค้นคว้า ประกอบกับว่าเคยเก็บ shortnote สั้นๆ “ประเด็นคือ Auto-Negotiation” ไว้ใน Blogspot จึงคิดว่าอยากจะเอามาขยายความไว้ที่นี่ แต่ก่อนอื่นจะขอเกริ่นนำเรื่อง Ethernet Link Down เสียก่อนนะครับว่าคืออะไร…

Ethernet Link Down ถ้าจะพูดให้เข้าใจง่ายๆก็คือ ขณะที่เราต่อสาย LAN ระหว่าง HUB และ บอร์ด Embedded หรือ PC ที่มี Ethernet Port แล้วปรากฏว่าไฟ Link up บนตัวบอร์ดดังกล่าวไม่ขึ้น แล้วพอตรวจสอบด้วยวิธีการ ping จากเครื่องอื่นมาที่บอร์ดตัวดังกล่าวอีกเช่นกัน ก็พบกับข้อความ “Request time out.” บ้างหรือ “no reply…” บ้าง นี่แหล่ะครับเป็นที่มาของอาการ Ethernet Link Down

C:\Users\emwork>ping 192.16.0.33
Pinging 192.16.0.33 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.16.0.33:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),


ต่อไปเราจะมาดูพื้นฐานเบื้องต้นคร่าวๆเกี่ยวกับ Ethernet กันสักเล็กน้อยนะครับว่า
Ethernet นั้นโครงสร้างเป็นยังไง และหลักการเชื่อมต่อเป็นแบบไหน จากนั้นเราจึงกลับมาที่ Ethernet Link Down เจ้าปัญหากันอีกครั้งนะครับ

หากลองไปค้นคว้าเกี่ยวกับ Ethernet ใน Wikipedia เราจะได้ใจความสรุปสั้นๆที่ดีพอสมควรลองอ่านเล่นๆกันดูนะครับ

Ethernet is a family of frame-based computer networking technologies for local area networks (LANs). The name comes from the physical concept of the ether. It defines a number of wiring and signaling standards for the Physical Layer of the OSI networking model, through means of network access at the Media Access Control (MAC) /Data Link Layer, and a common addressing format.

เราจะพบคำว่า Ethernet บ่อยๆเวลาพูดถึง LAN(Local Area Network) หลายคนอาจจะพอทราบเกี่ยวกับ OSI Model มาก่อนแล้วบ้างนะครับว่า 2 Layers ล่างสุดใน Model นี้คือ Data Link กับ Physical นั่นเอง Ethernet ถูกจัดวางให้อยู่ตรงนี้ใน OSI Model นั่นไงหล่ะครับ ซึ่งบางตำราบอกว่า Ethernet เป็น sublayer ของ Data Link ใน OSI Model อีกทีนึงครับ

มองลึกลงไปใน Ethernet เองก็มี Layer ของตัวมันเองแตกออกไปอีกทีนะครับ ลองดูที่ Diagram ด้านล่างนี้สิครับ “Rich Hernandez” บรรยายเอาไว้ในบทความ
“Gigabit Ethernet Auto-Negotiation”
ซึ่งเป็นกุญแจสำคัญที่เราจะไว้ไขปริษณา Ethernet Link Down กัน

Figure 1

Hernandez เรียก Diagram ด้านบนนี้ว่าเป็น “Data terminal equipment layer model” ครับ และหากพูดถึง 10BaseT, 100BaseT และ 1000BaseT เราอาจจะพอคุ้นตากันบ้างนะครับ ซึ่งในบอร์ด Embedded ส่วนใหญ่ที่ผมคลุกคลีมา Ethernet Interface จะเป็นแบบ 100BaseT กันโดยส่วนมากนะครับ ซึ่งผมจะขอเน้นอธิบายใน 100BaseT เท่านั้นนะครับ

เวลาที่ออกแบบบอร์ด Embedded ในส่วน Ethernet นั้น PHY กับ MAC จะถูกพูดถึงบ่อยมากนะครับ ซึ่งในส่วนของ MAC คำที่ผมได้ยินบ่อยๆจะเป็นเอ่ออ…

“ใช้ MAC Address อะไรดีน้าา…”
“ถ้าใช้ MAC เบอร์นี้แล้ว จะชนกับใครเค้ารึเปล่า”

ใช่แล้วครับ เวลาที่พูดถึง MAC address เรากำลังพูดถึง MAC Layer ของ Ethernet อยู่ไงครับ MicroController หลายๆเบอร์ไม่ว่าจะเป็น EP93XX ของ Cirrus หรือ LPC23XX ของทางค่าย NXP หรือเบอร์อื่นๆที่มี Ethernet Interface ตัว MAC Controller จะถูกฝังลงไปข้างใน MicroController ด้งกล่าวนะครับ รูปด้านล่างเป็น block diagram ที่ถูกตัดมาบางส่วนจาก EP9307 นะครับ ซึ่งเราจะเห็นว่าข้างใน EP9307 นั้น MAC Controller เชื่อมต่อกับ ARM920T ผ่านทาง AHB bus นะครับ

ep9307_subblock

แล้วพอเรามองจาก MAC Controller ออกมาที่ด้านนอก MicroController ตัว MAC Controller เองจะถูกเชื่อมต่อกับ PHY ที่อยู่ด้านนอกครับ ทั้ง MAC กับ PHY ใน Ethernet ที่เป็นแบบ 100BaseT นั้นสัญญาณ หรือ BUS ที่เชื่อมต่อกันจะเป็นแบบ MII ครับ

PHY นั้นบางครั้งจะถูกเรียกว่าเป็น Ethernet Transceiver บ้างก็มีนะครับ ซึ่งบางทีก็ทำให้สับสนได้เหมือนกัน รูปด้านล่างเป็น Block Diagram ของ PHY จากค่าย Cortina รุ่น LXT972A ซึ่งแต่ก่อนชิพเบอร์นี้เป็นของ Intel ครับ แต่ตอนนี้กลายเป็น Cortina System ไปเสียแล้ว ไม่รู้ว่าเป็นยังไง มายังไงเหมือนกันนะครับ

cortina_lxt972a

ที่นี้ลองมองไปที่ Data terminal model ที่ Hernandez เขียนไว้ แล้วมองเทียบกับ Block Diagram ของ PHY LXT972A สิครับ แล้วเราจะรู้ว่า Hernandez พูดถึงใครบ้าง…

ที่นี้ลองคิดดูเล่นๆนะครับ LAN ที่เป็นแบบ 100BaseT นั้น ถ้าลองมองที่ MII interface นะครับ MII clock (TX_CLK/RX_CLK) จะอยู่ที่ราวๆ 25MHz ครับส่วน Data(TXD/RXD) นั้นจะแบ่งออกเป็นฝั่งละ 4bit อิสระต่อกันนั้นคือ ขาส่ง(TXD) 4bit ขารับ(RXD) 4bit แล้วถ้าลองเอา 4bit x 25Mhz ดูเราจะพบว่านี่คือที่มาของ bit rate 100MBit/sec นั่นเองไงครับ

เป็นไงบ้างครับ พอจะเข้าใจหลักการคร่าวๆของ Ethernet กันบ้างนะครับ เท่าที่เขียนมาเนื้อหาก็ค่อนข้างยาวพอสมควร กว่าจะเข้าสู่ทางแก้สภาวะ Ethernet Link Down ที่ผมเจอ ก็คงต้องพึ่งตอนถัดไปพอสมควร แต่ก็ตั้งใจไว้ว่าจะพยายามเขียนต่อไปให้จบ และให้เข้าใจง่ายที่สุดนะครับ บทความนี้เป็นบทความแรก ที่ผมเองเพิ่งหัดเริ่มเขียน หากท่านผู้อ่านมีข้อติชม ประการใด ผมเองยินพร้อมที่จะรับฟังคำชี้แนะ ติชมอย่างเต็มที่ครับ และหากบทความนี้บกพร่องประการใด ผมต้องขออภัยไว้ ณ ที่นี้ด้วยนะครับ

~ โดย emwork บน เมษายน 11, 2009.

4 Responses to “กรณีศึกษา Ethernet Link Down”

  1. มาแอบ ดู.. อิอิ

  2. มาแอบดูเหมือนกันค่ะ…อิอิอิ…

    บล๊อกเขียนแบบมีรูปประกอบคำอธิบาย ทำให้อ่านแล้วเข้าใจง่ายค่ะ

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.