4KNX TP1报文Word文档格式.docx
《4KNX TP1报文Word文档格式.docx》由会员分享,可在线阅读,更多相关《4KNX TP1报文Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
8.TPl报文目标地址………………………………………………………………………….9
9.TP1报文校验字节…………………………………………………………………………10
图1:
TP1报文:
概述
1TP1报文
一旦有事件发生(例如,按下按钮时),总线设备就会向总线发送报文。
经过长度不短于tl的总线空闲时间之后,开始进行传输。
报文传输完成之后,总线设备将使用时间t2检查报文是否已被成功接收。
所有“被寻址”总线设备会同时确认报文接收。
图2:
TP1报文结构
2TP1报文结构
报文包含总线相关数据和实用数据,这些数据可以提供与事件(例如,按下了某个按钮)有关的信息。
整个信息以8位字符的形式传输。
报文中还含有检测传输错误的测试数据:
据此可以确保传输具备极高的可靠性。
3TP1报文的时间需求
报文传输速率为9600位/秒,即,每传输一个位占用的总线时间为1/9600秒或104
。
每个字符有11位。
字符与字符还插入了2个暂停位,因此,单个字符(13位)的总传输时间为1.35ms。
图3:
报文的时间需求
根据净负荷长度的不同,报文可能包含8至23个字符。
确认信息仅需一个字符。
考虑到总线空闲时间t1(50位)和确认等待时间t2,单个报文占用的总线时间为20至40ms。
开关报文(含确认)的总线占用时间为20ms。
文本传输报文则占用总线长达40ms。
图4:
报文确认1
4TP1报文确认
根据报文中的检验字节,接收总线设备可以检查接收是否正确无误,并据此发回相应的确认信息。
图5:
报文确认2
收到NAK(接收错误)应答时,通常会重复发送报文三次。
若收到BUSY(总线仍被占用)确认,发送总线设备将会等待一个短时隙,此后重新尝试发送报文。
若发送总线设备未收到确认,则最多重复发送该报文三次,此后,中止发送请求。
图6:
计数系统
5章节“报文”参考附录
5.1计数系统
计数系统使用术语“基数”和“数字”进行分类。
各种计数系统中,最大数字都比基数小1。
5.1.1十进制
十进制计数系统最为常用。
人类以十进制数的方式进行思考问题。
除非特别说明,计数系统均指十进制计数系统。
5.1.2二进制
这种数值表示方法对于计算机极为重要,因为硬件存储单元仅能理解两种状态(0,1),存储单元的内容称为“位”。
5.1,3十六进制
4位二迸制数的组合构成一个十六进位数。
这种数据表示方法更加简明、清晰。
图7:
数据格式
处理数据时离不开各种不同的数据格式。
数据格式内容可以表示为二进制、十进制或者十六进制等形式。
数值转换
为了在不同计数系统之间进行切换,必须对数据进行转换。
二进制数或十六迸制数转换成十进制数
将数分解为各个幂,然后进行相加。
例如:
OA9HEX=0x162+10x161+9x160
=0x16x16+10x16+9xl
=169DEC
十进制数转换成二进制数或十六进制数
采用目标计数系统(二进制或十六进制)的基数,连续除需要转换的数,直到原数等于零。
每次除法的余数,按倒序从后向前排序,构成转换后的数。
除运算余数
169:
2=841
84:
2=420
42:
2=210
21:
2=101读数顺序
10:
2=50
5:
2=21
2:
2=10
1:
2=01
169DEC=10101001BIN
二进制数转换成十六进制数
通常,将二进位数按四位一组进行划分,就可以更快地转换成十六进制数。
每个四位二进制数组对应于十六进制数的一个数位。
可能需要添加前导零。
图8:
TP1报文的控制字段
6TP1报文的控制字段
如果有一个被寻址总线设备返回一个否定确认,则需要重复发送报文。
此时,报文中的“重复位”0将会被置位(即被设置为“l”)。
据此,已经完成相应指令的总线设备将不会再次执行此指令。
仅多个总线设备试图同时发送时,才需要使用传输优先级。
采用ETSTM,可以为每个组对象设置所需要的优先级(系统功能除外)(见章节“通信”)。
标准设置均采用低优先级。
图9:
报文源地址
7TP1报文源地址
见章节“通信”。
图10:
报文目标地址
8TP1报文目标地址
目标地址通常为某个组地址(见章节“通信”)。
但是,也可以为某个物理地址(系统报文)。
基于位17,接收方可以判定目标地址为组地址还是物理地址:
若第17位为“0”,则目标地址是物理地址;
仅对一个总线设备寻址
若第17位为“1”,则目标地址是组地址;
拥有此地址的所有总线设备全部被寻址
图11:
TP1报文校验字节
9TP1报文校验字节
检测数据采用校验位(字符校验)和校验字节(报文校验)的形式传输,用于检测报文传输错误。
报文中的每个字符均执行偶校验,即,接收到的校验位P的值(0或1)与其它所有位之和(D0-D7加上Pz)等于0。
此外,报文中的全部字符的每一个位位置均执行奇校验,例如,接收到的校验位S7的值0或l与其它所有数据位(D7加上校验位S7)之和等于l。
字符校验和报文校验相结合,即构成了所谓的“交叉校验”。