好文档 - 专业文书写作范文服务资料分享网站

串行输入输出端口的使用_10

天下 分享 时间: 加入收藏 我要投稿 点赞

第10章 串行输入/输出端口的使用 ——微控制器芯片之间通信的实现

目标

通过本章的学习,应掌握以下知识

● MSP430系列微控制器内部的串行数据传输模块

● 通用串行接口(Universal Serial Interface,USI)的使用 ● 串行外围接口(Serial Peripheral Interface,SPI)工作模式

22

● IC接口(Inter Integrated Circuit,IC)工作模式

2

● IC总线的组成结构和技术术语

2

● IC总线上数据传送的时序

引言

在第5章,利用软件的方法实现了同步串行方式的数据传输,驱动同步移位寄存器74164芯片,最后实现数码管的数据显示。MSP430系列微控制器内部具有多种串行数据传输模块,使用这些模块可以降低软件开发的要求,同时还可以提高数据传输的速率。 MSP430x2xx芯片内部串行数据传输模块的基本组成单元是一个移位寄存器。第5章中介绍的74164芯片也是一种移位寄存器,该芯片用来将串行格式的数据转换为并行数据格式。当时钟上跳边沿到来时,74164芯片串行输入数据将被送到并行输出管脚Q0对应的触发器、同时并行输出管脚Q0对应触发器原有的数据移到并行输出管脚Q1对应的触发器、并行输出管脚Q1对应触发器原有的数据移到并行输出管脚Q2对应的触发器、……并行输出管脚Q6对应触发器原有的数据移到并行输出管脚Q7对应的触发器。并行输出管脚Q7对应触发器的数据将被移出,或者丢弃。

在数据接收时,MSP430x2xx芯片内部串行数据传输模块的移位寄存器工作与74164芯片类似,当数据全部移入移位寄存器就能够读这个数据;在数据发送时,先以并行输入的方式向移位寄存器写数据,然后将它逐位移出。

尽管基于微控制器进行电路功能的实现是通过编写程序完成的,但是硬件功能是编写程序的基础。充分地了解芯片的硬件组成和工作原理将对它的完美使用提供扎实的支持。描述数字系统和数字电路的方法和用来实现这些方法的技术不断变化,但是作为理论基础的基本原理并没有改变,理解74164移位寄存器芯片的工作将对本章涉及的MSP430x2xx微控制器内部串行数据传输模块的工作带来方便。

10.1 MSP430x2xx微控制器的串行接口

数字技术已经渗透到人类生活的众多领域,其中数字计算机是最著名和应用最广泛的。尽管数字计算机影响,并改变了我们生活的许多方面,不过许多人并不能准确地说出它的主要特点。简单地说,计算机就是一个能够完成数字信号的算术运算、逻辑运算、比较判断等处理功能的数字系统。

计算机要处理数字信号,这就需要设法将数字信号输入计算机,完成处理的信号还需要从计算机中输出。常用的数字信号的传送方式分并行方式和串行方式。数字信号的并行传送方式的优点为数据传送速率快,但是这种方式需要占用较多的器件管脚,同时也不适用进行远距离的数据传送。

数字信号的串行传送方式虽然数据传送速率慢,不过这种方式占用器件的管脚数量较少,同时也适用进行远距离的数据传送。本书就是采用同步串行传送方式从MSP430微控制器芯片向数码管显示电路传送信息。串行传送方式使用较少数量传输线的特点也使得对放大器、调制器等硬件电路的需求小,因此适用进行远距离的数据传送。

MSP430x2xx微控制器提供串行接口支持芯片之间的数据传送。为满足不同的应用需要, 这里的串行接口具有多种类型:通用串行接口(Universal Serial Interface,USI)、通用串行通信接口(Universal Serial Communication Interface,USCI)以及通用的同步/异步、接收/发送串行接口(Universal Synchronous/Asynchronous Receive/Transmit Peripheral Interface,USART)。

并不是每种芯片内部存在所有这些接口,通常是一种芯片只具有一种类型的串行接口。了解这些接口的工作原理和使用特点将支持选择合适的芯片类型,更方便地完成应用系统的开发。TI公司提供的MSP430微控制器芯片选型手册给出了所有型号芯片包含的接口类型和接口数量。

通用串行接口(USI)模块存在于部分MSP430G2xx1和全部MSP430G2xx2芯片之中,MSP430G2231芯片之中具有USI接口模块。这是一种同步串行通信接口模块,它具有2种

2

工作模式,串行外围接口(Serial Peripheral Interface,SPI)和IC接口(Inter

2

Integrated Circuit,IC)。鉴于篇幅关系,本章只以USI接口模块的串行外围接口(SPI)

2

工作模式和IC接口工作模式为例,分别介绍这两种接口模式下的电路组成、工作过程、相关寄存器,并给出演示程序等内容。

2

串行外围接口(SPI)适合在2个芯片之间进行数据通信;IC接口适合在多个芯片之间进行数据通信,当然它也能够在2个芯片之间进行数据通信。

包括MSP430F2619芯片在内的其它大部分MSP430x2xx微控制器芯片内部具有通用串行

2

通信接口(USCI)模块。这种模块也支持串行外围接口(SPI)和IC接口这两种工作模式,因此本章所介绍的内容也会对这部分电路的工作提供支持。不过需要注意,不同型号芯片的具体使用存在一些差别。

对通用串行通信接口(USCI)模块中所包含的其它工作模式相关内容有兴趣的读者可以参考TI公司的数据手册,MSP430x2xx Family User’s Guide。

10.2 通用串行接口(Universal Serial Interface,USI)

MSP430微控制器的通用串行接口(USI)模块能够支持数字电路芯片之间的同步串行通信。通用串行接口模块具有2种工作模式,串行外围接口(Serial Peripheral Interface,

22

SPI)模式和IC接口(Inter Integrated Circuit,IC)模式。两种工作模式由寄存器位“USII2C”选择。无论工作在哪种模式,移位寄存器,USISR(USI Shift Register),都是该外围模块的最基本组成单元。移位寄存器可以利用软件写入数据,再进行数据的串行发送;接收的串行传输数据也将进入这个寄存器,然后由软件进行读取。

10.2.1 串行外围接口(SPI)

通用串行接口(USI)模块工作在串行外围接口(SPI)模式下的方框图如图所示。

图 USI工作在SPI模式下的方框图

串行外围接口(SPI)是一种3线同步串行通信接口。图中的管脚“SDO”为串行数据输出管脚、管脚“SDI”为串行数据输入管脚、管脚“SCLK”为串行时钟管脚。串行时钟管脚“SCLK”是一个双向管脚。当工作在主模式状态,管脚“SCLK”为输出管脚,它输出串行外围模块产生的时钟信号;当工作在从模式状态,管脚“SCLK”为输入管脚,它接收外部电路提供的时钟信号。

图中的“USISR”方框就是通用串行接口的移位寄存器。在完成相关配置,向移位寄存器写入数据就可以完成数据的串行同步发送,接收过程结束以后从该移位寄存器可以读取数据。利用控制信号“USI16B”,移位寄存器可以配置为8位,或者16位;利用控制信号“USILSB”,移位寄存器中的内容可以配置为数据的高位在前,或者低位在前。

移位寄存器的数据移位工作由移位时钟信号“Shift Clock”和“Bit Counter”位计数器方框的输出信号“USICNTx”联合进行控制。位计数器是一个减法计数器,它对移位寄存器移入,或者移出,的数据位进行计数。每完成一次移位,计数器内容减1。当计数器的内容减到0的时候,它将停止计数,并置位计数器中断标志“USIIFG”。置位的计数器中断标志“USIIFG”将停止串行时钟信号,进而停止移位寄存器的移位工作。当清零控制信号“USIIFGCC”,向计数器“Bit Counter”写入大于0的“USICNTx”数值能自动清除计数器中断标志“USIIFG”。

移位时钟信号“Shift Clock”同时控制移位寄存器和计数器的工作。在该信号上升边沿的驱动下,计数器内容减1,移位寄存器中的数据移动1位。当工作在主模式下,信号“USIMST”使得串行时钟信号“USICLK”能够输出。该信号可以用来产生移位时钟信号“Shift Clock”,同时通过管脚“SCLK”输出。当工作在从模式下,管脚“SCLK”作为输入管脚使用,接收外部的时钟信号来产生移位时钟信号“Shift Clock”。

串行时钟信号“USICLK”的驱动源可以在多个信号源之中选择。在信号“USISSELx”的控制下,在管脚“SCLK”输入信号;MSP430的系统时钟信号ACLK或者SMCLK;定时器Timer_A捕捉/比较模块的输出信号TA0、TA1或者TA2;由软件置位和清零寄存器位“USISWCLK”产生的信号之中选择一个。选择的信号能够通过“Clock Divider”方框在信号“USIDIVx”的控制下实现分频。计数器中断标志“USIIFG”能够停止串行时钟信号“USICLK”的输出。

串行外围接口(SPI)的数据与时钟之间能够选择多种时间关系,选择由信号“USICKPH”和“USICKPL”进行控制。数据与时钟之间的所有时间关系如图所示。这里移位寄存器的宽度选择8位,数据的MSB位在先。

图 SPI模式数据与时钟之间的时间关系图

MSP430微控制器的串行外围接口(SPI)提供多种数据与时钟的时间关系使得它能与许多种类的数字芯片进行数据交换。例如选择USICKPH=1和USICKPL=0,这时串行时钟波形如图所示的第3行波形;串行数据波形如第6行波形。这样的时钟与数据之间的时间关系将满足8位移位寄存器(串行输入,并行输出)74164所需要的时间关系。程序示例将利用这种工作状态完成对1位数码管的显示驱动。

图也给出串行外围接口在主模式下的工作过程。数据发送时,首先由软件向移位寄存器写入待传送的数据;接着向移位计数器装入移位个数数据来启动串行数据输出的工作过程;移位计数器内容减到0将置位中断标志“USIIFG”,该标志停止时钟“USICLK”输出,停止串行传输过程。数据接收时,首先向移位计数器装入移位个数数据来启动串行数据输

入的工作过程;移位计数器内容减到0将置位中断标志“USIIFG”,停止串行传输过程;当中断标志“USIIFG”置位,这时就能够从移位计数器中读取数据。

使用MSP430芯片管脚传输串行信号还需要用信号“USIPEx”使能相关管脚。这些相关管脚可以配置为并行数据输入/输出管脚,这并不影响串行外围接口信号的传输,同时还可以将并行数据输入/输出管脚的中断功能用在串行数据的接收时应用。信号“USIGE”和“USIOE”用于使能串行数据的输出。

串行外围接口(SPI)的软件复位控制位“USISWRST”置位能够清零计数器中断标志“USIIFG”,但同时阻止时钟信号进入移位寄存器和计数器,不过这时不影响移位寄存器和计数器中的内容。

10.2.2 I2C接口(Inter Integrated Circuit,I2C)

IC接口,也称为IC总线,是一种专门设计来支持数字集成电路芯片之间通信的接口协议。这是一种2线同步串行通信接口,包括串行数据线,SDA,和串行时钟线,SCL。这种接口能够支持多个芯片之间的通信,即可以由所连接的多个器件控制总线。表给出了一些相关的技术术语。

表 IC总线技术术语的定义 技术术语 发送器件 接收器件 主器件 从器件 多主器件 仲裁 同步 把数据发送到总线的器件 从总线上接收数据的器件 启动数据传送、产生时钟信号以及终止数据传送的器件,即控制总线工作的器件 被主器件寻址的器件 多个主器件可以同时企图控制总线而不破坏总线信息 多个主器件可以同时企图控制总线时只允许一个主器件控制总线并不破坏总线信息 2个以上器件时钟信号同步过程 2

2

2

22

说明

图给出连接到IC总线上多个器件的连接示意图。连接到IC总线上的这些器件能够显示表列出技术术语的特征,例如主器件和从器件、发送和接收关系的特征。需要注意,这些关系不是永久的,器件所扮演的角色取决总线当时数据的传送状态。

微控制器ASDASCL模拟/数字转换器数字/模拟转换器门阵列存储器微控制器B 图 IC总线结构图

2

以微控制器A与微控制器B之间的通信为例,这里设定微控制器A为主器件。当微控

串行输入输出端口的使用_10

第10章串行输入/输出端口的使用——微控制器芯片之间通信的实现目标通过本章的学习,应掌握以下知识●MSP430系列微控制器内部的串行数据传输模块●通用串行接口(UniversalSerialInterface,USI)的使用●串行外围接口(Serial
推荐度:
点击下载文档文档为doc格式
3j76e42pl67b8vd538ce5nrap1rg8p00xgx
领取福利

微信扫码领取福利

微信扫码分享