基于tcpip协议单片机的以太网通讯系统设计与研究内容摘要:

、数据段 Data、填充位 PAD 和帧校验序列 FCS 共 8 部分组成。 数据帧传输时,除了数据段的长度不定以外,其他部分的长度固定不变。 数据段为 461500 字节。 以太网规定整个传输包的最大长度不能超过 1514 字节( 14 字节为DA、 SA、 Type),最小不能小于 60 字节。 除去 DA、 SA 和 Type 共 14 字节以外,还最少必须传输 46 字节的数据,当数据段的数据不足 46 字节时需填充,填充字符的个数不包括在长度字段里,超过 1500 字节,需要拆成多个帧传送。 事实上,发送数据时,PR、 SD、 FCS 及填充字段这几个数据段由以太网控制器自动产生;而接收数据时, PR、SD 被跳过,它们只被控制器检测,而不被作为接收数据接收,控制器一旦检测到有效的前序字段(即 PR 和 SD),就认为接收数据开始。 以太网数据传输过程 当一个以太网站点的信息帧被发送到共享的信号信道或介质时,所有与信道相连的以太网接口都读入该帧,并且查看该帧的第一个 48 比特地址字段,其中包含有目的地址。 各个接口把帧的目的地址与自己的 48 比特地址进行比较,如果该地址与帧中的目的地址相同,则该以太网站点将继续读入整个帧,并将它 送给计算机正在运行的上层网络软件。 上层网络软件读入帧的类型字段,判断这个信息帧是 ARP 包还是 IP 包,然后再交给不同的协议栈处理。 当其他的网络接口发现目的地址与它们的地址不同时,就会停止读入信息帧。 10 方案一 对嵌入式系统的网络通讯进行了研究和设计,并在此基础上实现了其远程数据采集的应用。 首先搭建了基于 ARM 内核的嵌入式处理器 AT89C52 的硬件平台,围绕着该处理器的硬件电路设计包括两部分,主体电路设计和外围支持电路设计。 其中,主体电路包括了系统内存单元,调试接口等。 外围支持电路包括输入输 出接口、网络接口以及系统电源等。 其次是该硬件平台上实时操作系统网络环境的建立,这包含两部分任务,一是 ARM 上实时操作系统的实现,阐述一下实时操作系统μ COSⅡ在 ARM处理器上的实现过程。 二是根据μ COSⅡ支持多任务,多用户的特性,为其增加了嵌入式 TCPIP 协议栈 LwIP,详细讨论了实现方法。 最后在该嵌入式软硬件平台上,分别用 BS 和 CS 两种通讯模式,即基于 web 服务器的浏览器访问方式和基于客户端服务器访问方式进行了远程数据采集的应用试验。 系统选用单片机 AT89C52,片外 RAM 使用 HM62256,这 种 RAM 有 32K 字节的使用空间。 这两种芯片的选用,主要是为精简 TCP/PI 协议栈的嵌入提供条件,同时保证拥有较大的数据处理空间。 网卡芯片 DM900O 是主要的工作部件,完成对网络数据的发送和接收。 滤波变压器 PH163112,用来对网络上的脉冲进行转换和滤波。 网络连接采用 I0 BASE— T 电缆连接至 HUB。 方案二 随着网络和单片机应用技术的成熟,工业控制系统逐步向网络远程控制方向发展,嵌入式系统在远程控制领域拥有广泛的应用前景。 本设计方案利用 8位单片机 AT89C52提供的系统资源和处理能力,加上 ISA接口的 10Mb/s网卡芯片 RTL8019AS组成单片机以太网通讯系统,用户终端通过这个系统将现有 RJ45串口设备快速方便地接入网络,解决了嵌入式设备与以太网络的连接问题,从而实现仪器的远程控制、远程数据终端的数据通信等功能。 本方案主要从构建系统理论依据和主要部件全面的分析了系统实现的可能性,最后对构建的系统进行仿真,依据仿真的结果分析了系统的实时性和稳定性。 硬件系统选用 RTL8019AS 作为实现 TCP/IP 协议的物理层。 主处理器采用 AT89C52,单片机外扩了一片 32K 的 SRAM 62256,作为数据存 储区,另外还外扩了一片 1K 的 E2PROM 11 93C46,作为 RTL8019AS 的程序存储区,可向其烧写主控程序和 TCP/IP 协议栈。 方案选取 嵌入式系统的 Inter 接入方式众多,目前比较普遍的方式是处理机加 TCP/IP 协议,方案一,采用固化 TCP/IP 协议的专用芯片。 应用 TCP/IP 协议专用芯片能降低开发难度,但会增加系统硬件电路设计的复杂性,这种方法的开发成本较高。 方案二,在单片机构建的操作系统 (RTOS)上运行 TCP/IP 协议,虽然由于这种方法对硬件配置要求较高,但是他的开发难度降低,而且 开发成本也较低,系统的实时性和稳定性也相对比较高。 通过上述两种方案的类比,本课题选用第二种方案。 12 4 元器件分析 AT89C52单片机简介 在众多的单片机系列中, AT89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系列可编程 Flash 存储器。 AT89C52 具有以下标准功能: 8K 字节 Flash, 256字节 RAM, 32 位 I/O 口线, 3 个 16 位定时器 /计数器,一个 2 级中断结构,全双工串行口,片内晶振及时钟电路。 另外, AT89C52 可降至 0HZ 静态逻辑操作,支持 2 种软件可选择节电模式。 空闲模式 下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。 掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 AT89C52 单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。 ( 1) AT89C52 单片机的硬件结构 AT89C52 单片机的内部结构与 MCS51 系列单片机的构成基本相同。 CPU 是由运算器和控制器所构成的。 运算器主要用来对操作数进行算术、逻辑运算和位操作的。 控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机 各功能部件,从而保证单片机各部分能自动而协调地工作。 它的程序存储器为 8K字节可重擦写 Flash 闪速存储器,闪烁存储器允许在线 +5V 电擦除、电写入或使用编程器对其重复编程。 AT89C52 单片机的指令系统和引脚功能与 MCS51 的完全兼容 [5]。 AT89C52 的硬件结构如图 41 所示: 图 41 单片机 89C52 结构框图 RAM FLASH 串行通讯口 计数器 CPU 时钟 定时器 13 ( 2) 主要性能参数 ① 全静态操作: 0Hz24MHz ② 1000 次可擦写周期 ③ 三级加密程序存储器 ④ 256 8 字节内部 RAM ⑤ 32 个可编程 I/O 口线 ⑥ 3 个 16 位定时 /计数器 ⑦ 8 个中断源 ⑧ 可编程串行 UART 通道 ⑨ 低功耗空闲和掉电模式 ⑩ 8K 字节可重擦写 Flash 闪速存储器 ( 3) AT89C52 管脚说明 VCC:电源 GND:接地 P0 口: P0 口是一个 8 位漏级开路的双向 I/O 口。 作为输出口,每位能驱动 8 个TTL 逻辑电平。 对 P0 口端口写“ 1”时,引脚作高阻抗输入。 当访问外部程序和数据存储器时, P0 口也被作为低 8 位地址 /数据复用,在这种模式下, P0 具有内部上拉电阻。 在 Flash 编程时, P0 口也用来接受指令字节,在程序效验时,输出指令字节。 程序效 验时,需要外部上拉电阻。 P1 口: P1 口是一个具有内部上拉电阻的 8 位是双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑电平。 对 P1 口写“ 1”时,内部上拉电阻的原因,将输出电流 ILL。 P2 口: P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲级可驱动吸收或输出电流 4 个 TTL 逻辑电平。 对 P2 口写“ 1”时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流 ILL。 P3 口: P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口 , P3 输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑电平。 对 P3 口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流 ILL。 P3 口除了作为一般、的 I/O 口线外,更重要的是它的第二功能 [6],如下表 41 所示。 图 42 AT89C52 外部引脚图 14 表 41 P3 口引脚第二功能 RST:复位输入。 晶振工作时, RST 脚持续 2 个机器周期以高电平将使用单片机复位。 ALE/ PROG :地址锁存器控制信号( ALE)是访问外部程序存储器时,锁存低 8位地址的输出脉冲。 在 Flash 编程时,此引脚( PROG )也使用作编程输入脉冲。 在一般情况下, ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。 然而,特别强调,在每次访问外部数据存储器时, ALE 脉冲将会跳过。 如果需 要,通过将地址为 8EH 的 SFR 的第 0 位置“ 1”, ALE 操作无效。 这一位置“ 1”,ALE 仅在执行 MOVX 或 MOVC 指令时有效。 否则, ALE 将被微弱拉高。 这个 ALE使能标志位的设置对微控制器处于外部执行模式下无效。 PSEN :外部程序储存器选通信号,是外部程序存储器选通信号。 当 AT89C52 从外部程序存储器执行外部代码时, PSEN 在每个机器周期被激活两次,而在访问外部数据储存器时, PSEN 将不被激活。 /EAVPP :访问外部程序存储器控制信号。 为使能从 0000H— FFFFH 的外部程序存储器读取指令, EA 端必须保持低电平(接地)。 为了执行内部 程序指令, EA 应该接VCC。 在 flash 编程期间, EA 也接受 12 伏 VPP 电压。 XTA L1:振荡器反相放大器及内部时钟发生器的输入端。 XTA L2:振荡器反相放大器的输出端。 RTL8019AS简介 RTL8019AS 是本系统与以太网通讯的基础,它用以实现系统与网络上其他节点之间的报文发送与接收功能,处于 TCP/IP 协议栈的数据链路层,是信息传送、控制和管理的重要环节 [7]。 其功能大致可分为以下两种。 ⑪ 通信数据的发送和接收。 发送时,将发送来的数据按照特定的格式并加上前导码、帧定界符等装配成帧,引脚号 第二功能 引脚号 第二功能 RXD(串行输入) T0(定时器 0 外部输入) TXD(串行输出) T1(定时器 1 外部输入) INT0(外 部中断 0) WR(外部数据存储器写选通) INT1(外部中断 1) RD(外部数据存储器读选通) 15 并进行 CRC 校验。 校验后,将数据串行的从网线上发送出去。 接收时,判断报文的目的地址是否为本机地址,如果是,对报文进行校验。 校验正确,则将报文发往存储器本发送一个 ACK 应答帧。 如果校验后发现报文错误,则将收到的报文丢弃并发送一个NAK 否定应答帧。 ⑫ 载波信号的收发和控制。 这项功能包括载波监听、发送时间等。 确切的说,网络控制器是一个 DTE(数据终端设备)。 按照 协议的模型功能划分,可将 10Mb/s 以太网控制器的功能模块划分为介质存取控制( MAC)子层、接入单元接口 (AUI)、介质接入单元( MAU)和物理信号规范 (PLS)等 4 部分,其大体结构框图如图 43 所示。 核心单元的功能如下: ① MAC 子层负责执行 CSMA/CD 协议,负责发送和接收数据封包以及通信媒体管理、完成数据帧同步、接收数据帧时给数据帧定界、检测目的地址是否匹配以及冲突处理。 ② PLS 完成发送数据、接收数据、载波监听、错误检测等功能,这些功能都与通讯媒介无关。 PLS 将 MAC 传送来的 NRI(不归零编码)编码的数据转换成曼彻斯特编码后并将数据通过 AUI 发送到 MAU,或通过 AUI 从 MAU 接收以曼彻斯特编码方式编码的数据,并将数据进行 NRI 译码后将数据发送到 MAC。 图 43 RTL8019AS 结构框图 ③ AUI 提供 PLS 功能与 MAU 之间信号的通道。 MAU 与通讯媒介直接相关,是DTE 与网络介质之间的功能、电气与机械的接口。 它将随着通信媒介的不同而不同,用于完成发送数据、接收数据、回环以及冲突检测、 SQE(信号质量错误)测试等功缓冲存储器 MAU MAC PLS AUI 地址寄存器 接口 系统总线 16 能。 网络的冲突检测、冲突退避重发、检测接收报文目的地址是否匹配、检测报文 CRC校验等工作都由硬件来完成,本系统中只要对发送、接收、初始化、中断处理、出错处理和 I/O 操作等进行控制。 RTL8019AS 内部有两块 RAM 区。 一块容量为 16KB,地址为 0x4000— 0x7fff,用于收发缓冲。 收发缓冲以页为单位,每页 256 字节,共 64 页,对应的页号为 0x40—0x80。 一般将前 12 页(即地址为 0x4000— 0x4bff)作为发送缓冲区,且分为两个 6 页。 这两个发送缓冲区交替使用,可提高。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。