基于ENC28J60的以太网设计与实现.doc

上传人:仙人指路1688 文档编号:2884416 上传时间:2023-03-01 格式:DOC 页数:55 大小:1.98MB
返回 下载 相关 举报
基于ENC28J60的以太网设计与实现.doc_第1页
第1页 / 共55页
基于ENC28J60的以太网设计与实现.doc_第2页
第2页 / 共55页
基于ENC28J60的以太网设计与实现.doc_第3页
第3页 / 共55页
基于ENC28J60的以太网设计与实现.doc_第4页
第4页 / 共55页
基于ENC28J60的以太网设计与实现.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《基于ENC28J60的以太网设计与实现.doc》由会员分享,可在线阅读,更多相关《基于ENC28J60的以太网设计与实现.doc(55页珍藏版)》请在三一办公上搜索。

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 -第1章 绪论随着Internet迅猛发展,接入网技术有很多种类如:宽带接入、光纤接入、微

12、波接入等。但是近年来IP技术的不断完善,大多的运营商已经将IP技术作为数据网络的主要承载技术。由此也随之衍生出来了大量以以太网技术为基础的接入技术,例如以太网、IP、DSL等。而以太网接入技术就是其中的一种。且以太网技术也日趋成熟,使用户得到了更多的方便。以太网接入技术是具有中国特色的接入技术。由于中国特色的民宅大多数是比较集中,符合以太网的应用特点,而且用以太网接入技术的优点也非常之多,更适合使用。以太网技术具有成熟、成本低、结构简单、稳定性、可扩充性好等优点;便于网络升级,同时可实现实时监控、智能化物业管理、小区/大楼/家庭保安、家庭自动化(如远程遥控家电、可视门铃等)、远程抄表等,可提供

13、智能化、信息化的办公与家居环境,满足不同层次的人们对信息化的需求。并且随着同类技术的飞速发展,以太网接入技术也正在逐步完善,越来越显示出来它的优点。本设计设计的是基于ENC28J60的以太网设计与实现,意在利用以太网接入技术实现单片机与以太网控制器两者之间的数据传输,并且,学习和掌握PC机与单片机的通信方法,了解通信协议的制定,设计的同时,对C语言程序的编写与设计硬件方面的连接等都有很严格的要求,提高自主思考能力和实践动手能力,最终实现本设计的最终目的(单片机与以太网控制器两者之间的数据传输)。第2章ENC28J60网络模块ENC28J60是带有行业标准串行接口外设设备(SPI)的独立以太网控

14、制器。它可作为任何配备有SPI的控制器的以太网接口。本章简单介绍了关于ENC28J60网络模块的一些功能、特点,主要介绍了ENC28J60的存储器构成、寄存器等。2.1概述ENC28J60符合IEEE802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供一个内部DMA模块,以实现快速数据吞吐和硬件支持的IP校验和计算。与控制器的通信通过两个中断引脚和SPI实现,数据传输速率高达10Mb/s。两个专用的引脚用于连接LED,进行网络活动状态指示。ENC28J60网络模块的框图及主要功能图2-1所示为ENC28J60 的简化框图。图2-2所示为使用该器件的典型应用电路。要将单片

15、机连接到速率为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)模块实现符合IEEE 802.3 标准的MAC逻

16、辑。(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)WOL51OLAN中断唤醒输出引脚。(2)SO

17、62OSPI接口的数据输出引脚。(2)SI73ISTSPI接口的数据输入引脚。(3)SCK84ISTSPI接口的时钟输入引脚。(3)CS95ISTSPI接口的片选输入引脚。(3)RESE106IST低电平有效器件复位输入。(3, 4)VSSRX117PPHY RX 的参考接地端。TPIN-128INA差分信号输入。TPIN+139INA差分信号输入。RBIAS1410INAPHY的偏置电流引脚。 必须将此引脚通过2k?(1%)的电阻连接到VSSRX。VDDTX1511PPHY TX的正电源端。TPOU1612O差分信号输出。TPOU1713O差分信号输出。VSSTX1814PPHY TX的参考

18、接地端。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和OSC2引脚之间。ENC28J60要求使用平行切割

19、的晶体。使用顺序切割的晶体可能会使振荡器产生频率不在晶体制造厂商所给的参数范围内。ENC28J60包含一个振荡器起振定时器(OST)以确保在使用振荡器和集成PHY之前它们已经稳定。在发生上电复位或从掉电模式唤醒后,OST经过7500个OSC1时钟周期(300 s)后超时。在这段延时期间,仍可通过SPI总线对所有的以太网寄存器和缓冲器进行读写操作。然而,在这期间不应试图使用软件发送任何数据包、使能接收数据包或访问MAC、MALL或PHY寄存器。当OST超时后,ESTAT寄存器中的CLKRDY位将置1.应用程序软件可通过查询此位来确定何时开始正常器件操作。注:在上位复电或ENC28J60从掉电模式

20、恢复后,在发送数据包、使能接收数据包或允许访问任何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芯片来提供必要的电平转换。使用三态缓冲器便于系统集成,它可以与其他器件共享SPI总线

21、。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 KB 发送/ 接收数据包双端口SRAM 可配置发送

22、/ 接收缓冲器大小 硬件管理的循环接收FIFO 字节宽度的随机访问和顺序访问(地址自动递增) 用于快速数据传送的内部DMA 硬件支持的IP 校验和计算(3)介质访问控制器(MAC)特性 支持单播、组播和广播数据包 可编程数据包过滤,并在以下事件的逻辑“与”和“或”结果为真时唤醒主机:- 单播目标地址- 组播地址- 广播地址- Magic Packet- 由64位哈希表定义的组目标地址- 多达64字节的可编程模式匹配(偏移量可由用户定义) 环回模式(4)物理层(PHY)特性 整形输出滤波器 环回模式(5)工作特性 两个用来表示连接、发送、接收、冲突和全/ 半双工状态的可编程LED 输出 使用两个

23、中断引脚的七个中断源 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寄存器。控制寄存器类型存储器包含控制寄存器(Control Register,CR)5。它们用于进行EN

24、C28J60的配置.控制盒状态获取。可以通过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接口读写,只能通过媒体独立接口MII访问。ENC28J60控制寄存器中最基本和重

26、要的5个寄存器是EIE, EIR, ESTAT, ECON2 和ECON1,其功能分别如下,EIE:以太网中断使能控制寄存器,分为总中断使能和各部分使能控制,EIR:以太网中断标志寄存器,在接收和发送数据包时根据不同的标志位进入不同的执行程序,ESTAT:以太网状态寄存器,反映以太网当前是否数据碰撞、忙信息、错误信息、时钟状态等信息,ECON2:以太网辅助控制寄存器,设置数据指针,芯片节能等,ECON1:以太网主控制寄存器,这个是芯片最常用的寄存器,主要用来设置不同层的寄存器空间,下面将详细论述。在这5个寄存器中,需要设置的是EIE、ECON2和ECON1,需要判断标志位的是EIR和ESTAT

27、。在ENC28J60接收和发送数据包之前,需要对相应寄存器进行设置和初始化,一般情况下这部分工作放在系统复位完成后执行,初始化设置工作包括接收和发送缓冲区、接收过滤、晶振启动时间、MAC寄存器、物理层。初始化芯片之前先关闭单片机的中断输入,对RESET引脚给定一个持续的低电平复位信号,然后对相应的寄存器进行设置。设置完成所有需要的寄存器后,判断以太网状态中的时钟启动标志位是否置位,然后开中断,硬件连接的两个中断引脚都对应多种中断条件,EIE和EWOLIE分别使能不同的中断,均指向中断入口处,因此需要在入口处进行判断每次的中断输入什么条件,EIR是中断标志位,包含了7中不同的中断条件,根据不同的

28、标志位进入不同的执行程序。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)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速

30、度快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/40K/48K/52K/60K/62K字节。(5).

31、片上集成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).内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚

32、可直接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,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定

33、时器。(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个定时器 也可用来再实现2个外部中断(上升沿中断/下降沿中断均可

34、分别或同时支持)。(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-48, LQFP-44, PDIP-40, PLC

35、C-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-2 STC12C5A60S2与ENC28J60连

36、接图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串行输入,数据的最低位首先进入移位器,一帧接收完毕再并行送入缓冲器SBUF中,同时将接收中断标志位RI置位,向CPU发

39、出中断请求。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 位的配合,可使单片机适用于多机通信。方式2 波特

41、率固定,只有两种选择:为振荡频率的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所示。图3-4 RS-232串口(母口)RS-232的标

42、准接口有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最简单的连接方法(即三线连接),图中的2号线与3号线交叉

43、连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可发也可收,发送信号线接接收信号线、接收信号线接发送信号线、5号线同时接地。在这种方式下,通信双方的任何一方,只要请求发送RTS有效和数据终端准备好DTR有效就能开始发送和接收。图3-5 三线连接3.2.5 单片机串口通信设置在系统中,单片机一般称为下位机,通常用来完成数据的采集和上传,由PC机、网络设备、数据库服务器组成的后台应用部分则称为上位机,对下位机的上传数据进行分析并处理。系统充分发挥了单片机在实时数据采集和微机对数据处理显示以及单片机串行口工作方式选择、中断标志、可编程位的设置、波特率的倍增均是通过两个特殊功能寄存器S

44、CON和PCON来控制的。在串口通信模块中,波特率在程序初始化时定义为9600b/s。波特率的产生用定时器产生,在设置时选择定时器1,并将它设为工作方式2,8位的常数自动重新装载的定时器,这种工作方式可以省去用户软件中重装初值的程序,简化定时初值的计算方法,可以相当精确的确定定时时间。计算出定时器的初值之后,在设定串行口的工作方式,在这里令SCON=0X50,即SCON各位中,SM0=0,SM1=1,REN=1,其他控制字为0,选择为工作方式1,8位一步收发。令TCON中的TR1=1,启动定时器,并禁止其他中断。3.3 ENC28J60外围电路ENC28J60的硬件设计需要注意时钟振荡器、复位

45、电路、变压器、接口电路、终端和其他外部器件,输入/输出电平等几个方面事项,下面分别介绍这些需注意的事项。(1)时钟振荡器硬件设计中发现ENC28J60芯片需要一个接在OSC1和OSC2脚上的25MHz的晶振;这个晶振也可由外部时钟信号来完成如图3-6所示。图3-6 时钟振荡器电路(2)复位电路ENC28J60芯片上的电复位功能,引脚RESET上的低电平可以使该芯片进入复位模式;并且引脚RESET内部有弱上拉电阻,同时DSP的复位信号也会使ENC28J60芯片复位。(3)接口电路ENC28J60芯片工作电压为3.3 V,该芯片易于被设计为集成到5 V的系统中。此外该芯片可以通过SPI和微控制器连接;对于没有S

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号