跳轉到內容

Mizar32/乙太網

來自華夏公益教科書,開放書籍,為開放世界

Mizar32 有一個附加硬體模組,讓我們可以將 Mizar32 連線到網際網路。

硬體檢視

[編輯 | 編輯原始碼]

乙太網附加模組是一個半寬板,它插入附加匯流排聯結器 BUS1、BUS2 和 BUS3 的左側。硬體模組將 AVR32UC3A 晶片提供的乙太網訊號轉換為 RJ45 聯結器上連線到集線器、交換機或路由器所需的電壓電平。

該板搭載 DP83848 乙太網收發器,它生成和接收原始乙太網訊號,並將它們的內容使用 RMII 協議傳達給主機板上的 AVR32UC3,這減少了實現此目的所需的匯流排引腳數量。

RJ45 引腳 名稱 訊號
1 TX+ 傳送資料
2 TX- 傳送資料
3 RX+ 接收資料
6 RX- 接收資料
訊號名稱 AVR32 引腳 匯流排引腳 名稱
ETHERNET PA24 BUS2 引腳 3 乙太網中斷
REF_CLK PB0 BUS1 引腳 3 50MHz 參考時鐘
TX_EN PB1 BUS1 引腳 4 傳送使能
TX0 PB2 BUS1 引腳 5 傳送資料
TX1 PB3 BUS1 引腳 6 傳送資料
RX0 PB5 BUS2 引腳 5 接收資料
RX1 PB6 BUS2 引腳 6 接收資料
RX_ER PB7 BUS2 引腳 7 接收錯誤
MDC PB8 BUS2 引腳 4 MDIO 時鐘
MDIO PB9 BUS2 引腳 8 MDIO 資料
RX_DV PB15 BUS1 引腳 7 接收資料有效

軟體檢視

[編輯 | 編輯原始碼]

Alcor6L 有一個 net 模組,它允許您與其他計算機建立 TCP 連線並接收來自它們的傳入 TCP 連線,傳送和接收資料並斷開連線。

以下示例等待埠 23 上的傳入連線,然後從網路接收資料並將其列印到控制檯。

在 eLua 中

-- wait for an incoming connection on the TELNET port
socket, remote, err = net.accept( 23 )
if err ~= net.ERR_OK then
  print( "Error waiting for connection" )
else
  -- print all lines of data until they close the connection
  repeat
    res, err = net.recv( socket, "*l" )  -- That's *L not *One
    if err ~= net.ERR_OK then
      print( res )
    end
  until err ~= net.ERR_OK
end
net.close( socket )

如果乙太網硬體不存在,則可以透過呼叫 pio.pin.setdir() 將其匯流排引腳用作通用 PIO 引腳。例如,要將 BUS1 引腳 6 用作 PIO 輸出,您可以使用

 pio.pin.setdir(pio.OUTPUT, pio.PB_3)

在 PicoLisp 中

請注意:Alcor6L 還沒有 PicoLisp 的乙太網模組。我們正在努力。它將很快得到支援。請參見 問題 #10

IP 地址分配

[編輯 | 編輯原始碼]

模型 A 和 B 標準韌體中包含的乙太網軟體使用 DHCP 請求乙太網地址。如果它無法在本地網路上找到 DHCP 伺服器,它將在 60 秒後放棄併為自己分配地址 192.168.1.10,閘道器和 DNS 伺服器為 192.168.1.1。

您可以使用 Mizar32 Web Builder 建立自己的韌體,從而分配一個將立即可用的固定 IP 地址:單擊“Mizar32 Web Builder”,然後單擊“立即構建”,然後選擇 BUILD_UIP,清除 BUILD_DHCP,並在頁面底部的欄位中設定所需的 IP 地址。有關將生成的韌體檔案程式設計到板上的說明,請參見頁面“刷寫韌體”。

進一步閱讀

[編輯 | 編輯原始碼]
華夏公益教科書