您的位置 首页 培训

嵌入式体系中扩展串行口的几种办法

嵌入式系统中扩展串行口的几种方法,引言串行接口设备凭借其控制灵活、接口简单、占用系统资源少等优点,被广泛应用于工业控制、家庭安防、GPS卫星定位导航以及水、电、气表的抄表等领域。在这些嵌入式系统中,可

导言

串行接口设备凭仗其操控灵敏、接口简略、占用体系资源少等长处,被广泛应用于工业操控、家庭安防、GPS卫星定位导航以及水、电、气表的抄表等范畴。在这些嵌入式体系中,或许会有许多从设备都经过串行接口与主机进行通讯,如GPRS MODEM、红外发送和接纳模块、RS485总线接口等。这使得开发人员常常面对嵌入式体系中主机串行通讯接口缺乏的问题,针对此问题,本文介绍了几种常见的解决办法。

软件模仿法

软件模仿法可依据串行通讯的传送格局,运用守时器和主机的I/O口来模仿串行通讯的时序,以到达扩展串口的意图。

接纳进程中需求检测开始位,这能够运用查询办法,或许,在端口具有中止功用的主机中也能够运用端口的中止进行处理。接纳和发送进程中,对守时的处理既能够运用查询办法也能够运用守时器中止办法。为了确保数据的正确性,在接纳进程中能够在检测异步传输的开始信号处加上一些防搅扰处理,在接纳每个位时能够选用屡次采样。

运用并口转串口扩展串行口

依据Intel8251的串行口扩展

Intel8251是一种通用的同步/异步发送器(USART),它的作业办法能够经过编程设置,并具有独立的接纳/发送器。能以同步或异步串行通讯办法作业,自动完结帧格局,具有奇、偶校验和过错检测电路。

依据TL16C554的串行口扩展

TL16C554是TI公司出产的4通道异步收发器集成芯片。对TL16C554串行通道的操控,是经过对操控寄存器LCR、IER、DLL、 DLM、MCR和FCR编程来完成的。这些操控字决议字符长度、中止位的个数、奇偶校验、波特率以及调制解调器接口。操控寄存器能够恣意次序写入,可是 IER有必要最终一个写入,因为它操控中止使能。串行通道内的波特率发生器(BRG)答应时钟除以1至65535之间的恣意数,BRG依据其不同的三种通用频率中的一种来决议规范波特率。

16C55x系列芯片还包含16C550、16C552,别离能够扩展1个和2个串行口。

运用串行口扩展串行口

依据GM8123/25系列芯片的串行口扩展

GM8123/25系列串口扩展芯片能够全硬件完成串口扩展,通讯格局可设置,并与规范串口通讯格局兼容。

GM8125可扩展5个规范串口,经过外部引脚挑选串口扩展形式:单通道作业形式和多通道作业形式。单通道形式下,无需设置芯片的通讯格局,子串口和母串口以相同的波特率作业,同一时刻只答应一组子串口和母串口通讯,作业子串口由地址线挑选。单通道作业形式适用于一切从机不需求一起通讯,并且通讯进程完全由主机操控的体系。多通道形式下,各子串口波特率相同,答应一切子串口一起与母串口通讯,母串口以子串口波特率的6倍作业。发送时由地址线挑选用来发送数据的子串口;接纳时子串口能自动响应从机发送的数据,再由母串口发送给主机,一起由地址线回来接纳到数据的子串口地址,主机在接纳到子串口送来的数据后,能够依据地址线的状况判别数据是由哪一个从机发送的。

多通道作业形式下,在进行数据通讯前要对芯片进行作业办法设置,包含串口帧格局设置和通讯波特率设置。

经过串行口和操控引脚相互配合可对芯片进行作业办法设置,引脚MS为0、且STADD2~STADD0为000时写命令字,引脚MS为1、 STADD2~STADD0为000时读命令字。进行作业办法设置时,芯片的帧格局和母串口作业波特率与上一次进行数据通讯时共同;而复位后的帧格局为 11bit,母串口波特率为7200bps。

依据SP2338的串行口扩展

SP2338是选用低功耗CMOS 工艺规划的通用异步串行口扩展芯片,它可轻松将主机原有的1个串行口扩展成3 个全新的全双工串行口。

SP2338适用于1个开始位、8个数据位、1个中止位的多串口体系,也就是说其帧格局是不行编程的。主机经过改动ADRI1、ADRI0地址线状况的办法挑选3个子串口中的恣意一个,3个子串口的地址别离为00、01、10。地址11用于履行SP2338 芯片自身的复位指令0x35 或0xB5、睡觉指令0x55或0xD5、延时指令0x00。向RX0~RX3中的恣意一个接纳端口写恣意数据即可将SP2338唤醒,但因为 SP2338的唤醒时刻需求25ms左右,故用于芯片唤醒的数据将不会被主机接纳。因而,能够先发送一个字节数据用于唤醒芯片,延时25ms后即可进行正常的数据传输。

未运用的输入端口,如RX0、RX1、RX2等有必要衔接到VCC;未运用的输出端口,如TX0、TX1、TX2等有必要悬空;未运用的ADRI0、ADRI1有必要衔接到GND。

主机收发数据时序为:主机TX3接纳到一个字节后应立即读取SP2338的输出地址ADRO0、ADRO1的状况,判别接纳到的数据来自哪个子串口;主机发送数据时,首要经过ADRI0、ADRI1挑选某一个子串口,再向TX3写将发送的数据。

本文规划的扩展办法

在电路规划的进程中,本文规划出一种合适自己体系需求、将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个操控从设备使能的信号线即可。

几种办法的比较

在需求扩展体系的串行口时,运用多串行口单片机的办法是最简单想到的。因为串口集成在单片机内部,因而设备体积较小,抗搅扰才能较高,但多串口单片机一般价格较高,并且,如果是开发人员所不熟悉的类型,还需求开发人员重新学习并购买与之配套的开发工具,这延长了产品的开发周期,也添加了产品的开发本钱。

软件模仿法占用的体系资源少、本钱低、易于完成。但其采样次数较低,难以确保数据的正确性,并且一般不能模仿过高的波特率。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/324510.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部