分享

串行通信学习笔记与经验整理

 goandlove 2019-07-12
串行通信接口
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下载和中九升级都属此范畴。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多