APP下载

接口技术在系统开发中的应用

2015-02-26苏新凌苏绍熙汤诗阳作者单位广西人民广播电台

西部广播电视 2015年13期
关键词:接口技术通信协议二次开发

刘 军 苏新凌 苏绍熙 汤诗阳(作者单位:广西人民广播电台)

接口技术在系统开发中的应用

刘 军 苏新凌 苏绍熙 汤诗阳
(作者单位:广西人民广播电台)

摘 要:接口技术是系统开发中不可或缺的部分,是不同模块,不同硬件、硬件与软件、软件与软件之间的联系桥梁,是系统连接的关键环节。本文通过对常用接口及协议的阐述,以及应用开发中的实例经验来说明接口协议的作用、应用选择、开发技巧等。

关键词:接口技术;通信协议;二次开发;系统组合

随着广播的发展,越来越多的新技术在广播的多个方面得到应用,除了使用厂商生产的成品设备,更多的是为了适合本台技术需求所做的定制化开发。定制化开发一般包括系统软件和硬件的二次开发,二次开发中非常重要的一部分内容就是各软硬件或模块间的通信连接,也就是接口技术和通信协议的应用,有了合适的通信连接,才能让一个整体联合发挥出功能作用。因此在技术开发中,接口、协议技术应用具有举足轻重的作用。要有RS-232、RS-422、RS-485等。

1 接口、协议的定义及常见接口

在电子及计算机领域中,接口指实体根据某些规则,将其自身归纳并提供给外界的一种抽象化集合,用以进行信息的传输或交互。接口的抽象性决定了其可被内部修改而不影响外部传输和交互的特性。

在硬件层面,它是大多数接口行业组织提出制定的技术标准演化而成。常用的接口有串行接口(简称串口)(包括RS-232、RS-485、SPI、UART、I2C、JTAG、USB等)、并行接口(简称并口)、Wiegand、GPIO、RJ45、IDE、SATA、HDMI、VGA、DP、PCI-E、DDR等。在软件层面,接口可以有2层含义,首先是狭义的、字面理解的“接口”,即各种语言和软件所给出的API;而广义的接口指的就是人机交互界面。

1.1串口

接口有串口和并口两大类,串行接口(Serial Interface)是采用串行数据传输方式的接口,即一串数据的各比特位按位顺序传输。其特点是数据传输单位较小,传输线路简单,成本较低廉,特别适用于远距离传输,常见串行接口主

1.1.1RS-232(图1)是美国电子工业协会EIA制定的一种串行物理接口标准,这个标准对串行接口的电气特性、信号线功能都作了明确规定。由于通信设备厂商都生产与RS-232接口兼容的通信设备,它作为一种标准接口在电子通信中广泛使用。RS-232接口总线标准设有25条信号线,包括一条主通道以及一条辅助通道,在多数情况下主要使用主通道进行通信。RS-232接口标准规定的数据传输速率为50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。

1.1.2针对RS-232接口存在的很多不足之处,后来发展出RS-485接口,它具有10 Mbps最高数据传输速率;接口信号电平比RS-232低,不易损坏接口电路的芯片;且与TTL电平兼容,方便与TTL电路连接、抗共模干扰能力增强、抗噪声干扰性好等,特别是传输距离大大提高,达到了千米左右,支持多点互联,非常利于联网构建分布式系统。

图1 RS- 232接口原理图

1.1.3SPI是串行外设接口,它可以使单片机与各种外围设备以串行传输的方式进行通信以交换信息。SPI是CPU和外围低速器件之间进行同步串行数据传输的接口,为全双工通信,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后。SPI接口一般有4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线NSS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI),如图2所示。SPI接口具有支持全双工操作、操作简单、数据传输速率较高的优点。

1.1.4UART接口,通用异步接收发送器,它用于串行通信与并行通信间的信息传输转换,并行输入,串行输出,为全双工通信,其基本结构图3所示。

1.1.5USB接口(图4)恐怕是目前最常见的接口了,它是连接计算机系统与外部设备的一种串口总线标准,只有4

根线,两根电源两根信号,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品。

图2 SPI接口多外围设备连接示意图

图3 UART基本结构图

图4 USB接口正反面实物图

1.2并行接口

并口指采用并行传输方式来传输数据的接口标准。特点是传输速度快,但当传输距离较远且数据位宽较大时,就导致通信线路复杂且成本提高,目前已经很少使用。

1.3韦根接口

韦根(Wiegand)接口是近年来使用较为普及的一种接口,协议是由摩托罗拉公司制定的一种通讯协议,没有定义通讯的波特率,也没有定义数据长度。韦根接口通常由3根线组成,它们是数据0(Data0)、数据1(Data1)和Data return。Data0和 Data1两根数据线分别传输0和1。现在应用最多的数据格式为26-Bit。

1.4GPIO接口

GPIO接口也是广播技术人员比较熟悉的接口,它是通用输入输出接口,简单说就是一些引脚,通过它们输出高低电平或通过它们读取引脚高低电平状态。

1.5软件接口

上述接口是和硬件关联度很高的,在开发系统时候往往都有管理软件,软件与软件之间也有多种接口协议,这些不是实物看得到的接口,但是也同样具有重要的连接和通讯协调工作的作用。

软件接口一般分为三个层面:展现、业务和通信。业务层是核心,承上启下,通过一系列的指令进行交互,指令序列规定了具体执行的步骤,如TCP的三次

握手:SYN,ACK,SYN,ACK。通信层是双方完成交互的一种通讯载体,用来传递具体协议信息,可以同一进程内,不同进程间,两不同设备间传输,还可以通过数据库和文件来传输。展现层则重在考虑沟通双方的使用方式,通过一个个具体的API来完成最终的交互,这就是通常所说的“Interface”,如图5所示。

图5 接口框图

2 在二次开发中接口、协议的选择和处理方法

在技术开发中,各子系统各模块间的连接离不开各类接口及协议的使用。而对接口和协议的选择,要根据需求及设计的功能来确定,比如数据传输速率、传输距离、对环境的要求等方面。在二次开发中,也会遇到硬件或软件是单品采购,然后不同硬件软件之间要联系起来使用,就需要首先清楚每个硬件软件的接口和协议是什么,对联上需要做什么转换,有些可以采用市场上既有的接口转换器来实现,有些就是通过搞清楚协议通讯的定义方式,然后通过定制开发中间件来实现连接。因此,总结来说,需要熟悉接口和协议的原理,使用方式。如果是涉及软件,接口必须是开放的,这样才能根据协议编制方式来针对性开发。

3 软硬件连接开发实例说明

3.1硬件接口实例说明

该例子是无线射频读卡机读取卡片信息与管理平台通讯实现管理的一个系统。这个系统涉及到串口,RS-485接口,RJ-45网络接口,运行时,其中无线射频读卡机读取卡片信息后,通过485接口把数据(产品约定的格式)传送到单片机,单片机处理后编码通过串口转成IP发送给服务器管理平台,管理平台验证之后把指令回传给单片机,由单片机根据指令输出控制。下位机与上位机通讯至关重要,为使下位机与上位机进行有效的

交互,自定义了一种通讯规范,为上位机及单片机的有关编程提供依据。部分规定定义如表1。

表1 下位机与上位机部分通讯规范

软件管理平台采用动态链接库,提供了诸多API接口,在二次开发接口的设计和实现中,大大降低了开发的难度,用户自定义的接口协议形式,是一种更灵活的通讯方式,同时也是按一定的原则基本上实现的,它为上位机和下位机的通讯编程提供依据。

3.2软件接口实例说明

该例子是两个软件管理平台之间数据传送。在开发项目中有一个内容是在两地的不同单位设计建立两套软件平台,其中1套负责收集相关的资讯信息,另外1套作为用户,通过互联网传送数据,由于两套软件各自采用不同的语言及架构,双方为了通讯数据,采用Web Service接口,该接口能使运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。把调用这个Web Service的应用程序叫做客户。这种接口开发的优势在于能够应用程序集成,无需考虑数据交互双方的系统差异。

3.3软件远程控制设备实例

该例子是通过软件远程控制一台调频发射机工作。例子中调频发射机也有网管接口,可以通过软件控制发射机的工作及提取运行数据,这里采用的是Socket进行双向的通信连接实现数据的交换,通过IP地址和端口来实现不同虚拟机或不同计算机之间的通信。Socket的英文原意是“孔”或“插座”,就像在Internet上运行的主机所提供的多种服务,每一种服务就是一个“插座”,端口就像是“插座”上的编号,有的“插座”提供220 V的交流电,有的则是110 V的交流电。客户只需要通过不同的“编号”(即端口),就能得到不同的服务。

连接发射机时只需要得到发射机一端IP和端口,即可建立一个处于等待连接、实时监控网络状态的Socket。在Socket握手成功后,因其双向通信的特性,在控制调频发射机的同时,也能得到发射机反馈回来的各类实时参数。同时本例子中的所有Socket通信其内容必须通过CRC16安全校验才能被认为有效。

具体实现:

//1与服务端建立连接

Socket client = new Socket(“IP”,”端口”);

//2发送命令

DataOutputStream writer = new DataOutputStream(client.getOutputStream());

writer.write(bufData);

writer.flush();

//3返回值

Input Streambr = client.getInputStream();

//设置超时间为10秒

client.setSoTimeout(10*1000);

int totalBytesRcvd = 0;

//数据容器

byte[] rdsDate = new byte [“字节长度”];

totalBytesRcvd=br.read(rdsDate);

//4以下结束通信

writer.close();

br.close();

client.close();

return rdsDate;

}

上述代码为一个简单的Socket通信的步骤,简单来说就是

(1)通过IP和端口建立连接

(2)创建客户端输出流,往服务器发送命令

(3)创建客户端输入流,获取服务器接收到请求后的返回值

(4)结束本次通信,清除输出流、输入流。

Socket接口优势在于传输数据为字节级,传输数据可自定义,应用灵活,数据量小;传输数据时间短,性能高;适合于客户端和服务器端之间信息实时交互;可以加密数据,数据安全性强。

4 接口开放的意义和价值

目前越来越多的电台在技术系统更新或改造中,都会考虑日后的升级性和调整的方便性,同时在建设中可能存在不同商家的开发子系统,需要组合来应用。这样就必须掌握底层的协议,其中很典型的一个就是接口协议,外部的硬件接口很显然容易掌握和应用,但是软件系统的接口则有不同的协议或编写格式。接口的开发,意味着能够拿到二次开发的工具,能够通过自己或第三方根据开放的接口进行进一步的系统改造升级,这样对于系统的改进,具有很重要的价值,可以实现类似SOA架构的模块扩展,满足系统不断扩展升级的需求。

5 结语

广播技术包含诸多种类,新技术的应用,系统升级或补充完善是常态化的。解决系统的封闭性,为了更符合实际应用要求,更具有使用保障性和后期升级空间,开放的接口越来越受到重视。二次开发更是掌握主动的办法,突出体现了实用性和扩展性,接口技术的应用给二次开发提供了良好的连接桥梁。因此掌握好这些通信接口协议技术,是技术深度、广度开发应用的必不可少的技术工具,在技术开发上体现出越来越重要的作用。

猜你喜欢

接口技术通信协议二次开发
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
论《单片机原理与接口技术》跨校修读模式
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
电力系统全网一体化暂态仿真接口技术
西门子Easy Screen对倒棱机床界面二次开发
关于电力物联网信息模型及通信协议的设计要点分析
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用
基于风险分析的安全通信协议简化研究