摘要:集成电路设计越来越向系统级的方向发展,并且越来越强调模块化的设计。SPI总线是Motorola公司提出的一个同步串行外设接口,容许CPU与各种外围接口器件以串行方式进行通信、交换信息。在此简述了SPI总线的特点,介绍了它的四条信号线及SPI串行总线接口的典型应用。重点描述SPI串行总线接口在DA芯片中的应用,并给出用C语言描述实现该接口通信的部分程序。该程序已经在AT89C2051中进行验证。
关键词:SPI;串口控制;AD7390;单片机
0 引 言
串行外设接口(Serial Peripheral Interface,SPI)是一种高速同步串行输入/输出端口,近年来广泛应用于移位寄存器、D/A转换器、A/D转换器、串行E2PROM、LED显示驱动器等外部设备的扩展。SPI接口可以共享,便于组成带多个SPI接口器件的系统。其传送速率可编程,连接线少,具有良好的扩展性。
1 SPI接口介绍
SPI是摩托罗拉公司推出的一种同步串行通信接口,用于微处理器、微控制器和外围扩展芯片之间的串行连接,现已发展成为一种工业标准。目前,各半导体公司推出了大量的带有SPI接口的具有各种各样功能的芯片,如RAM,E2PROM,FLASH ROM,A/D转换器、D/A转换器、LED&LCD显示驱动器、I/0接口芯片、实时时钟、UART收发器等,为用户的外围扩展提供了极其灵活而价廉的选择。由于SPI总线接口只占用微处理器四个I/O口线,故采用SPI总线接口可以简化电路设计。节省很多常规电路中的接口器件和I/O口线,提高设计的可靠性。目前,已有部分厂家的单片机具有SPI接口,如Philips的P89LPC900,Atmel的Atmega128等,但是,大部分单片机不支持SPI接口。在实际应用中,出于产品体积、成本和可扩展性等方面的考虑,设计人员往往希望使用不具备SPI接口的单片机来控制具备SPI接口的外围器件。现以AT89C2051单片机模拟SPI总线操作串行AD7390为例,如图1所示,介绍利用单片机的I/O口通过软件模拟SPI总线的实现方法。
SPI使用的四条线是串行时钟线(SCK)、主机输入从机输出线(MISO)、主机输出从机输入线(MOSI)、低电平有效的使能信号线(CS)。这样,仅需3~4根数据线和控制线即可扩展具有SPI接口的各种I/O器件。
SPI 总线具有以下特点:
(1)因连线较少,可简化电路设计。并行总线扩展方法通常需要8根数据线、8~16根地址线、2~3根控制线。而SPI总线设计,仅需4根数据线和控制线即可完成并行扩展所实现的功能。
(2)器件统一编址,并与系统地址无关,操作SPI独立性好。
(3)器件操作遵循统一的规范.使系统软硬件具有良好的通用性。