“Microduino ENC网络(一)/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(Created page with "{| style="width: 800px;" |- | ==目的== 本教程将教大家如何ping通你的Microduino。 ==设备== *'''Microduino-Core''' *'''Microduino-FT232R''' *'''Microdu...")
 
原理图
 
(未显示2个用户的11个中间版本)
第1行: 第1行:
 +
{{Language | Microduino_ENC_Network_(1)}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
第5行: 第6行:
 
本教程将教大家如何ping通你的Microduino。
 
本教程将教大家如何ping通你的Microduino。
 
==设备==
 
==设备==
*'''[[Microduino-Core]]'''
+
*'''[[Microduino-Core/zh]]'''
*'''[[Microduino-FT232R]]'''
+
*'''[[Microduino-USBTTL/zh]]'''
*'''[[Microduino-ENC28J60]]'''
+
*'''[[Microduino-ENC28J60/zh]]'''
*'''[[Microduino-RJ45]]'''
+
*'''[[Microduino-RJ45/zh]]'''
  
 
*其他硬件设备
 
*其他硬件设备
**USB数据连接线  一根  
+
**USB数据连接线  一根
 
 
  
 
==原理图==
 
==原理图==
第19行: 第19行:
 
*Microduino-RJ45
 
*Microduino-RJ45
 
*Microduino-Core
 
*Microduino-Core
*Microduino-FT232R
+
*Microduino-USBTTL
 
层层堆叠,再插上网线。
 
层层堆叠,再插上网线。
  
第26行: 第26行:
 
[[File:MicroduinoENCShow.jpg|600px|center|thumb]]
 
[[File:MicroduinoENCShow.jpg|600px|center|thumb]]
  
 +
Microduino ENC28J60引脚图:
 +
 +
{|class="wikitable"
 +
! rowspan="1" | ENC28J60模块引脚名 || Microduino引脚 || 功能
 +
|-
 +
| SCK|| D13 || SPI总线时钟
 +
|-
 +
| SI || D12 || 数据输入脚
 +
|-
 +
| SO  || D11 || 数据输出脚
 +
|-
 +
| CS || D8 || SPI片选信 (程序中需要定义)
 +
|-
 +
| INT || D2 || 中断功能(在此为INT0)
 +
|-
 +
| RST || RST || 复位功能
 +
|}
  
 
==程序==
 
==程序==
  
见 ENCnetwork1
+
[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_ENC/ENCnetworkone ENCnetworkone]
 
 
  
 
==调试==
 
==调试==
第40行: 第56行:
 
步骤二:在连接到网络之前,你需要了解一些参数:
 
步骤二:在连接到网络之前,你需要了解一些参数:
  
网络参数:
+
'''网络参数:'''
  
 
MAC地址又叫物理地址,是由48比特长,12位的16进制数字组成,0到23位是厂商向IETF等机构申请用来标识厂商的代码,也称为“编制上唯一的标识符”(Organizationally Unique Identifier)。是识别LAN(局域网)结点的标志。地址的24到47位由厂商自行分派,是各个厂商制造的所有网卡的一个唯一编号;
 
MAC地址又叫物理地址,是由48比特长,12位的16进制数字组成,0到23位是厂商向IETF等机构申请用来标识厂商的代码,也称为“编制上唯一的标识符”(Organizationally Unique Identifier)。是识别LAN(局域网)结点的标志。地址的24到47位由厂商自行分派,是各个厂商制造的所有网卡的一个唯一编号;
第60行: 第76行:
 
//首先,你需要包括以EtherCard库,并定义一些变量:MAC地址(mymac[]),IP地址(myip[])和用来存储传入和传出的数据缓冲(Ethernet::buffer[700])。
 
//首先,你需要包括以EtherCard库,并定义一些变量:MAC地址(mymac[]),IP地址(myip[])和用来存储传入和传出的数据缓冲(Ethernet::buffer[700])。
  
#include <EtherCard.h>
+
  include <EtherCard.h>
 
+
  static byte mymac[] = {0x74,0x69,0x69,0x2D,0x30,0x31};
static byte mymac[] = {0x74,0x69,0x69,0x2D,0x30,0x31};
+
  static byte myip[] = {192,168,1,10};
 
+
  byte Ethernet::buffer[700];
static byte myip[] = {192,168,1,10};
 
 
 
byte Ethernet::buffer[700];
 
 
 
//用begin()方法开始网络连接,需要3个参数,分别为缓冲大小、MAC地址和Arduino的片选(CS)引脚(通常为10,这个参数可以不写,如果不写的话默认为8(2560默认也是8),所以要根据你的电路进行设置)。
 
  
//顺便说下接线,特别是模块的,很多同学容易弄错,必要接的7根,Vcc接3.3V(电路接好通电后,一定要用万用表量一下,至少要3V以上);CS根据程序接;SI接D11;SO接D12;SCK接D13;RESET接RESET;GND接GND。
 
  
//arduino 2560接线:Vcc接3.3V(电路接好通电后,一定要用万用表量一下,至少要3V以上);cs根据程序接;SI接D51;SO接D50;SCK接 D52;RESET接RESET;GND接GND。有些2560可能3.3V电压不够,如果调试Vcc可接5V电压(建议不要长时间运行,芯片会比较 热)。
 
  
 
ether.staticSetup(myip);
 
ether.staticSetup(myip);
第78行: 第87行:
 
//用staticSetup()方法配置静态的IP地址,参数有3个,分别为ip地址、网关和DNS,IP地址是必须的,网关和DNS是可选的。大家看下这个函数的参数定义。
 
//用staticSetup()方法配置静态的IP地址,参数有3个,分别为ip地址、网关和DNS,IP地址是必须的,网关和DNS是可选的。大家看下这个函数的参数定义。
  
static bool staticSetup (const uint8_t* my_ip =0, const uint8_t* gw_ip =0, const uint8_t* dns_ip =0);
+
  static bool staticSetup (const uint8_t* my_ip =0, const uint8_t* gw_ip =0, const uint8_t* dns_ip =0);
  
 
//in the loop, 你只需要2条命令:
 
//in the loop, 你只需要2条命令:
第86行: 第95行:
 
//packetLoop() 方法:对具体收到的信息作出回应,包含“ping” 请求(ICMP echo 请求)。
 
//packetLoop() 方法:对具体收到的信息作出回应,包含“ping” 请求(ICMP echo 请求)。
  
ether.packetLoop(ether.packetReceive());
+
  ether.packetLoop(ether.packetReceive());
  
  

2015年1月27日 (二) 12:31的最新版本

Language English

目的

本教程将教大家如何ping通你的Microduino。

设备

  • 其他硬件设备
    • USB数据连接线 一根

原理图

  • Microduino-ENC28J60
  • Microduino-RJ45
  • Microduino-Core
  • Microduino-USBTTL

层层堆叠,再插上网线。

如下图所示:

MicroduinoENCShow.jpg

Microduino ENC28J60引脚图:

ENC28J60模块引脚名 Microduino引脚 功能
SCK D13 SPI总线时钟
SI D12 数据输入脚
SO D11 数据输出脚
CS D8 SPI片选信 (程序中需要定义)
INT D2 中断功能(在此为INT0)
RST RST 复位功能

程序

ENCnetworkone

调试

步骤一:首先需要下载EtherCard库:https://github.com/jcw/ethercard

放到你的IDE的libraries文件夹中,重启IDE。

步骤二:在连接到网络之前,你需要了解一些参数:

网络参数:

MAC地址又叫物理地址,是由48比特长,12位的16进制数字组成,0到23位是厂商向IETF等机构申请用来标识厂商的代码,也称为“编制上唯一的标识符”(Organizationally Unique Identifier)。是识别LAN(局域网)结点的标志。地址的24到47位由厂商自行分派,是各个厂商制造的所有网卡的一个唯一编号;

IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。于是,上面的IP地址可以表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多,它用于在本地网络中识别设备;

子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络。子网掩码通畅也用“点分十进制表示法”。

网关实质上是一个网络通向其他网络的IP地址,它通常是分配给一个可以到达不同网络的设备(路由器等)。

你需要编一个与你所在的网络其他设备不同的MAC地址,在这个例子中,我们通常会选择一个尚未分配的组织机构代码(如:DD-DD-DD)开头的MAC地址。

网络控制器的网络参数(地址,子网掩码,网关)与您的本地网络中的其他设备的配置相比: IP地址应该是唯一的,子网掩码和网关应该是相同的。

如果你的网络中有DHCP服务器,它会自动对新设备的网络参数进行配置。

步骤三:解释一下代码:

//首先,你需要包括以EtherCard库,并定义一些变量:MAC地址(mymac[]),IP地址(myip[])和用来存储传入和传出的数据缓冲(Ethernet::buffer[700])。

  include <EtherCard.h>
  static byte mymac[] = {0x74,0x69,0x69,0x2D,0x30,0x31};
  static byte myip[] = {192,168,1,10};
  byte Ethernet::buffer[700];


ether.staticSetup(myip);

//用staticSetup()方法配置静态的IP地址,参数有3个,分别为ip地址、网关和DNS,IP地址是必须的,网关和DNS是可选的。大家看下这个函数的参数定义。

  static bool staticSetup (const uint8_t* my_ip =0, const uint8_t* gw_ip =0, const uint8_t* dns_ip =0);

//in the loop, 你只需要2条命令:

//packetReceive()方法: 从网络接收一个新传入的数据包;

//packetLoop() 方法:对具体收到的信息作出回应,包含“ping” 请求(ICMP echo 请求)。

  ether.packetLoop(ether.packetReceive());


步骤四:下载代码并编译通过。


步骤五:ping!

检查一个设备是否正确联网,最简单的方法是ping它。在一个联网的计算机上输入ping 你要查看设备的IP地址

CmdPing.jpg

结果

出现类似上图所示画面就说明连上网了。

视频