官方淘宝店 易迪拓培训 旧站入口
首页 > 手机设计 > 手机硬件工程师交流 > UART接口设计请教

UART接口设计请教

05-08
看资料,很多高通或者是MTK的UART口,除了RX和TX提供专用接口外,像RI,DCD,CTS,RTS,DTR,DSR等关于接入,信号检测以及硬件流控制,方向控制的数据位,并没有专用接口,但是我又想用比较标准的RS232-DB9接法,需要扩展或自己配置这些接口,对GPIO口有什么特别要求吗?
我选择GPIO口,1.电平域与RX/TX相同,如都是1.8V电平的;2.选择应用侧GPIO口,能够当通用GPIO口用,非专用IO口。
请问如上选择是否可以呢?

UART接口现在很成熟了,所以其他很多控制信号都被省略了,只要RX,TX加上通信协议就够了。如果要使用其他的控制信号,可以拜读一下芯片SPEC,应该有相对应的GPIO,如果没有可以自己选GPIO,但是这样软件移植工作量很大。另外手机端电平现在都是1.8V电压域,但是电脑上标准的uart都是5V的电压域,需要电平转换芯片。
因为以前做过,如果和电脑串口连接,只要tx,rx就够了,不知道要那么多控制信号干什么?!感觉有点多此一举。

楼上的说法就不对了。
RX/TX都不用解释了,大家都知道,就是发送和接收。
RTS/CTS是流控管脚,其中RTS对于芯片来说是输出口,CTS对于芯片来说是输入脚。
RTS是指,当数据吞吐量较大的时候,芯片端处理不过来,会通过拉低RTS,告诉发数方暂时不要发数过来了。
CTS和RTS对应,是对方告诉芯片他处理不过来数据了,让芯片端暂时不是发数。RTS和CTS是很重要的。
反而DCD/RING/DTR/DSR从现在来看显得比较多余,这四个脚都与唤醒有关系。
其实我觉得这四个脚,可以归结为两个脚,HOST_WAKE和WAKE脚就可以了。
不知道最初的时候设计着四个脚的初衷在于什么,请高人指点啦。

为什么有时候RX要接个上拉电阻?求高手指教。

呵呵,增加RTS和CTS是通过硬件参与控制收发,再增加其他的信号就是标准的RS232协议了。
现在软件成熟度完全可以通过TXRX中间增加控制指令,实现软控制,而不需要RTS和CTS的参与,这样也可以减小硬件成本和复杂度。

是不是一般GPIO口可以作为RTC,CTS等?

当然可以,然后就看驱动的了

我看有些设计,有RX,TX,RI,CTS,RTS,以及DTR,但是没有DCD和DSR,这样设计有什么好处呢?

看具体应用吧,没有特别规律的,现在支持串口通讯的芯片都在越来越简化

UART的协议规定 RX输入信号中, 以低电平脉冲(下降沿)作为数据接收的开始,有的芯片这里接口会产生一个方波,如果你芯片端读取到这个下降沿,有时候会认为外部有信号输入而产生响应。图片是TI某主芯片上拉与否波形对比。


UART 和 232 是不一样的 ,简单的说 UART以高电平做1 ,低电平做0 。 232以负电平做1 ,正电平做0.
UART 和 232 在 RTS ,CTS的使用定义上更是完全不同的。

全是资深工程师在讨论啊!小弟学习了。

Top