编码原理
用于数字基带传输的码型种类较多,Manchester码是其中常用的一种。Manchester码是一种用跳变沿(而非电平)来表示要传输的二进制信息(0或1),一般规定在位元中间用下跳变表示”1″,用上跳变表示”0″曼彻斯特编码被被认为是一种自定时码自定时意味着数据流的精确同步是可行的。每一个比特都准确的在一预先定义时间时期的时间中被传送。
曼彻斯特编码提供了一种简单的方法在长时间段内没有电平跳变的情况下,仍然能够对任意的二进制序列进行编码,并且防止在这种情况下同步时钟信号的丢失以及防止低通模拟电路中低频直流飘移所引起的比特错误。如果保证传送的编码交流信号的直流分量为零并且能够防止中继信号的基线漂移,那么很容易实现信号的恢复和防止能量的浪费。曼彻斯特码具有丰富的位定时信息。
表示约定
对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,雷振甲编写的《网络工程师教程》中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是1从低到高的跳变是0,在维基百科网站中从低到高是0,从高到低是1,国外的网站有明确的表示方法。
第一种G. E. Thomas, Andrew S. Tanenbaum1949年提出的,它规定0是由低-高的电平跳变表示,1是高-低的电平跳变。
第二种IEEE 802.4(令牌总线)和低速版的IEEE 802.3(以太网)中规定,按照这样的说法,低-高电平跳变表示1,高-低的电平跳变表示0。
由于有以上两种不同的表示方法,所以有些地方会出现歧异。当然,这可以在差分曼彻斯特编码(Differential Manchester encoding)方式中克服。
编码应用
曼彻斯特编码已经被许多高效率且被广泛使用的电信标准所采用,例如以太网电讯标准曼彻斯特编码是一种超越传统数字传输的信道编码技术,由于其具有隐含时钟、去除了零频率信号的特性使得它在石油勘探测井中也得到广泛的应用。
编码流程
1.首先I/O口输出高电平。
2.检查数据是否发送完成,如果是,跳到步骤7。
3.检查下一个数据位的值。
4.如果是“1”,调用发送1的函数ManchesterOne(T)。
5.如果是"0",调用发送0的函数ManchesterZero(T)。
6.返回到步骤2。
7.I/O输出为高电平并返回。
解码步骤
1.获取数据流的波特率(或者已知数据流的波特率)。
2.同步数据流的时钟信号(实质是区分位帧边沿和半位帧边沿)。
3.根据上面两步对数据流进行解码。