单片机多串行口设计方案.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
单片机多串行口设计方案 在以单片机为核心的测控系统中.微控制器往往需要两个或两个以上的串行口与其 他主机或外设进行通讯,如何使系统具备多个串行接口,是一个具有普遍性的问题。尤 其在航空航天领域,由于GPS、大气数据系统、数字罗盘、无线电高度表、甚至陀螺 等航空电子设备普遍采用串行通讯方式,单片计算机系统就更需要有多个串行口以满足 与外界信息交换的需要。 常用的多串行口设计方法 选用多串行口单片机 直接选用多串行口单片机作为系统的CPU,显然是最直接有效的方法。现在有许多新 型CPU配备两个或两个以上串行口,如W77E58、DS80C320、MSP4 30F149、C8051F020单片机和数字信号处理器TMS320C30有两 个串行口,而cygnal的C8051F系列单片机有4-5个全双工的异步串行口 。 用CPU的I/O模拟串行口 当串行口的波特率设为9600波特时,传送一个bit需要100us左右,对于一 般的单片机而言,软件定时器完全有能力按异步串行通讯协议模拟出串行口的时序。所 以,用CPU的两个I/O口和一个软件定时器,就可以纯粹用软件模拟出一个串行口 来。文献介绍了一种具体的实现方法,发送时,只需按时序一位一位输出数据即可,接 收时,首先利用外部中断检测到I/O接收口上的起始电平,然后利用定时器按半个b it的时间长度延时接收第一个bit的数据,再按一个bit的时间长度延时依此读 取其他位的信号。 基于高速输入输出的软件串行口 80C196系列单片机配备了高速输入HSI和高速输出HSO接口.可以利用HS I和HSO来模拟串行口。数据的输出利用HSO,只要在HSO的定时器里写入与波 特率对应的延迟时间,HSO每中断一次,输出一个数据位,直到停止位输出完毕。接 收时,利用HSI自身的信号跳变检测功能检测起始位,并产生中断通知CPU开始接 收数据,后续的数据位由软件定时器按波特率定时读取。文献详细介绍了实现方法,并 给出了完整的程序代码;本方法在80C196MC/MD单片机中。则表现为事件处 理阵列EPA和外设事物服务器PTS的应用,其优点是EPA的每个模块与CPU的 指定引脚对应,减少了软件开销和程序设计的复杂度。 16C550系列可编程通讯控制器 利用并行口扩展串行口的接口芯片种类较多,其中16C550系列通讯控制器普遍应 用于计算机控制系统和通讯设备,以实现CPU与串行口和MODEM的通讯。16C 550配备一个串行口,16C552配备两个串行口,而16C554配备四个串行 口。16C550系列器件的实质是实现串行口与CPU并行口的转换,其自身有较强 的数字逻辑功能。16C550系列器件的串行口工作方式均可编程,有的还带有开关 量输入输出接口,可以作为CPU的开关量扩展接口用。 用分立器件将并行口转换为串行口 文献提供了一种利用555定时器、D触发器和移位寄存器等分立元件实现串、并口互 相转换的电路。该电路用定时器产生与波特率一直的同步时钟信号,把接收到的数据移 位寄存到并口供CPU读取,或把并行口的数据移位发出,其实质是用若干个分立元件 模拟16C550的功能。 串行口扩展芯片 现在有一种专门的SP系列串行口扩展芯片,可以将一路高速的全双工串行口扩展为多 路的低速全双工串行口,串口的波特率通过晶振统一确定。如SP2328和SP23 38可以将一路母串口扩展为三路子串口,SP2538可以将一路母串口扩展为五路 子串口。该系列芯片有输入地址线和输出地址线,在通过母串口向子串口发送数据时要 给输出地址线上加选择电平,确定从哪一路子串口输出,在通过母串口从子串口读取数 据时要检测输入地址线的电平,以确定是哪一路子串口的信号。该系列芯片应该是采用 分时机制,通过内部的逻辑电路将一路数据分解为多路或将多路数据合成为一路。如S P2328母串口的波特率是子串口波特率的四倍,SP2538母串口的波特率是子 串口波特率的六倍。 用多路复用器扩展串行口 文献提供了一种利用多路复用器MAX353将一路串行口扩展为两路的方法。在发送 信号的时候,CPU先给出MAX353的端口选择地址,串行信号经多路复用器的切 换,从指定通道发送出去。在接受信号的时候,将多路复用器默认为第一通道,第二路 串行口的RXD2同时接到(2PU的外部中断引脚上。如果第一通道有数据,则直接 接收。如果第二通道有数据.RXD2的起始位将产生一个外部中断,CPU进入中断 响应程序,将复用器切换到第二通道,接受RXD2的数据。一个字节接收完毕后,将 复用器切换回第一通道。 文献的方法占用了一个外部中断,且只能将一路串口扩展为两路。基于同样的思路,可 以利用四选一多路复用器将一路串行口扩展为两路以上。发送 数据的操作过程同上。为了实现数据的接收,需要用可编程逻辑器件或锁
- 粉丝: 168
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助