陈舜青
摘要:TCP/IP是计算机网络标准的一种,这个标准可以使传输的数据能在互联网上实现,不一定限制在局域网。该文提出了单片机与Internet网络通信的实现方案,重点讨论利用单片机控制网卡实现网络传输的技术。
关键词:TCP/IP;单片机;嵌入式设备
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)31-7523-02
Abstract: TCP/IP is a computer network standard, this standard can make the transmission of data can be realized in the Internet, do not be restricted in LAN. This paper presents the realization scheme of network communication of MCU and Internet, focuses on the use of single-chip microcomputer to control network card to realize the network transmission technology.
Key words: TCP/IP; Single chip microcomputer;Embedded equipment
1 概述
随着计算机技术、网络通信的迅速发展,人们在工作和日常生活中已渐渐离不开网络。早先只有PC机与Internet网络连接,现在家电、仪表等智能化设备也连上网了,而这些设备大多要用到8位微处理器。这些设备要实现与Internet网络的通信,就要扩展微处理器的网络功能。TCP/IP协议是传输控制/网际协议,它是Internet互联网的基础,是网络中使用的基本的通信协议,实现电子设备网络化是信息时代的需要。[1]
2 单片机上实现TCP/IP的必要性
在单片机上实现TCP/IP究竟有没有必要?由于TCP/IP是一种计算机网络标准,以太网也已经普遍使用。使用TCP/IP和以太网系统,结构会比较简单。嵌入式TCP/IP协议的单片机系统,具有硬件少、成本低、传输速度快、体积小、操作方便等优点。特别适合现有的网络传输系统,在数据传输、数据采集等领域具有广阔的应用前景。
比如目前比较流行的智能小区,每个家庭以太网的8芯双绞线一般都会有,在布线上,不能为每家布很多线。宽带上网是直接通过以太网的,像远程抄表设备,可以利用已有的以太网,但如果用其它网络就要另外排线。以太网实现联网成本低,将来还有可能把计算机、电视、电话三网合一。
采用TCP/IP可以使平台统一、标准化,传输数据可以不局限在局域网上,而可以在全世界有互联网的任何地方。假如在某个区域安装了一些监控设备,但接收信息并进行处理的数据中心却在其他地方,使用TCP/IP可以实现这种情况下的信息收集。TCP和UDP是TCP/IP协议中包含的两种协议,TCP能确保数据传输正确无误,UDP能面向音频、视频、广播等方面的应用。一个大型的智能小区的设备,统一遵守TCP/IP协议,多种设备才会兼容,由多家设备供应商提供的设备,远程抄表系统、智能防盗系统等在统一的平台上就可以兼容 [2] 。
3 单片机与电脑的不同点
单片机和电脑有很大的不同,在实现通信任务时各有利弊。电脑的存储容量大,在PC机上撰写TCP/IP程序,不必顾及代码大小和程序运行速度。但在单片机上既要考虑代码大小,又要考虑代码效率,即程序运行速度。单片机的存储容量中只有64K字节直接寻址空间,可以访问的内存RAM也小得很,跟PC机的存储空间比相差很远。内存可用的RAM也很小,最多只能扩64K的RAM,单片机的运算速度也极为有限 [3] 。但是,单片机可以利用有限的空间以及特殊功能寄存器,譬如,使用SFR寄存器可以有效地对硬件I/O接口操作 [2] 。
总体上,在单片机与电脑UNIX系统下实现TCP/IP有以下区别:操作系统、内存分配、指针、参数传递、变量定义、协议支持、硬件接口。
单片机TCP/IP就是在单片机上运行的TCP/IP协议栈,也就是TCP/IP各层协议的总和。由于嵌入式联网设备越来越多,需要在嵌入式设备上实现TCP/IP协议栈,但是嵌入式设备不同于PC机,它们一般采用MCU而不是CPU作为核心处理器。
4 TCP/IP协议在单片机上的实现
早先TCP/IP的实现是在UNIX系统中,现在WINDOWS也实现了TCP/IP,再后来其它嵌入式处理器,如8位的MCS51、AVR单片机上移植了TCP/IP协议。
单片机上TCP/IP协议中的IP协议与UNIX的指令系统不一样,资源也不一样,在电脑上UNIX系统中实现的TCP/IP协议原代码不能够原样移植到8位的单片机中 [3] 。
首先要配置硬件,也就是TCP/IP协议的物理层才能进行后续工作,通常选择合适的网卡芯片就可以。在嵌入式系统中经常用到的是NE2000兼容系列网卡,尤其适合目前的嵌入式系统。实现TCP/IP协议的物理层可以选用性能较好的RTL8019AS以太网控制器,它符合IEEE 802.3载波侦听多路访问局域网标准。
物理层的实现还要借助于网卡驱动程序,对以太网中的数据包进行收发。以太网数据包的收发需要提供收发双方的物理地址,即MAC地址,就像现在寄快递包裹一样,需要明确是哪个设备发出,又由哪个设备接收。但IP协议却是采用的IP地址,要用ARP地址解析协议将这两种地址相互转换,ARP是TCP/IP协议中通过IP地址得到物理地址的一个协议。通过在局域网上广播包含IP地址的ARP请求,当接收ARP返回信息后,将IP地址和MAC地址暂存在本地机ARP缓存中,这一步直接影响到协议的性能。
地址老化可以减少网络中广播包的总数、提高网络传输效率,对协议进行优化。地址老化是指一个以前学到的地址如果在最大老化时间内没有再次被从网络上获得,这个地址将从交换机的地址列表中删除,从而释放出地址空间让新学到的地址使用。这是交换机应对庞大的网络地址的一种行之有效的处理方法。建立ARP 表,对地址进行缓存及ARP表的动态更新。其中还有关键的一步是实现效率高且通用性强的IP校验程序,然后再编写UDP、ICMP等程序。
ICMP 协议主要实现应答报文和回应请求,这是在网络信息传输中最常用的,也就是用ping命令来测试网络的通畅情况。ping命令可以测试计算机的IP地址和计算机名,并根据发送ICMP回应报文及数据包的返回时间,来校验与本地计算机或异地计算机的连接状况。
只有在安装了TCP/IP协议后,才能使用ping命令。对方收到ping报文后要原样返回,测试数据包的往返时间可以用数据包中包含的当前时间,减去信宿机收到报文后的返回时间即可,从而计算出本机与信宿机的连接速度。用户数据包协议UDP,是无连接的传输层协议,其系统开销小、效率高、应用广泛。
UDP和TCP的校验要加上一个伪头标, UDP 协议实现后,再通过简单文本传输协议TFTP实现开发板和PC机的双向文件传输,使得网页文件能够动态更新。在单片机系统中,资源非常有限,不需要实现全部协议。TCP 协议实现了,就可以接收HTTP请求并完成HTTP响应 [4] 。
由于8位单片机系统的广泛应用,采用8位单片机和以太网控制芯片组成单片机网络通信系统,单片机的内部资源有限,根据实际应用的需要和单片机的特点,需要对TCP/IP协议进行裁剪后再移植到系统中,然后再设计并实现嵌入式webserver应用。客户端通过浏览器中的网页实时控制单片机应用系统LED灯的两种状态亮和灭。8位单片机通过对HTTP协议进行分析,在单片机内部实现HTTP协议,并用HTML语言编写web页面,将网页源代码存储到单片机内部的EEPROM中,通过IE浏览器可以远程访问网页,并实现对系统的实时控制和监控。webserver应用在8位单片机中的实现,使得单片机系统的监控变得直观、简便。读取EEPROM时以访问数组的形式访问代码,从而避免操作系统对文件读取的限制,并且提高了系统的运行效率 [3] 。
5 结束语
目前,高校信息资源建设正加速发展,软件信息资源的共享促进了教育极大的便利化,高等教育投资效益迅速提高。以单片机为核心的嵌入式系统在教育领域将会得到广泛的应用。以前,相对软件资源来说,异地的硬件资源不通过网络很难共享。有了嵌入式技术和TCP/IP协议的支持,在仪器设备中植入小型嵌入式芯片,甚至将微型嵌入式芯片植入人体和动物体内,再使用单片机内部嵌入的web页面按钮进行操作,对仪器设备等进行远程实时操纵或监控,用单片机收集数据,本地PC机接收单片机传输过来的数据,在浏览器上将信息显现出来。硬件设备的共享,节省了资源,提高了效益,将会极大地推动教育智能化、信息化发展[3]。此外,在工业控制、医疗器械等行业,嵌入式技术正体现它越来越大的优势。
参考文献:
[1] 赵亮.单片机C语言编程与实例[M].北京:人民邮电出版社,2003.
[2] [DB/OL].http://www.laogu.com/MY/pci12.htm老古单片机开发网.
[3] [DB/OL].http://d.wanfangdata.com.cn/Thesis_Y1059048.aspx.刘建超,单片机与Internet网络的通信应用研究.
[4] [DB/OL].http://lizigang1983.blog.163.com/blog/static/62124652008231105627428/.