当前位置:首页 > 单片机 > 单片机
[导读]1 引言在以单片机为核心的测控系统中.微控制器往往需要两个或两个以上的串行口与其他主机或外设进行通讯,如何使系统具备多个串行接口,是一个具有普遍性的问题。尤其在航空航天领域,由于GPS、大气数据系统、

1 引言

在以单片机为核心的测控系统中.微控制器往往需要两个或两个以上的串行口与其他主机或外设进行通讯,如何使系统具备多个串行接口,是一个具有普遍性的问题。尤其在航空航天领域,由于GPS、大气数据系统、数字罗盘、无线电高度表、甚至陀螺等航空电子设备普遍采用串行通讯方式,单片计算机系统就更需要有多个串行口以满足与外界信息交换的需要。

2 常用的多串行口设计方法

①选用多串行口单片机

直接选用多串行口单片机作为系统的CPU,显然是最直接有效的方法。现在有许多新型CPU配备两个或两个以上串行口,如W77E58、DS80C320、MSP430F149、C8051F020单片机和数字信号处理器TMS320C30有两个串行口,而cygnal的C8051F系列单片机有4-5个全双工的异步串行口。

②用CPU的I/O模拟串行口

当串行口的波特率设为9600波特时,传送一个bit需要100us左右,对于一般的单片机而言,软件定时器完全有能力按异步串行通讯协议模拟出串行口的时序。所以,用CPU的两个I/O口和一个软件定时器,就可以纯粹用软件模拟出一个串行口来。文献介绍了一种具体的实现方法,发送时,只需按时序一位一位输出数据即可,接收时,首先利用外部中断检测到I/O接收口上的起始电平,然后利用定时器按半个bit的时间长度延时接收第一个bit的数据,再按一个bit的时间长度延时依此读取其他位的信号。

③基于高速输入输出的软件串行口

80C196系列单片机配备了高速输入HSI和高速输出HSO接口.可以利用HSI和HSO来模拟串行口。数据的输出利用HSO,只要在HSO的定时器里写入与波特率对应的延迟时间,HSO每中断一次,输出一个数据位,直到停止位输出完毕。接收时,利用HSI自身的信号跳变检测功能检测起始位,并产生中断通知CPU开始接收数据,后续的数据位由软件定时器按波特率定时读取。文献详细介绍了实现方法,并给出了完整的程序代码;本方法在80C196MC/MD单片机中。则表现为事件处理阵列EPA和外设事物服务器PTS的应用,其优点是EPA的每个模块与CPU的指定引脚对应,减少了软件开销和程序设计的复杂度。

④16C550系列可编程通讯控制器

利用并行口扩展串行口的接口芯片种类较多,其中16C550系列通讯控制器普遍应用于计算机控制系统和通讯设备,以实现CPU与串行口和MODEM的通讯。16C550配备一个串行口,16C552配备两个串行口,而16C554配备四个串行口。16C550系列器件的实质是实现串行口与CPU并行口的转换,其自身有较强的数字逻辑功能。16C550系列器件的串行口工作方式均可编程,有的还带有开关量输入输出接口,可以作为CPU的开关量扩展接口用。

⑤用分立器件将并行口转换为串行口

文献提供了一种利用555定时器、D触发器和移位寄存器等分立元件实现串、并口互相转换的电路。该电路用定时器产生与波特率一直的同步时钟信号,把接收到的数据移位寄存到并口供CPU读取,或把并行口的数据移位发出,其实质是用若干个分立元件模拟16C550的功能。

⑥串行口扩展芯片

现在有一种专门的SP系列串行口扩展芯片,可以将一路高速的全双工串行口扩展为多路的低速全双工串行口,串口的波特率通过晶振统一确定。如SP2328和SP2338可以将一路母串口扩展为三路子串口,SP2538可以将一路母串口扩展为五路子串口。该系列芯片有输入地址线和输出地址线,在通过母串口向子串口发送数据时要给输出地址线上加选择电平,确定从哪一路子串口输出,在通过母串口从子串口读取数据时要检测输入地址线的电平,以确定是哪一路子串口的信号。该系列芯片应该是采用分时机制,通过内部的逻辑电路将一路数据分解为多路或将多路数据合成为一路。如SP2328母串口的波特率是子串口波特率的四倍,SP2538母串口的波特率是子串口波特率的六倍。

⑦用多路复用器扩展串行口

文献提供了一种利用多路复用器MAX353将一路串行口扩展为两路的方法。在发送信号的时候,CPU先给出MAX353的端口选择地址,串行信号经多路复用器的切换,从指定通道发送出去。在接受信号的时候,将多路复用器默认为第一通道,第二路串行口的RXD2同时接到(2PU的外部中断引脚上。如果第一通道有数据,则直接接收。如果第二通道有数据.RXD2的起始位将产生一个外部中断,CPU进入中断响应程序,将复用器切换到第二通道,接受RXD2的数据。一个字节接收完毕后,将复用器切换回第一通道。

文献的方法占用了一个外部中断,且只能将一路串口扩展为两路。基于同样的思路,可以利用四选一多路复用器将一路串行口扩展为两路以上。发送

数据的操作过程同上。为了实现数据的接收,需要用可编程逻辑器件或锁存器及编码器设计一个通道选择电路,哪一路先有起始位,将多路复用器选通到哪一路。CPU根据通道选择电路的输出确定所收数据的通道编号。

⑧运用FPGA/CPLD设计串行口

FPGA/CPLD具有强大的电路模拟功能。利用FPGA/CPLD可以设计并行口转串行口的时序逻辑电路,该电路一般由四部分组成:总线接口与控制逻辑部分、波特率发生部分、移位输出与锁存部分、移位输入与锁存部分。该电路波特率可以调节,有片选线和读写线。CPU通过并行口对电路进行访问。从实质上说,该电路模拟了可编程控制器16C550的串行接口功能。事实上,FPGA/CPLD有很大的灵活性。可根据实际需要和系统资源对电路进行适当裁剪,也可把多路复用技术或时分复用技术运用于串行口的模拟。

3 多串行口设计方法的比较研究与选择原则

以上8种方法,各有利弊。显然,选用多串口CPU是最为直接有效的方法,但是选用一种新型号的CPU,对于开发者来说,有一定的开发风险,有时还有受到供货渠道和开发条件的限制。选用专用芯片是一种可靠性最高的串口外部扩展法,有技术成熟、软件工作量小等诸多优势。不足之处是硬件成本增加、体积增加,有时还要占用外部中断源。选用多路复用器。其好处是可以实现CPU一点对多点的通讯、软硬件成本低、可靠性高,致命缺点是CPU不能同时接收多路输入数据。选用FPGA/CPLD既可以设计串行接口本身,又可以用来实现多路串口切换,或管理多个串行接口芯片的中断源。优点是可靠性高、CPU软件开销小,不足是开发成本稍大、硬件成本高。用分立元件实现串行口的转换,优点是软件工作量小,不足是电路复杂、可靠性差、要占用外部中断源。利用软件模拟串行接口,其优点不言而喻.既不增加任何硬件,又不占用外部中断源。缺点是软件复杂度高、CPU开销大、要占用软件定时器。

以上八种多串口的设计方法可以归纳为五种设计思想:

①直接从CPU上下手,选择多串行口单片机;

②挖掘器件本身的资源,在CPU I/O口线上用软件模拟串行口;

③使用功能电路实现串、并转换;

④使用功能电路将一路高速串行口分解为多路低速串行口;

⑤通过分时复用实现一路到多路的切换。

针对这几种不同的设计思想和其具体的实现方法,在应用时该如何选择,不但要依据以上几种方法的软硬件复杂度、CPU时间开销、实时性和可靠性,还要依据应用系统中所需串行接口的总路数、各个串口之间的独立性和波特率,以及现有的开发条件和综合成本指标。选择时要根据各种因素进行综合权衡。要在能实现所要求功能的基础上,充分利用现有资源、降低系统的复杂度、提高可靠性,力求使设计代价最小、总体成本最低。当然,这些方法的选择应该灵活多样,不必拘泥于一种方法,也可以因地制宜地选择几种方法的组合。

4 应用举例

在某型无人机飞行控制器设计中,CPU选用的是80C196KC。CPU上原有的一路串口用于遥控遥测。为了测量飞机的航向角。系统中应用了数字罗盘HMR3000。该传感器为串口接口,波特率为19200,输出数据为NMEAC183格式,每秒20帧,每帧35字节,为此需要给控制器增加一路全双工异步串行接口。

基于对以上8种设计方法的比较与分析,在权衡系统的软硬件复杂度之后,选用了第四种方法,即利用16C550可编程通讯控制器扩展出一路串行口。专门与该传感器通讯。16C550使用了FIFO功能,在接收14个字节后向CPU提出一次中断请求。这样CPU最多中断4次就可以全部接收一帧姿态测量数据。控制器的软件对HMR3000一帧输出数据的解码时间仅为1.187ms,CPU的负担并不大。CPU、16C550和HMR3000的连接电路如图1所示。


图1 可编程通讯控制器16C550与单片机系统的接口电路图

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭