时间:2024-07-28
曹正阳,田梦君,杨 宁,杨 融
(西北工业大学机电学院,西安 710072)
RS-232 串行通信是目前异步通信中应用最广泛的标准总线,在工业控制、楼宇安全系统等领域中,大多数设备的通信接口都符合RS-232 通信标准,但是这种通信方式的传输半径十分有限,所以在远程控制上会有明显的不足[1]。而以太网作为当今应用最广泛的网络,具有很强的远程通信能力及数据传输能力。为了能够融合两种技术的优势,对串口设备进行有效地改进,需要设计一种以太网到RS-232的协议转换器[2]。
对现有产品进行更新,一般是通过RS-232 总线将更新的内容传输到产品中;若采用HTTP 服务直接从WEB 服务器上更新产品,无论从实时性上还是从灵活性上都得到了提高[3]。将产品接入到以太网的方法有两种:一种方法是对原有系统进行重新布局,采用能够接入因特网的新产品[4],但是高成本和长周期成为其最大的弊端;另一种方法是在原有设备中接入HTTP 到RS-232 协议转换器,只要当前产品中包含RS-232 接口就可以实现以太网接入,这就使系统的复杂程度和开发成本都有所降低,因此这种方法更具有应用价值。
协议转换器主要由以太网通信模块、协议转换模块、串行通信模块以及数据存储模块构成。鉴于PIC18F97J60 高性能8 位网络单片机的低功耗、低成本、高集成度以及高稳定性的这些优良特性,本系统采用该单片机作为主控制芯片。
协议转换器完成的主要功能是:用户通过以太网进入到协议转换器指定的服务器,利用HTTP 服务把数据或文件传输到协议转换器中;接着由PIC18F97J60 单片机对数据包进行处理,将HTTP 协议数据包转换成RS-232 协议数据包;最后把RS-232 协议数据包发送至终端设备,至此实现了以太网接入以及数据传输。
HTTP 与RS-232 协议转换器的硬件系统主要包括以下三部分:以太网通信模块接口电路,串行通信模块接口电路,数据存储模块。系统的基本结构框图如图1 所示。
图1 系统基本结构框图
PICl8F97J60 单片机的嵌入式以太网控制器模块,完全实现了介质访问控制和物理层收发器模块,并且在模块内部实现了数据包过滤机制,用于限制传入的数据包,同时也提供了一个用于实现快速数据吞吐的内置DMA 模块以及硬件IP 校验和计算。
在模块接口电路设计中,利用单片机提供的四个专用信号接口TPIN +、TPIN-、TPOUT+和TPOUT-连接至RJ-45 连接器,并在它们之间连接一个1:1 中心抽头脉冲变压器,这样就实现了以太网的接入;为了使收发器正常工作,通过一个电阻将RBIAS 引脚接地,使其获得来自外部的偏置电流。Ethernet 接口电路如图2 所示。
在PIC18F97J60 单片机的内部集成了两个EUSART(增强型通用同步/异步收发器)模块,用户既可以将EUSART 配置成能够与PC 机等终端设备通信的全双工异步系统,也可以将其配置成能够与串行EEPROM 等外设通信的半双工同步系统。
图2 以太网模块接口电路
为了使单片机的TTL 电平能够驱动RS-232标准规定的逻辑电平,在它们接口之间必须加一个电平转换芯片,这里采用MAX3232 串口驱动芯片,它保证了在120Kbps 数据速率下维持RS-232 电平的输出。
系统中采用Microchip 公司SPI 串行EEPROM系列中的25LC256 作为数据存储器。该器件具有32KB的存储容量,64 byte的页操作功能;它的工作电压在2.2V 至5.5V 之间,其SPI 总线读写最高速率可达到10MHz,相对于I2C 总线的数据传输速率有很大提高。
在设计接口电路时,MISO 引脚接入上拉电阻以提高数据的可靠性;在考虑PCB 布线时,MISO、MOSI以及SCK 三根线尽量保持同向、等长,以提高数据的实时性。数据存储器的主要目的是储存以太网信息,使用户能访问到指定的服务器地址。
Microchip 公司提供的免费TCP/IP 协议栈可以方便的将基于PIC18F97J60的整个系统接入以太网,它适用于不需要很高数据量的以太网接入应用系统。Microchip TCP/IP 协议栈是按照模块化方式编写,应用哪个协议只需修改相应模块的功能,其它模块无需改动。与TCP/IP参考模型不同的是,此协议栈中的很多层可以直接访问下面的一层或多层[5],因此用户不需要对TCP/IP 协议栈中的所有细节有深入的了解,只需将精力集中在应用上[6-7]。为此,Microchip TCP/IP 协议栈在实现方法上添加了StackTask 和ARPStack 两个模块。StackTask 用来管理协议栈及其所有模块的操作,而ARPStack 管理地址解析协议层的服务。
系统的目标是将本地计算机作为HTTP 服务器,局域网中的其它计算机能够访问服务器并且可将数据通过串口下载到本机中。服务程序主要包括两个函数:一个是MainDemo.C 函数,负责初始化各种软硬件环境并在循环函数中循环调用HTTP 函数;另一个是CustomHTTPApp 函数,实现发送和解释收到的网页代码,生成网页的功能。
在MainDemo.C 文件中,首先对系统进行初始化,在TickInit 函数中通过配置TMR0H、TMR0L 以及T0CON 寄存器对Timer0 进行设置,把定时器0作为TCP 连接、HTTP 连接等网络连接的定时计数器,用于判断超时连接;对串口数据的收发、工作方式以及波特率的配置,主要工作集中在TXSTA1、RCSTA1 以及BAUDCON1 这三组寄存器中;Stack-Init 函数的调用实现了TCP/IP 协议栈的初始化,为以太网的连接提供了支持。初始化程序流程图如图3 所示。
图3 初始化程序流程图
当用户进行HTTP 连接时,在循环函数里通过周期性的调用StackApplications 函数以保证服务器及时的响应,从而能够进入到HTTP 服务程序中;当连接次数不大于设置的HTTP 最大连接次数时,在HTTPProcess 函数中就可以对HTTP 服务器的状态进行处理。
当用户在服务器上进行数据下载时,相当于产生一个GET 请求,HTTPExecuteGet 函数会根据filename 找到对应的HTML 文件,通过HTTPGetROMArg 函数得到用户所请求的数据;如果用户要修改服务器的IP 地址,也就是把表单中的数据提交给服务器,为了达到此目的可以采用Post 方法,通过调用HTTPExecutePost 函数来实现。单片机的协议转换程序设计流程如图4 所示。
图4 协议转换程序流程图
在应用系统中,服务器端网页的设计主要涉及三项网页开发技术:HTML 编码、AJAX 和CGI。其中config.htm 文件将WEB 网页中相关服务与TCP/IP 协议栈联系在一起,部分代码如下:
由于传统的Web 网页在表单获取的过程中传递了两次HTML 编码基本相同的页面,这样既浪费了频宽又增加了系统响应时间;为了减少服务器的处理工作,获得更快的响应速度,利用AJAX 技术中基于XML的web service 接口以及在客户端上的JavaScript 来处理来自服务器的回应。在设计实例中,首先用户在页面输入IP、DNS 等信息,通过HTTP服务把这些请求提交到协议转换器中,同时把信息放到CGI 目录下指定的CGI 程序中;接着CGI 程序对这些信息进行处理,并把处理结果传送到协议转换器中;最后协议转换器把结果返回到用户页面,这样用户就可以实时地与服务器进行交互。
系统基于PIC18F97J60 单片机设计并实现了HTTP 到RS-232的协议转换器。本系统已在局域网调试成功,调试结果如图5 所示。
图5 协议转换器调试结果
由图5 可以看出,实现了HTTP 协议到RS-232 协议数据包的转换,并且可以通过表单的方式对服务器的配置进行管理,若在系统中加入上层数据库,那么该协议转换器就具有一定的通用性,满足读卡系统、工业自动化系统等领域要求。
[1]苏义鑫,王军,何力,罗佳佳.基于单片机的CAN-以太网协议转换器的设计[J].电子技术应用,2008(8):130-132.
[2]戴力,刘笃仁.一种基于PIC 单片机的嵌入式Internet实现[J].中国集成电路,2005(8):58-61.
[3]刘海英,杜晓通.PIC 微处理器低成本的以太网解决方案[J].新器件新技术,2007(11):49-51.
[4]Luis F Caro,Jose L Marzo.Enhancing label space usage for Ethernet VLAN- label switching[J].Computer Networks,2009,53:1050-1061.
[5]W Richard Stevens.TCP/IP 详解一卷h 协议[M].北京:机械工业出版社,2005.
[6]Akihiko Ishida,Takahiro Yoshikawa,Masamichi Natsume,Tamio Kamidate:Reversed- phase liquid chromatography on a microchip with sample injector and monolithic silica column.Journal of Chromatography A[J].Issues 1-2,3,2006(11):90-98.
[7]Sergio Scaglia.嵌入式Internet TCP/IP 基础、实现及应用[M].北京:北京航空航天大学出版社,2008.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!