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
模型 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 地址。有關將生成的韌體檔案程式設計到板上的說明,請參見頁面“刷寫韌體”。
- eLua 參考手冊中有關 net 模組的頁面
- Atmel AVR32UC3A 資料手冊,第 29 節:乙太網 MAC
- DP84838I 收發器資料手冊