图1 本文设计的扩展串行口方法示意图
[b]本文设计的扩展方法
[/b] 在电路设计的过程中,本文设计出一种适合自己系统需要、将1个串口扩展为3个串口的方案,如图1所示。
其中,4001是四2输入端或非门,40106是六施密特触发器。4001的4脚和9脚分别为主机的RXD和TXD,40106的2脚和9脚为子串口的TXD0和RXD0,6脚和11脚为子串口的TXD1和RXD1,4脚和13脚为子串口的TXD2和RXD2。
根据图的连接方式和逻辑代数的推导可得:RXD的状态等于40106的9脚、11脚、13脚的状态相与。当40106的9脚、11脚、13脚中的任意一个有数据信号时,由于在异步串行通讯中,无数据传输时的引脚状态为高,因此RXD上就能接收到有数据信号的那个引脚上的数据状态。40106的2脚、4脚、6脚的状态等于TXD的状态,所以可以利用40106的2脚、4脚、6脚做为子串口的TXD。
这种设计方案适用于主机同时向多个串行设备发送数据,而从设备不同时向主机发送数据的情况。再增加几个信号线,就可以区分出向哪一个从设备发送数据以及接收到的数据是来自哪一个从设备。在本文的系统中,主机是通信的发起者,接收到的数据来自哪个从设备是可以预知的,因此,只需再增加3个控制从设备使能的信号线即可。
[b]几种方法的比较
[/b] 在需要扩展系统的串行口时,使用多串行口单片机的方法是最容易想到的。由于串口集成在单片机内部,因此设备体积较小,抗干扰能力较高,但多串口单片机通常价格较高,而且,如果是开发人员所不熟悉的型号,还需要开发人员重新学习并购买与之配套的开发工具,这延长了产品的开发周期,也增加了产品的开发成本。
软件模拟法占用的系统资源少、成本低、易于实现。但其采样次数较低,难以保证数据的正确性,而且一般不能模拟过高的波特率。
并行口扩展串口方法的功能比较强大,能提供MODEM控制信号、通讯速度高,但控制复杂,占用MCU的端口资源较多,同时价格也较高。
利用串行口扩展串行口,控制简单,能最大限度地减少控制线,不需要占用太多的主机系统资源,而且通用性强,性能稳定,可保证数据的正确性。GM812x的不足之处在于:不满足超低功耗应用要求;多通道模式下,所有子串口工作波特率只能设置成统一值,不适用于各从机工作波特率不一致、又要求同时工作的系统。SP2338虽然能满足低功耗的要求,但其子串口波特率也需要设置为统一值,并且不能对数据帧格式编程,最高波特率也只有9600bps。
本文提出的方法中,各个子串口的串行特性和母串口相同,使用简单,占用系统资源少,易于控制(最少2个控制信号扩展3个串口),稳定性好。其功耗取决于4001和40106,它们的功耗都在mA级。其最高波特率取决于4001和40106的响应速度,4001和40106的最大响应延迟是250ns,所以理论上最高波特率可达4Mbps。此方法已经成功地应用于三表远传系统。该方法的缺点是,它不能用于从机工作波特率不一致、又要求同时工作的系统。
[b]结语
[/b] 本文设计了一种扩展串口的方法以解决在实际应用中遇到的主机串行口资源不足的问题,目前该方法已经成功地应用于三表远传系统中。在解决这个问题的过程中,本文也对其他解决方案进行了比较。
参考文献:
1.刘毓梅等,通过异步串口扩展芯片GM8123/25的原理和应用,成都国腾微电子公司,2004
2.李华艾编,Mcs-5系列单片机实用接口技术,北京航空航天大学出版社,2001
[!--empirenews.page--] 嵌入式系统中扩展串行口的几种方法
图1 本文设计的扩展串行口方法示意图
[b]本文设计的扩展方法
[/b] 在电路设计的过程中,本文设计出一种适合自己系统需要、将1个串口扩展为3个串口的方案,如图1所示。
其中,4001是四2输入端或非门,40106是六施密特触发器。4001的4脚和9脚分别为主机的RXD和TXD,40106的2脚和9脚为子串口的TXD0和RXD0,6脚和11脚为子串口的TXD1和RXD1,4脚和13脚为子串口的TXD2和RXD2。
根据图的连接方式和逻辑代数的推导可得:RXD的状态等于40106的9脚、11脚、13脚的状态相与。当40106的9脚、11脚、13脚中的任意一个有数据信号时,由于在异步串行通讯中,无数据传输时的引脚状态为高,因此RXD上就能接收到有数据信号的那个引脚上的数据状态。40106的2脚、4脚、6脚的状态等于TXD的状态,所以可以利用40106的2脚、4脚、6脚做为子串口的TXD。
这种设计方案适用于主机同时向多个串行设备发送数据,而从设备不同时向主机发送数据的情况。再增加几个信号线,就可以区分出向哪一个从设备发送数据以及接收到的数据是来自哪一个从设备。在本文的系统中,主机是通信的发起者,接收到的数据来自哪个从设备是可以预知的,因此,只需再增加3个控制从设备使能的信号线即可。
[b]几种方法的比较
[/b] 在需要扩展系统的串行口时,使用多串行口单片机的方法是最容易想到的。由于串口集成在单片机内部,因此设备体积较小,抗干扰能力较高,但多串口单片机通常价格较高,而且,如果是开发人员所不熟悉的型号,还需要开发人员重新学习并购买与之配套的开发工具,这延长了产品的开发周期,也增加了产品的开发成本。
软件模拟法占用的系统资源少、成本低、易于实现。但其采样次数较低,难以保证数据的正确性,而且一般不能模拟过高的波特率。
并行口扩展串口方法的功能比较强大,能提供MODEM控制信号、通讯速度高,但控制复杂,占用MCU的端口资源较多,同时价格也较高。
利用串行口扩展串行口,控制简单,能最大限度地减少控制线,不需要占用太多的主机系统资源,而且通用性强,性能稳定,可保证数据的正确性。GM812x的不足之处在于:不满足超低功耗应用要求;多通道模式下,所有子串口工作波特率只能设置成统一值,不适用于各从机工作波特率不一致、又要求同时工作的系统。SP2338虽然能满足低功耗的要求,但其子串口波特率也需要设置为统一值,并且不能对数据帧格式编程,最高波特率也只有9600bps。
本文提出的方法中,各个子串口的串行特性和母串口相同,使用简单,占用系统资源少,易于控制(最少2个控制信号扩展3个串口),稳定性好。其功耗取决于4001和40106,它们的功耗都在mA级。其最高波特率取决于4001和40106的响应速度,4001和40106的最大响应延迟是250ns,所以理论上最高波特率可达4Mbps。此方法已经成功地应用于三表远传系统。该方法的缺点是,它不能用于从机工作波特率不一致、又要求同时工作的系统。
[b]结语
[/b] 本文设计了一种扩展串口的方法以解决在实际应用中遇到的主机串行口资源不足的问题,目前该方法已经成功地应用于三表远传系统中。在解决这个问题的过程中,本文也对其他解决方案进行了比较。
参考文献:
1.刘毓梅等,通过异步串口扩展芯片GM8123/25的原理和应用,成都国腾微电子公司,2004
2.李华艾编,Mcs-5系列单片机实用接口技术,北京航空航天大学出版社,2001
[!--empirenews.page--] 如果这篇内容对您有帮助,欢迎点赞支持!