FPGA第十篇:RS422电气标准、通信协议及实现(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30866297/article/details/51492041

这作为一项任务已经布置下来了,那么我是一定会完成的,毫无疑问地。

基本认识:

(1)RS-422标准全称是“平衡电压数字接口电路的电气特性”;

(2)RS-422支持点对多的双向通信(一主最多10从);

(3)RS-422是差模传输,抗干扰能力强,能传1200米,RS232最多传输15米。

(4)RS-422平衡双绞线的长度与传输速率成反比,最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。在 100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为 1Mb/s。

--------------------------------------------------------------------2015.5.25更新-----------------------------------------------------------------------------

想要搞懂RS422,还是得从RS232开始。既然网上找不到一篇特别好的,那我就自己从网上查资料,边查边问边做,希望能够整理出一份尽可能完善的文章。

一、RS-232/422/485继承关系

都是串行数据通信接口标准,都是由电子工业协会(EIA)制订和发布的,其中RS232是在1962年发布,RS422由RS232发展而来,它是为了弥补RS232通讯距离短、速率低的缺点而提出的,RS422定义了一中平衡传输方式,将传输速率提高到10Mbps,传输距离延长到4000英尺(速度低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为了扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是以“RS”作为前缀的,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。
RS-232、RS-422、RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,因此用户可以在此基础上建立自己的高层通讯协议。

可知,后一个的发展都是为了弥补前者的不足。


二、RS-232串行接口标准
目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。收、发端的数据信号是相对于信号地。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平(**********为什么要这样呢?**********)。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20Kbps。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3kΩ~7kΩ。所以RS-232适合本地设备之间的通信。

名词解释:
(1)单端标准=不平衡传输方式=单端通讯:收发端的数据信号是相对于信号地。
(2)TTL电平:
输出 L: <0.8V ; H:>2.4V。
输入 L: <1.2V ; H:>2.0V
TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2V就认为是1。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-2.4)/2=1.3V。

(3)RS-232电平:
发端:逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次。
收端:逻辑1的电平为-3~  -12V,逻辑0的电平为+3~+12V。

(4)共模抑制能力:如何去衡量共模抑制能力?这个问题,我想先放下在这里,后续另辟一篇。

差模信号、共模信号、共模抑制比的概念 参考这个网址http://wenku.baidu.com/linkurl=TWazWrBTgLdtVenUFUFcRlGB7_oG0_0QFXa_Y-exQbkeVPEic6Jj96N1x9YXb3HGcZavN3y2cZf2AFOPe7MdPD5LsVDDgwMpyHtDs_1Jv8C


三、RS-422与RS-485串行接口标准

1)平衡传输
RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2V~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。


2)RS-422电气规定
由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设 备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mbps。其平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mbps。RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。


3)RS-485电气规定
由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信(*****************why?*****************)。RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mbps。平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mbps。


 三、串口插口种类及转换
串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。以上我们了解了串口的协议,而我们日常工作中接触最多的是实际的一些设备的外部接口,我们如何从外形上就知道它是那种接口呢?制作线缆各针脚如何定义?上面我们知道了串口RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。从我们实际工作中碰到的使用最多的插口有三种DB9、DB25、RJ45,上面三种插口插件都可以用作串口插口插件,也可以通过线缆进行插口之间的转换。下面我们就三种插口的针脚定义分别说明,三个插口之间的转换也只要按照插口定义的线缆跳接即可。
PC机常用的RS232串口DB9(公型插座)和DB25(母型插座)接头如下所示:

其中DB25很少使用,DB9各信号定义如下:
DCD:Carrier Detect  载波检测
RXD:Receive Data  接收数据
TXD:Transmit Data  发送数据
DTR:Data Terminal Ready  数据终端准备完成
SG:System Ground  信号地
DSR:Data Set Ready  数据准备完成
RTS:Request to Send  发送请求
CTS:Clear to Send  发送清除
RI:Ring Indicator  振铃指示

四、RS-422怎么实现?

我:我看了下RS-422的电气标准,但是对于RS-422

PM说:你看那个干啥?你要看RS422的时序,跟485的时序差不多。你现在要做的是:把RS-232的程序整理成模块,然后在板子上运行。


ok,PM怎么说,我就怎么做呗。所以我还是要先把RS-232在板子上运行起来。


---------------------------------------------------2015.05.27-----------------------------------------------------

已经完成了串口的环回调试,其中的关键步骤有:

(1)顶层模块的编写(栋哥帮助)

(2)TX_Data的保持(小白)

(3)TX_En_Sig的产生(晓辉学长)

具体实现方法以及代码在工作机中保存。

-------------------------------------------------2015.05.27---------------------------------------------------

今天取得了一下进展:

(1)将波特率有4Mbps改为9600bps,以及做了相关的修改

(2)用RX_Done_Sig信号空RX_En_Sig信号(栋哥帮助

(3)运行结果完全没有问题,仿真已经完成了,结果正确

我的疑问是:两个信号互相制约是可以的吗?

老白:FPGA中本来就是这样的啊,不同的信号相互制约,已完成正确的逻辑。

下一步任务是,写ucf文件进行管脚分配

 








展开阅读全文

没有更多推荐了,返回首页