版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、济源职业技术学院 毕 业 设 计(论文)题目基于enc28j60的以太网设计与实现 系别信息工程系 专业计算机应用技术 班级计应1001班 姓名xx 学号10090103 指导教师xxx 日期二零一二年九月 基于enc28j60的以太网设计与实现总计:毕业设计(论文)47页图表 28副摘 要随着internet迅猛发展,ip已经占据了各种终端应用的主导地位,而如何更高效、高速、廉价的传送ip数据是今后网络研究的重点。到目前,各种接入网技术之所以能够发展起来,更是适应了当今网络的发展,但是这些技术都存在着一个相同的问题:成本较高、性价比不高。而提到廉价,人们会很自然地想到以太网技术,但是能否接入
2、网到这一网络环境中还需要认真研究。enc28j60是microchiptechnology(美国微芯科技公司) 于2005年推出的一款28引脚的独立以太网控制器,由于采用spi串行接口方式,简化了设计。本文介绍了其特性、内部结构、引脚功能和enc28j60的硬件结构与接口电路,详细分析了其寄存器设置和工作过程。enc28j60采用标准的spi串行接口,通过程序的编写、tcp/ip协议的应用,只需4条连线即可实现与单片机连接,有利于在小型系统上实现以太网功能。本设计根据协议的移植,由单片机处理模块、以太网控制器模块、协议模块等部分组成。实现了以太网控制器与单片机之间的基本数据传输。关键词:以太网
3、接入;单片机;enc28j60;spi接口;tcp/ip移植abstractwith the rapid development of internet, ip have occupied various terminal application dominance, and how to more efficient, high-speed, low-cost transmission of ip data is the future of network research focus. at present, all kinds of access network technology s
4、 development, it is to adapt to todays network development, but these techniques have an identical problem: high cost, not cheap. while references to cheap, people will naturally think of ethernet technology, but whether the access network to the network environment also need to seriously study.enc2
5、8j60 is the microchiptechnology ( american microchip technology company ) in 2005 launched a 28 pin independent ethernet controller, due to the use of spi serial interface, simplifying the design. this paper introduces the characteristics, internal structure, pin function and enc28j60 hardware struc
6、ture and interface circuit, a detailed analysis of the register set and working process. enc28j60 uses standard spi serial interface, through the program, tcp/ip protocol application, only 4 lines can be connected with the single chip microcomputer, is advantageous in the small system ethernet funct
7、ion.according to the design of protocols for transplantation, composed of a single chip microcomputer processing module, ethernet controller module, protocol module and other components. realization of ethernet controller and scm basic data transmission.key words: ethernet access; single chip microc
8、omputer; enc28j60; spi interface; tcp/ip transplantation目 录摘 要iabstractii第1章 绪论- 1 -第2章enc28j60网络模块- 2 -2.1概述- 2 -2.2 外部连接- 6 -2.2.1 振荡器- 6 -2.2.2 i/o电平- 6 -2.2.3 带spi接口的独立以太网控制器- 6 -2.3存储器与寄存器- 8 -2.3.1 存储器构成- 8 -2.3.2 寄存器- 9 -2.4 enc28j60的寄存器设置和应用- 9 -2.4.1 enc28j60的寄存器设置- 9 -2.4.2 enc28j60的应用- 10
9、 -第3章 系统硬件设计- 11 -3.1单片机与enc28j60网络模块的选择及思想- 11 -3.2串口通信- 14 -3.2.1 通信简介- 14 -3.2.2 单片机串口结构- 15 -3.2.3 串行口工作方式及帧格式- 15 -3.2.4 单片机与串口的通信- 16 -3.2.5 单片机串口通信设置- 17 -3.3 enc28j60外围电路- 17 -第4章 网络协议- 19 -4.1 tcp/ip协议简介- 19 -4.2 网络互连- 20 -4.3 uip协议在单片机上的移植过程- 20 -4.3.1 uip协议栈的实现方法简述- 20 -4.3.2 uip架构- 21 -4
10、.3.2 uip协议在单片机上的移植- 22 -4.4 uip的关键功能及使用方法- 24 -4.4.1 接收数据- 24 -4.4.2 发送数据- 25 -4.4.3 重发数据- 25 -4.4.4 关闭连接- 25 -4.4.5 报告错误- 25 -4.4.6 轮询- 25 -4.4.7 监听端口- 25 -4.4.8 打开连接- 26 -4.4.9 数据流控制- 26 -4.1.10 uip函数总结- 27 -第5章软件设计- 28 -5.1 软件keil介绍- 28 -5.2系统总流程图- 28 -5.4 uip协议代码分析- 30 -5.4.1 应用程序接口- 30 -5.4.2 u
11、ip/设备驱动接口- 31 -5.4.3 uip/周期计时接口- 31 -5.4.4 uip协议栈提供的主要接口- 31 -5.4.5 主要移植心得- 32 -5.5 调试软件地址设置程序- 33 -5.6 tcp/ip在单片机内的实现- 34 -5.7 链路层的实现- 35 -5.8网络层的实现- 35 -5.9传输层实现- 38 -第6章 系统软硬件调试- 42 -6.1 准备调试- 42 -6.2 进行调试- 44 -6.3 调试结果- 45 -总 结- 47 -致 谢- 48 -参考文献- 49 -iii基于enc28j60的以太网通信设计与实现第1章 绪论随着internet迅猛发展
12、,接入网技术有很多种类如:宽带接入、光纤接入、微波接入等。但是近年来ip技术的不断完善,大多的运营商已经将ip技术作为数据网络的主要承载技术。由此也随之衍生出来了大量以以太网技术为基础的接入技术,例如以太网、ip、dsl等。而以太网接入技术就是其中的一种。且以太网技术也日趋成熟,使用户得到了更多的方便。以太网接入技术是具有中国特色的接入技术。由于中国特色的民宅大多数是比较集中,符合以太网的应用特点,而且用以太网接入技术的优点也非常之多,更适合使用。以太网技术具有成熟、成本低、结构简单、稳定性、可扩充性好等优点;便于网络升级,同时可实现实时监控、智能化物业管理、小区/大楼/家庭保安、家庭自动化(
13、如远程遥控家电、可视门铃等)、远程抄表等,可提供智能化、信息化的办公与家居环境,满足不同层次的人们对信息化的需求。并且随着同类技术的飞速发展,以太网接入技术也正在逐步完善,越来越显示出来它的优点。本设计设计的是基于enc28j60的以太网设计与实现,意在利用以太网接入技术实现单片机与以太网控制器两者之间的数据传输,并且,学习和掌握pc机与单片机的通信方法,了解通信协议的制定,设计的同时,对c语言程序的编写与设计硬件方面的连接等都有很严格的要求,提高自主思考能力和实践动手能力,最终实现本设计的最终目的(单片机与以太网控制器两者之间的数据传输)。第2章enc28j60网络模块enc28j60是带有
14、行业标准串行接口外设设备(spi)的独立以太网控制器。它可作为任何配备有spi的控制器的以太网接口。本章简单介绍了关于enc28j60网络模块的一些功能、特点,主要介绍了enc28j60的存储器构成、寄存器等。2.1概述enc28j60符合ieee802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供一个内部dma模块,以实现快速数据吞吐和硬件支持的ip校验和计算。与控制器的通信通过两个中断引脚和spi实现,数据传输速率高达10mb/s。两个专用的引脚用于连接led,进行网络活动状态指示。enc28j60网络模块的框图及主要功能图2-1所示为enc28j60 的简化框图。
15、图2-2所示为使用该器件的典型应用电路。要将单片机连接到速率为10 mbps的以太网,只需 enc28j60两个脉冲变压器和一些无源元件即可。图2-1 enc28j60框图图2-2典型的 enc28j60 接口enc28j60 由七个主要功能模块组成:(1)spi 接口充当主控制器和enc28j60 之间通信通道。(2)控制寄存器用于控制和监视enc28j60 。(3)双端口ram缓冲器用于接收和发送数据包。(4)判优器当dma、发送和接收模块发出请求时对ram缓冲器的访问进行控制。(5)总线接口对通过spi 接收的数据和命令进行解析。(6)mac(medium access control)
16、模块实现符合ieee 802.3 标准的mac逻辑。(7)phy(物理层)模块对双绞线上的模拟数据进行编码和译码。该器件还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器(提供可以接受5v电压的 i/o 引脚)和系统控制逻辑。如表2-1所示。enc28j60的i/o引脚说明。表2-1enc28j60的i/o引脚说明引脚缓冲器引脚号引脚类型缓冲器类型说明spdip、soic和ssopqfnvcap125p来自内部稳压器的2.5v输出。 必须将此引脚通过一个10 f的电容连接到vsstx。vss226p参考接地端。clko327o可编程时钟输出引脚。(1)int428oint中断输出引脚。(2
17、)wol51olan中断唤醒输出引脚。(2)so62ospi接口的数据输出引脚。(2)si73istspi接口的数据输入引脚。(3)sck84istspi接口的时钟输入引脚。(3)cs95istspi接口的片选输入引脚。(3)rese106ist低电平有效器件复位输入。(3, 4)vssrx117pphy rx 的参考接地端。tpin-128ina差分信号输入。tpin+139ina差分信号输入。rbias1410inaphy的偏置电流引脚。 必须将此引脚通过2k?(1%)的电阻连接到vssrx。vddtx1511pphy tx的正电源端。tpou1612o差分信号输出。tpou1713o差分
18、信号输出。vsstx1814pphy tx的参考接地端。vddrx1915pphy rx 的正 3.3v 电源端。vddpl2016pphy pll的正 3.3v 电源端。vsspl2117pphy pll的参考接地端。vssos2218p振荡器的参考接地端。osc12319idig振荡器输入。osc22420o振荡器输出。vddos2521p振荡器的正3.3v电源端。ledb2622oledb 驱动引脚。(5)leda2723oleda 驱动引脚。(5)vdd2824p正3.3v 电源端。2.2 外部连接2.2.1 振荡器enc28j60网络模块的工作频率为25mhz,晶振连接在osc1和o
19、sc2引脚之间。enc28j60要求使用平行切割的晶体。使用顺序切割的晶体可能会使振荡器产生频率不在晶体制造厂商所给的参数范围内。enc28j60包含一个振荡器起振定时器(ost)以确保在使用振荡器和集成phy之前它们已经稳定。在发生上电复位或从掉电模式唤醒后,ost经过7500个osc1时钟周期(300 s)后超时。在这段延时期间,仍可通过spi总线对所有的以太网寄存器和缓冲器进行读写操作。然而,在这期间不应试图使用软件发送任何数据包、使能接收数据包或访问mac、mall或phy寄存器。当ost超时后,estat寄存器中的clkrdy位将置1.应用程序软件可通过查询此位来确定何时开始正常器件
20、操作。注:在上位复电或enc28j60从掉电模式恢复后,在发送数据包、使能接收数据包或允许访问任何mac、mll或phy寄存器之前,必须查询clkrdy位。2.2.2 i/o电平ecn28j60网络模块是一个工作电压为3.3的器件,他被设计为易于集成到5v的系统中。spi的,sck和si输入以及引脚都可以承受5v的电压。另一方面,如果主控制器运行在5v电压下,当spi和中断输入由enc28j60上的3.3v输入驱动时,它很可能不符合规范要求,此时需要一个单向电平转换器。可以使用廉价的74hct08、74act125或其他带有ttl电平输入缓冲器的5vcmos芯片来提供必要的电平转换。使用三态缓
21、冲器便于系统集成,它可以与其他器件共享spi总线。2.2.3 带spi接口的独立以太网控制器enc28j60网络模块可以实现占位小、成本低、更加精简的嵌入式网络应用系统。符合ieee802. 3协议的enc28j60只有28引脚,却具有早期器件相应的功能。(1)以太网控制器特性 ieee 802.3兼容的以太网控制器 集成mac和10 base-t phy 接收器和冲突抑制电路 支持一个带自动极性检测和校正的10base-t 端口 支持全双工和半双工模式 可编程在发生冲突时自动重发 可编程填充和crc生成 可编程自动拒绝错误数据包 最高速度可达10 mb/s 的spi 接口(2)缓冲器 8 k
22、b 发送/ 接收数据包双端口sram 可配置发送/ 接收缓冲器大小 硬件管理的循环接收fifo 字节宽度的随机访问和顺序访问(地址自动递增) 用于快速数据传送的内部dma 硬件支持的ip 校验和计算(3)介质访问控制器(mac)特性 支持单播、组播和广播数据包 可编程数据包过滤,并在以下事件的逻辑“与”和“或”结果为真时唤醒主机:- 单播目标地址- 组播地址- 广播地址- magic packet- 由64位哈希表定义的组目标地址- 多达64字节的可编程模式匹配(偏移量可由用户定义) 环回模式(4)物理层(phy)特性 整形输出滤波器 环回模式(5)工作特性 两个用来表示连接、发送、接收、冲突
23、和全/ 半双工状态的可编程led 输出 使用两个中断引脚的七个中断源 25 mhz 时钟 带可编程预分频器的时钟输出引脚 工作电压范围是3.14v 到3.45v ttl 电平输入 温度范围:-40c 到+85c (工业级),0c 到+70c (商业级)(仅ssop 封装) 28 引脚spdip 、ssop 、soic 和qfn封装封装类型如图2-3所示。图2-3封装类型2.3存储器与寄存器2.3.1 存储器构成enc28j60中所有的存储器都是以静态ram的方式实现的。enc28j60中有三种类型的存储器:控制寄存器、以太网缓冲器、phy寄存器。控制寄存器类型存储器包含控制寄存器(contro
24、l register,cr)5。它们用于进行enc28j60的配置.控制盒状态获取。可以通过spi接口直接读写这些控制寄存器。以太网缓冲器中包含一个供以太网控制器使用的发送和接收存储空间。主控制器可以使用 spi接口对该存储器空间的容量进行编程。只可以通过读缓冲器和写缓冲器spi指令来访问以太网缓冲器。phy寄存器用于进行phy模块的配置、控制和状态获取。不可以通过spi接口直接访问这些寄存器,只可通过mac中的mll访问这些寄存器。如图2-4所示,显示了 enc28j60 的数据存储器构成。图2-4 enc28j60 的数据存储器构成2.3.2 寄存器寄存器是中央处理器内的组成部分。寄存器是
25、有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(ir)和程序计数器(pc)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(acc)。2.4 enc28j60的寄存器设置和应用2.4.1 enc28j60的寄存器设置enc28j60内部的静态ram分为三种类型,控制寄存器,以太网缓冲区和物理层寄存器,控制寄存器用来进行芯片的配置和控制等功能,直接spi读写;以太网缓冲区可以由spi接口配置为接收和发送以太网数据包的ram区;物理层寄存器用来配置,控制和监测物理层的状态,此寄存器不能直接由spi接口读写,只能通过媒体独立接口m
26、ii访问。enc28j60控制寄存器中最基本和重要的5个寄存器是eie, eir, estat, econ2 和econ1,其功能分别如下,eie:以太网中断使能控制寄存器,分为总中断使能和各部分使能控制,eir:以太网中断标志寄存器,在接收和发送数据包时根据不同的标志位进入不同的执行程序,estat:以太网状态寄存器,反映以太网当前是否数据碰撞、忙信息、错误信息、时钟状态等信息,econ2:以太网辅助控制寄存器,设置数据指针,芯片节能等,econ1:以太网主控制寄存器,这个是芯片最常用的寄存器,主要用来设置不同层的寄存器空间,下面将详细论述。在这5个寄存器中,需要设置的是eie、econ2和
27、econ1,需要判断标志位的是eir和estat。在enc28j60接收和发送数据包之前,需要对相应寄存器进行设置和初始化,一般情况下这部分工作放在系统复位完成后执行,初始化设置工作包括接收和发送缓冲区、接收过滤、晶振启动时间、mac寄存器、物理层。初始化芯片之前先关闭单片机的中断输入,对reset引脚给定一个持续的低电平复位信号,然后对相应的寄存器进行设置。设置完成所有需要的寄存器后,判断以太网状态中的时钟启动标志位是否置位,然后开中断,硬件连接的两个中断引脚都对应多种中断条件,eie和ewolie分别使能不同的中断,均指向中断入口处,因此需要在入口处进行判断每次的中断输入什么条件,eir是
28、中断标志位,包含了7中不同的中断条件,根据不同的标志位进入不同的执行程序。2.4.2 enc28j60的应用由于采用串行spi接口,enc28j60可以很方便地和各种微控制器和处理器接口,构成嵌入式以太网模块,使用udp,tcp进行通信,且采用3.3v供电。通过tcp/ip协议的应用,只需4条连线即可实现与单片机连接,用单片机的p20、p21、p22、p23与enc28j60 的cs、mosi、miso、sck四个引脚相连即可实现。enc28j60构成的嵌入式以太网模块电路连接简单,功能强大,与目前大多数需要并行数据和地址总线的以太网控制器相比,不需要小封装的微控制器外扩地址和数据总线,有很大
29、优点,根据需要配合不同的微控制器可以将电路板做到最小尺寸,完全符合未来工业以太网控制器的发展趋势。第3章 系统硬件设计3.1单片机与enc28j60网络模块的选择及思想本系统所用单片机stc12c5a60s2系列单片机是stc生产的单时钟/及其周期(1t)的单片机6,是搞速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成max810专用复位电路,2路pwm,8路高速10位a/d转换(250k/s,即25万次/秒),强干扰场合。stc12c5a60s2单片机是宏晶科技生产的单时钟/机器周期(1t)的单片机,是高速/低功耗/超强抗干扰的新一代8
30、051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成max810专用复位电路,2路pwm,8路高速10位a/d转换(250k/s,即25万次/秒),针对电机控制,强干扰场合,图3-1所示stc12c5a60s2系列单片机管脚图。图3-1stc12c5a60s2系列单片机管脚图(1).增强型8051cpu,it,单时钟/机器周期,指令代码完全兼容传统8051。(2).工作电压: stc12c5a60s2系列工作电压:5.5v3.5v(5v单片机)。(3).工作频率范围:035mhz,相当于普通8051的0420mhz。(4).用户应用程序空间8k/16k/20k/32k/40
31、k/48k/52k/60k/62k字节。(5).片上集成1280字节ram。(6).通用i/o口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统i/o口),可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个i/o口驱动能力均可达到20ma,但整个芯片最大不要超过120ma。(7).isp(在系统可编程)/iap(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(p3.0/p3.1)直接下载用户程序,数秒即可完成一片。(8).有eeprom功能(stc12c5a60s2/ad/pwm无内部eeprom)。(9).看门狗(10).内部集成max
32、810专用复位电路(外部晶体12m以下时,复位脚可直接1k电阻倒地)。(11). 外部掉电检测电路:在p4.6口有一个低压门槛比较器5v单片机为1.33v,误差为5%,3.3v单片机为1.31v,误差为3%。(12).时钟源:外部高精度晶体/时钟,内部r/c振荡器(温漂为5到10%以内)用户在下载用户程序时,可选择是使用内部r/c振荡器还是外部晶体/时钟常温下内部r/c振荡器频率为:5.0v单片机为:mhz 7mhz 3.3v单片机为:8mhz 2mhz(13)共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器t0和t1,没有定时器2,但有独立波特率发生器做串行通讯的波特率
33、发生器,再加上2路pca模块可再实现2个16位定时器。(14). 3个时钟输出口,可由t0的溢出在p3.4/t0输出时钟,可由t1的溢出在p3.5/t1输出时钟,独立波特率发生器可以在p1.0口输出时钟。(15). 外部中断i/o口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的pca模块,power down模式可由外部中断唤醒,int0/p3.2,int/p3.3,t0/p3.4,t/p3.5,rxd/p3.0,ccp0/p1.3 ,ccp/p 1.4。(16). pwm(2路)/ pca (可编程计数器阵列,2路) 也可用来当2路d/a使用 也可用来再实现2个定时器 也可用
34、来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)。(17).a/d转换,10位精度adc,共8路,转换速度可达250k/s(每秒钟25万次)。(18).通用全双工异步串行口(uart),由于stc12系列是高速的8051,可再用定时器或pca软件,可再用定时器或pca软件可再用定时器或pca软件实现多串口。(19).stc12c5a60s2系列有双串口,后缀有s2标志的才有双串口,rxd2/p.2 (可通过寄存器设置到p4.2 ),txd2/p.3 (可通过寄存器设置到p4.3)。(20).工作温度范围:-40 +85(工业级)/0 75(商业级)。(21).封装:lqfp-4
35、8, lqfp-44, pdip-40, plcc-44,,qfn-40i/o口不够时,可用2到3根普通i/o口线外接74hc64/65/595(均可级联)来扩展i/o口,还可用a/d做按键扫描来节省i/o口,或用双cpu,三线通信,还多了串口。而enc28j60网络模块是美国微芯科技公司于2005年推出的一款28引脚的独立以太网控制器,可为嵌入式应用提供低引脚数、低成本且高效易用的远程通讯解决方案。利用enc28j60以太网控制器,可以实现占位小、成本低、更加精简的嵌入式网络应用系统。实现两者之间的通讯,只需4条连线即可实现与单片机连接,有利于在小型系统上实现以太网功能如图3-2所示。图3-
36、2 stc12c5a60s2与enc28j60连接图3.2串口通信3.2.1 通信简介计算机与外界所进行的信息交换被称为通信,其基本方式可以分为并行通信和串行通信两种。并行通行是指一次就可以同时传送一个数据字的传输方式(其中包含8位、16位,甚至更多的数据)。其优点是传输速度快;缺点是需要同时连接的线数多,尤其是在通信距离较长时,传输线的成本会急剧增加。串行通信是指把一个数据字逐位、顺序、分时进行的传输方式。其缺点是传送速度较慢,其优点是需要数量较少的传输线,且占用的引脚资源较少。串行通信又存在着异步通信和同步通信两种基本方式8:(1)异步方式。其特点是通信双方以一个字节作为数据传输单位,且发
37、送方传送字符的间隔时间是不定的,在传送一个字符时总是以起始位开始,以停止位结束。异步通信传输格式见图3-3所示。图3-3 异步通信字符传输帧格式一个字符单位除表示字符信息的数据位外,还有若干附加位:起始位(一位,值恒为0),奇偶位(可有可无),停止位(长度1、1.5和2可选,值恒为1)。传送一个字符必须以起始位开始,以停止位结束,这个过程称为一帧。(2)同步方式。在数据开始传输时,发送方先发送一个或两个特殊字符,当发送方和接收方达到同步后,就可以一个字符接一个字符都加起,使其传输效率比较低,因此异步通信一般用在数据速率较慢的场合。在高速传输时,一般应采取同步协议。因此,在单片机与外围芯片之间的
38、近距离通信中,同步通信方式得到了广泛的应用。所以,对于近距离的点对点的数据通信,若不要求太高的数据传输率,则通常采用设备简单、控制容易的异步传输为好。3.2.2 单片机串口结构(1)单片机的串行接口是一个全双工通信接口,即能同时进行发送和接收。其帧格式和波特率可通过软件编程设置,在使用上非常方便灵活。串行口主要由两个数据缓冲器sbuf、一个输入移位寄存器、一个串行控制寄存器scon和一个波特率发生器t1等组成。(2)串行通信过程在接收数据过程中进行通信时,当cpu允许接收时(即scon的ren为1时),外界数据通过引脚rxd串行输入,数据的最低位首先进入移位器,一帧接收完毕再并行送入缓冲器sb
39、uf中,同时将接收中断标志位ri置位,向cpu发出中断请求。cpu响应中断后,并用软件将ri位清除同时读走输入的数据。接着又开始下一帧的输入过程。重复直至所有数据接收完毕。在发送数据过程中进行通信时,当cpu要发送数据时,将数据并行写入发送缓存器sbuf中,同时启动数据由txd引脚串行发送,当一帧数据发送完既发送缓冲器空时,由硬件自动将发送中断标志位ti置位,向cpu发出中断请求。cpu响应中断后,用软件将ti位清除,同时又将下一帧数据写入sbuf中,重复上述过程,直至所有数据发送完毕。3.2.3 串行口工作方式及帧格式单片机串行口可以通过软件设置四种工作方式:(1)方式0这种工作方式比较特殊
40、,与常见的微型计算机的串行口不同,它又叫同步移位寄存器输出方式。在这种方式下,数据从rxd端串行输出或输入,同步信号从txd端输出,波特率固定不变:为震荡频率的1/12。该方式是以8位数据为一帧,没有起始位和停止位,先发送或接收最低位。(2)方式1串行口采用该方式时,特别适合于点对点的异步通信。该方式规定发送或接收一个字符10位为一帧,即一个起始位,8个数据位,一个停止位,波特率可以改变。(3)方式2采用这种方式可以接收或发送11 位数据,以11 位为一帧,比方式1 增加了一个数据位,其余相同。第9 个数据即d8 位具有特别的用途,可以通过软件来控制它,再加特殊功能寄存器scon 中的sm2
41、位的配合,可使单片机适用于多机通信。方式2 波特率固定,只有两种选择:为振荡频率的1/32 或1/64,由pcon 最高位选择。(4)方式3方式3 与方式2 完全类似,唯一的区别是方式3 波特率可变,所以适用于多机通信。3.2.4 单片机与串口的通信由于串口用的是ttl电平,和rs-232电平不同,因此,单片机和pc通信时需要进行电平转换,常用的ic是max232,其中max232供电脚为+5v。采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线。第5脚的gnd、第2脚的rxd、第3脚的txd。这是最简单的连接方法,但是对我们来说足够使用了。rs-232引脚图如图3-4所示。图
42、3-4 rs-232串口(母口)rs-232的标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是:2个数据信号,发送信号txd、接收信号rxd;1个信号地线sg;6个控制信号,dsr、dtr、rts、cts、dcd。当通信距离较近时,通信双方可以直接连接,这种情况下,只需使用少数几根信号线。最简单的情况,在通信中根本不需要rs-232的控制联络信号,只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。在这种方式下,通信双方的任何一方,只要请求发送rts有效和数据终端准备好dtr有效就能开始发送和接收。图3-5是rs-232最简单的
43、连接方法(即三线连接),图中的2号线与3号线交叉连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可发也可收,发送信号线接接收信号线、接收信号线接发送信号线、5号线同时接地。在这种方式下,通信双方的任何一方,只要请求发送rts有效和数据终端准备好dtr有效就能开始发送和接收。图3-5 三线连接3.2.5 单片机串口通信设置在系统中,单片机一般称为下位机,通常用来完成数据的采集和上传,由pc机、网络设备、数据库服务器组成的后台应用部分则称为上位机,对下位机的上传数据进行分析并处理。系统充分发挥了单片机在实时数据采集和微机对数据处理显示以及单片机串行口工作方式选择、中断标志、可编程位
44、的设置、波特率的倍增均是通过两个特殊功能寄存器scon和pcon来控制的。在串口通信模块中,波特率在程序初始化时定义为9600b/s。波特率的产生用定时器产生,在设置时选择定时器1,并将它设为工作方式2,8位的常数自动重新装载的定时器,这种工作方式可以省去用户软件中重装初值的程序,简化定时初值的计算方法,可以相当精确的确定定时时间。计算出定时器的初值之后,在设定串行口的工作方式,在这里令scon=0x50,即scon各位中,sm0=0,sm1=1,ren=1,其他控制字为0,选择为工作方式1,8位一步收发。令tcon中的tr1=1,启动定时器,并禁止其他中断。3.3 enc28j60外围电路e
45、nc28j60的硬件设计需要注意时钟振荡器、复位电路、变压器、接口电路、终端和其他外部器件,输入/输出电平等几个方面事项,下面分别介绍这些需注意的事项。(1)时钟振荡器硬件设计中发现enc28j60芯片需要一个接在osc1和osc2脚上的25mhz的晶振;这个晶振也可由外部时钟信号来完成如图3-6所示。图3-6 时钟振荡器电路(2)复位电路enc28j60芯片上的电复位功能,引脚reset上的低电平可以使该芯片进入复位模式;并且引脚reset内部有弱上拉电阻,同时dsp的复位信号也会使enc28j60芯片复位。(3)接口电路enc28j60芯片工作电压为3.3 v,该芯片易于被设计为集成到5
46、v的系统中。此外该芯片可以通过spi和微控制器连接;对于没有spi接口的微控制器,我们也可以设计通过i/o 口模拟spi的方法实现。如果主控制器运行在5 v电压下,当spi和中断输入由enc28j60芯片上的3.3 v cmos输出驱动时我们就需要有一个单向电平转换器。只有将enc28j60芯片和主控芯片at89s52结合,这两者之间的接口设计是一个关键。第4章 网络协议4.1 tcp/ip协议简介传输控制协议/因特网互联协议(transmission control protocol/internet protocol,tcp/ip),又叫网络通讯协议1,是internet最基本的协议、同时
47、也是internet国际互联网络的基础,简单地说,就是由网络层的ip协议和传输层的tcp协议组成的。是互联网中的基本通信语言或协议。在私网中,它也被用作通信协议。当你直接网络连接时,你的计算机应提供一个tcp/ip程序的副本,此时接收你所发送的信息的计算机也应有一个tcp/ip程序的副本。参考开放系统互连模型,tcp/ip协议一般采用一种简化的四层模型2,即链路层、网络层、传输层、应用层。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。如图4-1所示表示了各层协议的关系。图4-1 各层协议之间的关系4.2 网络互连网络
48、互连技术的发展,使得传输信息能够在全世界范围内实现,我们课题中的网络互联关键是根据需要,对通讯协议进行适当的剪裁,嵌入到通讯芯片中。网络互联设备划分为:集线器、交换机和路由器,如图4-2所示。图4-2 网络互连示意图(1) 路由器:连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。目前路由器已经广泛应用于各行各业,各种不同档次的产品已经成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。(2) 交换机:交换机工作在第二层。(3) 集线器:集线器本质就是中继器,工作在物理层。4.3 uip协议在单片机上的移植
49、过程4.3.1 uip协议栈的实现方法简述uip实现了tcp/ip协议集的四个基本协议:arp地址解析协议,ip网际互联协议,icmp网络控制报文协议和tcp传输控制协议。为了在8位16位处理器上应用,uip协议栈在各层协议实现时采用有针对性的方法,保持代码大小和存储器使用量最小。(1)实现arp地址解析协议时为了节省存储器,arp应答包直接覆盖arp请求包。(2)实现ip网络协议时对原协议进行了极大的简化,它没有实现分片和重组。(3)实现icmp网络控制报文协议时,只实现echo(回响)服务。uip在生成回响报文时并不重新分配存储器空间,而是直接修改echo请求报文来生成回响报文。将icmp
50、类型字段从“echo”类型改变成“echoreply”类型,重新计算校验和修改校验和字段。(4)uip里的tcp没有实现发送和接收数据的滑动窗口。每个tcp连接的状态由uip_conn结构保存,uip_conn结构包括当地和远端的tcp端口编号,远程主机的ip地址,重发时间值,上一段重发的编号,和连接的段的最大尺寸等信息。一个uip_conn结构数组用于保存所有的连接,数组的大小为支持的同时连接的最大数量。为了减少储存器的使用量,在处理重发时uip并不缓存发送的数据包,而是由应用程序在需要重发时重新生成发送的数据。4.3.2 uip架构uip相当于一个代码库,通过一系列的函数实现与底层硬件和高
51、层应用程序之间的通讯,对于整个系统来说它内部的协议组是透明的,从而增加了协议的通用性。uip协议栈与系统底层和高层应用之间的关系如图4-3所示.图4-3 uip在系统中的位置uip 协议栈主要提供了三个函数供系统底层调用。即uip_init(), uip_input()和uip_periodic()。其与应用程序的主要接口是uip_appcall( )。uip_init()是系统初始化时调用的,主要用于初始化协议栈的侦听端口和默认所有连接是关闭的。当网卡驱动收到一个输入包时,将其放入全局缓冲区 uip_buf 中,包的大小由全局变量uip_len 约束。同时将调用uip_input()函数,这
52、个函数将会根据包首部的协议处理这个包并在需要时调用应用程序。当uip_input()返回时,一个输出包同样放在全局缓冲区uip_buf 里,并把大小赋给uip_len。若uip_len 是0,则说明没有包要发送;否则调用底层系统的发包函数就会将包发送到网络上。uip周期计时用于驱动所有的uip内部时钟事件:当周期计时激发,每一个tcp连接都会调用uip函数uip_periodic()。类似于uip_input()函数,uip_periodic()函数返回时,输出的ip 包要放到uip_buf 中,供底层系统查询uip_len 的大小并发送。由于tcp/ip 的应用场景很多,所以应用程序作为单独
53、的模块由用户实现。uip 协议栈提供一系列接口函数供用户程序调用,其中大部分函数是作为c的宏命令实现的,主要是为了速度、代码大小、堆栈和效率的使用。用户需要将应用层入口程序作为接口提供给uip协议栈,并将这个函数定义为uip_appcall()。这样以来,uip 在接受到底层传来的数据包后,在需要送到上层应用程序处理的地方,调用uip_appcall( ),在不用修改协议栈的情况下可以适配不同的应用程序。4.3.2 uip协议在单片机上的移植1为此项目建立一个keil c工程,建立src目录存放源文件。2通过阅读uip-1.0unixmain.c,了解uip的的主循环代码架构,并将main.c
54、放到src 目录下。3仿照uip-1.0unixtapdev.c写网卡驱动程序,与具体硬件相关。这一步比较费点时间,不过好在大部分网卡芯片的驱动程序都有代码借鉴或移植。驱动需要提供三个函数。etherdev_init():网卡初始化函数,初始化网卡的工作模式。u16_t etherdev_read(void):读包函数。将网卡收到的数据放入全局缓存区uip_buf 中,返回包的长度,赋给uip_len。void etherdev_send(void):发包函数。将全局缓存区uip_buf 里的数据(长度放在uip_len 中)发送出去。因此,收包和发包主要是操作uip_buf 和uip_len。4因为uip 协议栈需要使用时钟,为tcp 和arp 的定时器服务,所以使用单片机的定时器0 用作时钟,每20ms 让计数tick_cnt 加1,这样,25 次计数(0.5s)满了后可以调用tcp 的定时处理程序,10s 后可以调用arp 老化程序。对uip1.0 版本,增加了timer.c/timer.h,专门用来管理时钟,都放到src 下。5uip 协议栈的主要内容在uip-1.0uip下的uip.c/uip.h 中,放到src 下。如果需要arp 协议,需要将uip_arp.c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一章教育概述
- 《深圳市地方税务局》课件
- 2017年甘肃陇南事业单位招聘考试真题及答案解析
- 2021-2022学年四川省遂宁市国家公务员公共基础知识模拟考试(含答案)
- 2024年漯河市郾城区人民医院漯河市骨科医院漯河市第五人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年湛江市第二中医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年深圳市职业病防治院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年海口市长流中心卫生院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年河西区尖山医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 全国山西经济版小学信息技术第三册第二单元活动1《你猜我爱哪颗“星”》说课稿001
- 2025年国务院发展研究中心信息中心招聘应届毕业生1人高频重点提升(共500题)附带答案详解
- 2024年公安机关理论考试题库500道及参考答案
- 2024年全国《国防和兵役》理论知识竞赛试题库与答案
- 特殊情况施工的技术措施
- 企业知识产权保护策略及实施方法研究报告
- 2024年07月11026经济学(本)期末试题答案
- 2024年中小企业股权融资合同3篇
- 2024年01月11289中国当代文学专题期末试题答案
- 《古兰》中文译文版
- 2021年全国烟草工作会议上的报告
- 电气工程课程设计——车间动力及照明设计
评论
0/150
提交评论