基于ARM和μC/OS-П以太网接口系统设计

2011-12-27 01:05段慧婷
河北省科学院学报 2011年4期
关键词:以太网串口嵌入式

段慧婷

(河北省电子信息技术研究院,河北石家庄 050051)

基于ARM和μC/OS-П以太网接口系统设计

段慧婷

(河北省电子信息技术研究院,河北石家庄 050051)

TCP/IP及互联网技术在工业领域得到广泛应用,然而大量工业现场设备尚不具备网络接口,主要通过串行口进行通讯,因而无法直接连接到Internet。笔者设计了一种基于ARM处理器的嵌入式以太网接口系统,用来解决这些传统设备与现今的网络设备之间的互联问题。

嵌入式系统;以太网;SPI串行通信;μC/OS-П;ZLG/IP

在工业控制等领域,传统SPI串行口设备仍然被广泛地应用,随着网络技术上广泛应用,SPI串行通信固有的传输速率低、传输距离有限、布线繁杂等缺点逐渐显现出来。以太网技术克服了上述缺点,采用以太网可以方便地接入现有网络,数据传输率高,由于采用了通用的通信协议,兼容性较好。

基于TCP/IP的以太网已经发展成为IT产业的主要通讯手段,在工业生产中,为了能跟上网络自动化的潮流,而不至于失去竞争优势,必须建立高效的数据采集、生产监控、即时成本管理的联网系统。对于这些领域的SPI串口设备来说,让这些设备连上以太网将是一种趋势。

笔者所设计的远程监控系统以嵌入式系统为核心,利用其串口与底层I/O节点相连,上层则直接联入以太网,允许被授权的用户在以太网任意一点应用浏览器访问该系统,并实现对下层设备的监控。

1 系统功能设计

本系统设计一个嵌入式以太网接口,主要完成一个SPI串行通信和以太网之间的数据存储控制,系统对多种类型的数据进行处理,接收来自SPI串行口设备的串口数据流,并对其进行格式转换,使之成为可以在以太网中传播的数据帧。

根据嵌入式系统的一般设计方法,可以将系统分为硬件设计和软件设计两部分,硬件部分主要完成微处理器与SPI口、以太网等模块间的接口电路设计,以及控制信号的处理;软件部分主要完成SPI口与网口间的双向数据传输。这其中包括硬件系统的启动实现,由于系统需要运行多任务,一个嵌入式操作系统必不可少,TCP/IP协议实现以太网数据包的收发,SPI串口驱动程序完成串行数据的收发。

2 硬件系统

2.1 扩展以太网接口

在嵌入式系统中,扩展以太网接口,通常有如下两种方法实现:

(1)嵌入式处理器加上以太网接口芯片,如RTL8019AS。这种方法对嵌入式处理器没有特殊要求,只要把以太网芯片连接到嵌入式处理器的总线上即可。此方法通用性强,不受处理器的限制;但是,处理器和网络通过外部总线交换数据,速度慢,可靠性不高,电路走线复杂。

(2)选择带有以太网接口的嵌入式处理器。这种方法要求嵌入式处理器有通用的网络接口控制器。处理器和网络数据交换通过内部总线,速度快[1]。

本研究选用的嵌入式处理器芯片是带有以太网接口控制器LM3S8962。硬件简单,传输速率快。

2.2 硬件平台

数据采集系统主要由3部分组成:数据接收部分、ARM芯片数据处理部分、远端主机(见图1)。

数据接收部分,通过传感器对室内的温度数据信号进行采样、保持,射频收发模块n RF24E1作为主机通过SPI接口传送给LM3S8962微处理器芯片,LM3S8962作为从机接收数据,放入缓存区,并利用μC/OS-П操作系统,在user文件夹下的main.C进行程序的编写,把接收过来的数据进行格式转换使之成为适合在网络上传输的数据,最终通过网络接口RJ45传送到远端的主机,最终实现远程控制。

LM3S8962具备SPI数据总线,1个10M/100M全双工和半双工以太网接口。其中以太网接口与上位机通讯,将采集的数据上传到PC机中,并且接收上位机的命令对数据处理系统进行控制。其中SPI接口是中央处理器与射频收发模块n RF24E1通信的接口,因为n RF24E1只能作为主机发送,所以嵌入式微处理器作为从机接收所采集的各种数据并实现对网络化数据采集系统的控制。嵌入式ARM微处理器中的μC/OS-П的功能就是实时的将采集的数据通过以太网接口上传给上位机进行处理。

图1 硬件平台

3 软件设计与实现

3.1 软件设计

软件设计是整个系统设计的重要组成部分,在硬件系统完成数据格式转换以及控制信号处理等主要功能基础上,软件系统与硬件系统遵循一个标准的接口,在这个接口之上来传递数据信号和控制信号。软件设计主要有:

(1)硬件系统启动代码的实现。启动代码是系统上电复位后最先执行的部分,完成对于系统的初始化工作,在μC/OS-П操作系统中采用基于ARM核的汇编语言来编写。它主要实现向量表定义、堆栈初始化、系统变量的初始化、中断系统初始化、I/O、外围初始化、地址重映射等操作。

(2)μC/OS-П嵌入式操作系统的移植。μC/OS-П的移植主要任务是重新编写与处理器和编译器相关的代码,这些代码包括:与编译器相关的数据类型的重定义、开关中断的代码、堆栈的增长方向、任务堆栈初始化函数、任务切换函数等等。

(3)以太网口驱动和TCP/IP协议栈的实现。主要完成的功能有:实现以太网模块的收发数据驱动、在目标系统中运行TCP/IP,从而实现以太网数据的收发功能。由于TCP/IP协议体系庞大,考虑到目标系统的资源有限,有必要对TCP/IP协议进行精简。仅实现嵌入式系统中所用到的协议,包括:IP协议、ARP协议、ICMP协议、TCP协议、UDP协议,同时,采用与类似BSD标准的Socket接口实现TCP/IP协议的API。

(4)SPI口驱动实现。SPI对从外设器件接收到的数据执行串行到并行的转换。

(5)系统功能应用的实现。主程序部分通过创建两个μC/OS-П任务,来实现串口数据传送至以太网。当从串口接收数据并发送至以太网时,允许建立多个连接,同时向多个客户端发送数据;当从以太网接收数据时,也允许建立多个连接以接收多个主机的数据,但必须满足数据包的延时和丢包率在给定的范围之内。

3.2 软件实现

3.2.1 μC/OS-П移植

本移植在如下环境中完成:编译工具采用IAR FOR ARM,目标板采用Easy ARM8962开发板。主机通过LMLINK JTAG连接目标板以建立交叉开发调试环境。移植过后的模版如图2。

(1)移植过程中,μC/OS-П的核心源代码不用修改,可以直接放在μC/OS-ПSource文件夹中。

(2)μC/OSП\Ports目录存放μC/OS-П基于LM3S单片机的移植代码,包括OS_CPU_C.C、OS_CPU_A.ASM、OS_CPU.H三个必要的文件。

(3)Target目录中的Startup.S文件是单片机的启动代码和中断向量表,Target.C和Target.H提供单片机初始化函数Target Init()和其他简单的外设控制API函数,包括LED控制、蜂鸣器控制、按键检测和定时器0中断服务等,方便用户调试程序。

(4)将μC/OS-П移植到ARM处理器LM3S8962上需要修改3个与ARM体系结构相关的文件:OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。

完成上述工作后,只要再根据目标板的实际情况编写Target目录中的3个文件,μC/OS-П就可以运行在LM3S8962单片机上了[2]。

3.2.2 ZLG/IP精简协议栈

为使转接口具有以太网接入功能,必须在ARM处理器中嵌入TCP/IP协议,ZLG/IP精简协议栈完全符合嵌入式TCP/IP协议栈的特殊性要求,是面向嵌入式系统开发的基于μC/OS-П的小型TCP/IP协议栈。ZLG/IP提供实现Internet网络上IP接点的功能,是个高性能的嵌入式TCP/IP协议软件[3]。它使用μC/OS-П实时操作系统的信号机制来实现一个多任务并行可重入的协议栈,完全使用ANSI C进行编写,可以像μC/OS-П那样支持多种CPU。

精简TCP/IP协议中各层采用的协议如下(主要是嵌入式系统硬件平台上运行的协议):

1)链路层:由控制同一物理网络上的不同机器间数据传送的底层协议组成,主要包括:Ethernet Driver协议。

图2 ARM Cortex移植模版层次结构

2)网络层:IP/ARP/ICMP协议。

3)传输层:采用TCP或UDP协议,TCP协议提供了一种可靠的面向连接的字节流运输层服务,而UDP协议是一个简单的面向非连接的数据包的运输层协议,考虑到所设计的系统数据传输的安全性,设计中选用UDP协议。

因为系统对数据传输的数量的要求远远低于互联网的要求,所以要设计TCP/IP协议簇中那些基本的、系统所要求的那一部分。将ZLG/IP协议嵌入到操作系统μC/OS-П中,并提供API接口函数供应用程序调用,使得ARM可以快速无冲突地收发网络UDP数据包,符合远程监控系统对实时性和可靠性的要求。

4 系统功能测试

测试中使用PC机同时作为SPI口设备和上位机。使用SPI串行接口与上端n RF24E1相连接;使用交叉网线分别连接PC机和目标系统的RJ45接口,同时设置IP地址、子网掩码,以使它们在同一网络中通讯。

在PC机上运行TCP&UDP测试软件和UDP通讯程序作为上位机软件进行测试。在UDP通讯程序中设置远程主机(即目标系统)地址为192.168.0.5,远程端口号为1025,输入一组数据,在TCP&UDP测试软件创建连接的情况下,在TCP&UDP测试软件的接收区中接收到消息。同样发送其他信息,在接受区中收到的消息和键盘输入的信息一样。表明双方通信的成功。运行结果如图3。

图3 测试结果

5 结束语

系统经测试能够同时对多台监控模块实现数据收发分析显示以及在线控制,而且实时性能满足要求,能满足大多数小型系统的使用。

根据本文所论述的解决方案和设计的系统,可以在SPI串行数据和以太网传送的TCP/IP数据包之间进行相互转换,使带有SPI串行数据通信设备的信息可以通过互联网络进行传送或共享。可将现有SPI串行设备转换成具有网络接口的外设,从而保证了SPI串行口设备的兼容性。该系统可以应用于:门禁、安防、考勤系统;工业现场联网监控;仓储自动控制系统;医疗、实验仪器联网自动化;大型零售(OPS)系统联网自动化。具有一定的市场前景,能产生较好的经济效益。

[1]周立功.ARM嵌入式系统基础教程[M].北京:北京航天航空大学出版社,2005.

[2]谢希仁.计算机网络(第四版)[M].大连:大连理工大学出版社,2005.

[3]顿雁兵,张海南.基于LPC2210的嵌入式以太网接口芯片设计[J].科学技术与工程,2007,(6):1077-1080.

[4]庞海涛,陈昕,程高峰.μC/OS-Ⅱ在Cortex-M3系列单片机上的移植[J].单片机与嵌入式系统应用,2008,(11):31-33.

Design of ethernet conversion interface system based on ARM andμC/OS-П

DUAN Hui-ting

(HebeiElectronicandInformationTechnologyAcademy,ShijiazhuangHebei050051,China)

TCP/IP and Internet are widely used in industrial field,yet plenty of industrial equipments do not have network interfaces and can not be connected to the Internet directly.In order to seek a new kind of method to solve the interconnection problem between these tradition equipments and the current network equipments,Internet Conversion Interface Based on ARM andμC/OS-Пis desiged in this paper.

Embedded system;Ethernet;SPI Serial Communication;S-П;ZLG/IP

TP393

:A

1001-9383(2011)04-0045-04

2011-06-30

段慧婷(1982-),女,河北石家庄人,硕士,主要从事信息系统技术、数据传输与交换技术研究.

猜你喜欢
以太网串口嵌入式
浅谈AB PLC串口跟RFID传感器的通讯应用
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
搭建基于Qt的嵌入式开发平台
谈实时以太网EtherCAT技术在变电站自动化中的应用
嵌入式软PLC在电镀生产流程控制系统中的应用
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用