欢迎来到天天文库
浏览记录
ID:40569485
大小:298.00 KB
页数:11页
时间:2019-08-04
《SPI的接口及其应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SPI的接口及其应用 2010-09-0100:10:29
2、 分类:ARM及程序设计
3、 标签:
4、字号大中小 订阅1SPI接口的特点 目前很多单片机都配置有SPI、I2C或UART等串行接口。在SPI、I2C及UART三种串行接口一般情况下速度最快的是SPI。I2C接口由于是二线协议速度很难超过1MHz/Bit,而UART工作在方式0(8位移位寄存器)时时钟速度为系统时钟的十二分之一(Fosc/12),而SPI接口时钟速度一般为系统时钟的四分之一(Fosc/4)。典型SPI接口结构
5、如图1所示。 串行外围设备接口SPI(serialperipheralinterface)总线技术是Motorola公司推出的一种同步串行接口,Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI用于CPU与各种外围器件进行全双工、同步串行通讯。SPI可以同时发出和接收串行数据。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低
6、电平有效从机选择线CS。这些外围器件可以是简单的TTL移位寄存器,复杂的LCD显示驱动器,A/D、D/A转换子系统或其他的MCU。当SPI工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。主SPI的时钟信号(SCK)使传输同步。SPI主要特点有: 可以同时发出和接收串行数据; 可以当作主机或从机工作; 提供频率可编
7、程时钟; 发送结束中断标志; 写冲突保护; 总线竞争保护等。 图2和图3中还给出了SPI总线工作的四种方式及SPI总线接口的时序。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,
8、在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设的时钟相位和极性应该一致。 图2图3 2利用SPI接口驱动LED显示屏 从图1可以看出SPI接口的核心部分是8位串行移位寄存器,而LED单元板的最基本元件74HC595也是8位串行移位寄存器,因此适当地设计单片机SPI和LED单元板的连接可以高速将显示数据传送到LED显示屏。显然将一个SPI器件对应于单元板的一条扫描线可最
9、大限度发挥SPI器件的速度优势。对应于一个扫描线不多而每扫描线又很长的情况下(超长LED条屏)使用一个SPI器件对应于单元板的一条扫描线可输出速度高达系统时钟的四分之一(Fosc/4)或更高。而SPI接口的FLASH存储器件工作速度更可达50MHz/Bit以上,如只以SPI接口的FLASH存储器件工作速度来计算:设一场扫描时间为16MS,在扫描模式为16时(1/16扫描),输出一行的时间为1MS,则LED屏水平方向点数=1000μS/(1/50MHz)=50000点。可以说是一个“超超”长的LE
10、D条屏。但这是不可能的,因为单元板中74HC595的工作频率一般为16MHz以下,也就是说50000点至少要除3。有关超长LED条屏的详细介绍见下一章。 在上一节中我们将RAM的显示数据输出不经CPU处理直接送LED显示屏显示,数据流和控制如图4(a)所示。CPU此时只做地址加一和读操作,这时的读(虚读)是为了单元板串行移位时钟。这种理念同样可用于SPI接口的FLASH存储器件。其数据流和控制框图如图4(b)所示。 从图4(b)中可以看出:当CPU从串行FLASH中读数据时
11、,串行FLASH的So端的数据在CPU的SCK作用下输出的同时移入74HC164,当两个字节共16位从串行FLASH输出并移入74HC164后由CPU给单元板发串行移位时钟。这是一个经典的串并转换,其特点是数据不经CPU处理旁路直接输出。VRS51L3074单片机有两个特殊功能正好为图4(b)所示的电路使用。一是一次SPI启动后可输出多个字节(1至32位),二是输出多个字节后自动在特定引脚上输出一个负脉冲。特别重要的是VRS51L3074单片机SPI时钟为系统时钟的二分之一(Fosc/2)。多个
此文档下载收益归作者所有