基于嵌入式Internet技术实现网络打印服务器系统的软硬件设计

随着信息技术的发展和网络时代的到来,基于tcp/ip协议的嵌入式internet技术越来越受到人们的关注。目前,大多数嵌入式设备仍处于孤立应用阶段,为了实现多个mcu之间的信息共享和交流,通常利用can、rs232和rs485等总线组网。但是这些网络的有效半径较短,并且孤立于internet网络以外,如果能把嵌入式设备直接接入internet,就可以用方便、低廉的方式实现信息的共享。因此,研究和应用嵌入式internet技术具有非常重要的意义。
传统的网络打印有两种方法:一种是采用“网络共享方式”,另一种是使用专用网络打印机。专用网络打印机成本很高,普通用户难以承受。若采用“网络共享方式”打印,网内必须有一台计算机来充当打印服务器,若这台计算机出现故障或关机,网内的其它计算机就无法打印,使用起来很不方便。嵌入式网络打印服务器解决了这个问题,使普通打印机不再是依附于主机的一外设,而成为网络中一个孤立的设备,使用起来更加灵活方便。本文在研究嵌入式internet技术的基础上,设计了基于tcp/ip协议的嵌入式网络打印服务器,普通打印机通过此嵌入式打印服务器可直接接在hub上,升级为一台“网络打印机”。客户端可在局域网内部实现网络打印,远端客户可通过网关实现远程打印。其具体结构如图1所示。
1 、系统总体结构
1.1 硬件电路
嵌入式打印服务器的硬件电路如图2所示。该电路主要包括以下四部分:①微处理器;②以太网控制器;③打印机接口电路;④串口通讯电路。
嵌入式打印服务器需要处理复杂的tcp/ip协议和以太网驱动程序,程序代码较长,但系统要求快速地处理以太网帧,顺利完成数据收发任务。基于以上考虑,微处理器采用***winbond公司的w77e58,此芯片内核与51系列兼容,内含32k flash rom,指令的执行速度很快,是普通51系列单片机的3~4倍,时钟频率最高可设置为40mhz。此芯片内含三个16位的定时/计数器,两个全双工串行口,一个软件可编程的看门狗定时器。采用软件看门狗技术,可用来提高本系统的抗干扰能力,防止程序跑飞。
网卡接口芯片采用性价比较高的全双工的rtl8019as。此芯片为10m isa以太网控制器芯片,为100个引脚pqfp封装,内部集成有16mb sram,与ne2000兼容,16位数据总线,可配置为8位dma方式进行数据传输,与8位单片机接口方便[2]。
图2 嵌入式网络打印服务器总体设计框图
另外,系统还扩展一片62256 ram和一片24c02 e2prom。ram的作用有两个:一是用来缓存从网卡芯片接收下来的数据帧,二是用作打印数据的缓冲和串口通讯数据的缓冲,以提高数据的吞吐率。24c02为串行e2prom,其容量为2kb,可通过i2c总线与单片机通信,其接口非常简单,只需要通过scl和sda两条线与单片机相连即可。其作用是用来存储上位机通过rs232串口下载下来的一些重要参数,如主机的ip地址、子网俺码、网关ip地址等。这里采用max232作为rs232的电平转换芯片,完成ttl电平到rs232电平的转换,实现上位pc机与单片机之间的通讯。
1.2 软件设计
软硬件开发工具分别选用keil c51编译器和伟福6000仿真器。程序主要包括以下四部分:①以太网驱动程序;②tcp/ip协议解析程序;③打印机接口程序;④串口通讯中断服务程序。图3为主程序流程图。
1.2.1 以太网驱动程序
首先对rtl8019as进行复位操作。复位操作有两种方法:冷复位和热复位。
(1) 冷复位
将w77e58的t0引脚接rtl8019as的复位端rstdrv进行复位操作,高电平有效。复位过程将执行一些基本操作,至少需要1μs的时间,推荐等待更久的时间如100ms之后才对它操作,以确保芯片完全复位。
(2) 热复位
直接将rst8019as的复位端rstdrv与单片机的reset引脚相连,单片机复位的时候,rst8019as也复位。rst8019as中地址为18h~1fh的寄存器端口均为复位端口。对以上端口俺数地址读或得写入任何数,都会使网卡芯片复位。
复位以后对rst8019as芯片中某些寄存器进行配置,确定其工作方式。配置好后,就可以开始接收或发送数据了。
接收数据包时,采用查询方式将查询程序放在一个大循环中,反复查询是否有新数据包到达,若有则接收下来。编程时应该特别注意的是:rst8019as接收到的数据包的帧格式与以太网帧格式并不一致[3],rst8019as自动填加了接收状态、下一页指针、以太网帧长度三个字段(四个字节),其结构如表1所示。所以编程时需要按照此格式才能正确地接收数据。
表1 rtl8019as接收到的数据包的帧格式
1.2.2 tcp/ip协议解析程序
tcp/ip协议族实际上是许多相关协议的组合,分为不同的层次,每一层分别具有不同的通信功能。tcp/ip协议通常被认为是一个四层的协议系统,
包括链路层、网络层、传输层和应用层。在设计中,根据网络打印服务器的具体要求,对tcp协议进行了适当的裁剪,仅实现了图4所示的四个协议:arp、ip、icmp、tcp。
(1) 链路层协议
以太网上数据包的传输是采用网络的mac地址来进行识别的,这就要求系统能够实现ip地址到mac地址的转换,即arp(地址解析)协议。
(2) 网络层协议
网络层主要负责按网络标准形式封装数据包,然后进行ip路由选择。网络层协议包括ip(网际协议)、icmp(控制报文协议)和igmp(组管理协议)。ip协议使网络之间的通信成为可能,如果嵌入式internet需要跨越不同的网络进行通信,就必须实现ip协议,所以ip协议需要完整实现。ip包最大为65k,可以分段传输,但在嵌入式系统中根本无法容纳如此大的数据包,因此不支持分段传输。单片机一般采用发送小数据包的方式,以避免分段传输。
icmp协议主要用于传递差错报文以及其它需要注意的信息。icmp中规定了多种协议类型和代码,如果完全实现要浪费不少的系统资源,对于普通的嵌入式internet应用而言,能够测试网络的连接情况即可,因此只需实现icmp中类型号为0、代码为0的ping应答协议即可。
(3) 传输层协议
传输层主要为两台主机上的应用程序提供端到端的通信。传输层有两种不同的传输协议:tcp(传输控制协议)和udp(用户数据包协议)。tcp是一种面向连接的协议,它能提供高可靠性服务。通过使用序列号和确认信息,tcp协议能够向发送方提供到达接收方的数据包的传送信息。udp协议没有保证可靠性的机制,其数据传输率高,可以实现全速发送数据包,但是容易丢包、失序。这里因为是打印服务,对数据的可靠性要求很高。所以必须采用tcp协议。
1.2.3 打印机接口程序
打印机接口有spp、epp和ecp三种标准[5],其中epp和ecp的数据传输速度较快。spp为标准的并行接口标准,目前任何打印机都支持此接口标准,考虑到兼容性的问题,这里采用了spp接口标准。此接口程序比较简单,编程时可以采用查询方式不断检测打印机的工作状态(busy信号),若不忙则输出数据,发出数据选通脉冲(strobe),通知打印机取数据打印。
1.2.4 串口通讯程序
串口通讯程序是主要用来完成程序的调试以及嵌入式打印服务器的ip地址、网关和子网俺码等参数的修改。图5为嵌入式系统参数设置界面。
2 、测试结果
在此使用vb6.0编写相应的测试程序。实验证明,此测试程序可以动态地修改嵌入式打印服务器的ip地址等参数,能够顺利ping通,往返时间小于10ms,可以完成数据的打印任务。
为了程序调试方便,还编写了串口通讯程序,测试结果和数据可通过串口显示出来,也可以将输出数据保存到硬盘中仔细分析研究。图6为使用串口通讯程序截获的打印输出数据。
为了进一步研究,使用etherdetect packet sinffer软件截获了打印过程中通过网络传输的tcp数据,如图7所示。其中的52 54 4c 30 2e 2f为嵌入式打印服务器的mac地址,192.137.8.178为其ip地址。
本文介绍了嵌入式网络打印服务器的设计与实现,分析了其硬件结构和软件设计方法。网络打印服务器只是嵌入式以太网技术的一个具体应用,实际上嵌入式以太网技术还可以在远程控制、数据采集、视频监控等诸多领域大显身手,其应用前景相当广泛。当然,以太网技术也存在一些缺陷,例如其数据包的传输时延不定、受网络性能的影响较大等,现阶段还很应用到实时控制领域,这些问题需要在以后的研究中重要解决。


iphone8什么时候上市?iphone8最新消息:iphone8产能不足,网友大呼:我选三星note8!
垃圾代码应该怎么写
SPINAND UBI离线烧录开发指南
两款三星手机正在做HTML5的基准测试
关于骨传导耳机和气传导耳机的区别,你可能还不知道!
基于嵌入式Internet技术实现网络打印服务器系统的软硬件设计
苹果十周年:中国特供姨妈红iPhone7?据说5.8寸大屏iPhone8才是大招!
斯坦福“以人为本人工智能研究院”——Stanford HAI正式上线!
区块链交易系统开发公司|数字资产交易系统开发供应商|平台搭建
红米Note4X已经没有秘密了,你想知道的这都有
固定资产案例分享
SMT模板是怎样的一回事
晶体管和电子管的区别
反向放大电路设计
降压型DC-DC开关调节器驱动PA方案
等离子显示器输入接口简介
无人驾驶就等于把人装在电脑里?
LR-LINK联瑞推出全新支持万兆电口的服务器系列网卡
PCB制造自动化应该如何满足当今的需求
努比亚和魅族的分屏功能对比,还是努比亚更强!