问几个关于UART的问题

1 UART的break信号在什么情况下用到,是怎么发送(对于transmitter)和检测(对于receiver)的?
2 UART的停止位为什么会有1.5bit和2bit的情况,出于什么考虑?对于receiver而言,检测1.5bit、2bit的停止位与检测1bit的停止位有什么不一样?
我也来说两句 查看全部回复

最新回复

  • addn14 (2008-10-29 11:42:46)

    1.对于receiver, When detect all bit (start+data+parity+stop)
       are 0 then set break signal to 1
    2.for receiver always detect 1 stop bit in 1,1.5,2 stop bit mode.
       and just transmitter can be config as those mode

    [ 本帖最后由 addn14 于 2008-10-29 19:22 编辑 ]
  • ericwang622 (2008-10-29 13:47:54)

    THX so much~
    但是break信号的作用是什么呢?Transmitter可不可以在发送过程中(in a frame)取消发送,how?
  • addn14 (2008-10-29 19:06:06)

    please see the pdf file page 13 as below
    http://www.datasheetcatalog.com/ ... N/S/8/INS8250.shtml
  • yxr1109@163.com (2008-10-29 19:26:30)

    学习了,Thx
  • ericwang622 (2008-10-29 21:40:47)

    THX again for your generous share.
    It provides more info than 16550 datasheet at hand
  • ericwang622 (2008-10-31 18:00:22)

    再问一个问题
    对于transmitter来说,要发送break信号,是软件去置位控制寄存器中的break control bit,但是这一位的清零是由软件来做还是硬件自动清零?
  • addn14 (2008-10-31 21:30:33)

    break control bit
    set/reset by 软件
    not 自动清零by硬件
  • ericwang622 (2008-11-01 10:50:35)

    QUOTE:

    原帖由 addn14 于 2008-10-31 21:30 发表
    break control bit
    set/reset by 软件
    not 自动清零by硬件
    因为在网上搜到一些UART的operation manual,看到有UART控制器的break control bit是自动清零,就是发送完1 frame的0之后,TX自动回到高电平,结束break。但是MS大多数都是软件清零的。
    如果是软件清零的话,怎么保证break信号的0一定是超过了1 frame的呢?就是说要根据波特率算一下1 frame的时间长度,然后在break control bit置位后软件delay至少这么长的时间再去清除该位?这样的话感觉操作稍显笨拙:)
  • addn14 (2008-11-01 19:05:17)

    8250,16450,16550 uart ICs (TX) are not 自动清零

    if you design uart HDL code,can chang this function to auto-reset
  • flyingwxj (2008-11-21 17:28:33)

    路过看看
  • flyingwxj (2008-11-21 17:46:43)

    路过看看