您的位置:首页 > 其它

串口学习笔记

2015-11-11 19:42 411 查看

串行通信接口

来自cpu的数据一般是普通的并行数据,通过串行通信接口芯片,可以将cpu的并行数据,转换为串行数据。

串行与并行是物理层的接口标准,物理层使用串行通信接口的情况下,在数据链路层可以使用串口异步通信协议或串口同步通信协议。

UART/USRT/USART

UART: universal asynchronous receiver and transmitter(通用异步收发器)

USRT: universal synchronous receiver and transmitter(通用同步收发器)

USART: universal synchronous asynchronous receiver and transmitter(通用同步异步收发器)

我们平时看到的手机上的UART接口,只是说这是个通用的异步收发器接口。一般通过UART口通信的流程是:

cpu向IO端口/映射的物理地址写入一个数据。

数据通过并行总线发送到串行通信接口芯片。

串行通信接口芯片将其转换为串行的异步通信数据发送到输出线(一般为TXD)上。

实现同步与异步的芯片主要有一下几种[1]:



以MC6850为例,看一下其芯片的长相,大体可以看出就是个并口转串口的芯片:



串行同步与异步通信虽然物理层都是串行接口,但数据链路层的不同一般会体现在具体的芯片接口上(可参考上图,当然也有都支持的)。

串行数据接口标准

前面提到的是并行接口转串行接口,但同样是串行接口,也有多种不同的标准,前面的INS8250使用的就是RS-232标准。类似的标准还有rs-485,rs-422(注:这里说的是串行数据接口标准,并没有规定使用同步传输还是异步传输无关)。其简介如下[2]:

RS-232

RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺

RS-422

RS-422(EIA RS-422-A Standard)是Apple的Macintosh计算机的串口连接标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。

RS-485

RS-485(EIA-485标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。有了多个设备的能力,你可以使用一个单个RS-422口建立设备网络。出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。RS-485是RS-422的超集,因此所有的RS-422设备可以被RS-485控制。RS-485可以用超过4000英尺的线进行串行通行

这里再对RS-232做一点详细的介绍:

RS232电气标准(全称EIA-RS-232C)是1970年由美国电子工业协会(EIA)联合贝尔实验室等共同指定的用于串口通讯的标准,该标准采用一个25个引脚的DB-25连接器,对每个引脚的信号内容和各种信号的电平加以规定。后来IBM的pc将RS232简化成DB-9连接器,从而成为事实标准。而工业控制的RS-232口一般都只使用RXD,TXD,GND三条线。

RS232标准规定了数据传输速率为50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。

RS232规定的主要是电气特性,逻辑电平和各种信号线的功能。

在TxD和RxD上:

逻辑1(MARK) = -3v ~ -15v

逻辑0(SPACE) = +3v ~ +15v

EIA RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同,因此,为了能够同计算机接口或中断的TTL器件连接,必须在EIA RS-232C与TTL电路之间进行电平和逻辑关系的变换,

MC1488.SN75150芯片可实现TTL到EIA电平的转换。

MC1489,sn75154芯片可实现ELA到TTL电平的转换。

MAX232芯片可完成TTL <-> EIA双向电平转换。

关于连接器: 由于RS-232c并未定义连接器的物理特性,因此出现了DB-25, DB-15, DB-9各种类型的连接器

缺点:

1) 接口信号电平值较高,容易损坏接口电路的芯片,又与TTL不兼容,需要电平转换才能与TTL电路相连。

2) 传输速率较低,在异步传输时,波特率为20kbps

3) 接口使用一根信号线和一根信号返回线,而构成共地的传输形式,这种传输容易产生共模干扰,抗噪声弱。

4) 传输距离有限,实际上15米左右。(usb通讯距离在5m左右)

(通过USB接口可连接更多的RS-232设备,不仅可获得更高的传输速度,实现真正的即插即用,同时解决了USB接口不能远距离传输的缺点, USB通讯距离在5米内)。

TTL

ttl实际上是一种电平信号标准,TTL电平信号中 +5等价于逻辑1,0v等价于逻辑0,这是计算机处理器控制的设备内部各部分之间的通信标准技术。其只规定了什么代表0,什么代表1,除此之外没有别的了。

TTL电平信号对计算机处理器控制的设备内部数据传输是很理想的,

1) 首先,计算机处理器控制的设备内部的数据传输对于电源的要求不高,以及热损耗也较低。

2) 另外,ttl电平信号,直接与集成电路连接,而不需要价格安规的线路驱动器,以及接收器电路。

3) 再者,计算机处理器控制器的设备内部的数据传输,是在高速下进行的,而ttl可以沐足这要求。

4) ttl通信大多数情况下是采用并行数据传输方式,不会超过10英尺。

RS-232, RS-485,RS422, 是同一个层次的标准,都是串行通信接口物理层的标准,而TTL虽然也是与物理层相关,但其只是个电平的标准,没有其他的规定。

网上经常能看见usb转ttl什么的,一般说的usb转ttl实际上是usb转为标准的RS-232,然后在做简单的电平变换,将+-15V翻转为+-5V,即变为ttl,实际上更科学的叫法应该是rs-232(ttl)。

接口转换

并行接口(ttl)转异步串行接口(rs-232)

参考前面列出的INS8250/MC6850等芯片.

rs-232转rs-232(ttl)

rs-232和ttl(一般是值rs-232(ttl))可通过MC1489,MC1488芯片相互转换,如图:




或者通过一个单独的芯片Max232(好像一般都用这个了)实现rs-232和ttl的双向转换。

MAX232是一款兼容RS232标准的电平转换芯片,能在电脑的RS232信号(-10,+10v)和单片机的TTL信号(0,+5)这两种电平之间进行转换。应用该芯片必需和电脑的九芯串行口配套使用,除非使用专用的USB-RS232转接线。笔记本电脑和一些台式机都没有配置这个九芯串行口,这就让该芯片的应用受到限制。并且MAX232芯片价格 在供电电流很小、功耗很低的应用场合,可以考虑选择PL-2303HX芯片来替换MAX232芯片。

一般pc上的n针接口是标准的rs-232,所以搭上max232的板子一般长这样(上面是rs-232,下面是rs-232(ttl)):



usb(ttl)转rs-232(ttl)

我们平时用的usb默认就是ttl电平,通过PL-2303HX芯片可以实现usb<->ttl。

PL-2303HX是PROLIFIC推出的USB-类RS232接口转换芯片,PL2303芯片手册上说它是RS232-USB 接口转换器, 这货说的比较蛋疼,后面详细说明中又显示了是5v的,实际上这货的意思是使用232通信格式,而不是232电平,实际上这个是232(TTL)转USB(TTL)的芯片。

搭载pl-2303的板子一般长这样:



淘宝的一款多功能转换器

在网上看到买了一个转换器长这个样子:





其描述如下:



大体看了一下上面的各个芯片:

1. max3232 ese+1402:

这个芯片是负责将rs232转rs232(ttl)的,但实际上并没有看到9/15/25针串口,作者设计了两排排针,上面的是ttl的排针,下面的是232的排针。

2. max3485 esa+1340

这个芯片应该是是负责将rs-485转rs-485(ttl)的。

3. nxp 74hc14D l8dn93wy ung1416g

这货是施密特反相器,可以用到需要反向的电路上,或者提高驱动能力,或者需要对信号做一下整形,都可以用到它。估计这个芯片是用来将ttl信号反向放大用的?

4. silabs cp2102 dcl05n 1446+

USB2.0全速功能控制器,这个芯片应该是usb的接口芯片。

一些备忘点(转),供参考[4]

接线的时候,一般只接GND、RX(接收)、TX(发送)。不会接入Vcc等电源线,避免与目标设备上的供电冲突。

主机的 TX 接目标设备的 RX ,主机的 RX 接目标设备的 TX ,但是很多设计人员为了接线更为直观而故意颠倒标记 RX、TX ,如果有问题可以尝试交换RX、TX,不会烧坏设备。

PL2303、CP2102、FT232R 芯片是用USB来扩展串口(TTL电平输出)的芯片,需要安装Windows驱动。

(常用于笔记本增加串口,注意其兼容性不如板载串口。优先选择:FT232R > CP2102 > PL2303 )

MAX232芯片是TTL电平与RS232电平的专用双向转换芯片,不同引脚实现TTL转RS-232或RS-232转TTL的功能。

台式电脑后边带的D型9针插头(板载串口,公口),是RS-232电平标准的。可以通过MAX232转换为TTL电平。

COM口 即 串行通讯端口,简称 串口。

不管单片机也好、ARM也罢,这些芯片都是数字逻辑的,电平只有高和低,输出肯定是TTL电平的。

如果你看到串口线从核心芯片直接连出来,未经其他芯片,那99%是TTL的,STC下载和中九升级都属此范畴。

参考资料:

1.http://cs.nju.edu.cn/yangxc/dcc2003.files/jszc-sub/comif-09.htm [串口通讯—通信协议]

2.http://wenku.baidu.com/link?url=-VpMwREmngSeEYU5-4b9pup1GzN5LKss53hG-RAkYULEe8s4ZZHtWbyhJPVV7hgV7ph9Fg68tU6YsgjWwSulV8TLElwwSH5cZDjuIz9CmL3

3.http://wenku.baidu.com/link?url=m9Mj13Nw9YxKZN2kS74WymmmlUHjcXYjN2cDJsC7kwuhErFJoZ99IbEn34LkNT_EReD9objp1T1yLSD5qeTpyHMoWOBzalZoNDZZsNlLxjq

4.http://blog.sina.com.cn/s/blog_64d0f61e0101jdxt.html

5.http://bbs.mydigit.cn/read.php?tid=362172
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: