基于PIC18F66J60实现的Ethernet - RS-232协议转换器──贝能科技PIC微控制器系列专题之三
目前,在工业控制等应用领域中,大多数设备的通信接口都符合RS-232 通信标准。RS-232 通信方式的数据传输半径十分有限,远远不能满足远程传输的需求,且不能与Internet 直接通信。
针对上述问题,在系统设计中,一般采用两种方法将串口设备进行有效改进后与Internet进行通信:
①更新原有系统,采用能够接入Internet 的新产品,或者对原有系统的全部或局部进行重新设计。这种方法可能从根本上解决系统连接到Internet
的问题,但是成本较高、周期较长;
②在原来的设备上使用RS-232-Internet 的协议转换器,实现Internet 的接入。
本文主要讲述第二种方法,即如何利用PIC18F66J60 微控制器实现将因特网发送的数据包提取出来,通过串口送入用户设备,达到远程控制的目的。
1. 概述
PIC18F66J60 微控制器实现的Ethernet- RS-232 协议转换器的Demo 板实物图如图1 所示,具有以下特征:
①单芯片完成协议转换功能,大大降低系统成本和复杂程度。
②模块尺寸只有一张信用卡的一半大小,功耗不到1W,方便将其集成到系统设备中。
③ETORS232 内部集成TCP/IP 协议栈,用户无须编程TCP/IP 协议,即可将用户产品接入到以太网中。
④10MEthernet 接口,最大波特率为115200 b/s。
⑤支持动态(DHCP) 或静态获取IP地址。
⑥支持三种不同的网络连接模式:TCP SERVER 模式、TCP CLIENT 模式和UDP 模式。
⑦可以方便的使用Windows 应用程序NetConfig,进行网络参数查看和配置。

图1
2. 硬件设计
2.1 PIC18F66J60 微控制器
PIC18F66J60芯片是Microchip公司新推出的一款以太网微控制器,具有出色的计算性能、丰富的功能集和极具竞争力的价格优势。
PIC18F66J60微控制器包含一系列串行通信外设:2 个独立的增强型USART 和2个主控SSP 模块,能够进行SPI 和I2CTM(主控和从动)模式操作;通用I/O 端口中包含一个可重新配置为8 位并行从动端口,用于处理器之间的通信;本系列的所有器件均包含2 个捕捉/ 比较/PWM (CCP) 模块和3个增强型CCP(ECCP)模块,可方便灵活地实现控制应用,在同一时间内,微控制器最多可以使用4 种不同时基执行不同项目的操作。其中,3 个ECCP 模块中的每一个可以提供4 路PWM 输出,即一共可提供12 路PWM 信号。ECCP 模块还提供了许多其它功能,如极性选择、可编程死区延时、自动关闭与重启以及半桥与全桥输出模式等。
PIC18F66J60 系列微控制器具有嵌入式以太网控制器模块。它是一个完整的连接解决方案,完全实现介质访问控制和物理层收发器模块,只需使用两个脉冲变压器和一些无源器件即可将单片机直接与以太网相连。以太网模块结构图如图2所示,包含以下5 个主要功能模块:
①PHY 收发器模块:对传输双绞线接口上的模拟数据进行编码和解码,并通过网络发送和接收。
②MAC 模块: 实现了符合IEEE802.3 规范的MAC 逻辑,并提供用以控制PHY 的MIIM (Media IndependentInterface Management)。
③独立的8 KB RAM 缓冲区:用于存储已经接收和将要发送的数据包。
④判优器:在单片机内核、DMA、发送和接收模块发出请求时,控制对RAM缓冲区的访问。
⑤寄存器接口:作为以太网模块和单片机特殊功能寄存器(SFR)间命令和内部状态信号译码器。
微控制器的以太网模块符合IEEE802.3 中所有关于双绞线网络10-BaseT连接的规定,其内部实现了一些数据包过滤机制,用以限制传入的数据包,同时还提供了一个用于实现快速数据吞吐的内置DMA 模块、硬件IP 的校验和计算以及两个用于指示链路和网络活动的LED输出。

图2
2.2 硬件电路设计
ETORS232 协议转换器的硬件结构框图如图3 所示,其中以太网接口与串口制成Demo 板,微控制器与LDO 组成模块,连接到Demo 板上,组成整个系统完成通信。

图3
系统内嵌TCP/IP 协议栈,系统运行后,单片机运行Microchip的TCP/IP协议栈。当通信串行口有数据接收时,单片机接收数据,并将其转换为以太网的数据格式从以太网输出;当以太网有数据接收时,单片机接受数据并将数据包中的有效数据提取出来从串口输出。
系统原理图如图4 所示。其中,以太网模块的内部模拟电路要求在微控制器的RBIAS 端口和地之间连接一个外部电阻R4。该电阻将影响引脚TPOUT+/TPOUT- 信号的幅度,PCB 布线时应尽可能靠近微处理器,避免与信号走线相邻,以防止噪声耦合到引脚中,对发送操作造成的影响。

图4
在连接TPIN+/TPIN- 和TPOUT+/TPOUT- 引脚时,需要连接用于以太网操作的1:1 中心抽头脉冲变压器。当使能以太网模块时,TPOUT+/TPOUT- 引脚会有持续电流流入,当收发器模块在发送数据时,改变TPOUT+/TPOUT- 的相对电流大小将在以太网电缆上产生一个差分电压。发送和接收接口均需要另外使用两个电阻和一个电容,以最大限度地减少信号反射。
3. 软件设计
系统工作模式如表1 所示。

表1
UDP模式 UDP模式比TCP的模式具有更高的效率和更快的速度。在此模式下不需要建立连接的请求和应答,直接进行双向数据传输。

①SM_APP_INIT:起始状态,进行初始化,并根据参数设置进入相关状态。
②SM_APP_ARP_ASK: 根据IP 地址请求对应的的网络地址向远端主机发出地址解析包。
③ SM_APP_ARP_RESOLVE: 接受远端主机发出地址解析包,设置远端主机的网络地址。
④ SM_APP_UDP_SOCKET:建立UPD 连接。
⑤ SM_APP_UDP: 进行UPD 连接模式下的数据接收和发送。
⑥ SM_APP_TCP_SERVER_SOCKET: 建立TCP SERVER模式下的TCP 连接,并处于监听状态。
⑦ SM_APP_TCP_SERVER:进行TCP SERVER 连接模式下的数据接收和发送。
⑧ SM_APP_TCP _CLIENT_SOCKET: 建立TCP CLIENT模式下的TCP 连接,并向主机发送连接请求。
⑨ SM_APP_TCP_CLIENT: 进行TCP CLIENT 连接模式下的数据接收和发送。
⑩SM_APP_ERROR: 空状态,用于程序的调试。
4. 应用简介
②网络特性:支持ICMP、ARP、IP、TCP、UDP 和DHCP协议;具有UDP、TCP Server、TCP Client 运行方式。
③电源参数:输入电压为5V±5%DC,最大输入电流200mA。
④ 机械特性: 尺寸:80mm ×36mm×15 mm。

表2
项目 默认参数配置 内容说明
模块名称 ETORS232_000 16 字符的模块说明,中间不能使用空格
连接模式 UDP 有三种模式选择:UDP;TCP Server;TCP Client
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 和TCP Server 模式下,此菜单有效。
远端主机地址 192.168.0.1 在UDP 和TCP Client 模式下,此菜单有效。
远端主机端口地址 2002 在TCP Client 模式下,此菜单有效。
串口速率 9600 1200;2400;4800;9600;19200;38400;57600;115200。
4.3 通信过程的实现
①内网访问
将DEMO 板的一端接用户设备,另一端通过网线接远端主机。在远端主机上运行TCP&UDP 测试工具,根据模块的参数在调试软件上进行相应的设置,即可进行通信。例如,当进行内网的UDP 通信时,TCP&UDP测试工具须运行在UDP 模式,目标IP 与通信端口、本机的IP 与通信端口均需与模块配置的参数保持一致;上电后电源指示灯(LED3)一直点亮;建立连接时,连接指示灯(LED2)常亮;通讯时,数据收发指示灯(LED1)闪烁。
②外网访问
模块运行在TCP CLIENT 模式时,使能模块的DHCP 功能,通过路由器自动分配模块IP 与端口号;在网络中,远端主机需要一个固定IP 值,并运行在TCP SEVER 模式下,然后双方即建立通讯。
端口地址是进行进程通信的标号。从源主机将数据传送到目的主机时,使用IP 地址和网络地址是必须的。因特网通信的最终目的是使一个进程能够和另外一个进程通信,端口是进程使用的地址。当进行外网通信时,远端主机运行在服务器模式,模块上电后一直处于监听模式,可自动获得远端请求连接主机的IP 地址和端口地址。
③Demo 板AD 与通用I/O 的控制功能
PIC18F66J60 微控制器有64 个管脚数,具有丰富的通用I/O 口与AD 口,使用本模块时无需扩展其他芯片即可完成通信之外的控制。将Demo 板上RB3、RB2 两个插针用短路块短路,即使能Demo 板的AD 与通用I/O 口的控制功能。此时运行TCP&UDP 测试工具,向Demo 板发送数据,每发送一个字节,TCP&UDP 测试工具的接收数据区将采集的AD 值在接收区显示;调节电位器可以改变采集的电压值,电压范围为0V~3.3V。Demo 板上的RB0、RB1 为预留的通用I/O 口,启动TCP&UDP 测试工具,在发送区输入1,发送后点亮LEDC;输入2,发送后点亮LEDD。
4.4 应用范围
① 工业自动化:测量、传输设备等。
②医疗保健设备:生命指标监控仪等。
③楼宇自动化/ 楼宇安全系统:读卡系统、防火安全等。
④信息家电系统:网络热水器、网络冰箱等。
⑤销售网络终端系统:POS 机等。
5. 结束语
利用PIC18F66J60 微控制器实现的Ethernet - RS-232 协议转换器,以8 位机实现了协议转换功能,与市场同类产品相比较,具有更低成本、更低功耗、性能优越的特点。用户利用它可以轻松实现嵌入式设备的网络连接功能,不需要了解复杂的网络知识及TCP/IP 协议,节省开发时间,使产品能更快地投入市场,增强竞争力。PIC18F66J60 微控制器的高集成度减少了外围器件的使用,节约PCB 板空间,降低了生产成本。
在实际运用中,只需将此模块安装于被控设备中,即完成原有设备与Ethernet的无缝连接,从而构成新的网络控制系统,实现网络自动化控制。