前言:中文期刊网精心挑选了接口协议范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
接口协议范文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
关键词:加工贸易;报关单;正确填写;常见错误
进出口报关单是企业办理货物进出境的必要单据,正确、完整地填写进出口报关单不仅关系到国家的相关政策制度能否落实,也关系到企业能否顺利通关。但在实际报关中,由于报关单据的填写内容繁多且复杂,还要根据货物及企业的不同性质填写,经常会出现许多不符合规定的报关单据, 尤其以加工贸易方式下的报关单填写问题最多。本文力图解析加工贸易项下企业报关单的填写的常见错误及注意事项,以期提高企业的通关效率。
一、备案号栏的填写
拥有加工贸易进出口经营权的企业在料件进口之前必须到海关进行加工贸易手册备案,取得案备号。备案号指的就是企业在海关电子口岸录入备案资料库和完成手册备案资料录入后,经海关审核无误,下发给加工贸易企业手册备案当中的编号。或者是拥有加工贸易进出口经营权的企业在海关办理征、减、免税审批备案手续时,海关给予的《进出口货物征免税证明》或其他有关备案审批文件的编号。如非加工贸易,本栏免于填报。要注意的是,如果在一批进出口货物中,同时有备案商品和非备案商品,要分开填写报关单,不能填在一个报关单中。例如:某公司从马来西亚进口纯棉布8000米,其中5000米用于加工成品西服后再出口,海关备案手册号为B04025452111,而另外的3 000米用于加工成品后转国内销售。我们可以看出,这批货物中的5000米是来料加工,所以报关单中备案号栏应填写B04025452111,但剩余3000米纯棉布则属于一般贸易,应按照一般货物进出口填写报关单。
但需要指出的是,加工贸易的成品并不都是用于出口,在某种情况下,加工贸易成品货物可经过一定审批,凭海关签发的《征免税证明》转为享受减免税优惠的进口货物。这时要注意,加工贸易企业算做出口,要按照出口填制报关单,备案号栏要填写其《加工贸易手册》编号;而购买该成品的企业视为进口,要填制进口报关单,备案号栏填写《征免税证明》编号。例如,广州某企业来料加工贸易生产搅拌机,来料加工手册编号为:B11004523141,后来该批搅拌机被福州某家企业作为投资设备购买,其《征免税证明》编号为Z01004B01065,对广州这家企业而言,视为出口,要在其出口报关单的备案号栏填写B11004523141,对于福州这家企业则视为进口,其进口报关单的备案号栏要填写Z01004B01065。
二、运输方式栏的填写
报关当中的运输方式栏填写较为简单,主要按照实际进出口时选用的运输工具填写,本文主要强调一下海关规定的特殊运输方式,比如无实际进出境时运输方式的填写。在加工贸易项下,在海关特殊监管区域、保税监管场所之间货物的流动,即便没有发生实际进出境,但视同进出口,也要填制相应的进出口报关单。如境内非保税加工区运入保税区的货物,或境内存入出口监管仓库的货物应视同出口;保税加工区运往境内非保税区的货物,或保税仓库转内销的货物应视同进口。这时其运输方式的填写就要特别注意,分别应填写为“非保税区”、“保税区”、“监管仓库”和“保税仓库”。
例如,宁波保税区某企业将其加工生产的变压器转为内销货物,经由铁路运输至南京,视为进口,应填制进口报关单,但报关企业误将其运输方式填写为铁路运输,代码为3,造成企业通关受阻,不仅影响货物的销售,还被海关处以相应罚款,正确填报应为“保税仓库”。
出口加工区外运入加工区或者从由出口加工区运往区外的货物,区外企业填报“出口加工区”,区内企业则填报“其他运输”。 而一般企业加工贸易中的余料结转货物、深加工结转货物、内销货物、同一出口加工区或不同出口加工区的企业之间相互结转(调拨)的货物。则统一填报“其他运输”。这就要求企业要特别熟悉这种特殊的运输方式,否则就会导致通关单填写错误被海关部门退回,损害企业经济效益。
例如,郑州出口加工区某企业将其加工贸易项下的纸箱运往区外洛阳某家企业,这时郑州该企业运输方式应填报为“出口加工区”,而洛阳这家企业运输方式应填报为“其他运输”。但如果郑州出口加工区某企业将该批货物结转给洛阳出口加工区内某企业结转,则两家企业运输方式均应填报“其他运输”。要特别注意不同出口加工区之间货物的结转与出口加工区区内区外货物的结转是不一样的,其运输方式的填报是不同的。
三、起运国/运抵国栏及装货港/指运港栏
以中国为例,起运国指的是进口货物经由始发地发出,直接运抵我国境内的国家或地区,运抵国是指出口货物离开我国关境直接运抵的国家或地区。在报关单填制中,若不发生中转,起运国栏和运抵国填写不易出错。但若涉及到第三国的中转,则要注意,若在运输途中经过中转但未发生实际商业易,则起运国和运抵国按照进口货物的始发国和出口货物的最终目的地填写。但如果在中转国发生了商业易,则中转地为起运国或运抵国。具体判断商品是否发生实际交易,还是要通过发票中卖方的国别判断货物中转时是否发生买卖关系。例如,中国某企业购买来自澳大利亚的奶粉,如果直接运往中国,则起运国栏填写“澳大利亚”,但若中国经由新加坡购买原产于澳大利亚的奶粉,则起运国栏应填写“新加坡”。
类似的还有装货港和指运港,装货港要填写货物运抵我国前国外的最后一个装货港,一般情况下,装货港要与起运国一致,但若货物在运输途中发生中转,即便没有发生实际性商品交易,装货港要填写中转港名称,这时装货港和起运国国别可不一致。而指运港指的是出口货物运往境外的最终目的港,但要注意,指运港不一定在运抵国内,比如出口至欧洲捷克的货物,通常指运港是德国汉堡港,再经陆上运输运至目的地。例如,中国某企业购买来自新西兰的羊毛衫,经香港转船后运抵上海,不管有没有在香港发生交易,装货港都应填报为“香港”。
四、运费及保费栏的填写
在进出口报关单中,运费和保费都不是全部要填写的,要具体根据合同中的贸易术语方式选择填写。在实际操作中,往往容易混淆,以常用贸易术语总结如下:若以FOB、FCA出口,由进口方负责运费和保费,则进口报关单中要填写该两项费用,出口报关单则不用填写;以CFR、CPT出口的,出口方承担运费,则出口报关单中要填写运费,进口方负责保费,则进口报关单中要填写保费;以CIF、CIP出口的,出口方承担运费和保费,所以出口报关单中要填写运费和保费,进口报关单中则无需填写这两项。在实际报关中,以集装箱海洋运输为例,运费计算较为简单。要注意若是整箱运输,运费=单位每箱运费×整箱数。但拼箱费用的计算略微复杂,分按体积与重量计算两种方式:按体积计算,X1=单位基本运费(MTQ)×总体积;按重量计算,X2=单位基本运费(TNE)×总毛重,然后取 X1、X2 中较大的一个。另外,要警惕出口运费的少报事件,因我国对于生产性企业的出口退税基数是以FOB价计算的,若企业以CFR、CIF价出口,这样运费越少,其FOB价越高,企业可以获得的出口退税额就越多。
在保险费的计算中,当贸易术语为CIF、CIP时,保险费=合同价×k×r;当贸易术语为CFR、CPT时,保险费=合同价×[(k×r)/(1-k×r)];当贸易术语为FOB、FCA时,保险费=(合同价+ 海运费或空运费) × [(k×r)/(1-k ×r)],其中保险费率为r,保险加成为k。保险加成可选择110%、120%或130%,保险费率通常选择一切险外加战争险和罢工险,尤其要注意,同时投保战争险和附加险时,费率只取其一。例如,中国某加工贸易企业以FOB贸易术语进口一批蔗糖,装运港雅加达,目的港上海,合同金额84480美元,由贸易术语可知,进口商承担运费和保费,进口报关单栏的运费和保费都要填。由装货单知该商品装两个20尺柜,查阅运价表得知,该商品运费为205美元,商品投保险种为:海上运输一切险,其费率为8‰,外加战争险及罢工险,费率为0.8‰,投保加成110%。根据上面所列计算公式,贸易术语为FOB时,保险费=(合同价+海运费或空运费)×[(k×r)/(1-k ×r)],保险费=(84480+205)× (1.1×8.8‰)/(1-1.1×8.8‰),计算可得,保险费为
在填制报关单中,要特别注意贸易术语和运费、保费之间的逻辑关系,并要计算正确,以便海关对完税价格的正确确定。
五、件数及包装栏的填写
一般情况下,报关单中的“件数与包装栏”,填写的是商品的外包装,件数并不是合同中的销售数量,而是整个外包装的数量。还要注意一些特殊情况,如果配舱回单件数以集装箱为单位,件数栏填报集装箱个数;如果配舱回单件数为托盘,则直接填报托盘个数;如遇到有两种计件单位的,件数栏应将两者合计填报。总之,件数栏不得填报为零,不能为空,散、裸装货物填报为“1”。例如,某企业进口一批化妆品,在合同中的数量是15000瓶,外包装用的纸箱,查阅商品明细,商品销售单位为瓶,一纸箱等于150个销售单位,所以可计算出商品共装了100纸箱,所以对应在进口报关单中,件数栏应填写100,而非15000。又如,某企业出口一批货物,再装货单上显示计件单位为“3unie&4cartons”,说明该批货物有两种计价单位,此时出口报关单上件数栏应填报“7”,包装则填报“其他”。
六、数量及单位栏
报关单中的数量及单位栏,涉及到成交数量、成交单位、法定第一数量、法定第一单位、法定第二数量和法定第二单位,这些项目怎么填写,是不是都要填写,很容易混淆。成交数量和成交单位参照的是合同,根据合同填写,法定第一单位及第二单位的内容根据海关税则的规定填写。报关单中涉及数量及单位栏的填写共有三行内容,第一行填写法定第一单位和法定第一数量;第二行填写法定第二单位和法定第二数量;第三行填写成交单位和成交数量。在这里要特别注意,如果货物合同中的成交单位和法定第一单位一致,则成交单位及数量一栏无需填写,若不一致,则都要填写;如果海关列明的货物没有法定第二单位,则法定第二单位及数量都无需填写,若有则要如实申报。
同时还要注意,数量及单位栏的计算公式。法定第一数量=成交数量X比例因子一,法定第二数量=成交数量X比例因子二,若无法定第二单位,则第二数量也无需填写。
例如,某企业进口澳洲羊毛加工成成品羊毛衫,欲出售给美国一企业,要填制出口报关单,该商品合同中成交单位为件,成交数量为13600件。该成品监管条件见下表:
接口协议范文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接口上,可以把下级的级联网关看成透明的。