Board logo

标题: 单线能实现同步传输吗? [打印本页]

作者: porereading    时间: 2015-8-21 22:29     标题: 单线能实现同步传输吗?

同步传输即传输过程中包含了时钟,在常见简单的通信协议中传输时钟都是一根时钟线,一根数据线,如SPI。如果要是实现数据和时钟都使用一根线进行传输,并且协议简单,有这种协议吗?怎么进行编码与解码呢?怎么应用呢?

单线实现同步传输的回答是肯定,并且这种协议还有很多,曼切斯特编码(Manchester Encoding)就是其中的一种,曼切斯特编码也叫做相位编码(PE)和双相码(Biphase Code)。它的编码规则是将每个二进制码元变换成相位不同的一个方波周期。例如,消息码“0”对应相位,“1”对应相位0。也可以这样理解,每一位的中间有一跳变,位中间的跳变既作为时钟信号,又作为数据信号;从高到低跳变表示“0”,从低到高跳变表示“1”,如图1所示,以Manchester IEEE802.3为准。在传输码元信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量(高电平和低电平电压相反的情况),因此具有自同步能力和良好的抗干扰性能。小小的不足就是每一个码元都被调制成两个电平,所以数据传输的速率只有调制速率的1/2。



图1  曼切斯特编码传输协议


1、 编码
如图1所示,曼切斯特编码一种简单的实现就是数据和时钟的异或,这种实现的前提是数据是依据时钟信号进行输出,即当前的数据和时钟是同步的,这种方式实现在数据和时钟的边沿处可能会出现毛刺信号。如果数据和时钟异步的,那毛刺信号就很多了,就不能简单采用异或的方式实现。因此为了得到质量较好的曼切斯特编码不能简单的采用异或方式实现,另一种实现方式就是采用两倍的是时钟进行调制,即得到时钟双边沿,双边沿采用数据,依据数据的电平决定输出的信号,较好的实现方式就是采用状态机进行转换,由于实现比较复杂因此也就不详细讲解了。


2、 解码
如图1所示,曼切斯特解码一种简单的实现就是曼切斯特信号和时钟的异或,这种实现是不稳定的,因为解码端的时钟和编码端时钟是很难保证一样,都有各自的时钟抖动和偏差。因此保证正确的解码,一种好的实现方式是采用高频时钟信号去采用曼切斯特信号,得到曼切斯特信号的脉宽和边沿类型,脉宽可以得到时钟频率,脉宽和边沿一起可以解码出具体数据,由于实现比较复杂因此也就不详细讲解了。


3、 应用
由于曼切斯特编码具有自同步能力和良好的抗干扰性能,因此在智能变电站中,互感器采样得到数据传输通信就采用了曼切斯特编码作为传输协议,并定义了数据传输规约,简称为FT3。FT3是IEC60044-8电子式电流互感器标准里规定使用的帧格式,所以描述FT3实际上要从IEC60044-8的标准说起。FT3的数据传输采用串行传输,可采用异步方式传输,也可采用同步方式传输。


FT3同步传输介质宜采用光纤传输系统,逻辑“1”定义为“光纤亮”,逻辑“0”定义为“光纤灭”。传输比特速率为2.5Mbit/s或其整数倍。采样率为4KHz和12.8KHz。光波长范围为820nm~860nm(850nm),光缆类型为62.5/125μm多模光纤,光纤接头宜采用ST或FC接头。
数字编码采用曼彻斯特编码,首先传输MSB(最高有效位)。曼彻斯特编码:从高位转移到低位(下降沿)为二进制1,从低位转移到高位(上升沿)为二进制0,即图 1的Manchester G.E.Thomas。


FT3帧结构如表1所示。
(1) 每帧固定长度,每个字节8位。
(2) 每帧由起始符开始,起始符由两个字节组成,固定为0x0564。
(3) 报文类型:表示不同的帧类型和数据长度、信息排序。
(4) 用户数据,不同帧类型代表的意义不同。
(5) 用户数据之后跟随一个16位的CRC校验序列,由下列多项式生成校验,序列码为X16+X13+X12+X11+X10+X8+X6+X5+X2+1,生成的16比特校验序列再取反成为所要求的校验序列。


表1  帧结构表



数字变电站光分析仪DT6000系统都支持FT3的编码和解码,FT3的解码为自适应波特率,不需要用户配置波特率。并且解码自动识别报文类型,目前支持报文类型有,FT3标准帧、FT3扩展帧和四种互感器协议,自适应解码如图2所示。



图2  FT同步自适应解码


曼切斯特编码具有自同步能力和良好的抗干扰性能,单线串行传输数据和时钟,因此在智能变电站中,FT3协议就采用了曼切斯特编码作为传输协议,智能变电站光分析仪DT6000系列支持FT3的编码与解码,并且解码为自适应波特率,自识别FT3帧格式。





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0