0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机网络的设计与组成

放人 来源:电气工程及其自动化学习 作者:电气工程及其自动 2022-11-09 13:31 次阅读

网络技术应用日益广泛的今天,网络传输是最经济有效的数据传输方式。如何利用廉价的51单片机来控制网卡芯片进行数据传输,加载TCP/IP协议连接到互联网,实现网络通信成了众多设计者的目标。但由于指令及资源的限制,实施过程会有许多困难。我们在设计方案中舍弃了耗费资源的高级协议,采用发送小数据包的方式以避免分段,来简化TCP协议和UDP协议,实现互联接入。.

硬件设计与实现系统的硬件结构框图如图1所示。本系统的微控制器是Winbond公司的78E58,网络接口芯片是与NE2000系列兼容的Realtek公司的RTL8019AS.RTL8019AS内置了10BASE-T收发器,外接一个隔离LPF滤波器,经RJ-45接口输出。外部RAM是62256,24C02是I2C总线的 EEPROM.

d1cb8436-5fef-11ed-b468-dac502259ad0.jpg

图1 嵌入式协议转换硬件框图系统的软件设计与实现为适应上网的需求,系统软件设计主要包括两部分内容:一是要执行对RTL8019AS等的控制功能,二是要执行与连接Internet相关的功能,实现TCP/IP协议。本文着重介绍第二部分,主程序采用C51语言编写。RTL8019AS初始化要将嵌入式系统接入以太网,首先要设置RTL8019AS的工作方式和工作状态,分配收发数据的缓冲区,通过对地址及数据口的读写来完成以太网帧的接收与发送。然后设置RTL8019AS的工作参数,亦即设置内部控制寄存器。对RTL8019AS的工作参数进行设置完毕后,进入正常工作状态,接下来就读写RTL8019AS的RAM以完成数据包的接收和发送。由于篇幅有限,这里就不再详述。

d1dcd740-5fef-11ed-b468-dac502259ad0.jpg

TCP/IP模型TCP/IP协议是一套把Internet上的各种系统互连起来的协议族,保证Internet上数据的准确快速传输。TCP/IP通常采用一种简化的四层模型:应用层、传输层、网络层、链路层。 本系统中,应用层传递来自以太网和数据终端的数据,并对数据报作打包拆包处理。传输层采用传输控制协议TCP或用户数据协议UDP.网络层实现IP协议,还要实现能报告数据传输差错等情况的ICMP协议。链路层部分由RTL8019AS完成,链路层由控制同一物理网络上的不同机器间数据传送的底层协议组成。 在单片机里只实现与需要有关的部分,而不使用的协议则一概不支持。单片机应用的TCP/IP协议大多是为了完成数据采集和数据传输,而不需要网页浏览、文件传输这些功能。 ARP协议(地址解析协议) 以太网是TCP/IP协议主要采用的局域网技术,是系统接入Internet的基础。ARP本质是完成网络地址到以太网物理地址的动态映射。UNIX系统的ARP协议支持以太网、令牌环等网络,但我们的单片机系统里只支持以太网。

d2028c6a-5fef-11ed-b468-dac502259ad0.jpg

IP协议(网际协议)IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。就对某些协议而言,IP包最大可以为65K,可以分段传输,而在单片机里根本无法容纳如此大的数据包,因此一般是不支持分段的。我们的设计中采用发送小数据包的方式,以避免分段。TCP协议(传输控制协议)TCP数据封装在一个IP数据报中,并具有自己的TCP首部, TCP协议定义十分复杂,鉴于51单片机的片内资源十分有限,本系统对TCP协议进行了一定的简化处理。标准的TCP协议使用慢启动的滑动窗口机制,如果只使用单个窗口,就变成了一种简单确认的处理方法。即只需对单个数据报发送和确认,节约了系统资源,也使维护更加方便。 编程实现TCP协议的另一个难点在于TCP建立连接和终止连接的具体过程的实现。TCP协议是一个面向连接的协议,连接的双方无论是哪一方向另一方发送数据,都必须先通过“三次握手”过程在双方之间建立一条连接,和通过“四次握手”终止连接。 连接建立后,TCP就可以发送数据块,称为数据段。当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。另外,TCP将保持它首部和数据的检验和。系统主应用程序的实现系统初始化后,进入主程序循环的两部分:一是对接收到的以太网数据帧进行解包,供应用程序使用,一是对发送的数据进行封装并发送,使采用TCP/IP协议的以太网内的所有计算机都能收到此数据帧。图2是系统的主应用程序的流程图。

d22f9b7e-5fef-11ed-b468-dac502259ad0.jpg

图2 系统的主应用程序的流程图 单片机实现TCP/IP协议的难点 51单片机的程序空间、可用的内存RAM、运算速度、指令集等原因,在UNIX或Windows上实现的TCP/IP协议的源代码并不能够直接移植到8位的单片机上。在51单片机上编写代码会受许多限制,特别是实现TCP/IP协议这样关系复杂的程序,我们必须根据实际情况尽可能挖掘51单片机的性能。综合来说,单片机实现与UNIX实现TCP/IP有如下区别: (1)操作系统:Windows或UNIX都是多任务操作系统,这使得代码编写简单化,在单片机只能是单任务系统,代码结构为顺序执行+硬件中断的方式,无法并发执行。 (2)内存分配:Windows或UNIX的内存分配是动态的。而一般单片机只有外接的一块32K字节的RAM,并同时被各个协议使用。一个最大的以太网数据包有1.5K字节,分配一包的缓冲区就要1.5K字节。为此,我们分配一个256×6=1536个字节的固定的RAM来存放收到的以太网数据包。收到一包就处理一包。

d253efe2-5fef-11ed-b468-dac502259ad0.jpg

(3)指针:在PC里所有程序都必须先放在RAM里才能运行,所以它的指针都指向RAM.而单片机的结构和PC的结构有很大差别,指针类型很多,各指针运算的速度也不一样,特别是“一般指针”运算很慢,还会占用很多程序空间。UNIX实现TCP/IP的源代码中,用得最多的就是指针,而在单片机里一般要求少用指针,或使用特定类型的指针。对使用UNIX的源代码需要作很多的改动。 (4)参数传递:在UNIX实现的TCP/IP源代码中,一般有很多的参数传递,而在单片机里允许传递的参数是有限的(因为受到内部RAM的限制),同时参数传递的过程要浪费程序代码空间,也降低单片机执行速度。所以在单片机的实现里,一般不要做太多的参数传递,而多使用公共的全局变量来实现调用的过程。 (5)硬件接口:在UNIX或Windows里,对网卡驱动无一例外都是采用中断方式,因为PC的处理速度快,一次中断的处理时间也很短,不会影响系统内的其它中断。而在单片机的应用中,大部分的方案都是查询式的。PC的NE2000的网卡,一般都是用16位DMA的方式,而在单片机里却只能用8位DMA方式。这也使UNIX对网卡驱动的代码不能直接移植。结语

本文设计的嵌入式网络接入方案,采用廉价的8位51单片机实现了简化TCP协议和UDP协议,并支持主动和被动连接、跨越网关,实现互联网接入,在被控设备与上位控制机之间提供了一条透明的传输通道,用户不需对原有串口设备或其他数字设备做任何修改,就可享受到网络的好处。目前,本文的系统已被成功使用在网络化的数据采集器中。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6023

    文章

    44389

    浏览量

    629074
收藏 人收藏

    评论

    相关推荐

    一文读懂什么单片机组成结构与应用

    欢迎来到单片机的世界,这是一种微小(但功能强大)的设备,改变了嵌入式系统的面貌。在本文中,您将了解单片机的一些基本知识、单片机的结构以及微处理器与单片机之间的一些区别。在深入
    的头像 发表于 08-09 11:49 1450次阅读
    一文读懂什么<b class='flag-5'>单片机</b>:<b class='flag-5'>组成</b>结构与应用

    单片机的最小系统由什么组成 单片机的最小系统包括哪些

    单片机(Microcontroller Unit,MCU)的最小系统包括以下几个主要组成部分: 单片机芯片:单片机是整个最小系统的核心部分,它集成了中央处理器(Central Proc
    的头像 发表于 02-02 11:27 8533次阅读

    什么是单片机? 单片机由哪几个主要部分组成?

    )、存储器(ROM、RAM)、输入输出(I/O)接口等功能的微型计算机系统。相比于传统的多芯片电路设计,单片机具有体积小、成本低、功耗低等优势,因而在许多领域被广泛使用。 二、单片机的主要组成部分 中央处理器(CPU) 中央处理
    的头像 发表于 01-22 10:38 7664次阅读

    单片机最小系统的作用 单片机最小系统包含哪几部分

    单片机最小系统是指能够独立工作的最基本的硬件组成,也是单片机的必备基础。它的作用是为单片机提供工作所需的最基本的资源和功能,使单片机能够正常
    的头像 发表于 01-18 13:54 3479次阅读

    单片机按键切换模式命令

    单片机按键切换模式命令的原理、实现方法和应用场景。 一、原理与概述 单片机系统是由单片机芯片、外部器件和外围电路组成的一个完整的嵌入式系统。在系统设计中,为了使系统更加灵活、多样化,通
    的头像 发表于 12-15 10:31 2385次阅读

    单片机按键切换模式怎么设置

    单片机:选择一款合适的单片机型号,例如常见的8051、STM32等。 按键模块:用于实现按键输入,通常由一个或多个按键组成。 电路板:将单片机、按键模块和其他相关元件连接在一起的电路
    的头像 发表于 12-13 11:07 3221次阅读

    单片机最小系统的相关知识

    单片机最小系统,或者称为最小应用系统,是指用最少的元件组成单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电
    发表于 11-29 15:57 1667次阅读
    <b class='flag-5'>单片机</b>最小系统的相关知识

    单片机最小系统的组成部分 使用proteus软件搭建最小单片机系统的操作方法

    单片机是一种集成了微处理器、存储器、输入/输出接口等功能的集成电路芯片,它可以用来实现各种控制功能。单片机最小系统是指只包含了单片机芯片和必要的外围电路的系统,它是单片机应用的基础。
    的头像 发表于 11-09 16:24 1845次阅读
    <b class='flag-5'>单片机</b>最小系统的<b class='flag-5'>组成</b>部分 使用proteus软件搭建最小<b class='flag-5'>单片机</b>系统的操作方法

    单片机矩阵按键的工作原理和组成部分

    单片机矩阵按键是一种常用的输入设备,它可以让用户通过按下不同的按键来控制单片机的功能。矩阵按键的原理是利用了电路的开关特性,将多个按键排列成一个矩阵,每个按键都连接了一行和一列的电路。当用户按下某个
    的头像 发表于 11-09 16:19 2578次阅读
    <b class='flag-5'>单片机</b>矩阵按键的工作原理和<b class='flag-5'>组成</b>部分

    单片机学的是什么

    单片机,对于每一个硬件行业的从业者或者在校电子类专业的学生,相信对于这个名词都不陌生,但是掌没掌握就另说了。 那单片机到底学的是什么呢? 其实单片机在生活中就非常常见,目前市面上主流的单片机
    的头像 发表于 11-07 10:38 1065次阅读
    <b class='flag-5'>单片机</b>学的是什么

    C51单片机基础元件及C51单片机共阴/共阳数码管的内部组成结构

    单片机共阴/共阳数码管的内部组成结构 单片机基础元件 审核编辑 黄宇
    的头像 发表于 11-06 23:24 788次阅读
    C51<b class='flag-5'>单片机</b>基础元件及C51<b class='flag-5'>单片机</b>共阴/共阳数码管的内部<b class='flag-5'>组成</b>结构

    单片机复位电路的作用和实现原理

      单片机复位电路是单片机系统中的一个重要组成部分,它的作用是在系统上电或异常情况下对单片机进行复位操作,使单片机能够从初始状态开始工作。
    的头像 发表于 10-20 17:31 4719次阅读

    基于单片机和FPGA的网络数据加密实现

    电子发烧友网站提供《基于单片机和FPGA的网络数据加密实现.pdf》资料免费下载
    发表于 10-18 09:48 0次下载
    基于<b class='flag-5'>单片机</b>和FPGA的<b class='flag-5'>网络</b>数据加密实现

    单片机采样电压问题 单片机的供电电压过低对单片机AD采样有影响吗

    单片机采样电压问题 单片机的供电电压过低对单片机AD采样有影响吗? 单片机的AD采样依赖于其供电电压,因此当单片机的供电电压过低时,会对其A
    的头像 发表于 10-17 18:17 2355次阅读

    如何学习单片机步骤的知识梳理

    单片机的学习实践 单片机提高重在实践,想要学好单片机,软件编程必不可少。但是熟悉硬件对于学好单片机的也是非常重要的。
    发表于 10-07 09:55 611次阅读