微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机系统多串行口设计技术

单片机系统多串行口设计技术

时间:04-27 来源:互联网 点击:

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进入中断响应程序,将

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top