期刊在线咨询服务,发表咨询:400-888-9411 订阅咨询:400-888-1571股权代码(211862)

期刊咨询 杂志订阅 购物车(0)

接口协议模板(10篇)

时间:2022-07-14 14:15:46

接口协议

接口协议例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

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.1 LTC1546/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则用来产生控制信号及本地环路返回信号(Local Loop-back,LL)。接口协议通过模式选择引脚M0、M1和M2来决定,具体选择方式见表2。

表2 通信协议的模式选择

LTC1546模式名称M2M1M0DCE/DTED1D2D3R1R2R3未用(缺省V.11)0000V.11V.11V.11V.11V.11 RS530A0010V.11V.11ZV.11V.11V.11RS5300100V.11V.11ZV.11V.11V.11X.210110V.11V.11ZV.11V.11V.11V.351000V.35V.35ZV.35V.35V.35RS449/V.361010V.11V.11ZV.11V.11V.11V.28/RS2321100V.28V.28ZV.28V.28V.28无电缆1110ZZZZZZ未用(缺省V.11)0001V.11V.11V.11ZV.11V.11RS530A0011V.11V.11V.11ZV.11V.11RS5300101V.11V.11V.11ZV.11V.11X.210111V.11V.11V.11ZV.11V.11B.351001V.35V.35V.35ZV.35V.35RS449/V.361011V.11V.11V.11ZV.11V.11V.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。

接口协议例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

一、协议栈的结构

协议栈是计算机网络中的一个专业名词,它主要是为反映文件在网络传输中的过程,是网络中各层协议的总和。LTE就是在这种背景上发展的一种很先进的系统,它在技术上引用了OFDM和多天线MIMO等关键传输技术,采用这种技术可以使频谱分配更加灵活,有效的提高了频谱的效率。同时还增大了系统容量和覆盖,为文件的传输提供了更大的活动空间,提高了数据传输的速率,在带宽的应用上也能支持多种形式分配。LTE系统结构上主要由三个子层构成:物理层(无线处理数据)、数据链路层(处理和控制数据的发送或接收)、无线资源控制层(控制系统工作状态)。其中,第二层的数据链路层又被划分为媒体接入控制子层、无线链路控制子层和分组数据汇聚协议子层。

二、协议栈的研究与实现

(1)首先是数据链路层中的分组数据汇聚协议层的设计。此层的功能主要是封装IP数据。本来在嵌入式的程序开发的协议栈一般都采用lwIP,但是为了数据更加稳定,本项目设计中便引入了LTE结构中。其工作原理是当PDCP子层收到一个1wIP数据的pbuf结点的时候就会生成一个对应pdcp―sdu结点,生成的这个sdu结点将会转移到队列里等待封装处理。

(2)然后是数据链路层中的无线链路控制层的设计。这一层的主要作用是为上层即PDCP子层提供稳定、可靠的传输服务,传输模式有透明模式、无确认模式、确认模式三种。TM模式不会对数据产生任何处理和改变,uM模和AM模式的设计类似。设计实现RLC AM发送端时,也是采用双缓冲队列(处理缓冲队列和发送缓冲队列)。当收到上级命令或请求的时候函数就会将相应的数据放入队列中。接收到发送命令的时候立即进行发送。在RLC接收端,也设计了一个队列来实现接收窗口,它的大小和形式与发送端发送缓冲队列一致。通过调整接收指针来保证与发送端匹配工作完成数据接收。另外在接收到数据时会根据轮询字段的值,对是否生成状态报告进行判断。

(3)最后是数据链路层中的媒体接入层的设计。媒体接入层的作用主要是对数据的复用和解复用。也就是通过编码,将不同信道中的数据封装到对应的MAC包中。此子层也是采用双缓冲队列,解复用恰恰是一个相反的过程,即根据MAC子头中的信息,恢复出原始数据,并将数据递放到缓冲队列中,利用分发函数将数据传递给相应的操作过程。

三、系统开发的平台和测试

对LIT的结构了解了之后便是对硬件设备的准备。此系统的开发具有一定的复杂性,因此对设备的配置要求比较高。一般此系统的开发板都选用Virtex-6 ML605 FP-GA。这种开发板的FPGA、处理器、内存、串口等各种控制器都都可以满足系统开发的需求。

系统开发完成后需要进行系统流程测试,这是软件系统开发必不可少的一步。本次的测试以开发板上的网口作为UE的数据来源,为了捕获和预处理网口的数据,需要在LWIP协议的基础上编写一个上层的小程序。通过开发板的AURORA模块连接对应的端口,然后进行数据的传送和接受测试。在测试的方式上可以选择通过LTE物理层链路模块,以几组不同的发送速率和编码方式测试协议栈的处理速率;也可以直接利用AURORA模块直接测试。

四、结语

本文通过对LTE空中接口协议栈的流程和开发入手,简单的对LTE协议栈进行了研究与实现。LTE系统是一种需要更加专业的水平进行研究和探索,它还有很大的提升空间,在未来的通讯发展中,随着LTE技术的推广和应用,各种面向小型设备的LTE空中接口协议栈的研究和实现有很广泛的现实意义和应用前景。

参考文献

接口协议例5

随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。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

接口协议例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

doi:10.3969/j.issn.1006-1010.2015.24.009 中图分类号:TN915.81 文献标识码:A 文章编号:1006-1010(2015)24-0045-06

引用格式:席剑霄. Diameter协议在IMS网络Cx/Dx接口中的应用研究[J]. 移动通信, 2015,39(24): 45-50.

Research on Application of Diameter Protocol to Cx/Dx Interface

in IP Multimedia Subsystem

XI Jian-xiao

(the First Institute of Ministry of Public Security, Beijing 100048, China)

[Abstract] Diameter protocol was drawn up by IETF (the Internet Engineering Task Force). It is the AAA protocol oriented to the next generation of core network and adopted by multiple interfaces of IMS networks to serve as communication protocol. The business scope of Cx/Dx interface in IMS network was studied in this paper. In addition, the application extension made by 3GPP based on Diameter protocol according to Cx/Dx interface characteristics was introduced. The role and significance of Cx/Dx interface were pointed out. Finally, the key service process and signaling were analyzed.

[Key words]Diameter protocol IP multimedia subsystem network Cx/Dx interface AAA

1 引言

信息与通信技术的发展,使得电信业务也取得了长足的进步。在新技术的应用下,目前电信系统体现出的特征主要有:从支持语音业务为主向承载多媒体业务发展,核心网向IP化、扁平化过渡,固网与移动通信网融合(FMC,Fixed Mobile Convergence)进程加快等。IMS(IP Multimedia Subsystem,IP多媒体子系统)网络正是在这样的背景下诞生的。IMS网络的出现,客观上增加了电信运营商的用户数量,丰富了电信运营商向用户提供的业务类型,降低了新业务的部署和运营成本,同时在QoS(Quality of Service,服务质量)、系统安全、(漫游)计费等方面也提供了相应的保障。这基本上满足了运营商对能够支持全业务的统一融合网络架构的需求[1],被看作是下一代核心网的关键技术。

3GPP组织在R5版本中,首次将IMS网络写入标准,并对IMS网络中逻辑功能实体之间的接口参考点功能、消息流程和信令格式做出了详细的规定。其中,Cx和Dx接口参考点主要负责完成网络核心数据交换,该接口对于IMS网络安全和用户信息安全至关重要。在规范流程中,IMS网络中负责核心交换的功能实体需要通过该接口向数据存储网元请求关键数据,并根据返回结果,完成用户身份认证、接入鉴权、漫游管理和呼叫控制等业务流程。

从整体上来讲,Cx/Dx接口是完成IMS网络所有核心业务的基础接口,为业务的顺利开展提供了数据支撑。该接口采用新一代AAA(Authentication、Authorization、Accounting)协议,Diameter作为业务载体,在Diameter基础协议之上,制定了相应的通信流程并扩展了应用消息,较好地满足了接口承载的实际业务需求。

2 Cx/Dx接口参考点

2.1 Cx/Dx接口参考点位置

Cx/Dx接口参考点在IMS网络中的位置如图1[2]所示。

Cx/Dx接口连接的网络功能实体包括I-CSCF(Interrogating CSCF)、S-CSCF(Serving CSCF)、HSS(Home Subscriber Server)、SLF(Subscription Locator Function)。其中,HSS服务器与CSCF服务器之间的交互接口定义为Cx接口,CSCF服务器和SLF服务器之间的接口定义为Dx接口[3]。

2.2 Cx/Dx接口功能

(1)位置服务

位置管理功能主要包括用户注册状态查询、S-CSCF发起的注册/注销、网络发起的注册/注销、用户位置查询等。具体内容为:

1)用户状态查询:当I-CSCF收到用户SIP(Session Initiation Protocol,会话发起协议)协议注册消息之后,发送查询消息到HSS,对用户进行身份认证、检查用户公有标识IMPU(IP Multimedia Public Identity,IP多媒体公有标识)和用户私有标识IMPI(IP Multimedia Private Identity,IP多媒体私有标识)是否匹配、确定用户归属S-CSCF地址等。

2)S-CSCF发起的注册/注销:S-CSCF发起用户注册和注销信息请求到HSS,将用户信息与S-CSCF实体进行关联或清除关联,并在注册成功之后,从HSS下载用户相关信息。

3)网络发起的注册/注销:在一些特定的应用场景下,需要由系统主动将用户注销。此时,由HSS将用户在数据库中的状态进行改变,并将通知消息发送给用户归属S-CSCF。

4)用户位置查询:当I-CSCF收到针对某一用户的被呼叫请求消息后,向HSS发送被叫用户归属S-CSCF查询信息,或者根据PSI(Public Service Identity,公共服务标识)查询AS(Application Server,应用服务器)服务器的路由信息。

(2)用户数据处理

针对用户数据的处理包括用户注册成功后,CSCF从HSS下载用户文档;用户基本信息、计费信息、漫游信息等;当CSCF所需要的用户数据发生变化后,HSS使用推送模式向CSCF发送用户数据通知。

(3)鉴权

用户接入IMS网络的过程中,系统需要对用户身份进行鉴权(必要时是双向鉴权)。鉴权过程中使用的鉴权参数,需要通过Cx接口传递给AuC服务器(IMS系统中通常为CSCF服务器)。同时,针对特定的鉴权体制,需要通过该接口解析鉴权过程中UE(User Equipment,用户设备)与HSS之间的SQN数据的同步失败问题。

(4)HSS位置解析

在某些运营商的IMS系统中,可能存在多个HSS服务器。此时,CSCF需要能够找到与该用户信息对应的HSS服务器。为了能找到对应的HSS服务器,CSCF需要通过Dx接口与SLF或Diameter服务器进行通信。如果是SLF,由CSCF发送HSS位置请求给SLF,SLF根据相应策略,将HSS位置信息通知CSCF;如果是Diameter服务器,由Diameter服务器将请求转发至对应的HSS服务器。从本质上来看,解析HSS服务器的过程,是一种从用户标识到对应HSS服务器的映射。

(5)隐式注册

通过Cx/Dx接口的用户注册流程,IMS网络允许用户通过一次公有用户标识的注册,将该公有用户标识所在的隐式注册集中其他所有的公有用户标识同时完成注册,简化了注册流程,降低了系统负荷,提高了运行效率。

(6)S-CSCF指派

当I-CSCF在收到UE注册请求后,需要与HSS进行通信,获取网络中存在的S-CSCF(网络中可能不止有一个S-CSCF)信息。如果之前HSS没有为UE指派S-CSCF,那么HSS应当在响应消息中包含S-CSCF的能力集合,由I-CSCF在结果集合中进行S-CSCF能力评价,选择出下一跳S-CSCF。通常,在能力集合定义项目和选择算法,由电信运营商自主定义。

2.3 作用与意义

Cx/Dx接口参考点在IMS网络中的主要意义有下面几点。首先,为会话控制和信令消息路由提供“参考依据”。CSCF是IMS系统中的核心控制单元,主要负责会话信令建立与消息转发,通过该接口获取的相关数据,决定了业务控制流程和信令消息的转发地址。其次,在终端网络接入过程中,实现了对其身份的认证和授权。不同的CSCF功能实体(如I-CSCF和S-CSCF),在接入过程中分别完成了相关认证工作,这在客观上也缓解了核心网的压力。最后,对用户信息和业务信息实现了有效的管理和利用。

3 Diameter协议在Cx/Dx接口上的扩展

Diameter协议是IETF制定的针对下一代网络的AAA协议,是对原有的RADIUS协议的加强和升级,其在传输控制、错误处理、消息传输可靠性、故障切换、可扩展性、安全机制等方面都得到了改进。Diameter基础协议是应用层协议,被定义在RFC3588文档中,支持网络接入请求应用、移动IP应用、SIP应用等。在可扩展性方面,Diameter协议允许增加新定义的应用、消息和AVP(Attribute Value Pair,属性值对)来支持不同类型的应用。Diameter协议体系结构如图2[4]所示:

图2 Diameter协议体系结构

IANA(the Internet Assigned Numbers Autho- rity,互联网编号分配管理机构)分配给Cx/Dx接口的扩展应用标识编号为16777216,3GPP组织的制造商标识编号为10415,Diameter协议在Cx/Dx接口上的命令如表1[5]所示。

4 关键业务流程分析

4.1 接入认证流程

用户注册流程如图3[3]所示。

步骤1-2:对于尚未注册的终端,注册请求消息(SIP协议中的Register消息)经过路由转发至I-CSCF服务器;

步骤3-4:I-CSCF发送Diameter消息中的User-Authorization-Request请求到HSS服务器,消息格式为(省略部分AVP)[5]:

::=

{Vendor-Specific-Application-Id}

{User-Name}

{Public-Identity}

{Visited-Network-Identifier}

[User-Authorization-Type]

[UAR-Flags]

……

在UAR消息中,主要携带了用户公有标识、私有标识、拜访网络标识等内容。HSS服务器根据携带的参数信息,判断用户标识是否合法、标识是否匹配、是否为紧急注册请求,检查用户认证类型(注册、注销、重复注册)等。如果检查通过,HSS将S-CSCF信息结果返回给I-CSCF。

步骤5:I-CSCF提取出HSS返回的UAA应答消息中S-CSCF的信息,选择出满足业务需求的S-CSCF,并将Register消息转发给S-CSCF。

步骤6-7:对于首次注册的终端,S-CSCF根据一定的接入鉴权策略,发起对接入终端的鉴权挑战。S-CSCF向HSS发送Multimedia-Auth-Request请求,Multimedia-Auth-Request消息格式为(省略部分AVP)[5]:

::≤Diameter Header: 303,REQ,PXY,16777216>

{Vendor-Specific-Application-Id}

{Auth-Session-State}

{User-Name}

{Public-Identity}

{SIP-Auth-Data-Item}

{SIP-Number-Auth-Items}

{Server-Name}

……

根据不同的鉴权策略,如IMS-AKA(IMS Authentication and Key Agreement),在SIP-Auth-Data-Item AVP、SIP-Number-Auth-Items AVP携带相应的描述信息,HSS在MAA应答消息中将鉴权参数返回给S-CSCF(如鉴权向量)。

步骤8-10:S-CSCF返回401应答,应答消息中携带从HSS服务器获取的鉴权参数,向接入终端发起鉴权挑战。401应答通过I-CSCF和P-CSCF转发到终端。

步骤11-15:终端根据鉴权挑战算法和参数,计算鉴权结果,并将计算结果添加到第二次Register消息体中。在终端要求双向鉴权的情况下,终端可在第二次Register消息体中添加对系统的鉴权参数。另外,在步骤13和步骤14中,如果之前I-CSCF已经为终端指定S-CSCF地址,可直接将消息转发到S-CSCF,不再重复S-CSCF选择过程。

步骤16-17:S-CSCF根据终端的计算结果,与正确的鉴权计算结果进行比对,如果一致的话,则鉴权通过,并发送Server-Assignment-Request请求到HSS。通过SAR请求中的User-Name、Server-Name等AVP完成终端与S-CSCF的匹配。另外,也可完成下载用户信息、获取CSCF故障恢复信息等业务。

步骤18-20:将注册成功的200 OK消息发送至终端。在要求双向鉴权的情况下,需要将终端对系统的鉴权计算结果添加到应答消息中,由终端对网络实施鉴权。

4.2 归属S-CSCF查询

归属S-CSCF查询主要应用在被叫终端寻址的场景下,具体流程如图4[3]所示。

当呼叫消息INVITE发送到I-CSCF后,I-CSCF发送Location-Info-Request到HSS,HSS在数据库中查询被叫终端注册成功之后指派的S-CSCF,并通过Location-Info-Answer应答消息中的Server-Name AVP通知I-CSCF被叫终端归属S-CSCF名称,I-CSCF收到Location-Info-Answer应答后,将INVITE消息发送到归属S-CSCF继续后续呼叫流程。

图4 用户注册消息流程

5 结束语

Diameter协议在IMS网络中发挥了重要的作用,在IMS体系中,已经成为包括Cx、Dx接口在内的诸多通信接口参考点使用的通信协议。这些接口参考点之间的网元设备将Diameter协议作为业务载体,共同完成了认证、授权和计费等核心业务。对于电信运营商而言,认证、授权和计费是其赖以生存的基础,认证策略提供安全保障,授权确保用户能正常开展业务,计费是盈利手段。Diameter协议在设计上能够有效地实现对这些业务的支持,在保障用户信息安全和网络安全的同时,维护了运营商的利益。从长远来看,随着电信系统核心网向EPC(Evolved Packet Core)方向演进,Diameter协议可凭借其良好的可扩展性,满足更多的、特定的实际需求,支持核心网向分组化方向演进,在今后的网络技术发展中,会占有更加重要的地位。

参考文献:

[1] 姜怡,于青. IMS标准化进展[J]. 移动Lab网报告, 2013(4):

41-42.

[2] 刘建峰. IMS总体架构[EB/OL]. (2014-06-27)[2015-10-08]. http:///liujianfeng1984/article/details/35242899.

[3] 3GPP TS29.228 V12.5.0 Release12. IP Multimedia Subsystem Cx and Dx interfaces Signalling flows and message contents[S]. FRANCE: 3rd Generation Partnership Project, 2015.

[4] IETF Network Working Group. RFC3588 Diameter Base Protocol[S]. IETF, 2003.

[5] 3GPP TS29.229 V12.6.0 Release12. Cx and Dx interfaces based on the Diameter protocol; Protocol details[S]. FRANCE: 3rd Generation Partnership Project, 2015.

[6] 3GPP TS23.228 V13.2.0 Release13. IP Multimedia Subsystem (IMS); Stage 2[S]. FRANCE: 3rd Generation Partnership Project, 2015.

[7] 3GPP TS23.002 V13.2.0 Release13. Network architecture[S]. FRANCE: 3rd Generation Partnership Project, 2015.

接口协议例8

中图分类号:TP391.1 文献标识码:A 文章编码:1006-1010(2013)-08-0082-04

1 广东移动电子渠道和NGCRM接口体

系建设背景

广东移动的电子渠道现状是由几个不同时期建立的网站、短信营业厅、WAP、掌上营业厅、自助终端和面向集团业务的ADC等子系统组成的一个集合。各子系统有自己的渠道特点和擅长的业务,分别承担了某客户群的支撑功能。总体而言,各渠道系统在系统功能层面是相互割裂的,各电子渠道和CRM系统之间的划分界面目前也不清晰,缺乏整体数据及功能层面的规划。因此,电子渠道和NGBOSS接口开发基本上是由业务驱动,即针对某个具体业务增加或者修改相应的接口,某一接口基本上只和实现特定的业务功能相对应。目前NGCRM系统接口的直接问题表现如下:

(1)接口通用性和稳定性不强。经常出现的问题是现有接口无法满足某项特定的业务需求而需要临时增加新的接口,这导致目前的接口数量很大且功能繁杂;在业务支撑上表现为接口有时会拖延业务的上线;相关的接口维护部门的工作负荷也增大。

(2)接口没有合理的扩充和版本适应机制。现状往往使设计者在选择支撑方式时倾向于增加新的接口,因为其成本和风险与在现有接口上扩充相比低得多。

(3)电子渠道现状中的竖井模式也增加了接口收敛的难度。不同的电子渠道对接口有各自的需求,在现有接口上扩充不可避免地会影响已经使用的系统,牵一发而动全身,使得设计者和决策者往往倾向于增加额外接口以满足新的需求。

(4)潜在的安全风险还包括:

1)无流控机制:接口的负荷可以直接传导到核心CRM系统,进而影响到一个区域甚至整个广东移动的业务处理;

2)接口的调用方目前没有认证控制:只要是能够接入CRM核心系统的周边系统都可以调用接口;

3)无接口调用的审计机制。

因此,在NGBOSS建设中对电子渠道接口体系在业务能力和架构上进行重新规划已经成为当务之急。

2 广东移动电子渠道和NGCRM接口体

系介绍

随着NGBOSS的建设,电子渠道接口体系的重新规划和设计成为NGBOSS建设的重要组成部分,其方法论确定为:横向整合和纵向解耦。所谓横向整合是梳理各电子渠道共性的功能、数据、流程,结合电子渠道的业务目标,最终明确目标电子渠道系统架构是由哪些通用的业务流程和数据驱动;纵向解耦则是梳理电子渠道系统和CRM系统的配合分工关系,使得电子渠道和CRM分别承载相对独立的业务流程,以此两点为基础,并同样按照包括了功能、数据、流程的分布,最终确定电子渠道和NGCRM两个系统之间的接口体系规划。

本部分首先将涉及电子渠道的业务需求子集作为输入,完成业务流程框架需求分析,进而分解流程,形成接口数据需求分析,最后完成接口梳理。

通过横向整合和纵向解耦确定的NGCRM和电子渠道接口体系,从以往的以单个业务渠道接口协议为主过渡到了以通用流程、数据分解电子渠道和NGCRM的功能为主并在此基础上明确协议,使得大量接口协议具有和单个业务无关的通用性。这种思路明确了NGBOSS的电子渠道系统和CRM系统之间的接口服务调用关系。

广东移动NGBOSS中NGCRM作为业务服务的提供方,提供对电子渠道的统一接口体系。在进行NGBOSS电子渠道接口设计前,根据电子渠道和CRM的解耦分布对需求进行了分解,甄别出涉及电子渠道和CRM之间存在穿越流程的需求点共143个,识别出涉及穿越的流程共21个。在数据方面,接口按照NGCRM数据域划分为:客户服务域、客户管理域、渠道域、资源域、订单域、产品域。

由于电子渠道系统和NGCRM系统之间的交互主要以流程驱动为主,因此电子渠道系统和NGCRM系统的接口设计也以系统流程穿越为主线,数据复制和查询为辅;通过尽量将主要流程进行通用化设计,流程层面的接口的功能体现为对通用服务的调用;按照将业务功能逻辑集中的NGCRM朝着电子渠道轻量化方向发展的思路,在梳理的业务流程和数据流基础上进行了NGBOSS的电子渠道接口设计。

NGBOSS电子渠道接口协议的总体框架如图1所示。

NGBOSS的电子渠道接口按照功能可以划分为受理相关接口、非受理相关接口、产品接口、ADC专用接口:

(1)受理类相关接口目前共有43个,分别提供了包括客户身份认证、各种客户相关信息的查询、订单受理等功能;

(2)非受理相关接口目前共有266个,提供了包括积分查询,各种增值业务查询等杂项功能;

(3)产品接口目前共有2个,提供了产品配置变更查询;

(4)ADC专用接口目前共有12个,提供了ADC工单杂项功能。

3 基于SOA技术的新一代电子渠道接口

协议体系设计

考虑到电子渠道接互的是异构的系统集群,为最大程度地实现跨系统间的业务交互提供服务,NGBOSS基于SOA进行电子渠道接口协议设计,支持SOAP v1.1协议和基于Web Services的HTTP协议传输,提供URL使用Web方式实时提供服务。核心系统NGCRM提供使用基于XML的语言接口定义文件(WSDL)供电子渠道下载。

基于SOA技术的电子渠道接口协议实现了核心的NGCRM系统和异构的平台之间架构上的松耦合,核心系统NGCRM在协议升级时只需要更新WSDL文件,平台可以在此基础上实现对服务的无缝调用;而平台只要按照语言接口定义文件(WSDL)约定调用服务即可,平台内部的演进改造与接口调用无关。

4 NGBOSS电子渠道接口协议体系实施

的效果

基于SOA电子渠道接口协议为广东移动产品在电子渠道的超市化运营提供了技术保障。NGCRM和电子渠道互相协调,使得产品管理、产品上架、产品销售、产品算费等产品生命周期全流程做到了全配置化,产品实现了超市化运营。

电子渠道和NGCRM协调实现产品超市化运营的流程如图2所示。

在产品管理和上架方面,CRM产品配置服务中心是企业产品数据创建和变更的唯一入口。它向电子渠道后台管理提品创建、变更和产品上架服务,图片、Flash等产品富媒体描述通过CRM产品配置中心数据库向电子渠道产品库同步数据。

电子渠道作为和客户的直接接触点,设计用户界面对产品进行展示,并且在电子渠道上完成产品浏览和购物等相关操作。

用户提交订单后,NGCRM负责后台面向客户产品订购的端到端流程,负责维护和处理CRM订单的开通,并负责维护交易的完整性;向电子渠道用户提供订单流程查询和订单变更功能。

NGCRM管理所有产品的订购关系,并向BOSS的计费系统同步订购关系。实现由产品展示、订单处理到后台计费的全业务流程。

可见,在这种架构下,电子渠道只要专注于提供便捷友好的用户界面即可,至于产品管理和订单处理、计费环境的复杂业务逻辑能力已被NGBOSS承载并封装在开放的标准接口中提供给异构的电子渠道调用,加之前后端系统的协调就实现了产品的超市化运营。

参考文献:

接口协议例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

作为一种网络通用语言,网络通信协议是指为连接不同操作系统和不同硬件体系结构的互联网络引提供的通信支持。其从逻辑上将网络进行7层划分,各层都具备路由器、交换机等相应的物理设备。在电气监控系统内IEC60870―5―103、IEC60870―5―104等为主要的网络通信协议类型,具体如下:

1、IEC60870―5―103协议。作为国际电工委员会制定的继电保护设备信息接口规范,IEC60870―5―103协议可在通信前置机和继电保护装置间的信号传输中充分应用。该协议主要选取主从―对多的非平衡传输方式,主站为通信前置机,从站为继电保护装置,每秒9600bit为标准传输速率,格式报文形式主要分为2种:固定帧长报文、可变帧长报文。其表述的2类信息传输方式为按照相应规定运用的服务数据单位与为标准化报文传输没有涵盖的全部可能应用过程,或全部可能信息利用通用分类服务传输。

2、IEC60870―5―104协议。在IEC60870―5―103基础上,国际电工委员会为满足网络运输又进行了IEC60870―5―104远动通信协议的制定。其不仅能够在集控中心与变电站、调度端进行全面运用,还能在变电站内的通信网加以合理运用。一般选取RFC2200协议作为该协议物理层、链路层等主要协议。作为标准TCP/IP协议子集,RFC2200可使IEC60870―5―104协议应用于TCP/IP协议的高带宽网络传输。与其他协议相比,IEC60870―5―104协议具有良好实时性、可靠性等优势,且能够进行大流量数据传输,为信息扩展提供便利。

二、网络通信协议在电气监控系统中的应用

在科技快速发展的今天,电气监控系统愈加完善,将网络通信协议合理应用于电气监控系统,对提升电气监控系统实时性、可靠性具有至关重要的作用,为此,本文以优化其应用性能为例对网络通信协议在电气监控系统中的应用进行了分析与探究。

1、实时性优化应用

电气监控系统实时性提升的方式较多,一般分为2大类:升级电气监控系统硬件、优化软件算法。根据工作需求,可通过软件优化网络通信协议,以此达到提高电气监控系统实时性的目的。

首先,IEC60870―5―103协议为例分析。光纤接口、EIA RS485接口为IEC60870―5―103协议电气的主要接口类型。光纤传输具有良好抗干扰能力及较快传输速度。在相同变电站或距离较短情况下继电保护装置和监控系统的两种接口传输速度基本一致。在通信链路拓扑方面两种接口一致,基于此,两种接口具有相同分析方式。本文将EIA RS485接口作为分析研究重点,具体内容如下:

作为三线制半双工接口,EIA RS485接口在同一时间点上只能接收、发送信号,但不能同时进行接收、发送操作。一般选取图1作为通信拓扑结构。通信权可由EIA RS485总线上并联的3个继电保护装置依次取得,依次将数据传送给通信前置机。继电保护装置数据向通信前置机传送的快慢,由通信权时间间隔的长短加以确定。但电气出现大面积故障的情况下,继电保护装置极易出现大量变位信号。如一个继电保护装置进行5个遥信信号上传,完成此5个变位遥信信号传输需20帧以上报文。

其次,IEC60870―5―104协议为例分析。以太网传输为IEC60870―5―104协议的主要形式,平衡传输全双工接口为以太网RJ45接口类型。对该协议实时性造成影响的主要因素包含2点,第一以太网的传输性能,对其起决定作用的因素为网络拓扑结构及以太网带宽;第二,该协议报文信号携带效率。根据笔者工作性质,为提升电气监控系统网络通信协议性能,本文以优化提升IEC60870―5―104协议报文信号携带效率为主进行分析。本协议传输数据以I格式帧为主。该协议规定ASDU(一个)在249字节以下,可进行一个火一组信号传输。应用于现有监控系统的IEC60870―5―104协议,I格式帧(一个)旺旺只进行一个变位遥信信号传输。为提高信号传输信号,需对I格式帧长度进行有效增加。

2、可靠性优化应用

利用通信前置机、数据服务器、远动机等设备的冗余配置及通信网络冗余配置可实现电气监控系统可靠性。在具体应用中,硬件即便冗余配置,但却存在冗余设备无扰无缝切换等问题。为达到网络通信协议优化运用,需提升通信前置机冗余切换、通信网络冗余切换的可靠性,进而达到电气监控系统可靠性提升的目的。

(1)将EIA RS485接口应用于IEC60870―5―103协议时,EIA RS485接口一个的情况下主机只能有一台,也就是说EIA RS485接口一个情况下2台通信前置机无法利用该接口将报文发送给一台继电保护装置。为对该协议传输可靠性进行有效提升,需并接2台通信前置机的全部EIA RS485接口。要求位于工作状态的通信前置机为1台,位于热备状态的通信前置机为1台。如工作状态前置机内随意一个EIA RS485接口通信中断被热备状态通信前置机检测出来后,热备状态前置机可将此EIA RS485接口主机地位占据,利用此EIA RS485接口将报文发送给继电保护装置。该情况下,工作状态通信前置机需将此EIA RS485接口主机地位抛弃,进而达到IEC60870―5―103协议双机热备接口切换。

(2)通信前置机、数据服务器、远动机与以太网冗余配置为现有监控系统的主要构成部分。冗余配置可对信号传输可靠性有效提升。但现阶段最常见的双机双网切换机制为“硬切换”,也就是说一般情况下冗余的2台通信前置机内利用冗余通信网络内一条与运动机或服务器进行通信的只有一台。如前置机正常运行时如出现故障或通信网络中断,可向冗余的另一台通信前置机进行通信切换。但其存有诸多问题,如只能利用通信前置机内部软件对通信前置机切换、通信网络切换进行判断,通信在切换过程中为中断情况,不能实现无扰连续切换。