时间:2023-03-01 16:21:01
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇接口协议范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。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
1PS/2接口标准的发展过程
随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBMPC/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键盘兼容,只是功能不同而已。
2PS/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.3PS/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)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。
3PS/2接口的嵌入式软件编程方法
PS/2设备主要用于产生同步时钟信号和读写数据。
3.1PS/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.2PS/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口。相应的发送子程序如下:
#defineDATAP00用P0.0做数据线
#defineCLKP01用P0.1做时钟线
#defineINHIBITP02用P0.2做CD4052的INH端
#definePORTRP1用P1口做读入口
#definePORTWP2用P2口做写出口可以实现64个自定义键
voidsend(ucharx)/***functionforsendacharda-ta***/
{
uchari,temp,char_temp;
bitflag_check=1;
INHIBIT=1;//disablestandardkeyboard
delay_ms(3);
temp=x;
for(i=0;i<8;i++)//findthenumberof1inthisucharxisoddornot
{
char_temp=temp&0x01;
if(char_temp==0x01)
{
flag_check=!flag_check;
}
temp=temp>>1;
}
CLK=1;//send1toP1thenreadP1
while(!CLK)//ifCLKislowwait
{
;
}
CLK=1;DATA=1;//send1toP1thenreadP1
if(CLK==1)
{
delay_us(30);//
}
if(CLK==1&&DATA==1)//senddata
{
DATA=0;//startbit0
delay_us(10);
CLK=0;
delay_us(5);//
temp=x;
for(i=0;i<8;i++)//send8bitsLSBfirst
{
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;//sendcheckbit
delay_us(5);
DATA=flag_check;
delay_us(10);
CLK=0;
delay_us(5)
CLK=1;//sendstopbit
delay_us(5);
DATA=1;
delayus10
CLK=0
delay_us(5);
CLK=1;
delay_us(30);
CLK=1;DATA=1;//send1toP1thenreadP1
if(CLK==1&&DATA==0)
{
return;//pcissendingdatatomcu,goto
receivingfunction
}
INHIBIT=0;//enablestandardkeyboard
接入网的概念是由传统的用户线发展起来的。近年来,由于电话业务的发展、新业务种类的增多、对线路带宽要求的提高以及各种新兴技术(特别是光纤通信技术)的发展,使得传统的用户线的概念逐渐发展成为接入网的概念。前几年,国际电信联盟(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分配大的数据结构。
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.
单片机系统中常常需要具备与PC机通信的功能,便于将单片机中的数据传送到PC机中用于统计分析处理;有时又需要将PC机中的数据装入单片机系统中,对单片机程序进行验证和调试。目前常用的通信方式是串行通信,但传输速率太低,以9600bps计算,传输1MB至少需要10min(分钟)以上。并行通信克服了串行通信传输速率低的缺点。标准并行口SPP(Standard Parallel Port)方式实现了由PC机向外设的单向传输,但实现PC机接收外设发送的数据则非常麻烦;而增强型并行口EPP(Enhanced Parallel Port)协议却很好地解决了这一问题,能够实现稳定的高速数据通信。
一、EPP接口协议介绍
EPP协议最初是由Intel、Xircom、Zenith三家公司联合提出的,于1994年在IEEE1284标准中。EPP协议有两个标准:EPP1.7和EPP1.9。与传统并行口Centronics标准利用软件实现握手不同,EPP接口协议通过硬件自动握手,能达到500KB/s~2MB/s的通信速率。
1.EPP引脚定义
EPP引脚定义如表1所列。
表1 EPP接口引脚定义
引脚号SPP信号EPP信号方 向说 明1StrobenWrite输出指示主机是向外设写(低电平)还是从外设读(高电平)2~9Data0~7Data07输入/输出双向数据总线10AckInterrupt输入下降沿向主机申请中断11BusynWait输入低电平表示外设准备好传输数据,高电平表示数传输完成12PaperOut/EndSpare输入空余线13SelectSpare输入空余线14AutofdnDStrb输出数据选通信号,低电平有效15Error/FaultnDStrb输入空余线16InitializeSpare输出初始化信号,低电平有效17Selected PrinternAStrb输出地址数据选通信号,低电平有效18~25GroundGroundGND地线2.EPP接口时序
EPP利用硬件自动握手实现主机与外设之间的高速双向数据传输,软件只须对相应端口寄存器进行读/写操作。
(1)EPP写操作时序如图1所示。
CPU实现向外设写数据的操作步骤如下:
①程序对EPP数据寄存器执行写操作;
②nWrite置低;
③CPU将有效数据送到数据总线上;
④nDStrb(nAStrb)变低(只要nWait为低);
⑤主机等待nWait变高,确认数据发送成功;
⑥主机等待nWait变高,确认数据发送成功;
⑦EPP写周期结束。
(2)EPP读操作时序如图2所示。
CPU实现从外设读数据的操作步骤如下:
①程序对相应EPP端口寄存器执行读操作;
②nDStrb(nAStrb)置低(如果nWait为低);
③主机等待nWait为高,确认数据发送成功;
④主机从并行口引脚读取数据;
⑤nDStrb(nAStrb)置高;
⑥EPP读操作周期结束。
3.EPP端口寄存器
EPP接口除了保留SPP的3个端口寄存器以外,还新增了5个端口寄存器,如表2所列。
表2
地 址端口名称方 向基地址+0SPP数据端口写基地址+1EPP状态端口读基地址+2EPP控制端口写基地址+3EPP地址端口读/写基地址+4EPP地址端口读/写基地址+5EPP数据端口读/写基地口+6未定义(32位传输)读/写基地址+7未定义(32位传输)读/写EPP状态端口寄存器
WAITINTRUSER1USER2USER3××TMOUTWAIT:Wait状态位(1有效);
INTR:中断请求状态位(1有效);
USER1~USER3:用户自定义;
TMOUT:保留(EPP1.7)超时标志位(EPP1.9)。
EPP控制端口寄存器。
××DIRIRQENASTRBINITDSTRBWRITEDIR:方向位(1输入,0输出);
IRQEN:中断使能位(1有效);
ASTRB:地址选通位(0有效);
INIT:初始化(1有效);
DSTRB:数据选通位(0有效);
WRITE:读/写状态位(0:写,1:读)。
读取接口状态和控制接口都只须对相应的端口寄存器进行操作。以初始化为例:
读操作初始化:outportb(port+2,0x24);
//port为SPP数据端口地址
写操作初始化:outportb(port+2,0x04);
//port+2为EPP控制端口地址
4.EPP1.7和EPP1.9
EPP接口最先有EPP1.7标准定义,由于硬件厂商的原因,EPP现有两个标准:EPP1.7和EPP1.9,可以在BIOS/外围设备/并行口(BIOS/Peripheral Setup/Parallel Port Mode)方式中进行设置。两者有如下不同点:
(1)EPP状态端口寄存器的最低位bit0,在EPP1.9中定义为TMOUT。在EPP操作时序中,如果PC机数据(地址)选通信号变低后,且在10μs时间内,外设未能将nWait置为低,则TMOUT置为1,表示延时。
(2)EPP1.9标准中,只有当nWait为低时,才能开始一个操作周期;但在EPP1.7中,无论nWait状态如何,nAstrb(nDstrb)都会被置低,从而开始一个新的数据(地址)操作周期。
二、EPP接口传输数据的一个实例
在某单片机系统中,须要将单片机系统中数据存储器的大量数据传输到PC机中进行分析处理。EPP接口(采用EPP1.7标准)硬件电路及软件流程图如图3~图5所示。
GAL译码电路方程式为/O1=/I1*/I2*/I3*I4*/I5,EPP接口选通地址为2000H。当单片机执行如下指令:
MOV DPTR,#2000H
MOVX @DPTR,A
就将寄存器A中的数据锁存到数据总线上,便于PC机利用EPP接口进行读操作。
C语言例程:
#define SPPDATA 0x0378 //定义各寄存器地址
#define SPPSTAT 0x0379
#define SPPCNTL 0x037A
#define EPPADDR 0x037B
#define EPPDATA 0x037C
#include<stdio.h>
FILE *fp;
Int data;
Long i;
int k;
fp=fopen(filename,"wb"); //打开要存储数据的文件
outportb(SPPCNTL,0x24);
//向控制端口发00100100代码,初始化为读操作模式for(i=0;i<524288;i++)
{
while(!((inportb(SPPSTAT))&0x80))
//查询是否发送完毕
{}
data=inportb(EPPDATA); //读数据
fputc(data,fp); //将数据存入文件
}
fclose(fp); //关闭文件
单片机汇编语言程序为:
FLAG1 BIT P1.7 ;标志位
FLAG2 BIT P3.4
STADD EQU 0000H ;要传输数据段的起始地址
NUM EQU FFFFH ;要传输数据端的字节个数
COMMUN:MOV DPTR,#STADD
COMM1:MOVX A,@DPTR
PUSH DPH
PUSH DPL
MOV DPTR,#EPP_CE
MOVX @DPTR,A
POP DPL
POP DPH
SETB FLAG1 ;将P1.7置高
CLR FLAG2 ;将P3.4置低
JB FLAG1,$;查询P1.7为低,即nDStrb为低,表示PC读操作已完成
SETB FLAG2 ;将P3.4置高
SETB FLAG1 ;将P1.7置高
INC DPTR
CJNE NUM,COMM1 ;循环NUM次
RET
实际应用该接口电路,能实现1MB/s的传输速率,并且性能稳定可靠。
在我们承担的《基于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)
《进出口经理人》:IEC 60601-1第三版已经在2012年6月1号在欧盟强制实施,这个标准涉及的产业或产品有哪些?较之于从前,这个标准在哪些方面做出了调整,在哪些方面提高了要求?
陈昭惠:IEC 60601-1第三版是针对医用电气设备和医用电气系统的通用标准,凡是出口医用电气设备和系统,以及部件和附件的企业,只要其目标市场包含欧盟国家,或产品需要CE认证,就需要符合欧盟的指令要求。
与IEC 60601-1第二版比较,第三版最大的调整是增加了风险管理的要求,同时把基本性能对医用电气设备安全性的影响也纳入到标准的范畴。这扩大了产品安全涵盖的范围,同时也给了企业更多的自由度来定义自己产品可接受的安全性。此外,新标准增加了机械安全的要求,增加了一些过去在美国标准里体现的对材料和元器件的要求。过去的并列标准IEC 60601-1-1和IEC 60601-1-4的条款,也融入IEC 60601-1第三版中。
IEC 60601-1第二版到第三版的转换,不仅涉及这一个标准,还涉及与IEC 60601-1相关的所有并列标准和专用标准,以及部分ISO标准。所有的并列标准和专用标准,以及部分ISO标准,都在根据IEC 60601-1第三版的结构进行更新。这是一个长期的过程,对于特定的产品,有些已经完成,比如超声设备,有些还在进行中,比如多参数监护仪,这也需要相关企业在近一段时期内密切关注相关标准的更新进展和转换期,以及时根据标准的要求重新评估现有产品和设计新产品。
要预留足够的时间
《进出口经理人》:对于中国企业而言,这个新法令的实施对中国企业在哪些方面提出了挑战,在哪些方面尚有待改善?
陈昭惠:由于国内的标准还没有同步转换,对于国内企业而言,一个产品可能要同时满足两个版本标准的要求。有时候两个版本的要求并不完全一致,比如说产品标签标志和电气隔离的要求,这就需要企业考虑如何处理这些有差异的要求。
国内企业虽然对第二版标准的理解已经较有基础。不过对于第三版标准,由于新引入了许多要求,企业应提供必要的资源,使员工能及时消化这些新的要求。第二版标准转到第三版标准是一个系统的过渡。企业要及时对相关标准更新情况进行跟踪,并根据跟踪结果制定产品的符合性评估计划。
《进出口经理人》:新法令实施的时间已经迫在眉睫,企业应该如何在规定时间内使产品完成IEC 60601-1第二版到符合第三版的过渡?
陈昭惠:虽然新标准的实施都有一段过渡期,不过企业应该在标准起草阶段,或是刚颁布阶段,就制定符合新标准的转换计划,其实这个标准的更新早在几年前就公布了,但可惜的是并不是所有的出口企业都认识到了它的急迫性和重要性,包括参加必要的培训,多与检测机构交流,以尽早找出产品的薄弱点,为检测预留一定的时间是完全必要的。初次进行第三版的检测过程中,难免会有意想不到的情况出现。预留足够的时间,可以避免因检测不能按期完成而造成交货的延误。
从供应链考虑,由于第三版标准充分考虑了部件和附件的符合性,企业需要敦促供应商尽快完成部件和附件的标准检测,以便能在整机进行检测时及时提供符合性的证据。
借助专业第三方达到符合性
《进出口经理人》:作为专业的第三方检测认证机构,贵司如何帮扶企业跨越这个障碍?
陈昭惠:T?V南德作为医疗器械产品专业的第三方检测认证机构,作为IEC60601标准委员会的委员,对标准的准确把握,丰富的检测经验和频繁的国际技术交流是我们服务于企业的基础,完整的检测能力使我们能应对小到体温计,大到CT和核磁共振的检测。
为了帮助企业跨越这个障碍,我们也设计了许多培训课程,例如风险管理ISO14971,第三版IEC 60601-1, 软件和功能安全IEC 60601-1/14章节和IEC 62304,电磁兼容性IEC 60601-1-2等。我们希望通过这些标准的培训,帮助企业正确理解标准,更好地应对变化。
此外第三版标准引入了对基础性能的安全要求,T?V南德早在多年前欧盟尚未强制要求时,就已经成立了医疗器械功能安全的专业团队,并开展了对那些高风险产品持T?V南德证书的客户进行相关评估。这些T?V S?D 的客户, 在这次标准转换中就赢得了时间,缩短了这次标准升级的周期。积累了丰富的经验,本地的授权加上强大的医疗器械功能安全国际团队的支持,已经帮助一些企业在这次标准升级中缩短了周期。
考虑到企业近期对检测培训需求的增长,我们及时通过增加人手,增加培训频次,经验交流会等以应对业务的增长。为保证服务质量,只有通过各项专业培训考试和实践的员工,才被允许独立为客户提供服务。依托本地化的员工,通过与国内检测机构交流,共享T?V南德的全球资源,能够通过一次检测而获得多种认证,最大限度地缩短企业在检测认证方面的时间。
《进出口经理人》:除了IEC 60601-1第三版,在医疗器械方面,欧盟还有哪些或哪种标准、法规是最值得关注的?贵司相应的服务项目是怎样的?
根据《中华人民共和国合同法》及其他相关法律、法规之规定,在平等、自愿、协商一致基础上,就乙方委托甲方安排进出口货运事宜相关费用的结算达成协议如下:
第一条 相关定义
1.费用结算单:指甲方为结算需要,向乙方出具的,载明应付费用及支付期限的任何形式的书面材料。
2.书面确认:指乙方及其分支机构或授权人员盖章或签字之任何形式的书面材料。
第二条 操作
乙方委托甲方从事下述服务。
1.在签发第三方的运输单证的情况下,作为乙方的货运人,为乙方向承运人或其人订舱,排载,制作单证,依据乙方的具体指示(参照每票托运单),从事拖车、场装报关、报检等,并代缴有关费用。
2.在甲方签发自己的运输单证时,向实际承运人订舱、向乙方签发运输单证,并根据乙方的指示(参照具体托运单)提取货柜、拖车、场装、报关、报检、并代缴相关费用。
3.办理进口货物货运业务(参照委托单证或相关单证)。
第三条 结算
甲方选择_________方式向乙方结算相关费用。
1.票结
1.1 乙方在委托甲方操作开始前,将空白支票或现金交给甲方,甲方必须出具收据。
1.2 甲方在每票货操作完毕后,从该支票或现金直接支取费用。
1.3 乙方支票空头或透支或预缴现金不足,应在甲方通知后立即补齐,并按逾期时间支付违约金。
1.4 非因甲方原因产生之超出结算期限的未结费用,乙方应于甲方通知后立即支付,并按逾期时间支付违约金。
1.5 甲方应于结算后立即出具发票给乙方。
2.月结
2.1 甲方于次月_________日之前提供前一个月的费用结算清单给乙方核对(乙方也可随时向甲方索要)。
2.2 乙方必须于_________日前对之进行核对,并以书面形式向甲方确认或异议,否则视为同意。
2.3 乙方对甲方出具的费用结算清单全部或部分有异议的,应于_________日前,就确认或没有异议的部分按时支付,不得拒付全部费用。
2.4 对于乙方有异议的全部或部分费用,甲方应立即与乙方协商,并于乙方书面异议的一周内重新制作费用结算清单给乙方。该新费用结算清单的交接,适用本第2款,第2.2项的规定。
2.5 对于上述应付费用,乙方若需要由本合同以外的第三人支付给甲方的,必须书面通知甲方,并对该应付款承担连带清偿责任。
2.6 甲方对乙方所付费用,应立即开具发票或收据给乙方。
2.7 甲方在代垫金额较大的情况下,有权要求乙方先行支付代垫费用。定期结算期内代垫费用的最高限额为,超出限额乙方必须先行支付甲方代垫的费用。
2.8 甲方保有应收费用的增补权。双方在结算后,发现尚有部分应计算的费用未结算的,甲方有权予以增补,乙方应在下一结算期间结清。乙方保有多付不应付费用的追索权,多付金额经双方确认后在下一个结算期抵扣。
第四条 担保措施
1.乙方同意,在其未能依本协议第二条,第三条规定支付甲方有关费用时,甲方有权留置其所占有的乙方本协议项下的标的货物。
2.乙方应于不少于两个月的期限内履行支付义务。该期限从甲方采取留置措施时开始计算。乙方逾期不履行的,甲方得以将留置物拍卖,变卖或与乙方协议折价,以其价款优先偿付甲方费用。留置物折价,拍卖,变卖后,其价款仍不足以偿付的,不足部分由甲方清偿。
3.乙方同意,在乙方结清相关费用后,甲方方将报关单证或退税核销单或提单等交给乙方,由此造成的任何损失乙方承担。
第五条 违约责任
1.乙方未依本协议向甲方支付费用,或支付费用不完整的,乙方必须从支付期满日起,按应付款向甲方每日支付违约金。
2.乙方无正当理由_________天不履行某一个月的全部费用或所欠费用超过全部应付费用的时,甲方可以解除协议并按上款要求违约金。
3.甲乙双方违反本协议造成对方损失的,按违约时的实际损失赔偿对方。
第六条 争议解决
1.本协议不尽之处,由双方协商解决或作补充商议。
2.双方协商不成的,一方可以向人民法院起诉。
第七条 协议的变更和解除
1.双方可以通过协议方式变更或解除本协议,但必须提前30天书面通知对方,并经对方书面同意。
2.除第六条第2款的情形外,任何一方依上款方式单方解除本协议,必须支付给对方人民币_________元违约金。
第八条 其他
1.本协议期限从_________至_________止。
2.本协议期满,双方无异议的,自动延续壹年。
3.本协议一式两份,效力相同,双方各持一份,自签订日起生效。
第九条 其他双方协议的条款_________。
近两年,国家促进企业转型、促进进出口平衡的政策与措施密集出台,从长远看,这些政策、措施是有利的,也是必要的。但“用药”可能猛了些。建议国家在外贸政策调控方面注意以下几点:
(一)在近一两年内,除非迫不得己,不出台导致出口企业成本费用普遍、大幅度上升的重大政策、措施;
(二)对必须出台的调控政策、措施,尽可能采用“渐进”方式;
(三)关注政策的叠加效应和累积效应。尽量避免影响出口企业成本上升的多项政策措施短期内密集出台或某项政策措施频繁调整;
(四)对调控政策、措施及时进行跟踪,并加以完善,尽可能避免“误伤”企业。
二、加大税收政策支持力度 (一)尽快扩大消费型增值税实施范围。实施消费型增值税制度,有利于提高企业技术革新的积极性,改变目前我国出口产品中含有增值税的状况,提升我国出口产品的国际竞争力。建议国家尽快将“两高一资”型以外的出口企业作为扩大试行消费型增值税的行业。
(二)进一步完善出口退税政策。一是继续适当调高一部分劳动密集型产品特别是高附加值劳动密集型产品的出口退税税率。近期国家回调了部分纺织、服装的出口退税率,得到了普遍的认同。建议适当调高其他劳动密集型产品的退税率,提高鼓励出口的机械、电子等产品的退税率,对纺织、服装产品的出口退税率亦可再适当提高1~2个百分点。二是对去年大面积下调退税的政策,根据近一年来运行的实际情况和企业的反馈,对一些“误伤”企业的环节加以调整。三是修改新成立的生产型出口企业在出口一年后才退还前一年内应退税款的规定。
(三)对中小出口企业实行减税政策。在近一两年内,对“两高一资”以外的中小出口企业在现行税率基础上减半征收企业所得税;对实行核定征收所得税的企业下调应税所得率;对亏损或微利出口企业,减征或停征城镇土地使用税、房产税等地方税收。
(四)对进出口企业从各级财政获得的专项扶持促进资金免征企业所得税。将企业从财政获得的各种专项资金作为纳税收入征收企业所得税,实质上削弱了财政支持的力度和效果。建议商务部与财政部、国家税务总局协调,至少在近两年内对财政支持外贸企业的各种专项资金免征企业所得税。
三、进一步加大财政支持力度
加大财政对外贸出口的支持力度,应着眼于两个方面。从长远看,是支持企业加快转型升级,从当前看,是帮助企业渡过难关。从支持方式看,一方面要加大对企业的直接支持;另一方面要对有关部门、单位为外贸企业提供特定服务的活动加大支持力度,而这些特定的服务或有助于出口企业直接或间接降低成本,或有助于出口企业加快转型升级的步伐,增强消化高成本的能力。
(一)进一步拓展支持内容。在保留或适当调整现有财政扶持政策的基础上,增设专项资金或在有关专项资金中增加支持内容:
1.设立公平贸易活动支持资金,用于对参与公平贸易活动的企业发生的相关费用给予补贴。
2.设立应对国外技术性贸易措施的专项资金,以降低企业应对国外技术性贸易措施的成本。该项资金主要用于:对科研机构、行业内的龙头企业开展具有普遍应用价值的技术攻关费用给予补助;对一些出口重点行业、重点地区为应对技术性贸易措施而设立的检验检测机构的开办费用、设备购置费用给予补贴;对部分检验检测费用水平较高的检验检测项目给予适当补助;对制订具有实际应用、推广价值的国家标准、行业标准的项目给予支持;对采用国际标准生产出口产品的企业给予鼓励。
3.支持外经贸公共信息化建设。对各级商务主管部门、有关行业协会(商会),建设外经贸公共信息平台给予支持,使出口企业能够通过外经贸公共信息平台及时了解国家相关的政策、措施,了解国内外市场信息,了解国际贸易动态,提升应对政策环境、国际贸易环境变化的能力,减少相关支出。
4.支持各级外经贸主管部门牵头开展各类政策宣传、业务培训。在近两年内,可采用由地(市)、县两级商务主管部门牵头,与各涉外业务部门协调,围绕转型升级等方面统一组织涉外经济政策的宣传、讲解,开展各类业务培训。所有培训类活动一律免收培训费用,所需培训费用由本级财政安排专项资金。
5.支持电子商务的发展。运用电子商务开展国际贸易可以有效地减少中间环节,简化贸易流程,降低商务成本。国家对全国性、地区性、行业性的电子商务平台的建设给予资金支持。鼓励企业采取不同模式积极开展电子商务,取消中小企业国际市场开拓资金对企业通过互联网开展国际市场宣传的项目不予支持的规定,对企业通过第三方电子商务平台开展国际市场拓展的活动给予支持。
6.支持中小出口企业多渠道、多方式筹集资金,降低融资成本。各级政府设立支持中小出口企业融资的专项资金,可分别用于:对地方为解决中小企业融资成立的担保基金、应急互助基金等提供铺底资金;对中小出口企业通过担保公司提供担保取得贷款的担保费用给予补贴;对中小出口企业从小额贷款公司、村镇银行、互质的基金等非银行渠道取得的贷款给予适当的利息补贴;对企业开展贸易融资的费用给予一定的补贴。
7.设立劳动密集型企业社会保障补贴资金。为做到既保护劳动者合法权益又适当缓解劳动密集型企业劳动力成本上升的压力,可考虑在近期内对符合一定标准的高度劳动密集型企业为职工缴纳社会保障费用的支出给予适当补贴,以鼓励企业在目前的困难时期保持员工队伍的基本稳定,缓解社会就业压力。
8.支持涉外监管部门开展贸易便利化建设。海关、商检等涉及外贸出口的监管部门的工作方式、手段,直接影响出口企业的成本费用和通关效率。如最近国家检验检疫部门决定对进出口货物实行直通放行,此项措施每年可为出口行业节约成本200亿元左右。在新形势下,口岸查验单位亟待加快改革、转变监管方式、创新监管手段、提高办事效率,为外贸出口提供更便利、更经济的环境。对于口岸查验部门为提高贸易便利化程度而实施的改革,财政应给予资金支持。
(二)加大中小企业国际市场开拓资金的支持力度。中小企业国际市场开拓资金是目前扶持内容最为广泛、受益企业最多的财政扶持政策,但该项资金的总量及对单个项目支持的标准偏低。建议较大幅度地追加2008年资金总规模,在安排2009年支持计划时也应保持一定的增幅;同时调高到新兴市场参加展览、各类认证、开展国际市场宣传推介等项目的支持比例或限额。三是提高支持的时效性。通过下放审批权限、缩短相关部门操作时间等措施,彻底改变目前操作周期过长的状况。
四、减、免、停收涉及外贸出口的相关费用
最大限度地减少出口企业在出口过程中的各种费用支出,对处于高成本重压下的出口企业无疑是雪中送炭。
(一)对亏损或微利的劳动密集型企业及其他各类中小出口企业,地方政府可考虑在两年内减征或免征地方性基金、费用。
(二)商务、海关、商检、外管等部门涉及出口企业的行政事业性收费,除体现国家宏观调控政策和对企业违法违规处罚的收费外,在两年内一律暂停收取,由此给这些部门非税收入带来的影响,由各级财政部门通过调整其部门预算收入指标加以解决。
甲方因毕业时未落实工作单位,委托乙方保管其户口和档案,甲、乙双方就有关事项商定如下:
一、甲方承担的责任与义务
1.甲方毕业时必须按有关规定及时办理离校手续。
2.甲方毕业后没有学籍,不再隶属于乙方,不能享受在校生的权利和待遇,因刑事案件、民事纠纷等引起的法律责任、经济责任及后果完全由甲方本人承担。
3.甲方在签订本协议之前,须办理_________年医疗保险和人身意外伤害保险。
4.甲方在户口和档案保管在乙方期间,每隔_________个月须与乙方保管档案的毕业生就业指导中心联系一次,告知就业进展情况。
5.甲方若在毕业后_________年内落实工作单位的,须及时与乙方毕业生就业指导中心约定时间,来校办理派遣及户口、档案迁移手续。
6.甲方若_________年到期(至_________年_________月_________日)仍未落实工作单位,必须来校办理户口,档案迁移手续。否则,如果户口、档案迁移中出现问题,责任由甲方承担。
二、乙方承担的责任与义务
1.乙方接受甲方委托,在甲方毕业后_________年内保管甲方的户口和档案,乙方免收档案保管服务费用。
2.乙方可为甲方提供就业指导和服务。甲方可参加乙方举办的招聘活动,查询用人单位需求信息、咨询有关就业方面的问题。
3.乙方可为甲方开具与就业有关的证明。与户籍有关的证明,由乙方保卫处或辖区派出所按有关规定办理;与档案有关的证明,由乙方保管档案的学院办理,必要时由乙方相关职能部门认证签章。办理相关证明的,乙方可按有关文件规定收费,乙方不为甲方开具与就业无关的证明。
4.若甲方在毕业后_________年内落实工作单位或本人要求回户籍所在地就业,乙方在上级有关部门规定的时间内为其办理《就业报到证》及户口,档案迁移手续。
5.若甲方在毕业后_________年到期(至_________年_________月_________日)仍未落实工作单位,乙方按上级有关部门的规定,为甲方办理户口和档案迁回其入学前户籍所在地的手续。
本协议一式_________份,甲、乙双方各执_________份。
甲方(签字):_________乙方(盖章):_________大学