即使USB出现,串行端口也不会消亡。对于术语“串行端口”,我们通常指的是或多或少符合RS-232 标准或相应的TTL 信号的硬件。
串口在软硬件集成初期易于调试。即使在 USB 出现之后,许多外部设备仍然连接到串行端口。蓝牙模块、GPS模块、医疗设备通过串口相互连接进行数据传输。
大多数嵌入式系统都至少提供两个串口。然而,有些系统需要更多。因此,这需要以某种方式扩展串行端口的数量。设计人员可用的一些选择包括 USB 到串行端口、I2C 到串行端口、地址/数据总线到串行端口(UART 控制器)。
串行端口入门
从硬件角度来看,串行端口至少有三个引脚:发送器、接收器和接地。附加引脚用于硬件流控制,可以使用也可以不使用。在典型的嵌入式系统中,仅使用三个引脚,并且没有硬件流控制。
经典的串行端口使用 DB9 连接器。这 9 个引脚的引脚如下表 1 所示。
表1:带DB9连接器的串行端口
RS-232 信号电平中的典型电压电平为 +12V 和“12V”。“12V”电压电平表示逻辑高或 1,+12V 电压电平表示逻辑“0”或“0”。
嵌入式系统中的串行端口
几乎所有嵌入式系统都提供两个或多个串行端口,并且通常支持 TTL 逻辑电平。嵌入式系统可能需要与两种外部设备接口,一种以TTL电平通信,另一种以RS232电平通信。
如果设备以 TTL 电平进行通信, 则嵌入式系统和外部设备之间的连接是直接的。但如果设备需要 RS232 电平信号,我们必须在处理器和设备之间插入 RS-232 线路驱动器/接收器。
当今的大多数设备只需要三根线:传输数据、接收数据和信号地。不使用硬件流控制。这简化了硬件连接以及软件设计。
典型的嵌入式系统
下面的图 1显示了使用 4 个串行端口的典型嵌入式系统。嵌入式系统的端口1用于引导加载程序和调试目的。该端口需要 RS232 线路驱动器,因为它将连接到台式机和/或笔记本电脑以进行调试。通常,如果 PCB 板空间有限,则可以在板首次旋转后移除此端口。
端口 2 用于与蓝牙通信。由于蓝牙设备不需要RS232电平信号,因此它已直接连接到嵌入式系统。
端口 3 用于连接 GPS(定位系统)设备。该设备通常不需要 RS232 级信令,因此,它已直接连接到嵌入式系统。
端口 4 用于连接通用外部设备。例如,外部 RFID 扫描仪。我们假设该设备需要 RS232 电平信号。我们将在嵌入式处理器和 RFID 扫描仪之间使用 RS232 线路驱动器。
图 1:具有 4 个串行端口的典型嵌入式系统。
根据应用的不同,嵌入式系统可能需要 4 个以上的串行端口。其中一些需要 TTL 电平信号,其他则需要 RS232 电平信号。
扩展嵌入式系统中的串行端口
由于大多数嵌入式系统提供的串行端口数量少于所需数量,因此电路板设计人员必须找到某种方法来扩展串行端口数量。幸运的是,存在许多选项,并且选择将取决于设计人员对硬件设计的舒适程度以及附加软件支持的数量。
USB 转串口。如果处理器有 USB 主机,这将是选择。例如,设计人员可以将 4 端口 USB 集线器添加到现有 USB 主机。这将提供 4 个 USB 端口。USB 集线器的一个例子是 Genesys Logic 的 GL850A IC。
例如,设计人员可以将这四个端口之一用于 USB,而其他三个端口可用于扩展串行端口。USB转串口桥可用于扩展串口。USB 转串口桥的一个例子是 Prolific 的 PL-2303 IC。下面的图 2 显示了一个示例实现。
图2:使用USB集线器和USB转串口桥扩展串口
Prolific 的 PL-2303 提供 TTL 逻辑电平。如果需要 RS232 电平,则应在 Prolific 的 PL-2303 IC 之后使用 RS-232 线路驱动器/接收器。
通常 USB 集线器以及 USB 转串口 I 的驱动程序都是可用的,因此很少有软件/硬件集成问题。
I2C 转串口。在较小的微控制器中,USB 端口通常不可用,I2C 到串行端口转换器是选择。Philips SC16IS752IPW 是 I2C 转串口转换器的示例。下图3展示了如何从一个I2C端口扩展4个串口。
图3:使用I2C转串口桥扩展串口
然而,这些类型的实现存在速度限制。由于 I2C 总线端的限制,没有非常快的串行端口。因此,只有当所需的串行端口连接到不需要超强性能的应用程序时,此实现才有效。
还值得注意的是,这种实现将需要软件方面的驱动程序开发。然而,总的来说,这对于小型微控制器以及一些大型微处理器实现来说是一个好方案。
地址/数据总线到串行端口(UART 控制器)。无论嵌入式系统的性质如何,地址/数据总线到串行端口(UART 控制器)几乎总是可用的。它几乎总是可以在任何具有地址/数据总线支持的处理器系统中使用。
在缺点方面,与此处讨论的其他一些替代方案相比,它提供的功能需要更多的电路板空间。然而,从好的方面来说,无论平台是什么,它几乎总是具有驱动程序支持。例如,Philips Semiconductor 的 SC16C652IB48 UART 控制器提供两个串行端口。
添加一个小型微控制器。如果我们需要提供除串口之外的一些功能,我们还可以添加一个小型微控制器。设计一个小型微控制器非常有用,它可以提供许多项目中使用的许多通用功能。
您应该找到一个连接到主处理器而不牺牲可用串行端口的微控制器。例如,使用 SPI 连接的主处理器和小型微控制器提供两个串行端口。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !