1.概述

enc28j60是带SPI接口的独立以太网控制器,兼容IEEE 802.3,集成MAC和10 BASE-T PHY,最高速度可达10Mb/s。基于enc28j60控制器的理解可阅读文章:ENC28J60学习笔记,在该文章内详细介绍控制器的使用方法,本文不对使用方法进行讲解,只提供代码下载路径:github开源地址。
在使用该控制器时,会涉及SPI通信协议。以OSI模型为标准,还会涉及物理层、链路层、网络层等知识。下面分别介绍。

2.spi通信协议

SPI(Serial Peripheral Interface)是一种高速的、全双工、同步的通信总线。SPI以主从方式工作,通常有一个主设备和一个或多个从设备,
SPI 控制器的信号线描述如下:

  • MISO:主设备数据输入,从设备数据输出;
  • MOSI:主设备数据输出,从设备数据输入;
  • SCLK: 时钟信号,由主设备产生;
  • SS: 从设备使能信号,由主设备控制。这个信号可以是SPI外设的一部分,也可用GPIO引脚实现。

SPI 典型接线方式如下。

SPI总线支持的四种工作方式,取决于串行同步时钟极性(CPOL)和串行同步时钟相位CPHA的组合。四种工作方式时序描述如下:

CPOL是用来决定SCLK时钟信号空闲时的电平,CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。
CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样,CPHA=1,在每个周期的第二个时钟沿采样。
SPI主模块和与之通信的外设时钟相位和极性应该一致。
spi具体协议可参看:https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
spi在接口enc28j60ReadOp和enc28j60WriteOp中会使用:
//*******************************************************************************************
//
// Function : icmp_send_request
// Description : Send ARP request packet to destination.
//
//*******************************************************************************************
BYTE enc28j60ReadOp(BYTE op, BYTE address)
{// activate CSCSACTIVE;// issue read commandSPDR = op | (address & ADDR_MASK);waitspi();// read dataSPDR = 0x00;waitspi();// do dummy read if needed (for mac and mii, see datasheet page 29)if(address & 0x80){SPDR = 0x00;waitspi();}// release CSCSPASSIVE;return(SPDR);
}
//*******************************************************************************************
//
// Function : icmp_send_request
// Description : Send ARP request packet to destination.
//
//*******************************************************************************************
void enc28j60WriteOp(BYTE op, BYTE address, BYTE data)
{CSACTIVE;// issue write commandSPDR = op | (address & ADDR_MASK);waitspi();// write dataSPDR = data;waitspi();CSPASSIVE;
}

3.网络知识

以太网是一种在计算系统间交换数据的网络拓扑,很多微控制器集成以太网MAC控制器,MAC控制器作为链路层协议控制器连接外部以太网PHY。

典型的以太网是mac利用MII访问phy,用rj-45接口外接水晶头,接入网线即可完成数据交换。

如果对mac,mii,phy等概念不是很熟悉可参考文章:http://www.cnblogs.com/jason-lu/articles/3195473.html

在文中提及了ARP协议,,ARP是地址解析协议,它的作用就是在以太网环境下,通过第三层(网络层)的IP地址来找寻第二层(链路层)的MAC地址,得到一张ARP缓存表,而正是依靠IP和mac地址才能保证网络通信的正常,如果进入第四层传输层时,我们开发人员只要关心IP即可,如TCP、UDP协议。在一次TCP协议传输时,会涉及ICMP,ARP协议等

基于enc28j60的学习心得相关推荐

  1. 基于角膜反射的学习心得

    经过了本章的学习,我发现研究角膜能在很多方面有很大的作用.以下是我学习的心得. 角膜成像:角膜是眼睛的透明.保护和光学外层,覆盖虹膜,占眼睛光学力量的绝大部分.当光线主要到达其表面时折射并进入眼睛,小 ...

  2. C++的学习心得和知识总结(十八)|基于EasyX实现 2048游戏 项目(C/C++版)

    目录结构 注:提前言明 本文借鉴了以下博主.书籍或网站的内容,其列表如下: 1.网络热门游戏 2048,点击前往 2.EasyX官方链接,点击前往 3.中国色谱 颜色代码对照表(RGB多用于easyX ...

  3. C++的学习心得和知识总结(十六)|基于EasyX实现小甲鱼Python飞机大战项目(C++版)

    目录结构 注:提前言明 本文借鉴了以下博主.书籍或网站的内容,其列表如下: 1.小甲鱼Python项目 – 飞机大战 2.本文使用的掩码图生成工具 自动生成遮罩图的程序,点击前往 3.EasyX官方链 ...

  4. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  5. 对于mysql存储过程感想_存储过程学习心得

    存储过程学习心得 (2014-12-28 17:28:06) 标签: it 我使用过几次SQL Server,但所有与数据库的交互都是通过应用程序的编码来实现的.我不知到在哪里使用存储过程,也不了解实 ...

  6. 我的MYSQL学习心得(十六) 优化

    原文:我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看 ...

  7. Spring Framework------version4.3.5-----Reference学习心得-----总结

    1.Spring Framework概述: 有很多可用版本,网址http://projects.spring.io/spring-framework/       2.Spring Framework ...

  8. 计算机基础与应用(上)笔记总结,计算机基础学习心得体会范文(通用3篇)

    计算机基础学习心得体会范文(通用3篇) 当我们对人生或者事物有了新的思考时,好好地写一份心得体会,这样可以记录我们的思想活动.那么要如何写呢?以下是小编精心整理的计算机基础学习心得体会范文(通用3篇) ...

  9. 分享一下字符串匹配BM算法学习心得。

    字符串匹配BM(Boyer-Moore)算法学习心得 BM算法 是 Boyer-Moore算法 的缩写,是一种基于后缀比较的模式串匹配算法.BM算法在最坏情况下可以做到线性的,平均情况下是亚线性的(即 ...

最新文章

  1. JS 设计模式之初识(一)-单例模式
  2. 卷积核个数和输入输出通道数的关系
  3. memcache多语言unix socket访问
  4. 英语作业介绍一项发明计算机,介绍电脑的发明的英语作文
  5. 前端学习(2742):重读vue电商网站52之路由懒加载
  6. linux动态可执行文件,Linux中ELF格式 可执行文件+动态链接器 的加载
  7. 图形学的几个非常有用的转换
  8. 三、地址族与数据序列
  9. Symmetric Tree
  10. 华为服务器欧拉系统怎么改ip,EulerOS系统配置
  11. windows/ubuntu系统下安装teamview教程
  12. 机器学习中,矩阵转置的求导运算
  13. 数据挖掘实例1:亲和性分析示例(代码、注释、运行结果)
  14. 摄像头视场角-对角线视场角-水平视场角
  15. 如何通过Oracle官网下载jdk历史版本
  16. STM32开发方式及基本介绍
  17. centos,php,apache,nginx,vim命令相关知识和命令记录
  18. 两个日期相差月数计算公式
  19. 【跨年】《2020年跨年演讲合集-吴晓波、罗振宇、丁祖昱等》(附下载链接)...
  20. python按行读字符串,python按行读取文件并找出其中指定字符串

热门文章

  1. MySQL必知必会笔记(一)基础知识和基本操作
  2. Windows server 2022安装与激活
  3. 傍上区块链大腿,e签宝恐仍难高枕无忧?
  4. Interviewing at Amazon — Leadership Principles Reading Notes
  5. 微软亚研副院长周明离职,将出任创新工场AI工程院首席科学家
  6. java json 中文_java读取json数据中文乱码解决
  7. 题解——星际旅行(欧拉路)
  8. 2019年CS224N课程笔记-Lecture 13: Contextual Word Representations and Pretraining
  9. 基金持仓数据分析,满仓干还是等风来?
  10. IIC详解以及SH367309-TWI示例应用