SRD短距离无线通讯的几种常用的编解码方法
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
随着无线通讯应用的日益普及,SRD应用随之增多。在应用中会遇到无线通讯相关的很多设计问题,比如调制方式,基带的编码方式,网络匹配,天线设计等等。这里笔者但就SRD(SHORT RANGE DISTANCE)无线产品应用中必须面对的基带数据编解码方式,搜集几种常用的方式,供大家参考。
SRD应用中编码方式有以下几种:
1.曼切斯特编码及反曼切斯特编码
2. 差分曼切斯特编码
3.双相位编码
4.PWM编码方式
5.类UART编码方式
一、编码方式
1. 曼切斯特编码—Manchester Code
曼切斯特编码 (也称为相位编码,简称PE),是一个线性码,该编码在每个数据位时间段内至少有一次电平跳变。因此 它也是自我时钟同步,意味着接收方可以在接收编码数据位同时可恢复时钟信号。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
图1—曼切斯特、反曼切斯特编码
特点:
1) 每个数据位以固定时间单位被发送。
2) 曼切斯特编码,数据位‘0’,表示为HIGH 到 LOW 的电平跳变; 数据位‘1’,表示为LOW 到 HIGH 的电平跳变。
反向曼切斯编码,数据位‘0’,表示为LOW 到 HIGH 的电平跳变; 数据位‘1’,表示为HIGH 到 LOW 的电平跳变。
3) 电平跳变在每个数据位时间宽度的中间进行。
4) 在数据位的起始点跳变是没有数据意义的。
2. 差分曼切斯特编码
差分曼切斯特编码在前面1)节基础上稍微改变一下。编码规则如下:
1) 当前发送数据位是“1”,则当前信号的前半部分信号同上一次信号发射的后半部分信号,即在数据位的开始不需要信号转变,仅在数据位时间的中间转变一次。
2) 当前发送数据为“0”,则当前信号的前半部分信号与上一次信号发射的后半部分信号相反,即在数据位的开始先转变一次,随后在数据位时间中间点再转变一次。
特点:
1) 噪音环境具有很低误码。
2) 重要的特性是只需信号的转变,同时不需判断信号极性。
3. 双极性编码方式
双极性编码方式
1) 在BIPHASE 0 模式下,数据位“1”,信号与上次发送的信号相反。数据“0”,信号在起始处与上次发送的信号相反,而且在信号周期的中间,信号再转变一次。
2) BIPHASE 1 模式下,数据位“<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0”,信号与上次发送的信号相反。数据“1”,信号在起始处与上次发送的信号相反,而且在信号周期的中间,信号再转变一次。
4. PWM 编码方式
PWM 编码方式如下:数据位“1”、“0”在数据位周期内采用不同MARK,SPACE 比例来表示。
下图示意一个PWM编码。
1) 数据位“1”, 在数据位周期内采用比例3:1的占空比,3X”MARK”: 1X”SPACE”.
2) 数据位“0”, 在数据位周期内采用比例1:3的占空比,1X”MARK”: 3X”SPACE”.
5. 类UART编码方式
类UART 方式就是,采用把一个数据字节分成两部分,奇数位部分、偶数位部分或高、低半字节,每位的数据按标准曼切斯特进行编码,“1”—》10;“0” ---01 。组合后的数据为一个字节,然后按UART 的格式发送出去。例如
奇偶拆分法:
b7b6b5b4b3b2b1b0.-->
odd_b=(data &0xaa) |(~(data&0xaa>1)); // b1,3,5,7
even_b=(~data&0x55)|(data&0x55); // b0,2,4,6
0XC7->11000111-> 1x0x0x1x.->10010110
X1X0X1X1->10011010.
半字节拆分法:
高半字节(msb nibble)、低半字节(lsb nibble)。
b7b6b5b4 b3b2b1b0
0x34à高半字节0X3 –〉0X01011010
低半字节 0X4 –〉0X01100101
编码表如下:
Nibble = 0 -> 01010101 , 0X55
Nibble = 1 -> 01010110, 0X56
Nibble = 2 -> 01011001, 0X59
Nibble = 3 -> 01011010, 0X5A
Nibble = 4 -> 01100101, 0X65
Nibble = 5 -> 01100110, 0X66
Nibble = 6-> 01101001, 0X69
Nibble = 7 -> 01101010, 0X6A
Nibble = 8 -> 10010101, 0X95
Nibble = 9 -> 10010110, 0X96
Nibble = A -> 10011001, 0X99
Nibble = B -> 10011010,0X9A
Nibble = C -> 10100101, 0XA5
Nibble = D -> 10100110, 0XA6
Nibble = E -> 10101001, 0XA9
Nibble = F -> 10101010, 0XAA
文章评论(0条评论)
登录后参与讨论