怎样设计一个基于AVR单片机的SPI串行外设接口?

1、avr单片机的spi接口 spi(serialperipheralinterface---串行外设接口)总线系统是一种同步串行外设接口,允许mcu与各种外围设备以串行方式进行通信、数据交换,广泛应用于各种工业控制领域。基于此标准,spi系统可以直接于各个厂家生产的多种标准外围器件直接接口。spi接口通常包含有4根线:串行时钟(sck)、主机输入/从机输出数据线(miso)、主机输出/从机输入数据线(mosi)和低电平有效的从机选择线ss。在从机选择线ss使能的前提下,主机的sck脉冲将在数据线上传输主/从机的串行数据。主/从机的典型连接图如图(1)所示:
图(1)主/从机的连接图
串行外设接口spi允许atmega16和外设之间进行高速的同步数据传输。atmega16spi的特点如下:全双工,3线同步数据传输,主/从机操作,lsb首先发送或msb首先发送,7种可编程的比特率,传送中断结束,写碰撞标志检测,可以从闲置模式唤醒,作为主机时具有双速模式(ck/2)。
如图(2)所示,系统包括两个移位寄存器和一个主时钟发生器。通过将需要的从机的ss引脚拉低,主机启动一次通信过程。主机和从机将需要的数据放到相应的移位寄存器,主机在sck引脚上产生时钟脉冲以交换数据。主机的数据从mosi移出,从从机miso移入。从机的数据从miso移出,从从机mosi移入。主机通过将从机的ss拉高实现与从机的同步。
图(2)spi主机-从机的互连
下面将介绍spi的几个特殊寄存器:
1.1spi的控制寄存器—spcr
spie为spi中断使能,置位后,只要spsr寄存器的spif和sreg寄存器的全局中断使能位置位,就会引发spi中断。spe置位将使能spi,dord置位时数据的lsb首先发送;否则数据的msb首先发送。mstr置位时选择主机模式,否则为从机。cpol置位表示空闲sck为高电平;否则空闲时sck为低电平。cpha决定数据是在sck的起始沿采样还是在sck的结束沿采样。通过对spr1、spr0进行设计,确定主机的sck速率。
1.2spi的状态寄存器—spsr
spif为中断标志位,串行发送结束后,spif置位。若此时寄存器 spcr的spie和全局中断使能位置位,spi中断即产生。进入中断例程后spif将自动清零。在发送当中对spi数据寄存器spdr写数据将置位wcol,spi2x置位后spi的速度加倍。
1.3spi的数据寄存器—spdr
spdr数据寄存器为读/写寄存器,用来在寄存器文件spi移位寄存器之间传输数据。写寄存器将启动数据传输,读寄存器将读取寄存器的接收缓冲器。spi系统的发送方向只有一个缓冲器,而在接收方向有两个缓冲器。也就是说,在发送时一定要等到移位过程全部结束后才能对spi数据寄存器执行写操作。而在接收数据时,需要在下一个字符移位过程结束之前通过访问spi数据寄存器读取当前接收到的字符。否则第一个字节将丢失。
比起8051使用软件模拟时序实现spi功能来,avr的硬件spi实在是先进了许多。通过读写相应的寄存器就能轻松实现spi的操作,使得编程变得更加方面。下面是使用avr spi的几个步骤:
首先,应设置相应管脚的读写寄存器以设定数据传输方向。在mega16里,spi的接口为以下管脚:pb4-pb7 (ss/mosi/miso/clk)。如果工作在主模式则可以这么写(portb=0xff; ddrb=0xbf; pb7(sck):输出 pb6(miso):输入 pb5(mosi):输出 pb4(ss):输出)
接着还需要设定spi工作寄存器,控制的寄存器只有三个:spdr(spi数据寄存器)、spcr(spi控制寄存器)、spsr(spi状态寄存器),其中spdr是读写移位寄存器中的值,spsr中包括了spie:spi中断使能位 spe:spi使能位 dord:数据传送从最高位或最低位开始mstr:主从工作方式选择 copl/cpha:时钟极性相位选择 spr1/spr0:时钟速率选择;spsr中主要是几个状态标志位,用来做软件查询,spif:spi中断标志位 wcol:冲则可以如下设置突标志位 如果使用的是软件查询, spcr中只需要置spe和mstr两位。
随后的工作就是往spdr里读写数据,需要注意的是一次最少读写一个byte(8 bit)的数据,这和硬件的设计有关。在读取数据前需要先写入数据。可以一次读写一个字节,也可以块读写,在ouravr上的例程中这两种方式均有。

Tokio中hang死所有worker的方法
胆机六大故障及修理方法
硬件风向标:无人机时代真的来了吗?
基于C167CR微处理器实现汽车TCS硬件在环仿真系统的设计
柔性振动盘的简单介绍
怎样设计一个基于AVR单片机的SPI串行外设接口?
AN-2083: 车辆跟踪系统集成电源解决方案
中京电子PCB横向整合继续,提速实现全面控股元盛电子
基于AT89S52单片机的太阳能参数测试仪设计
看看机器人行业相关企业的业绩预告详情
多通道农药残留速测仪的产品特点
这款创意灯白天隐身 夜晚发光
沃尔沃新汽车安全技术发布
利用小型气象站研究各种自然灾害
最新《人工智能报告》展望中美俄三国AI策略和发展前景
东芝研发成功全新一代SCiB车用锂离子电池_是传统锂离子电池的三倍
详解一道高频算法题:括号生成
6.18临近OPPO Reno6和红魔6R等多款手机扎堆发布
充电宝什么样的好耐用,怎样挑选好的充电宝
VGA接口接线图