RS-232实现双机通信

一. RS-232串行通信接口标准

串行数据通信接口标准主要有RS-232、RS-422与RS-485,最初都是由电子工业协会(EIA)制订并发布的,这里使用RS-232来实现双机通信。
RS-232-C是美国电子工业协会EIA(Electronic Industry AssociaTIon)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。它的全名是“ 数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。

传统的RS-232-C总线标准采用标准25芯D型插头座(DB25),包含了两个信号通道,即主通道和副通道。利用RS- 232总线可以实现全双工通信,在多数情况下主要使用主通道。在一般应用中,使用3条~9条信号线就可以实现全双工通信,如采用三条信号线(接收线、发送线和信号地)能实现简单的全双工通信过程。

收、发两端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20Kbps。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。

在TXD和RXD数据线上:
(1)逻辑1的电平为-3V~-15V
(2)逻辑0的电平为+3~+15V的电压

在RTS、CTS、DSR、DTR和DCD等控制线上:
(1)信号有效(接通,ON状态)为+3~+15V的电压
(2)信号无效(断开,OFF状态)为-3~-15V的电压

也就是说,当传输电平的绝对值大于 3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义。因此,实际工作时,应保证电平在± (3~15) V之间。

  • 使用RS-232标准的串口设备间常见的通讯结构如下:
    在这里插入图片描述

TTL指双极型三极管逻辑电路,市面上很多“USB转TTL”模块,实际上是“USB转TTL电平的串口”模块。
这种信号0对应0V,1对应3.3V或者5V,与单片机、SOC的IO电平兼容。
进行串口通信的时候从单片机直接出来的基本上都是TTL电平。

USB TO TTL模块图如下:
在这里插入图片描述
我们要实现两台计算机之间的通信就需要使用两个USB TO TTL模块。

二. USB转TTL实现双机通信

1. 接线操作

在这里插入图片描述

  • 交叉接口:
    串口转TTL模块1的RX接串口转TTL模块2的TX
    串口转TTL模块1的TX接串口转TTL模块2的RX

2. 使用串口调试助手进行双机通信

  • 首先准备一个要发送的图片文件:
    在这里插入图片描述
  • 打开串口调试助手:
    打开文件,选择发送图片路径;
    选择端口号,并点击打开串口
    波特率默认为115200bps;
    在这里插入图片描述
    可以看到文件字节大小;
  • 发送文件,等待发送完成,可以看见预计用时约29.97s
    在这里插入图片描述
    根据手机计时,实际用时约34.33s(手动计时,略有误差)
    在这里插入图片描述
  • 在另一台电脑上,接收端接收成功
    在这里插入图片描述
    点击保存数据将接收文件进行保存;
    在这里插入图片描述保存成功后,进入保存路径,右击文件进行图片方式查看接收到文件,如下图所示:
    在这里插入图片描述
  • 另外,可以通过改变波特率,测试传输同一文件时的传输时间:
    ①当波特率为115200bps时,预计传输时间约为21.97s,实际传输时间为34.33s;
    在这里插入图片描述
    在这里插入图片描述
    ②当波特率为256000bps时,预计传输时间为9.97s,实际传输时间为17.69s;
    在这里插入图片描述在这里插入图片描述
    ③当波特率为512000时,预计传输时间为4.97s,实际传输时间为15.51s;
    在这里插入图片描述
    在这里插入图片描述

三. 总结

通过实验可知,实际传输时间比预计传输时间要大很多,因为实际传输中存在着时延,另外,文件的传输速率在一定程度上与波特率相关,在一定范围内,与波特率成正相关,倍数增长,传输消耗时间减少,但是波特率过大时,如在图片过程传输中,波特率由256000->512000,预计时间减少约一半,但是在实际传输过程中,消耗时间与256000波特率消耗时间差距不大,因此TTL标准传输距离相对较短、速度较慢。

四. 参考来源

https://blog.csdn.net/qq_54496810/article/details/121332728

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4路多功能控制器,IO板卡, 输出:4路继电器纯开关(每路大端子30VDC/250VAC10A内都可以) 输入:4路采集,每路5MA左右就可以采集到信号有无 通信方式:串口RS232(简单方便,所有上位软件都可以使用串口助手的源码修改)RS485(RTU模式,可以方便的用组态软件等开发) 4路控制器说明书产品介绍 本控制器带有4路采集和4路继电器输出,因灵活的使用方式被客户广泛的使用在各个行业及领域。同时带有二次开发协议,方便客户集成到自己的系统中。 技术规格 Ø产品型号:KMCZE-I4O4-U241.0 Ø外壳尺寸:长(115mm)宽90mm)高(45mm) Ø工作电源: 5/12/24VDC(采购时选择一种) Ø通信方式:USB(免驱)/RS232/RS485(采购时任选一种) Ø控制通道:4路(独立通断输出) Ø触发信号:电压有无(采集时功耗在5MA左右)/脉冲 Ø运行模式:电平触发/脉冲触发 二次开发协议 Ø波特率:115200 奇偶校验:0(无) 停止位:1位控制流:0(无) 全部以16进制发送命令 Ø1:控制输出 4路继电器单独控制任何一路通断输出 第一路通: 55 C801 0155 返回:1B DB 00 01 0C 第一路断: 55 C801 0055 返回:1B DB 00 00 0C 第二路通: 55 C802 0155 返回:1B DB 00 02 0C 第二路断: 55 C802 0055 返回:1B DB 00 00 0C 第三路通: 55 C803 0155 返回:1B DB 00 04 0C 第三路断: 55 C803 0055 返回:1B DB 00 00 0C 第四路通: 55 C804 0155 返回:1B DB 00 08 0C 第四路断: 55 C804 0055 返回:1B DB 00 00 0C 以上协议中,第3个字节表示哪一路(1,2,3,4),第4个字节表示通断(01通,00断) 返回的命令中,第3个字节表示当前输入端口4路的状态,第4个字节表示当前输出端口4路状态 4路继电器集中控制4路通断输出。 发送命令: 55 C805 0F55 返回:1BDB 000F 0C 以上协议中,0F表示要控制4路状态(8421码组合,第1路为1,第2路为2,第3路为4,第4路为8,哪几路通,就8421相加即可,如F表示全通,05表示1和3路通) 返回的命令中,第3个字节表示当前输入端口4路的状态,第4个字节表示当前输出端口4路状态 Ø2:4路输入端口状态和4路输出端口采集(读取) 发送:55C7 0100 55 返回:1BDB 000F 0C 返回的命令中,第3个字节表示当前输入端口4路的状态,第4个字节表示当前输出端口4路状态(4路输入和4路输出同样都是按8421码组合) Ø3:查询控制器版本信息 发送:55D3 D300 55 返回:AB2D AA20 3230 3137 3039 3034 3231 3531 3332 204B 4D43 5A45 2D49 3230 2D44 4151 2D56 312E 3020 3137 3039 3037 3133 3238 3434 3230 3136 3132 3038 3139 3336 3535 BA 返回数据中,第5个字节开始到18个字节表示当前软件版本号,第20个字节到37个字节表示本控制器最后测试生产日期,第39个字节到64个字节表示硬件基本版本号。将每一段数据转成字符即可。 注意事项 1、质保时间 非人为因素、非不可抗拒自然灾害出现的故障产品自销售之日起保修1年时间 2、质保范围 在上述质保时间内,本公司只负责对返回公司的故障产品进行维修或者更换。但下列清形除外: 1)不按产品使用范围或者规格使用产品者 2)非本公司进行的维修或者更换器件 3)非人为因素、非不可抗拒自然灾害出现的故障 4)产品流通时科技水平尚不能发现的缺陷 3、免责条款 2本公司只承诺维修或者更换返回公司的故障产品,因维修或者更换本产品带来的所有费用,本公司概不承担。 2在任何情况下,因使用本产品引起的一切损失,本公司不承担任何责任。 本公司已经研发生产各类IO板卡及控制器7年多,积累了各方面的经验及方案。欢迎大家采购或者达不到要求的可以订制。 二次开发协议(RS485 MODBUS RTU ) 波特率:9600 奇偶校验:0(无) 停止位:1位 控制流:0(无) 全部以16进制发送命令 1、查询输入端口状态(2号命令读开关输入状态,地址:10001-10004) 10001为X1地址,保存着X1当前状态(第一个开关量采集端口) 10002为X2地址,保存着X2当前状态(第二个开关量采集端口) 10003为X3地址,保存着X3当前状态(第三个

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值