一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

讨论内部和外部串行端口之间的差异以及每个端口的功能

来源:analog 发布时间:2024-01-02

摘要: 本应用笔记涵盖了在MxTNI 上开发串行应用程序的硬件和软件方面。在某些情况下,必须使用特殊的方法。本应用笔记讨论了其中的每一个,以及它们与内部和外部串行端口的关系。还包括对利用外部串行端口所需的硬件的讨论。

许多设备使用串行端口作为与其他电子设备通信的手段——从非常著名的例子,如个人电脑和调制解调器到制造和工业自动化设备。实际上,对于许多设备来说,串行端口提供了与外部世界通信的唯一机制。这样的设备没有直接的方式参与到一个更大的计算机网络中。因此,在串行设备与网络主机之间架起通信桥梁是Maxim微型网络接口(MxTNI)技术最流行的应用之一。本应用笔记涵盖了在MxTNI上开发串行应用程序的硬件和软件方面。

MxTNI板型号390 (TBM390)的MxTNI运行时环境可以支持多达四个串行端口。MxTNI板型号400 (TBM400)支持5个串口。已指定串口serial0通过serial4. 使用的uartserial0serial1,serial4是集成在MxTNI的微控制器,并被称为“内部”串行端口。使用的uartserial2serial3需要一个专用的外部双uart芯片。这些被称为“外部”串行端口。

内部串口

因为serial0、serial1和serial4使用内部uart,所以效率更高。内部串行端口驱动程序不需要做太多的工作来从UART加载或卸载数据。但是,内部串行端口在配置选项方面有些限制。支持的串行字符配置有:

  • 8位数据位,1位停止位,无奇偶校验(默认)

  • 8位数据位,1位停止位,奇偶校验(奇偶校验)

  • 7位数据,2位停止,无奇偶校验

  • 7个数据位,1个停止位,奇偶校验(仅限奇数/偶数)

如果使用内部端口,只使用5或6个数据位或1.5个停止位的配置是不可能的。然而,这很少引起实际的关注。列出的选项允许内部端口与最常见的串行设备通信。内部端口还支持XON/XOFF流量控制。但是,在所有内部端口之间共享一组硬件握手线。这意味着一次只有一个端口可以使用RTS/CTS流控制。默认情况下,serial0不拥有硬件握手信号。使用TINIOS 1.0x,可以使用以下方法更改此所有权setRTSCTSFlowControlEnable在类中定义com.dalsemi.system.TINIOS. tinos 1.1x应用程序必须使用setSerial方法TINIOS。SERIAL_SET_RTSCTS_FLOW_CONTROL作为第一个参数。

public static int setSerial(int cmd, int port, boolean arr)抛出UnsupportedCommOperationException

端口号必须指定内部串口(0、1或4)中的一个启用真正的,硬件握手信号将被专用为指定串口的硬件握手信号。如果启用,这些信号可以免费使用com.dalsemi.system.BitPort类作为通用TTL I/O。

在使用时,还有一些额外的要点需要记住serial1. 首先,serial1默认情况下,专用于与外部1-Wire 线路驱动器通信的任务。如果您的MxTNI硬件实现不需要(或支持)使用外部1-Wire适配器,serial1可以回收用于通用串行端口。覆盖serial1的默认用法,应用程序必须调用enableSerialPort1方法中定义的com.dalsemi.system.TINIOS类。对于TINIOS 1.1x一些方法应使用,用蒂诺斯。SERIAL_SET_ENABLE作为第一个参数。

enableSerialPort1 公共静态int setSerial(int cmd, int port, boolean arr)抛出UnsupportedCommOperationException

该选项在整个系统引导期间持续存在。如果您正在使用TBM390,您还需要禁用DS2480B 1-Wire驱动程序。这是通过接地来完成的EN2480信号(SIMM连接器的26引脚)。另一件要记住的事情是serial1它不支持任何低于2400bps的数据速率。当与现代串行设备通信时,这通常不是问题。

外部串口

在使用外部串行端口之前,必须添加必要的硬件。外部串行端口由五个模块组成:DUART、RS-232电平移位器、中断电路、解码逻辑和一组去耦电容器。每个模块可与E10插座板一起使用的示例电路如下图所示。用于这些电路的材料清单也包括在内。


图1所示。解码电路。


图2。去耦电容。


图3。中断电路。


图4。DUART和RS-232驱动。

表1。用于外部串口的组件
组件描述
C9-c13、c8、c16、c18、c19、c21-c25、c26、c31-c340.1µF1206
22 pf1206
C1522 pf1206
C17470 pf1206
J18, J1910针,0.1中心头连接器
R4 r5 r2110 k欧姆1206
R71.5 k欧姆1206
R81米欧姆1206
U274年ac0214-pin所以
U374年ac3214-pin SO6
U6, U9DS22920-pin TSSOP
得以国家DS14C89A
国家PC16552D44-PLCC
U1074年ac13816-pin所以
日元3.6864兆赫HC49

添加硬件之后,外部串行端口必须使用setExternalSerialPortEnable方法(TINIOS 1.0x)或一些方法(TINIOS 1.1x)com.dalsemi.system.TINIOS类。

public static void setexternalserialporttenable (int portNum, boolean enable) public static int setSerial(int cmd, int port, boolean arr)抛出UnsupportedCommOperationException

端口号必须指定外部端口(2或3)中的一个。enable值为true表示使用外部串行驱动程序。建立的设置setExternalSerialPortEnable跨系统引导持久化。

外部串行驱动程序允许将外部UART硬件映射到MxTNI的内存空间的灵活性。外部UART的默认基址是0x380020。方法覆盖此位置setExternalSerialPortAddress方法(TINIOS 1.0x)或中的setSerial方法(TINIOS 1.1x)com.dalsemi.system.TINIOS

public static void setSerial(int cmd, int port, boolean arr)抛出UnsupportedCommOperationException

端口号必须指定外部端口(2或3)中的一个。地址是指内存映射中消耗的基址(或最低址)。建立的设置setExternalSerialPortAddress在重启期间持久化。

最后,在内部串行端口可能的配置受到限制的情况下,外部串行端口支持使用Java Communications API可以实现的所有配置,XON/XOFF流控制除外。

MxTNI运行时环境,泥浆,serial0

在开发使用串行通信的应用程序时,还需要记住一些其他的事情。当MxTNI启动时,它发送进度消息serial0数据速率为115200bps。这可能会导致某些嵌入式串行设备的混淆,因为数据是未经请求的,并且以可能与设备配置为接收数据的速度不同的速度传输。程序可以禁用引导进度消息setSerialBootMessagesState课堂方法com.dalsemi.system.TINIOS. tinos 1.1x应用程序必须使用一些方法。

setSerialBootMessagesState(boolean on)公共静态int setSerial(int cmd, int port, boolean arr)抛出UnsupportedCommOperationException

串行引导消息状态在整个系统引导中是持久的。

MxTNI的默认shell,泥浆,也使用serial0传输状态消息并允许用户登录。禁用串行服务器,防止泥浆喋喋不休serial0在启动过程中,行"setenv SerialServer启用应该从.startup文件。这将防止泥浆从喋喋不休serial0. 如果你想要使用的能力serial0没有禁用泥浆的串口服务器,可以使用setConsoleOutputEnabled方法中的com.dalsemi.system.TINIOS类。

setConsoleOutputEnabled(boolean set)

调用这个方法等于指示泥浆静默引导,以免干扰任何可能连接的设备serial0

最后要注意的是,不需要采取特别行动来强制泥浆要释放的串行服务器serial0所以另一个应用程序可以访问它。每当另一个应用程序请求时serial0泥浆将自动放弃其所有权。只要确保在尝试打开端口时指定足够的超时值(通常5秒就足够大了)。

结论

除了这里提到的几个方法外,MxTNI上的所有串行端口编程都可以使用Java通信API中定义的技术来完成。这为开发人员提供了一种使用MxTNI构建串行应用程序的简单而标准的方法。这些应用程序将允许MxTNI与各种串行设备接口,包括那些从未打算成为大型网络一部分的设备。



声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: