基于IP2022的嵌入式设备与以太网互连系统的设计
扫描二维码
随时随地手机看文章
1 引言
随着Internet技术的日益普及,信息共享的程度不断提高。据网络专家预测,将来在互联网上传输的信息中,70%左右是来自小型嵌入式设备,互联网应用正在转到以嵌入式设备为中心。由于在工业测控系统、智能仪器、智能家电等领域应用的许多嵌入式设备,它们的对外通讯接口仍然是易用性强、可靠性高的串口,因此如何将工业中已经大量应用的带有串口的嵌入式设备接入网络,就成了一项重要而迫切的课题。
本文就是在这种应用现状背景下,以IP2022网络处理器为核心,设计实现了带有RS-485串口的嵌入式设备与以太网的互联系统。系统实现了通用异步收发机(UART)、以太网驱动器外设和TCP/IP网络协议栈功能,为嵌入式设备接入以太网提供了一个软硬件平台。
2 系统的硬件设计
2.1 IP2022简介
IP2022是美国Ubicom公司推出的一颗功能强大的网络通信处理器,在4.8MHz晶振驱动下,利用其内部的锁相环(PLL)电路,CPU工作频率可达到120MHz,并且大多数指令均为单周期执行,其吞吐量能满足各种新型网络连通应用的要求。IP2022的内部结构如图1所示。
IP2022内含全双工串化器/解串器(Ser/Des),能直接与各种常用网络接口连接,可实现片内10Base-T以太网(MAC和PHY)、 UART以及其它各种快速串行协议。IP2022以软件模块(ip Modules)形式实现外设通信和控制功能,比传统硬件具有更大的系统设计灵活性。IP2022还提供有TCP/IP网络协议栈,并具有一系列完整的端到端连通方案所必须的附加软件。IP2022由于其内含两个Ser/Des部件,能方便的从一种格式转换为另一种格式,所以也能做协议转换器。
2.2 系统硬件总体结构
系统的硬件主要由IP2022网络处理器、RS-485接口电路、以太网接口电路和电源电路等组成。IP2022网络处理器是整个系统的核心,主要完成数据的转换和系统的控制。以太网接口电路实现与10Base-T Ethernet的连接。RS-485接口电路实现与带有RS-485接口的嵌入式设备的连接。电源电路提供了系统所需的+5V、+3.3V、+2.5V 电源。系统的硬件结构如图2所示。
2.3 系统的RS-485接口电路
RS-485标准由于具有良好的抗噪声干扰性,长的传输距离及多站传输能力等优点,已经成为分布式系统中数据传输的首选标准。但在实际使用过程中如果使用不当,数据传输就会出现误码。
为了抑制误码,在本设计中,我们用了两片具有瞬变电压抑制功能的SN75LBC184,把输入和输出的线路分开,使输入和输出的信号互不干扰。SN75LBC184带有内置高能量瞬态噪声保护装置,提高了抵抗数据同步传输电缆上的瞬变噪声的可靠性。该芯片以差分方式传输信息,抗共模干扰能力强,容许一对双绞线上一个发送器驱动多个负载设备,其最大容许通信距离达到1200米。图3给出了系统的RS-485接口电路的原理示意图。通过反复试验,在输入端加装3.3K偏置电阻,串联1K串联电阻,使输入信号波形最好;在输出端,加装18K偏置电阻。
SN75LBC184工作电压为+5V,而IP2022的I/O端工作电压为+3.3V。这样一来,接收外部信号时,就可能因为电压过高而对 IP2022的I/O端口造成损坏。所以设计时就在SN75LBC184和IP2022之间加了一个电压转换芯片74LVX4245。该芯片一端信号使用+5V,另一端信号使用+3.3V,通过使能端来控制信号的流向,这就有效的维护了IP2022的工作稳定性和安全性。
2.4 系统的以太网接口电路[5]
IP2022芯片内含全双工串化/解串器(SER/DES),能够实现片内10Base-T以太网(MAC和PHY)。在设计外部接口电路时,不需要使用专用的以太网接口芯片,只需直接将IP2022的输入输出信号线与网络变压器连接。图4给出了系统的以太网接口电路的原理示意图。
IP2022使用了6根I/O引脚,这6根I/O引脚与串化器/解串器1相连。其中用于发送的四根引脚各联接一个电阻,这四个电阻联合给出了100Ω的阻抗。TX+/TX-为差分发送线对,RX+/RX-为差分接收线对,使用差分平衡传输,传输速度可达到10Mbps。
FB2022是一个内部带有低通滤波器的网络变压器,负责将IP2022输出差分电压放大之后传给RJ45,将输入的差分电压变压缩小之后传给IP2022,保护IP2022芯片不受损坏。
在RX+和RX-之间跨接100Ω的耦合电阻,提高通信线路的稳定性。RJ45为标准的双绞线以太网接口插座。
3系统的软件设计
IP2022提供有完善的软件开发工具,主要包括Ubicom集成IDE和Ubicom配置工具。Ubicom集成IDE提供了直观的用户界面,包括编辑器、项目管理器、器件编程和调试的工具,可以方便用户进行软件工程的项目管理与最终的实现。Ubicom配置工具可以方便的添加软件包,设置软件包所用的IP2022硬件资源,确定各软件包之间的关系,自动链接到目标代码。
系统主要是用来完成RS-485串口和以太网之间的数据转换和传输,在硬件上拥有了RS-485接口和以太网RJ45接口之后,软件上还必须利用IP2022的配置工具加载ipOS、ipStack、ipEthernet和ipUART四个软件模块。
ipOS操作系统模块是Ubicom设计的可配置的嵌入式实时操作系统,它是专为网络应用而优化的。ipStack协议栈模块是符合工业标准的TCP/IP网络连接协议栈,它提供直接Internet寻址功能,设计者不需要使用外部物理接口芯片或PC网关就能设计嵌入式网络设备。ipUART串口模块提供了异步串口通信功能,系统加载ipUART软件模块后,芯片具备了异步收发(UART)能力,能够支持串口通信。ipEthernet 以太网模块完全实现了10Base-T以太网物理层接口(包括MAC和PHY功能),只需使用一个IP2022和少量的外部电路就能实现嵌入式设备接入以太网。图5为系统主程序的流程图。
因为我们配置的IP2022芯片的操作系统是以单任务方式运行的,每一个物理接口和一些操作系统功能都需要被轮询,因此,轮询必须尽可能的返回以防阻碍了其它系统程序的执行。IP2022的运行速度很快,在RAM中可以达到120MIPS,在Flash中可以达到30MIPS,所以轮询速度是可以满足实际要求的。
初始化主要是初始化操作系统和初始化协议栈。在操作系统主要是初始化主要的寄存器、系统调试支持代码、系统定时器;在协议栈主要是初始化IP2022的netbuf/netpage存储机制、TCP协议。
利用IP2022的配置工具增加ipEthernet以太网软件模块,设置以太网接口所用的IP2022硬件端口资源,调用软件包ipEthernet中的函数ip2k_eth_instance_alloc( )创建虚拟外设以太网驱动器。
调用软件包ipStack中的函数eth_ip_arp_instance_alloc( )创建以太网链路层到IP层的实例,调用函数dhcp_client_instance_alloc( )创建DHCP实例。
利用IP2022配置工具增加ipUART软件模块,设置所用的IP2022硬件资源、串口波特率等参数,调用软件包ipUART中的函数 uart_vp_instance_alloc( )创建一个虚拟外设UART,调用函数uart_listen( )对串口进行侦听。
从图5中可以看出进入主循环后,首先对以太网口进行轮询,然后再对串口轮询,这样保证从以太网口来的指令能够优先及时地得到处理。如果轮询到端口有数据发送或接收,就对数据进行协议的转换和传输,其具体的流程如图6所示。
4 结束语
本互联系统实现了带有RS-485串口的嵌入式设备与以太网的连接,进而可以通过以太网接入Internet,从而实现从Internet上监控嵌入式设备,可广泛应用在工业控制、智能仪器、信息家电等领域,具有较高的实用价值。