接口/总线/驱动
串口是最简单的串行接口和调试工具
上点年纪的朋友都知道,最早期的51单片机可没有现在的这么多外设,什么内置ADC,SPI,CAN,I2C,DMA等等,唯一有的就只有四种类型的外设:GPIO,定时器,外部中断还有就是我们今天要说的串口。从那时候就出道的工程师一直工作到现在,接触了形形色色的MCU或者MPU,最早期的很多外设到如今已经面目全非了,或许在51单片机盛行的年代,你能很清楚地画出其IO口的内部结构,但是现在单片机的IO口显然要强大且复杂得多。真可谓沧海变桑田。不过,这些外设中唯一有一个到目前为止还是觉得那么亲切,那就是串口。尽管配置方式和之前的51单片机有着很大的不同,但是其最基本的参数如波特率,起始位,数据长度,停止位依旧是那么熟悉。
TTL串口
“串口”这一词是个含义很广的词,所有用串行方式传递数据的接口都可以被称为串口,而我们印象中最熟悉的那个“串口”其实是“TTL串口”。TTL(Transistor-Transistor Logic)也称双极型晶体管(三极管)逻辑,由于在早期的半导体都是双极型晶体管工艺的,所以就用这个名字来称呼我们常用的那个串口。在TTL逻辑中,规定了以0V表示逻辑“0”,以5V表示逻辑“1”。这种规定只是针对以前那种TTL工艺下的芯片所指定的,由于目前的半导体都为CMOS技术,因此但凡满足CMOS电平的串口也沿用了“TTL串口这个名称”。
一个“TTL串口”是由三根线组成的,分别是数据发送线(TXD),数据接收线(RXD),和公共地(GND)。在连接两个TTL串口设备的时候,需要将一片的TXD线连接到另一片的RXD线上,一片的RXD线连接到另一片的TXD线上,两片的GND线连接在一起。
** RS232串口**
RS232串口和TTL串口的区别在于,两者所使用的电平格式不一样。RS232的电平标准为+12V为逻辑负,-12为逻辑正。RS232在之前的台式机上,是必备的通讯接口之一,但是随着USB和后来TYPE-C USB的兴起,现在基本已经看不见其踪影。值得一提的是,RS232标准是由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。
RS232串口出现在个人计算机上的时候,往往又被称为“COM口”。目前的串口都为九线制的RS232口,其连接器的形状一般都为D-SUB 9接口,而在历史的发展中,还出现过一种25线的RS232口,但是目前已经见不到了。
在9针的RS232串口中,我们一般用来使用的也就是其中的RXD,TXD和GND这三根线,这个和TTL串口使用的数据线是一样的。而剩余的6根线分别是早期做PC和外设通讯时候的控制信号线,目前很少会用到。其实在目前的一些单片机上面,它们的TTL外设上面也都还保留了这些串口的控制线,只不过我们很少用到而已。
** 协议转换**
TTL和RS232串口的协议转换思路其实很简单,第一步是电压的转换,将±12V的电压转换成0和5V的电压即可。第二步是逻辑的转换,将RS232的负逻辑转换成TTL的正逻辑即可。
在我们平时使用中,有一个系列的芯片可以专门用来转换TTL串口和RS232串口,这个芯片就是MAX232/MAX3232。MAX232是一种专门为电脑的RS-232标准串口设计的双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。但是如果单片机提供的信号电平和RS232的标准不一样,因此要通过MAX232这种类似的芯片进行电平转换。MAX232在使用中应该尽量避免热插拔,因为RS232的电平比较高,所以其在接通时产生的瞬时电涌会非常高,因此MAX232很有可能被击毁。
而MAX3232和MAX232的功能一样,它们最大的区别为:MAX232是5V供电的芯片,而MAX3232是3.3V供电的芯片。
另外,由于我们目前使用的笔记本电脑,基本上没有串口流出了,而仅仅留出几个USB接口,因此需要将TTL转换成USB协议,这种协议的转换就比较麻烦,但是也有特定的转换芯片。
CH340
CH340是一个USB总线的转接芯片,实现USB转串口或者USB转打印口。
其特点为:
PL2303
PL2303 是Prolific 公司生产的一种高度集成的RS232-USB接口转换器,可提供一个RS232 全双工异步串行通信装置与USB 功能接口便利连接的解决方案。早前的PL2303很有竞争力,但是目前市场越来越多地被CH340抢去,另外它对Windows 10的兼容,简直一团糟糕。
除了CH340和PL2303,还有一些其他的芯片,如cp210x等,但是这些芯片中,我首推的还是CH340,因为这个芯片是国产的,而且价格便宜,电路简单。
全部0条评论
快来发表一下你的评论吧 !