arduino usb串口驱动_树莓派4B入坑指南 part-2 Serial Port, COM, RS232, USB解释与实践

554f3b925d00dc5d822eed6ecfedf517.png

本文是【树莓派raspberry4B入坑指南】系列 part-2

Serial port

Serial port 是一种设备,需要UART芯片(比如经典的 16550 UART)的硬件支持,UART全称Universal Asynchronous Receiver Transmitter,通用异步收发器。早期常用的和电脑通信的方式,就是大家非常熟知的串口通信(serial port)和并口(parallel ports)通信。串口很容易连接,不需要很多连线。并口传输速度快(通常是串行速度的8倍),但电线和连接器成本较为昂贵。总线传输(bus transceivers)的发展日新月异使得并口传输已经基本从计算机制造里消失了。

4b5d450184b169c9a184547c29a2d239.gif
serial port 和 parallel port

COM

COM 来源于微软的DOS系统,它是一种设备名称,全称 COMmunication port。八十年代的计算机背面通常有两个串行端口,分别标记为COM1和COM2。该名称被延续到Windows操作系统中,大多数模拟串行端口的驱动程序都会创建一个名称为 “COM”的设备。 LPT是并行端口的设备名称,“Line PrinTer”的缩写。

0dbaa4a44c77f66ff86866775601db5e.png
com1和com2端口

RS-232

RS-232 是串行端口的标准。它对设备要求非常低,并且仅支持点对点连接。同时RS-422和RS-485标准也不少见,每个信号端使用双绞线,具有更高的抗噪能力,并允许多个设备相互连接。

USB

USB 表示通用串行总线,全称Universal Serial Bus。它能够将微处理器集成到几毫米大小,几分钱的设备中。九十年代后期,它取代了传统设备。它之所以具有通用性,是因为它可以支持许多不同类型的设备,从咖啡壶,磁盘驱动器,wifi适配器到音频播放器。它是串行设备,只需要4根连线。它是总线方式传输,因此可以将USB设备插入任意端口。

串口的优势

串行端口仍在使用的一个重要原因USB设备需要设备驱动程序,而每种设备的驱动程序都需要开发,但串型设备不需要。另外,从硬件和软件的角度来看,串口更易于连接,几乎每个SoC上总有至少一个用于串行控制台的UART芯片。设备制造商懒的编写和支持驱动程序,使用串口设备能够方便兼容旧有设备。程序员可以使用现有操作系统内置的或者编程语言提供的串行端口类库来支持串口设备。

我们平常为了把USB的传输快、热插拔和串口不需要开发驱动设备的优点结合起来,使用USB转串口模块,可以看作是一个USB2.0协议与RS232协议转换器,更方便的进行开发。

88696c6b2d679d4fd8129e6306438d48.png
usb转串口适配器

一个小问题?

usb转串口适配器需要驱动吗?

树莓派连接Arduino实践

远程ssh登录树莓派,可以参考我的上一篇 树莓派raspberry4B入坑指南 part-1

树莓派与arduino通过一根usb转串口线连接如下图:

121ab3e3e474adda5e160b4b2a264580.png
usb转串口连接线

1ec9ef5f8de97481ed49553a4b9e78db.png
arduino与树莓派连接示意图

操作:

# dmesg命令打印硬件检测或者断开连接的信息
$ dmesg

# 以下是部分截图
[  658.721672] usb 1-1.3: new full-speed USB device number 3 using xhci_hcd
[  658.867493] usb 1-1.3: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
[  658.867508] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  658.867521] usb 1-1.3: Product: FT232R USB UART
[  658.867532] usb 1-1.3: Manufacturer: FTDI
[  658.867544] usb 1-1.3: SerialNumber: A1014M64
[  658.950743] usbcore: registered new interface driver usbserial_generic
[  658.954440] usbserial: USB Serial support registered for generic
[  658.964918] usbcore: registered new interface driver ftdi_sio
[  658.965286] usbserial: USB Serial support registered for FTDI USB Serial Device
[  658.965792] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
[  658.966180] usb 1-1.3: Detected FT232RL
[  658.969436] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0

从图打印信息可以看出:

  • 检测到了串口设备(Product: FT232R USB UART),FT232R 就是一种usb转串口的设备,FT是设备制造商FTDI缩写。
  • usbserial_generic:没错,usb转串口是需要驱动的!有usb的地方就需要driver,不过是个比较通用的驱动
  • 最后一行可知,该设备连接到了ttyUSB0, 即挂载在文件系统 /dev/ttyUSB0 下。 有了虚拟文件,那我们对该文件的读写就是与串口进行通信了。

拔出arduino与树莓派的连线,再次执行dmesg命令:

$dmesg
[ 1879.161003] usb 1-1.3: USB disconnect, device number 3
[ 1879.161684] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 1879.161785] ftdi_sio 1-1.3:1.0: device disconnected

串口就是一个非常简单的东东^_^,今天就介绍到这,有时间会介绍如何直接进行串口通信!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值