摘 要:介绍了一种基于 SPI 总线技术的 LPC2103 对 LED 数码管显示实现控制的方法。采
用 8 位 74HC595 串并转换芯片驱动 LED 数码管。结合 74HC595 芯片的特点给出了 SPI
控制的驱动电路,描述了基于 SPI 总线主模式的 74HC595 芯片的数据传输过程,给出了
相关应用程序流程图及软件实现。
关键词: SPI 总线;主模式;LPC2103;74HC595
SPI( Serial Peripheral Interface) 总线是 Motorola 公司提出的一个同步串行外设接
口, 允许 MCU 与各种外围器件以串行方式进行通信、数据交换。SPI 可以同时发出和接收
串行数据, 它只需 4 条线就可以完成 MCU 与各种外围器件的通信。一般使用的 4 条线为:
串行时钟线 SCK、主机输入/从机输出数据线 MISO、主机输出/从机输入数据线 MOSI 和
低电平有效的从机选择线 SSEL。这些外围器件可以是简单的 TTL 移位寄存器、复杂的
LCD 显示驱动器、Flash、RAM、A/D 转换器、网络控制器及其他 MCU 等
[1]
。
本文给出了一种基于 SPI 总线的 LPC2103 控制外围 LED 显示的设计方法。利用
74HC595 驱动静态共阳 LED 数码管,使用串转并的方式实现 I/O 口的扩展。
1 LPC2103 中的 SPI 功能特性
LPC2103 是一个基于支持实时仿真的 16/32 位 ARM7 TDMI-S CPU 的微控制器,内
部具有 2 个完全独立的 SPI 控制器,采用全双工的数据通信方式,最大数据位速率为外设
时钟 Fpclk 的 1/8。与 SPI 总线接口有关的专用寄存器有:(1)SPCR 控制寄存器。该寄存
器包含一些可编程位来控制 SPI 总线的功能,而且在数据传输之前进行设定,主要有时钟
相位控制、时钟极性控制、主从模式选择、字节传输移动方向及 SPI 中断使能;(2)SPSR
状态寄存器(为只读寄存器)。用于监视 SPI 功能模块的状态,包括一般性功能和异常情况。
主要用途是检测数据传输是否完成,通过判断 SPIF 位来实现,其他位用于指示异常情况;
(3)SPDR 数据寄存器。为 SPI 提供数据的发送和接收,处于主模式时,向该寄存器写入数
据,将启动 SPI 数据传输。串行数据的发送和接收通过内部移位寄存器来实现;
(4)SPCCR 时钟计数器寄存器。用于设置 SPI 时钟分频值,SPI 处于主模式时,该寄存器
用于控制时钟速率,即 SPI 总线速率,寄存器值为 1 位 SCK 时钟所占用的 PCLK 周期数,
并且值为偶数,必须不小于 8;(5)SPINT 中断标志寄存器。包含了 SPI 的中断标志位,由
数据传输完成及发生模式错误来引发
[2]
。
1.1 SPI 电气连接
利用 SPI 总线可在软件的控制下构成各种系统,如 1 个主 MCU 和几个从 MCU、几个从
MCU 相互连接构成多主机系统(分布式系统)、1 个主 MCU 和 1 个或几个从 I/O 设备所构
成的各种系统等。在大多数应用场合, 可使用 1 个 MCU 作为主机来控制数据,并向 1 个或
几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据。同一时刻
只允许有 1 个主机操作总线。在数据传输过程中,总线上只能有 1 个主机和 1 个从机通信。
在一次数据传输中,主机总是向从机发送 1 个字节数据,而从机也总是向主机发送 1 个字
节数据
[3]
。图 1 为 SPI 在主模式下控制 2 个 SPI 从机的硬件连接图。
评论1