使用单片机,对硬件编程的时候,可以说串口是最常用的交互方式,毕竟要安装一个显示器,显示屏等设备需要额外的开销,大量增加代码量,且很多场景并非必备外设。这篇文章将会详细的介绍单片机中最常使用的串口通信功能,这边通过多篇文章以51单片机和stm32为例,对串口(以ttl电平,232,485等)进行详细的论述。

在实验调试单片机时,串口相当重要以及常用,而现在电脑却一般仅有usb口(考虑到串口非专业人士不再使用)。因此我们在使用单片机读取串口数据时,往往需要将相应的串口转换为usb口。由于串口这边根据串口的不同,主要介绍常见的几种转接方式。

串口ttl转usb

常规调试过程中,我们可以将单片机ttl电平的串口信号TX和RX,通过转换芯片变成usb总线的信号。注意该过程既不是RS232也不是RS485,而是ttl的串口信号,该信号一般仅仅用来测试和下载,仅仅是方便使用而已。

通常我们用来讲ttl串口信号转换为usb信号的芯片可以分为三种:FT232,CH340,PL2303,价位由高到低。这边我仅仅使用过CH340,PL2303这两款芯片的模块,对比后缺失PL2303误码率较高(当然不排除厂家因素)。一般情况我们使用CH340较多,相对稳定且价格便宜。实现的原理如下,其他集中芯片也大体一致:

建议大家使用CH340的模块,价格也很便宜,这边给出完整的电路原理图:

RS232串口转usb

实际上是先将RS232转换为ttl电平,然后在通过上述方式转为usb通讯。下面详细介绍下RS232如何转换为ttl电平。

一般我们通过使用max232或者max3232将RS232电平(逻辑1(MARK)=-3V~-15V,逻辑0(SPACE)=+3~+15V)转换为ttl电平(5V系列(5V TTL和5V CMOS)、3.3V系列,2.5V系列和1.8V系列)。

  • max232 供电电压5v,耗电5mA,外接4个1uF电容,传统5v供电单片机常用。
  • max3232 供电电压5v或3.3V,耗电0.3mA,外接4个0.1uF电容其他特性都一样,价格略有差别。现在更为常用

也就是说如果RS232串口想要和单片机链接通讯中间必须要有max232或者max3232这样的转换芯片,而如果RS232串口想要通过usb链接电脑,则必须先通过max232或者max3232转换成ttl信号,然后在通过CH340转换为usb通讯。

RS485串口转usb

RS485的转换就更为丰富了,包括以下几种:RS485<->RS232,RS485<->ttl,RS485<->usb。网上基本也有各种转接头可以购买,这边仅做简要阐述。

  • RS485<->ttl:选用芯片MAX485(5V)或MAX3485(3.3V)类似上面提到的max232和max3232。
  • RS485<->RS232:一般核心采用MAX232+MAX485共同设计电路,但设计细节差异较大,可以参加文末给出的链接
  • RS485<->usb:分为两种方式:1.同RS232串口转usb类似,可以通过接MAX485转成ttl电平然后通过CH340转成usb通讯,2.将RS485转成RS232,然后再将RS232转成usb。

参考链接:
http://tieba.baidu.com/p/3263424064
http://wenku.baidu.com/link?url=_l22igEh5jeC75_3TLzsRkLGv6s08EbKd2VFO_ZfDEUzjN45DeXM5wljNK8_B1Jn0ptTP9es6JNRw-iveGSyWK3WI2jQx8qj9QxkATRjFnO
http://www.elecfans.com/article/88/131/189/2015/20150929385089.html