相关热词搜索:单片机 网络 TCP IP tcp ip网络编程 tcp ip网络协议
李继强 长春建筑学院电气信息学院 130607
【文章摘要】
在TCP/IP 协议的过程,我们经常面临单片机如何控制以太网网卡进行传输数据,如何加载TCP/IP 协议连接到互联网的问题。TCP/IP 的核心功能是寻址和路由选择以及传输控制。单片机的应用对网络通信功能的实现起到了巨大的作用。目前,现有广泛使用的单片机TCP/IP 协议栈。在拿到一个单片机TCP/IP 协议栈以后, 就要进行上层接口和下层接口这两个部分处理工作。
【关键词】
TCP/IP 协议;单片机;上层接口;下层接口
以太网和TCP/IP 协议是目前使用最广泛的协议。单片机如何控制以太网网卡进行传输数据,如何加载TCP/IP 协议连接到互联网,在TCP/IP 协议的过程是经常面临的问题。下面,基于TCP/IP 的网络单片机应用进行探讨。
1 TCP/IP 协议
TCP/IP 协议即传输控制协议/ 网间协议,该协议集确立了 Internet 的技术基础。TCP/IP 协议覆盖了OSI 网络结构七层模型中的六层,并支持从交换(第二层) 诸如多协议标记交换,到应用程序诸如邮件服务方面的功能。TCP/IP 的核心功能是寻址和路由选择(网络层的 IP/IPV6 ) 以及传输控制(传输层的 TCP、UDP)。
1.1 IP 协议。在网络通信中,网络组件的寻址对信息的路由选择和传输来说是相当关键的。相同网络中的两台机器间的消息传输有各自的技术协定。LAN 是通过提供6 字节的唯一标识符(“MAC”地址)在机器间发送消息的。SNA 网络中的每台机器都有一个逻辑单元及与其相应的网络地址。DECNET、AppleTalk 和Novell IPX 均有一个用来分配编号到各个本地网和工作站的配置。除了本地或特定提供商的网络地址,IP 为世界范围内的各个网络设备都分配了一个唯一编号,即 IP 地址。IPV4 的 IP 地址为4 字节,按照惯例,将每个字节转化成十进制(0-255) 并以点分隔各字节。IPV6 的 IP 地址现已经增加到16 字节。
1.2 TCP 协议。通过序列化应答和必要时重发数据包,TCP 为应用程序提供了可靠的传输流和虚拟连接服务。TCP 主要提供数据流转送,可靠传输,有效流控制,全双工操作和多路传输技术。根据协议功能和其在 OSI 七层网络通信参考模型的映射关系,可以全部列出TCP/IP 协议。
然而,TCP/IP 并不完全遵循 OSI 模型,例如:大多数 TCP/IP 应用程序是直接在传输层协议 TCP 和 UDP 上运行,而不涉及其中的表示层和会话层。
2 单片机及其应用
所谓单片机(m1crocontroller) 是指在一个集成芯片中,集成微处理器(CPU)、存储器、基本的I/O 接口以及定时/ 计数、通信部件,即在一个芯片上实现一台微型计算机的基本功能。尽管目前单片机的品种很多,但其中最具典型性的当数Intel 公司的MCS-51 系列单片机。直到现在MCS-51 仍不失为单片机中的主流机型。国内以Intel 的MCS-51 系列单片机应用最广。单片机也被称为微控制器(Microcontroller),由芯片内仅有CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。单片机是70 年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O 接口和中断系统集成于同一硅片的器件。单片机用于控制有利于实现系统控制的最小化和单片化,简化一些专用接口电路,如编程计数器、锁相环(PLL)、模拟开关、A/D 和D/A 变换器、电压比较器等组成的专用控制处理功能的单板式微系统。单片机是所有微处理机中性价比最高的一种,随着种类的不断全面,功能不断完善,其应用领域也迅速扩大。单片机在智能仪表、实时控制、机电一体化、办公机械、家用电器等方面都有相当的应用领域。尽管随着信息时代的到来,传统单片机固有的结构缺陷,呈现出诸多弊端。总的说来,不管是数据的传输还是网络的通讯都离不开单片机,随着单片机的应用不断渗透到日常生活的各个领域,单片机的应用对网络通信功能的实现起到了巨大的作用。
3 单片机TCP/IP 协议栈的使用
目前,现有广泛使用的单片机TCP/ IP 协议栈,主要几种:eCos 单片机TCP/ IP 协议栈、ZLIP 51 单片机TCP/IP 协议栈、uc/ip 单片机TCP/IP 协议栈、lwIP 单片机TCP/IP 协议栈、 uIP 单片机TCP/IP 协议栈、TinyTCP 单片机TCP/IP 协议栈、WATTCP 单片机TCP/IP 协议栈。在取得一个单片机TCP/IP 协议栈以后,就要进行上层接口和下层接口这两个部分处理工作。
3.1 上层接口。使用单片机TCP/IP 的目的就是要实现数据的传送,即从PC 机(或者另一个单片机)上传送过来的数据能够在本地单片机上接收,反之亦然。但如果屏蔽底层的话,单片机TCP/IP 协议栈就是一个传输数据的手段。所以最后归结到了使用send()、recv() 函数即可。这就是使用单片机TCP/IP 协议栈的核心所在。但是事实上并没有这么简单,因为对于TCP 需要有发起连接、接受连接、发送数据、接收数据、关闭连接等操作以配合数据的传输。TCP/IP 协议栈一般为用户提供如下的相关接口:一是初始化协议栈和释放协议栈的函数接口,类似Init(), Release() 之类的函数。二是提供类似BSD socket 的API 函数,用户调用此类函数进行发起连接、接受连接、发送数据、接收数据、关闭连接等操作。三是接受连接、接收数据、被动关闭的处理。由于此类操作是上位机发起的,所以TCP/IP 协议栈必须提供一套机制来处理此类事件的发生。
3.2 下层接口。下层接口是一个比较复杂的部分,实际上是TCP/IP 协议栈和底层硬件的对接问题。如果用户将TCP/IP 协议栈移植到自己的单片机系统上。由于硬件上存在一定的差异,就需要修改底层代码。下层接口,两个关键步骤:一是网卡驱动。如果TCP/IP 协议栈已经提供了网卡驱动,并且驱动和用户使用的网卡芯片一样,那么就相对容易一些。只需要修改网卡的基地址即可。否则需要自己动手写驱动程序。如果网卡采用RTL8019AS 可以参考老古开发网的单片机与TCP/IP 网络。在cs8900 的驱动中,主要完成激活网卡和申请中断两件事情。二是TCP/ IP 底层接口。一般单片机TCP/IP 需要底层为其提供定时中断、网卡中断处理的入口。底层也需要做相应的处理。
【参考文献】
[1] 谢晓竹, 傅军. 基于TCP / IP 的网络单片机应用[J]. 计算机工程,2003(15)
[2] 施达雅. 基于TCP/IP 的网络单片机应用[J]. 咸宁学院学报,2011(12)
[3] 师恩培. 韩桂丽. 网络单片机PIC
[4] 谢晓竹, 傅军. 基于TCP/IP 的网络单片机应用[J], 计算机工程,2003(15).