目前,在工业控制等应用领域中,大多数设备的通信接口都符合RS-232通信标准。RS-232通信方式的数据传输半径十分有限,远远不能满足远程传输的需求,且不能与Internet直接通信。针对上述问题,在系统设计中,一般采用丙种方法将串口设备进行有效改进后与Inter-net进行通信:(1)更新原有系统,采用能够接入Internet的新产品,或者对原有系统的全部或局部进行重新设计。这种方法可能从根本上解决系统连接到Internet晰可题,但是成本较高、周期较长;(2)在原来的设备上使用RS-232-Internet的协议转换器,实现Internet的接入。
本文主要讲述笫二种方法,即如何利用PlCl8F66J6O微控制器实现将因特网发送的数据包提取出来,通过串口送入用户设备,达到远程控制的目的。
1.概述PIC18F66J6O徵控制器实现的Eth-ernet-RS-232协议转换器的Demo板实物图如下图所示,
具有以下特征:
(1)单芯片完成协议转换功能,大大降低系统成本和复杂程度。
(2)模块尺寸只有一张信用卡的一半大小,功耗不到1W,方便将其集成到系统设备中。
(3)ETORS232内部集成TCP/IP协议栈,用户无须编程TCP/IP协议,即可将用户产品接入到以太网中。
(4)IOMEthernet接口,最大波特率为115200b/s。
(5)支持动态(DHCP)或静态获取IP地址。
(6)支持三种不同的网络连接模式:
TCPSERVER模式、TCPCLIENT模式和UDP模式。
(7)可以方便的使用Windows应用程序NetConfig,进行网络参数查看和配置。
2. 硬件设计
2.1 PICl8F66J6O徽控制器
PIC18F66J60芯片是MicroChip公司新推出的一款以太网微控制器,具有出色的计算性能、丰富的功能集和极具竞争力的价格优势。
PICI8F66J60微控制器包含一系列串行通信外设:2个独立的增强型USART和2个主控SSP模块,能够进行SP1和12CTM(主控和从动)模式操作;通用I/0端口中包含一个可重新配置为8位并行从动端口,用于处理器之间的通信;本系列的所有器件均包含2个捕捉/比较/PWM(CCP)模块和3(au)个增强型CCP(ECCP(模块,可方便灵活地实现控制应用,在同一时间内,微控制器最多可以使用4种不同时基执行不同项目的操作。其中,3个ECCP模块中的每一个可以提供4路PWM输出,即一共可提供12路PWM信号。ECCP模块还提供了许多其它功能,如极性选择、可编程死区延时、自动关闭与重启以及半桥与全桥输出模式等。
PICl8F66J6O系列微控制器具有嵌入式以太网控制器模块。它是一个完整的连接解决方案,完全实现介质访问控制和物理层收发器模块,只需使用两个脉冲变压器和一些无源器件即可将单片机直接与以太网相连。以太网模块结构图如下图所示,
包含以下5个主要功能模块:
(1)PHY收发器模块:对传输双绞线接口上的模拟数据进行编码和解码,并通过网络发送和接收。
(2)MAC模块:实现了符合IEEE802.3规范的MAC逻辑,并提供用以控制PHY的MIIM(MediaIndependentInterfaceManagement)。
(3)独立的8KBRAM缓冲区:用于存储已经接收和将要发送的数据包。
(4)判优器:在单片机内核、DMA、发送和接收模块发出请求时,控制对RAM缓冲区的访问。
(5)寄存器接口:作为以太网模块和单片机特殊功能寄存器(SFR)间命令和内部状态信号译码器。
微控制器的以太网模块符合IEEE802.3中所有关于双绞绂网络10-BaseT连接时规定,其内部实现了一些数据包过滤机制,用以限制传入的数据包,同时还提供了一个用于实现快速数据吞吐的内置DMA模块、硬件IP的校验和计算以及两个用于指示链路和网络活动的LED输出。
2.2硬件电路设计
ETORS232协议转换器的硬件结构框图如下图所示,
其中以太网接口与串口制成Demo板,微控制器与LDO组成模块,连接到Demo板上,组成整个系统完成通信。
系统内嵌TCP/IP协议楼,系统运行后,单片机运行Mi-crochip 的 TCPflP协议栈。当通信串行口有数据接收时,单片机接收数据,并将其转换为以太网的数据格式从以太网输出;当以太网有数据接收时,单片机接受数据并将数据包中的有效数据提取出来从串口输出。
系统原理图如图下所示。
其中)以太网模块的内部模拟电路要求在微控制器的RBIAS端口和地之间连接一个外部电阻R4。该电阻将影响引脚TPOUT+/TPOUT-信号的幅度,PCB布线时应尽可能靠近微处理器,避免与信号走线相邻,以防止噪声耦合到引脚中,对发送操作造成的影响。
在连接TPIN+/TPIN-和TPOUT+/TPOUT-引脚时,需要连接用于以太网操作的1:1中心抽头脉冲变压器。当使能以太网模块时,TPOUT+/TPOUT-引脚会有持续电流流入,当收发器模块在发送数据时,改变TPOUT+/TPOUT-的相对电流大小将在以太网电缆上产生一个差分电压。发送和接收接口均需要另外使用两个电阻和一个电容,以最大限度地减少信号反射。
3.软件设计
系统工作模式如下表所示。
TCPSERVER模式 |
模块被分配一个唯一的 IP地址和端口地址。当系自上电后,模块工作在监听状态,查看是否有远端主机向自己发出请求连接的数据包,如果收到有效连接请求,模块对此主机进行应答。 |
TCPCLIENT模式 |
模块主动向远端主机地址发出连接请求,根据在储存器中远端主机地址发出地址解析包。当主机存在时,向其发送请求连接数据包,此时如果主机工作在TCPSERVER模式下,则应答从模块发送的请求,建立连接。 |
UDP 模式 |
UDP模式比TCP 的模式具有更高的效率和更快的速度。在此模式下不需要建立连接的请求和应答,直指进行双向数据传输。 |
软件流程框图如下图所示。
其中各状态说明如下:
(1)SM_APP_INIT:起始状态,进行初始化,并根据参数设置进入相关状态。
(2)SM_APP_ARP_ASK:根据IP地址请求对应的的网络地址向远端主机发出地址解析包。
(3)SM_APP_ARP_RESOLVE:接受远端主机发出地址解析包,设置远端主机的网络地址。
(4)SM_APP_UDP_SOCK-ET:建立UPD连接。
(5)SM_APP_UDP:进行UPD连接模式下的数据接收和发送。
(6)SM_APP_TCP_SERV-ER_SOCKET:建立TCPSERV-ER模式下的TCP连接,并处于监听状态。
(7)SM_APP_TCP_SERVER:
进行TCPSERVER连接模式下的数据接收和发送。
(8)SM_APP_TCP_CLIENT_SOCKET:建立TCPCLIENT模式下的TCP连接,并向主机发送连接请求。
(9)SM_APP_TCP_CLIENT:进行TCPCLIENT连接模式下的数据接收和发送。
(10)SM_APP_ERROR:空状态,用于程序的调试。
4.应用简介
4.1主要参数
1OM以太网网络类型;1.5KV隔离保护;RJ45接口类型。
(1)串行通信口参数:信号连接线为RxD、TxD和GND;数据通信格式为数据位8位、无校验位、停止位1位;传输速率为1200b/s-115.2K/s,(2)网络特性:支持ICMP、ARP,IP,TCP,UDP和DHCP协议;具有UDP、TCPServer、TCPClient运行方式。
(3)电源参数:输入电压为5V±5%DC,最大输入电流200mA。
(4)机械特性:尺寸:80mm×36mm×15mm。
4.2参数配置方法
系统使用NetConfig应用软件配置
模块的参数。NetConfig运行后,首先以广播方式查找网络上的模块,当找到模块后,用户可以对其连接模式、MAC地址、IP地址、端口地址、远端主机IP地址、远端主机端口地址、串口速率及DHCP是否有效等进行配置。
缺省参数如下表所示。
项目 |
默认参数配置 |
说明 |
模块名称 |
ETORS232_000 |
16字符的模块说明,中间不能使用空格 |
连接模式 |
UDP |
有三种模式选择:UDP;TCPServer;TCPClient |
MAC地址 |
0.4.163.0.0.1 |
演示板的MAC地址,只能个修改后三位。 |
DHCP服务 |
禁止 |
根据网络的实际情况,选择有效或无效。 |
IP地址 |
192.168.0.100 |
当DHCP无效时,此菜单有效。为模块的IP地址。 |
子网掩码 |
255.255.255.0 |
当DHCP无效时,此菜单有效。为模块的子网掩码。 |
网关IP地址 |
192.168.0.10 |
当DHCP无效时,此菜单有效。为模块的网关IP地址。 |
端口地址 |
2001 |
在UDP和TCPServer模式下,此菜单有效。 |
远端主机地址 |
192.168.0.1 |
在UDP和TCPClient模式下,此菜单有效。 |
远端主机端口地址 |
2002 |
在TCPClient模式下,此菜单有效。 |
串口速率 |
9600 |
1200;2400;4800;9600;19200;38400;57600;115200。 |
4.3通信过程的实现(1)内网访问将DEMO板的一端接用户设备,另一端通过网线接远端主机。
在远端主机上运行TCP&UDP测试工具,根据模块的参数在调试软件上进行相应的设置,即可进行通信。例如,当进行内网的UDP通信时,TCP&UDP测试工具须运行在UDP模式,目标IP与通信端口、本机的IP与通信端口均需与模块配置的参数保持一致;上电后电源指示灯(LED3)一直点亮;建立连按时,连接指示灯(LED2)常亮;通讯时,数据收发指示灯(LED1)闪烁。
(2)外网访问模块运行在TCPCLIENT模式时,使能模块的 DHCP功能,通过路由器自动分配模块 IP与端口号;在网络中,远端主机需要一个固定 IP值,并运行在TCP SEVER模式下,然后双方即建立通讯。
端口地址是进行进程通信的标号。从源主机将数据传送到目的主机时,使用IP地址和网络地址是必须的。因特网通信的最终目的是使一个进程能够和另外一个进程通信,端口是进程使用的地址。
当进行外网通信时,远端主机运行在服务器模式,模块上电后一直处于监听模式,可自动获得远端请求连接主机的IP地址和端口地址。
(3)Demo板AD与通用I/0的控制功能PICl8F66J6O微控制器有64个管脚数,具有丰富的通用I/0口与AD口,使用本模块时无需扩展其他芯片即可完成通信之外的控制。将Demo板上RB3、RB2两个插针用短路块短路,即使能Demo板的AD与通用I/0口的控制功能。此时运行TCP&UDP测试工具,向Demo板发送数据,每发送一个字节,TCP&UDP测试工具的接收数据区将来集的AD值在接收区显示;调节电位器可以改变采集的电压值,电压范围为OV~3.3V。Demo板上的RBO、RB1为预留的通用I/0口,启动TCP&UDP测试工具,在发送区输入1,发送后点亮LEDC;输入2,发送后点亮LEDD。
4.4应用范围(1)工业自动化:测量、传输设备等。
(2)医疗保健设备:生命指标监控仪等。
(3)楼宇自动化/楼宇安全系统:读卡系统、防火安全等。
(4)信息家电系统:网络热水器、网络冰箱等。
(5)销售网络终端系统:POS机等。
利用PIC18F66J6O微控制器实现的Ethernet-RS-232协议转换器,以8位机实现了协议转换功能,与市场同类产品相比较,具有更低成本、更低功耗、性能优越的特点。用户利用它可以轻松实现嵌入式设备的网络连接功能,不需要了解复杂的网络知识及TCP/IP协议,节省开发时间,使产品能更快地投入市场,增强竞争力。PIC18F66J6O微控制器的高集成度减少了外围器件的使用,节约PCB板空间,降低了生产成本。
在实际运用中,只需将此模块安装于被控设备中,即完成原有设备与Ethernet的无缝连接,从而构成新的网络控制系统,实现网络白动化控制。