这作为一项任务已经布置下来了,那么我是一定会完成的,毫无疑问地。 基本认识: (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-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电平: (4)共模抑制能力:如何去衡量共模抑制能力?这个问题,我想先放下在这里,后续另辟一篇。 差模信号、共模信号、共模抑制比的概念 参考这个网址http://wenku.baidu.com/linkurl=TWazWrBTgLdtVenUFUFcRlGB7_oG0_0QFXa_Y-exQbkeVPEic6Jj96N1x9YXb3HGcZavN3y2cZf2AFOPe7MdPD5LsVDDgwMpyHtDs_1Jv8C 三、RS-422与RS-485串行接口标准 1)平衡传输 2)RS-422电气规定 3)RS-485电气规定 三、串口插口种类及转换
其中DB25很少使用,DB9各信号定义如下: 四、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文件进行管脚分配
|
|