嵌入式系统中扩展串行口的几种方法

发布者:谁与争锋1最新更新时间:2006-08-16 来源: 电子设计应用关键字:异步  主机  模拟法 手机看文章 扫描二维码
随时随地手机看文章

引言
  串行接口设备凭借其控制灵活、接口简单、占用系统资源少等优点,被广泛应用于工业控制、家庭安防、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 本文设计的扩展串行口方法示意图

本文设计的扩展方法
  在电路设计的过程中,本文设计出一种适合自己系统需要、将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个控制从设备使能的信号线即可。

几种方法的比较
  在需要扩展系统的串行口时,使用多串行口单片机的方法是最容易想到的。由于串口集成在单片机内部,因此设备体积较小,抗干扰能力较高,但多串口单片机通常价格较高,而且,如果是开发人员所不熟悉的型号,还需要开发人员重新学习并购买与之配套的开发工具,这延长了产品的开发周期,也增加了产品的开发成本。

  软件模拟法占用的系统资源少、成本低、易于实现。但其采样次数较低,难以保证数据的正确性,而且一般不能模拟过高的波特率。

  并行口扩展串口方法的功能比较强大,能提供MODEM控制信号、通讯速度高,但控制复杂,占用MCU的端口资源较多,同时价格也较高。

  利用串行口扩展串行口,控制简单,能最大限度地减少控制线,不需要占用太多的主机系统资源,而且通用性强,性能稳定,可保证数据的正确性。GM812x的不足之处在于:不满足超低功耗应用要求;多通道模式下,所有子串口工作波特率只能设置成统一值,不适用于各从机工作波特率不一致、又要求同时工作的系统。SP2338虽然能满足低功耗的要求,但其子串口波特率也需要设置为统一值,并且不能对数据帧格式编程,最高波特率也只有9600bps。

  本文提出的方法中,各个子串口的串行特性和母串口相同,使用简单,占用系统资源少,易于控制(最少2个控制信号扩展3个串口),稳定性好。其功耗取决于4001和40106,它们的功耗都在mA级。其最高波特率取决于4001和40106的响应速度,4001和40106的最大响应延迟是250ns,所以理论上最高波特率可达4Mbps。此方法已经成功地应用于三表远传系统。该方法的缺点是,它不能用于从机工作波特率不一致、又要求同时工作的系统。

结语
  本文设计了一种扩展串口的方法以解决在实际应用中遇到的主机串行口资源不足的问题,目前该方法已经成功地应用于三表远传系统中。在解决这个问题的过程中,本文也对其他解决方案进行了比较。

参考文献:
1.刘毓梅等,通过异步串口扩展芯片GM8123/25的原理和应用,成都国腾微电子公司,2004
2.李华艾编,Mcs-5系列单片机实用接口技术,北京航空航天大学出版社,2001

关键字:异步  主机  模拟法 引用地址:嵌入式系统中扩展串行口的几种方法

上一篇:ARM2210的智能移动机器人人机界面设计
下一篇:基于虚拟存储的嵌入式存储系统的设计方法

推荐阅读最新更新时间:2024-05-13 18:13

NVIDIA发布全新Isaas开发套件:自主机器人跃进
在苏州举办的GTC CHINA 2019大会上,NVIDIA创始人兼CEO黄仁勋宣布了 全新版本的Isaac(应该取自艾萨克·牛顿)软件开发套件(SDK),建立了一个统一的机器人开发平台,提供更新的AI感知、仿真、操控功能。 Isaac SDK套件包括提供 应用程序框架的Isaac Robotics Engine,预先构建的深度神经网络模型、算法、库、驱动程序和API Isaac GEM,用于室内物流的参考应用程序,以及提供导航功能的Isaac Sim(首个版本)。 NVIDIA表示,全新的Isaac SDK可以大大加快研究人员、开发人员、初创企业和制造商开发和测试机器人的速度,使机器人能够通过仿真获得由人工智能技术驱动的感知
[机器人]
单相异步电动机和三相异步电动机的区别
  单相异步电动机介绍:   单相异步电动机是一种常见的交流电动机,通常用于家庭电器、小型机械设备等场合。单相异步电动机的转子是由铝制成的,固定在电机轴上,并通过单相交流电源的初始相位差来产生旋转力矩。   单相异步电动机通常分为两种类型:单相感应电动机和单相同步电动机。单相感应电动机是最常见的一种类型,其转子上有一个铝制的导体,当电流流过导体时就会产生旋转力矩。单相同步电动机则需要外部提供一个同步电源来保持转子的转速与电源频率同步。单相异步电动机具有结构简单、制造成本低、使用方便等优点,但其输出功率和效率相对较低,适用于一些功率较小、负载变化不大的轻型设备。   三相异步电动机介绍:   三相异步电动机是一种常见的交流电
[嵌入式]
嵌入式系统中扩展串行口的几种方法
引言   串行接口设备凭借其控制灵活、接口简单、占用系统资源少等优点,被广泛应用于工业控制、家庭安防、GPS卫星定位导航以及水、电、气表的抄表等领域。在这些嵌入式系统中,可能会有很多从设备都通过串行接口与主机进行通信,如GPRS MODEM、红外发送和接收模块、RS485总线接口等。这使得开发人员常常面临嵌入式系统中主机串行通信接口不足的问题,针对此问题,本文介绍了几种常见的解决方法。 软件模拟法   软件模拟法可根据串行通讯的传送格式,利用定时器和主机的I/O口来模拟串行通讯的时序,以达到扩展串口的目的。   接收过程中需要检测起始位,这可以使用查询方式,或者,在端口具有中断功能的主机中也可以使用端口的中断进行处理。接收和发送
[应用]
RS485如何实现多主机控制
为何RS485要实现多主机控制呢?     RS485采用的单双工工作模式,为了防止总线上的竞争一般都只能有一台主机,并采用一次主机询问,一次从机应答方式。但是有的时候,我们确实需要多台主机去监控RS485设备,比如需要三台电脑都可以监控相同的几个RS485设备,而且最好共用RS485总线。这个问题虽然在实际中经常碰到,但是没有很好的解决。其难点在于,2台主机是完全独立的,那么它们没有协调机制,如果2台主机同时询问从设备,那么必然引起RS485总线上的数据冲突。 串口服务器如何实现RS485多主机解决方案呢?   由于RS485总线本身的问题,用RS845无法解决以上冲突问题。使用RS485转以太网可以先将RS485信号转换
[嵌入式]
三相异步电动机改二相怎么改
  将三相异步电动机改为二相电动机需要进行以下步骤:   将电动机的端子板上的接线改为两相接线方式,即将原来的三个电源线分别接到两个电源线上,通常选择相邻两个相线,而将第三个相线断开。   在电动机转子上增加一个起动辅助装置,如电容器或启动电阻等,以便电动机能够正常起动。   对于功率较大的电动机,可能需要进行一些改动以保证安全性能,如增加热保护装置等。   需要注意的是,将三相异步电动机改为二相电动机需要进行电气改造,对于没有相关经验和资质的人员来说,建议寻求专业技术人员的帮助,以确保改造后的电动机能够正常工作,并且符合安全要求。   相异步电动机的工作特性   三相异步电动机的工作特性异步电动机的工作特性是指在额定电压和额定频
[嵌入式]
异步电机混合模型转子磁链观测器学习
导读:本期文章主要介绍混合模型转子磁链观测器,其利用电流型磁链观测器在低速区域的观测优势和电压型磁链观测器在中、高速区域的观测优势实现在全速范围内较为准确的估算转子磁链。 一、引言 调速系统中的电机控制技术的最根本的目的实现转矩精准、迅速的控制。以矢量控制的概念为基础,达到对电机的磁链、转矩分别控制的目的前提是转子的磁场定向控制系统需要通过控制定子电流的励磁分量使得转子磁链幅值恒定,而后由控制定子电流转矩分量来实现调节转矩以及实现控制调节转速的目的。为了实现这一目标,就必须获得较为精准的转子磁链的幅值和空间位置信息, 在实用中通常使用磁链观测这一手段来实现。磁链观测器应实现两个目标:一是获得精确的转子磁链幅值;二则需要确保转子
[嵌入式]
<font color='red'>异步</font>电机混合模型转子磁链观测器学习
三相异步电机的工作原理及基本结构
三相异步电机(Triple-phase asynchronous motor)是感应电动机的一种,是靠同时接入380V三相交流电流(相位差120度)供电的一类电动机,由于三相异步电动机的转子与定子旋转磁场以相同的方向、不同的转速旋转,存在转差率,所以叫三相异步电动机。三相异步电动机转子的转速低于旋转磁场的转速,转子绕组因与磁场间存在着相对运动而产生电动势和电流,并与磁场相互作用产生电磁转矩,实现能量变换。 三相异步电机的工作原理 当向三相定子绕组中通入对称的三相交流电时,就产生了一个以同步转速n1沿定子和转子内圆空间作顺时针方向旋转的旋转磁场。由于旋转磁场以n1转速旋转,转子导体开始时是静止的,故转子导体将切割定子旋转磁场而产
[嵌入式]
三相<font color='red'>异步</font>电机的工作原理及基本结构
异步电动机变频调速的基本原理
B. 控制电路 ① 保护电路 :由取样、放大、处理三部分电路组成 ② 驱动电路 :把 CPU 送出的PWM 信号 进行电压和功率放大,控制逆变电路中六个开关器件 ③I/O电路:处理变频器对外输入和输出相关信号的电路 ④操作面板:一是用于显示,另外作为操作键盘 ⑤CPU: 变频器 的核心电路,按照相关信号控制变频器的工作 ⑥ 开关电源 :向控制电路提供所需的直流工作电压 通过 检测 到的定子电压和 电流 直接在定子坐标下可计算出电动机的电磁转矩。转速和转矩的测量值与给定值进行比较,通过磁通调节器和转速调节器控制 逆变器 的开关状态,获取相应的空间电压矢量,由空间电压矢
[嵌入式]
<font color='red'>异步</font>电动机变频调速的基本原理
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved