文档库 最新最全的文档下载
当前位置:文档库 › IC卡通信协议详解(7816-3)

IC卡通信协议详解(7816-3)

目录

第一章IC卡通信过程整体归纳 (1)

第二章IC卡的电气特性 (3)

1.IC卡的触点分配 (3)

2.IC卡的电气特性 (3)

2.1 VCC (3)

2.2 I/O (3)

2.3 CLK (3)

2.4 RST (3)

2.2 VPP (3)

第三章IC卡的操作过程 (4)

1、IC卡操作的一般过程 (4)

2、卡激活 (4)

3、冷复位 (4)

4、热复位 (5)

5、时钟停止 (6)

6、去激活 (6)

第四章复位应答 (8)

1、异步字符 (8)

1.1 字符结构 (8)

1.2 错误信号和字符副本 (8)

2、复位应答 (9)

2.1 复位应答的序列配置 (9)

2.2 复位应答的结构和内容 (11)

第五章协议和参数选择 (14)

1.PPS协议 (14)

2.PPS请求的结构和内容 (14)

3.成功的PPS交换 (14)

第六章异步半双工字符传输协议 (16)

1、命令的结构和处理 (16)

2、过程字节 (16)

3、NULL字节 (16)

4、确认字节 (16)

5、状态字节 (17)

第七章异步半双工块传输 (18)

1.数据块块帧结构 (18)

2.起始域 (18)

3.信息域 (18)

4.终止域 (19)

5.信息域尺寸 (19)

6.等待时间 (19)

7.数据链路层字符成分 (20)

8.数据链路层块成分 (20)

9.链接 (20)

第一章IC卡通信过程整体归纳

根据协议,IC卡的操作信息交互流程大概为(见图1):

(1)接口设备能够控制IC卡各IO引脚使其激活。

(2)接口设备给卡发送复位信号使卡复位启动。

(3)卡要向接口设备发送复位应答信号,将通信中必要的相关信息告知接口设备。(4)接口设备对卡进行一次热复位,卡进行复位应答。

(5)接口设备发起一个PPS交互指令,选择要与卡通信的协议和相关参数。

(6)根据选择的协议(T=0或T=1)进行数据的通信。

以后各章节将根据此流程,对IC卡协议的各部分主要内容进行归纳总结。

第二章IC卡的电气特性

1.IC卡的触点分配

根据ISO7816-2的规定,IC卡至少应该分配下面的几个引脚:

I/O—串行输入输出

CLK—时钟信号

RST—复位信号

VCC—供电电压,5V

GND—接地引脚,电压参考点

VPP—编程电压输入,可选

2.IC卡的电气特性

2.1 VCC

在A类工作条件下,VCC的取值范围为4.5V—5.5V,最大允许电流为60mA。在B类工作条件下,VCC的取值范围为2.7V—3.3V,最大允许电流为50mA。当时钟信号停止时,电流为0.5mA。

2.2 I/O

此引脚有两种逻辑电平状态:state A(低电平)和state Z(高电平)。

State Z——当卡和接口设备都处于接收模式时处于此态,或是由传输方所施加的

State A——是由传输方所施加的

当卡和接口设备都处于接收模式时,数据线应该保持为Z态;当卡和接口设备处于不匹配模式时,数据线的状态为未知;卡和接口设备不能同时处于发送模式。

2.3 CLK

在A类工作条件下,时钟信号频率范围为1-5MHz;在B类工作条件下,时钟信号频率范围为1-4MHz;

在稳定操作期间,时钟信号的占空比为40%到60%。在没有信息交互时,可以改变时钟信号的频率,建议在以下两种时间段改变时钟频率:

——复位应答后

——在一个成功的PPS交互之后

2.4 RST

此引脚用于对卡进行复位操作(冷复位和热复位)。

2.2 VPP

在B类操作条件下,此引脚不可用。

在A类操作条件下,此引脚被用于提供写和擦出卡内部非易失性存储器的编程电压。有两种状态:停止状态和编程状态。除非卡需要编程电压,否则接口设备应该保持此引脚在停止状态。

第三章IC卡的操作过程

1、IC卡操作的一般过程

当卡的触点物理的连接到接口设备的触点时,电路才能运行。

卡和接口设备之间的交互有一下步骤:

——接口设备要激活IC卡

——卡和接口设备之间的信息交互由卡的冷复位应答所发起

——接口设备对卡去激活,即停用

在由接口设备发起的去激活动作结束之后,才能断开卡和接口设备之间的物理连接。

2、卡激活

为了与一个已经物理的连接的卡发起交互,接口设备需要通过下面的操作激活卡。

——RST置成L

——VCC上电

——接口设备上I/O置成接收模式

——在A类操作条件下,VPP应该置为停止状态;在B类操作条件下,不接VPP

——CLK将要被给一个时钟信号。

3、冷复位

图2

激活结束后(RST在L状态,VCC上电,接口设备I/O在接收模式,CLK有一个适合的并且稳定的时钟信号),卡已经准备好冷复位。在冷启动之前,卡的内部状态没有定义。接口设备将发出一个冷复位信号,并从IC卡得到一个复位应答,过程如下:

从T a时刻起,接口设备施加CLK。

●在T a后不超过200个时钟周期内,IC卡必须将其I/O线置为接收方式。由于接口设备也必须

在这段期限内置其I/O线驱动器为接收方式,所以I/O线在T a后最迟不超过200个时钟周期的

时间内置为高电平。为此,接口设备的I/O触点应经过一个上拉电阻接到V CC。

●接口设备应从T a开始保持RST端为低电平状态至少400个时钟周期,并在T b将其置为高电

平;

●IC卡上I/O的复位应答将在T b时刻后的400至40,000个时钟周期内开始;

●如果IC卡在RST被拉高后的40000个时钟周期内没有应答,则RST将被拉低并且卡将被去

激活。

4、热复位

图3

IC卡对终端的复位应答有着规定的规格和内容(详见后述),如果终端收到的复位应答不符合规定要求时,终端将启动一个热复位并从IC卡获得复位信号。过程如下:

●在VCC和CLK信号保持稳定后,接口设备通过拉低RST发起热复位,RST低电平至少要持

续400个时钟周期;

●在Tc之后的最多200周期内,IC卡和接口设备都必须置I/O为接收方式,即I/O线在Tc后最

迟不超过200个时钟周期内置为高电平;

●接口设备在RST保持低电平大于400个时钟周期后,将其拉高;

●IC卡上I/O的复位应答将在T后的400至40,000个时钟周期内开始;

如果IC卡在RST被拉高后的40000个时钟周期内没有应答,RST将被拉低并且卡将被去激活;

5、时钟停止

图4

对于支持时钟停止的卡,当接口设备认为没有来自卡的传输并当I/O已经保持在H至少1860时钟周期(延时tg),在VCC上电并且RST在H时,接口设备可以对于CLK(Te)进行时钟停止。

当时钟停止时(在Te~Tf),根据已被确定好的时钟指示器X ,CLK将要继续保持在在H或是在L。时钟指示器X的值应在复位应答序列TA(i)当中设置。

在Tf,接口设备重启时钟,在至少700时钟延时后(th),在I/O的信息交换可以继续。

6、去激活

图5

当信息交换被完成或者被终止(例如卡没有应答,或检测到卡的移动),接口设备将按照下面的序列停用IC卡:

——将RST 置L

——将CLK置L(除非时钟停止在L状态)

——将VPP去激活

——将I/O置L

——将VCC去激活

第四章 复位应答

1、异步字符

1.1 字符结构

在字符传输之前,I/O 应该处于高电平。一个字符由10个连续的时段组成,每一个时段为高电平或低电平。

图6

——第一个时段m1为低电平,为起始时段

——中间8个时段(2到9)为要发送的一个字符 ——最后一个时段m10为奇偶校验位

每一个时段持续时间为一个etu 。如果在一个时段mn 的结尾状态改变,那么这个字符的起始边沿到mn 的结束边沿之间的延时为(n ±0.2)etu 。

接受方对I/O 进行定期采样,采样时间不少于0.2etu 。接收方必须在((n-1)+0.5±0.2)个etu 内确认相应的时段mn 。

两个连续字符的起始边沿之间的延时至少为12etu 。这包括一个字符的持续时间和保护时间。在保护时间内卡和接口设备都处于接收模式,即高电平状态。

在复位应答期间,两个被卡发送的连续字符的起始边沿之间的延时不能超过9600etu 。这个最大值被称为是初始等待时间。

1.2 错误信号和字符副本

图7

当奇偶校验不正确时,接收方会在接收时间的第(10.5±0.2)etu 通过拉低I/O 线发送错误信号,错误低电平信号会持续1到2个etu 的时间。然后接收方将等待着这个字符的重发。 发送方会在发送时间的第(11±0.2)etu 检测I/O 状态: ——如果I/O 为高电平,则认为字符已被正确接受

——如果I/O 为低电平,则认为接受不正确。在检测到错误后至少两个etu 的延时后,发送方将重发这个字符。

如果卡中没有可提供的副本,重发将被忽略并且卡不会因为接口设备所发的错误信号而遭到损坏。接口设

H L

Delay between consecutive characters

备应该发起一个全局的复位。

2、复位应答

2.1 复位应答的序列配置

IC卡被接口设备复位后,用一串称之为复位应答(A TR-Answer To Resest)的字节序列应答。这些字节传达给接口设备的信息规定了IC卡和接口设备之间要建立的通讯的某种特性

图8

每一个成功的复位应答信号都由一个起始字符跟随最多32个字符序列构成:

TS——起始字符用于设置其后各字符的解码规则

T0——格式字符用于指明接口字符的出现与历史字符的数目

TA(i) TB(i) TC(i) TD(i)——接口字符用于设置与接口设备通信的相关参数

T1 T2…TK——历史字符用以指示一些通用的信息,如IC卡生产厂商、嵌入的芯片、文件状态等

TCK——校验字符用于检测复位应答信号的正确性。

2.2 复位应答的结构和内容

下面将对各字符所要表示的内容进行详细归纳:

2.2.1 TS——起始字符

TS执行两项功能:

●向终端提供了一个已知的位组合模型,以便于同步;

●提示所用逻辑约定,以便对后继的字符进行解释。

IC卡必须以下列二值之一来回送TS

反向约定(H)LHHLLLLLLH,其值为“3F”。用1表示低电平,m2为最高有效位;

正向约定(H)LHHLHHHLLH,其值为“3B”。用1表示高电平,m2为最低有效位;

2.2.2 T0——格式字符

T0由两部分组成:

——高四位(b5-b8)称之为Y1,用来指示后继字符TA1至TD1是否存在,b5-b8位被置为逻辑“1“状态者,相应地表明TA1至TD1的存在。

——低四位组(b1-b4)称之为K,则表明历史字节存在的数量(0-15)。

2.2.3TAi、TBi、TCi、TDi(i=1、2、3……)——接口字符

TAi、TBi、TCi(i=1、2、3……)指明了协议参数。

2.2.

3.1TDi

TD(i)指明协议类型和是否存在后续接口字符,TDi包括Yi+1和T两部分。

——Yi+1为高四位组,分别表示后续接口字符TAi+1、TBi+1、TCi+1、TDi+1是否存在。

——T为低四位组,表示后续发送的协议类型。

TA1、TB1、TC1、TB2是全局性接口字符,其余的TAi、TBi、和Tci是专用接口字符,它们的解释取决于TDi-1中的T所指明的协议类型。

2.2.

3.2 TA1

TA1传达FI和DI的数值,其中:

●FI用来确定F的数值,F为时钟频率转换因子,用于修改继复位应答之后由终端所提供的时钟频

率。

●DI用来确定D的数值,称为比特率调节因子,用于调整复位应答之后所使用的位持续时间。

复位应答期间使用的缺省值为:FI=1和DI=1,表示:F=372和D=1

2.2.

3.3 TB1

TB1传送PI1和I1之值,其中:

——PI1在b1~b5位中定义,用于确定IC卡所需的最大编程电压P值。PI1=0表示IC卡不使用Vpp。

——I1在b6~b7位中定义,用于确定IC卡所需的最大编程电流I值。PI1=0表示不使用参数。

——b8位不使用,并设置为逻辑“0”。

2.2.

3.4 TC1

TC1传送N之值,N为额外保护时间。N为TC1的b8~b1位的二进制码,其值表示了额外保护时间所增加的etu数,其值为0~255之间。

N=255(TC1=“FF”)有特别的含义,它表明两相邻字符的起始位前沿之间的最短间隔时间:T=0,为12etu

T=1, 为11etu

TC1仅用于从终端送到IC卡的两相邻字符间的定时,它既不用于从IC卡送到终端的两相邻字符间的定时,也不用于反向传送的二字符间的定时。

2.2.

3.5 TA2

字符TA2的存在与否相应地表示IC卡是以特定模式或是交互模式工作。

2.2.

3.6TB2

TB2传送PI2,PI2用于确定IC卡所需编程电压P的值。当它存在时,它就取代由TB1中回送的PI1的值。

2.2.

3.7TC2

TC2是T=0型协议所特有的,它传达了用来决定由IC卡发送的任意一个字符起始位上升沿与由IC卡或终端传送的前一字符的起始位上升沿之间的最大间隔的工作等待时间(WI)。工作等待时间为:960×D ×WI。

2.2.

3.8 TA3

TA3回送信息域长度整数(IFSI),它决定了IC卡信息字段长度(IFSC),并规定了IC卡能够接收的字组的最大长度。它以字节形式表示IFSC的长度,取值范围为“01”至“FE”之间的任何值,“00”和“FF”二值留作备用。

2.2.

3.9TB3

TB3表明了用来计算CWT和BWT的CWI和BWI之值,TB3由两部分组成,低半字(b1~b4)用

来表示CWI之值,而高半字节(b5~b8)用来表示BWI之值。

2.2.

3.10TC3

TC3指明了所用的块错误检测代码的类型,类型由b1位表示,而b2至b8未用。

2.2.4T1 T2…TK——历史字符

历史字符指明了一些通用的信息,如卡的制造商,卡中被嵌入的芯片,卡的文件状态等等。

2.2.5TCK——校验字符

TCK具有一个检验复位应答期间所发送数据完整性的值,TCK的值应使从T0至TCK(包括TCK)的所有字节的异或操作结果为0。

第五章 协议和参数选择

接口设备可以发送协议和参数选择指令(PPS ),选择要和IC 卡进行通信的协议和相关的参数。

1. PPS 协议

——IFD 发送一个PPS 请求给ICC

——如果ICC 收到一个错误的请求,则不响应。

——如果ICC 受到一个正确的请求,则返回一个PPS 响应,否则将超过初始等待时间 ——如果ICC 超出初始等待时间,则IFD 复位或者拒绝ICC ——如果IFD 收到一个错误的应答,则复位或者拒绝ICC ——如果PPS 交换失败,则IFD 复位或者拒绝ICC

2. PPS 请求的结构和内容

PPS 请求和应答的结构如下:

图9

PPS 识别PPS 请求或响应并等于“FF ”。

PPS0通过位b5、b6、b7分别指明可选字节PPS1、PPS2、PPS3的存在。位b4到b1指明传输参数T 的值以提出协议。位b8留作未来使用并设定为0。

PPS1允许IFD 对卡提出F 和D 的值。如果IFD 不发送PPS1,它应该继续使用Fd 和Dd 。ICC 通过响应PPS1确认这两个值(此时使用的Fn 和Dn ),或者不响应PPS1而继续使用默认值Fd 和Dd 。

PPS2和PPS3保留将来使用。

PCK 的值应使从PPSS 至PCK (包括PCK )的所有字节的异或操作结果为0。

3.成功的PPS 交换

初始字符 格式字符

参数字符

效验字符

如果PPS应答精确的回送PPS请求,那么PPS交互成功。而当PPS响应为下列情况之一时,该PPS交换也是成功的:

1)PPSS响应=PPSS请求

2)PPS0的响应

●应回送B1到B4

●回送B5或将其置为0

——如果B5=1,则PPS1响应=PPS1请求。

——若B5=0,则无PPS1,则使用Fd和Dd。

●回送B6或者将其置为0

——如果B6=1,则PPS2响应=PPS2请求。

——若B6=0,则PPS2请求和相应都不存在。

●会送B7或者将其置为0

——如果B7=1,则PPS3响应=PPS3请求。

——若B7=0,则PPS3请求和相应都不存在)。

PPS交换的其它情况都应被解释为不成功。

第六章异步半双工字符传输协议

1、命令的结构和处理

命令由接口设备启动,它是以5个字节的报头通知卡做什么,并且允许在卡发出的过程字节的控制下传输数据字节。

接口设备通过5个连续的字节为包头,这5个字节指定为CLA,INS,P1、P2、P3。

1)CLA为指令类别,值FF保留。

2)INS为指令类别中的指令代码。

3)P1、P2是一个完成指令代码的参考符

4)P3对指令期间被传输的数据字节(D1…Dn)的数目n编码。

在一个5个字节的包头传输之后,接口设备等待一个过程字节。

2、过程字节

过程字节的值将指明接口设备请求的动作。有三种类型的过程字节:

1)NULL的值为60。

2)在ACK中,除了6X和9X以外,在ACK字节中的七个最高有效位(B8到B2)全部等于INS

字节中的相应位或者与之补位。

3)SW1的值为‘6X’或‘9X’但不包括60

在每一个过程字节中,卡可以用一个ACK或NULL字节来把这个命令继续进行下去,或以适当的不应答表示不赞同,或用结束序列SW1-SW2结束这个命令。

3、NULL字节

NULL请求不影响数据传出,仅等待一个过程字节。

4、确认字节

ACK被用作数据字节传输的控制。

1)如果ACK与INS的异或等于00或FF,VPP应该设置并保持在停止状态。

2)如果ACK与INS异或等于01或FE,VPP应该设置并保持在编程状态。

3)假如ACK的b8到b2位等于INS的相应位,所有剩余的字节将随后传送。

4)如果ACK的b8到b2位等于INS的相应位的补码,那么仅下一个字节将被传输。

5、状态字节

接受到SW1以后,接口设备将等待一个SW2字节的传输。对SW2的至无限制。结束命令SW1 SW2在命令的结尾给出卡的状态。置为9000只是处理正常完成。

SW1的有效位的高4位等于6时,SW1的含义与应用无关。

第七章异步半双工块传输协议

1.数据块帧结构

一个块由一串字符组成,每个字符以异步字符的形式传输。块由下列域构成(下表)

协议定义了三种基本的块:

1)信息块(I):用于传送应用层信息。另外他传送可定与否定的确认信息。

2)接受准备块(R):用于发送肯定或否定的信息,他没有信息域。

3)管理块(S):用于IFD和ICC交换控制信息。(S块的信息域存在与否取决于S块控制功能的需

要)。

2.起始域

起始域由三部分组成:节点地址(NAD),协议控制字(PCB)和长度(LEN)每个部分占一个字节。

1)节点地址:B1到B3指明源节点地址(SAD),B5到B7指明目的节点地址(DAD)。B4和B8

用于VPP状态控制。

由IFD发送的第一个块的NAD确定了SAD和DAD地址的逻辑连接关系。在随后的NAD中也包含相同的SAD/DAD的块,都具有相同的逻辑连接关系。在后续的信息交换期间,另外的逻辑连接也可以由相应的SAD/DAD对所建立。

2)协议控制字(PCB)节用于表示控制传输所需要的信息。它的定义因不同的块而不同:

——在信息块中,b8被置为0。

——B7表示发送序列号。

——B6用于链传输,表示后面有无数据块。

——B5到b7保留将来使用,均被置为0。

3)长度(LEN)指示其块的信息域中被传输字节数。编码格式如下:

——00表示信息域是空的。

——从01到FE的值表示在信息域中要传输的字节数。从1到254。

——FF保留将来使用。

3.信息域

信息域因不同种类的数据块而不同:

1) I 块中的信息域用于应用信息 2) R 块中无信息域

3) S 块中的信息域传递应用信息:

——INF 应与S 块中的一个单独字节一起存在,负责调整IFS 和WTX 。

——在一个VPP 状态出错或者管理连接中止,或者同步的S 块中不存在INF 。

4. 终止域

它是差错检测编码。共有两种差错编码方式LRC 和CRC ,占一个字节。或者CRC 占两个字节。

——纵向冗余校验(LRC )占一个字节,它的值应该使数据块当中所有字节的异或为0。 ——循环冗余校验(CRC )占两个字节。

5. 信息域尺寸

1) 卡的信息域尺寸(IFSC ):它是卡能接受的数据块中信息域的最大长度,在第一TA (i )中声明,

缺省值为32

2) 接口设备信息域尺度(IFSD ):它是接口设备能接受的数据块中信息域的最大长度,缺省值为32。

6. 等待时间

1) 字符等待时间(CWT ):定义为同一块中两个连续字符起始沿之间的最长时间。

第一TB (i )的最低有效半字节(b4至b1)编码为字符等待时间整数值(CWI),其范围为0—15,CWT 的计算公

式为

CWT=(2CWI+11)etu

图10 2) 块等待时间(BWT ):定义为被卡接受数据块的最后一个字符的起始沿与由卡发送出的下一个数

据块的第一个字符的起始沿之间的最长时间。BWT 用来检测无响应的卡。

图11

第一TB(i)的最高有效半字节(b8至b5)编码为块等待时间BWI 整数值,其范围为0-9,10-15

留待将来使用。

IFD 发送的块的最后一个字符

ICC 发送的下一个块的第一个字符

通信协议(ASCII)

组态王与单片机协议 1.通讯口设置: 通讯方式:RS-232,RS-485,RS-422均可。 波特率:由单片机决定(2400,4800,9600and19200bps)。 注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致 2.在组态王中定义设备地址的格式 格式:##.# 前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定; 后面的一个字符是用户设定是否打包,“0”为不打包、“1”为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作。 注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,UINT,FLOAT)的不同分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。为提高通讯速度建议用户使用连续的数据区。 例如, 1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。。。。。。。。,数据类型为BYTE,每个变量占一个字节 2、在单片机中定义从地址100开始的数据类型为UINT型的变量: 则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。。。。。。。。,数据类型UINT,每个变量占两个字节 3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量: 则在组态王中定义相应的变量的寄存器为X200、X204、X208、X212。。。。。。。,数据类型FLOAT,每个变量占四个字节 3.组态王与单片机通讯的命令格式:

常用的硬件接口及通信协议详解

一:串口 串口是串行接口的简称,分为同步传输(USRT)和异步传输(UART)。在同步通信中,发送端和接收端使用同一个时钟。在异步通信中,接受时钟和发送时钟是不同步的,即发送端和接收端都有自己独立的时钟和相同的速度约定。 1:RS232接口定义 2:异步串口的通信协议 作为UART的一种,工作原理是将传输数据的每个字符一位接一位地传输。图一给出了其工作模式: 图一 其中各位的意义如下: 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。

数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。 奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。 波特率:是衡量资料传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200字符/秒=1200波特。 3:在嵌入式处理器中,通常都集成了串口,只需对相关寄存器进行设置,就可以使用啦。尽管不同的体系结构的处理器中,相关的寄存器可能不大一样,但是基于FIFO的uart框图还是差不多。

发送过程:把数据发送到fifo中,fifo把数据发送到移位寄存器,然后在时钟脉冲的作用下,往串口线上发送一位bit数据。 接受过程:接受移位寄存器接收到数据后,将数据放到fifo中,接受fifo事先设置好触发门限,当fifo中数据超过这个门限时,就触发一个中断,然后调用驱动中的中断服务函数,把数据写到flip_buf 中。 二:SPI SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

串口通信协议

串口通讯—通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。 目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 一、物理接口标准 1.串行通信接口的基本任务 (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。 (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。 (5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 (6)提供EIA-RS-232C接口标准所要求的信号线:远距离通信采用MODEM时,需要9根信号线;近距离零MODEM方式,只需要3根信号线。这些信号线由接口电路提供,以便与MODEM或终端进行联络与控制。 2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与TTL电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。 3.有关串行通信的物理标准 为使计算机、电话以及其他通信设备互相沟通,现在,已经对串行通信建立了几个一致的概念和标准,这些概念和标准属于三个方面:传输率,电特性,信号名称和接口标准。 1、传输率:所谓传输率就是指每秒传输多少位,传输率也常叫波特率。国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、4800、9600和19200。大多数CRT终端都能够按110到9600范围中的任何一种波特率工作。打印机由于机械速度比较慢而使传输波特率受到限制,所以,一般的串行打印机工作在110波特率,点针式打印机由于其内部有较大的行缓冲

modbus_通讯协议_实例

上海安标电子有限公司 ——PC39A接地电阻仪通信协议 通信协议: 波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 字节号 1 2 3 4 5 6 7 8 意义ID Command 数据地址V alue CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,读:3或4,写:6 3 数据地址:2个字节,寄存器地址,读从100开始,写从200开始 4 V alue:2个字节,读:个数(以整型为单位),写:命令/ 数据(以整型为单位) 5 CRC:计算出CRC 下位机(PC39A): 读数据,若正确 字节号 1 2 3 3+N (N=个数*2) 3+N+1 3+N+2 意义ID Command=3 / 4 数据个数数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位) 4 V alue:N个字节,是返回上位机的数据 5 CRC:计算出CRC 写命令,若正确 返回收到的数据: 若错误 字节号 1 2 3 4 5 意义ID Command 数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令 错误指令 1:表示command不存在 2:表示数据地址超限 4 CRC:计算出CRC

例如读PC39A 电流数据: 机器地址为12,电流的数据地址100,数据为15.45(A) (一个整型数据) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x03 0x0064 0x0001 CRC_H CRC_L 10进制 12 3 100 1 CRC_H CRC_L 从机返回 如正确: ID Command 数据个数(以字节为单位) V alue CRC 16进制 0x0c 0x03 0x002 0x0609 CRC_H CRC_L 10进制 12 3 2 1545 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x83 0x02 CRC_H CRC_L 10进制 12 131 2 CRC_H CRC_L 例如发PC39A 启动命令: 机器地址为12,命令的地址200,数据为25000(25000表示启动) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 从机返回 如正确: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x86 0x02 CRC_H CRC_L 10进制 12 134 2 CRC_H CRC_L 0011 10000110 错误码0x83 功能码0x06错误码0x86

NMEA协议详解

NMEA协议详解 2017/9/11 NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术 委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associations)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串 口传送到PC机、PDA等设备。 NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议, 大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。 不过,也有少数厂商的设备使用自行约定的协议比如GARMIN的GPS设备(部分GARMIN设备也 可以输出兼容NMEA-0183协议的数据)。软件方面,我们熟知的Google Earth目前也不支持 NMEA-0183协议,但Google Earth已经声明会尽快实现对NMEA-0183协议的兼容。呵呵,除非 你确实强壮到可以和工业标准分庭抗礼,否则你就得服从工业标准。 NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面给出这些常用NMEA-0183语句 的字段定义解释。 $GPGGA 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段0:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS 定位信息 字段1:UTC 时间,hhmmss.sss,时分秒格式 字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0) 字段3:纬度N(北纬)或S(南纬) 字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0) 字段5:经度E(东经)或W(西经) 字段6:GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算 字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0) 字段8:HDOP水平精度因子(0.5 - 99.9) 字段9:海拔高度(-9999.9 - 99999.9) 字段10:地球椭球面相对大地水准面的高度 字段11:差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)

模块通讯协议

电脑通讯协议 数据格式说明: 0XAF,0XAF:同步头 0X00,0X00:ID码(一般是0X00,0X00) 0XAF:头 0X80,0X00:命令码(上位机发码是0X80,YY,单片几发码给电脑0X00,YY)LEN:数据长度是从LEN开始到CS的数据个数,不包括LEN和CS CS:是验证码,CS前面所有数据之和%0XFF 结束码:0X0D 0X0A 举例: 设置空中参数为9600代码为: AF AF 00 00 AF 80 03 02 04 00 96 0D 0A 读取空中参数代码为: AF AF 00 00 AF 80 04 02 00 00 93 0D 0A //*************************************************************** **** 02发码设置串口 AF AF 00 00 AF 80 01 LEN XX YY CS 0D 0A XX:01-1200 02-2400 03-4800 04-9600 05-19200 06-38400 07-56700 08-115200 YY:00-无验证 01-偶验证 02-奇验证 答应回码 AF AF 00 00 AF 00 01 LEN XX YY CS 0D 0A XX:01-1200 02-2400 03-4800

05-19200 06-38400 07-56700 08-115200 YY:00-无验证 01-验证 02-奇验证 //*************************************************************** **** 03读串口参数 //读串口参数 //AF AF 00 00 AF 80 02 LEN 00 00 CS 0D 0A //答应参数 //AF AF 00 00 AF 00 02 LEN XX YY CS 0D 0A XX:01-1200 02-2400 03-4800 04-9600 05-19200 06-38400 07-56700 08-115200 YY:00-无验证 01-偶验证 02-奇验证 //*************************************************************** **** 04设空中参数// //AF AF 00 00 AF 80 03 LEN XX YY CS 0D 0A //XX 01-1200 02-2400 03-4800 04-9600 05-19200 06-38400 07-56700 08-115200 YY=0 //答应参数 //AF AF 00 00 AF 00 03 LEN XX YY CS 0D 0A //XX 01-1200 02-2400 03-4800

IC卡通信协议详解(7816-3)

目录 第一章IC卡通信过程整体归纳 (1) 第二章IC卡的电气特性 (3) 1.IC卡的触点分配 (3) 2.IC卡的电气特性 (3) 2.1 VCC (3) 2.2 I/O (3) 2.3 CLK (3) 2.4 RST (3) 2.2 VPP (3) 第三章IC卡的操作过程 (4) 1、IC卡操作的一般过程 (4) 2、卡激活 (4) 3、冷复位 (4) 4、热复位 (5) 5、时钟停止 (6) 6、去激活 (6) 第四章复位应答 (8) 1、异步字符 (8) 1.1 字符结构 (8) 1.2 错误信号和字符副本 (8) 2、复位应答 (9) 2.1 复位应答的序列配置 (9) 2.2 复位应答的结构和内容 (11) 第五章协议和参数选择 (14) 1.PPS协议 (14) 2.PPS请求的结构和内容 (14) 3.成功的PPS交换 (14) 第六章异步半双工字符传输协议 (16) 1、命令的结构和处理 (16) 2、过程字节 (16) 3、NULL字节 (16) 4、确认字节 (16) 5、状态字节 (17) 第七章异步半双工块传输 (18) 1.数据块块帧结构 (18) 2.起始域 (18) 3.信息域 (18) 4.终止域 (19) 5.信息域尺寸 (19) 6.等待时间 (19) 7.数据链路层字符成分 (20) 8.数据链路层块成分 (20) 9.链接 (20)

第一章IC卡通信过程整体归纳 根据协议,IC卡的操作信息交互流程大概为(见图1): (1)接口设备能够控制IC卡各IO引脚使其激活。 (2)接口设备给卡发送复位信号使卡复位启动。 (3)卡要向接口设备发送复位应答信号,将通信中必要的相关信息告知接口设备。(4)接口设备对卡进行一次热复位,卡进行复位应答。 (5)接口设备发起一个PPS交互指令,选择要与卡通信的协议和相关参数。 (6)根据选择的协议(T=0或T=1)进行数据的通信。

常用网络通信协议简介

常用网络通信协议简介 常用网络通信协议 物理层: DTE(Data Terminal Equipment):数据终端设备 DCE(Data Communications Equipment):数据电路端接设备 #窄宽接入: PSTN ( Public Switched Telephone Network )公共交换电话网络 ISDN(Integrated Services Digital Network)ISDN综合业务数字网 ISDN有6种信道: A信道 4khz模拟信道 B信道 64kbps用于语音数据、调整数据、数字传真 C信道 8kbps/16kbps的数字信道,用于传输低速数据 D信道 16kbps数字信道,用于传输用户接入信令 E信道 64kbps数字信道,用于传输内部信令 H信道 384kbps高速数据传输数字信道,用于图像、视频会议、快速传真等. B代表承载, D代表Delta. ISDN有3种标准化接入速率: 基本速率接口(BRI)由2个B信道,每个带宽64kbps和一个带宽16kbps的D信道组成。三个信道设计成2B+D。 主速率接口(PRI) - 由很多的B信道和一个带宽64Kbps的D信道组成,B信道的数量取决于不同的国家: 北美和日本: 23B+1D, 总位速率1.544 Mbit/s (T1) 欧洲,澳大利亚:30B+2D,总位速率2.048 Mbit/s (E1) FR(Frame Relay)帧中继

X.25 X.25网络是第一个面向连接的网络,也是第一个公共数据网络. #宽带接入: ADSL:(Asymmetric Digital Subscriber Line)非对称数字用户环路 HFC(Hybrid Fiber,Coaxial)光纤和同轴电缆相结合的混合网络 PLC:电力线通信技术 #传输网: SDH:(Synchronous Digital Hierarchy)同步数字体系 DWDM:密集型光波复用(DWDM:Dense Wavelength Division Multiplexing)是能组合一组光波长用一根光纤进行传送。这是一项用来在现有的光纤骨干网上提高带宽的激光技术。更确切地说,该技术是在一根指定的光纤中,多路复用单个光纤载波的紧密光谱间距,以便利用可以达到的传输性能(例如,达到最小程度的色散或者衰减)。 #无线/卫星: LMDS:(Local Multipoint Distribution Services)作区域多点传输服务。这是一种微波的宽带业务,工作在28GHz附近频段,在较近的距离双向传输话音、数据和图像等信息。 GPRS:(General Packet Radio Service)通用分组无线服务技术。 3G:(3rd-generation,3G)第三代移动通信技术 DBS:(Direct Broadcasting Satellite Service)直播卫星业务 VAST: 协议:RS-232、RS-449、X.21、V.35、ISDN、FDDI、IEEE802.3、IEEE802.4、IEEE802.5等。 RS-232:是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries

通讯协议大全

T C P/I P TCP/IP是网络中使用的基本的通信协议。 TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。 IPX/SPX(多用于局域网) 是基于施乐的XEROX’S Network System(XNS)协议,而SPX是基于施乐的XEROX’S SPP (Sequenced Packet Protocol:顺序包协议)协议 NetBEUI 即NetBios Enhanced User Interface,或NetBios增强用户接口。 网络通信协议: RS-232-C、RS-449、V.35、X.21、HDLC 简单网络管理协议: 简单网络管理协议SNMP、点到点协议PPP 3G标准: WCDMA(欧洲版)、CDMA2000(美国版)和TD-SCDMA(中国版) Modbus协议 Modbus就是工业控制器的网络协议中的一种 包括ASCII、RTU和TCP

现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 网络协议大全 1、ARP(address resolution protocol)地址解析协议 2、SNMP(simple network management P)网络管理协议,是TCP/IP的一部分 3、AppleShare protocol(AppleShare 协议) 4、AppleTalk 协议 5?、BOOTP协议(Bootstrap?Protocol)?应用一个基于TCP/IP协议的协议,该协议主要用于有无盘工作站的局域网 6、CMIP(Common Management Information Protocol)通用管理信息协议,它是建立在开放系统互连通信模式上的网络管理协议。相关的通用管理信息服务(CMIS)定义了访问和控制网络对象,设备和从对象设备接收状态信息的方法。 7、 DHCP协议、Dynamic?Host?Configuration?Protocol(动态主机配置协议),应用:在Windows中要启用DHCP协议,只要将IP地址设置为“自动获得IP地址”即可 9、Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议 10 、Discard Protocol抛弃协议它的作用就是接收到什么抛弃什么,它对调试网络状态

通讯方式和通讯协议介绍

目录 一、RS232的串口通讯 (2) 应用 (2) 工作方式 (2) 接口标准 (2) 电路组成 (3) 概述 (3) 简介 (3) 二、RS485串行通讯 (3) 简介 (3) 接口 (4) 电缆 (4) 布网 (5) 区别 (5) 三、串行通信 (6) 概念 (6) 分类 (7) 同步通信 (7) 异步通信 (7) 特点 (7) 形式和标准 (7) 调幅方式 (7) 调频方式 (8) 数字编码方式 (8) 数据传输率 (8) 发送时钟和接收时钟 (9) 异步通信协议 (9) 通信协议 (10) 普遍协议 (10) USB (11) IEEE 1394 (11) 相关应用 (12) 四、通讯协议 (12) 简介 (12) 详细介绍 (13) TCP/IP (13) IPX/SPX (13) NetBEUI (14) 通信协议 (14) RS-232-C (14) RS-449 (14) V.35 (15) X.21 (15) HDLC (15) 管理协议 (15) SNMP (15) PPP (16)

一、RS232的串口通讯 应用 随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要.这里所说的通信是指计算机与外界的信息交换.因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换.由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输.对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍.在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU 之间的通信一般都是串行方式.所以串行接口是微机应用系统常用的接口。许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU 与接口之间仍按并行方式工作. 工作方式 由于CPU 与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有" 接收移位寄存器" (串→并)和" 发送移位寄存器" (并→串). 在数据输入过程中,数据1 位1 位地从外设进入接口的" 接收移位寄存器",当" 接收移位寄存器" 中已接收完1 个字符的各位后,数据就从" 接收移位寄存器" 进入" 数据输入寄存器" . CPU 从" 数据输入寄存器" 中读取接收到的字符.(并行读取,即D7~D0 同时被读至累加器中). " 接收移位寄存器" 的移位速度由" 接收时钟" 确定. 在数据输出过程中,CPU 把要输出的字符(并行地)送入" 数据输出寄存器"," 数据输出寄存器" 的内容传输到" 发送移位寄存器",然后由" 发送移位寄存器" 移位,把数据1 位 1 位地送到外设. " 发送移位寄存器" 的移位速度由" 发送时钟" 确定. 接口中的" 控制寄存器" 用来容纳CPU 送给此接口的各种控制信息,这些控制信息决定接口的工作方式. " 状态寄存器" 的各位称为" 状态位",每一个状态位都可以用来指示数据传输过程中的状态或某种错误.例如,用状态寄存器的D5 位为"1" 表示" 数据输出寄存器" 空,用D0 位表示" 数据输入寄存器满",用D2 位表示" 奇偶检验错" 等. 能够完成上述" 串<- -> 并" 转换功能的电路,通常称为" 通用异步收发器" (UART :Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550 接口标准 ⑴实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。

基于Modbus协议实现单片机与PLC之间的通讯

基于Modbus协议实现单片机与PLC之间的通讯 来源:PLC&FA 作者:蔡晓燕赵兴群万遂人董鹏云 关键词:可编程控制器 Modbus 通讯协议 1 引言 HMI(人机界面)以其体积小,高性能,强实时等特点,越来越多的应用于工业自动化系统和设备中。它有字母、汉字、图形和图片等不同的显示,界面简单友好。配有长寿命的薄膜按钮键盘,操作简单。它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机[1]作为其核心控制器,以实现实时快速处理。PLC和单片机结合不仅可以提PLC的数据处理能力,还可以给用户带来友好简洁的界面。本文以Modbus通讯协议为例,详细讨论了一个人机系统中,如何用C51实现单片机和PLC之间通讯的实例。 2 Modbus通讯协议[4] Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。 Modbus协议提供了主—从原则,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。主设备查询的格式:设备地址(或广播,此时不需要回应)、功能代码、所有要发送的数据、和一错误检测域。从设备回应消息包括确认地址、功能码、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 控制器能设置为两种传输模式:ASCII和RTU,在同样的波特率下,RTU可比ASCII方式传送更多的数据,所以采用KTU模式。 (1) 典型的RTU消息帧 典型的RTU消息帧如表1所示。

RTU消息帧的地址域包含8bit。可能的从设备地址是0...127(十进制)。其中地址0是用作广播地址,以使所有的从设备都能认识。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。 RTU消息帧中的功能代码域包含了8bits,当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为;当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应,一般是将功能码的最高位由0改为1)。 从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代 码所定义的行为。这包括了像不连续的寄存器地址,要处理项的数目,域中实际数据字节数。如果没有错误发生,从从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。 当选用RTU模式作字符帧时,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测(CRC)方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。 (2) 所有的Modbus功能码 Modbus的功能码定义如表2所示。

GPS数据协议NMEA0183

GPS 数据协议 NMEA-0183
NMEA 0183 是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式。目前业已成了 GPS 导航设备统一的 RTCM(Radio Technical Commission for Maritime services)标准协议。
序号 1 2 3 4 5 6 7
命令 $GPGGA $GPGSA $GPGSV $GPRMC $GPVTG $GPGLL $GPZDA
说明 全球定位数据 卫星 PRN 数据 卫星状态信息 运输定位数据 地面速度信息 大地坐标信息 UTC 时间和日期
最大帧长 72 65 210 70 34
注:发送次序$PZDA、$GPGGA、$GPGLL、$GPVTG、$GPGSA、$GPGSV*3、 $GPRMC 协议帧总说明: 该协议采用 ASCII 码, 其串行通信默认参数为: 波特率=4800bps, 数据位=8bit, 开始位=1bit,停止位=1bit,无奇偶校验。 帧格式形如:$aaccc,ddd,ddd,…,ddd*hh 1、“$”——帧命令起始位 2、aaccc——地址域,前两位为识别符,后三位为语句名 3、ddd…ddd——数据 4、“*”——校验和前缀 5、hh——校验和(check sum),$与*之间所有字符 ASCII 码的校验和(各字 节做异或运算,得到校验和后,再转换 16 进制格式的 ASCII 字符。) 6、——CR(Carriage Return) + LF(Line Feed)帧结束,回车和 换行 GPGGA GPS 固定数据输出语句, 这是一帧 GPS 定位的主要数据, 也是使用最广的数据。
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<1 5> <1> UTC 时间,格式为 hhmmss.sss。 <2> 纬度,格式为 ddmm.mmmm(前导位数不足则补 0)。 <3> 纬度半球,N 或 S(北纬或南纬)。 <4> 经度,格式为 dddmm.mmmm(前导位数不足则补 0)。

思科X.25协议详解

C H A P T E R 17Chapter Goals ? Discuss the history and development of the X.25 protocol.? Describe the basic functions and components of X.25.?Describe the frame formats of X.25. X.25 Introduction X.25 is an International Telecommunication Union–Telecommunication Standardization Sector (ITU-T) protocol standard for WAN communications that defines how connections between user devices and network devices are established and maintained. X.25 is designed to operate effectively regardless of the type of systems connected to the network. It is typically used in the packet-switched networks (PSNs) of common carriers, such as the telephone companies. Subscribers are charged based on their use of the network. The development of the X.25 standard was initiated by the common carriers in the 1970s. At that time, there was a need for WAN protocols capable of providing connectivity across public data networks (PDNs). X.25 is now administered as an international standard by the ITU-T. X.25 Devices and Protocol Operation X.25 network devices fall into three general categories: data terminal equipment (DTE), data circuit-terminating equipment (DCE), and packet-switching exchange (PSE). Data terminal equipment devices are end systems that communicate across the X.25 network. They are usually terminals, personal computers, or network hosts, and are located on the premises of individual subscribers. DCE devices are communications devices, such as modems and packet switches, that provide the interface between DTE devices and a PSE, and are generally located in the carrier’s facilities. PSEs are switches that compose the bulk of the carrier’s network. They transfer data from one DTE device to another through the X.25 PSN. Figure 17-1 illustrates the relationships among the three types of X.25 network devices.

通信协议

常用通信协议汇总 一、有线连接 1.1RS-232 优点:RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3kΩ~7kΩ。所以RS-232适合本地设备之间的通信。 缺点:(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL电路连接。 (2)传输速率较低,在异步传输时,最高速率为20Kbps。 (3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,而发送电平与接收 电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米。 1.2RS-485 RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构,传输距离一般在1~2km以下为最佳,如果超过距离加"中继"可以保证信号不丢失,而且结点数有限制,结点越多调试起来稍复杂,是目前使用最多的一种抄表方式,后期维护比较简单。常见用于串行方式,经济实用。 1.3CAN 最高速度可达1Mbps,在传输速率50Kbps时,传输距离可以达到1公里。在10Kbps速率时,传输距离可以达到5公里。一般常用在汽车总线上,可靠性高。 1.4TCP/IP 它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 1.5ADSL 基于TCP/IP 或UDP协议,将抄表数据发送到固定ip,利用电信/网通现有的布线方式,速度快,性能比较可以,缺点是不适合在野外,设备费用投入较大,对仪表通讯要求高。 1.6FSK 可靠通信速率为1200波特,可以连接树状总线;对线路性能要求低,通信距离远,一般可达30公里,线路绝缘电阻大于30欧姆,串联电阻高达数百欧姆都可以工作,适合用于大型矿井监控系统。主要缺点是:系统造价略高,通信线路要求使用屏蔽电缆;抗干扰性能一般,误码率略高于基带。 1.7光纤方式 传输速率高,可达百兆以上;通信可靠无干扰;抗雷击性能好,缺点:系统造价高;光纤断线后熔接受井下防爆环境制约,不宜直达分站,一般只用于通信干线。 1.8电力载波 1.9利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。由于使用坚固可靠的电力线作 为载波信号的传输媒介,因此具有信息传输稳定可靠,路由合理、可同时复用远动信号等特点,不需要线路投资的有线通信方式,但是开发费用高,调试难度大,易受用电环境影响,通讯状况用户的用电质量关系紧密。 二、无线连接 2.1Bluetooth 蓝牙是一种支持设备短距离通信的无线电技术。它是一种无线数据与语音通信的开放性全球规范,它以低

GNSS输出NEMA协议解析

GNSS 导航芯片输出 NEMA 协议解析 1. NEMA 协议的由来 NMEA 协议是为了在不同的 GPS (全球定位系统)导航设备中建立统一的 BTCM (海事无线电技术委员会)标准,由美国国家海洋电子协会( NMEA-The National Marine Electronics Associa-tion )制定的一套通讯协议。GPS接收机根据NMEA-0183 协议的标准规范,将位置、速度等信息通过串口传送到 PC 机、PDA 等设备。 NMEA-0183 协议是 GPS 接收机应当遵守的标准协议,也是目前 GPS 接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。 NMEA-0183 协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA $GPGSA 、 $GPGSV 、 $GPRMC 、 $GPVTG 、 $GPGLL 等。下面给出这些常用 NMEA-0183 语句的字段定义解释。$GPGGA 例: $GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段 0: $GPGGA ,语句 ID,表明该语句为 Global Positioning System Fix Data (GGA )GPS 定位信息 字段 1 : UTC 时间, hhmmss.sss ,时分秒格式 字段 2:纬度 ddmm.mmmm ,度分格式(前导位数不足则补 0) 字段3:纬度N (北纬)或S (南纬) 字段 4 :经度 dddmm.mmmm ,度分格式(前导位数不足则补 0 ) 字段 5: 经度 E(东经)或 W(西经) 字段 6: GPS 状态, 0=未定位, 1=非差分定位, 2=差分定位, 3=无效 PPS , 6=正在估算 字段 7: 正在使用的卫星数量( 00 - 12 )(前导位数不足则补 0) 字段 8 : HDOP 水平精度因子( 0.5 - 99.9 ) 字段 9: 海拔高度( -9999.9 - 99999.9 ) 字段 10: 地球椭球面相对大地水准面的高度 字段 11 : 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空) 字段 12: 差分站 ID 号 0000 - 1023 (前导位数不足则补 0,如果不是差分定位将为空) 字段 13: 校验值

RIP路由协议详解

RIP路由协议(Routing Information Protocols,路由信息协议)是使用最广泛的距离向量协议,它是由施乐(Xerox)在70年代开发的。当时,RIP是XNS (Xerox Network Service,施乐网络服务)协议簇的一部分。TCP/IP版本的RIP是施乐协议的改进版。RIP最大的特点是,无论实现原理还是配置方法,都非常简单。 度量方法RIP的度量是基于跳数(hops count)的,每经过一台路由器,路径的跳数加一。如此一来,跳数越多,路径就越长,RIP算法会优先选择跳数少的路径。RIP支持的最大跳数是15,跳数为16的网络被认为不可达。 路由更新RIP路由协议中路由的更新是通过定时广播实现的。缺省情况下,路由器每隔30秒向与它相连的网络广播自己的路由表,接到广播的路由器将收到的信息添加至自身的路由表中。每个路由器都如此广播,最终网络上所有的路由器都会得知全部的路由信息。正常情况下,每30秒路由器就可以收到一次路由信息确认,如果经过180秒,即6个更新周期,一个路由项都没有得到确认,路由器就认为它已失效了。如果经过240秒,即8个更新周期,路由项仍没有得到确认,它就被从路由表中删除。上面的30秒,180秒和240秒的延时都是由计时器控制的,它们分别是更新计时器(_updateTimer)、无效计时器(Invalid Timer)和刷新计时器(Flush Timer)。 路由循环距离向量类的算法容易产生路由循环,RIP路由协议是距离向量算法的一种,所以它也不例外。如果网络上有路由循环,信息就会循环传递,永远不能到达目的地。为了避免这个问题,RIP等距离向量算法实现了下面4个机制。 水平分割(split horizon)。水平分割保证路由器记住每一条路由信息的来源,并且不在收到这条信息的端口上再次发送它。这是保证不产生路由循环的最基本措施。 毒性逆转(poison reverse)。当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除,而是用16,即不可达的度量值将它广播出去。这样虽然增加了路由表的大小,但对消除路由循环很有帮助,它可以立即清除相邻路由器之间的任何环路。 触发更新(trigger update)。当路由表发生变化时,更新报文立即广播给相邻的所有路由器,而不是等待30秒的更新周期。同样,当一个路由器刚启动RIP 路由协议时,它广播请求报文。收到此广播的相邻路由器立即应答一个更新报文,而不必等到下一个更新周期。这样,网络拓扑的变化会最快地在网络上传播开,减少了路由循环产生的可能性。 抑制计时(holddown timer)。一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新。如果,路由器从一个网段上得知一条路径失效,然后,立即在另一个网段上得知这个路由有效。这个有效的信息往往是不正确的,抑制计时避免了这个问题,而且,当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性。 即便采用了上面的4种方法,路由循环的问题也不能完全解决,只是得到了最大程度的减少。一旦路由循环真的出现,路由项的度量值就会出现计数到无穷大(_countto Infinity)的情况。这是因为路由信息被循环传递,每传过一个路由器,度量值就加1,一直加到16,路径就成为不可达的了。RIP路由协议选择16作为不可达的度量值是很巧妙的,它既足够的大,保证了多数网络能够正常运行,又足够小,使得计数到无穷大所花费的时间最短。 邻居有些网络是NBMA(Non-Broad_cast MultiAccess,非广播多路访问)

相关文档