关键词:NRZ HDB3 单片机 E1收发芯片 DS2153Q
常用的NRZ码不适合在高速长距离数据通信的信道中传输,因而选用了另外一种编码—HDB3码。HDB3码是串行数据传输的一种重要编码方式。和最常用的NRZ码相比,HDB3具有很多优点,例如:消除了NRZ码的直流成分,具有时钟恢复更好的抗干扰性能,这使它更适合于长距离信道传输。
E1信号选用HDB3编码方式,速率2.048Mbps,可以在特性阻抗120Ω的RJ45平衡双绞线上传输1.5km,能够满足大多数情况下数据的高速长距离传输。在数据速率小于2.048Mbps的高速速率时,可以通过插入额外数据比特提高数据数率。E1收发芯片DS2153Q完全符合E1信号标准,而且具备外围微控制器接口,大大提高了该芯片的可用性。
E1有成帧、成复帧与不成帧三种方式。在成帧的E1中,第0时隙用于传输帧同步数据,其余31个时隙可以用于传输有效数据;在成复帧的E1中,除了第0时时隙外,第16时隙是用于传输信令的,只有第1~15,第17~31共30个时隙可用于传输有效数据;而在不成帧的E1中,所有32个时隙都可用于传输有效数据。本文提出的NRZHDB3码制转换器的E1工作在不成帧方式,也就是说E1的32个时隙均用于传输有效数据。
1 E1收发芯片DS2153Q简述
DS2153Q是Dallas公司的T1/E1收发芯片,符合最新的E1线路标准,包括ITU G.703、G.704、G.706、G.823、I.431、ETSI300 011、300 233、TBR12和TBR13等,该芯片能完成NRZ和HDB3码间的相互转换,码率可达2.048Mb/s,而且在片内集成了接收NRZ码的数据时将恢复电路,更有利于后级接收电路。片内D/A能够实现G.703标准的输出波形,适用于75Ω和120Ω特性阻抗的双绞线,并且具有完善的数据流状态监测功能,可以实时指示数据流的传输状况。
DS2153Q的外围微控制器接口使其可以很容易与单片机等MCU接口连接。其内部的71个8位寄存器使用户可以通过MCU对DS2135Q进行功能配置和状态监测这些寄存器主要有接收控制寄存器、发送控制寄存器通用控制寄存器、中断屏蔽寄存器和工作状态寄存器图1为DS2135Q的内部结构图。
2 码制转换器电路设计
NRZ-DB3码制转换器为NRZ码到HDB3码和HDB3码到NRZ码的转换,设计选用专用E1收到芯片DS2153Q和单片机AT89C51实现该码制的转换功能。该码制转换器把输入的NRZ转换为HDB3码输出,同时接收E1线路上的数据转换成HRZ码,并恢复出数据时钟,供后级数据接收单元使用。
AT89C51为Atmel公司的8位单片机,负责控制通信芯片DS2153Q的工作模式和状态监,使其完成NRZ码到HDB3码和HDB3码到HRZ码的转换。同时,该单片机的外围电路还包括μP监控电路IMP813L,用于提高码制转换器工作的抗干扰能力和可靠性。
图2是该码制转换器的结构框图。
DS2153Q的并行数据/地址线与单片机的P0口相连;片选信号选用单片机的P2.0;单片机的读写信号与DS2153Q的读写信号相连;同时,DS2153的两个中断申请线与单片机的INT0和INT1相连。这样DS2153Q可以通过中断的方式及时通知单片机自身的工作状态。AT89C51与DS2153Q的电路连接图如图3所示,通过以上的硬连接,实现单片机对DS2153Q的控制和状态监控。
图3 AT89C51与DS2153Q电路连接图
该码制转换器选用IMP813L作为μP监控电路,实现可靠上电复位和看门狗控制。DS2153Q的时钟信号是通过对单片机时钟信号的二分频来实现的。单片机选用16.384MHz的时钟信号,使用74HC74二分频后,得到8.192MHz的频率信号作为DS2153Q输入时钟。
在DS2153Q的电路设计中,为了使其工作在不成帧方式,发送的数据全部从TSER引脚输入,需要将引脚TLINK和TSER短接。发光二极管用于转换器的工作指示,可以直观判断当前数据转换是否正常。
该码制转换器使用特性阻抗120Ω的RJ45平衡双绞线进行数据传输,DS2153Q收发电路如图4所示,传输变压器输入输出匝数比为1:1.36。
3 单片机控制程序设计
转换器单片机控制程序包括两部分:DS2153Q的功能配置和DS2153Q工作状态监控。DS2153Q的功能配置实现HDB3码的正常动作;DS2153Q工作状态监控用来实时获得当前转换器是否工作正常,并及时上报和指示。
3.1 DS2153Q功能配置
转换器上电后,首先由μP监控电路进行有效复位,保证单片机的正常初始化,一单片机即进入通信芯片DS2153Q的配置过程。
①初始化测试寄存器,向相应测试寄存器写0即写。
②进行接收控制存器(RCR)的配置,包括接收帧模式、自动重同步使能、重同步准则和接收动态存储功能等,使DS2153Q接收单片工作在Auto Resync、Disable Elastic Store。
③进行发送控制存器(TCR)的配置,包括发送帧模式、自动设置故障位和16位引脚的功能选择等,使DS2153Q发送单元工作在E-bits not automatically set in the transmit direction,并根据当前转换模式的不同设置16引脚的功能,0=Receive Loss of Sync(RLOS)、1=Loss of Transmit Clock(LOTC)。
④进行通用控制存器(CCR)的配置,使能DS2153Q、HDB3码的接收和发送、配置错误计数器更新时间、禁止动态存储发送数据等。
⑤初始化中断屏蔽寄存器,使能接收载波丢失、接收失步中断、接收数据全0和全1中断,使能发送时钟丢失中断,通过这些中断使单片机可以及时得知DS2153Q的工作状态,实现单片机对其的实施监测。
⑥初始化传输线接口单元,向LIRST数据位写0,然后写1,使传输线接口进入正常工作模式。
⑦初始化传输线接口控制寄存器,包括传输波形选择、接收均衡器增益选择、抗抖动抑器选择等。
单片机控制流程如图5所示。
下面是DS2153Q的功能配置程序(部分)。
;*****************************************************;
MOV A,02H
MOV DPTR,#RCR1
MOVX @DPTR,A ;写寄存器RCR1,使能自动重新同步
NOP
MOV A,#04H
MOV DPTR,#RCR2
MOVX @DPTR,A ;写寄存器RCR2,禁止弹性存储功能
NOP
MOV A,#41H
MOV DPTR,#TCR1
MOVX @DPTR,A ;写寄存器TCR1,TSYNC为输出方式
NOP
MOV A,#0F9H
MOV DPTR,#TCR2
MOVX @DPTR,A ;写寄存器TCR2,E数据位禁止自动置位
NOP
MOV A,#44H
MOV DPTR,#CCR1
MOVX @DPTR,A ;写寄存器CCR1,允许接收和发
NOP ;HDB3码
NOV A,#00H
MOV DPTR,#CCR2
MOVX @DPTR,A ;写寄存器CCR2,配置错误计数寄存器
NOP
;********************************************************
3.2 DS2153Q状态监控设计
在完成DS2153Q的寄存器配置后,单片机即进入传输状态监测程序,实时监控DS2153Q的工作正常与否,包括状态寄存器的读取和DS2153Q中断的响应,并从中判断故障、及时通报。
(1)发送状态监控
DS2153Q的发送状态监控是通过单片机的INT1来实现的。当状态寄存器的发送状态位置1,则DS2153Q产生中断,片机响应该中断来读取当前状态寄存器的故障位。当读取完毕后,需要向该状态寄存器特定状态位写1,保证以后的故障可以正确置位。
下面给出了NRZ发送时钟丢失故障的状态监控程序(中断1处理程序)。
MOV DPTR,#SR2 ;读DS2153Q状态寄存器2
NOP
MOVX A,@DPTR
ANL A,#04H
JNZ ERROR
SJMP FAVER
ERROR:SETB ERR_SR
SJMP LOCKE
FAVER:CLR ERR_SR
LOCKE:JNB ERR_SR,WORK ;判断发送数据时钟丢失与否
SETB P1.0 ;故障,工作指示二极管灭
SJMP EVER
WORK:CLR P1.0 ;正常,工作指示二极管亮
EVER:MOV DPTR,#SR2
MOV A,#04H
MOVX @DPTR,A
RETI
(2)接收状态监控
DS2153Q的接收状态监控是通过单片机的INT0来实现的。当状态寄存器的发送状态位置1,则DS2153Q产生中断,单片机响应该中断来读取当前状态寄存器的故障位。当读取完毕后,需要向该状态寄存器的特定状态位写1,保证以后的故障可以正确置位。
下面给出了HDB3码接收载波丢失故障的状态监控程序(中断0处理程序)。
MOV DPTR,#SR1 ;读DS2153Q状态寄存器21
NOP
MOVX A,@DPTR
ANL A,#02H
JNZ ERROR
SJMP FAVER
EPPOR:SETB ERR_SR
SJMP LOCKE
FAVER:CLR ERR_SR
LOCKE:JNB ERR_SR,WORK ;判断接收载波丢失与否
SETB P1.0 ;故障,工作指示二极管灭
SJMP EVER
WORK:CLR P1.0 ;正常,工作指示二极管亮
EVER:MOV DPTR,#SR1
MOV A,#02H
MOVX @DPTR,A
RETI
4 总结
NRZ-DB3码制转换器采用E1收发芯片DS2153Q,完成NRZ码到HDB3码和HDB3码到NRZ码的转换,实现高速长距离的数据传输,使2.048Mb/s数据流在RJ45接口的双绞线上实现1.5km的传输距离,满足大多数的高速数据传输情况。