主讲人:陈朋地址:广C321室Phone:13819195905Email:Chenpeng@zjut.edu.cn21、SCI的特点1)F2812包含两个SCI接口,记做SCIA和SCIB2)SCI是一种异步串行通信接口,即通常所说的UART3)SCI支持16级接收和发送FIFO,有助于减少CPU的开销4)SCI可工作于半双工或全双工模式(RS485/422)2、SCI多处理器通信1)空闲线模式:10位或更多位个高电平表示数据块的开始;2)地址位模式:每帧的最后一个数据位后有一个地址位;3、标准串行总线接口1)RS232:成本低,速率较低,距离短,限双机通信2)RS485/RS422:差分信号,传输距离远,速率较高上次课的内容回顾3F2812串行外设接口SerialPeripheralInterface(SPI)5.1SPI模块概述5.2SPI的工作原理5.3通过SPI接口扩展外设5.4软件编程举例45.1SPI模块概述SPI与SCI有什么区别?通常用于DSP与扩展外设以及其它处理器间进行通信,如显示驱动器、ADC、DAC、EPROM、RTC以及主从模式的多处理器应用等。F2812包含一个SPI接口,支持16级的接收和传输FIFO。串行外设接口(SPI)是一种同步串行输入/输出接口,传输速率较高(LSPCLK/4),适于板级通信。串行通信接口(SCI)是一种异步串行接口,通常需经过收发器进行电平转换,通信速率较低,适于长距离通信。SPI适于那些应用场合?5SPI与XINTFSPI与XINTF有什么区别?串行外设接口(SPI)是一种同步串行输入/输出接口传输速率最高可达37.5Mbps信号线少(2-4条)适于板级扩展的外设输入/输出接口适于板级微处理器间通信。外部扩展接口(XINTF)是一种并行输入/输出接口传输速率较很高,可达75M×16=1200Mbps信号线多(DB8/16,AB等)限用于板级扩展外设的输入/输出接口。6SPI模块的特点与信号数据长度:1~16位可编程4个外部引脚波特率:126种可编程两种工作方式:主/从工作方式4种时钟模式:由极性和相位控制可同时进行发送和接收操作接口方式:中断或查询12个寄存器7SPI模块寄存器概述共12个寄存器FIFO寄存器双缓冲结构85.2SPI的工作原理SPI的引脚SPICLK为整个串行通信网络提供时钟;通过SPIBRR寄存器设定通信网络的数据传输速率;数据从SPISIMO输出,并锁存从SPISOMI输入的数据;/SPISTE通常作为片选信号,数据传输过程置低电平,传输完成后置高.SPI主/从两种工作模式,由Master/Slave位(SPICTL.2)选择.主模式:Master/Slave=1发送数据:写数据到SPIDAT或SPITXBUF,启动SPISIMO引脚上的数据发送,首先发送最高有效位(MSB)(与SCI有所不同)。接收数据:当指定数量的数据位已经通过SPIDAT移位后,SPIDAT中的数据发送到SPIRXBUF中,且SPIINFFLAG置1。95.2SPI的工作原理(续)从模式下,SPICLK时钟由主控制器提供,并决定了传输速率。从模式:Master/Slave=0数据从SPISIMO引脚输入,从SPISOMI引脚输出。当TALK位清零,数据发送被禁止,输出引脚(SPISOMI)处于高阻状态。若发送期间清零TALK位,SPI要继续完成当前的字符传输,以保证SPI设备正确接收数据。TALK位允许在一个网络上连接多个从SPI设备,但同一时刻只能有一个从设备允许驱动SPISOMI。这点与多机通信的RS485接口相似。/SPISTE通常作为从设备的片选信号,数据传输过程置低电平,传输完成后置高.TALK位(SPICTL.D1)10SPI的典型接口主从式微处理器间的SPI连接主控制器通过SPICLK信号来启动数据传输;通常在一个时钟的边沿发送数据,而在时钟的另一个边沿接收数据;两个微处理器能够同时发送和接收数据或一侧接收一侧发送。主处理器从处理器SPI可工作于全双工或半双工。11SPI的中断SPI中断控制和状态位:超时中断使能位(SPICTL.4):1-使能中断,0-禁止中断接收超时中断标志位(SPISTS.7):新的字符接收完成后,前一个字符还未读取,则置位中断标志。该标志位必须由软件清除。提示:SPISTS.7和SPISTS.6共享一个中断向量SPIRXINT。SPI中断使能位(SPICTL.0):1-使能中断,0-禁止中断当中断使能置位,且满足中断条件时,产生相应的中断。SPI中断标志位(SPISTS.6):只读,由硬件设置。指示SPI接收器中已经存放字符可以被读取或已完成指定长度的数据发送。该位置位时已接收数据送入SPIRXBUF,当DSP读SPIRXBUF中的数据后自动清除中断标志。12数据格式SPICCR.3~SPICCR.0确定了字符的位数(1~16);当数据写入SPIDAT和SPITXBUF寄存器时必须左对齐;当数据从SPIRXBUF读取时,必须是右对齐;SPIRXBUF中包含最新接收的字符,以及上次接收且已移位到左边的位。例1:发送数据长度为1,SPIDAT当前值为737BH,数据格式见下图。737B与SCI不同,没有起始位、停止位和校验位等,只有数据位。13波特率设置波特率的计算方法:1)当SPIBRR=3~127时:SPI波特率=LSPCLK/(SPIBRR+1)2)当SPIBRR=0、1、2时:SPI波特率=LSPCLK/4主模式下,SPICLK引脚为通信网络提供时钟,时钟频率≤LSPCLK/4。从模式下,SPICLK引脚接收外部时钟信号,时钟频率≤LSPCLK/4。例2:假定LSPCLK=75MHz,试确定SPI的波特率范围。SPI波特率最大值:LSPCLK/4=18.75MHzSPI波特率最小值:LSPCLK/128=0.586MHzSCI的波特率范围?LSPCLK/[(65536)×8],LSPCLK/(16)SPI无法工作于较低的波特率,因此仅适于短距离的高速通信。14SPI的时钟模式SPI支持4中不同的时钟模式:时钟极性选择位(SPICCR.6)选择时钟上升或下降沿有效;时钟相位选择位(SPICTL.3)选择是否有半个周期的时钟延迟。SPI时钟控制方式选择SPICLK时钟方式极性选择相位控制工作方式描述无相位延迟的上升沿00上升沿发送,下降沿接收有相位延迟的上升沿01上升沿前的半个周期发送数据,上升沿接收无相位延迟的下降沿10下降沿发送,上升沿接收有相位延迟的下降沿11下降沿前的半个周期发送数据,下降沿接收15SPI的时钟模式波形数据长度:8位16数据传输举例给出的例子中SPI数据长度为8位,F2812的数据长度为16位;在主控制器将数据写入SPIDAT来启动传输前,从控制器必须处于使能状态,且将待发数据写入SPIDAT;当读取SPIRXBUF中数据时,自动清除中断标志位;只有一次完整的发送结束,SPIDAT中的数据才送入SPIRXBUF中;本例中设定字符长度为5位,共主/从控制器间共进行两个字符的传送。数据传输过程说明:状态主控制器(DAT/RXBUF)从控制器(DAT/RXBUF)第一次发送前01011000B--58H11010000B--D0H第一次发送后00011010B--1AH00001011B--0BH第二次发送前01101100B--6CH01001100B--4CH第二次发送后10001001B--89H10001101B--8DH17数据传输举例D0HA、从控制器将D0H写入到SPIDAT,等待主控制器移出数据;B、主控制器将从控制器的/SPISTE引脚拉低;C、主控制器将58H写入SPIDAT来启动发送过程;D、第一个字节发送完成,置中断标志;E、从控制器从它的SPIRXBUF中读取0BH,清除中断标志;F、从控制器将4CH写入SPIDAT中等待主控制器移出数据;G、主控制器将6CH写入SPIDAT中来启动发送过程;H、主控制器从SPIRXBUF中读取1AH,清中断标志;K、主控制器将从控制器的/SPISTE引脚置高电平。I、第二个字节发送完成,置中断标志;J、主从控制器分别从各自的SPIRXBUF中读取89H和8DH;58H4CH6CH字符长度5位从SPI主SPI185.3通过SPI接口扩展外设串行数据格式F2812与MAX5253间的SPI接口DSPMAX5253的主要特点:四个12-bit电压输出DACs单3.0-3.6V电源供电(0.82mA)典型建立时间12µsSPI兼容串行外设接口时钟频率可达10MHz/CL、/PDL、UPO引脚19多个SPI外设的扩展方法菊花链式共享总线式16个SPICLK16个SPICLK16个SPICLK20SCLK10AGND1DGND11FBA2DOUT12OUTA3UPO13OUTB4/PDL14REFAB6REFCD15FBB5FBC16/CL7OUTC17/CS8OUTD18DIN9FBD19VDD20U5MAX52533.3VVOUTAVOUTBVOUTCVOUTDSPISIMOASPISOMIASPICLKASPISTEA/CLIN1OUT2GND3U6MAX6103C420.1uF+5Vref=3.0VC410.1uFL2/PDL3.3VR1810K0~3VVOUTAVOUTBVOUTCVOUTDEPM7128SQC100TMS320F2812Addr:0x80006Data:D0CPLDDSPDSP与MAX5253的接口电路VOUTx=3.0V×NB/4096MAX5253配置为单极性输出方式21MAX5253的编程命令MAX5253的编程命令方法1方法222MAX5253接口时序数据传送过程,/CS必须保持低电平;提示:SPICTL中的TALK位控制/SPISTE引脚电平;若TALK=1,使能发送,且移位过程/SPISTE保持低电平。MAX5253的时序图(仅输入部分)每个数据位在SCLK的上升沿采样并送入DAC的移位寄存器;数据在/CS的上升沿被锁存到MAX5253的输入或DAC寄存器;/CS保持高电平的脉冲宽度必须大于100ns,即两次发送的时间间隔要大于100ns;MAX5253的最高时钟频率10MHz。23DSPSPISOMISPICLKSPISTEMAX6629-SPI接口的数字温度传感器MAX6629与F28×的接口电路24MAX6629的接口时序和数据格式MAX6629的接口时序图/CS上升沿启动转换,高电平必须保持300ms以便完成转换;/CS下降沿停止转换,并将转换结果锁存到移位寄存器,此时可以读取转换结果;转换结果为16位(D0、D1未定义):D15位符号位D14-D3为数据D2位验证位(总是低电平)25采用XINTF扩展的DAC接口DSGA2Vout13Vout24A26A17A08CLR9LDAC10BYSHF11CS12WR13Vcc14DGND15DB016DB117DB218DB319DB420DB521DB622DB723DB824DB925DB1026DB1127DB1228DB1329Vout430Vout331DSGB32Vref(-)B35Vref(+)B36AGND38Vdd39Vss40Vref(+)A42Vref(-)A43U2AD7835_PQFP/CLR_DAD0D1D2D3D4D5D6D7D8D9D10D11D12D13A2A1A0/CS_DA/LD_DA/WRDGND+5VAGND+12V-12VAGNDRef50CP110.1uFCP100.1uFCP120.1uFAGNDRb10k-Ref50+5VVout1Vout2Vout3Vout4DB:14AB:3CB:4PQFP-44SSOP-20AD7835MAX5253XINFT:21265.4软件编程