嵌入式系统中的串口有哪些用途
什么是串口
世界上首次推出台式计算机时,它们带有串行端口和并行端口。串行端口通常用于连接串口调试设备,并行端口用于打印机。现在部分台式计算机上已经这两种类型的端口,因为通信通过以太网端口进行,而连接打印机可以使用 USB 端口或以太网端口,或者通过wifi/蓝牙的无线连接。
串口有几种形式
目前,仍有许多计算机接口符合“串行”的要求,常见接口包括 SCSI、SATA(用于连接硬盘驱动器等)和 USB(还有其他接口)。工业联网设备上常见的串口是RS232串口,RS232串口分为DB-9针和DB-25针。如下图
DB9针:这些端口是作为计算机与其他设备通信的标准而创建的,它们也能够与其他计算机通信,但并不经常这样做)。通常使用这些端口的典型设备是鼠标、打印机、不间断电源(仅用于发送信号,不用于传输电力),尤其是DTU设备。串口目前仍然用于控制工业设备,但在家用或商业计算机上已再带有串口,逐渐用体积较小的USB接口替代。
DB25针:这类串口在物理层面上的操作是相当简单。有一组引脚用于指示设备处于什么状态,例如“请求发送”和“准备接收”。数据本身作为简单的高电压或低电压在另一个引脚上发送。电缆长度相当有限,尽管特殊电缆可以延长距离,因此这类串口主要用于与距离较近的设备通信。
与现代 USB 端口一样,串口的设计并不是专门针对一种类型的设备,而是一种可以设计用于许多设备的标准。串口“用完”的情况并不少见,因为每个端口只能支持一个设备。这导致了 A/B 开关,允许人们切换实际连接到串口的设备,这期间无需断开/重新连接电缆。
带有 DB9 串行连接器的 A/B 开关,计算机连接到标有 I/O 的端口,而其他端口连接到设备。
嵌入式系统中串口的 7 大主要用途
为什么串口仍然有用?在台式 PC 和笔记本电脑上很难找到它们,但它们仍然是许多嵌入式系统的重要组成部分。嵌入式系统中串口的应用用途有哪些呢?
1. 控制台输入/输出
嵌入式系统开发项目的过程中,几乎都会有一个终端仿真器连接到目标系统上的串口。这与 CPU 架构和它运行的操作系统无关。即使有到目标的网络连接,并且可以远程运行时,可以清楚的了解当前串行连接发生了什么,特别是如果发生了意外情况能及时获取信息。
2. 数据通信
串口连接可用于系统内的处理器间通信或与系统不同部分的通信。串口提供设备之间的物理连接,但必须使用通信协议来确保可靠、无差错的数据路径。
根据链路的要求,可以实施简单的协议传输,或者使用行业标准协议,例如 PPP 或 HDLC。这些协议起源于数据通信,允许主机之间的点对点网络。这在不包括以太网控制器的简单、低成本设备中特别有用,因为出于成本、空间或功率考虑。嵌入式系统中使用的 TCP/IP 协议栈通常支持使用串行链路进行物理连接和 PPP 或 SLIP 提供链路层协议。
3. 外部设备通讯
调试新设备或更新系统参数通常需要通过串口连接到一台设备并与服务程序交互。网络工程师通常以这种方式设置交换机和其他网络基础设施。通常,来自一组设备的串口连接到终端服务器,允许工程师通过网络接口连接到其中的任何一个。
串口还用于将设备连接在一起,例如一种或另一种类型的调制解调器(PSTN、3G、卫星)、GPS 装置、望远镜、传感器、电源逆变器和许多类型的工业控制设备。
4. 外围通讯桥接
微处理器 UART 可用于使用专用桥接器连接到板载外围设备,例如蓝牙和无线收发器。这些桥接设备通常包括它们自己的固件,用于管理无线接口上的通信协议,并为微处理器使用无线接口提供一种简单且低成本的方式。
UART 桥也可用于其他外设总线,例如 SPI 和 I2C。微处理器使用简单的协议来控制总线主接口并从从设备连接器向外部总线发送和接收数据。管理外围总线的细节由桥本身处理。这允许微处理器使用单个 UART 连接到多个设备,例如 EEPROM、存储设备、温度传感器等。
5.固件下载
串行端口可用于将固件下载到新板或在可能难以访问 JTAG 接头的现场恢复损坏的闪存映像。受保护闪存扇区或片上 ROM 中的简单引导加载程序检查连接到串行端口的外部设备,如果存在,则等待将被编程到闪存中的新映像。有许多简单的文件下载协议可用于此目的。
6.调试界面
通过远程串行协议通讯时,允许调试会话通过串行接口运行。这可用于在没有网络接口或处理器不运行能够在本地运行调试器的操作系统的系统上调试代码。
在目标系统上实现对 GDB 的支持需要您提供少量函数,这些函数构成了所谓的调试存根。这些函数负责管理调试会话并为调试器提供特定于目标的支持,例如读取寄存器。
使用 GDB 串行协议,可以执行大多数标准调试活动,例如加载和运行新代码、设置断点、转储寄存器等。
7. 使用调制解调器状态线作为 GPIO
除了 Tx 和 Rx 信号之外,许多 UART 还提供调制解调器信号,这些信号可能会或可能不会被应用程序使用。控制台端口很少使用这些附加信号,因此它们通常可以用于其他目的,假设它们可用并路由到连接器。它们通常有用的一件事是用于调试和计时的通用输出。有两个输出:RTS、DTR 和 4 个输入:CTS、DSR、DCD、RI。输入状态从状态寄存器中读取,输出状态通过写入控制寄存器来设置。
在兼容 16550 的 UART 中,这分别是串口服务器状态寄存器 (MSR) 和串口DTU控制寄存器 (MCR)。
例如,如果您需要计算处理特定中断所需的时间,那么在中断处理程序的入口和出口处插入切换调制解调器输出状态的代码就很容易了。然后,您可以在示波器上轻松测量执行时间。
更多串口服务器详情请点击链接查看