微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 利用SPI总线扩串口的方法

利用SPI总线扩串口的方法

时间:03-28 来源:电子产品世界 点击:
概述

  随着电子技术的发展,各类电子设备已不再满足于某一单一功能,而是朝着多功能集成的方向发展,随着功能的增加,一个系统就不仅仅需要一个主机,还需要与多个外设配合工作以实现附加功能,因此主机与外设就必然需要进行数据传输,而这种传输一般会采用串口的方式以节约IO资源和增加传输距离。而普通单片机控制器只提供1个串口,远不能满足多外设通讯的需求,因此串口扩展成为系统常常需要解决的问题。串口扩展的方案比较多,但开发工作量、硬件成本、可靠性、指标存在一定差异。

  鉴于速度、通用性及成本的考虑,SPI总线的应用非常广泛,因此利用SPI接口进行串口扩展也不失为实现串口扩展的一个好方式。成都国腾微电子有限公司的GM814X芯片正是针对SPI扩串口的需求而设计开发的串口扩展专用芯片,可以帮助系统设计工程师轻松通过MCU的SPI接口实现扩串口的功能。
  
  扩串口方案

  SPI总线

  SPI总线是由摩托罗拉公司提出的一种同步串行外围设备接口总线,主要用于微控制器和外围设备之间的串行传输。SPI也能在多主设备系统中进行处理器的通信。外围设备可以是简单普通的TTL移位寄存器,也可以是复杂完整的从系统,如LCD显示驱动器、模数转换器系统等。

  SPI总线包含四条线:串行时钟(SCK),主输出从输入(MOSI),主输入从输出(MISO),从设备选择(SS)。

  总线系统中所有的SCK、MOSI、MISO引脚要连在一起。系统中只有一个SPI设备可作主设备,其他连在总线上的SPI设备就成了从设备。主设备将它的SCK和MOSI、MISO分别连到从设备的SCK和MOSI、MISO端。

  SPI串行接口主要用于短距离的主机与从机的数据传送,具有连接电路简单、使用方便等优点,可为实现主机和从机及从外围设备的通信提供了一种简单、易行的方案。

  GM814X

  GM814X芯片可以将一个标准SPI接口扩展成2个(GM8141)或4个(GM8142)标准的UART, 所有扩展串口能以各自独立设置的波特率,帧长和校验方式,同时和SPI接口进行数据收发。一次SPI传输的数据为16bit,其中高8bit为子串口地址以及其它附加命令和状态信息,低8bit为实际收发的数据。

  芯片的工作模式由软件方式进行设置,SPI接口为从机方式,各子串口的工作波特率、数据帧长等各种通信设置都可由软件对各子串口的设置寄存器独立设置,减少了外部MCU的IO需求。芯片的功耗低,具备多种掉电操作。

  该芯片主要功能特性包括:

  ·通过SPI总线扩展2和4个标准的串口;

  ·具备Shutdown功能,Shutdown模式下超低的静态电流<100mA,唤醒时间不超过25ms;

  ·正常工作模式下<3mA的工作电流;

  ·工作模式、串口波特率、奇偶校验,数据长度,中断方式,中断屏蔽,红外方式,主机呼叫设置都通过控制字设置,节省大量IO资源;

  ·各子串口具备独立的发送数据8级FIFO;

  ·接收独立的16级 FIFO,满足高速数据接收,减少数据溢出;

  ·3.6864M晶振下子串口最高到230400Bps;

  ·兼容IrDA数据模式;

  ·具备数据广播功能;

  ·输出波特率误差小于0.1%,输入波特率误差允许小于3.4%;

  应用设计参考

  利用GM814X扩串口,由于SPI时序比较简单,因此主机的选择比较灵活,可以选用具备SPI接口的MCU实现,也可以用普通MCU模拟SPI接口实现,设计工程师只需要根据整机对控制器系统资源的需求来选定MCU,相应的器件成本可以有所降低。

  GM814X与控制器的接口如图1所示。



  GM8142与控制器的通讯为标准的SPI接口的4线方式, 对8142的所有设置和数据通讯都通过SPI接口向设置寄存器发数据来完成,各扩展子口的工作方式为独立设置。

  GM8142的数据收发为16bit的数据长度。数据的接收以时钟的上升沿为采样标志,数据的发送以时钟信号的下降沿为移位标志,时序如图2所示。16bit的数据收发从CS为低时有效,当CS拉高后,结束数据的收发,即一个CS有效周期要完成16bit的数据收发。如果使用8位单片机,则要求在CS有效期内启动两次SPI通讯。



  对GM8142的操作包括对芯片的工作模式、各子串口的波特率设置、数据帧长和UART第9位功能设置等等,该操作通过写内部的功能设置寄存器来实现,同时可以读取功能设置寄存器内的内容。

  发送数据时,外部MCU通过SPI接口向芯片写入16bit的数据,其中高8bit为子串口地址及附加信息,低8bit为实际的发送数据。

  读取数据时,从芯片读取一个16bit的数据,其中高8bit为子串口地址及附加信息,低8bit为实际的接收数据。

  GM8142具备低功耗模式,可以在不需要时将芯片关断,以降低系统功耗。Shutdown模式具备软件和硬件控制两种方式,硬件Shutdown操作让GM814X中止当前的一切操作,立即进入Shutdown模式,并且只能通过硬件控制唤醒。软件Shutdown启动后,GM814X立即停止与外部设备的数据交换,但要将FIFO中数据发送完毕后才进入Shutdown模式。软件Shutdown模式下,DIN接收唤醒命令或子串口的RXD上有数据接收可以让GM814X自动恢复正常工作模式。


  

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

网站地图

Top