基于ARM和SCC技术多协议接口服务器的设计与实现

2010-09-17 10:31:04孙轶陈伟青陈晓建毛侃伦
微型电脑应用 2010年12期
关键词:驱动程序数据源以太网

孙轶,陈伟青,陈晓建,毛侃伦

0 引言

民航空管信息化系统建设需要接入电报、气象、情报、雷达、ACARS等多种数据,由于数据源都来自不同的系统,造成物理接口和上层协议也各不相同,导致了系统数据源种类繁多、协议复杂,开发应用难度大。系统开发人员在硬件上大多采用匹配相应协议的各类厂商的接口板卡装入 X86服务器,软件上通过调用各种板卡供应商提供的各类 API接口完成数据的交互,因此,经常带来板卡功能单一、通用性差和不稳定的缺陷,对软件开发人员要求过高,软件稳定性较差,系统安全风险较高。本文介绍的基于ARM和SCC技术的多数据协议转换网关,实现了异步接口和同步接口与以太网接口的相互转换,支持异步传输协议、HDLC协议和TCP/IP协议,为空管信息化系统提供了统一、便捷、稳定的数据接口,为空管信息化系统的高效稳定运行提供了支撑,该网关已成功运用于华东航班一体化系统雷达DOD数据、MH4008格式雷达数据和电报数据的引接。

1 ARM和SCC技术介绍

嵌入式系统设计的核心是处理器平台,本设计使用的基本硬件平台是ARM平台。ARM系列CPU内核是ARM公司开发的低功耗的32为RISC微处理器内核,ARM具有嵌入式ICE-RT逻辑,方便调试开发,适用于本系统低功耗高稳定性的应用场合。ARM7系列微处理器内核包括以下几种类型:ARM7TDMI、ARM7TDMI-S、ARM720T。

SCC器件用于开发通用的数据接口,全称为串行连接控制器,是基于 ANCI的串行数据转换通信控制器。SCC是将串行通信数据转换成并行数据的高集成度器件,通常支持多种协议,有:SDLC、HDLC、AUTO CRC等,并支持多种数据编码模式,有 NPZ、NRZI、FM 等编码格式,广泛应用于串行通信应用领域。

2 多协议接口服务器的总体设计

综合分析各信息源的接口特性,RS232C异步传输接口和RS232C同步传输接口应用广泛,异步传输接口时数据按字节进行透明传输,同步传输接口时比特数据通常被封装在2层HDLC协议帧内或采用X.25数据3层传输协议内,而信息化系统要求适合接入统一标准协议接口的信息源数据。

本设计目的为了达到信息化系统接入统一标准的要求,将各种外部数据源格式化成统一的内部交换数据,同时完成数据分发和数据隔离功能。因此开发的多协议转换设备应满足以下主要功能指标:

①物理接口方面,具有RS232C异步数据接口、RS232C同步数据接口和以太网接口。

②支持传输、链路层协议方面,具有异步传输协议、HDLC同步传输协议、X.25和TCP/IP协议。

③具有各种数据源的数据解析能力。

④具有数据路由分发、广播能力

⑤具有数据隔离、防火墙功能。

⑥电气特性方面,具有工业级的物理特性。

鉴于以上功能指标,本设计采用软硬件相结合的设计方法,硬件部分使用两级硬件装置组成结构,即由核心处理单元和通信协议接口单元两部分组成,具体实现过程和硬件功能在硬件设计部分描述。

软件部分考虑到本设计功能有一定的复杂度,同时为了便于日后增加其支持的协议和功能,嵌入式设计中常用的前后台程序的设计方法本设计中不再适合,从而考虑选用嵌入式操作系统内核来完成硬件的控制和业务程序的调度。

总体软件系统结构设计为层次型,核心层为嵌入式操作系统内核,其负责 CPU内部资源和内存的管理以及进程调度;底层为硬件驱动程序和多协议栈,硬件驱动程序作为操作系统和硬件外设之间的适配器,将物理接口的操作以API函数的方式提供给应用程序使用,多协议栈包括 HDLC协议、TCP/IP协议、X25协议;上层为用户协议解析、数据封装、路由和访问控制等应用程序,上层应用程序调用硬件驱动程序和多协议栈,将获得的数据按照数据业务类型进行解析、重新封装,并按照预先设定的数据分发路由配置策略进行转发。这种体系结构的优点在于组织灵活,便于调试和更新,代码容易做到高内聚低耦合,为软件健壮性提供保障。(整体系统结构图见图1)

图1 嵌入式多协议网关整体系统结构框图

3 硬件的设计

整个系统硬件平台的设计,主要分核心处理单元和通信协议接口单元两部分组成。硬件平台的结构框图如图 2所示。其主要的单元模块和功能如下:

图2 嵌入式多协议网关硬件系统框图

本设计的主要数据处理和控制核心为核心处理单元,它主要包括微处理器LPC2220、高速SDRAM和FLASH以及为核心单元服务的辅助器件,ARM微处理器作为核心单元,它负责完成对外围设备的控制和数据协议的处理转换,高速SRAM 作为操作系统和应用程序的运行环境,并提供数据缓存、FLASH存储固件和配置参数的功能。

本设计需要完成各种协议的转换和路由分发,不仅要求微处理器有较强的处理能力,并且为了扩展主存、FLASH和串行通信接口(SCC)器件,需要微处理器提供完整的外部存储器接口。考虑到系统需要提供至少一个10M以太网接口、2个100~64K bps的串行接口,加以操作系统、驱动程序、应用程序等的消耗,估算需要20MIPS的数据处理能力。综合性能、外设扩展和稳定性考虑,选用了NXP(原飞利浦)公司的LPC2220(60Mhz)作为本设计的核心微处理器。

鉴于LPC2220提供16位的外部存储器接口(EMI)电路,并且支持高速静态存储器,故选用了美国ISSI公司的16位静态存储器IS61LV51216-10作为内存扩展。该芯片提供了8Mb(512K*16)的存储器容量。

LPC2220微控制器没有内部FLASH存储器,因此为了存储系统程序固件需要扩展外部FLASH存储器。本设计中FLASH选用SST公司的可编程并行存取芯片SST 39VF160。该存储器属于NOR FLASH,程序可直接在此FLASH内运行,此FLASH为1M*16bit的存储容量。

通信协议接口单元包括串行同异步接口(SCC)芯片、以太网接口芯片、物理电平转换器等,该单元实现物理信号的接入,并且将数据链路层协议数据转换为系统总线数据,为系统提供丰富的数据接入能力。

由于ARM系列微处理器没有PCI接口,不能使用PC机常用的PCI接口的以太网控制芯片。但是LPC2220的外部存储器接口(EMI)电路可以方便的模拟成ISA接口,故选用了基于ISA接口的CS8900A以太网适配芯片扩展系统的以太网接入能力。CS8900A是 Cirrus Logic公司生产的10Base-T以太网物理链路层 (PHY)器件,其10Mb/s的速度理论上可以承载500路以上雷达数据(9600bps),提供工业级的TOFP封装,方便自行开发样机。

民航常用的基础数据格式为同步串行数据和异步串行数据,其波特率基本在9600到64Kbps范围内。故串行同异步接口芯片选用了ZILOG公司推出的增强型串行通信控制器Z85C30(ESCC)。它具有两个独立的串行数据收发通道,提供8位或16位并行系统总线接口,能够完成串行到并行、并行到串行的转换,方便完成双通道接入。当Z85C30工作在同步状态下最大速率可达4Mb/s(时钟为16Mhz时),满足民航常见的同步数据源接口速率,其“0”比特的自动插入和删除,包间标志的自动插入,CRC自动产生等功能为民航HDLC数据的接入提供了有力的帮助。当Z85C30工作在异步状态下时,可配置为5、6、7或8位数据位,1、1/2或2位停止位,波特率最高可达115200bps,满足绝大多数异步串行传输方式数据源的接入。

4 固件程序的设计

本网关固件程序实现分五个部分:LINUX内核移植、CS8900A驱动程序、Z85C30驱动程序、多协议栈、应用协议转换程序和路由控制程序。本文主要讨论通信驱动程序和应用程序设计。

Z85C30驱动程序:Z85C30有3种基本的I/O操作形式:查询、中断、DMA。这3种I/O操作由初始化和数据传送时的寄存器操作决定。

查询方式依靠软件查询串行控制器,从而决定什么时候数据应从串行控制器输入或输出。这种操作方式接口简单,但系统执行效率低,不能满足大流量数据的传输要求。

中断方式中,串行控制器的每一个通道包括 3个中断源:接收器中断、发送器中断和外部/状态中断。中断方式具有较快的数据响应处理能力,满足数据流量要求,对微处理器的要求比较低。

DMA方式将数据分块传输,是3种方式中执行效率最高、对消耗微处理器资源最少的接口方式,但其要求微处理器和驱动程序要求最高。

本设计要求系统具有较大容量的数据吞吐能力,并且要求有尽量低的包丢失率。权衡 3种控制方式的优缺点以及AT91RM9200的特性,决定采用中断方式作为Z85C30的I/O操作方式。依此编写驱动程序,完成Z85C30寄存器的初始化、建立向量中断响应程序,实现同步 HDLC数据帧和异步串行数据的收发。

图3 Z85C30驱动程序流程

下面是将Z85C30配置为同步HDLC方式的寄存器初始化程序:

CS8900A驱动程序:CS8900A使用其16位数据模式,驱动程序首先对网卡器件 CS8900A初始化,即写寄存器LINECTL、RXCTL、RCCFG、BUSCT。然后已中断方式响应CS8900A,查询其ISQ寄存器,完成数据包的收发。限于篇幅原因,此处不再对赘述CS8900A的使用方法,有兴趣的读者可以参阅相关文档。

应用程序:应用协议转换程序将Z85C30接收到得数据帧存入数据缓冲队列,按照数据源的类型将数据进行解析和拆分,格式化成统一的数据格式,然后放入待发送缓冲队列。路由控制程序将待发送缓冲队列中的数据按照转发配置文件的设置,将每个数据源都匹配一个TCP/IP的SOCKET,该SOCKET中的IP地址可以是指定的一个主机IP地址,也可以是一个广播地址,待发送缓冲队列中的数据根据转发规则被封装成TCP/UDP包从以太网口发送出去。反向数据同理。

CONSOLE配置端口设计了简易的交互式控制台程序,方便配置各项系统参数,包括通道转发规则、串行端口参数、以太网参数等。

5 系统调试与运行结果

系统首先分别调试LINUX内核、IP网络程序、串口驱动程序和应用程序软件。然后借助普通PC终端的异步串口,使用超级终端发送测试数据,使用 Sniffer嗅探器测试分析系统转发的IP数据。最后重点测试系统对HDLC格式的同步串口信号的解析转换功能。

系统测试时使用的数据源为民航自动化系统输出的综合航迹雷达数据(《MH4008》规范),本数据源物理接口为RS232C,链路层协议为 HDLC,是民航典型的雷达数据输出规范。系统实现了将符合4008规范的HDLC格式的同步串口数据与TCP/IP的消息数据相互转换和分发。图例为系统接收综合航迹雷达信息后转换为消息数据中间件格式接入华东空管一体化系统使用情况。

图4 HDLC综合航迹原始数据

图5 原始数据转换成TCP/IP消息

6 结束语

利用一种基于ARM和SCC的嵌入多协议接口服务器,可进行多种数据格式的空管雷达数据、电报数据与 TCP/IP消息的转换。该接口服务器体积小,功耗低、可集成度高,用户接口使用方便,可灵活完成多协议数据包的获取和转换,可应用于各类信息化系统作为统一的数据通信接口、分析设备,现已成功应用于华东航班信息一体化系统的综合航迹雷达数据接入和电报数据接入。

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

[2](美)科波特(Corbet,J.),Linux设备驱动程序(第三版)[M],中国电力出版社,2006.

[3]贾智平,张瑞华.嵌入式系统原理与接口技术[M].北京:清华大学出版社,2005.

[4]任强,程新明,徐洞成,戴喻.基于 ARM 的单芯片嵌入式网关设计[A],《微计算机信息》(嵌入式与SOC)2009年第25卷第2-2期.

[5]张德敬,基于嵌入式平台的异构通信网关的设计[A],山东大学硕士论文,2009.

[6]THALES 公司,DOD ICD,2006-9-11

[7]Cirrus Logic 公司,CS8900A DATASHEET,2007-8-7.

[8]ZILOG 公司,Z85230 DATASHEET,1994-8-8.

[9]NXP 公司,LPC2220 DATASHEET,2008-7-2.

猜你喜欢
驱动程序数据源以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
谈实时以太网EtherCAT技术在变电站自动化中的应用
电子制作(2017年24期)2017-02-02 07:14:44
一种90W高功率以太网供电系统的设计
电源技术(2015年7期)2015-08-22 08:48:48
浅谈EPON与工业以太网在贵遵高速公路中的应用
基于真值发现的冲突数据源质量评价算法
分布式异构数据源标准化查询设计与实现
驱动程序更新与推荐
驱动程序更新与推荐