串口学习笔记

来源:互联网 发布:ubuntu解压tar.gz 编辑:程序博客网 时间:2024/05/22 02:17

串行通信接口

  1. 来自cpu的数据一般是普通的并行数据,通过串行通信接口芯片,可以将cpu的并行数据,转换为串行数据。
  2. 串行与并行是物理层的接口标准,物理层使用串行通信接口的情况下,在数据链路层可以使用串口异步通信协议或串口同步通信协议。
  3. UART/USRT/USART
    1. UART: universal asynchronous receiver and transmitter(通用异步收发器)
    2. USRT: universal synchronous receiver and transmitter(通用同步收发器)
    3. USART: universal synchronous asynchronous receiver and transmitter(通用同步异步收发器)
      我们平时看到的手机上的UART接口,只是说这是个通用的异步收发器接口。一般通过UART口通信的流程是:
    4. cpu向IO端口/映射的物理地址写入一个数据。
    5. 数据通过并行总线发送到串行通信接口芯片。
    6. 串行通信接口芯片将其转换为串行的异步通信数据发送到输出线(一般为TXD)上。
  4. 实现同步与异步的芯片主要有一下几种[1]:
    这里写图片描述
  5. 以MC6850为例,看一下其芯片的长相,大体可以看出就是个并口转串口的芯片:
    这里写图片描述
  6. 串行同步与异步通信虽然物理层都是串行接口,但数据链路层的不同一般会体现在具体的芯片接口上(可参考上图,当然也有都支持的)。

串行数据接口标准

前面提到的是并行接口转串行接口,但同样是串行接口,也有多种不同的标准,前面的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做一点详细的介绍:

  1. RS232电气标准(全称EIA-RS-232C)是1970年由美国电子工业协会(EIA)联合贝尔实验室等共同指定的用于串口通讯的标准,该标准采用一个25个引脚的DB-25连接器,对每个引脚的信号内容和各种信号的电平加以规定。后来IBM的pc将RS232简化成DB-9连接器,从而成为事实标准。而工业控制的RS-232口一般都只使用RXD,TXD,GND三条线。
  2. RS232标准规定了数据传输速率为50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。
  3. RS232规定的主要是电气特性,逻辑电平和各种信号线的功能。
  4. 在TxD和RxD上:
    逻辑1(MARK) = -3v ~ -15v
    逻辑0(SPACE) = +3v ~ +15v
  5. EIA RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同,因此,为了能够同计算机接口或中断的TTL器件连接,必须在EIA RS-232C与TTL电路之间进行电平和逻辑关系的变换,
    MC1488.SN75150芯片可实现TTL到EIA电平的转换。
    MC1489,sn75154芯片可实现ELA到TTL电平的转换。
    MAX232芯片可完成TTL <-> EIA双向电平转换。
  6. 关于连接器: 由于RS-232c并未定义连接器的物理特性,因此出现了DB-25, DB-15, DB-9各种类型的连接器
  7. 缺点:
    1) 接口信号电平值较高,容易损坏接口电路的芯片,又与TTL不兼容,需要电平转换才能与TTL电路相连。
    2) 传输速率较低,在异步传输时,波特率为20kbps
    3) 接口使用一根信号线和一根信号返回线,而构成共地的传输形式,这种传输容易产生共模干扰,抗噪声弱。
    4) 传输距离有限,实际上15米左右。(usb通讯距离在5m左右)
    (通过USB接口可连接更多的RS-232设备,不仅可获得更高的传输速度,实现真正的即插即用,同时解决了USB接口不能远距离传输的缺点, USB通讯距离在5米内)。

TTL

  1. ttl实际上是一种电平信号标准,TTL电平信号中 +5等价于逻辑1,0v等价于逻辑0,这是计算机处理器控制的设备内部各部分之间的通信标准技术。其只规定了什么代表0,什么代表1,除此之外没有别的了。
  2. TTL电平信号对计算机处理器控制的设备内部数据传输是很理想的,
    1) 首先,计算机处理器控制的设备内部的数据传输对于电源的要求不高,以及热损耗也较低。
    2) 另外,ttl电平信号,直接与集成电路连接,而不需要价格安规的线路驱动器,以及接收器电路。
    3) 再者,计算机处理器控制器的设备内部的数据传输,是在高速下进行的,而ttl可以沐足这要求。
    4) ttl通信大多数情况下是采用并行数据传输方式,不会超过10英尺。
  3. RS-232, RS-485,RS422, 是同一个层次的标准,都是串行通信接口物理层的标准,而TTL虽然也是与物理层相关,但其只是个电平的标准,没有其他的规定。
  4. 网上经常能看见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]

  1. 接线的时候,一般只接GND、RX(接收)、TX(发送)。不会接入Vcc等电源线,避免与目标设备上的供电冲突。
  2. 主机的 TX 接目标设备的 RX ,主机的 RX 接目标设备的 TX ,但是很多设计人员为了接线更为直观而故意颠倒标记 RX、TX ,如果有问题可以尝试交换RX、TX,不会烧坏设备。
  3. PL2303、CP2102、FT232R 芯片是用USB来扩展串口(TTL电平输出)的芯片,需要安装Windows驱动。
    (常用于笔记本增加串口,注意其兼容性不如板载串口。优先选择:FT232R > CP2102 > PL2303 )
  4. MAX232芯片是TTL电平与RS232电平的专用双向转换芯片,不同引脚实现TTL转RS-232或RS-232转TTL的功能。
  5. 台式电脑后边带的D型9针插头(板载串口,公口),是RS-232电平标准的。可以通过MAX232转换为TTL电平。
  6. COM口 即 串行通讯端口,简称 串口。
  7. 不管单片机也好、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

0 0
原创粉丝点击