您当前的位置:首页 > 基础知识 > 单片机  > 单片机常见问题

单片机串行外围接口电路的三线式结构设计

来源: 关键字:串行    SPI   

SPI总线接口芯片为完成单片机的常规外围电路扩展设计带来了机遇,可扩展的外围电路包括A/D与D/A转换器、显示、时钟、存储器、监视复位、I/O、显示等。本文利用国内目前较为流行的I2C,SPI串行通信协议实现单片机外围电路的A/D转换、D/A转换、时钟、I/O扩展、E2PROM以及LED驱动器件的扩展功能,实现了单片机系统功能模块化,电路集成化的目的。

1 SPI集成接口芯片功能及应用

1.1 A/D转换器

单片机应用系统中典型的应用模式是通过传感器采集现场的微弱信号参数,经过滤波放大处理后再通过A/D模数转换送至单片机系统实现各种工业调节和控制,在此过程中A/D转换电路的设计尤其重要。早期的A/D转换器与CPU接口一般采用并行总线方式,新型A/D转换器采用I2C,SPI总线方式可节省CPU的I/O资源,使产品小型化。本文中选用的A/D转换器为SPI串行总线接口的10位模数转换器TLC1549。

1.2 D/A转换器

D/A转换器的种类繁多,从接口形式而言,有串口和并口之分。目前新型的D/A转换器大都采用了串行总线协议。D/A芯片的输出形式有电流型和电压型两种,由于电流输出形式在实际电路中必须将输出转换成电压输出。为了简化电路和提高可靠性,本文选用电压型的SPI串行总线接口TLC5615 D/A转换器。

1.3 驱动显示器接口芯片

目前广泛使用的显示器件主要有LED(二极管显示管)、LCD(液晶显示器)和VFD(真空荧光管)等。LCD和VFD显示器显示成本较高,而LED显示器造价低廉,与单片机接口方便灵活,技术上易于实现,通常用于显示阿拉伯数字和少数字符。本文选用LED作为显示器件。串行总线方式的LED显示器接口芯片与并行方式相比,仅占有CPU的少数几根I/O口线便可实现LED功能,因此本设计中采用了SPI串行接口显示驱动芯片MAX7219。

1.4 看门狗芯片X5045

单片机应用系统(或产品)在运行中会受到各种各样的干扰,导致系统内部数据出错或严重影响程序的运行。因此,单片机应用系统的开发要考虑系统的可靠性设计。“看门狗”是系统可靠性设计中的重要一环。所谓“看门狗”是指在单片机程序设计中采用的一种程序监视技术,当单片机受到干扰失控导致程序跑飞或陷入死循环时,通过采取一定的软硬件措施使程序脱离死循环或重新运行。本文中选用多功能芯片X5045。

1.5 I/O扩展芯片PCF8574

目前,在单片机应用系统的外围串行扩展接口器件中,除了上述SPI总线以外,还有I2C总线。I2C总线提供了较完善的总线协议和最简单的串行连接方式,并提供了总线操作的状态处理软件包。本文在设计中加入常用的I2C总线的I/O扩展片PCF8574,用他来增加单片机的I/O口,提高单片机的外挂器件的能力。PCF8574具有低的电流损耗并有输出锁存功能,能输出大电流,可直接驱动LED发光管。

2 硬件设计

本次设计所有的接口芯片均采用串行方式,串行方式通信有单线、两线、三线等多种方式,其中以两线、三线最为流行。在本次设计中,主要采用三线方式,即SPI(SerialPeripheral Interface,串行接口)。设计中所用的接口器件包括A/D转换器、D/A转换器、实时时钟、存储器、看门狗、I/O、LED显示器。在本次设计中采用的是51系列的单片机作为主CPU,而他不具有SPI接口系统,故不可直接与各个厂家生产的多种标准的SPI外围器件直接接口。为了解决这一难题,在本设计中使用软件来模拟SPI系统中的4条线:串行时钟总线SCK、主机输入/从机输出数据线MOSO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线/CS。用P2.1模拟CPU的数据输出端(MOSI),P2.0模拟CPU的数据输入端(MOSO),P2.2模拟CPU的SCK输出端。外围接口芯片公用这三条控制线,但在这种方式下,每次只能驱动执行一片芯片。鉴于SPI与I2C总线电路设计、时序和程序设计的不同,又在本次设计中加入了一片I2C总线接口的I/O扩展芯片,用P1.0来模拟SDA,用P1.1来模拟SCL,以便了解两者的截然不同之处。硬件框图如图1所示。

3 软件设计

用PCF8574来扩展I/O端口,低四位为灯,高四位为小开关,通过中断的方法读入I/O的状态。经过取高四位,打到低四位,以点亮或熄灭相应的指示灯。整个系统在工作中,只要按下任意一个键都将使PCF8574产生中断申请信号,使CPU响应中断,执行中断服务程序。在中断服务程序中,CPU根据按键的状态控制程序转移。按下键1,调用A/D转换子程序;按下键2,调用显示子程序;按下键3,调用D/A转换子程序,用示波器观察其输出波形;按下键4,调用看门狗芯片X5045的工作子程序,进行单字节的写、读。软件总体流程框图见图2。

4 结 语

目前,单片机应用系统的外围扩展已从并行方式为主过渡到以串行方式为主的时代。许多新型外围器件都带有UART的移位寄存器方式,MOTOROLA公司的SPI、NS公司的Microwire、Dallas公司的1-wire和Philips公司的I2C总线等,他们都提供了较完善的总线协议,连接方式简单,在扩展外围器件设计中得到广泛的应用。本文通过在设计中使用MCS-51的I/O口来模拟总线接口,实现了单片机与串行总线接口器件的数据传输,该方案已通过调试,整个单片机系统运行良好。试验表明MCS-51的I/O口来模拟总线接口的方法在设计中可行有效。