1、+15V。噪声容限为2V。即要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号作为逻辑“1”(3)接口的物理结构RS-232-C接口连接器一般使用型号为DB-25的25芯插头座,通常插头在DCE端,插座在DTE端.一些设备与PC机连接的RS-232-C接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用DB-9的9芯插头座,传输线采用屏蔽双绞线。(4)传输电缆长度由RS-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范
2、围工作的,所以实际使用中最大距离会远超过50英尺,美国DEC公司曾规定允许码元畸变为10%而得出附表2的实验结果。其中1号电缆为屏蔽电缆,型号为DECP.NO.9107723内有三对双绞线,每对由22#AWG组成,其外覆以屏蔽网。2号电缆为不带屏蔽的电缆。型号为DECP.NO.9105856-04是22#AWG的四芯电缆。1.RS-232-C是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道,在多数情
3、况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。2.RS-485总线,在要求通信距离为几十米到上千米
4、时,广泛采用RS-485串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。以往,PC与智能设备通讯多借助RS232、RS485、以太网等方式,主要取决于设备的接口规范。但RS232、RS485只能代表通讯的物理介质层和链路层,如果要实现数据的双向
5、访问,就必须自己编写通讯应用程序,但这种程序多数都不能符合ISO/OSI的规范,只能实现较单一的功能,适用于单一设备类型,程序不具备通用性。在RS232或RS485设备联成的设备网中,如果设备数量超过2台,就必须使用RS485做通讯介质,RS485网的设备间要想互通信息只有通过“主(Master)”设备中转才能实现,这个主设备通常是PC,而这种设备网中只允许存在一个主设备,其余全部是从(Slave)设备。而现场总线技术是以ISO/OSI模型为基础的,具有完整的软件支持系统,能够解决总线控制、冲突检测、链路维护等问题。来源网址:从串口双机对联线缆指南 (一)串行通讯电缆的制作 无论是9孔插头,还
6、是25孔插头,其串行通讯电缆连接时都要遵循下列对接关系:SGSGTXDRXDRXDTXDRTSCTS CTSRTSDTRDSRDSRDTR 根据上述对接关系,就可以非常方便地连接串行通讯电缆。这里顺便介绍一下上述各引脚所代表的含义:SG英文全称为SignalGround/CommonReturn,表示信号地;TXD指TransmittedData,表示数据发送;RXD指ReceivedData,表示接收数据;RTS指RequestToSend,表示发送请求;CTS指ClearSend,表示清除请求;DTR指DataTerminalReady,表示数据终端准备就绪;DSR指DataSignalR
7、ateSelector,表示数据置位准备就绪。在制作9芯串口连线时,需要2个9孔插头和1.5米长的至少7芯的扁平电缆,引脚连线如下所示。9孔插头9孔插头引脚连线为:2-3、3-2、4-6、5-5、6-4、7-8、8-7。9孔插头25孔插头引脚连线为:2-2、3-3、4-6、5-7、6-20、7-5、8-4。25孔插头25孔插头引脚连线为:2-3、3-2、4-5、5-4、6-20、7-7、20-6。二、测试环境的构建:参考上面的(一)串行通讯电缆的制作,首先把两台电脑通过串口连结起来。当然,你也完全可以这么操作一台电脑上面的两个串口,而不需要两台电脑;如果你有两个串口的话。因为我以前做过工业控制
8、底层开发,所以我可以很容易的构建这个基本的环境;实际上,只要:color=redRxDTxD对接,GND直连即可,俗称三线连接。/color 这一点不做任何答疑。2.PHP运行环境的构建:操作系统:WindowsXP(其他Windows系统没有测试) PHP5.1.4:PECL5.1.4:解压PHP5.1.4,把PECL5.1.4之中的php_dio.dll放到PHP5.1.4的ext目录之下 把PHP5.1.4之中的php.ini-dist拷贝粘贴为php.ini,并打开设置然后保存:extension=php_dio.dll本帖最后由HonestQiao于2006-6-1222:31编辑H
9、onestQiao 回复于:2006-06-11 20:48:56三:参考资料:参考手册文档:如果代码之中有你没有见过,或者没有使用过,或者不熟悉的函数,请访问以上网址。主要使用了PHP的DirectIOFunctions.2006-6-1121:0649:05四:演示代码:color=Greenfont=TimesNewRomanS01/请求通讯S-C02/响应通讯LENDATA/LEN表示数据(DATA)长度DATA表示实际数据03/结束通讯说明:S表示上位机C表示下位机HQB232表示HonestQiao演示的基础(Base)RS232通讯协议,包含了协议的请求和响应,数据帧的结构。演示
10、过程为通讯的请求和响应,十次数据帧的发送,通讯的结束数据帧的结构为当前的序号,microtime(),随机字符串欢迎探讨PHP在RS232串口通讯上的应用。set_time_limit(0);exec(modeCOM1:baud=115200data=8stop=1parity=nxon=on);$fd=dio_open(,O_RDWR);if(!$fd) die(ErrorwhenopenCOM1$ffdio_stat($fd);print_r($ff);echoHQB232SERVERislistenningonCOM1n;/read$len2;$t=0;while($t+)RS232_C
11、lient.phpRS232演示下位机程序本程序与RS232_Server构成一个完整的演示系统,展示了PHP在RS232串口通讯上的应用。COM2:COM2CLIENTstartCOM2ndio_write($fd,chr(0).chr(1);C_SEND:while($t+)1000) if($data=chr(0).chr(2)C_RECV:10) $sdatasprintf(%03d,$t).=microtime()(randomkeys(rand(0,35) $slenstrlen($sdata); $stxlen%02d,$slen); dio_write($fd,$stxlen$
12、sdata($stxlen)$sdatan /sleep(1);dio_write($fd,chr(0).chr(3);functionrandomkeys($length)$pattern1234567890abcdefghijklmnopqrstuvwxyzfor($i=0;$i运行-CMD 然后转到PHP5.1.4目录之下,执行:php-fRS232_Server.php 下位机:RS232_Client.php 实际结果如下:F:usrlocalphp5e:RS232_Server.phpArray(device=3inodemode8192nlink1uidgiddevice_typ
13、esizeatimemtimectime)COM10102(53)001=0.192382001150031774(krruv981gpf1pmi1fz4qz09e9)(42)002=0.191448001150031775(jrhw41mphuy0ui)(40)003=0.191485001150031776(lqq560p6v17r)(36)004=0.191489001150031777(3ct02xmc)(28)005=0.192127001150031778(33)006=0.191625001150031779(2ilqf)(34)007=0.191678001150031780(vwmdfc)(62)008=0.191687001150031781(idb0laix4a6ryxz5nb7u74iaza601it6sv)(56)009=0.191701001150031782(r9ypgtvu4j7w1u141qx6im20ajy7)(53)010=0.191710001150031783(wq5mp1sdfuet1tp0x3vk67n47)03RS232_Client.phpCOM2(5