Questions tagged «rs232»

RS-232是大多数串行端口上使用的电气标准。请注意,此标准是+/- 15伏系统,需要FDMI转换器才能使其与TTL逻辑电平兼容。


3
232在RS232标准中代表什么?
通信标准RS232和RS485中的“ RS”代表“推荐标准”。但是,“ 232”或“ 422”或“ 485”名称传达什么信息?命名RS标准时,在字母“ RS”之后的数字使用什么命名约定?
32 rs232  rs485  rs422 

2
USB和RS232有什么区别?
谁能告诉我为什么人们使用USB或RS232。它们都是串行端口,对吗?而且我知道USB的速度要快得多(尤其是USB3.0),但是如果人们也愿意的话,我敢肯定他们可以成为RS232的后继产品。 那么,两者的优缺点是什么?
29 usb  serial  rs232 

6
串行协议定界/同步技术
由于异步串行通信甚至在当今的电子设备中也很普遍,我相信我们许多人会不时遇到这样的问题。考虑与串行线(RS-232或类似产品)连接并且需要连续交换信息的电子设备D和计算机。即每个发送一个命令帧,并每个发送一个状态报告/遥测帧答复(报告可以作为对请求的响应发送,也可以独立发送-在这里并不重要)。通信帧可以包含任何任意二进制数据。假设通信帧是固定长度的分组。PCPCX msDY ms 问题: 由于协议是连续的,因此接收方可能会失去同步,或者只是在进行中的发送帧中间“加入”,因此它只是不知道帧起始位置(SOF)在哪里。根据数据相对于SOF的位置,数据具有不同的含义,接收到的数据可能会永久损坏。 所需的解决方案 可靠的定界/同步方案可在恢复时间短的情况下检测SOF(即重新同步所需的时间不超过1帧)。 我了解(并使用了一些)的现有技术: 1)标头/校验和 -SOF作为预定义的字节值。帧末的校验和。 优点:简单。 缺点:不可靠。恢复时间未知。 2)字节填充: 优点:可靠,快速恢复,可与任何硬件一起使用 缺点:不适用于固定大小的基于帧的通信 3)第9位标记 -在每个字节之前附加一个位,而SOF标记为1和数据字节标记为0: 优点:可靠,快速恢复 缺点:需要硬件支持。大多数PC硬件和软件未直接支持。 4)第8位标记 -上面的一种模拟,同时使用第8位而不是第9位,每个数据字仅保留7位。 优点:可靠,快速的恢复,可与任何硬件一起使用。 缺点:需要从/到常规8位表示到/从7位表示的编码/解码方案。有点浪费。 5)基于超时 -假定SOF为某个已定义的空闲时间之后的第一个字节。 优点:无数据开销,简单。 缺点:不太可靠。在较差的计时系统(如Windows PC)上无法很好地工作。潜在的吞吐量开销。 问题: 还有哪些其他可能的技术/解决方案可以解决该问题?您能否指出上面列出的缺点,可以轻松解决这些缺点,从而消除它们?您(或您将)如何设计系统协议?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 


8
多个微控制器之间的通讯
我想开始实现一个由N个微控制器(N> = 2个MCU)组成的系统,但是我想知道让它们彼此通信的可能性。 理想情况下,将(N-1)个微控制器放置在充当客户端的房屋内部,而最后一个(“服务器”)微控制器则通过USB连接到PC。我现在遇到的问题是如何将这些(N-1)个微控制器连接到“服务器”。客户端MCU执行非常简单的任务,因此仅使用它们提供CAN / PHY-MAC的方法,使用ARM进行此类简单的工作可能不是一个好的解决方案。 对于大多数设备而言,每隔几分钟通信一次,对于其他设备而言,通信不会超过一次。速度不是很关键(消息很短):1 Mbit / s我认为对于我的目的来说是过大了。 我计划使用的MCU如下。 Atmel AVR Tiny / Mega 德州仪器MSP430 ARM Cortex M3 / M4 (可能是Atmel AVR UC3-32位) 我想尽可能避免使用PIC(个人选择),这仅仅是因为编程它们的可能性很小(上述所有功能都有或多或少的开源工具以及一些官方工具)。 我知道有些ARM提供CAN功能,但对其他ARM 不太确定。 现在,我想到了以下可能性: 简单的GPIO发送数据(例如,高电平时> 16位表示消息的开始,低电平时> 16位表示消息的结束)。但是,它必须处于标准频率<<(frequency_client,frequency_server)才能检测所有位。每个客户端MCU仅需要一根电缆。 RS-232:我认为这是迄今为止最常用的通信协议,但是我不知道它的扩展性如何。我现在正在考虑使用多达64个客户端MCU(可能以后再考虑) USB:AFAIK大多类似于RS-232,但是在这种情况下,它的扩展性不太好(尽管USB支持许多设备-如果我记得没错,则支持255-对于此应用程序可能过于复杂) RJ45 /以太网:这是我真正喜欢使用的,因为它可以无障碍地进行长距离传输(至少使用屏蔽> Cat 6电缆)。问题是成本(PHY,MAC,变压器等)。我不知道您是否真的可以在家焊接好。这样我就不需要客户端MCU 无线/ ZigBee:模块非常昂贵,尽管这可能是避免桌子后面出现“意大利面”的一种方式 射频模块/收发器:我说的是300 MHz-1 GHz频段的模块,因此在家里很难焊接。这些模块都是内置的,但它们与ZigBee相当昂贵(至少在Mouser,Sparkfun的RF模块似乎更便宜)。 能够?它似乎非常强大。即使我不打算在汽车应用中使用它,它仍然可能是一个不错的选择。 I²C / SPI / UART?再说一次-如果可能的话,最好避免电缆出现“意大利面条” PLC并不是真正的选择。随着长度的增加,性能会很快下降,并且取决于电网的电容负载。我认为价格方面与以太网大致相同。 …

6
最大串行电缆长度?
可以正常使用的串行电缆的最大长度是多少?串行电缆的长度是否与波特率有关?我正在以38400波特的速度和RS232通信使用大约5米的电缆,这太长了吗?
14 serial  rs232  cables 

2
RS232与USB CDC的服务质量/消息是否应包含校验和?
对于在我的USB-CDC设备和USB主机之间发送的数据,USB是否具有服务质量保证? 我知道在嘈杂的情况下(例如汽车诊断端口)使用传统的RS232时,经常发生不良位,以至于校验和对协议很重要。如果我要使这样的协议适合纯USB应用程序,我可以安全地省略校验和和相关的错误处理例程吗? 作为参考,我将AT91SAM7S256与Atmel提供的USB-CDC框架一起使用。 更新: 我在这个问题上使用了Google-Fu更长的时间,发现这篇文章描述了以太网仿真的CDC子​​类并指出: 通过USB电缆,封装的以太网帧从目标MAC地址开始,一直到帧校验和之前结束。(由于USB是可靠的传输方式,因此不需要帧校验和。) 它们可能意味着USB-CDC是可靠的传输,而不是一般的USB,因为如果程序无法足够快地轮询数据,则某些用于高吞吐量突发数据的设备类(网络摄像头?)可能不希望填充缓冲区。 我仍然希望对此进一步确认。

4
TX和RX相对于什么?
我一直在使用与PC进行RS232通讯的设备。由于他们定义了相对于器件的TX和RX引脚,因此有些困惑。在他们的定义中,它们用来表示TX是从设备发送数据的引脚。在我看来,这应该标记为RX,因为它是计算机接收到的引脚。 引脚应如何定义?它们是相对于每个设备还是相对于“控制器”?
11 rs232 



2
MAX232如何使电压加倍?
MAX232数据表 嗨,我目前是学生,请多多包涵! 我目前正在使用5V DC为MAX232供电,当我从VCC测量引脚3时,电压表的电压读数约为13V。使用高于5V的电源。到底是怎么回事?我知道它在数据表中说有一个倍压器,但是我不太确定倍压器是如何工作的,除了我们需要电容器外。


2
如何通过RS232在HP33120A上使用SCPI?
我有旧的Hewlet Packard 33120A函数发生器(应该与Agilent 33120A类型相同),我想用MCU(ATMega)对其进行控制。生成器具有RS232并使用SCPI命令。 我用MAX232制作了简单的RS232到TTL转换器,仅使用RX和TX线。根据用户指南(第4章,DTR / DSR握手协议部分),我将DSR绑定到逻辑TRUE(负电压),但未连接DTR。此配置应禁用硬件握手。 现在,我可以将转换器连接到MCU或计算机。在我的第一个实验中,我使用计算机和以下Python脚本: import serial, sys, time if __name__ == '__main__': if len(sys.argv) < 2: print 'Usage: %s <serial_port>' % sys.argv[0] sys.exit(1) s = serial.Serial(port=sys.argv[1], baudrate=2400, bytesize=8, parity='N', stopbits=2, timeout=None, xonxoff=0, rtscts=0) time.sleep(0.5) s.write('\n*CLS\n') time.sleep(0.5) s.write('SYST:REM\n') time.sleep(0.5) s.write('APPL:SIN 30E+3, 0.1\n') s.close() 这没有任何问题。发生器将其输出设置为预期的30kHz。问题是,当我尝试读取发电机的一些响应时。例如,这应该返回设备名称: s.write('*IDN?\n') print s.realine() …

6
通过USB到串行电缆编程Arduino时如何解决AVRdude非同步错误?
我正在尝试为PC 构建这种环境照明。这在我的Arduino Uno上完美运行。我的下一步是使用“面包板上的Arduino”进行制作。因此,我购买了一块空白的ATmega328芯片,并使用Arduino IDE和USBasp将Arduino引导加载程序(用于“ Arduino Duemilanove w / ATmega328”板)烧毁在其中。我知道这已经正确加载,因为该ATmega芯片在Uno上可以正常工作。 然后,我使用FT232RL制作了USB到串行转换器;但是它的驱动程序未安装在我的PC上(Windows 7 x64)。我怀疑我使表面安装的FTDI芯片过热并在手工焊接时将其杀死。 所以,我已经把它放在一边,并得到了这个 USB转串口转换器桥:(很抱歉的蹩脚的图片),我用了一个额外的ST232CN我的线路板,转换RS232到TTL电压水平,显示在此页面。正如我从环回测试中验证的那样,此方法工作正常。我已经将ST232的引脚9连接到ATmega的引脚2,并将引脚10连接到引脚3。 当我尝试从Arduino IDE 上传眨眼示例时,出现此错误: Binary sketch size: 1026 bytes (of a 30720 byte maximum) avrdude: stk500_getsync(): not in sync: resp=0x00 当我执行详细的上传(Shift + Upload)时,出现以下错误/消息: avrdude: usbdev_open(): did not find any USB device "usb" 另外,我尝试在ATmega的引脚2和3上添加1k上拉电阻,但没有帮助。所以我想现在的问题出在从ST232到ATmega的串行通信中?ATmega的Reset引脚是否有特殊连接?我用一个10k的电阻将其上拉至5V。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.