時間: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.若甲方在畢業后_________年到期(至_________年_________月_________日)仍未落實工作單位,乙方按上級有關部門的規定,為甲方辦理戶口和檔案遷回其入學前戶籍所在地的手續。
本協議一式_________份,甲、乙雙方各執_________份。
甲方(簽字):_________乙方(蓋章):_________大學