APP下载

支持多点远距离通信的RS-232串行总线系统

2017-07-06黄建刚罗正华

关键词:控制电路示例差分

黄建刚, 张 敏, 罗正华

(成都大学 信息科学与工程学院, 四川 成都 610106)



支持多点远距离通信的RS-232串行总线系统

黄建刚, 张 敏, 罗正华

(成都大学 信息科学与工程学院, 四川 成都 610106)

针对RS-232标准的单端接口信号、抗干扰能力弱、速率低、通信距离短、只能实现点对点通信且没有自我检测功能等问题,提出一种支持多点远距离通信的RS-232串行总线系统.通过升级单端信号为差分信号,增加冲突检测电路、载波侦听电路与总线控制电路等,配合成熟的标准的冲突检测和回退算法,不仅解决了RS-232标准存在的问题,提高了信号抗干扰能力和传送速率,增加了通信距离,而且实现了多个RS-232设备间的相互通信及总线的自我检测功能.

多点通信;自我检测;差分信号;RS-232标准

0 引 言

随着计算机科学和通信技术的不断发展,RS-232接口因简单、方便且成本低而得到广泛应用[1-3].目前,RS-232接口已经集成到很多的处理器中,用于实现不同板卡、不同模块甚至不同机架、不同设备间的通信,比如,嵌入式CPU和主流计算机中均集成了RS-232.然而,RS-232标准存在的问题限制了其通信能力和应用领域,比如,接口信号是单端信号,抗干扰能力弱,通信距离短、速率低,只能实现点对点之间的通信,不能实现多点与多点之间的通信,没有规范总线的检测标准,缺乏自我检测功能等等.针对此类问题,本研究提出了一种支持多点远距离通信的RS-232串行总线系统,并详细介绍了系统的工作原理和实现方式.

1 系统总体方案

本研究提出的支持多点远距离通信的RS-232串行总线系统通过在原有RS-232接口的基础上增加以下电路来实现多点远距离通信,具体包括:

1)增加串口接口电路,将单端信号改变为差分信号,解决单端信号抗干扰能力弱及通信距离短的问题.信号质量得以保证,传输距离得到延长,同时提高了数据传送速率,从而提高了系统的性能.

2)增加冲突检测电路、载波侦听电路、总线转换电路和输出三态控制电路,同时采用成熟的标准CSMA/CA(载波侦听多址访问/冲突检测)算法[4],解决RS-232仅支持点对点通信而不支持多点对多点通信的问题,实现多个RS-232设备相互通信的能力.

3)增加环回检测电路,实现总线的自我检测功能,提高总线的维护能力.环回检测电路可同时应用于通信方式的控制,使本总线系统可以支持半双工和全双工通信,也支持主从方式通信和平等方式通信.

2 系统软件与硬件设计

2.1x-坚持CSMA/CD算法

CSMA/CD是由IEEE 802.3[4]标准规定的用于以太网通信的一种传输媒介接入控制算法,称为载波侦听多址接入/冲突避免算法.利用成熟的标准x-坚持CSMA/CD算法进行总线接入的控制,从而降低算法风险,提高算法可靠性与系统稳定性.以p-坚持CSMA/CD为例,其算法流程图如图1所示.

2.2 硬件设计

系统的硬件部分由RS-232串行差分总线和位于各个通信节点上的相关电路组成.RS-232差分总线系统框图如图2所示.系统中,差分总线由接收(receive,RX)和发送(transmit,TX)组成,主控器(micro-controller,MC)和节点(Node)挂接于差分总线上,MC与其他Node的收发交叉连接.MC和Node的串行总线部分的硬件功能框图分别如图3和图4所示.

图3和图4中,与本系统相关的电路包括:环回控制电路、串口接口电路、输出三态控制电路、冲突检测电路、载波侦听电路和保护电路.环回控制电路也可以放在Node上实现.

图1p-坚持CSMA/CD流程图

图2 RS-232差分总线系统框图

图3 主控器(MC)串行总线硬件功能框图

图4 节点(Node)串行总线硬件功能框图

3 实现功能与方式

3.1 实现功能

3.1.1 多点通信功能.

根据保护电路送过来的允许输出信号ENO,输出三态控制电路可以实现串行发送信号的高阻态控制.把不发送数据的MC或Node从RS-232差分总线上隔离,且不影响总线上数据的传送.把发送数据的MC或Node接入到RS-232差分总线上,实现数据的传送.

3.1.2 远距离传输能力.

RS-232的收、发信号通过串口接口电路,把原来的单端信号转换为差分信号,提高了信号的抗干扰能力,能够把传送距离延长至原来10倍以上.在确保一定误码率的情况下,信号质量的提高也能使数据的传送速率提高10倍以上.

3.1.3 自我检测功能.

系统的总线自检测原理如图5所示,以MC模块的电路为例,当环回控制电路在CPU的控制下,将RS-232差分总线的RX和TX连接在一起后,CPU在TXM信号线上发送的数据将通过环回电路回送到RXM接收信号线上,因此CPU可以对接收到的数据与发送出去的数据进行对比,以此判断总线功能是否正常.

图5 总线自检测原理图

3.1.4 总线工作方式.

如果环回控制电路将RX和TX连接在一起(见图5),则逻辑上RX和TX成为1根总线.总线上所有的MC/Node都处于平等地位,此时,总线工作在半双工平等通信方式下.此模式支持MC与多个Node之间,以及任意Node之间的通信.如果环回控制电路将RX和TX断开,则逻辑上RX和TX成为2根独立的总线.由于MC的TX与其他Node的RX相连接,MC的RX与其他Node的TX相连接,此时,MC可以与其他任意Node进行全双工通信.

当各个Node要发送数据时,可以采用2种接入方式,即主从接入方式与竞争接入方式.在主从接入方式下,不需要CSMA/CD算法,总线的控制权由MC掌握,各个Node的发送时机也由MC控制,通过MC轮询各个Node是否有数据需要传送来实现总线的接入控制;在竞争接入方式下,MC不主动发轮询操作,而是由所有的Node通过CSMA/CD算法对总线控制权进行竞争.

3.2 实现方式

系统的软件的实现可以采用C语言或其他语言;硬件电路可以由成熟的芯片实现,也可以由FPGA/CPLD实现.

3.2.1p-坚持CSMA/CD算法软件示例.

//程序基于8051等单片机编写

//回退算法程序示例

//程序中预先设定的p值是CSMA-p.

bit Bus-Status(void)

{ uchar i;

Watch-Dog=ON;//清看门狗

Watch-Dog=OFF;

Bus-State-ptr=( uchar xdata * ) STATECS;

Bus-Status=*Bus-State-ptr;//获取载波侦听电路给出的总线状态信号

if(Status) return((bit)0);//如果总线忙,返回;

if(rand()<=CSMA-p) return((bit)1);//如果总线闲,并且x

else

{for(i=0;i<=20;i++);Watch-Dog=ON;Watch-Dog=OFF;return((bit)0); }

}

//总线自我检测程序示例

void Test-Bus(void)

{ data uchar i;

bit Err-Flag=FALSE;

Control-ptr=(uchar xdata *)CONTROLCS;

putout(″Waiting for checking BUS… ″);

Watch-Dog=ON;//清除看门狗

Watch-Dog=OFF;

ES=OFF;

while(!Bus-Status());//获取总线控制权

*Control-ptr=TX-E;

SM2=OFF;

REN=ON;

SBUF=Addr-Char[0];

while(!TI);//等待发送完成;

TI=OFF;

for(i=0;i<=10;i++);

*Control-ptr=OFF;

SM2=ON;

Watch-Dog=ON;

Watch-Dog=OFF;

if(!RI)//如果没有接收到数据

{ Err-Flag=TRUE;

putout(″FAULT 21--BUS ERROR:LOOPBACK Error! ″);}

else

{ RI=OFF;

i=SBUF;

if(i!=Addr-Char[0])//如果数据检验出错

{ Err-Flag=TRUE;

putout(″FAULT 20--BUS ERROR:Parity Check Error! ″);}

else Err-Flag=FALSE;/* Bus is OK! */

Watch-Dog=ON;

Watch-Dog=OFF;}

Watch-Dog=ON;

Watch-Dog=OFF;

ES=ON;

putout(″Bus self-test is Over! ″);

return;

}

3.2.2 硬件电路示例.

以成熟的74系列通用芯片和MAX491[5]为例,系统主要的电路实现如图6~8所示.

图6 串口接口电路、环回控制电路和输出三态控制电路示例

图7 保护电路示例

图8 载波侦听电路示例

图8中,TX-CLK是RS-232发送比特时钟.载波侦听检测电路共检测了12 bit时长,根据串口通信帧格式,最长的帧长为“1 bit起始比特+8 bit数据比特+1 bit校验比特+1 bit停止比特”,共11 bit.侦听12 bit时长可以确保不误检测.如果任一个比特为0,则输出的STA为1,表明总线忙.

4 结 论

本研究提出了一种支持多点远距离通信的RS-232串行总线系统,在解决RS-232标准固有缺陷的基础上,充分利用处理器集成的RS-232接口实现板卡、模块及设备等相互之间的通信,使系统互连更加灵活、方便,管理更加智能、高效,同时也使处理器在选型时不再受接口类型的限制,能够充分发挥处理器的性能.

[1]EIA.Interfacebetweendataterminalequipmentanddatacommunicationequipmentemployingserialbinarydatainterchange:EIAstandardRS-232-C[S].Washington,USA:Electronic Industries Association Engineering Department,1969.

[2]EIA.Ilectricalcharacteristicsofbalancedvoltagedigitalinterfacecircuits:EIAstandardRS-422-A[S].Washington,USA:Electronic Industries Association Engineering Department,1977.

[3]EIA.Electricalcharacteristicsofgeneratorsandreceiversforuseinbalancedmultipointsystems:EIAstandardRS-485-A[S].Washington,USA:Electronic Industries Association Engineering Department,1983.

[4]IEEE.Part3:carriersensemultipleaccesswithcollisiondetection(CSMA/CD)accessmethodandphysicallayerspecifications:IEEEstandardIEEE802.3-2000[S].New York,USA:LAN/MAN Standards Committee of the IEEE Computer Society,2000.

[5]MAXIM.MAX491-±15KVESD-Protected,Slew-Rate-Limited,Low-Power,RS-485/RS-422Transceivers[EB/OL].[1996-01-01].http://pdf1.alldatasheetcn.com/datasheet-pdf/view/73496/MAXIM/MAX491.html.

RS-232 Serial Bus System Supporting Multi-point Long-distance Communication

HUANGJiangang,ZHANGMin,LUOZhenghua

(School of Information Science and Engineering, Chengdu University, Chengdu 610106, China)

There are many problems in RS-232 standard,including single-end signal with poor ability of anti-jamming,slow rate of data transmission,short distance of communication,only supporting point to point communication,no self-detecting function and so on.In order to solve these problems,this paper designs a new RS-232 serial bus system which supports multi-point long-distance communication.By updating single-end signal to differential-pair signals,adding the collision detection circuit,carrier sense circuit,and bus control circuit and by using mature standard conflicting detection and back-off algorithm,the new RS-232 serial bus system not only solves the problems of RS-232 standard,improves the anti-jamming ability and the transmission rate,and increases the communication distance,but also realizes the communication between multiple RS-232 devices,and achieves the bus self-detect function.

multi-point communication;self-detect;differential-pair signal;RS-232 standard

1004-5422(2017)02-0172-04

2017-04-06.

黄建刚(1970 — ), 男, 硕士, 高级工程师, 从事计算机通信与信息系统研究.

TP336;TP311.521

A

猜你喜欢

控制电路示例差分
RLW-KdV方程的紧致有限差分格式
数列与差分
2019年高考上海卷作文示例
常见单位符号大小写混淆示例
2017款本田雅阁车控制电路(二)
常见单位符号大小写混淆示例
“全等三角形”错解示例
2014款雷克萨斯CT200h车控制电路(一)
2018款别克GL8车控制电路(二)
2016款迈腾B8L车控制电路(一)