前言:中文期刊网精心挑选了接口协议范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
接口协议范文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接口上,可以把下级的级联网关看成透明的。