基于单片机的嵌入式网络接入设计方案

发布者:Delightful789最新更新时间:2018-02-12 来源: eefocus关键字:单片机  嵌入式  网络接入 手机看文章 扫描二维码
随时随地手机看文章

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

    硬件设计与实现


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

     

嵌入式协议转换硬件框图

     

图1 嵌入式协议转换硬件框图

    系统的软件设计与实现

    为适应上网的需求,系统软件设计主要包括两部分内容:一是要执行对RTL8019AS等的控制功能,二是要执行与连接Internet相关的功能,实现TCP/IP协议。本文着重介绍第二部分,主程序采用C51语言编写。

    RTL8019AS初始化

    要将嵌入式系统接入以太网,首先要设置RTL8019AS的工作方式和工作状态,分配收发数据的缓冲区,通过对地址及数据口的读写来完成以太网帧的接收与发送。然后设置RTL8019AS的工作参数,亦即设置内部控制寄存器。对RTL8019AS的工作参数进行设置完毕后,进入正常工作状态,接下来就读写RTL8019AS的RAM以完成数据包的接收和发送。由于篇幅有限,这里就不再详述。

    TCP/IP模型

    TCP/IP协议是一套把Internet上的各种系统互连起来的协议族,保证Internet上数据的准确快速传输。TCP/IP通常采用一种简化的四层模型:应用层、传输层、网络层、链路层。

    本系统中,应用层传递来自以太网和数据终端的数据,并对数据报作打包拆包处理。传输层采用传输控制协议TCP或用户数据协议UDP。网络层实现IP协议,还要实现能报告数据传输差错等情况的ICMP协议。链路层部分由RTL8019AS完成,链路层由控制同一物理网络上的不同机器间数据传送的底层协议组成。

    在单片机里只实现与需要有关的部分,而不使用的协议则一概不支持。单片机应用的TCP/IP协议大多是为了完成数据采集和数据传输,而不需要网页浏览、文件传输这些功能。

    ARP协议(地址解析协议)

    以太网是TCP/IP协议主要采用的局域网技术,是系统接入Internet的基础。ARP本质是完成网络地址到以太网物理地址的动态映射。UNIX系统的ARP协议支持以太网、令牌环等网络,但我们的单片机系统里只支持以太网。

    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是系统的主应用程序的流程图。


系统的主应用程序的流程图

     

图3 系统的主应用程序的流程图

    单片机实现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来存放收到的以太网数据包。收到一包就处理一包。

    (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协议,并支持主动和被动连接、跨越网关,实现互联网接入,在被控设备与上位控制机之间提供了一条透明的传输通道,用户不需对原有串口设备或其他数字设备做任何修改,就可享受到网络的好处。目前,本文的系统已被成功使用在网络化的数据采集器中。


关键字:单片机  嵌入式  网络接入 引用地址:基于单片机的嵌入式网络接入设计方案

上一篇:液晶显示器上显示字符和65 536色彩色图形的嵌入式设计方案
下一篇:嵌入式系统bootrom自动备份及切换技术的应用

推荐阅读最新更新时间:2024-03-16 15:54

51单片机游戏(俄罗斯方块)
一、电路设计 此电路由AT89C51最小系统、12864显示模块和独立按键组成。 可实现类似俄罗斯方块的游戏。 二、运行效果 三、部分代码 /*想要更多项目私wo!!!*/ #include REGX52.H #include pic.c #include intrins.h #define LCD_DATA P2 #define button_delay 150 //按键延时 #define button_acceleration 65 //按键加速度阈值 #define GAME_LOCATION 30 sbit button_a = P3^4; //变形 sbit button_b = P3^5; //
[单片机]
51<font color='red'>单片机</font>游戏(俄罗斯方块)
模拟+MCU的集成芯片为TI工业4.0铺路
传承半个世纪的感测创新,压力传感信号调节器PGA900孕育而生 半个世纪的感测技术创新历程 半个世纪的科技发展,让人类经历了工业电气化、自动化、电子信息化,现在又将迎来工业4.0时代。对于每一个企业和个人,这都是一个最好的时代,如果勇于创新和把握机遇;这也是一个最坏的时代,如果你裹足不前。下一站是天堂还是地狱,很大程度上就取决你是否有创新的产品满足市场需求。德州仪器(TI)深知这个道理,从其感测技术创新历程就能看出来。 你是否知道,TI在感测技术上有50年的历史。 你是否知道,你正在使用的温度、湿度、接近、光照、占用、气体/液体、生物感测、位置、压力、材料感测技术,TI都有。
[工业控制]
模拟+<font color='red'>MCU</font>的集成芯片为TI工业4.0铺路
自动驾驶与SOA架构下MCU的变化 兼论国产MCU
自动驾驶与SOA架构下MCU的变化主要是算力要大幅提升,运行频率至少在300MHz以上,片上Flash容量不低于20MB,足以运行轻量虚拟机,还要具备矢量运算能力。汽车SOA架构即服务导向架构或软件定义汽车架构,在硬件领域对应的就是Zonal架构,即中央计算服务器架构,也有称之为域/区架构。 典型Zonal架构 图片来源:互联网 整车厂已在分布式架构软件开发上投入了大量精力财力人力,这是一笔巨大的研发资产,物理上的计算单元只有1-2个,要想复用分布式架构上的软件成果,逻辑上需要虚拟出原本一个功能对应一个ECU的架构。 大多数现代ECU将运行AUTOSAR(AUTomotive Open System ARchite
[汽车电子]
自动驾驶与SOA架构下<font color='red'>MCU</font>的变化 兼论国产<font color='red'>MCU</font>
自制51单片机常用头文件(中断)
#ifndef __CONFIG_H__ #define __CONFIG_H__ /********************************/ /* 以下为系统配置 */ /********************************/ #include regx51.h #include string.h #include intrins.h /***************************************************** 函 数 名:void Clearmen(void) 功 能:系统初始化 说 明:对系统引脚变量及中断进行初始化 入口参数:无 返 回
[单片机]
简单计时器的51单片机实现
前言 闲来无聊,虽然期末考试临近,但还是不想复习。突然有朋友问我这个 用单片机控制两个LED数码,采用静态链接,要求两个数码管显示00~99计数,时间间隔为1s(中断方式)。分别设计出电路图和程序。 我一寻思,这个简单,我就直接源代码一敲就发给他了。事后还是觉得有必要验证一下,就在Protues里面仿真试了一下,果然有两个小细节错了
[单片机]
简单计时器的51<font color='red'>单片机</font>实现
利用单片机和FPGA实现系统中可延时调节模块的设计
基于P89C51RD2和FPGA的信号延时模块主要用在传输时钟信号、数字同步信号等对信号延迟有高要求的点对点传输系统中,它可对多路信号进行单独的适当延时调整。造成信号的延迟原因有:不同的传输线路、信号处理时间不同以及器件速度存在差异等。无论何种原因,延时模块可以对输入的已存在有延时积累的信号进行不同精度、不同范围的延时量调节,使信号到达终端后相对延迟时间符合要求。由于利用了可编程器件FPGA和增强型单片机,延时模块不仅能较好地实现其功能,而且实现了系统的模块化和微型化,利于模块在系统中的使用和模块的二次开发。 系统结构及硬件设计 系统结构框图如图1。其硬件结构比较简单,主要由单片机P89C51RD、RS-232/TTL接口电路
[单片机]
利用<font color='red'>单片机</font>和FPGA实现系统中可延时调节模块的设计
AVR单片机实现智能电冰箱控制系统方法
简介:现今,电冰箱已经普及家家户户,人们对电冰箱的性能和控制功能特别是智能程度的要求是越来越高,本方所讲述的AVR单片机智能电冰箱控制系统,具有功能齐全、操作简单、使用方便等优点,在国内同类产品中处于较高水平,具有较高的实用和推广价值。 现今,电冰箱已经普及家家户户,人们对电冰箱的性能和控制功能特别是智能程度的要求是越来越高,本方所讲述的AVR单片机智能电冰箱控制系统,具有功能齐全、操作简单、使用方便等优点,在国内同类产品中处于较高水平,具有较高的实用和推广价值。并且该系统在设计完成之后进行了多次试验,试验数据表明该系统的各项性能指标和功能达到了预期的设计目的。 多年来电冰箱在国内市场上一直作为储物、保鲜的空间,人们对于电
[单片机]
AVR<font color='red'>单片机</font>实现智能电冰箱控制系统方法
51单片机控制步进电机硬件连接部分
1、概要: 本案例讲解的内容是51单片机控制步进电机硬件连接部分。后续会分别讲解单片机程序,S曲线加减速方法,上位机等相关内容 2、功能原理图: 2.1、51单片机: ①输出脉冲到TB6600驱动器PUL端口,从而控制步进电机转动 ②控制TB6600驱动器ENA端口,从而控制步进电机使能 ③控制TB6600驱动器DIR端口,从而控制步进电机转动方向 2.2、步进电机: ①提供机械动力 2.3、稳压电源: ①为步进电机提供电源 2.4、TB6600驱动器: ①二相四线步进电机专用驱动器 3、实物图: ** ①** 、51****单片机控制板一个 ** ②** 、二相四线步进电机一个 ** ③** 、稳压电源一个 ** ④** 、
[单片机]
51<font color='red'>单片机</font>控制步进电机硬件连接部分
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved