串口线的传输距离引发的思考

1.串口232

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

2.串口485

RS485接口传输电缆的长度:在使用RS485接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。最大电缆长度与信号速率的关系曲线是使用24AWG铜芯双绞电话电缆(线径为0.51mm),线间旁路电容为52.5PF/M,终端负载电阻为100欧时所得出。(引自GB11014-89附录A)。当数据信号速率降低到90Kbit/S以下时,假定最大允许的信号损失为6dBV时,则电缆长度被限制在1200M。实际上,在实用时是完全可以取得比它大的电缆长度。当使用不同线径的电缆。则取得的最大电缆长度是不相同的。例如:当数据信号速率为600Kbit/S时,采用24AWG电缆(线径为0.51mm),最大电缆长度是200m,若采用19AWG电缆(线径为0.91mm)则电缆长度将可以大于200m;若采用28AWG电缆(线径为0.32mm)则电缆长度只能小于200m。RS-485的远距离通信建议采用屏蔽电缆,并且将屏蔽层作为地线。

3.串口422

RS-422的电气性能与RS-485完全一样。

4.USB

USB接口是电脑主板上的一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB接口速度快、连接简单、不需要外接电源,传输速度12Mbps,最新USB2.0可达480Mbps;电缆最大长度5米,USB电缆有4条线,2条信号线,2条电源线,可提供5伏特电源,USB电缆还分屏蔽和非屏蔽两种,屏蔽电缆传输速度可达12Mbps,价格较贵,非屏蔽电缆速度为1.5Mbps,但价格便宜;USB通过串联方式最多可串接127个设备;支持热插拔。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在 OpenMV 上通过串口传输测量距离数据,你需要使用合适的传感器来测量距离,并将测量到的数据通过串口发送给外部设备。以下是一个示例代码,展示了如何使用 HC-SR04 超声波传感器在 OpenMV 上测量距离并通过串口发送数据: ```python import pyb # 初始化超声波传感器引脚 trigger_pin = pyb.Pin("P0", pyb.Pin.OUT_PP) echo_pin = pyb.Pin("P1", pyb.Pin.IN) # 初始化串口 uart = pyb.UART(3, 115200) # 使用 UART3,波特率为 115200 # 发送测量距离数据 def send_distance(distance): uart.write("Distance: %.2f cm\r\n" % distance) # 测量距离 def measure_distance(): # 发送超声波触发信号 trigger_pin.high() pyb.udelay(10) trigger_pin.low() # 等待接收回波 while echo_pin.value() == 0: pass start_time = pyb.micros() while echo_pin.value() == 1: pass end_time = pyb.micros() # 计算距离 duration = end_time - start_time distance = duration * 0.0343 / 2 # 声速为 343m/s,除以2得到单程距离 return distance # 主循环 while True: distance = measure_distance() send_distance(distance) pyb.delay(1000) # 延迟1秒 ``` 在示例中,我们使用 HC-SR04 超声波传感器来测量距离。首先,我们通过 `pyb.Pin` 类初始化了超声波传感器的引脚,将触发引脚设置为输出模式,接收引脚设置为输入模式。然后,我们通过 `pyb.UART` 类初始化了一个串口对象,用于与外部设备进行通信。 在 `measure_distance()` 函数中,我们先发送一个触发信号,然后等待接收超声波的回波,并计算出测量的时间。根据声速和时间,我们可以计算出距离。最后,通过 `send_distance()` 函数将测量到的距离数据发送给外部设备。 在主循环中,我们不断地测量距离并发送数据,然后延迟一段时间(这里是1秒),以控制测量频率。 请注意,在使用超声波传感器时,需要根据具体的硬件和应用场景进行适当的配置和处理。此外,还需要确保发送端和接收端的串口设置一致,以确保数据的正确传输
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值