原创 SRD短距离无线通讯的几种常用的编解码方法

2010-3-10 21:55 3486 7 7 分类: MCU/ 嵌入式

SRD短距离无线通讯的几种常用的编解码方法


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


    随着无线通讯应用的日益普及,SRD应用随之增多。在应用中会遇到无线通讯相关的很多设计问题,比如调制方式,基带的编码方式,网络匹配,天线设计等等。这里笔者但就SRDSHORT RANGE DISTANCE)无线产品应用中必须面对的基带数据编解码方式,搜集几种常用的方式,供大家参考。


  SRD应用中编码方式有以下几种:


1.曼切斯特编码及反曼切斯特编码


2. 差分曼切斯特编码


3.双相位编码


4PWM编码方式


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 在数据位周期内采用比例31的占空比,3X”MARK”: 1X”SPACE”.


2)              数据位“0”, 在数据位周期内采用比例13的占空比,1X”MARK”: 3X”SPACE”.



点击看大图 


 


 


 


5. UART编码方式


  UART 方式就是,采用把一个数据字节分成两部分,奇数位部分、偶数位部分或高、低半字节,每位的数据按标准曼切斯特进行编码,“110;“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 -> 100110100X9A


Nibble = C -> 10100101, 0XA5


Nibble = D -> 10100110, 0XA6


Nibble = E -> 10101001, 0XA9


Nibble = F  -> 10101010, 0XAA


 


 


 


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条