sprite2000

单片机串行通信_硬件支持

0
阅读(1547)

上位机(台式机或笔记本电脑)都具有RS-232接口,该接口DB-9模式有9个引脚;因为RS-232是为PC与调制解调器通信而定义的,所以9个引脚都是与调制解调相关;而其中的串口通讯仅与3个引脚相关:引脚2--RXD、引脚3--TXD和GND,也就是说我们现在应用RS-232接口(也对应一种通信协议)来进行串口通讯,其实只用了其中的三个引脚,其余六个引脚因为仅与调制解调相关,因此硬件连接时都是悬空的;


PC通过RS-232接口线与下位机(单片机)相连后,第一个遇到的问题就是电平不匹配,RS-232的高低电平定义遵守该协议的定义(数字1为-3~-15V,0为+3~+15V),而单片机的电平定义为TTL电平(1为3~5V,0为0V),这种差异导致如果直接将RS-232的串口线接到单片机的串口RXD和TXD上时,由于两者对于电平的定义不同,而无法实现通信;因此,我们第一需要解决的就是讲电平转换成统一的;这里我们使用的是MAX232电平转换芯片,通过MAX232可以实现将TTL和RS-232的电平双向的进行转换;换句话说,通过MAX232芯片的电平转换,我们就可以通过RS-232数据线实现上位机与下位机的通信了。(因为通过RS-232接口的上位机(PC)和下位机(单片机)都支持串口协议,因此MAX232仅起到了一个电平转换的功能,因为该电平转换也可以通过自己用电阻电容来搭,成本会低不少,工程中也经常会使用到,经典电路可参考小刘老师书P157)


接下来,我们遇到的第二个问题是:现在的笔记本电脑上(上位机)基本都没有RS-232接口,也就是说拿一根RS-232数据线在笔记本电脑上都没地方插,这说明RS-232这种接口或标准正在慢慢的退出历史舞台;因此单片机作为下位机支持串口通信,而上位机因为没有RS-232接口也就不支持这种简单严格意义上的串口了;为了让拿笔记本电脑进行开发或上下位机通信的同学也可以顺利进行串口通信,我们就需要寻找其他方式。因为笔记本电脑都具有USB2.0接口,因此我们就使用CH340T这款芯片,来实现USB到串口的双向转换功能;需要说明的是,因为USB协议与串口协议是不相同的,所以CH340芯片在进行转换时,不仅需要两个协议之间可能不相同的电平,而需要进行协议层面的转换,也就是说用电阻电容自己搭一个CH340应该说是无法实现的。下来,我们通过CH340T芯片,将串口转换成USB协议后,我们就可以在笔记本电脑上直接使用USB口与单片机进行通讯了。


需要说明的是,CH340T在上位机上是需要安装软件驱动的,而直接采用RS-232是不需要在上位机上安装软件驱动的。此外,我们常用的USB口竟然只有4根线,VCC、两根数据传输线、GND,太简单了:)

代码语言