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 收发器数据手册