前言:中文期刊網精心挑選了接口協議范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
接口協議范文1
關鍵詞:PS/2接口;串行通訊;單片機;鍵盤;CD4052
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
}
接口協議范文2
前言
單片機系統中常常需要具備與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的傳輸速率,并且性能穩定可靠。
如果應用EPP1.9標準,硬件電路不用變動,軟件中可以省略對nWait進行判斷的環節,速率能接近2MB/s。
接口協議范文3
乙方:_________
根據《中華人民共和國合同法》及其他相關法律、法規之規定,在平等、自愿、協商一致基礎上,就乙方委托甲方安排進出口貨運事宜相關費用的結算達成協議如下:
第一條 相關定義
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.本協議一式兩份,效力相同,雙方各持一份,自簽訂日起生效。
第九條 其他雙方協議的條款_________。
甲方(蓋章):_________乙方(蓋章):_________
接口協議范文4
【Abstract】In view of the near distance and tight time in the spaceflight field, a remote collaborative interface software for aerospace is proposed, which can meet the requirements of remote office cooperative testing by using packet identification technology.
【P鍵詞】遠程協同;接口軟件;航天
【Keywords】remote cooperative;interface software;space flight
【中圖分類號】F407.5 【文獻標志碼】A 【文章編號】1673-1069(2017)06-0174-02
1 引言
隨著信息科技的飛速發展,遠程協同辦公的工作模式已逐漸影響到航空、航天、能源、電力等工業領域的設計、生產和測試等工作,其可以有效地規避地理距離的限制,促使行業向精確化、智能化、自動化的方向發展,
當前,航天領域的協同測試主要應用于發射場內,其特點為距離較近,采用網絡方式傳輸測試數據,并在終端瀏覽微機上顯示,從而實現協同測試。
這種方式的局限性在于,設計部門只能在測試現場對測試數據進行分析,人員保障力度小、時間緊迫、人員壓力大等特點都可能影響對實驗結果的分析。而如果將數據實時傳回設計單位進行詳細分析,則需要對網絡通信負荷等方面做大量工作。
為此,如果能夠實現發射場測試期間的辦公協同,測試完成后發射場和設計部門可以立即共享試驗數據,那么將大大促進前后方的溝通和協同,提高型號的研制和試驗效率,減少試驗成本,緩解人員緊張的壓力。
本文介紹了一種基于遠程協同的接口軟件的設計與實現,可用于將試驗數據傳輸至辦公系統內的數據管理系統,實現前后方對試驗數據的共享。
2 對遠程協同接口軟件的要求
研究如何將測試進程和測試數據保存為可輕易識別的信息將是十分有必要的,這樣可以較為簡單地在科研生產區實現對這些數據的共享。因此本文首先提出對試驗數據管理系統的功能和使用要求。
2.1與試驗現場數據管理和應用軟件使用方式統一
目前在試驗現場,地面測發控測試數據的管理和應用與遙測數據的管理和判讀等功能是分開的,并且這些數據之間的定義存在差異。如在后方實現測試和遙測數據的管理和應用功能,需要考慮與試驗現場應用軟件的使用和操作的一致性,以便于系統設計人員的使用和操作,防止分析結果不同導致的系統不可行性。
2.2 與發射場的數據接口要求
發射場測試數據是測試的重要數據資源,做好管理和分析工作非常重要,因此接口軟件應充分考慮與發射場數據的接口。
2.3 與遠程協同故障診斷功能接口
實現遠程協同故障診斷,可充分利用試驗后方的專家資源和試驗條件,從而實現對試驗現場故障的快速診斷定位及處理。
3 接口軟件數據設計
為實現測試數據與部署于科研生產區的數據管理系統之間格式兼容、數據共享、統一管理的需求,遠程協同接口軟件將測試數據導出保存為數據管理系統可認知的格式,從而達成數據共享、統一管理的目的。
3.1 數據接口和工作流程
遠程協同接口軟件的對外接口主要為系統數據庫,作為數據源提供試驗數據。同時由于試驗任務要求的變化,參數全集也可能因試驗不同而改變,因此遠程協同接口軟件還應獲取對應試驗的參數信息。
根據參數信息從數據庫中獲取數據后,需要按照固定格式將數據存儲,并與相關說明文件打包,形成單次試驗的數據文件包。
最后,將數據文件包導入科研生產區內的數據管理系統,即可實現遠程辦公協同的試驗數據分析與判讀工作。
3.2 數據包格式
接口軟件生成的數據包包含了試驗說明文件和數據文件,試驗說明文件內容包括試驗基本信息、實例參數信息和數據文件格式信息,其中實例參數信息可以看作包內各數據文件的索引,通過遍歷試驗說明文件內實例參數的信息,即可獲得相應的試驗。試驗實例的各類數據與數據包文件的對應關系如圖1所示。
試驗說明文件的具體內容為:①試驗基本信息,指一次試驗的基本屬性信息;②試驗實例參數信息,指一次試驗中指揮指令、測試項目、測試狀態、測試參數等的屬性定義;③數據文件格式信息,指試驗測試數據文件的具體格式信息;④測試數據信息,指具體的測試數據。
上述前三部分數據在試驗說明文件info.xml中說明,第四部分數據填寫在對應的數據文件中。
3.3 試驗說明文件內容
試驗說明文件中最重要的信息為實例參數信息。該關鍵結點以數據表號為索引,除了明確數據的類型、所屬系統以及參數詳細列表外,還要與填寫對應數據的文件相關聯。通過遍歷參數信息,就可以按照表號順序找到存儲對應數據的數據文件。
3.4 數據文件內容
根據數據的不同類型,數據文件的格式也各不相同,例如狀態量數據文件只包含參數號和狀態值,而模擬量數據文件可以包含多個數據的浮點值及是否超差等信息。
4 接口軟件實現設計
4.1 軟件層次設計
軟件基于對話框程序實現,分為三層結構:界面顯示層、業務邏輯層和數據庫訪問層。細分又可以分為六個模塊:人機界面模塊,數據庫訪問模塊,xml文件讀取寫入模塊、生成txt文件模塊、文件壓縮模塊和日志記錄模塊。
4.2 軟件流程設計
在軟件內部,首先由xml文件讀取寫入模塊讀取軟件自身配置,連接數據庫,初始化人機界面,根據用戶輸入更新界面,讀取系統軟件對應版本的參數定義配置文件,生成試驗說明文件info.xml和對應試驗數據的txt文件,最后對文件夾內容進行壓縮打包生成數據包。日志記錄模塊在整個軟件運行過程中全程進行顯示和記錄。
此外,為了方便使用,軟件還應提供根據試驗時間、試驗類別等不同屬性信息檢索試驗實例的功能,方便大量試驗后迅速導出所需試驗數據。
5 后續工作
5.1 不同型號的適應性
對于不同型號,數據庫訪問模塊會根據型號數據庫表結構的不同有所區別,需要根據不同的數據庫類型和存儲格式進行修改,寫入/讀取xml文件模塊和生成txt文件模塊需要根據不同需求進行修改,其他模塊基本不需要進行適應性更改。
因此,通過研究各型號數據存儲方式,可以將接口軟件向通用化方向發展,使之適合不同型號的應用。
5.2 遠程協同的實時性
本文描述的接口軟件適用于非實時遠程協同工作模式。由于測試網絡與科研生產區網絡間有物理隔離,因此目前只能采用文件拷貝的形式進行數據傳遞。進一步的發展應向實時數據傳輸方向靠攏,這對數據的可靠性和保密性又將提出新的要求。
接口協議范文5
關鍵詞:大口徑天然氣管道;泄漏;應急措施;微正壓焊接工藝
鄂爾多斯盆地大牛地氣田某集氣干線(L360)為φ508×7.1,設計壓力為6.3MPa,設計輸氣量為15×108m3/d,該干線連接的集氣站共有12座之多。2013年5月因機械事故導致該埋地管線出現兩個2.5cm×4cm的泄漏孔洞,幸運的是有關單位人員及時搶險,立即啟動應急預案,經過對比L360鋼和20#鋼的化學成分,充分了解焊縫的應力情況,采用微正壓焊接工藝的修補方案,該大口徑天然氣管道泄漏的重大險情得以避免且經濟損失也較小。天然氣泄漏,后果是非常嚴重的,必須嚴加防范。一旦發現泄漏,必須在最短的時間內堵漏。采取何種措施與方法最為有效,時間最短,效果最好,歷來都是被關注的關鍵課題與技術。
目前我國天然氣管道事業發展迅猛,管道泄漏防范與處置技術必然會愈加重視,以上述搶險事故為例,探討天然氣管道泄漏實用的處置方法、破損部位的修補工藝,總結其經驗教訓,這具有十分重要的作用與意義。
1 管道穿孔和機械損傷后搶險的習慣做法
我國石油行業中老的油氣集輸管道一般為10#或20#鋼材,設計壓力一般為1.6MPa以下。這些管道在出現穿孔和機械損傷時,常采用的處理方法是將主管道停輸并進行清管作業,達到可以焊接動火條件后進行打“補丁”焊接處理。示意圖如圖1所示。
管道打“補丁”堵漏示意圖 管道“打卡子”方式堵漏示意圖
圖1 圖2
在難以停輸的情況下,采用“打卡子”方式堵漏,示意圖如圖2所示。依靠螺母、螺栓對橡膠墊的足夠擠壓將漏氣的孔洞密封住。
2 L360φ508管線出現險情時的應急措施
2.1 立即啟動應急預案。該天然氣管道瞬間泄漏時其運行壓力5.2MPa,幸運的是沒有形成火花引燃天然氣。有關單位立即啟動了應急預案,疏散施工人員,封鎖交通路口,并在下風口500m外拉起警戒線,關斷漏點上下游管道閥門,放空管道內天然氣,并及時調來了消防車。
2.2 及時了解管道破損狀況,防止火花形成而引起現場爆炸等次生事故。管線破損部位如何修補才是必須要關注的關鍵課題。首先派兩名穿戴好正壓呼吸器的搶險人員到事故地點進行實地考察。此處管道埋深約1.6m,推土機前斗六齒中的兩齒插入管道內, 兩齒周圍管壁傷口內凹,沒有開裂,這點證明了L360管材較好的抗撕裂性能,如圖3。推土機撤離時,為防止在漏點處齒與管壁引起火花,派消防車采用噴淋加以防護。
圖3
2.3 核算焊縫的應力情況,研判修補方案。當用圖1打“補丁”方式,采用E6010焊條進行補焊時,熔焊后焊縫的屈服強度σb= 450MPa,焊縫的抗拉強度σs=520MPa。應力分析如圖4和圖5,由應力分析可知,“補丁”的抗拉應力σ1= 94.1MPa,抗彎曲應力σ2=2689 MPa,σ2>σb。工程經驗顯示,“補丁”越大,穩定性越差,越容易開裂。設計規范也不允許此種補焊方式。故此方案不可行;由焊條 E6010化學成分可知,采用圖2打“卡子”的方式,靠兩根螺栓對橡膠墊的擠壓所產生的壓力封住管內5.5MPa下的天然氣亦是不可能的和不可行的。
圖4 圖5 應力分析單元
3 修補方法
從L360鋼和20#鋼的化學成分可以看到兩種鋼的含碳量上限一致,均為0.22%,說明鋼脆性相近。硅(Si)的最大值L360為0.45%,20#鋼為0.37%,它能顯著提高鋼的彈性極限、屈服點和抗拉強度。說明L360鋼材比20#鋼的彈性性能和抗拉強度要高。錳(Mn)的最大值L360鋼為1.4%,20#鋼為0.65%,它在鋼材中可以提高鋼的常溫強度、硬度及耐磨性能,說明L360的常溫性能高于20#鋼材。適量的錳可以提高鋼材強度,消除硫、氧對鋼材的熱脆影響,改善鋼材熱加工性能,并改善鋼材的冷脆傾向。L360鋼材的抗拉強度為460~760MPa,20#鋼的抗拉強度為410~550Mpa,L360鋼材的抗拉強度范圍大小比20#鋼材高出50~210MPa。因此決定采用微正壓焊接工藝的修補方案。
參考設計規范中開口補強的方案進行搶險,利用庫存的Ф508×7.1管子包住受傷管道。經計算知Ф508管道外周長為1596mm,若用Ф508×7.1管子將其包裹,則處理后管道外周長應為1641mm。具體做法是:截兩段長1.1m的Ф508管子,將該兩段管子分別分為外弧長為809.5 mm和786.5mm不等的兩部分,利用L360較好的韌性,將外弧長809.5mm的這兩部分向Ф508管子沖壓,擴充內徑,并將四個邊緣倒坡口,處理達到焊接要求。在泄漏管道的天然氣放空壓力接近零時,點燃外泄天然氣,處理內凹傷口,防止影響將來管道的通球,并將原管道的外防腐層處理合格后,用已擴徑的兩部分管對傷口處進行包裹并滿焊。圖6為焊接后的照片。
圖6 采用微正壓焊接的修補方案焊接后的照片
4 結語
該大口徑的天然氣管道泄漏搶險方案,若利用建管道時余下的管道將受損管道整段換下來,更換管段長度約1m,此方案需要將管道內的天然氣放空,并需要利用阻燃氣體N2進行置換。置換段管道長度32km,需要氣態N2約12000m3,相當于液態N2約20m3。完成整個過程需要約2.5天時間,影響天然氣產量約1030×108m3,直接經濟損失約1600萬元。顯然此方案經濟損失是較大的亦是不可取的。本應急搶險措施共用時13小時,比其他可行方案節約時間約47小時,減少直接經濟損失約1174萬元。充分利用管材特性,方法簡單易行且符合現行設計施工規范,該大口徑的天然氣管道泄漏搶險修補方案無疑提供了一套因地制宜的實用方法。
接口協議范文6
關鍵詞:網關;物聯網;設施農業
在設施農業中應用物聯網技術,可以對設施農業進行升級,提高設施農業的現代化水平,實現智能農業,比如在遠程就可實時監控生產環境的溫濕度、光照等情況,可實現天窗開閉、風機運行和水簾降溫等程序的遠程控制或自動控制。在實施物聯網過程種也存在一些問題:1)在物聯網的三層架構體系中,包含傳感器的感知層的信息種類較大,比如有溫度、濕度、光照度、二氧化碳濃度等,傳感器的類型較多,它們的接口和協議也是多種多樣,比如模擬接口、RS485接口、ZigBee接口;2)不同類型的通信技術都只能各自組網,通信的接收端必須有對應通信發送端的接收器才能完成數據通信,因此控制中心的計算機需要連接不同的接收器接入不同的傳感器的網絡,還需要解析不同的協議;3)傳感器網絡的通信技術,比如Zigbee、RS485等屬于近距離通信,如果要傳輸數據到遠程服務器,就需要增加設備進行網絡轉換;4)大量傳感器接入到服務器,會增加服務器的負擔,需要更高性能的服務器。物聯網網關是連接感知層和網絡層的關鍵節點設備,是物聯網的重要設備,具有網絡轉換、協議轉換、數據交換等功能,使用物聯網網關可以簡化物聯網的設計和實施,可以解決上述問題。
1系統總體結構和功能配置
1.1系統結構和原理
本方案的物聯網網關,由上行通信接口、下行通信接口、主控模塊等部分組成(見圖1)。1)上行通信接口,連接遠程服務器(云端系統)、用戶終端,在硬件上主要包括上行通信模塊、接口電路,在軟件上主要包括模塊驅動程序、上行通信協議處理程序。2)下行通信接口,連接傳感器、控制器等設備終端,在硬件上主要包括下行通信模塊、接口電路,在軟件上主要包括模塊驅動程序、下行通信協議處理程序。3)主控模塊是網關的核心部分,在硬件上由高級單片機和外圍接口電路構成,在軟件上主要包括數據轉發程序、協議轉換程序等。上行接口主要是連接遠程服務,需要使用遠程通信技術,主要包括Internet通信、移動通信等。上行通信模塊主要包括用于接入Internet網絡的以太網通信模塊、WiFi通信模塊,用于接入移動通信網絡的GPRS通信模塊、4G通信模塊、NB-IOT通信模塊等。下行接口主要是連接傳感器和控制器,一般使用的是短距離通信技術,主要包括RS485、ZigBee、WiFi、LoRa等;而對于4~20mA等模擬量的設備,并不直接接入網關,需要一個變送器或采集器進行轉換,以數字通信的方式接入到網關。下行通信模塊主要包括RS485通信模塊、ZigBee通信模塊、WiFi通信模塊、Lora通信模塊等。主控模塊通過UART、SPI、I2C等接口和上行通信模塊、下行通信模塊連接,通信模塊由主控模塊進行配置和控制。網關的工作原理如下:網關通過WiFi或RS485等下行通信接口連接到傳感器終端或風機、遮陽等控制器,通過WiFi或以太網等上行通信接口接入到Internet網絡或局域網連接遠程服務器;服務器的數據或指令通過上行接口傳輸到主控模塊,主控模塊根據上行通信協議取出數據后,進行處理,根據下行協議重新打包,經下行通信接口轉發到傳感器終端、控制器;傳感器終端、控制器的數據,由下行接口上傳到主控模塊經處理后轉發到上行接口,傳輸到遠程服務器。在此過程中,網關完成了網絡轉換、協議轉換、數據轉發等功能。
1.2系統功能配置
本方案的網關功能配置如下:1)上行接口:具有1個WiFi接口、1個以太網接口,支持TCP/UDP、HTTP通信協議,采用Client工作模式,可通過上行接口連接遠程服務器。2)下行接口:具有1個RS485接口,半雙工、波特率可配置、主站工作模式,支持Modbus通信協議;具有1個WiFi接口,主站工作模式,支持TCP/UDP、Modbus通信協議,可通過下行接口接入傳感器或控制器。3)工作電壓:DC5V;4)指示燈:電源指示燈、通信指示燈、狀態指示燈。
2硬件和軟件的設計
本方案的網關采用模塊化設計,通信模塊直接選用市面上已有的通信模塊,需要根據選定的具體通信模塊設計接口電路、編寫模塊驅動程序。
2.1硬件設計
2.1.1主控模塊主控模塊以32位高級單片機STM32F407ZG為控制核心,該單片機使用3.3VDC工作電源,具有1024kB的flashROM、192kB的RAM,并支持通過FSMC接口擴展RAM,具有3個I2C接口、6個UART接口、2個SPI接口、1個SDIO接口,內部RTC模塊。
2.1.2上行通信接口上行通信模塊主要包括1個WiFi通信、1個以太網通信模塊。其中WiFi通信模塊使用ESP8266通信模塊,通過UART連接到主控模塊的UART3;以太網通信模塊使用W5500通信模塊,通過SPI連接到主控模塊的SPI2。
2.1.3下行通信接口下行通信模塊主要包括1個WiFi通信模塊、1個RS485通信模塊。其中WiFi通信模塊使用USR-WIFI232-XXX通信模塊,通過UART連接到主控模塊的UART2;RS485通信模塊使用MAX485通信模塊,連接到主控模塊的UART4。
2.1.4存儲、顯示部分主控模塊通過FSMC接口連接IS62WV51216擴展RAM,可存儲512k雙字節(1024kB)大小的數據,用于在協議處理、數據轉發過程的變量存儲;通過I2C接口I2C1連接EPROM存儲器24C02,可存儲256×8(2kbits)大小的數據,用于存儲配置參數;通過SDIO連接SD卡,用于存儲運行中產生的數據。網關具有1個電源指示燈、1個運行狀態指示燈、1個上行接口通信指示燈、1個下行接口通信指示燈,主控模塊通過4個IO口驅動4個LED燈。除了指示燈,沒有其他顯示器件,可通過調試串口或者上行接口查詢系統信息和狀態。主控模塊的UART1作為調試串口。
2.1.5電源部分電源部分使用外接5VDC穩壓電源,負載能力不小于10W。通過電源接口接入電路板,在電路板上通過LDO穩壓電路輸出3.3VDC穩壓電源作為工作電源。
2.2軟件設計
2.2.1軟件設計的主要內容和方案軟件設計主要包括:通信接口驅動程序、模塊的驅動程序、通信協議處理程序、配置程序、數據采集程序、數據轉發程序,完成通信接口接入、遠程連接、網絡轉換、協議轉換、數據轉發。由于RTOS實時操作系統在系統層已經實現了任務的調度,在多任務系統開發中比較有優勢,同時本方案的硬件支持運行RTOS,因此采用基于RTOS進行開發。
2.2.2軟件的層次結構采用分層結構進行軟件設計,軟件的結構從下到上分成:硬件驅動層、模塊驅動層、網絡通信層、應用層。硬件驅動層完成對硬件的配置和驅動,包括系統時鐘的配置、IO的配置、UART接口的驅動、SPI接口的驅動、I2C接口的驅動、FSMC接口的驅動等。模塊驅動層完成對通信模塊、存儲模塊等外接模塊的配置和驅動,包括上行接口中的WiFi通信模塊、以太網通信模塊的驅動,下行接口中的WiFi通信模塊、RS485通信模塊等的驅動,存儲模塊的驅動等。網絡通信層完成網絡連接和數據傳輸、協議的處理,包括RS485通信、TCP/UDP、HTTP、Modbus等。應用層完成業務功能,包括系統配置、協議轉換、數據轉發、信息采集、數據存儲等。
2.2.3任務的分配和調度系統使用了FREE—RTOS實時操作系統,在RTOS系統層采用分時調度的方式實現系統線程(簡稱線程)的切換。系統分配6個線程,各線程優先級一致,由RTOS系統分時調度,將各種業務定義成不同的業務任務(簡稱任務),每個線程執行一個或多個業務任務。線程1完成系統配置、系統監測、系統指示任務;線程2完成上行接口處理任務;線程3完成下行接口處理任務;線程4完成協議轉換、數據轉發任務;線程5完成數據存儲任務;線程6完成信息采集任務。由于各個線程是無限循環并且是并行執行的,為了對各個線程進行監測,取一個狀態字并為每個線程設定一個狀態位。每個線程在循環一輪都給對應的狀態位置位,線程1每隔100ms要對各個線程的狀態位進行檢測。如果所有線程對應的狀態位都置位,則清零狀態字并驅動狀態指示燈亮或滅。因此系統正常運行時,狀態指示燈是閃爍的。
3主要功能的設計
接入功能、數據轉發功能、協議轉換功能,是網關要實現的主要功能。
3.1上行接口的設計
上行接口主要是連接遠程服務,需要使用遠程通信技術,使用的通信協議是TCP/UDP,以及基于TCP/UDP的HTTP、Modbus等。TCP/UDP屬于傳輸層協議,由通信模塊實現,在模塊驅動層通過對模塊的配置,可以啟動相關功能,因此在硬件設計上,需要選擇支持TCP/UDP功能的通信模塊。本系統所用的上行通信模塊均支持TCP/UDP功能,其中WiFi通信模塊通過UART通信使用相應的AT指令進行配置,以太網通信模塊通過SPI通信配置模塊相應的寄存器進行配置。HTTP、Modbus等運行在TCP之上,屬于應用層協議,由主控模塊實現,通過協議處理程序完成。HTTP協議在Web應用中得到廣泛的應用;Modbus協議在工業領域廣泛應用,是工業電子設備之間常用的連接方式。通過上行接口,實現以下功能:1)使用的是HTTP協議對網關參數的配置和查詢:網關實現一個WebServer,可以處理HTTP協議的GET方法請求。通過瀏覽器打開配置頁面對參數進行查詢和配置,網關作為TCPServer,需要打開監聽端口。2)使用Modbus協議將傳感器數據傳輸到服務器:網關作為TCPClient連接到TCPServer,由服務器發起請求網關作為從設備響應數據。Modbus協議有專門的TCP格式,這里只是將TCP作為數據鏈路,報文使用的是Modbus-RTU格式。
3.2下行接口的設計
下行接口主要是連接傳感器、下級網關,包括1個WiFi接口、1個RS485接口。WiFi接口配置成AP模式,下級網關的上行WiFi以及采用WiFi通信的傳感器可以連接到到這個AP。在通信上,配置成TCPServer,打開監聽端口,下級網關、傳感器作為TCPClient連接到這個端口,使用TCP協議進行數據傳輸。由于RS485通信是半雙工的,模塊需要配置成主機模式,由網關發起通信。RS485通信的校驗位和波特率等參數設計成可配置以適應實際設備的通信參數。在往下行接口發送數據的時候,會發送到所有通過WiFi接口連接的傳感器、通過RS485接口連接的傳感器以及通過WiFi接口連接的下級網關。
3.3數據轉發和協議轉換功能的設計
數據轉發指的是將數據從下行接口轉發到上行接口,或將數據從上行接口轉發到下行接口。在轉發的過程中,由于兩個接口的通信協議不用,需要根據接收口的協議將數據接收讀取解析出來,經過一定的處理后,按發送口的通信協議重新打包發送,這個就是協議轉換。整個過程就是實現對數據的接收、解包、處理、封裝、轉發。網關采用多種可配置的模式實現對數據的轉發,運行的時候根據配置執行下列模式中的一個模式:模式1為直接透傳模式。運行此模式的時候,系統將上行接口的數據直接轉發到下行接口,由于下行接口有多個端口,數據將依次轉發到各個端口,下行接口的數據也依次直接轉發到上行接口。模式2為協議透傳模式。運行此模式的時候,會對收到的數據進行協議核對,符合Modbus協議格式的數據將被轉發,不符合的數據將在本地被處理:按其他協議處理或丟棄。
3.4級聯功能的設計
級聯功能可以給系統帶來靈活性,通過級聯功能可以實現:通信的中繼進而達到延長通信距離的功能;分級擴展進而達到擴大接入能力的功能;分組接入進而提高系統性能和簡化系統管理。本系統的級聯功能通過WiFi通信接口實現:本級網關的上行WiFi模塊打開STA模式,上級網關的下行WiFi模塊打開AP模式;本級網關的上行WiFi接入到上級網關的下行WiFi;上級網關把本機網關看成一個傳感器終端,本機網關把上級網關看成一個服務器;按正常的模式進行數據轉發和協議轉換。級聯之后的系統,只有一個頂級網關連接到服務器。從頂級網關看,所有的傳感器設備都是連接在本網關的下行WiFi接口上,可以把下級的級聯網關看成透明的。