NRZ-HDB3码转换器的高速长距离通信
⑦初始化传输线接口控制寄存器,包括传输波形选择、接收均衡器增益选择、抗抖动抑器选择等。
单片机控制流程如图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)发送状态监控javascript:window.open(this.src);" style="cursor:pointer;"/>
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的传输距离,满足大多数的高速数据传输情况。