接口协议汇总十篇

时间:2023-03-01 16:21:01

接口协议

接口协议篇(1)

1 ps/2接口标准的发展过程

随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年ibm推出了ibm pc/xt键盘及其接口标准。该标准定义了83键,采用5脚din连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年ibm推出了ibmat键盘接口标准。该标准定义了84~101键,采用5脚din连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,ibm又推出了ps/2键盘接口标准。该标准仍旧定义了84~101键,但是采用6脚mini-din连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和ps/2及at键盘兼容,只是功能不同而已。

2 ps/2接口硬件

2.1 物理连接器

一般,具有五脚连接器的键盘称之为at键盘,而具有六脚mini-din连接器的键盘则称之为ps/2键盘。其实这两种连接器都只有四个脚有意义。它们分别是clock(时钟脚)、data数据脚、+5v(电源脚)和ground(电源地)。在ps/2键盘与pc机的物理连接上只要保证这四根线一一对应就可以了。ps/2键盘靠pc的ps/2端口提供+5v电源,另外两个脚clock(时钟脚)和data数据脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如图1所示。

2.2 电气特性

ps/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过clock(时钟脚)同步,并通过data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把clock(时钟脚)拉到低电平。如果是pc机和ps/2键盘间的通讯,则pc机必须做主机,也就是说,pc机可以抑制ps/2键盘发送数据,而ps/2键盘则不会抑制pc机发送数据。一般两设备间传输数据的最大时钟频率是33khz,大多数ps/2设备工作在10~20khz。推荐值在15khz左右,也就是说,clock(时钟脚)高、低电平的持续时间都为40μs。每一数据帧包含11~12个位,具体含义如表1所列。

表1 数据帧格式说明

1个起始位

总是逻辑0

8个数据位

(lsb)低位在前

1个奇偶校验位

奇校验

1个停止位

总是逻辑1

1个应答位

仅用在主机对设备的通讯中

表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。

2.3 ps/2设备和pc机的通讯

ps/2设备的clock(时钟脚)和data数据脚都是集电极开路的,平时都是高电平。当ps/2设备等待发送数据时,它首先检查clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是pc机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般ps/2键盘有16个字节的缓冲区,而ps/2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果clock(时钟脚)为高电平,ps/2设备便开始将数据发送到pc机。一般都是由ps/2设备产生时钟信号。发送时一般都是按照数据帧格式顺序发送。其中数据位在clock(时钟脚)为高电平时准备好,在clock(时钟脚)的下降沿被pc机读入。ps/2设备到pc机的通讯时序如图2所示。

当时钟频率为15khz时,从clock(时钟脚)的上升沿到数据位转变时间至少要5μs。数据变化到clock(时钟脚)下降沿的时间至少也有5 μs,但不能大于25 μs,这是由ps/2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。

上述讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(make)和断码(break)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。

3 ps/2接口的嵌入式软件编程方法

ps/2设备主要用于产生同步时钟信号和读写数据。

3.1 ps/2向pc机发送一个字节

    从ps/2向pc机发送一个字节可按照下面的步骤进行:

(1)检测时钟线电平,如果时钟线为低,则延时50μs;

(2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);

(3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时pc机在向ps/2设备发送数据,所以ps/2设备要转移到接收程序处接收数据);

(4)延时20μs(如果此时正在发送起始位,则应延时40μs);

(5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保pc机没有抑制ps/2设备,如果有则中止发送;

(6)输出8个数据位到数据线上;

(7)输出校验位;

(8)输出停止位(1);

(9)延时30μs(如果在发送停止位时释放时钟信号则应延时50μs);

通过以下步骤可发送单个位:

(1)准备数据位(将需要发送的数据位放到数据线上);

(2)延时20μs;

(3)把时钟线拉低;

(4)延时40μs;

(5)释放时钟线;

(6)延时20μs。

3.2 ps/2设备从pc机接收一个字节

由于ps/2设备能提供串行同步时钟,因此,如果pc机发送数据,则pc机要先把时钟线和数据线置为请求发送的状态。pc机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当ps/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而ps/2设备则要配合pc机才能读到准确的数据。具体连接步骤如下:

(1)等待时钟线为高电平。

(2)判断数据线是否为低,为高则错误退出,否则继续执行。

(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被pc机拉低,如果被拉低则要中止接收。

(4)读地址线上的校验位内容,1个bit。

(5)读停止位。

(6)如果数据线上为0(即还是低电平),ps/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果ps/2设备没有读到停止位,则表明此次传输出错)。

(7 输出应答位。

(8) 检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。

(9)延时45 μs,以便pc机进行下一次传输。

读数据线的步骤如下:

(1)延时20μs;

(2)把时钟线拉低

(3)延时40μs

(4)释放时钟线

(5)延时20μs

(6)读数据线。

下面的步骤可用于发出应答位;

(1)延时15μs;

(2)把数据线拉低;

(3)延时5μs;

(4)把时钟线拉低;

(5)延时40μs;

(6)释放时钟线;

(7)延时5μs;

(8)释放数据线。

4 用于工控机的双键盘设计

工控机通常要接标准键盘,但是为了方便操作,常常需要外接一个专用键盘。此实例介绍了在工控pc机到ps/2总线上再接入一个自制专用键盘的应用方法。

该设计应能保证两个键盘单独工作,而且相互不能影响。因此,不能直接把专用键盘和标准键盘一起接到工控pc的ps/2口。鉴于这种情况,本设计使用模拟开关cd4052并通过时分复用工控pc的ps/2口,来使在同一个时刻只有一个键盘有效,从而解决上述问题。其硬件原理图如图3所示。其中p2口和p1口用于键盘扫描电路(图中未画出),p0.0为数据端,p0.1为时钟端,p0.2为模拟开关选通端。由于专用键盘不需要接收工控pc机的命令,所以软件中并不需要写这部分相应的代码。

通过软件可在专用键盘复位后把p0.2清0,以使模拟开关cd4052打开相应的通道。这时工控pc的标准键盘将开始工作。标准键盘可以完成工控pc刚启动时对外设检测的应答。复位后的专用键盘不停地扫描有没有按键,如果有键按下则识别按键,并且按照预先的设计进行编码,同时调用发送程序并通过ps/2口发送到工控pc。此时模拟开关关闭相应通道(将p0.2置1),专用键盘接入工控pcps/2口的时钟线和数据线而工作,但标准键盘被模拟开关从ps/2的时钟线和数据线中断而不工作,这样,双键盘便可时分复用同一个工控pc机的ps/2口。相应的发送子程序如下:

#define datap00 用p0.0做数据线

#define clkp01 用p0.1做时钟线

#define inhibitp02 用p0.2做cd4052的inh端

#define portrp1 用p1口做读入口

#define portwp2 用p2口做写出口 可以实现64个自定义键

void send(ucharx)/***function forsend a char da-ta***/

{

uchar i,temp,char_temp;

bit flag_check=1;

inhibit=1;//disable standard keyboard

delay_ ms(3);

temp=x;

for(i=0;i<8;i++)//find the number of 1 in this uchar x is odd or not

{

char_temp=temp&0x01;

if(char_temp==0x01)

{

flag_check=!flag_check;

}

temp=temp>>1;

}

clk=1;//send 1 to p1 then read p1

while (!clk) //ifclk is low wait

{

;

}

clk=1;data=1;//send 1 to p1 then read p1

if(clk==1)

{

delay_us(30);//

}

if(clk==1&&data==1)//send data

{

data=0;//start bit 0

delay_us(10);

clk=0;

delay_us(5);//

temp=x;

for(i=0;i<8;i++)//send 8 bits lsbfirst

{

clk=1;

delay_us(5);

char_temp=temp&0x01;

if(char_temp==0x01)

{

data=1;

}

else

{

data=0;

}

//data=(bit)(temp&0x01);

//lsb

delay_us(10);

clk=0;

delay_us(5);

temp=temp>>1;

}

clk=1;//send check bit

delay_us(5);

data=flag_check;

delay_us(10);

clk=0;

delay_us(5)

clk=1;//send stop bit

delay_us(5);

data=1;

delay us10

clk=0

delay_us(5);

clk=1;

delay_us(30); 

clk=1;data=1;//send 1 to p1 then read p1

if(clk==1&&data==0)

{

return; //pc is sending data to mcu, go to

receiving function

}

inhibit=0; //enable standard keyboard

接口协议篇(2)

接入网的概念是由传统的用户线发展起来的。近年来,由于电话业务的发展、新业务种类的增多、对线路带宽要求的提高以及各种新兴技术(特别是光纤通信技术)的发展,使得传统的用户线的概念逐渐发展成为接入网的概念。前几年,国际电信联盟(ITU)正式定义了用户接入网。引入接入网后,现有的电信网将减少端局数量,简化中继网的复杂程度,有利于中继网的管理。

接入网所覆盖的范围可以由三类接口来界定,如图1所示。接口的标准化、综合性直接影响到接入网的建设成本及接入网能承载的业务能力,为此,ITU-T综合考虑各种需要,终于通过了关于接入网和本地交换机之间标准化的V5.1和V5.2接口的建议[1,2]。

V5接口是一种在接入网中适用范围广、标准化程度高的新型开放的数字接口,对于设备的开发应用、多种业务的发展和网络的更新起着重要的作用。V5接口的标准化代表了重要的网络演进方向,影响深远。其意义在于交换机通过此接口可以支持多种类型的用户接入,而且V5接口的开放性意味着交换机和接入网的技术和业务演进完全独立开来。接入网的发展可以不受交换机的限制,使得接入网市场完全开放。

一、V5接口协议结构

窄带V5接口包括V5.1和V5.2接口。V5.1接口由1条2048Kb/s链路构成,通过时隙传递公共控制信号,支持模拟电话接入,基于64Kb/s的综合业务数字网基本接入(2B+D)和用于半永久连接的、不加带外信令信息的其他模拟接入和数字接入。这些接入类型都具有指配的承载通路分配,即用户端口与V5.1接口内承载通路有固定的对应关系。V5.2接口按需要可以由1~16个2048Kb/s链路构成,除支持V5.1接口的业务外,还支持ISDN PRI(30B+D)接入,其基于呼叫的时隙分配使得V5.2接口具有集中功能。V5.1接口是V5.2接口的子集,V5.1接口应当能够升级到V5.2接口。

V5接口协议由3层组成,接入网侧和本地交换机侧呈不对称布置,层与层之间的信息传递采用原语实现,而同层子层间的信息传递则采用映射。

V5接口物理层由1~16条2048Kb/s的链路构成,电气和物理特性符合G.703建议,帧结构符合G.704/G.706建议。每帧由32个时隙组成,其中:时隙TS0用作帧定位和CRC-4规程;时隙TS15、TS16和TS31可以用作通信通路(C通路),运载信令信息和控制信息,通过指配来分配;其余时隙可用作承载通路。

V5接口的数据链路层仅对于C通路而言。第二层协议(LAPV5)规范以建议Q.921中规定的LAPD协议和规程为基础,允许将不同的信息流灵活地复用到C通路上去。第二层协议分为两个子层:封装功能子层(LAPV5-EF)和数据链路子层(LAPV5-DL)。此外,第二层功能中还应包括帧中继功能(AN-FR)。

V5接口的第三层协议簇包括PSTN协议、控制协议、链路控制协议、BCC协议和保护协议(后三种协议为V5.2接口特有)。PSTN协议负责处理与PSTN业务有关的信令;控制协议负责用户端口状态指示与控制,协调两侧在网管控制下的数据指配;链路控制协议负责协调和控制AN、LE两侧的链路阻塞、链路解除阻塞和链路标识功能;BCC协议用来把一特定2048Kb/s链路上的承载通路基于呼叫分配给用户端口;保护协议提供V5.2接口在出现故障时通信路径切换的保护功能。

如图2所示,当第三层协议有信令信息需要发送时,通过数据链路子层(LAPV5-DL),请求封装功能子层(LAPV5-EF),用给定的封装功能地址传送数据链路子层端到端数据。

二、V5接口的实现

笔者曾参与IDS2000综合数字通信系统(接入网侧)V5.2接口的开放研制工作。IDS2000综合数字通信系统是电力自动化研究院为了满足电力通信网发展的需要而开发的一种综合接入设备。该设备具备V5接口,使得IDS2000系统可以很方便地通过开放接口和大型交换设备互连,取代了原先接入大型交换设备时所用的音频Z接口或专用接口。

V5接口协议分3层结构。物理层和数据链路层部分功能由硬件实现,这在超大规模集成电路飞速发展的今天,难度已不是太大。Mitel公司生产的大规模E1接口芯片MT9075就是一种很合适的芯片[3]。MT9075是一种单E1接口,综合了成帧器和LIU。重要特性包括数据链路接入、告警、中断、环回和诊断,并内嵌了两个HDLC控制器(MT8952),特别适用在V5接口(封装功能子层功能和HDLC协议类似)。

V5接口的第三层协议包含内容较多,由软件实现。本文主要结合嵌入式系统编程来介绍V5接口的第三层软件结构,对于协议细节的实现不多赘述。

    1.实时多任务操作系统[4]

目前,嵌入式应用领域的一个发展倾向是采用实时多任务操作系统RTOS(Real Time Operating System)。RTOS的广泛使用与应用的复杂化有关。过去1个单片机应用程序所控制的外设和履行的任务不多,采取1个主循环和几个顺序调用的子程序模块即可满足要求;但现在1个嵌入式控制系统可能要同时控制/监视很多外设,要求实时响应,有很多处理任务,各个任务之间有很多信息传递,如果仍采用原来的方法,存在两个问题:一是中断可能得不到及时响应,处理时间过长;二是系统任务多,要考虑的各种可能也多,各种资源若调度不当就会造成死锁,降低软件可靠性,程序编写任务量成指数增加。正是这种情况的出现,推动着RTOS的应用迅速发展。

对于V5接口,系统软件工作量相当大,包括5个核心协议功能的处理,须管理很多定时器,有很多用户端口需要监视,并且要求实时处理,若采用传统的软件编程方法,很难实现。在IDS2000系统中,笔者采用VRTX实时多任务操作系统[5]作为开发平台,大大减轻了软件的工作量,而采用面向对象的编程方法和事件驱动的消息机制,使得协议程序具有高可靠性、可控、可观测、易于维护和管理。

    2.V5接口软件框图

如图3所示,V5接口软件主要包括:

(1) 数据链路层模块(仅包括数据链路子层功能,封装功能子层由硬件板完成);

(2) PSTN协议处理模块;

(3) 控制协议处理模块(包括用户端口状态机、指配控制状态机、公共控制状态机);

(4) 链路控制协议处理模块(包括链路控制状态机、链路控制L3状态机);

(5) BCC协议处理模块;

(6) 保护协议模块;

(7) V5接口AN侧系统管理模块;

(8) V5接口AN侧资源管理模块;

(9) 定时器管理模块;

(10) 消息处理模块;

(11) 用户端口模块;

(12) 10ms定时中断。

上述模块中,模块1~7完成V5接口协议的核心功能。其中,数据链路层模块对模块2~7所产生的消息进行处理,交由V5硬件接口板完成封装功能,再发送给LE侧实体;PSTN协议处理模块主要功能是建立用户端口状态和LE侧国内协议实体之间的联系;控制协议模块用于表示用户端口状态指示与控制,还和系统启动、重新启动、指配有关;V5接口AN侧系统管理模块是协议功能正常实现的重要部分,在AN和LE中,不同的FSM之间或第二层协议实体之间没有直接的通信,而是通过系统管理来协调V5接口各个协议实体之间的操作。另外,系统管理负责从AN或LE的各种功能模块中接收和处理有关状态和故障的信息。系统管理还是维护台或网管系统与V5接口之间的桥梁,它负责接收维护命令,并对V5接口执行相应的操作,随时向上层网管报告系统的运行状况。

模块8~12完成V5接口协议的辅助功能。其中用户端口模块负责用户端口状态扫描与控制,直接与硬件端口联系;AN侧资源管理模块配合BCC协议处理模块完成V5接口中BCC协议功能;消息处理模块是为了减轻操作系统的负担设立的,它负责协同操作系统管理各模块的消息队列;定时器管理模块负责产生、管理系统中所需要的定时器,当定时器溢出时,发送消息至相应模块;10ms定时中断程序负责调度系统中需周期性运行的任务,采用“信号量”(semaphores)的通信机制完成。

    3.有限状态机

在上述程序模块中,存在大量的有限状态机(FSM),如控制协议中的用户端口FSM、公共控制FSM、BCC协议中的承载通路连接FSM等。有限状态机是描述通信协议过程的一般方式,是一种面向对象的描述方法,与具体实现程序无关。有限状态机具有有限状态集,在任意给定的时刻,必有惟一确定的状态,在某状态下必须依赖于外部输入的特定消息触发,才能引起状态转移或执行某种任务。

有限状态机对于系统其他软件而言相当于一个“黑匣子”。它可以接收有限的消息组,也可以发送特定的消息组,但其内部结构不为系统其他部分所知。它的功能完全由它接收和发送消息顺序所决定。

有限状态机的这种描述方式很适合用面向对象的方法实现。在传统的实现方法中,状态变量和状态表可以在状态机模块外被访问,易于遭到破坏。面向对象的实现方法提供了一种更加结构化和更加直观的FSM实现方法,更利于“数据隐藏”,而且这些优点随着FSM规模的增大越发明显。我们只须要定义一个FSM基类,利用封装、继承和多态性的特点,就很容易从先前定义的基类中派生出所需要的FSM,大大减少了软件的工作量,软件也易于维护。

    4.定时器的实现机制

定时器对于正确实现通信协议功能有着很重要的作用。V5接口协议中存在大量的定时器,当话务量较大时,可能有数百个定时器同时运行。定时器的设计是正确完成V5接口协议功能的一个重要部分。

本系统中由定时器管理进程负责管理V5接口中所有的定时器。由于各种定时器所要求的精度各不相同,所选择时间的长度对各定时器进行监视和计数累计是问题的关键:时间间隔太小,影响系统运行效率;时间间隔太长,影响定时器的精度。为了解决这个问题,系统中设定了三种不同分辨率的定时器:10ms、100ms和1s(分辨率指计数时间间隔)。

若某应用进程须要使用定时器,首先要向定时器管理进程发送一消息,消息中应包含申请定时器的分辨率、预置计数值、溢出后应发送的消息等信息。定时器管理进程收到该消息后,根据定时器的分辨率将其放到合适的定时队列中,启动定时。若定时器计数为零,则表示该定时器溢出,定时器管理进程应向相应的应用进程发送溢出消息,同时应释放该定时器。应用进程若主动要求放弃一定时器,则应向定时器管理进程发送一释放定时器消息。消息中应包含所申请定时器的标号、分辨率以及溢出目标进程、目标对象等。定时器管理进程接收到此消息后,在合适的定时器队列中寻找到该定时器后,将其释放。 定时器管理进程管理其他各应用进程所申请的定时器。在定时器管理进程中,有三个链表分别用于存放这3种不同分辨率的定时器。

定时器管理进程完成以下一些基本功能:

(1)管理10ms、100ms和1s三种定时器链表。

(2)当10ms定时间隔到,应遍历10ms定时器链表,完成对链表中各定时器的计数处理。若有定时器溢出,则向相应的进程发送溢出消息,并从定时器链表中释放该定时器。同样,当100ms或1s的定时间隔到时,也应对100ms或1s定时器链表作相同处理。

(3)处理从其他进程接收到的消息。当收到从其他进程发送的申请定时器的消息时,应在相应分辨率的定时器链表中插入所申请的定时器;在接收到从其他进程来的释放定时器的消息后,应寻找到该定时器,并将其释放。

    5.编写可重入函数

V5接口中有大量的函数需要编写。和传统的编程环境不同,本系统中,V5接口软件运行在多任务环境上,函数的可重入性(reentrancy)显得很重要。

所谓可重入函数是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会出错。在编写函数时应尽量只使用局部变量,对于要使用的全局变量需要加以保护(如采用关中断、信号量等措施),这样构成的函数一定是可重入的;而编译器是否具有可重入的库,与它所服务的操作系统有关,如DOS下的Borland C和Microsoft C/C++等就没有可重入函数库,这是因为DOS是一个单用户、单任务的操作系统。

为了确保每一个调用函数的任务控制自己私有变量,在一个可重入的C函数中,将这样的变量申明为局部变量,C编译器将这样的变量存放在调用栈上或寄存器里。在VRTX操作系统下编写可重入的函数,须要遵循以下原则:

(1)将所有局部变量申明为auto或寄存器(register)类型;

(2)尽量不要使用static或extern变量,不可避免使用全局变量时,需加以保护;

(3)用VRTX库函数sc_gblock分配大的数据结构。

接口协议篇(3)

接入网的概念是由传统的用户线发展起来的。近年来,由于电话业务的发展、新业务种类的增多、对线路带宽要求的提高以及各种新兴技术(特别是光纤通信技术)的发展,使得传统的用户线的概念逐渐发展成为接入网的概念。前几年,国际电信联盟(ITU)正式定义了用户接入网。引入接入网后,现有的电信网将减少端局数量,简化中继网的复杂程度,有利于中继网的管理。

接入网所覆盖的范围可以由三类接口来界定,如图1所示。接口的标准化、综合性直接影响到接入网的建设成本及接入网能承载的业务能力,为此,ITU-T综合考虑各种需要,终于通过了关于接入网和本地交换机之间标准化的V5.1和V5.2接口的建议[1,2]。

V5接口是一种在接入网中适用范围广、标准化程度高的新型开放的数字接口,对于设备的开发应用、多种业务的发展和网络的更新起着重要的作用。V5接口的标准化代表了重要的网络演进方向,影响深远。其意义在于交换机通过此接口可以支持多种类型的用户接入,而且V5接口的开放性意味着交换机和接入网的技术和业务演进完全独立开来。接入网的发展可以不受交换机的限制,使得接入网市场完全开放。

一、V5接口协议结构

窄带V5接口包括V5.1和V5.2接口。V5.1接口由1条2048Kb/s链路构成,通过时隙传递公共控制信号,支持模拟电话接入,基于64Kb/s的综合业务数字网基本接入(2B+D)和用于半永久连接的、不加带外信令信息的其他模拟接入和数字接入。这些接入类型都具有指配的承载通路分配,即用户端口与V5.1接口内承载通路有固定的对应关系。V5.2接口按需要可以由1~16个2048Kb/s链路构成,除支持V5.1接口的业务外,还支持ISDN PRI(30B+D)接入,其基于呼叫的时隙分配使得V5.2接口具有集中功能。V5.1接口是V5.2接口的子集,V5.1接口应当能够升级到V5.2接口。

V5接口协议由3层组成,接入网侧和本地交换机侧呈不对称布置,层与层之间的信息传递采用原语实现,而同层子层间的信息传递则采用映射。

V5接口物理层由1~16条2048Kb/s的链路构成,电气和物理特性符合G.703建议,帧结构符合G.704/G.706建议。每帧由32个时隙组成,其中:时隙TS0用作帧定位和CRC-4规程;时隙TS15、TS16和TS31可以用作通信通路(C通路),运载信令信息和控制信息,通过指配来分配;其余时隙可用作承载通路。

V5接口的数据链路层仅对于C通路而言。第二层协议(LAPV5)规范以建议Q.921中规定的LAPD协议和规程为基础,允许将不同的信息流灵活地复用到C通路上去。第二层协议分为两个子层:封装功能子层(LAPV5-EF)和数据链路子层(LAPV5-DL)。此外,第二层功能中还应包括帧中继功能(AN-FR)。

V5接口的第三层协议簇包括PSTN协议、控制协议、链路控制协议、BCC协议和保护协议(后三种协议为V5.2接口特有)。PSTN协议负责处理与PSTN业务有关的信令;控制协议负责用户端口状态指示与控制,协调两侧在网管控制下的数据指配;链路控制协议负责协调和控制AN、LE两侧的链路阻塞、链路解除阻塞和链路标识功能;BCC协议用来把一特定2048Kb/s链路上的承载通路基于呼叫分配给用户端口;保护协议提供V5.2接口在出现故障时通信路径切换的保护功能。

如图2所示,当第三层协议有信令信息需要发送时,通过数据链路子层(LAPV5-DL),请求封装功能子层(LAPV5-EF),用给定的封装功能地址传送数据链路子层端到端数据。

二、V5接口的实现

笔者曾参与IDS2000综合数字通信系统(接入网侧)V5.2接口的开放研制工作。IDS2000综合数字通信系统是电力自动化研究院为了满足电力通信网发展的需要而开发的一种综合接入设备。该设备具备V5接口,使得IDS2000系统可以很方便地通过开放接口和大型交换设备互连,取代了原先接入大型交换设备时所用的音频Z接口或专用接口。

V5接口协议分3层结构。物理层和数据链路层部分功能由硬件实现,这在超大规模集成电路飞速发展的今天,难度已不是太大。Mitel公司生产的大规模E1接口芯片MT9075就是一种很合适的芯片[3]。MT9075是一种单E1接口,综合了成帧器和LIU。重要特性包括数据链路接入、告警、中断、环回和诊断,并内嵌了两个HDLC控制器(MT8952),特别适用在V5接口(封装功能子层功能和HDLC协议类似)。

V5接口的第三层协议包含内容较多,由软件实现。本文主要结合嵌入式系统编程来介绍V5接口的第三层软件结构,对于协议细节的实现不多赘述。

1.实时多任务操作系统[4]

目前,嵌入式应用领域的一个发展倾向是采用实时多任务操作系统RTOS(Real Time Operating System)。RTOS的广泛使用与应用的复杂化有关。过去1个单片机应用程序所控制的外设和履行的任务不多,采取1个主循环和几个顺序调用的子程序模块即可满足要求;但现在1个嵌入式控制系统可能要同时控制/监视很多外设,要求实时响应,有很多处理任务,各个任务之间有很多信息传递,如果仍采用原来的方法,存在两个问题:一是中断可能得不到及时响应,处理时间过长;二是系统任务多,要考虑的各种可能也多,各种资源若调度不当就会造成死锁,降低软件可靠性,程序编写任务量成指数增加。正是这种情况的出现,推动着RTOS的应用迅速发展。

对于V5接口,系统软件工作量相当大,包括5个核心协议功能的处理,须管理很多定时器,有很多用户端口需要监视,并且要求实时处理,若采用传统的软件编程方法,很难实现。在IDS2000系统中,笔者采用VRTX实时多任务操作系统[5]作为开发平台,大大减轻了软件的工作量,而采用面向对象的编程方法和

事件驱动的消息机制,使得协议程序具有高可靠性、可控、可观测、易于维护和管理。 2.V5接口软件框图

如图3所示,V5接口软件主要包括:

(1) 数据链路层模块(仅包括数据链路子层功能,封装功能子层由硬件板完成);

(2) PSTN协议处理模块;

(3) 控制协议处理模块(包括用户端口状态机、指配控制状态机、公共控制状态机);

(4) 链路控制协议处理模块(包括链路控制状态机、链路控制L3状态机);

(5) BCC协议处理模块;

(6) 保护协议模块;

(7) V5接口AN侧系统管理模块;

(8) V5接口AN侧资源管理模块;

(9) 定时器管理模块;

(10) 消息处理模块;

(11) 用户端口模块;

(12) 10ms定时中断。

上述模块中,模块1~7完成V5接口协议的核心功能。其中,数据链路层模块对模块2~7所产生的消息进行处理,交由V5硬件接口板完成封装功能,再发送给LE侧实体;PSTN协议处理模块主要功能是建立用户端口状态和LE侧国内协议实体之间的联系;控制协议模块用于表示用户端口状态指示与控制,还和系统启动、重新启动、指配有关;V5接口AN侧系统管理模块是协议功能正常实现的重要部分,在AN和LE中,不同的FSM之间或第二层协议实体之间没有直接的通信,而是通过系统管理来协调V5接口各个协议实体之间的操作。另外,系统管理负责从AN或LE的各种功能模块中接收和处理有关状态和故障的信息。系统管理还是维护台或网管系统与V5接口之间的桥梁,它负责接收维护命令,并对V5接口执行相应的操作,随时向上层网管报告系统的运行状况。

模块8~12完成V5接口协议的辅助功能。其中用户端口模块负责用户端口状态扫描与控制,直接与硬件端口联系;AN侧资源管理模块配合BCC协议处理模块完成V5接口中BCC协议功能;消息处理模块是为了减轻操作系统的负担设立的,它负责协同操作系统管理各模块的消息队列;定时器管理模块负责产生、管理系统中所需要的定时器,当定时器溢出时,发送消息至相应模块;10ms定时中断程序负责调度系统中需周期性运行的任务,采用“信号量”(semaphores)的通信机制完成。

3.有限状态机

在上述程序模块中,存在大量的有限状态机(FSM),如控制协议中的用户端口FSM、公共控制FSM、BCC协议中的承载通路连接FSM等。有限状态机是描述通信协议过程的一般方式,是一种面向对象的描述方法,与具体实现程序无关。有限状态机具有有限状态集,在任意给定的时刻,必有惟一确定的状态,在某状态下必须依赖于外部输入的特定消息触发,才能引起状态转移或执行某种任务。

有限状态机对于系统其他软件而言相当于一个“黑匣子”。它可以接收有限的消息组,也可以发送特定的消息组,但其内部结构不为系统其他部分所知。它的功能完全由它接收和发送消息顺序所决定。

有限状态机的这种描述方式很适合用面向对象的方法实现。在传统的实现方法中,状态变量和状态表可以在状态机模块外被访问,易于遭到破坏。面向对象的实现方法提供了一种更加结构化和更加直观的FSM实现方法,更利于“数据隐藏”,而且这些优点随着FSM规模的增大越发明显。我们只须要定义一个FSM基类,利用封装、继承和多态性的特点,就很容易从先前定义的基类中派生出所需要的FSM,大大减少了软件的工作量,软件也易于维护。

4.定时器的实现机制

定时器对于正确实现通信协议功能有着很重要的作用。V5接口协议中存在大量的定时器,当话务量较大时,可能有数百个定时器同时运行。定时器的设计是正确完成V5接口协议功能的一个重要部分。

本系统中由定时器管理进程负责管理V5接口中所有的定时器。由于各种定时器所要求的精度各不相同,所选择时间的长度对各定时器进行监视和计数累计是问题的关键:时间间隔太小,影响系统运行效率;时间间隔太长,影响定时器的精度。为了解决这个问题,系统中设定了三种不同分辨率的定时器:10ms、100ms和1s(分辨率指计数时间间隔)。

若某应用进程须要使用定时器,首先要向定时器管理进程发送一消息,消息中应包含申请定时器的分辨率、预置计数值、溢出后应发送的消息等信息。定时器管理进程收到该消息后,根据定时器的分辨率将其放到合适的定时队列中,启动定时。若定时器计数为零,则表示该定时器溢出,定时器管理进程应向相应的应用进程发送溢出消息,同时应释放该定时器。应用进程若主动要求放弃一定时器,则应向定时器管理进程发送一释放定时器消息。消息中应包含所申请定时器的标号、分辨率以及溢出目标进程、目标对象等。定时器管理进程接收到此消息后,在合适的定时器队列中寻找到该定时器后,将其释放。 定时器管理进程管理其他各应用进程所申请的定时器。在定时器管理进程中,有三个链表分别用于存放这3种不同分辨率的定时器。

定时器管理进程完成以下一些基本功能:

(1)管理10ms、100ms和1s三种定时器链表。

(2)当10ms定时间隔到,应遍历10ms定时器链表,完成对链表中各定时器的计数处理。若有定时器溢出,则向相应的进程发送溢出消息,并从定时器链表中释放该定时器。同样,当100ms或1s的定时间隔到时,也应对100ms或1s定时器链表作相同处理。

(3)处理从其他进程接收到的消息。当收到从其他进程发送的申请定时器的消息时,应在相应分辨率的定时器链表中插入所申请的定时器;在接收到从其他进程来的释放定时器的消息后,应寻找到该定时器,并将其释放。

5.编写可重入函数

V5接口中有大量的函数需要编写。和传统的编程环境不同,本系统中,V5接口软件运行在多任务环境上,函数的可重入性(reentrancy)显得很重要。

所谓可重入函数是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会出错。在编写函数时应尽量只使用局部变量,对于要使用的全局变量需要加以保护(如采用关中断、信号量等措施),这样构成的函数一定是可重入的;而编译器是否具有可重入的库,与它所服务的操作系统有关,如DOS下的Borland C和Microsoft C/C++等就没有可重入函数库,这是因为DOS是一个单用户、单任务的操作系统。

为了确保每一个调用函数的任务控制自己私有变量,在一个可重入的C函数中,将这样的变量申明为局部变量,C编译器将这样的变量存放在调用栈上或寄存器里。在VRTX操作系统下编写可重入的函数,须要遵循以下原则:

(1)将所有局部变量申明为auto或寄存器(register)类型;

(2)尽量不要使用static或extern变量,不可避免使用全局变量时,需加以保护;

(3)用VRTX库函数sc_gblock分配大的数据结构。

接口协议篇(4)

中图分类号:TP368.1 文献标识码:A 文章编号:1009-3044(2013)19-4429-04

随着控制、计算机、通信、网络等技术的发展,信息交换沟通的领域正在迅速覆盖从现场设备到控制、管理、驱动、开发的各个层次。而其中的现场总线技术是其主要的组成部分,直接关系到工业控制集成系统性能以及系统的稳定可靠。

现场总线是一种连接智能现场设备和自动化系统的全数字化、双向传输、多分支结构的串行通信网络。现场总线的关键标志是能够支持双向、多节点、总线式的全数字通信。

本设计的主要工作是采用基于ARM7内核的高性能处理器LPC2131作为主控芯片,并使用了专用的总线协议芯片AD2483,实现ModBus现场设备与异构系统之间的数据传输与协议转换。该协议转换模块系统框图如图1所示。

1 协议转换模块介绍

1.1 模块工作原理

协议转换模块的功能是完成现场ModBus设备数据的采集和数字化处理,并将转换后的结果通过异构系统的内部总线传送到上层控制系统。同时实现上层控制系统对现场设备的控制与配置。

该模块采用RS-485电平转换芯片,该芯片自带电气信号隔离,信号调理技术。该模块提供通信检测显示功能,可提供独立隔离的24VDC供电电源输出,用于现场ModBus设备的工作电源。图2为模块系统总体结构框图。

1.2 ModBus通讯规约

在各种不同的系统通信中,ModBus协议是一种在工业领域被广泛应用的、真正开放的、标准的网络通信协议,通过该协议,不同厂家的现场设备可以实现数据通信。

ModBus可编程控制器之间可以相互通讯,也可与不同网络上的其他设备进行通讯。网络信息存取可由控制器内置的端口,网络适配器和网关等设备实现。该协议定义了控制器能识别和使用的信息结构。当在ModBus网络上进行通讯时,协议能使每一台控制器知道它本身的设备地址,并识别对它寻址的数据,决定应起作用的类型,取出包含在信息中的数据和资料等,控制器也可组织回答信息,并使用ModBus协议将此信息传送出去。

在其他网络上使用时,数据包和数据帧中也包含着ModBus协议。网络控制器中有相应的应用程序库和驱动程序,实现嵌入式ModBus协议信息与此网络中用子节点设备间通讯的特殊信息帧的数据转换。

ModBus采用主从方式,若一台控制器作为主机设备发送一个信息,则可从一台从机设备返回一个响应,类似,当一台控制器接受信息时,它就组织一个从机设备的响应信息,并返回至原来发送信息的控制器。

2 硬件电路设计

2.1 电源电路

电源电路模块主要对模块的电源部分进行处理,将工控行业普遍采用的直流24VDC的输入转变为模块CPU需要的5VDC和3.3VDC,同时进行EMC防护。该模块在输入电压出增加了防雷击浪涌电路和支持热插拔电路,使用的主要器件是LT4356-1。电源电路图如图3:

LT4356-1浪涌抑制器可保护负载免遭高电压瞬变的损坏。它能够通过控制一个外部N沟道MOSFET的栅极以在过压过程中调节输出。输出被限制在一个安全的数值上,从而允许负载继续运行。LT4356-1还监视VCC和SNS引脚之间的电压降,以防止遭受过流故障的影响。一个内部放大器用于把电流检测电压限制为50mV。

2.2 主控电路

微控制器电路为ARM控制器的可靠稳定工作提供硬件环境,包括ARM控制器的时钟电路、复位电路等部分。复位电路采用上电复位方式,并且备有按键复位操作,方便用户调试使用。

2.3 电平转换电路

电路完成现场485信号与控制器LPC2131之间的电平转换功能。图4是RS-485转换电路。

RS-485转换电路采用485转换芯片ADM2483。

ADM2483是ADI(Analog device,inc)公司推出的基于其专利iCoupler磁隔离技术的隔离型RS-485收发芯片。内部集成了三通道的数字隔离器、带三态输出的差分驱动器和一个带三态输入的RS485差分接收器。节点数可允许多达256个,最高传输速率可达500Kbps。 iCoupler磁隔离技术是ADI公司的一项专利隔离技术,是一种基于芯片尺寸的变压器隔离技术,它采用了高速CMOS工艺和芯片级的变压器技术。所以,在性能、功耗、体积等各方面都有传统光电隔离器件(光耦)无法比拟的优势。ADM2483采用具有短路电流限制的限摆率驱动器,较低摆率降低了不恰当的终端匹配和接头产生的误码。集成的热关断电路可将驱动器输出置为高阻状态,防止过度的功率损耗。

3 软件程序设计

系统上电后,协议转换模块需要系统初始化,初始化操作主要完成系统各个软件模块的准备工作已经相应接口的驱动程序。之后要进行写入指令和写入数据的步骤。

整个软件结构由几个主要的软件的模块组成,分别是main()函数,get_order()函数和exchange()函数。

3.1 main()函数设计说明

该函数为整个软件架构的主函数,在进入主函数之前,由编译器自动加载了硬件的堆栈和中断向量配置文件。当配置完成后,程序自动跳入主函数开始执行。主函数的代码为顺序执行,模块除数据通信功能的其他所有功能都在主函数中实现,图5是主函数的程序流程图。

3.2 get_order()函数设计说明

get_order()函数作用是将异构系统总线收到的数据转换到ModBus发送缓冲区中准备发送给现场的ModBus设备。在转换时要严格按照标准ModBus-RTU格式进行。图6是该函数的程序流程图。

3.3 exchange()函数设计说明

exchange()函数作用与get_order()函数刚好相反,exchange()函数将现场ModBus设备采集到的数据按照异构系统总线协议方式存入到主控制器中。

4 结论

本文通过基于ARM内核的高速微处理器LPC2131的ModBus协议转换模块进行介绍,在此基础上完成了硬件设计与软件搭建,通过编写控制器软件程序实现了现场ModBus设备与异构系统的数据通信和电平转换。实践结果表明,该设计硬件结构简单,运行稳定可靠,软件开发周期短,满足现场设备数据通信以及协议接口驱动的需要。

参考文献:

[1] 蒲靖荣,杜开勋,朱占青,等.基于网络和ModBus协议的远程监控系统[J].自动化仪表,2009,30(7):52-57.

[2] 马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2007:290-291.

[3] 李海涛,仪维,吴筱坚,等.PIC单片机应用开发典型模块[M].北京:人民邮电出版社,2007.

接口协议篇(5)

中图分类号:TN929;TM73 文献标识码:A 文章编号:1674-098X(2016)09(a)-0009-04

当前阶段,社会对高速信息网络需求不断提升,为应对这一形势,互联网不断开发新协议,通过局部修补实现结构的进一步完善。国际互联网标准化工作组IETF对这一完善过程起着主导作用,通过对新标准的制定与修改提升互联网性能,完善其功能。在这种发展背景下,网络架构日益变得复杂,为管理与维护工作带来较大难度[1]。这一问题的决定性因素在于互联网的最初设计,特别是对TCP/IP的设计。而对于TCP/IP的修改又存在较大困难,因此,社会各界均在寻求一种新的解决途径来化解当前的困境。于是,新型体系架构应运而生。

传统的网络构架中由于逻辑控制和数据转发紧密地耦合于网络设备中,新的网络控制管理策略很难到现网上部署,网络的扩展性和灵活性被束缚,因而从控制和转发分离成为许多研究者的共识。因此,在尝试改变互联网的体系结构的同时,软件定义的网络(software defined networking,SDN)被作为一种新型的网络体系结构提出。OpenFlow技术作为SDN转发抽象的实现之一,已经受到学术界和工业界的普遍关注和广泛研究。OpenFlow实现了将设备控制平面与数据平面相分离,让用户对设备的控制和修改变得更容易[2]。

1 SDN的发展现状

为了有效解决TCP/IP构架带来的问题,国际学术界通过未来网络研究的实施致力于未来网络创新实验平台的开发与建设,同时先后启动了GENI、FINE、4WARD、FIA等项目。IETF开发出了ForCES网络构架,用于标准化控制组件与网络组件的通信,网络设备主要由两部分组成,包括控制件(CE)与转发件(FE),其中CEM件主要执行控制与信令的功能,使用ForCES协议指导转发组件处理报文的方式。ForCES自2003年起开始实行标准化,同时出版了许多应用文档,定义网络实体和接口的框架模型。但是,这一标准化形式只是致力于创新与建模,并未获得设备商的普遍运用。后期,又开发了网络构架Ethane,这一构架主要针对于企业网的应用管理,允许相关网络管理者对精细粒度策略进行定义,并于网络中予以执行。将基于流转发的以太网交换机直接和管理网络接入的路由控制器相连,这种方式看上去较为激进,但其可向后兼容现有主机与交换机。控制器对主机的网络注册、认证及数据流的路由策略有控制作用,而下层交换机主要承担对数据的转发工作。

基于上述的这些研究,斯坦福大学的Nick教授等人提出了OpenFlow,可让研究者在现今的网络运行试验协议。它可以作为像GENI项目这样大规模试验床的重要部件,斯坦福的两栋大楼很快就部署了OpenFlow网络,随后,OpenFlow受到了学术界的广泛关注。OpenFlow思想也逐渐演变成了今天的SDN网络构架,具备控制、转发分离、集中化控制、资源虚拟化等优势。不久后,OFELIA、GENI项目和FIRE项目均提出采用OpenFlow技术搭建未来网络的创新实验平台。在Nick教授等人的推动下,2011年开放网络基金会(ONF)成立,专门负责相关规范和标准的制定以及推广,包括OpenFlow协议版本、配置协议OF-Config和SDN白皮书,有力地促进了SDN/OpenFlow的标准化进程,使它成为未来网络体系构架研宄和创新实验平台构建领域的热点技术。ITU-T与IETF等国际标准化组织也纷纷开始关注SDN的应用场景和组网方式。但SDN不仅停留在学术研究层面,应该说工业界的热情不亚于学术界,谷歌、微软等互联网公司均在SDN领域投入了大量的科研力量。企业界也出现Nicira和Big Switch等为代表的SDN公司,开发出了OpenVSwitch和Floodlight等网络软件。

2 OpenFlow协议及特点

2.1 OpenFlow规范

OpenFlow交换机规范定义了交换机的基本功能以及通过远端控制器对OpenFlow交换机进行管理的协议。远端控制器在安全通道上通过OpenFlow协议对交换机中的安全控制单元直接进行管理(图1)。

在OpenFlow1.0.0的交换机中,数据报文处理和寻址的过程如下。

步骤1,以太网数据进入交换机后被输送至数据解析系统。步骤2,提取报头字段信息,将其置于分组报头,报头信息主要用于匹配操作。步骤3,对分组报头进行查找,成功匹配后送至匹配系统。步骤4,对比数据包报头与OpenFlow流表中流条目规则。OpenFlow流表中流条目存在优先级由高到低的顺序,所以,在查找数据包报头时,应自流表中的首个表项开始。成功匹配后,在匹配的流表条目上继续进行;如果匹配不成功,则将数据报文送至控制器进行处理。具体见图2。

在OpenFlow交换机中流表示进行分组转发查询的最关键部件,在流表中包含了一系列的入口项(用于匹配收到的分组),激活计数器并自动匹配到与该分组所对应的操作。如果在流表中找到对应的入口项,将对该报文执行预先设定的动作,而控制器的作用则是用于确定某一报文没有找到对应入口时的动作,同时还负责流表中每一条记录的增删。

2.2 OpenFlow协议特点

作为一项灸手可热的新技术,OpenFlow之所以能够受到广泛的关注和支持,是和OpenFlow协议的技术特点息息相关的。OpenFlow协议主要有以下特点。

(1)OpenFlow技术将原有的IP承载架构完全打乱。OpenFlow的流表(Flow Table)是由多个流表项共同构成的,任何一个流表项均为一项转发规则。数据包进至交换机后,对流表进行查询以此获取转发端口。OpenFlow的流表中任何一个流表条均包含头部、计数器及行为3部分内容。其中头部属于十元组,不仅包含传统的七元组,另外增加了交换端口、以太网类型以及VlanID,以此对流表进行定义;计数器用于做流二量的数据统计工作;而行为主要指转发、丢弃,规定了与流表项匹配的数据包所应进行的操作行为。对于OpenFlow技术而言,将控制与转发进行分离是其关键特性,这就决定了其远端控制与查询功能的进一步实现。要想对流表进行相应改变,只要通过远端指令操作即可实现;若想对网络状态进行实时掌握,通过远程操控即可查询与获取。这一功能的实现,使网络灵活性获得有效提升,真正实现了网络的智能化。从某种角度来讲,OpenFlow技术实现了传统硬件定义互联网向软件定义互联网的巧妙转变,更加动态化与灵活化,同时使Software Designed Network的核心思想得以凸显。总体而言,可控软件定义互联网的实现,在提升网络灵活性的同时,凭借相应的控制算法,使网络安全性与鲁棒性均得以有效提升,大大改善了其运行效率。

(2)从网络创新角度来看,OpenFlow技术的运用具有非常大的价值。近年来,互联网技术飞速发展,呈现出日新月异的变化的同时,也呈现出许多问题。为应对以上问题,网络体系结构日益复杂化,在解决相关问题的同时,也带来了新的问题,例如OSPF、BGP、NAT、防火墙、流量均衡等技术的应用,使网络设备日益臃肿。相较于网络领域发展瓶颈,可以说计算机领域的变化日新月异。而作为计算机网络体系结构的相关研究者,通过对计算机问题、所遇瓶颈以及成功解决经验进行分析,认为应将功能单元化作为核心思想,将控制与转发功能进行合理分离。基于设计模式与软件工程的分析,交换机与路由器相对简单,满足其基本功能需求的同时,为上层控制层提供API库,并由控制层对其进行有效控制。

如此一来,研究人员就能通过对下层API进行自由调用实现协议的编写,最终促进网络创新的实现。OpenFlow对网络创新思想起到重要的推动作用。以往通过自制数据包的转发过程,经OpenFlow交Q机实现了控制器的数据包转发操作,控制器下发流表指令后,自己按照指令对数据包进行相应的处理,进而对转发与控制操作进行有效分离。

OpenFlow的技术特点同时也对交换设备提出了新的要求,OpenFlow提出新的交换机解决方案必须具备以下4个特点。

(1)设备必须具有商用设备的高性能和低价格的特点。

(2)设备必须能支持各种不同的研究范围。

(3)设备必须能隔绝实验流量和运行流量。

(4)设备必须满足设备制造商封闭平台的要求。

3 SDN的体系结构及特点

软件定义网络(SDN)作为一种新型的网络构架,其本质的特征就是网络控制和转发分离,网络具备可编程特性。OpenFlow标准定义了控制层和转发设备间的通信协议,是SDN网络构架的核心[3]。

3.1 SDN体系结构

SDN可以用来提供标准的接口,可以通过软件的方式控制网络中的资源连接和网络业务流,必要时对业务流进行特定的检查和修正,所定义的原始函数被抽象成标准的网络服务。OpenFlow是其中的一种接口协议。

基本的SDN网络部件,如图3所示NE通过D-CPI接口上报设备的能力,SDN业务应用通过A-CPI接口告知控制器其具体的业务需求,控制器根据业务应用的需求实施对于底层设备的控制,通过优化控制策略在有限的网络资源下提供具有竞争力的业务。

SDN几个平面之间的关系:在数据平面,OSS至少应当支持NE的初始建立过程、分配SDN控制功能并配置SDN控制器;在控制平面,OSS需要配置SDN业务的控制策略并监测系统的性能;在应用平面,OSS配置业务合同与业务等级协定(SLA)。对于所有的平面,OSS需要提供安全性的管理和认证方式。

(1)数据平面。

包含了多个网络部件,每个NE包含一系列的网络转发单元和业务处理资源,SDN的资源是根据底层的物理实体和所支持的能力而定的。

(2)控制平面。

SDN控制器组成,每个控制器负责NE分组的专用控制。SDN控制器的最基本功能是执行它所支持的应用程序请求,而每个应用程序之间通常是相互独立的。SDN控制器需要与对等的控制器、下属控制器以及非SDN环境之间进行交互以实现复杂的控制功能。

SDN控制器的一个常见但不必要的功能作为网络的反馈控制元件,可以应对网络的突发事件,如将网络从故障中恢复及资源的再优化分配,等等。

(3)应用平面。

应用平面由一个或多个应用程序,每个都有专用的控制逻辑,负责SDN控制器所管辖的多个资源组。应用程序本身也可以调用其它应用程序,其自身也可以作为一个SDN控制器。

(4)管理平面。

每个应用、SDN控制器、NE均具有与管理者相连的功能接口,可以负责从底层资源池中为高层业务分配资源,并建立底层平面和高层平面的通信方式。

OF-config协议的定位主要是提供管理接口所需要的功能。

OF-switch协议的定位主要是执行D-CPI和A-CPI之间的功能。

3.2 SDN的特点

(1)控制和数据平面分离。

控制平面和数据平面采用分离的设计方法,通过D-CPI接口进行控制。SDN控制器可以控制NE的重要功能,并且能够获知NE的状态信息。

(2)逻辑化的集中式控制。

与本地化控制方式相比,集中控制的方法具有掌控更广范围的资源的能力,并且可以为网络做出更好的决策。为了提升网络的可扩展性,通常在集中式控制方法中不建议获取详细的网络资源,可以通过资源的抽象集合进行表示。逻辑化的集中式控制方式相比传统的集中型网管具有更高的灵活性。

(3)对外部应用的拓扑和资源抽象方法。

应用可以存在于任何级别和粒度的抽象,同时控制器和业务应用均可将对方作为对等级别、客户端或者服务器端。

网络拓扑和资源的抽象通过A-CPI接口进行管理,并可通过程序化的控制方式进行管理。在了解网络中的资源和状态信息后,应用可以通过SDN控制器定制需求并根据网络的实时状态调整网络服务。

SDN垂直体系架构支持信息模型的外送,并可以在客户端执行CRUD操作(Create-Read-Update-Delete)。

分层模型的主要目的在于如下几方面。

可扩展性:更高层次的控制器可以获取更高的抽象度和更广的管辖范围。

安全性:每一层数据分属于不同的信任域,在分层参考点处执行标准的域间安全性管理。

4 基于OpenFlow的架构层次设计

基于openFlow的虚拟网络架构主要分为4个层次,分别为应用层、虚拟平台、控制层和物理层,如图4所示。

(1)应用层对网络架构的具体运行状况进行访问与监控,对数据流处理逻辑与规则进行有效控制。通常来讲,应用层应用程序主要包括两种形式,即GUI与CLI。其中GUI为图形界面,用户通过此界面对网络流量与数据转发等情况全面掌握,同时以自身需求为依据,在网络中对实体与数据流处理规则进行相关处理。CLI为命令行程序,此程序能够为用户提供更多操作功能,仅需执行单命令即可完成,工作效率非常高。

(2)VTN虚拟平台作为OpenFlow虚拟网络架构的关键部分,对虚拟网络架构中各项主要业务逻辑均有所涉及。从某种角度来讲,VTN虚拟平台是建立在网络硬件层与用户应用层之间的重要桥梁。在VTN虚拟平台中,最上层为服务器,在外部应用程序的运行中,服务器根据其运行需求向其提供内部数据服务接口;逻辑层通过逻辑网络的建立,对网络请求的处理逻辑进行定义操作,并对各项网络任务用到的控制器与相关设备进行指定,保证虚拟网络流控制、网络监控及流过滤器等各项功能的实现;物理层对物理实体有配置和维护的功能,通过对通信状态的查看与修改,实现其管理功能,同时可对控制器、网络物理设备配置信息及域或边界配置信息进行更改;驱动器则为VTN虚拟平台实现物理设备单独操作的重要接口。

(3)控制层的组成包含了多种网络设备控制器,例如OpenFlow交换机控制器、Overlay交换机控制器与Legacy交换机控制器等,主要负责对物理设备数据转发的控制。

(4)物理层作为整个OpenFlow虚拟网络架构的底层结构,网络通信中涉及的一切硬件均涵盖于此,主要为OpenFlow设备与非OpenFlow设备两种类型,例如OpenFlow交换机、Overlay交换机和Legacy交换机等。

5 结语

经30多年的实践,基于TCP/IP构架的互联网取得一定成果,并被世界多领域广泛应用,逐渐成为产业规模最大的重要基础设施之一。近年来,信息社会不断进步,社会对互联网技术的需求不断提升,这为网络发展带来一定压力。在此发展背景之下,ITU-T提出未来网络的需求指标与发展目标,同时国际学术界通过未来网络研究项目的大量开发,致力于未来网络创新实验平台的建设,并先后启动了GENL FIND、4WARD、FIA等项目。

该文从理论层面介绍了SDN网络的发展现状、OpenFlow协议的特点,并提出了SDN的体系架构。应用这些概念,设计了基于OpenFlow的架构层次。SDN网络依托其可编程性、集中控制、资源虚拟化等优势,必将在工业中广泛应用。

参考文献

接口协议篇(6)

随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBM PC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84~101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84~101键,但是采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和PS/2及AT键盘兼容,只是功能不同而已。

2 PS/2接口硬件

2.1 物理连接器

一般,具有五脚连接器的键盘称之为AT键盘,而具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。其实这两种连接器都只有四个脚有意义。它们分别是Clock(时钟脚)、Data数据脚、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data数据脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如图1所示。

2.2 电气特性

PS/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS/2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数PS/2设备工作在10~20kHz。推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。每一数据帧包含11~12个位,具体含义如表1所列。

表1 数据帧格式说明

1个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。

2.3 PS/2设备和PC机的通讯

PS/2设备的Clock(时钟脚)和Data数据脚都是集电极开路的,平时都是高电平。当PS/2设备等待发送数据时,它首先检查Clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是PC机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般PS/2键盘有16个字节的缓冲区,而PS/2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果Clock(时钟脚)为高电平,PS/2设备便开始将数据发送到PC机。一般都是由PS/2设备产生时钟信号。发送时一般都是按照数据帧格式顺序发送。其中数据位在Clock(时钟脚)为高电平时准备好,在Clock(时钟脚)的下降沿被PC机读入。PS/2设备到PC机的通讯时序如图2所示。

当时钟频率为15kHz时,从Clock(时钟脚)的上升沿到数据位转变时间至少要5μs。数据变化到Clock(时钟脚)下降沿的时间至少也有5 μs,但不能大于25 μs,这是由PS/2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。

上述讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(Make)和断码(Break)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。

3 PS/2接口的嵌入式软件编程方法

PS/2设备主要用于产生同步时钟信号和读写数据。

3.1 PS/2向PC机发送一个字节

从PS/2向PC机发送一个字节可按照下面的步骤进行:

(1)检测时钟线电平,如果时钟线为低,则延时50μs;

(2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);

(3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);

(4)延时20μs(如果此时正在发送起始位,则应延时40μs);

(5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;

(6)输出8个数据位到数据线上;

(7)输出校验位;

(8)输出停止位(1);

(9)延时30μs(如果在发送停止位时释放时钟信号则应延时50μs);

通过以下步骤可发送单个位:

(1)准备数据位(将需要发送的数据位放到数据线上);

(2)延时20μs;

(3)把时钟线拉低;

(4)延时40μs;

(5)释放时钟线;

(6)延时20μs。

3.2 PS/2设备从PC机接收一个字节

由于PS/2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而PS/2设备则要配合PC机才能读到准确的数据。具体连接步骤如下:

(1)等待时钟线为高电平。

(2)判断数据线是否为低,为高则错误退出,否则继续执行。

(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。

(4)读地址线上的校验位内容,1个bit。

(5)读停止位。

(6)如果数据线上为0(即还是低电平),PS/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS/2设备没有读到停止位,则表明此次传输出错)。

(7 输出应答位。

(8) 检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。

(9)延时45 μs,以便PC机进行下一次传输。

读数据线的步骤如下:

(1)延时20μs;

(2)把时钟线拉低

(3)延时40μs

(4)释放时钟线

(5)延时20μs

(6)读数据线。

下面的步骤可用于发出应答位;

(1)延时

15μs;(2)把数据线拉低;

(3)延时5μs;

(4)把时钟线拉低;

(5)延时40μs;

(6)释放时钟线;

(7)延时5μs;

(8)释放数据线。

4 用于工控机的双键盘设计

工控机通常要接标准键盘,但是为了方便操作,常常需要外接一个专用键盘。此实例介绍了在工控PC机到PS/2总线上再接入一个自制专用键盘的应用方法。

该设计应能保证两个键盘单独工作,而且相互不能影响。因此,不能直接把专用键盘和标准键盘一起接到工控PC的PS/2口。鉴于这种情况,本设计使用模拟开关CD4052并通过时分复用工控PC的PS/2口,来使在同一个时刻只有一个键盘有效,从而解决上述问题。其硬件原理图如图3所示。其中P2口和P1口用于键盘扫描电路(图中未画出),P0.0为数据端,P0.1为时钟端,P0.2为模拟开关选通端。由于专用键盘不需要接收工控PC机的命令,所以软件中并不需要写这部分相应的代码。

通过软件可在专用键盘复位后把P0.2清0,以使模拟开关CD4052打开相应的通道。这时工控PC的标准键盘将开始工作。标准键盘可以完成工控PC刚启动时对外设检测的应答。复位后的专用键盘不停地扫描有没有按键,如果有键按下则识别按键,并且按照预先的设计进行编码,同时调用发送程序并通过PS/2口发送到工控PC。此时模拟开关关闭相应通道(将P0.2置1),专用键盘接入工控PC PS/2口的时钟线和数据线而工作,但标准键盘被模拟开关从PS/2的时钟线和数据线中断而不工作,这样,双键盘便可时分复用同一个工控PC机的PS/2口。相应的发送子程序如下:

#define DATA P00 用P0.0做数据线

#define CLK P01 用P0.1做时钟线

#define INHIBIT P02 用P0.2做CD4052的INH端

#define PORTR P1 用P1口做读入口

#define PORTW P2 用P2口做写出口 可以实现64个自定义键

void send(uchar x)/***function for send a char da-ta***/

{

uchar i,temp,char_temp;

bit flag_check=1;

INHIBIT=1;//disable standard keyboard

delay_ ms(3);

temp=x;

for(i=0;i<8;i++)//find the number of 1 in this uchar x is odd or not

{

char_temp=temp&0x01;

if(char_temp==0x01)

{

flag_check=!flag_check;

}

temp=temp>>1;

}

CLK=1;//send 1 to P1 then read P1

while (!CLK) //if CLK is low wait

{

;

}

CLK=1;DATA=1;//send 1 to P1 then read P1

if(CLK==1)

{

delay_us(30);//

}

if(CLK==1&&DATA==1)//send data

{

DATA=0;//start bit 0

delay_us(10);

CLK=0;

delay_us(5);//

temp=x;

for(i=0;i<8;i++)//send 8 bits LSBfirst

{

CLK=1;

delay_us(5);

char_temp=temp&0x01;

if(char_temp==0x01)

{

DATA=1;

}

else

{

DATA=0;

}

//DATA=(bit)(temp&0x01);

//LSB

delay_us(10);

CLK=0;

delay_us(5);

temp=temp>>1;

}

CLK=1;//send check bit

delay_us(5);

DATA=flag_check;

delay_us(10);

CLK=0;

delay_us(5)

CLK=1;//send stop bit

delay_us(5);

DATA=1;

delay us10

CLK=0

delay_us(5);

CLK=1;

delay_us(30); 

CLK=1;DATA=1;//send 1 to P1 then read P1

if(CLK==1&&DATA==0)

{

return; //pc is sending data to mcu, go to

receiving function

}

INHIBIT=0; //enable standard keyboard

接口协议篇(7)

随着信息技术革命的深入和计算机技术的飞速发展,DSP技术也正以极快的速度被应用到科技和国民经济的各信领域。在很多工程开发设计中,由于要求实现单片DSP与单片DSP、多片DSP芯片以及及其它处理芯片之间的通信,因此,怎样更高效、更便捷的实现这些通信,已成为广大DSP应用者首先要解决的一个问题。

本文根据笔者在工程应用和调试方面用TI的DSP TMS320C5402与NEC的μPD780308单片机进行通信的经验,介绍并讨论了将TMS320C5402 DSP的多通道缓冲串行口McBSP(Multi-channel Buffered Serial Port)配置为SPI模式(即时钟停止模式),从而实现DSP与其它单片处理器之间的通信设计方法同时给出了实现方法的部分程序代码。

2 多通道缓冲串行口McBSP

多通道缓冲串行口McBSP的功能是提供器件内外数据的串行交换。同以前的串口相比,McBSP串口具有相当大的灵活性。表1给出了有关TMS320C5402的McBSP管脚说明。其中串口接收、发送时钟和同步帧信号既可由外部设备提供,又可由内部时钟发生器提供,从而大大的提高了通信的灵活性。

表1 TMS320C5402的有关McBSP管脚说明

管脚说明说 明DR数据输入端DX数据输出端CLKR接收数据位时钟CLKX发送数据位时钟FSR接收数据帧时钟FSX发送数据帧时钟CLKS外部提供的采样率发生器时钟源3 SPI协议中的McBSP时钟停止模式

SPI协议是以主从方式工作的,这种模式通常有一个主设备和一个或多个从设备,其接口包括以下四种信号:

(1)串行数据输入(也称为主进从出,或MISO);

(2)串行数据输出(也称为主出从进,或MOSI);

(3)串行移位时钟(也称为SCK);

(4)从使能信号(也称为SS)。

图1为设备的SPI接口示意图。该接口在工作时,主设备通过提供移位时钟和从使能信号来控制信息的流动。从使能信号是一个可选的高低电平,它可以激活从设备(在没有时钟提供的情况下)的串行输入和输出。在没有专门的从使能信号的情况下,主从设备之间的通信则由移位时钟的有无来决定,在这种连接方式下,从设备必须自始至终保持激活状态,而且从设备只能是一个,不能为多个。

TMS320C5402提供的时钟停止模式可用于SPI协议通信,当McBSP被配置为时钟停止模式时,发送器和接收器在内部是同步的,即可将发送数据帧时钟(FSX)用作从使能(即SS),而将发送数据位时钟(CLKX)用作SPI协议中SCK。由于收数据位时钟(CLKR)和接收数据帧时钟(FSR)在内部与FSX和CLKX是相连的,因此,该管脚不能用于SPI模式。

当McBSP被配置为一个主设备时,传送输出信号(BDX)被用作SPI协议的MOSI信号,而接收输入信号(BDR)则被用作MISO信号。图2所示为McBSP用作主设备时的SPI接口示意图。

同样地,当McBSP被配置为一个从设备时,BDX被用作MISO信号,BDR则被用作MOSI信号。图3为McBSP用作从设备的SPI接口示意图。

当TMS320C5402的McBSP被用于时钟停止模式时,寄存器SPCR1的CLKSTP位域和引脚配置寄存器的CLKXP位的配置如表2所列。

表2 时钟停止模式配置

CLKSTPCLKXP说 明

0XX不可用时钟停止模式。时钟被激活用于非SPI模式100时钟开始于上升沿(无延迟)110时钟开始于上升沿(有延迟)101时钟开始于下降沿(无延迟)111时钟开始于下降沿(有延迟)4 其它有关寄存器的配置

为了更好地掌握和了解McBSP作为SPI设备时的有关寄存器配置,现以McBSP作为SPI从设备来介绍有关McBSP的其它有关寄存器的配置,若McBSP做为SPI主设备,则相关配置正好相反。当McBSP作为SPI从设备时,主设备外部产生主时钟。CLKX引脚和FSX引脚必须被设置为输入。由于CLKX引脚和CLKR信号在内部相连接,因而传送和接收回路均由外部主时钟计时(CLKX)。同时,由于FSX引脚和FSR信号也已在内部连接,因此,CLKR引脚和FSR引脚不再需要外部信号的连接。

尽管CLKX信号由主设备外部产生且与McBSP同步,但是,McBSP的采样率发生器仍然必须正确启动SPI从设备,同时,采样率发生器还应被设置为最大速率(CPU时钟速率的一半)。另外,内部采样率时钟常被用来同步McBSP逻辑和外部主时钟以及从使能信号。每次传送时,McBSP一般在从使能信号的上升沿进行FSX输入。也就是说,在每次传送的开始,主设备必须维护使能信号,而在每次传送完成后,则必须消除从使能信号。在两次传送之间,从使能信号不能一直保持为高电平。对正确的SPI从设备而言,McBSP的数据延迟参数必须设置为0,在这种运行模式中,设置值为1或2没有定义。配置McBSP为从设备所需的寄存器位值如表3所列。

表3 SPI操作模式下的寄存器位值表

位 域值功能描述寄存器CLKXM0配置BCLKX引脚为输入PCRCLKSM1由CPU时钟产生的采样率时钟SRGR2CLKGDV1为采样率时钟选择2的划分因素SRGR1FSXM0配置BFSX引脚为输入PCRFSGM0对每个包传送,BFSX信号被激活SRGR2FSXP1配置BFSX引脚为活动低电平PCRXDATDLY0为SPI从设备运行,必须为0XCR2RDATDLY0为SPI从设备运行,必须为0RCR25 程序设计

下面是有关TMS320C5402器件的McBSP各个控制寄存器的配置,该配置程序笔者在实践中已经过测试,并已成功运用在了某工程设计中。

Void McBSP1_Config(void)

{

offlset=0x0000;

SPCR11=0x1800; ;配置串口时钟停止模式CLKSTP=10

offlset=0x0001;SPCR21=0x0222;

offlset=0x0005;

SRGR11=0x00FA;

offlset=0x0007;

SRGR21=0xa00F;

offlset=0x0002;

RCR11=0x0040; ;接收一帧含一字,一字含16位

offlset=0x0003;

RCR21=0x0044; 接收数据无延迟RDATDLY=00

offlset=0x0004;

XCR11=0x0040; ;发送一帧含一字,一字含16位

offlset=0x0005;

XCR21=0x0044; ;发送数据无延迟XDATDLY=00

offlset=0x000E;

PCR1=0x000; ;发送时钟由外部时钟驱动,CLKX为输入脚CLKX=0,发送时钟极性CLKXP=0,发送帧同步极性FSXP=1

offlset=0x0008;

MCR11=0x0001;

offlset=0x0009;

MCR21=0x0001;

offlset=0x000C;

XCERA1=0x0003;

offlset=0x0001;

SPCR21=0x0262;

offlset=0x0001;

SPCR21=0x0263;

offlset=0x0000;

SPCR11=0x1801; ;接收器有效

offlset=0x0001;

SPCR21=0x02e3; ;发送器有效

Return;

接口协议篇(8)

在我们承担的《基于MCU的积木式数据传输实验平台的研究》项目中,要实现一些以MCU为核心的具有不同功能的模块电路——积木块,这些积木块通过各种不同的接口,可以像搭积木一样组合实现各种不同形式的数据传输。

在积木块内部或积木块之间进行串行通信,就得根据具体的需要,事先确定好串行通信接口协议。为方便项目的开发和应用,我们尽量使用标准化的接口协议,如UART,I2C,SPI等。下面笔者就简单介绍MCU应用开发中常用的串行通信接口协议,并结合各接口协议在本项目中的应用进行比较分析和选择。

1. 常用的串行通信协议

(1)UART总线协议

UART的全称是“Universal Asynchronous Receiver/Transmitter”,意为“通用异步收发传输器”,是一种异步收发传输器,是电脑硬件的一部分,广泛应用于MCU应用开发中。UART可以将数据在串行通信与并行通信间进行传输转换,即在MCU内部以字符为单位进行并行处理,而在线路上逐个比特串行传输。UART可用于全双工点对点通信,一条线接收(RX),另一条线发送(TX)。

通常MCU的UART接口不能直接和DTE(Data Terminal Equipment,数据终端设备)设备对接,需要通过电平转换芯片将UART接口的TTL电平转换成RS232C、RS485或RS422的接口电平,然后才能和具有对应接口的DTE设备对接。

由Motorola公司推出的串行通信接口SCI(Serial Communication Interface)是一种UART接口。

(2)I2C总线协议

I2C的全称是“Inter-Integrated Circuit”(在中国一般读作“I方C”,也可写作“IIC”),意为“内部整合电路”,是由PHILIPS公司开发的两线式串行总线,用于连接MCU及其设备。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。每个连接到I2C总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器。I2C使用多主从架构,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏。AVR序列单片机内部集成TWI(Two-wire Serial Interface)总线,是对I2C总线的继承和发展,可以看做一类。

(3)SPI总线协议

SPI的全称是“Serial Peripheral Interface”,意为“串行外设接口”,是Motorola公司首先在其MC68HCXX系列处理器上定义的一种同步串行外设接口,它可以使MCU与各种设备以串行方式进行通信以交换信息。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器上,还有数字信号处理器和数字信号解码器之间。

在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从器件的系统中,每个从器件需要独立的使能信号。

(4)USART总线协议

USART全称是“Universal Synchronous/Asynchronous Receiver/Transmitter”,意为“通用同步/异步收发传输器”,是一个高度灵活的串行通信设备。USART相对UART来说是在异步通信的基础上还有同步的功能,USART能够提供主动时钟。USART可以配置成UART或SPI模式,AVR USART对AVR UART完全兼容。

(5)1-wire总线协议

1-Wire协议是美国Maxim/Dallas公司开发的一种单线总线协议,简称“单总线”。系统由一台主机和若干台从机通过一条线连接而成,主机由此完成对从机的寻址、控制、数据传输甚至供电(当然一条功能线之外还有地线,如需由主机供电,还要有电源线)。1-Wire协议采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的。它具有节省I/O口线资源,结构简单,成本低廉,便于总线扩展和维护等诸多优点。

1-Wire协议适用于单个主机系统,控制一个或多个从机设备。当只有一个从机位于总线上时,系统可按照单节点系统操作,而当多个从机位于总线上时,则系统按照多节点系统操作。

主机一般由MCU组成,从机由Maxim/Dallas提供的1-Wire器件构成,每个1-Wire器件内嵌唯一的地址码,以实现主机对不同从机的寻址。主机可通过各种方式联入计算机系统。作为一种单主机多从机的总线系统,在一条1-Wire总线上可挂接的从器件数量几乎不受限制。

(6)USB总线协议

USB全称是“Universal Serial Bus”,意为“通用串行总线”,是1994年底由Intel、Compaq、Digital、IBM、Microsoft、NEC、Northern Telecom等七家世界著名的计算机和通信公司共同推出的一种新型接口标准。USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps,USB3.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点。因为USB已经替代并行和串行接口,成为PC的标配,所以MCU与PC之间的连接越来越多地采用USB接口,一般是通过USB转UART电路,将MCU的UART与PC的USB连接起来。

(7)SDIO总线协议

SDIO的全称是“Secure Digital Input and Output”,意为安全数字输入输出,是SD型的扩展接口。SDIO除了可以接SD卡外,还可以接支持SDIO接口的设备,插口的用途不止是插存储卡。支持SDIO接口的PDA、笔记本电脑等都可以连接像GPS接收器、WiFi或蓝牙适配器、调制解调器、局域网适配器、条形码读取器、FM无线电、电视接收器、射频身份认证读取器或者数码相机等采用SD标准接口的设备。

SDIO协议可以支持三种操作模式:SPI、SD一线,SD四线(接口通过寄存器来配置)。SPI速度较低,一线或者四线需要寄存器来选择,高速模式下需要四线支持。

(8)CAN总线协议

CAN的全称为“Controller Area Network”,意为控制器局域网,是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。

CAN总线是德国BOSCH公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。

(9)GPIO总线协议

GPIO的全称为“General-Purpose Input/Output ports”,意为“通用IO口”,即可以根据使用者的需要将某个接口引脚设置成输入、输出或其他特殊功能。GPIO的功能类似8051的P0~P3。GPIO是一种非常重要的I/O接口,具有使用灵活、可配置性好、硬件代价小等优点。

(10)RJ45 以太网接口协议

10/100 Base-T RJ45接口是常用的以太网接口,支持10兆和100兆自适应的网络连接速度,常见的RJ45接口有两类:用于以太网网卡、路由器以太网接口等的DTE类型,还有用于交换机等的DCE类型。RJ45接口通常用于数据传输,最常见的应用为网卡接口。

RJ45是各种不同接头的一种类型(例如:RJ11也是接头的一种类型,不过它是电话上用的);RJ45头根据线的排序不同分为两种:一种是橙白、橙、绿白、蓝、蓝白、绿、棕白、棕,另一种是绿白、绿、橙白、蓝、蓝白、橙、棕白、棕。因此使用RJ45接头的线也有两种即:直通线、交叉线。

MCU控制板集成或外扩网卡模块后,就能直接接入到计算机网络。

2.各接口协议的比较和选择

(1)本项目中串口通信应用分析

第一,在本项目的应用中,串口通信分为以下三种。

①积木块内部即MCU与器件间的串口通信

对于积木块内部的串口通信,可选用的接口协议有UART、I2C、SPI、USART、1-wire、SDIO和GPIO等。

②积木块之间的串口通信

对于积木块之间的串口通信,可选用的接口协议有UART、I2C、SPI、USART、SDIO、CAN、GPIO和RJ45等。

③积木块和上位机PC之间串口通信

对于积木块和上位机PC之间串口通信,可选用的接口协议有UART、USB和GPIO等。

第二,在本项目的应用中,串口通信按照拓扑结构可以分为以下三种。

①点对点通信。可选用的接口协议有UART、I2C、SPI、USART、1-wire、SDIO、CAN、GPIO和RJ45等。

②一主多从通信。可选用的接口协议有I2C、SPI、USART、1-wire、SDIO、CAN和GPIO等。

③多主从通信。可选用的接口协议有I2C、CAN和GPIO等。

(2)本项目中串口通信接口协议的选择

在实现各种功能的积木块时,遵循一条最基本的原则:兼顾积木块实现的通用性和复杂性。即有选择地将某几个功能做到一个积木块上,既减少积木块的复杂性,又增强它的通用性。这样根据需要做出几种通用的积木块,加上相应的器件就能实现相应的某项功能。

具体实现一个积木块还得选择通用性较好的MCU和选定功能的相关器件,这二者是相互影响的。比如器件的接口是SPI的,MCU就应该有相应的SPI接口。反过来,先选定MCU,选择器件时就要注意选择MCU具有的接口类型。

实践证明,通用性好的积木块至少应该具有UART、I2C、SPI和一定数量的GPIO接口。另外,为方便和上位机PC通信,最好有USB接口。

其余接口的实现有三种方式:

①在一些专用的积木块上实现

②在通用性积木块上通过GPIO配置实现

③通过接口转换积木块来实现

总之,在选择串口通信接口协议时,以满足积木块基本功能为目的,适配MCU或器件的接口类型。

参考文献:

[1]赵振德,张建新.单片机原理及实验/实训.西安:西安电子科技大学出版社,2009.

[2]耿仁义.新编微机原理及接口技术.天津:天津大学出版社,2006.

[3]赵宏,王小牛,任学惠.嵌入式系统应用教程.北京:人民邮电出版社,2010.

[4]李群芳,肖看.单片机原理、接口及应用——嵌入式系统技术基础.北京:清华大学出版社,2005.

[5]刘海成.AVR单片机原理及测控工程应用——基于ATmega48/ATmega16.北京:北京航空航天大学出版社,2009.

河北省高等学校科学技术研究项目资助/Supported by science and technology research projects of colleges and universities in Hebei province 编号:Z2010316)

接口协议篇(9)

一、背景技术

在电力、能源与化工等自动化工业控制领域中,现有技术工业控制监控系统与智能电子设备(IED)之间的通讯组网方式是:将一定数量的智能电子设备串接为一组作为一个通讯总线,然后将该通讯总线连接到通讯管理机的通讯采集端口进行该通讯总线上各智能电子设备的数据采集,这种单通讯端口独立总线运行的方式,常常由于通讯总线因故断开后,导致该通讯端口上连接的所有智能电子设备通讯的中断。如图1所示,图中各字母含义如下:

LANx,表示通讯管理机的第几个以太网口,如LAN1表示第一个以太网口;

Px,表示通讯管理机的通讯串口编号,如P1表示第一个串口;

IEDxy,表示第几个总线上的第几个智能电子设备,如IED11表示总线1上的第1个智能电子设备;IED2n则表示总线2上的第n个智能电子设备;

Prx,表示端口协议,如Pr1表示端口协议1。

智能电子设备都是通过独立串行总线连接通过通讯端口连接到通讯管理机上的,各总线之间没有通讯,由于采用的是单协议单端口的通讯方式,当总线因故中断后,尤其当重要监控智能电子设备的通讯中断后,对整个工业控制系统的可靠稳定运行造成极大影响。

另外,如果通讯总线上各个智能电子设备有两个不同通讯协议端口时,由于通讯协议不统一,导致通讯组网时难以将对不同通讯协议的智能电子设备采集到的数据进行整合,而只能采取接入其中一个协议端口的方案,这样,就使得不同通讯协议端口的智能电子设备不能接入到一个通讯总线上来,导致兼容性太差,且浪费了智能电子设备的资源。如图12所示,各种具有双协议的智能电子设备只能通过相同协议的端口连接到通讯总线上来,且各总线之间没有通讯,大大浪费了设备资源

二、原理研究

本研究旨在避免上述现有技术的不足之处,对现有技术工业控制系统中智能电子设备通讯网络组态进行改进,提出一种通讯稳定可靠、兼容性强的智能电子设备可靠通讯的方法。

为实现本研究目的,提出一种智能电子设备可靠通讯的方法,智能电子设备监控网络包括后台监控系统、交换机、通讯管理机和智能电子设备子网络;所述智能电子设备子网络包括至少一个智能电子设备IED;所述智能电子设备IED包括单协议端口设备和双协议端口设备;尤其是,所述通讯管理机包括至少两个通讯端口;所述后台监控系统和所述智能电子设备子网络之间可靠通讯的方法包括如下步骤:

1、采集准备监控的所述智能电子设备子网络中智能电子设备IED的基本信息;

2、将确定被监控的智能电子设备组成智能电子设备子网络,并将该智能电子设备子网络和所述通讯管理机的通讯端口连接;

3、根据步骤1中所述智能电子设备子网络中智能电子设备IED的基本信息来确定监控网络的设备组态;

4、建立包括监控网络设备组态信息的通讯网络工程文件;

5、将步骤4所述的通讯网络工程文件配置完成后即可生成通讯管理机主程序,根据监控网络的设备组态确定监控网络的数据冗余方式。所述的通讯端口为通讯管理机上的串口。

步骤1所述的采集准备监控的所述智能电子设备子网络中智能电子设备IED的基本信息,包括采集所述智能电子设备子网络中智能电子设备IED的标识符ID及其可运行的通讯协议、智能电子设备的数量、智能电子设备的重要程度。

步骤2所述的智能电子设备子网络连接方式为线型、星型、环网或链式。所述的通讯管理机为两个以上时,各通讯管理机之间用UDP方式连接进行数据交换、数据同步或切换控制。

步骤3所述确定监控网络的设备组态包括如下步骤:如果所述智能电子设备子网络中智能电子设备IED均为单协议端口设备,就采用通讯端口冗余的方式;如果所述智能电子设备子网络中智能电子设备IED均为双协议端口设备,就采用协议冗余或端口协议混合冗余方式;根据所述智能电子设备子网络中智能电子设备IED数量及其监控的重要程度确定通讯管理机冗余方式。

所述通讯端口冗余是将通讯管理机上的通讯端口根据主/从通讯端口的先后顺序进行通讯端口的通讯冗余定义;所述协议冗余是将所述具有双协议端口的智能电子设备IED根据协议口的主/从协议口先后顺序进行通讯冗余定义;所述通讯管理机冗余是为监控网络配置两台以上的通讯管理机来连接所述智能电子设备子网络。

步骤4所述的监控网络设备组态信息包括智能电子设备子网络信息、通讯管理机信息、通讯管理机通讯端口信息、通讯端口运行的通讯协议和设置通讯管理机通讯端口的冗余关系。

步骤5所述的监控网络的数据冗余方式包括:单通讯管理机双通讯端口冗余方式、单管理机双协议冗余方式、双通讯管理机双通讯端口冗余、双通讯管理机双协议冗余和双通讯管理机双协议双通讯端口冗余方式。

与现有技术相比较,本研究具有以下有益效果:

1、智能电子设备和后台监控系统通讯稳定可靠;本研究改变了现有技术智能电子设备通讯组网方式,将通讯管理机通讯端口的采集的数据进行冗余处理,采用了单管理机双端口冗余、单管理机双协议冗余、双管理机双端口冗余、双管理机双协议冗余或双管理机双端口双协议的冗余模式,这种有效地组网策略和设备组态,将智能电子设备按照通讯端口冗余的方式扩展了智能电子设备和通讯管理机的通讯链路,形成了设备通讯的热备份,保证了智能电子设备和后台监控系统通讯的可靠稳定。

2、兼容性强;现有技术智能电子设备网络只能接入相同协议的智能电子设备,本研究为智能电子设备定义了两套参数,组成端口协议冗余模式,可以将具有两个协议端口的智能电子设备同时接入同一通讯网络,使得任何种类的智能电子设备都能接入网络,兼容性更强。

三、方案实施

具体实施方式 以下结合附图所示之优选实施例作进一步详述。根据工程实际情况,首先需要对准备建立通讯监控的智能电子设备进行基本信息整理(包括采集的点及运行的通讯协议),确立智能电子设备的组网方案。基本原则是:如果智能电子设备只有一个通讯协议口,那么就采取端口主/从冗余的方式;如果智能电子设备支持两个协议端口,那么就需要考虑端口协议冗余或双端口双协议冗余方式。另外,根据智能电子设备数量的多少及监控的重要程度,确定需要的管理机数量及管理机冗余的方式。在工程设计中,针对不同的使用情况,将通讯管理机进行灵活的组网,可以配置为单管理机双端口冗余、单管理机双协议冗余、双管理机双端口冗余、双管理机双协议冗余、双管理机双协议双端口冗余的数据冗余组网方式。

按照上述工程中的实际情况,本研究可有多个实施例,下面根据数据冗余组网方式来对实施例进行描述。

实施例一:单管理机双端口冗余组网方式。

图2所示是单管理机双端口冗余组网方式,该组网方式将智能电子设备IED串接在一起,引出的两根主干线分别接到通讯管理机的两个通讯串口上。通讯管理机的两通讯串口是主/从工作方式,两通讯串口不同时工作,分为工作口和备用口,工作口具备收发权限,备用口无发送权限,处于端口数据流检测状态。当工作端口无数据流时,具备发送权限的工作端口停止发送数据,将权限交给备用口,由备用口启动发送权限。P1口的主干线因故断开后,作为备用口德P2口不能检测到端口的数据流,此时,P1口主动停止本端口的报文发送,P2口停止数据流检测接受发送权限,改由P2口去完成智能电子设备的通讯。这样,当其中一个通讯主干线因故断开后,就可以很快地由备用端口进行通讯管理,保证了智能电子设备和后台监控系统通讯的实时可靠。

实施例二:单管理机双协议端口冗余组网方式。

图3所示是单管理机双协议端口冗余组网方式,该组网方式的通讯主干线同样有两路网络分支,不同的是两路网络分支所运行的通讯协议可以不同,分主从协议口,每个智能电子设备信息点包含两套参数分别对应不同的两种协议,智能电子设备两个协议端口正常时都处于收发状态,但只有主协议口可以完成参数设置或控制及事件处理,并且每一智能电子设备两协议端口控制权限可以交互。当工作端口所有智能电子设备通讯都中断后,则控制权限交给冗余协议端口完成。如果某智能电子设备其中一个协议端口通讯中断后,也可由该智能电子设备的另一个协议端口去完成通讯。当协议口P1的Pr1协议挂接的所有智能电子设备通讯中断后,则可以通过协议端口P2的Pr2协议继续进行通讯;如果智能电子设备IED11的Pr1协议端口故障不能通讯中断后,IED11的信息采集由Pr2协议口通过P2端口去完成。这样解决了智能电子设备双协议不能同时接入的问题。

实施例三:双管理机双端口冗余组网方式。

图4所示是双管理机双端口冗余组网方式,该组网方式由两台通讯管理机组成,也即双管理机方式;该组网方式将智能电子设备IED串接在一起,通讯主干线同实施例一相同,也有两路网络分支,但是两路网络分支分别接入到两台通讯管理机通讯端口上,通讯管理机之间用UDP方式连接进行数据交换、数据同步或切换控制。在该种方式下,两通讯管理机的智能电子设备信息点完全一致,采用热备份工作方式,可完成对多客户端进行数据信息的转发,两台通讯管理机都可以进行信息转发。

实施例四:双管理机双协议冗余组网方式。

图5所示是双管理机双协议冗余组网方式,该组网方式由两台通讯管理机组成,具有双协议端口的智能电子设备通过两路网络分支分别和通讯管理机相连,在该种方式下,两通讯管理机接入的智能电子设备是完全一致的,两通讯管理机之间通过UDP方式连接为热备份工作方式,可完成对多客户端进行数据信息的转发,两台通讯管理机之间可以进行信息转发。该方式将本通讯管理机双端口协议冗余后再把智能电子设备相同协议的两端口进行端口冗余,可以充分保证智能电子设备信息采集的可靠。在该种工作方式下,通讯管理机的通讯口分为主协议主口、主协议从口、从协议主口、从协议从口这四种类型。这几种协议端口的优先权限按如下过程循环:主协议主口、从协议从口、主协议从口、从协议主口。

实施例五:双管理机双端口双协议冗余组网方式。

图6所示是双管理机双端口双协议冗余组网方式,该组网方式在将本通讯管理机双端口协议冗余后再把通讯管理机相同协议的两端口进行端口冗余,可以充分保证设备信息采集的可靠。在该种工作方式下,通讯管理机的通讯口分为主协议主口、主协议从口、从协议主口、从协议从口这四种类型。这几种类型口的优先权限按如下过程循环:主协议主口、从协议从口、主协议从口、从协议主口。

通过以上四种端口类型的逻辑优先权限的判断,然后以UDP信息同步的方式交互两通讯管理机的信息,以达到两通讯管理机间不同端口类型的报文收发及控制权限的管理。两通讯管理机的遥测、遥脉以变化率方式同步,事件、遥信变位和控制命令则实时同步。这样有效地控制了网络流量,又由于两通讯管理机间是以非连接的UDP方式进行信息同步,可以很好地提高实时性,同时也起到了可靠通讯的目的。

通过以上五种实施例的组网方式,智能电子设备的通讯组网方式确定后,就需要配置该工程的设备组态。在应用中,先建立一个工程文件,以后该工程的设备组态信息都在该工程目录中,然后在该工程节点下添加需要的通讯管理机,再为各通讯管理机添加通讯串口,并设置串口运行的通讯协议,接着设置通讯管理机串口间的冗余关系(端口冗余或协议冗余)。这样,基本的组网策略就配置完成了。剩下的工作就是为通讯管理机的通讯口添加智能电子设备及设备采集的信息点。当智能电子设备的信息点添加完成后,再为转发协议端口添加需要转发的信息点。如果是双通讯管理机冗余方式,还需要配置好完成数据同步的以太网端口的IP地址,这是完成双通讯管理机冗余的关键。这些配置都完成后,就可以生成通讯管理机运行所需的设备配置文件,然后下载到通讯管理机,引导通讯管理机协议程序运行,进行配置文件正确性的基本检测。

接口协议篇(10)

随着通信网技术的进一步发展,越来越多的互连网设备(如路由器、开关、网关、存取装置)中的串行接口在广域网(WideAreaNetwork)中被设计成能够支持多种物理接口协议或标准。广域网串行口协议包括RS-232,RS-449,EIA-530,V.35,V.36以及X.21等。图1所示是一个简单的串行通信接口示意图。由图可知,实现多协议串口通信的关键是将连接器送来的不同传输方式平衡、非平衡和不同电气信号通过收发器转换为终端能够识别并处理的、具有TTL电平的信号。

1传统多协议通信的特点和问题

1.1“子板”方式

广域网串口应用中的通用实现方法是为所需的每一种物理协议提供一个独立的子板。一个支持EIA-232,EIA-449及V.35协议的系统,通常需要三个独立的子板以及三个不同的连接器。这种方法由于每种协议要求配置一块子板,因此系统需要对PCB子板、收发器芯片、连接器等进行管理,这样既浪费资源,又会使管理工作复杂化。

1.2通用连接器方式

为解决“子板”方式的缺点,可使用一块母板及通用连接器。一个母板上有多种收发器芯片,可以满足多串口协议的要求,并可共用一些通用器件,同时可减少资源的浪费。在配置中,应注意因连接器的管脚较少而带来的问题,较好的办法是根据信号而不是根据协议来分配管脚,即给每一个信号分配一个通用管脚,而不管其物理协议如何定义。如对EIA-232,EIA-449,EIA-530,V.35和V.36来说,其TxD信号可连至连接器相同的管脚。即SDa信号连接到管脚2,SDb信号连接到管脚14。然后利用这对管脚来描述所有协议的发送信号TxD。

这种方法同样也会带来一个问题,即所有收发器的I/O线至通用连接器的管脚必须彼此共用。例如,一个V.28驱动器芯片中的发送数据信号线的接连接器DB-25的管脚2;同时,一个V.11驱动器芯片中的发送数据信号线要接至连接器的管脚2和14;而V.35驱动器芯片中发送数据信号线也会接至连接器的管脚2和14。这样,通用连接器的管脚2将同时接有三根信号线,管脚14接有两根信号线。这样,在这一配置中,所有的驱动器都必须具有三态特性,以禁止不必要的输出。若收发器没有三态特性,则需要使用一个多路复用器来选择相应的输出端。由此带来的另一个问题是收发器在禁止使用时会产生漏电电流。如果选择了V.28协议,其输出电压理论值为15V。此时对于V.11协议的驱动器会被禁用,而处于三态时,其输出漏电电压就必须足够低,才能使得连在同一连接器管脚的V.28协议的驱动器信号不受影响。如果在发送器与接收器之间有隔断开关,则开关也要考虑漏电情况。

1.3串口的DTE/DCE模式切换

DTE/DCE的切换可通过选择不同的连接器转换电缆来实现,这样,在实现DTE/DCE转换时可最大程度地减小收发器的复杂性,但缺点是需要更换电缆,尤其是设备放置位置不便或DTE/DCE需要频繁切换时这一点尤为突出。

如果保持传输电缆不变,则可将收发器配置为两套以分别支持DTE、DCE方式。而将DTE收发器的驱动器输出与DCE收发器的接收器输入相连,而将接收器输入端与DCE收发器的驱动器输出相连。为了控制DTE或DCE方式,驱动器或接收器的输出必须为三态。当选择为DTE方式时,DCE芯片禁止,其驱动器和接收器处于三态,反之亦然。

该方法虽然解决了对电缆的频繁更换问题,但由于多用了一套收发器而使得设计成本大为提高,且串口板的体积也大了很多。

2多协议串口通信的实现原理

传统设计中,针对某种协议通常应选择相应的收发芯片,如对于RS-232协议,常用DS-1488/DS-1489、MAX232或SP208等收发器芯片;而对于RS-449协议,则常使用SN75179B、MAX488、MAX490等收发器芯片。当同时使用RS-232、RS-422和V.35协议时,就需要多个收发器芯片来支持不同的协议。

现在,一些收发器的生产厂商研制出了多协议收发器芯片。Sipex是第一家生产出RS-232/RS-422软件可选择协议芯片SP301的公司。这种芯片可将RS-232和RS-422收发器的电气特性综合到一个芯片中实现。其中SP50X系列产品最多可支持8种协议标准。其它生产厂家如Linear公司生产的LTC154x系列、LTC284x系列芯片也具有以上功能。用户可根据自己的需要选择适当的芯片。

图2为采用分立的收发器芯片与采用一片多协议收发器芯片实现多协议串口通信的通信卡。从图可知,前者实现的复杂度要远远大于后者,具体的性能比较如表1所列。

表1两种方法实现串口通信的性能比较

分立器件板综合器件板

供电电压+5V,-5V,+12V,-12V+5V

所需收发器芯片数121

支持的物理层协议RS-232,RS-422,RS-449,EIA-530,V.35,V.36RS-232,RS-422,RS-449,RS-485,EIA-530,EIA-530A,V.35,V.36

协议选择方式跳线或开关软件或硬件(通过内部译码)

串口板大小除了15个收发器芯片外还需其它硬件支持非常小

功耗大约1W大约100mW~250mW

除此之外,与分立收发器芯片相比,多协议收发器对驱动器使能控制和对输出漏电电流的处理要容易得多。当通过软件或硬件方法选择某一协议时,驱动器和接收器的电气参数将调整至适当的大小,电路内部将自动控制驱动器的输出电平、接收器的输入门限、驱动器和接收器的阻抗值以及每一物理层协议的常用模式范围。

另外,由于外部网络终端对V.35的需求,使得与V.35收发器的连接不能象其它协议那么简单。当使用分立收发器芯片时,常常通过采用昂贵的继电器开关电阻在选择其它协议接口时将V.35网络终端断开,或者要求用户每选择一个新的接口标准就改变一次终端模块,这样既浪费资源又会使接口电路变得复杂,因而不是一种理想的实现方法。而多协议串口芯片则自动提供适当的终端和片上开关来符合V.10、V.11、V.28和V.35电气协议,从而解决了电缆终端转换问题。

3基于LTC1546/44的多协议通信

为了说明多协议串口芯片的工作原理,现以Linear公司的LTC1546/1544芯片为例进行分析。

3.1LTC1546/LTC1544的性能

LTC1546芯片是一个3驱动器/3接收器的收发器,其主要特点如下:

带有软件可选的收发器可支持RS232、RS449、EIA530、EIA530A、V.35、V.36和X.21协议

可提供片上电缆终端

与LTC1543引脚兼容

与LTC1544配合可完成完整的DTE或DCE

工作在5V单电源

占位面积小。

LTC1544芯片是一个4驱动器/4接收器的收发器,其主要特点有:

软件可选的收发器支持RS232、RS449、EIA530、EIA530A、V.35、V.36和X.21协议

采用LTC1344A作为软件可选的电缆终端

采用LTC1543、LTC1544A或LTC1546可实现完整的DTE或DCE端口

与LTC1543同样工作于5V单电源。

这两种芯片均采用28引线SSOP表面贴封装,图3所示为其引脚排列。

由LTC1546/LTC1544可组成一套完整的软件可选择DTE或DCE接口,以应用于数据网络、信息业务单元CSU和数据业务单元(DSU)或数据路由器中,它支持多种协议,电缆终端可在片上提供,因此不再需要单独的终端设计。其中,LTC1546每个端口的一半用来产生和适当终止时钟和数据信号。LTC1544则用来产生控制信号及本地环路返回信号(LocalLoop-back,LL)。接口协议通过模式选择引脚M0、M1和M2来决定,具体选择方式见表2。

表2通信协议的模式选择

LTC1546模式名称M2M1M0DCE/DTED1D2D3R1R2R3

未用(缺省V.11)0000V.11V.11V.11V.11V.11

RS530A0010V.11V.11ZV.11V.11V.11

RS5300100V.11V.11ZV.11V.11V.11

X.210110V.11V.11ZV.11V.11V.11

V.351000V.35V.35ZV.35V.35V.35

RS449/V.361010V.11V.11ZV.11V.11V.11

V.28/RS2321100V.28V.28ZV.28V.28V.28

无电缆1110ZZZZZZ

未用(缺省V.11)0001V.11V.11V.11ZV.11V.11

RS530A0011V.11V.11V.11ZV.11V.11

RS5300101V.11V.11V.11ZV.11V.11

X.210111V.11V.11V.11ZV.11V.11

B.351001V.35V.35V.35ZV.35V.35

RS449/V.361011V.11V.11V.11ZV.11V.11

V.28/RS2321101V.28V.28V.28ZV.28V.28

无电缆1111ZZZZZZ

由表2可知,如果将端口设置为V.35模式,模式选择引脚应当为M2=1,M1=0,M0=0。此时,对于控制信号,驱动器和接收器将工作在V.28(RS232)模式;而对于时钟和数据信号,驱动器和接收器将工作在V.35模式。

模式选择可通过控制电路或利用跳线将模式引脚接至地或Vcc来实现对引脚M0、M1和M2的控制,也可通过适当的接口电缆插入到连接器上实现外部选择控制。若选用后者,则当移开电缆时,全部模式引脚均不连接,即M0=M1=M2=1,此时LTC1546/LTC1544进入无电缆模式。在这种模式中,LTC1546/1544的供电电流将下降到500μA以下,并且LTC1546/LTC1544驱动器输出将被强制进入高阻状态。同时,LTC1546的R2和R3接收器应当分别用103Ω端接,而LTC1546和LTC1544上的其它接收器则应通过30kΩ电阻接到地。

通过DCE/DTE引脚可使能LTC1546中的驱动器3/接收器1、LTC1544中的驱动器3/接收器1和驱动器4/接收器4;LTC1544中的INVERT信号对驱动器4/接收器4起使能作用。可以通过下面两种方法中的一种将LTC1546/LTC1544设置为DTE或DCE工作模式:一种是将专门配有适当极性的连接器接至DTE或DCE端;另一种是通过专用DTE电缆或专用DCE电缆发送信号给LTC1546/LTC1544,同时使用一个连接器构成一种既适合DTE又适合DCE的工作模式。

3.2典型应用

图4为一个带有DB-25连接器端口并可被设置为DTE或DCE工作模式的多协议串口通信电路,图中LTC1546/LTC1544芯片一边与连接器相连,另一边接至HDLC芯片,M0、M1、M2及DCE/DTE引脚接至EPLD硬件控制电路以实现对通信协议和工作模式的选择。其中DTE或DCE工作模式需要连接对应的电缆以保证正确的信号发送。例如,在DTE模式中,TxD信号通过LTC1546的驱动器1发送到引脚2和14。在DCE模式中,驱动器则将RxD信号发送到引脚2和14。

图4中,LTC1546采用一个内部容性充电泵来满足VDD和VEE。其中,VDD为符合V.28的正电源电压端,该端应连接一只1F的电容到地;VEE为负电源电压端。一个电压倍增器在VDD上将产生大约8V电压,而电压反相器则将在VEE上产生大约-7.5V的电压。四只1μF电容均为表面贴装的钽或陶瓷电容,VEE端的电容最小应为3.3μF。所有电容耐压均应为16V,同时应尽可能放置在LTC1546的附近以减少EMI干扰。

图4用LTC1546/LTC1544芯片实现多协议串口通信(DTE/DCE可选)

在V.35模式中,LTC1546中的开关S1和S2将导通,同时应连接一个T型网络阻抗,以将接收器的30kΩ输入阻抗与T网络终端并联起来,但不会显著影响总输入阻抗,因此对于用户来说,这种模式下的电路设计与其它模式下完全相同。

由于LTC1546是3驱动器/3接收器的收发器,LTC1546是4驱动器/4接收器的收发器,所以如果同时采用RL、LL和TM信号,则LTC1546/LTC1544就没有足够的驱动器和接收器。因此,可用LTC1545来替换LTC1544。LTC1545为5驱动器/5接收器的收发器,它能够处理多个可选的控制信号,如TM和RL。

上一篇: 六年级数学期中总结 下一篇: 旅游管理实训总结
相关精选