设计参考源码手册1746个dsp课件1112单元_第1页
设计参考源码手册1746个dsp课件1112单元_第2页
设计参考源码手册1746个dsp课件1112单元_第3页
设计参考源码手册1746个dsp课件1112单元_第4页
设计参考源码手册1746个dsp课件1112单元_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲人:陈朋博士、讲师地址:广C321室Phonemail:Chenpeng@DSP原理及应用I2第4章“串行通信接口(SCI)”1计算机通信概述2SCI串行通信接口3标准串行通信总线4SCI编程举例讲课内容5RS485实际应用举例31计算机通信概述计算机通信方式:1)串行通信;2)并行通信。计算机间或计算机与外部设备间交换信息,称为计算机通信。并行通信:一般包括8条数据线,几条控制线和状态线。特点是传输速度快,但通信距离短、传输线多。例如XINTF、并行打印机接口等。CPU

PA0~7PC7PC2地

地BUSYSTBDATA0~78255A打印机插座8255A并行打印机接口电路框图4

串行通信概述串行通信分类:1)同步通信;2)异步通信。典型的异步串行通信接口:RS-232、RS-422/485、USB等串行通信:通信线上既传输数据信息,也传输联络信息,因此收发双方就必须要有通信协议。特点是串行传输成本低,适用于远距离通信,但传输速度低。同步通信:发送器和接收器通常使用同一时钟源来同步。方法是在发送器发送数据时同时包含了时钟信号,接收器利用该时钟信号进行接收。异步通信:收发双方的时钟不是同一个时钟,是由双方各自的时钟实现数据的发送和接收。但要求双方使用同一标称频率,允许有一定偏差。同步方法:要正确传输字符,准确读取每一位是必须用各自的时钟同步的,为克服不同时钟的偏差,每个字符都有一个起始位进行同步。5计算机通信接口62SCI模块

串行通信接口(SCI-SerialCommunicationInterface)

F2812包含两个SCI接口,记做SCIA和SCIBSCI是一种异步串行通信接口,即通常所说的UARTSCI支持16级接收和发送FIFO,有助于减少CPU的开销如果不使用FIFO时,SCI接收器和发送器采用两级缓冲方式

SCI可工作于半双工或全双工模式(RS485/422)两种多处理器通信模式:空闲线与地址位多处理器模式为保证数据的完整性,SCI模块对接收到的数据可以进行间断、奇偶、超限和帧错误检测。

主要特点:7SCI与CPU间的接口SCI模块两个外部引脚CPU13个控制寄存器只能以16位方式访问3.3VTTL电平8SCI的数据格式SCI的数据格式包括:与RS232格式兼容1~8个数据位(通常为8位)1~2个停止位

一个奇/偶校验位或无奇偶校验位

区分地址和数据的附加位(仅地址位模式时存在)

一个开始位9SCI数据格式的配置

STOPBITS:指定发送时停止位个数,0-1个停止位,1-2个停止位;

EVEN/ODDPARITY:奇偶校验选择,0-奇校验,1-偶校验;

PARITYENALBE:校验使能,0-禁止奇偶校验,1-允许奇偶校验;

LOOPBACKENA:环路测试模式使能,1-TX数据内部送Rx,0-禁止

ADDR/IDLEMODE:多处理器模式选择,0-空闲线模式,1-地址位模式

SCICHAR2~0:数据长度选择,1~8位数据(000-111)。SCIA的通信控制寄存器10SCI通信格式1)

4个SCICLK周期的连续低电平表示有效的起始位;2)接收器收到1个起始位后开始接收数据;3)每个串行数据位占用8个SCICLK时钟周期;4)在随后的各位中进行三次采样(4、5、6)确定该位电平;5)串口两端的接收/发送器分别使用各自的时钟(异步方式)。(2)(1)(3)(4)11通信过程中的接收器信号1)置RXENA=1(SCICTL1.D0),使能接收器接收数据;

地址位模式每个字符6个数据位5)数据的下一个字符到达SCIRXD引脚,检测到起始位;2)数据到达SCIRXD引脚后,检测起始位(SCI自动实现);3)数据从RXSHF寄存器移位到接收缓冲寄存器(SCIRXBUF),产生一个中断请求,同时接收器数据准备好标志RXRDY=1;4)用户程序读取SCIRXBUF寄存器,标志位RXRDY自动清零;6)RXENA=0,禁止接收数据。继续向RXSHF装载数据,但不送入SCIRXBUF。

SCIRXDRXSHFSCIRXBUFCPU教材P.7312通信过程中的发送器信号1)TXENA=1(SCICTL1.D1),使能发送器发送数据;3个数据位地址位模式2)程序写数据到SCITXBUF寄存器,此时发送器不为空,TXRDY变低;4)TXRDY变高后,程序写第二个字符到SCITXBUF,随后TXRDY又变低;3)SCI发送数据到移位寄存器TXSHF后,产生中断请求,同时TXRDY变高;7)第二个字符发送完成后,发送器变空,TXEMPTY=1。5)发送完第一个字符,开始将第二个字符移位到寄存器TXSHF;6)TXENA=0,禁止发送数据,SCI继续完成当前字符的发送;SCITXDTXSHFSCITXBUFCPU教材P.7313SCI的中断

SCI通信过程可以使用中断方式或查询方式控制接收器和发送器的工作;发送器和接收器有独立的中断使能位(TXINTENA、RX/BKINT、RXERR).当中断被屏蔽时,但标志位仍然有效,可以反映发送和接收状态;发送器有一个SCITXBUF空标志(TXRDY=1),接收器有3个中断标志:

1)接收器数据准备好(RXRDY=1);

2)接收器错误标志位(RXERROR=1);

3)如果SCIRXD引脚连续保持至少10个低电平,则产生一个间断条件(BRKDT=1)。

1、发送器中断:

1)置位TXINTENA(SCICTL2.0);

2)只要SCITXBUF中数据传送到TXSHF中,就会产生发送器中断;

3)该操作将TXRDY置位(SCICTL2.7),表示CPU可以继续写数据。14SCI的中断(续)3、在接收器错误中断服务子程序中,可以检测错误条件:

1)FE:当检测不到一个期望的停止位时,帧错误标志置位;

2)OE:在前一个字符被CPU读取前,有新的字符送到SCIRXBUF中时,置位超时错误标志,此时前一个字符被覆盖;

3)PE:当接受字符中1的个数和它的奇偶校验位之间不匹配时(含地址位),且校验模式被使能时,奇偶校验错误标志置位。

2、接收器/间断中断:如果置位RX/BKINTENA(SCICTL2.1),则下列条件之一产生接收器中断:

1)SCI接收到一个完整的帧,并将RXSHF中的数据送SCIRXBUF,就会产生接收器中断,同时将RXRDY置位(SCICTL2.6);

2)间断检测条件发生(在一个缺少的停止位后,SCIRX保持10周期的低电平)。该操作将BRKDT置位,并产生中断。错误标志位不能被直接清除,只能通过软件复位或系统复位来清除。15SCI的波特率计算SYSCLKOUT/4注意:如果BSR=0,则波特率=LSPCLK/16.BSR--Baud-SelectRegister

波特率:串行通信过程每秒钟传送的二进制脉冲数目,单位:bit/s(位/秒)串行时钟SCICLK由低速外设时钟LSPCLK和波特率选择寄存器确定;

SCI使用16位波特率选择寄存器,可以设定为64K种波特率;

SCI波特率=LSPCLKBSR+1=LSPCLK(BSR+1)×8SCICLK×8BSR1≤BSR≤65535,如果BSR=0,等同于BSR=116SCI多处理器通信

1、地址字节发送节点发送信息的第一个字节是地址字节(各个从机的地址预先定义好),所有接收节点都读取该地址字节。只有地址字节与接收节点的地址字相符,才能接收数据,否则等待下一个地址字节。

2、Sleep位(接收器休眠位)连接到串行总线上的所有处理器都将SCISleep位置1,这样只有检测到地址字节后才会中断。当数据块地址与用户软件设置的处理器地址相符时,用户必须清除Sleep位,以便SCI能够在接收每个数据字节时产生中断。

在同一条串行连线上,多处理器通信模式允许一个处理器(主机)向串行线上其它处理器(从机)发送数据。一条串行线上每刻只能有一个节点发送数据(发送使能控制),但可以多个节点同时接收数据。17SCI多处理器通信

多处理器模式下,接收步骤如下:

接收地址块时,SCI端口被唤醒并申请中断,读取地址块的第一帧,该帧包含目的处理器的地址;比较接收的地址字节与内存中存放的器件地址;如果二者一致,则编程使CPU清除SLEEP位,并读取数据块中各个数据帧;否则,退出接收子程序并保持SLEEP置位,直到下一个地址块的开始才接收中断。

如何识别地址字节?

SCI的两种模式均支持多处理器通信。18空闲线多处理器模式

数据块被各数据块间的空闲时间分开;一帧空闲时间(10位或更多位个高电平)表示数据块的开始;ADDR/IDLEMODE=0空闲时间19空闲线多处理器模式

块起始信号的产生:方法二:利用TXWAKE位产生11位的空闲时间

1)首先置位TXWAKE(SCICTL1.3),控制数据发送特征;

2)写一个数据字节(内容不重要)到SCITXBUF,发送一个块开始信号(11位的空闲时间);

3)写一个新的地址到SCITXBUF,当TXSHF再次空闲后,SCITXBUF内容送TXSHF,TXWAKE被清零;

4)随后依次发送各个数据帧。方法一:人为地在两个数据块间增加10或更多位的空闲时间。20地址位多处理器模式

地址位多处理器协议中,每帧的最后一个数据位后有一个附加的地址位;数据块的第一帧的地址位设置为1,其余帧的地址位为0;数据传输与数据块间的空闲周期无关。ADDR/IDLEMODE=121地址位多处理器模式数据块发送:1)发送地址帧:TXWAKE位置1,并写适当的地址值到SCITXBUF寄存器;这样串行总线上的其它微处理器会读取该地址。2)发送数据帧:将TXWAKE位清零,然后向SCITXBUF中写入要发送的第一个数据;3)依次发送其余的数据帧,直至整个数据块发送完毕。TXWAKE=1发送地址TXWAKE=0发送数据提示:

地址位模式下数据块间不需要等待,传输小数据块时效率较高,通常应用于11个或更少字节的数据块传送。而数据块较大时推荐使用空闲线模式。22SCI的增强特性SCIFIFO描述发送器与接收器各有16级FIFO,有3个专门的寄存器控制;复位时,SCI工作于标准模式,禁止FIFO功能。

自动波特率检测自动检测SCI通信的波特率,并刷新BSR寄存器。233标准串行总线接口机械连接:25针,9针电气方面:采用负逻辑电平:-5V~-15V规定为逻辑“1”

+5V~+15V规定为逻辑“0”计算机远程通信1、RS-232C标准(RecommendedStandard)DTE(DataTerminalEquipment)数据终端DCE(DataCommunicationsEquipment)数据通信装置24RS-232接口的硬件连接RXD2TXD3GND5DCD1DTR4DSR6RTS7CTS82RXD3TXD5GND1DCD4DTR6DSR7RTS8CTSPC机1PC机2双绞线:小于50英尺RS232的信号定义:TXD/RXD:是一对数据线,TXD称发送数据输出,RXD称接收数据输入,当两台计算机以全双工方式直接通信时,双方的这两根线应交叉连接。GND:所有的信号都要通过信号地线构成回路。其余为联络(握手信号)信号线.123456789DSRRTSCTSRIDCDRXDTXDDTRGNDDB-9型连接器25半双工RS485通信RS-485采用平衡线路,每个信号都有专用的导线对,其中一根导线上的电压等于另一根导线上的电压取反,测量的是电压差。可以消除共模噪声的影响,不受接地电势差异的影响。

VA-VB>0.2V逻辑“1”VA-VB<-0.2V逻辑“0”

实际差动输出:最小±1.5V,最大±6V主机从机26全双工RS422通信电缆最大长度:1200m(90kbps),120m(1Mbps)数据传输速率(最大):10Mbps最大驱动器数量:256个最大接收器数量:256个主机从机从机27RS-232与RS485的电平比较

RS-232C是非平衡线路,接收器对信号电压Vin和通用地线之间的电压作出响应,易受地线上干扰的影响。

RS232电平

RS-485采用平衡线路,每个信号都有专用的导线对,测量的是电压差。可以有效消除共模干扰的影响,且不受接地电势差异的影响。缺点:不具有抗共模干扰能力数据传输速率低传输距离短(15m)MC1488MC1489MC3487MC3486RS-485电平TTLTTLTTLTTL28MAX3160芯片

MAX3160:引脚可编程为2路RS-232或一路RS4-22/485传输速率:RS-232(1Mbps),RS-485(10Mbps)

引脚编程的RS-485(半双工)/RS-422(全双工)

允许串行总线上扩展256个收发器单电源工作(3.0V~5.5V)信号IO/引脚功能说明

RS485/232

输入/11

高电平为RS485/422模式,低电平为RS232模式

DE485/T2in

输入/15

RS485/422驱动器的使能或RS232发送(RTSA)

FAST

输入/10

低电平使能RS-232的速率限制(250kbps)

HDPLX

输入/12

高电平为半双工模式,高电平为全双工模式R1out输出/7RS232接收器输出(为CTSA)29RS-232接口电路通过CPLD芯片来配置通信模式。SCIB304编程举例-SCI的初始化unsignedint*UART_MODE=(unsignedint*)0x80005;voidInitSci(void){ *UART_MODE=0x04;//RS232,全双工,无速率限制

EALLOW;GpioMuxRegs.GPGMUX.all=0x0030;//InitializeSCI-BEDIS;ScibRegs.SCICCR.all=0x07;//

onestopbit;paritydisabled;idlelinemode;8bitdata

ScibRegs.SCICTL1.all=0x03;//

SCIsoftwarereset;transmitterandreceiverenabled

ScibRegs.SCICTL2.all=0x03;//EnalbebothTxRDYandRxRDYinterruptsScibRegs.SCIHBAUD=0x00;

ScibRegs.SCILBAUD=0xF3;//Baudrate=150/4/244/8=19.21kScibRegs.SCICTL1.all=0x23;//Re-enabletheSCIbywrittinga1toSWRESET

PieCtrl.PIEIER9.bit.INTx3=1;//SCIBRXINTPieCtrl.PIEIER9.bit.INTx4=1;//SCIBTXINT

}31发送数据完成//************************************************************** name: intSciaTx_Ready(void) input: none output: i=1:ready;i=0: busy//**************************************************************intScibTx_Ready(void){ unsignedinti; if(ScibRegs.SCICTL2.bit.TXRDY==1) { i=1; } else { i=0; } return(i);}32接收数据准备好//************************************************************* name: intSciaRx_Ready(void) input: none output: i= 1: newdata 0: none//*************************************************************intScibRx_Ready(void){ unsignedinti; if(ScibRegs.SCIRXST.bit.RXRDY==1) { i=1; } else { i=0; } return(i);}33中断服务程序interruptvoidSCIRXINTB_ISR(void)//SCI-B{ PieCtrl.PIEACK.bit.ACK9=1; if(ScibRx_Ready()==1) { Sci_VarRx[j]=ScibRegs.SCIRXBUF.all; Send_Flag=1; j++; if(j==100) {j=0; } }}interruptvoidSCITXINTB_ISR(void)//SCI-B{ PieCtrl.PIEACK.bit.ACK9=1;

……}34SCI测试程序#include"DSP28_Device.h"unsignedintSci_VarRx[100

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论