串行扩展应用平台设计
时间:09-13
来源:互联网
点击:
应用串行接口芯片扩展系统时,在初步选择了串行接口的芯片后,为了对芯片的资源更好地了解,开发者一般在系统设计前搭建一个简单的硬件电路并编制相应的软件对其测试,待性能验证后再确定最终的设计方案。本文根据这一需要设计了一个用于串行总线芯片测试的实验平台。该平台以PC机为人机接口、采用单片机产生芯片串行通信时序。应用这一平台可以大大简化芯片使用前的测试过程。这一平台也为单片机串行扩展的初学者提供了快捷的学习工具。本平台目前集成了SPI、One-wire、Microware、I2C四种串行接口,在今后的使用中,可根据需要增加串行接口的种类。
1 串行扩展平台的结构
SPI、One-wire、Microware、I2C是目前单片机应用系统中最常用的几个串行扩展接口。具有I2C和One-wire接口的外围器件都有自己的地址编号,单片机通过软件选通器件;而SPI和Microware扩展接口芯片首先要通过单片机I/O口线选通其片选脚,然后才能对其进行操作。这四种串行扩展接口都有不同的时序要求,但每一种总线的基本时序要求都是一致的,对芯片的操作无非是读出或写入,所不同的是具体的数据字节内容,只要按照各自的时序和命令操作,即可实现芯片功能。本文的串行扩展平台就是基于这一方法搭建的。 串行扩展平台由两部分组成:上位机部分由PC机构成,具有人机接口界面,操作起来方便直接;下位机部分由单片机及扩展接口电路构成,并通过RS-232接口与上位机通信。
下位机的核心是AT89C51单片机。单片机本身并没有SPI、One-wire、Microware、I2C接口,使用虚拟器件技术,在单片机内采用模块化设计思想固化四种接口的串行访问子程序,通过软件调用完成这几种串行扩展的时序,用单片机的普通I/O口线模拟出四种串行接口,在下位机电路板上留有较大的通用板空间或用标准的连接器将串行接口引出,便于与待测芯片连接。AT89C51单片机没有RS-232接口,但它的UART口可以采用MAX232等芯片扩展出简单的RS-232接口,与上位机的RS-232接口相接。下位机的结构如图1所示。
测试时,将待测芯片与对应的串行接口相连,操作者在上位机将访问命令和数据通过RS-232接口下传给下位机;下位单片机对其分析后调用相应的时序模拟程序访问待测芯片,并将结果通过RS-232接口上传给上位机,在上位机显示。从整个测试过程来看,只要关心命令和数据的输入和输出,不必关心具体时序,近似一种透明的操作。测试后,只需对单片机中的子程序稍加裁减,即可移植到实际应用软件中,为开发提供了方便。下面将分别介绍这四种串行通信接口的实现。
2 四种串行通信接口的实现
在串行扩展中,可以根据接口主器件的数量分为单主器件系统和多主器件系统。其中单主器件系统应用最普遍。在单主器件系统中,具有一个主控制器件和多个从器件,数据的传送由主器件控制。主器件启动和停止数据的发送,提供同步时钟信号。在应用中使用种类最多的是功能繁多的从器件。本文的串行扩展平台主要针对这些从器件应用设计。所以该平台采用单主器件系统结构,只考虑用单片机的通用I/O口线模拟主器件访问从器件的时序逻辑。
2.1 I2C总线接口时序
I2C串行总线是Philips公司提出的一种板内芯片间串行总线。它用两根连线即可方便地实现外围器件扩展。图2给出了主器件对从器件访问的基本读写时序,SDA为数据线,SCL为时钟线。
I2C总线上数据传送的基本单位为字节,采用低位在前的格式。主从器件之间一次传输的数据称为一帧,由启动信号、若干个数据字节和应答位以及停止信号组成。可以看出,I2C的主要命令只有读、写两种情况,虽然读写的字节根据具体器件的不同而不同,但其时序关系不会发生改变。根据这一点,下位机只要具备I2C的基本时序即可。这些基本时序包括:启动、写字节、读字节、应答位、停止信号,并可以组合成两个子程序:读N字节子程序、写N字节子程序。
2.2 串行外围接口SPI
SPI(同步串行外设接口)由Motorola公司提出,它是一种三线同步接口,分别为同步信号、输入信号和输出信号。另外每个扩展芯片还需要一根片选线,主器件通过片选线选通与其通信的从器件。图3给出了SPI的时序图。其中,SCK为同步时钟脉冲,SS为片选线,MOSI为主器件的数据输出和从器件的数据输入线,MISO为主器件的数据输入线和从器件的数据输出线。
SPI是全双工的,即数据的发送和接收可同时进行。如果仅对从器件写数据,主器件可以丢弃同时读入的数据;反之,如果仅读数据,可以在命令字节后,写入任意数据。数据传送以字节为单位,并采用高位在前的格式。SPI接口的通信程序可简化为:写读N字节子程序。
1 串行扩展平台的结构
SPI、One-wire、Microware、I2C是目前单片机应用系统中最常用的几个串行扩展接口。具有I2C和One-wire接口的外围器件都有自己的地址编号,单片机通过软件选通器件;而SPI和Microware扩展接口芯片首先要通过单片机I/O口线选通其片选脚,然后才能对其进行操作。这四种串行扩展接口都有不同的时序要求,但每一种总线的基本时序要求都是一致的,对芯片的操作无非是读出或写入,所不同的是具体的数据字节内容,只要按照各自的时序和命令操作,即可实现芯片功能。本文的串行扩展平台就是基于这一方法搭建的。 串行扩展平台由两部分组成:上位机部分由PC机构成,具有人机接口界面,操作起来方便直接;下位机部分由单片机及扩展接口电路构成,并通过RS-232接口与上位机通信。
下位机的核心是AT89C51单片机。单片机本身并没有SPI、One-wire、Microware、I2C接口,使用虚拟器件技术,在单片机内采用模块化设计思想固化四种接口的串行访问子程序,通过软件调用完成这几种串行扩展的时序,用单片机的普通I/O口线模拟出四种串行接口,在下位机电路板上留有较大的通用板空间或用标准的连接器将串行接口引出,便于与待测芯片连接。AT89C51单片机没有RS-232接口,但它的UART口可以采用MAX232等芯片扩展出简单的RS-232接口,与上位机的RS-232接口相接。下位机的结构如图1所示。
测试时,将待测芯片与对应的串行接口相连,操作者在上位机将访问命令和数据通过RS-232接口下传给下位机;下位单片机对其分析后调用相应的时序模拟程序访问待测芯片,并将结果通过RS-232接口上传给上位机,在上位机显示。从整个测试过程来看,只要关心命令和数据的输入和输出,不必关心具体时序,近似一种透明的操作。测试后,只需对单片机中的子程序稍加裁减,即可移植到实际应用软件中,为开发提供了方便。下面将分别介绍这四种串行通信接口的实现。
2 四种串行通信接口的实现
在串行扩展中,可以根据接口主器件的数量分为单主器件系统和多主器件系统。其中单主器件系统应用最普遍。在单主器件系统中,具有一个主控制器件和多个从器件,数据的传送由主器件控制。主器件启动和停止数据的发送,提供同步时钟信号。在应用中使用种类最多的是功能繁多的从器件。本文的串行扩展平台主要针对这些从器件应用设计。所以该平台采用单主器件系统结构,只考虑用单片机的通用I/O口线模拟主器件访问从器件的时序逻辑。
2.1 I2C总线接口时序
I2C串行总线是Philips公司提出的一种板内芯片间串行总线。它用两根连线即可方便地实现外围器件扩展。图2给出了主器件对从器件访问的基本读写时序,SDA为数据线,SCL为时钟线。
I2C总线上数据传送的基本单位为字节,采用低位在前的格式。主从器件之间一次传输的数据称为一帧,由启动信号、若干个数据字节和应答位以及停止信号组成。可以看出,I2C的主要命令只有读、写两种情况,虽然读写的字节根据具体器件的不同而不同,但其时序关系不会发生改变。根据这一点,下位机只要具备I2C的基本时序即可。这些基本时序包括:启动、写字节、读字节、应答位、停止信号,并可以组合成两个子程序:读N字节子程序、写N字节子程序。
2.2 串行外围接口SPI
SPI(同步串行外设接口)由Motorola公司提出,它是一种三线同步接口,分别为同步信号、输入信号和输出信号。另外每个扩展芯片还需要一根片选线,主器件通过片选线选通与其通信的从器件。图3给出了SPI的时序图。其中,SCK为同步时钟脉冲,SS为片选线,MOSI为主器件的数据输出和从器件的数据输入线,MISO为主器件的数据输入线和从器件的数据输出线。
SPI是全双工的,即数据的发送和接收可同时进行。如果仅对从器件写数据,主器件可以丢弃同时读入的数据;反之,如果仅读数据,可以在命令字节后,写入任意数据。数据传送以字节为单位,并采用高位在前的格式。SPI接口的通信程序可简化为:写读N字节子程序。
- 浅谈E1线路维护技术与应用(01-12)
- R4网络接口和电路域容灾技术(01-05)
- 移动通信网引入IMS的相关探讨(02-21)
- 未来接入网的结构与演进(01-26)
- 电子熔丝在计算机应用中的优势(06-08)
- 高性能、高集成度的TD-SCDMA模拟基带集成电路的实现和应用(01-09)