编码器中RS422文档格式.docx
- 文档编号:18318655
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:10
- 大小:23.80KB
编码器中RS422文档格式.docx
《编码器中RS422文档格式.docx》由会员分享,可在线阅读,更多相关《编码器中RS422文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
接口的电气特性
在RS-232-C
中任何一条信号线的电压均为负逻辑关系。
即:
逻辑"
1"
为-3
到-15V;
0"
为+3
到+15V
。
RS-232-C
最常用的9
条引线的信号内容如下所示
DB-9
1
2
3
4
5
6
7
8
9
DB-25
20
22
定义DCD
RXD
TXD
DTR
GND
DSR
RTS
CTS
RI
(3)
接口的物理结构
接口连接器一般使用型号为DB-9
插头座,通常插头在DCE端,插座在DTE端.
PC
机的RS-232
口为9
芯针插座。
而波士RS-232/RS-485转换器的RS-232
为DB-9
孔插头。
一些设备与PC
机连接的RS-232
接口,因为不使用对方的传送控制信号,只需三条接口线,即"
发送数据TXD"
、"
接收数据RXD"
和"
信号地GND"
传输线采用屏蔽双绞线。
(4)RS-232
传输电缆长度
由RS
-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50
英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺,美国DEC公司曾规定允许码元畸变为10%而得出下面实验结果。
其中1
号电缆为屏蔽电缆,型号为DECP.NO.9107723
内有三对双绞线,每对由22#
AWG
组成,其外覆以屏蔽网。
号电缆为不带屏蔽的电缆。
型号为DECP.NO.9105856-04是22#AWG
的四芯电缆。
DEC
公司的实验结果
波特率bps
1号电缆传输距离(米)
2号电缆传输距离(米)
110
1500
900
300
1200
900
2400
150
∙2009-1-815:
33
∙
218.82.204.*
2楼
4800
75
9600
75
经过许多年来RS-232
器件以及通信技术的改进,RS-232
的通信距离已经大大增加。
波士电子的RS-232
增强器可以将普通的RS-232
口的通信距离直接延长到1000米。
二、什么是RS-485
1.
RS-485
的电气特性:
发送端:
以两线间的电压差为+(2
至6)
V
表示;
以两线间的电压差为-(2
至6)V
表示。
接收端:
A比B高200mV以上即认为是逻辑"
A
比B
低200mV
以上即认为是逻辑"
2.
RS-485(或
RS-422)的接线:
RS
-485(或
RS-422)通信建议一定要接地,因为RS-485(或
RS-422)通信要求通信双方的地电位差小于1V。
半双工通信接3根线(+A、-B、地),全双工通信接5根线(+发、-发、+收、-收、地)。
为了安全起见,建议通信机器的外壳接大地。
RS-422)光隔转换器的所有外接电源的“地”必须全部连在一起但不要与计算机外壳地相连,因为电源“地”同时也是RS-485或
RS-422的信号“地”。
当通信距离超过100米时建议最好使用光电隔离的通信接口转换器。
3.
的数据最高传输速率为10Mbps。
但是由于RS-485
常常要与PC
机的RS-232口通信,所以实际上一般最高115.2Kbps。
又由于太高的速率会使RS-485
传输距离减小,所以往往为9600bps
左右或以下。
4.
接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。
5.
RS-485接口的最大传输距离标准值为1200米(9600bps时),实际上可达3000米,RS-485
接口在总线上是允许连接多达128个收发器、即RS-485
具有多机通信能力,这样用户可以利用单一的RS-485
接口方便地建立起设备网络。
因RS-485
接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。
因为RS485
接口组成的半双工网络,一般只需二根信号线,所以RS485
接口均采用屏蔽双绞线传输。
的国际标准并没有规定RS485
的接口连接器标准、所以采用接线端子或者DB-9、DB-25
等连接器都可以。
波士RS-485
接口是事实工业标准。
6.
采用RS485
接口时,传输电缆的长度如何考虑?
在使用RS485
接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。
最大电缆长度与信号速率的关系曲线是使用24AWG
铜芯双绞电话电缆(线径为0。
51mm),线间旁路电容为52。
5PF/M,终端负载电阻为100
欧时所得出。
(引自GB11014-89附录A)。
当数据信号速率降低到90Kbit/S
以下时,假定最大允许的信号损失为6dBV
时,则电缆长度被限制在1200M。
实际上,在实用时是完全可以取得比它大的电缆长度。
当使用不同线径的电缆。
则取得的最大电缆长度是不相同的。
例如:
当数据信号速率为600Kbit/S
时,采用24AWG
电缆,最大电缆长度是200m,若采用19AWG
电缆(线径为0.91mm)则电缆长度将可以大于200m;
若采用28AWG
电缆(线径为0.32mm)则电缆长度只能小于200m。
RS-485的远距离通信建议采用屏蔽电缆,并且将屏蔽层作为地线。
3楼
三、什么是RS-422
RS-422
的电气性能与RS-485完全一样。
主要的区别在于:
有4
根信号线:
两根发送(Y、Z)、两根接收(A、B)。
由于RS-422
的收与发
是分开的所以可以同时收和发(全双工)。
有2
发送和接收都是A
和B。
由于RS-485
的收与发是共用两根线所以不能够同时收和发(半双工)。
能否将RS-422
的Y-A
短接作为RS-485
的A、将RS-422
的Z-B
的B呢?
回答:
不一定。
条件是RS-422
必须是能够支持多机通信的。
波士电子的所有接口转换器的RS-422
口都能够支持全双工多机通信,所以可以这样简单转换为RS-485。
四、RS-485
比RS-232接口相比有何特点?
由于RS-232
接口标准出现较早,难免有不足之处,主要有以下四点:
接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL
电平不兼容故需使用电平转换电路方能与TTL
电路连接。
(2)
传输速率较低,在异步传输时,波特率为20Kbps。
现在由于采用新的UART
芯片16C550
等,波特率达到115.2Kbps。
接口使用一根信号线和一根信号返回线而构成共地的传输形式,
这种共地传输容
易产生共模干扰,所以抗噪声干扰性弱。
(4)
传输距离有限,最大传输距离标准值为50
米,实际上也只能用在15米左右。
(5)RS-232
只允许一对一通信,而RS-485
接口在总线上是允许连接多达128个收发器。
五、串口通信功能的实现
利用VC++实现串口通信的方法有多种,我们采取直接调用Window
API中的一系列标准的串口通信函数,直接用这些标准函数来完成Windows下面的串口通信编程[11]。
利用WindowsAPI函数控制利用API
函数实现对RS232串口通信的访问,在实现控制通信中,我们必定要调动3个函数来实现对串口的控制:
CreatFile()函数实现串口初始化并打开串口;
ReadFile()函数接收串口传递过来的二进制流并返回数据到接收缓冲区中
WriteFile()把应用程序发出的指令送到发送缓冲区以供串口接收1.
打开串口
以下程序用于以同步方式打开串口COM1;
HANDLE
hCom;
DWORD
dwErrorHcomm=CreateFile(“COM1”,GENERIC_READ|GENERIC_WRITE
0,
NULL,OPEN_EXISTING,
0,
NULL);
if
(hComm==(HANDLE)0Xffff)
{
dwError=GetLastError();
MessageBox(dwError);
}
配置串口
配置串口是通过改变设备控制块DCB(Device
Control
Block)的成员变量值来实现的,程序实现如下:
DCB
dcb
dcb.BaudRate=9600;
//波特率为9600bps
dcb.ByteSize=8;
//数据位8位
dcb.Parity=EVENPARTTY;
//有校验
dcb.StopBits=ONESTOPRTT;
//一个停止位
SetCommState(hCom,&
dcb);
数据读写
对串口进行读写与对文件进行读写所用的函数相同,具体为可采用查询、同步、异步或事件驱动等方法对串口进行读写所用函数如下所示:
bReadStatus=ReadFile(hCom,buffer,length,&
length
&
m_lpOverlapped);
if(!
bReadStatus)
if(GetLastError()=ERROR_IO_PENDING)
WaitForSingleObject(m_lpOverlapped,hEvent,1000);
return((char)length);
return
0;
//写入函数程序为:
bWriteStatus=WriteFile(hCom,buffer,length,&
length,&
m_lpOverlapped)
bWriteStatus)
WaitForSingleObject(m_lpOverlapped,
hEvent,1000);
程序的编制
用VC++进行程序的编制首先要对串口进行初始化,设定端口,通信速率和校验方式,并在使用前打开串口,程序部分如下:
Cdialog:
:
OnInitDialog();
//TODO:
Add
extra
initialization
here
m_comm.SetCommPort
(1);
//选择串口1
m_comm.GetPortOpen())
m_comm.SetPortOpen(TRUE);
//打开串口1
m_comm.SetSettings(“9600,n,8,1”);
//设置串口参数
m_comm.SetRThreshold
(1);
m_comm.SetInputMode
(1);
//设置二进制模式
TRUE;
除了串口的位置和基本串口参数(数据传输速率9600bps,1位开始位,8位数据位,1位停止位,一位奇偶校验)设置外,为了实现实时数据采集功能,接受数据的读写要尽可能的快速,则设置RTHreshold=1即接收缓冲区收到一个字节产生OnComm事件InputLen=1每次读取一个字节。
如果
PC上位机在一定时间内不能将数据处理完,接收缓冲区会滞留数据,数据会产生丢失现象,我们必须对接受缓冲区进行适当的设置。
我们利用API函数实现串口通信的方法,实现了罗经及发射机对上位机串行通信的功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编码器 RS422