书签 分享 收藏 举报 版权申诉 / 111
上传文档赚钱

类型第7章-SCI串行通信接口0320课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3212441
  • 上传时间:2022-08-05
  • 格式:PPTX
  • 页数:111
  • 大小:1.93MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第7章-SCI串行通信接口0320课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    SCI 串行 通信 接口 0320 课件
    资源描述:

    1、1串行通信接口SCI7.2 SCI7.2 SCI模块功能模块功能7.3 SCI7.3 SCI工作原理工作原理7.4 SCI7.4 SCI寄存器寄存器7.1 SCI7.1 SCI模块特点模块特点7.5 SCI7.5 SCI波特率计算波特率计算7.6 SCI7.6 SCI发送数据和接收数据机制发送数据和接收数据机制7.7 SCI7.7 SCI多处理器通信多处理器通信7.8 SCI7.8 SCI发送与接收数据应用实例发送与接收数据应用实例27.1 SCI模块特点u 串行通信接口(串行通信接口(SCISerial Communication Interface)u F2812F2812包含包含两个两个

    2、SCISCI接口,记做接口,记做SCIASCIA和和SCIBSCIBu SCI SCI是一种是一种异步异步串行通信接口,即通常所说的串行通信接口,即通常所说的UARTUARTu SCI SCI可工作于可工作于半双工半双工或或全双工全双工模式(模式(RS-485RS-485/RS-422/RS-422)3SCI通信接口的主要特征通信接口的主要特征:(1)包含两个外部引脚)包含两个外部引脚SCITXD为为SCI发送输出引脚,发送输出引脚,SCIRXD为为SCI接收输接收输入引脚。两个引脚为多功能复用引脚,如果不使用入引脚。两个引脚为多功能复用引脚,如果不使用SCI,这两个引脚可以用作通用数字输入输

    3、出这两个引脚可以用作通用数字输入输出GPIO。(2)波特率可以编程达到不同速率。通过使用)波特率可以编程达到不同速率。通过使用16位的位的波特率选择寄存器能够设置不同的波特率。波特率选择寄存器能够设置不同的波特率。7.1 SCI模块特点4(3)数据格式是)数据格式是1个起始位。可编程个起始位。可编程18位的数据字位的数据字长度,可选择的长度,可选择的奇奇/偶校验位偶校验位模式或无校验位,模式或无校验位,1个或个或2个停止位。个停止位。(4)为保证数据的完整性,)为保证数据的完整性,SCI模块对接收到的数据模块对接收到的数据可以进行可以进行间断、奇偶、超时和帧错误检测间断、奇偶、超时和帧错误检测

    4、。有四个错。有四个错误检测标志位:即奇偶错误、超时错误、帧错误或间误检测标志位:即奇偶错误、超时错误、帧错误或间断检测。断检测。(5)多处理器通信具有两种模式:)多处理器通信具有两种模式:空闲线模式和地址空闲线模式和地址位模式。位模式。7.1 SCI模块特点57.1 SCI模块特点(6)具有全双工和半双工通信。)具有全双工和半双工通信。(7)具有双缓冲接收和发送功能。接收数据缓)具有双缓冲接收和发送功能。接收数据缓冲寄存器为冲寄存器为SCIRXBUF,发送数据缓冲寄存器,发送数据缓冲寄存器为为SCITXBUF。(8)发送和接收可以采用)发送和接收可以采用中断和查询中断和查询两种方式两种方式实现

    5、。实现。(9)有)有独立独立的发送和中断使能控制位。的发送和中断使能控制位。6(10)使用标准非归)使用标准非归0 NRZ(standard non-return-to-zero)数据格式进行通信。由于)数据格式进行通信。由于RS232是负逻辑,是负逻辑,没有没有0电平。所以是非归电平。所以是非归0 NRZ。(11)SCI-A模块具有模块具有13个控制寄存器。个控制寄存器。增强功能:增强功能:(1)具有自动波特率检测硬件逻辑。)具有自动波特率检测硬件逻辑。(2)接收器和发送器各具有一个)接收器和发送器各具有一个16级深度的级深度的FIFO。7.1 SCI模块特点7SCI与CPU的接口897.2

    6、 SCI模块功能图图7-2中中SCI模块可以工作在全双工模式,主要部件有:模块可以工作在全双工模式,主要部件有:(1)发送器和它的主要寄存器(图中上半部)发送器和它的主要寄存器(图中上半部)nSCITXBUF是发送数据缓冲寄存器。是发送数据缓冲寄存器。n包括由包括由CPU加载的、要发送出去的数据。加载的、要发送出去的数据。nTXSHF寄存器是发送移位寄存器。寄存器是发送移位寄存器。n接收来自发送数据缓冲寄存器接收来自发送数据缓冲寄存器SCITXBUF的数据,并的数据,并逐位将数据移到逐位将数据移到SCI发送引脚发送引脚SCITXD。10(2)接收器和它的主要寄存器(图中下半部)接收器和它的主要

    7、寄存器(图中下半部)nRXSHF寄存器是接收移位寄存器。逐位接收来自寄存器是接收移位寄存器。逐位接收来自SCI接收接收引脚引脚SCIRXD的数据并移入。的数据并移入。nSCIRXBUF是接收数据缓冲寄存器。是接收数据缓冲寄存器。n包含包含CPU要读的数据。来自远端处理器的数据加载到接收要读的数据。来自远端处理器的数据加载到接收移位寄存器移位寄存器RXSHF中,然后进入接收数据缓冲寄存器中,然后进入接收数据缓冲寄存器SCIRXBUF中。中。(3)可编程的波特率发生器。)可编程的波特率发生器。(4)数据存储器映射的控制和状态寄存器。)数据存储器映射的控制和状态寄存器。(5)SCI发送器和接收器可以

    8、独立工作,也可以同时工作。发送器和接收器可以独立工作,也可以同时工作。SCI-A 寄存器寄存器AddressRegisterName0 x007050SCICCRSCI-A 通信控制寄存器0 x007051SCICTL1SCI-A 控制寄存器10 x007052SCIHBAUDSCI-A 波特率寄存器,高位0 x007053SCILBAUDSCI-A 波特率寄存器,低位0 x007054SCICTL2SCI-A 控制寄存器20 x007055SCIRXSTSCI-A 接收状态寄存器0 x007056SCIRXEMUSCI-A 接收仿真数据寄存器0 x007057SCIRXBUFSCI-A 接收

    9、数据寄存器0 x007059SCITXBUFSCI-A 发送数据寄存器0 x00705ASCIFFTXSCI-A FIFO 发送寄存器0 x00705BSCIFFRXSCI-A FIFO 接收寄存器0 x00705CSCIFFCTSCI-A FIFO 控制寄存器0 x00705FSCIPRISCI-A 优先级控制寄存器12SCI-A寄存器7.3 SCI 工作原理工作原理SCITXBUFTXSHFSCI Device#1SCIRXDSCITXDSCITXDSCIRXDSCI Device#28SCIRXBUFRXSHF8SCITXBUFTXSHF8SCIRXBUFRXSHF8全双工全双工RX F

    10、IFO_0RX FIFO_15RX FIFO_0RX FIFO_15TX FIFO_0TX FIFO_15TX FIFO_0TX FIFO_1514SCI模块发送和接收数据的工作原理模块发送和接收数据的工作原理SCI的工作原理的工作原理nSCI可以工作可以工作于全双工模式于全双工模式,因为,因为它有独立的数据发送器它有独立的数据发送器和数据接收器和数据接收器,能够,能够保证保证SCI既能够同时进行,也能够独既能够同时进行,也能够独立进行发送和接收的操作。立进行发送和接收的操作。n SCI发送数据的过程发送数据的过程:n在在FIFO功能使能的情况下,首先,发送数据缓冲寄存器功能使能的情况下,首先

    11、,发送数据缓冲寄存器SCITXBUF获取获取由由CPU加载的需要发送的数据,然后加载的需要发送的数据,然后SCITXBUF将数据传输给发送移位寄存器将数据传输给发送移位寄存器TXSHF,如果,如果SCI的发送功能使能,的发送功能使能,TXSHF将将接收到的数据逐位逐接收到的数据逐位逐位地位地移移到到SCITXD引脚上。引脚上。15SCI的工作原理的工作原理nSCI接收数据的过程接收数据的过程:n接收接收移位寄存器移位寄存器RXSHF逐位逐逐位逐位地接收位地接收来自于来自于SCIRXD引脚的数据,如果引脚的数据,如果SCI的接收功能使能,的接收功能使能,RXSHF将这些数据传输给接收缓冲寄存器将

    12、这些数据传输给接收缓冲寄存器SCIRXBUF,CPU就能从就能从SCIRXBUF读取外部发送来的数据。读取外部发送来的数据。n如果如果FIFO功能使功能使能,能,SCIRXBUF将将数据加载到数据加载到RX FIFO的队列中,的队列中,CPU再从再从FIFO的的队列中读取队列中读取数据。数据。16177.3.2 数据接收与发送过程数据接收与发送过程数据接收数据接收数据发送数据发送SCIRXDRXSHFSCIRXBUFCPUSCITXDTXSHFSCITXBUFCPU18一数据接收过程一数据接收过程7.3.2 数据接收与发送过程数据接收与发送过程191执行指令使能执行指令使能SCI数据接收,置接

    13、收器使能位数据接收,置接收器使能位RXENA1(SCICTL1.0)。)。SciaRegs.SCICTL1.bit.RXENA=1,即即RXENA(SCICTL1.0)变为高,使能接收器接收数据。)变为高,使能接收器接收数据。SCICTL1.0是是SCI控制寄存器控制寄存器SCICTL1的的D0位。位。2数据到达数据到达SCI接收数据引脚接收数据引脚SCIRXD后,检测起始位。后,检测起始位。7.3.2 数据接收与发送过程数据接收与发送过程207.3.2 数据接收与发送过程数据接收与发送过程3数据从接收移位寄存器数据从接收移位寄存器RXSHF中移位到接收数据缓冲中移位到接收数据缓冲寄存器寄存器

    14、SCIRXBUF时,产生一个中断申请。时,产生一个中断申请。n接收器准备好标志位接收器准备好标志位RXRDY(SCIRXST.6)从)从0变为变为1。表明已经接收到一个新的字符。表明已经接收到一个新的字符。n此时如果接收缓冲寄存器中断使能,即此时如果接收缓冲寄存器中断使能,即RX/BK INT ENA(SCICTL2.1)已经置)已经置1,则产生一个接收中断,则产生一个接收中断RXINT请求。请求。4CPU读取读取SCI接收数据缓冲寄存器接收数据缓冲寄存器SCIRXBUF中的数中的数据后,接收器准备好标志位据后,接收器准备好标志位RXRDY自动被清零自动被清零。217.3.2 数据接收与发送过

    15、程数据接收与发送过程5下一个数据到达下一个数据到达SCI接收数据引脚接收数据引脚SCIRXD时,再次时,再次检测到起始位。检测到起始位。6若使接收器使能位若使接收器使能位RXENA(SCICTL1.0)为低电平,)为低电平,禁止接收器接收数据。此时禁止接收器接收数据。此时SCI接收数据引脚接收数据引脚SCIRXD上的数据继续移入接收移位寄存器上的数据继续移入接收移位寄存器RXSHF中,但接收移中,但接收移位寄存器位寄存器RXSHF中的数据不会装载到接收数据缓冲寄存中的数据不会装载到接收数据缓冲寄存器器SCIRXBUF中。中。227.3.2 数据接收与发送过程数据接收与发送过程二二 数据发送过程

    16、数据发送过程237.3.2 数据接收与发送过程数据接收与发送过程图图7-8中表明了发送信号时序是地址位模式。每个字符有中表明了发送信号时序是地址位模式。每个字符有3位位数据。数据。1.使能使能SCI发送器使能位发送器使能位TXENA1(SCICTL1.1);执行指令执行指令 SciaRegs.SCICTL1.bit.TXENA=1,使能发送器,使能发送器发送数据。发送数据。SCICTL1.1是是SCI控制寄存器控制寄存器SCICTL1的的D1位。位。2.执行指令发送数据执行指令发送数据 SciaRegs.SCITXBUF=0 x10CPU写数据到写数据到SCI发送数据缓冲寄存器发送数据缓冲寄存

    17、器SCITXBUF中,使得中,使得发送器不为空,发送缓冲寄存器准备好标志发送器不为空,发送缓冲寄存器准备好标志TXRDY(SCICTL2.7)由)由1变为变为0。247.3.2 数据接收与发送过程数据接收与发送过程3.SCI将发送数据缓冲寄存器将发送数据缓冲寄存器SCITXBUF中的数据装载中的数据装载到发送移位寄存器到发送移位寄存器TXSHF后,发送缓冲寄存器准备好标后,发送缓冲寄存器准备好标志志TXRDY由由0变为变为1,此时可以发送下一个字符。如果发,此时可以发送下一个字符。如果发送缓冲寄存器中断使能位送缓冲寄存器中断使能位TX INT ENA(SCICTL2.0)已经置已经置1,则产生

    18、一个,则产生一个发送中断请求发送中断请求。4.发送缓冲寄存器准备好标志发送缓冲寄存器准备好标志TXRDY由由0变为变为1后,后,CPU可以写第二个字符到可以写第二个字符到SCI发送数据缓冲寄存器发送数据缓冲寄存器SCITXBUF中,一旦第二个字符写入到发送数据缓冲寄存器中,一旦第二个字符写入到发送数据缓冲寄存器SCITXBUF后,后,TXRDY由由1变为变为0。257.3.2 数据接收与发送过程数据接收与发送过程5.第一个字符通过发送移位寄存器第一个字符通过发送移位寄存器TXSHF从低位到从低位到高位传送到发送引脚高位传送到发送引脚SCITXD进行发送完毕后,第二进行发送完毕后,第二个字符开始

    19、移入到发送移位寄存器个字符开始移入到发送移位寄存器TXSHF中。中。6.如果使发送器使能位如果使发送器使能位TXENA(SCICTL1.1)为低)为低电平,在电平,在SCI结束当前字符的发送后,将禁止发送器结束当前字符的发送后,将禁止发送器发送数据。发送数据。7.第二个字符发送完成后,发送器变空,准备发送第二个字符发送完成后,发送器变空,准备发送下一个字符。下一个字符。267.3.2 数据接收与发送过程数据接收与发送过程n图图7-8中发送缓冲寄存器准备好标志中发送缓冲寄存器准备好标志TXRDY(SCICTL2.7)判断发送数据缓冲寄存器)判断发送数据缓冲寄存器SCITXBUF是否为空,如果是否

    20、为空,如果TXRDY=1,表示发送数据缓冲寄存,表示发送数据缓冲寄存器器SCITXBUF中的值进入发送移位寄存器中的值进入发送移位寄存器TXSHF中。中。n发送器空标志位发送器空标志位TX EMPTY(SCICTL2.6)判断一)判断一个数据是否被传送完毕。个数据是否被传送完毕。TX EMPTY=1表示发送移位表示发送移位寄存器寄存器TXSHF中为空,数据发送完成。中为空,数据发送完成。277.3.3 SCI数据帧格式数据帧格式1.空闲线模式空闲线模式用于正常的非多处理器通信用于正常的非多处理器通信n空闲线模式格式是起始位、数据位、奇偶校验位和空闲线模式格式是起始位、数据位、奇偶校验位和停止位

    21、。数据位中是先传送低位停止位。数据位中是先传送低位LSB,再传送高位,再传送高位MSB。用于非多处理器通信。用于非多处理器通信。282.地址位模式地址位模式常用于多处理器模式常用于多处理器模式用一个用一个附加的地址位附加的地址位来标志这一帧数据是地址还是数据。来标志这一帧数据是地址还是数据。7.3.3 SCI数据帧格式数据帧格式29SCI的接收和发送都采用非归零的接收和发送都采用非归零NRZ(non-return-to-zero)数据格式,包括:)数据格式,包括:(1)1个起始位;个起始位;(2)18位数据位;位数据位;(3)1个奇个奇/偶校验位或无奇偶校验位或无奇/偶校验位;偶校验位;(4)

    22、1个或个或2个停止位;个停止位;(5)区别数据和地址的)区别数据和地址的附加位附加位(仅在地址位模式存在)。(仅在地址位模式存在)。n数据的基本单元为字符,有数据的基本单元为字符,有18位长。每个数据字符包位长。每个数据字符包含含1个起始位,个起始位,1或或2位停止位,可选择的奇偶校验位以及位停止位,可选择的奇偶校验位以及地址位。通过地址位。通过SCI通信控制寄存器通信控制寄存器SCICCR的配置编程实的配置编程实现现SCI通信的数据格式。通信的数据格式。7.3.3 SCI数据帧格式数据帧格式307.4 SCI寄存器SCI通信控制寄存器通信控制寄存器SCICCR(SCI Communicati

    23、on Control Register)如图)如图7-11所示。所示。数据格式通过数据格式通过SCI通信控制寄存器通信控制寄存器SCICCR进行设置。进行设置。设置数据长度、是否使能奇偶校验,校验方式是奇校验设置数据长度、是否使能奇偶校验,校验方式是奇校验还是偶校验以及停止位设置。还是偶校验以及停止位设置。317.4 SCI寄存器寄存器u 7 7:STOP STOP BITSBITS:指定:指定发送的停止位发送的停止位个数,个数,0 01 1个停止位,个停止位,1 12 2个停止位个停止位;u 6:EVEN/ODD EVEN/ODD PARITYPARITY:奇偶校验选择,:奇偶校验选择,0

    24、0奇校验,奇校验,1 1偶校验;偶校验;u 5 5:PARITY PARITY ENALBEENALBE:校验使能,:校验使能,0 0禁止奇偶校验,禁止奇偶校验,1 1允许奇偶校验;允许奇偶校验;u 4 4:LOOPBACK LOOPBACK ENAENA:环路测试模式使能,:环路测试模式使能,1 1TxTx数据数据内部送内部送RxRx,0 0禁止禁止u3 3:ADDRADDR/IDLE MODEIDLE MODE:多处理器模式选择多处理器模式选择,0 0空闲线模式,空闲线模式,1 1地址位模式地址位模式u 20:20:SCICHAR20SCICHAR20:数据长度选择,:数据长度选择,1 1

    25、8 8位数据(位数据(000000111111)。)。SCISCI通信通信控制寄存器控制寄存器书书P275SCI的数据格式的数据格式使用使用SCICCR进行数据格式编程进行数据格式编程 SciaRegs.SCICCR.bit.SCICHAR=7;/选择数据长度,为选择数据长度,为8个数据位个数据位 SciaRegs.SCICCR.bit.PARITYENA=1;/奇偶校验使能奇偶校验使能 SciaRegs.SCICCR.bit.PARITY=0;/0奇校验,奇校验,1偶校验偶校验 SciaRegs.SCICCR.bit.STOPBITS=0;/选择停止位,有选择停止位,有1个停止位,个停止位,

    26、上述上述4条语句可以条语句可以合并成:合并成:SciaRegs.SCICCR.all=0 x27;32337.4 SCI寄存器寄存器7.4.1 SCI 通信控制寄存器通信控制寄存器SCICCR SCI 通信控制寄存器通信控制寄存器SCICCR(SCI Communication Control Register)定义)定义了了SCI使用的字符格式、通信协议及模式。使用的字符格式、通信协议及模式。347.4.2 SCI控制寄存器控制寄存器1(SCICTL1)n位位6 RX ERR INT ENA:SCI接收错误中断使能位。接收错误中断使能位。n位位5 SW RESET:SCI软件复位位软件复位位

    27、(低电平有效低电平有效)。n位位3 TXWAKE:SCI发送器唤醒方法选择位。发送器唤醒方法选择位。n位位2 SLEEP:SCI休眠位。休眠位。1:使能休眠。:使能休眠。n位位1 TXENA:SCI发送使能位。发送使能位。1:使能发送。:使能发送。n位位0 RXENA:SCI接收使能位接收使能位。1:使能接收。:使能接收。SCI控制寄存器控制寄存器1(SCI Control Register 1,SCICTL1)控制控制接收接收/发送的使能,发送的使能,TXWAKE和和SLEEP功能,以及功能,以及SCI软件复软件复位。位。P31835n位位7 TXRDY:发送缓冲寄存器准备就绪标志位:发送缓

    28、冲寄存器准备就绪标志位。1:准备接收数据。:准备接收数据。n位位6 TX EMPTY:发送器空标志位。:发送器空标志位。n位位1 RX/BK INT ENA:接收接收缓冲器缓冲器/间断间断中断中断使能位使能位。1:使能。:使能。n位位0 TX INT ENA:发送发送缓冲寄存器缓冲寄存器(SCITXBUF)中断中断使使能位。能位。1:使能。:使能。7.4.3 SCI控制寄存器控制寄存器2(SCICTL2)36SCI控制寄存器控制寄存器2(SCICTL2)37SCI接收状态寄存器接收状态寄存器(SCI Receiver Status Register,SCIRXST)包含包含了了7位接收器的状态

    29、位接收器的状态标志。标志。n位位7 RX ERROR:SCI接收器错误标志位。接收器错误标志位。n位位6 RXRDY:SCI接收器准备就绪标志位。接收器准备就绪标志位。n位位5 BRKDT:SCI间断检测标志位。间断检测标志位。n位位4 FE:SCI帧错误帧错误(Frame Error)标志位。标志位。n位位3 OE:SCI超时错误超时错误标志位。标志位。n位位2 PE:SCI奇奇/偶校验错误标志位。偶校验错误标志位。n位位1 RXWAKE:SCI接收器唤醒检测标志位。接收器唤醒检测标志位。7.4.4 SCI接收状态接收状态寄存器寄存器SCIRXST 38SCI接收状态接收状态寄存器寄存器SC

    30、IRXST 39接收数据缓冲寄存器接收数据缓冲寄存器(SCIRXBUF)用于接收数据,将数据用于接收数据,将数据从寄存器从寄存器RXSHF转移到转移到SCIRXBUF中。中。7.4.6 SCI接收数据缓冲寄存器接收数据缓冲寄存器(书书P323)407.4.7SCI发送数据缓冲寄存器发送数据缓冲寄存器SCITXBUF n将要发送的数据写入到发送数据缓冲寄存器将要发送的数据写入到发送数据缓冲寄存器SCITXBUF中。中。n数据从发送数据缓冲寄存器数据从发送数据缓冲寄存器SCITXBUF移到发送移位寄存移到发送移位寄存器器TXSHF中,中,发送缓冲寄存器准备好标志位发送缓冲寄存器准备好标志位TXRD

    31、Y(SCICTL2.7)置)置1,表明发送数据缓冲寄存器表明发送数据缓冲寄存器SCITXBUF已准备好接收下一个要发送的数据。已准备好接收下一个要发送的数据。n如果发送缓冲寄存器使能位如果发送缓冲寄存器使能位TX INT ENA(SCICTL2.0)被置被置1,则这次数据传送将会产生一个中断。,则这次数据传送将会产生一个中断。7.4.9 SCI 波特率选择寄存器波特率选择寄存器BAUD15(MSB)BAUD14Baud-Select MSbyte Register(SCIHBAUD)0 x00705276543210BAUD13BAUD12BAUD11BAUD10BAUD9BAUD8BAUD6

    32、Baud-Select LSbyte Register(SCILBAUD)0 x00705376543210BAUD5BAUD4BAUD3BAUD2BAUD1BAUD7BAUD0(LSB)SCI baud rate=LSPCLK(BRR+1)x 8LSPCLK16,BRR=1 to 65535,BRR=04142SCI的波特率计算的波特率计算u 波特率:波特率:串行通信过程每秒钟传送的二进制位数,单位串行通信过程每秒钟传送的二进制位数,单位:bit/s:bit/s(位(位/秒)秒)u 串行串行时钟时钟SCICLKSCICLK由低速外设由低速外设时钟时钟 LSPCLKLSPCLK和波特率选择寄存

    33、器确定;和波特率选择寄存器确定;u SCISCI使用使用1616位波特率选择位波特率选择寄存器,寄存器,可以设定可以设定波特率波特率BRRBRR;u SCISCI波特率波特率 LSPCLK BRRLSPCLK BRR1 1 LSPCLKLSPCLK (BRR+1)(BRR+1)8 8 SCISCI波特率波特率8 818BAUDLSPCLKBRR如果如果BRR=0,则则16LSPCLKBAUD n波特率选择高波特率选择高字节字节寄存器寄存器SCIHBAUDSCIHBAUD和低和低字节字节寄存器寄存器SCILBAUDSCILBAUD二者确二者确定了定了SCISCI的波特率。的波特率。书书P326波

    34、特率计算波特率计算n例如外部晶振为例如外部晶振为30MHz,经过,经过PLL之后之后SYSCLKOUT为为150MHz,当低速预定标器当低速预定标器LOSPCP的值为的值为2时,时,SYSCLKOUT经过低速预定经过低速预定标器之后产生低速外设时钟标器之后产生低速外设时钟LSPCLK为为37.5MHz,即,即SCI的时钟为的时钟为37.5MHz。n如果需要如果需要SCI的波特率为的波特率为19200,将,将LSPCLK和波特率的数值代和波特率的数值代入公式入公式,n得到得到:BRR=243.14,由于寄存器都是正整数,省略小数后可以,由于寄存器都是正整数,省略小数后可以得到得到BRR=243。

    35、n将将243转换成转换成16进制是进制是0 xF3,因此,因此SCIHBAUD的值为的值为0,SCILBAUD的值为的值为0 xF3。n由于省略了小数,将会产生由于省略了小数,将会产生0.06%的误差。的误差。14.2431819200105.3764344理想的波特率理想的波特率低速低速时钟频率时钟频率LSPCLK=37.5MHZ波特率选择寄存器波特率选择寄存器BRR的设定值的设定值实际波特率实际波特率BRR与实际与实际波特率波特率的的误差(百分比误差(百分比/%)12003905(0 x0F41)1200024001952(0 x07A0)240004800976(0 x03D0)4798

    36、-0.049600487(0 x01E7)96060.0619200243(0 x00F3)192110.0638400121(0 x0079)384220.06表表7-9 SCI的波特率选择的波特率选择波特率计算波特率计算7.6 SCI发送数据和接收数据机制发送数据和接收数据机制查询方式和中断查询方式和中断方式方式n程序程序不断去查询状态标志位不断去查询状态标志位。n当当数据发送时,需要数据发送时,需要查询查询SCI控制寄存器控制寄存器2的的第第7位位(SCICTL2.7)TXRDY,发送数据缓冲发送数据缓冲寄存器就绪标志。寄存器就绪标志。n当当TXRDY位位为为1时时,表明发送数据缓冲寄存

    37、器表明发送数据缓冲寄存器SCITXBUF已经已经准备好开始从准备好开始从CPU接收并发送接收并发送下一个下一个数据。数据。n当向当向SCITXBUF写入数据后,写入数据后,TXRDY自动会清零;自动会清零;n如果如果TXENA(SCICTL1.1)使能,)使能,发送移位寄存器发送移位寄存器TXSHF会将会将SCITXBUF中的中的数据发送数据发送出去。出去。457.6.1 SCI查询方式查询方式n当数据接收时,需要当数据接收时,需要查询查询SCI接收状态寄存器接收状态寄存器(SCIRXST)中的)中的RXRDY(SCIRXST.6),接收器就接收器就绪标志。绪标志。n当从当从SCIRXBUF寄

    38、存器中已经准备好一个字符的数据,寄存器中已经准备好一个字符的数据,等待等待CPU去读时,去读时,RXRDY位会位会置置1。n当数据被当数据被CPU从从SCIRXBUF读出后,或者系统复位,都读出后,或者系统复位,都可以使可以使RXRDY清清0。7.6 SCI发送数据和接收数据机制发送数据和接收数据机制46n使用查询方式发送或者接收数据的程序结构如下:使用查询方式发送或者接收数据的程序结构如下:if(SciaTx_Ready()=1)SciaRegs.SCITXBUF=SCI_Senddata;/SCI_Senddata为需要发送的数据为需要发送的数据 if(SciaRx_Ready()=1)S

    39、ci_Receivedata=SciaRegs.SCIRXBUF.all;/SCI_Receivedata用于存放接收的数据用于存放接收的数据 7.6.1 SCI 查询方式查询方式47/发送就绪标志状态查询函数发送就绪标志状态查询函数 int SciaTx_Ready(void)unsigned int i;if(SciaRegs.SCICTL2.bit.TXRDY=1)i=1;/返回返回1说明发送器准备就绪,可以接收新的数据进行发送说明发送器准备就绪,可以接收新的数据进行发送 else i=0;return(i);7.6.1 SCI 查询方式查询方式48/接收就绪标志状态查询函数接收就绪标志

    40、状态查询函数 int SciaRx_Ready(void)unsigned int i;if(SciaRegs.SCIRXST.bit.RXRDY=1)i=1;/返回返回1说明数据接收已经就绪,等待说明数据接收已经就绪,等待CPU去读取数据去读取数据 else i=0;return(i);7.6.1 SCI 查询方式查询方式49三级中断三级中断n必须使能外设自己的中断、必须使能外设自己的中断、PIE中断和中断和CPU中断。中断。nSCIA的接收和发送中断的接收和发送中断分别位于分别位于PIE模块模块第第9组的组的第第1和第和第2位位,同时对应于,同时对应于CPU中断的中断的INT9。7.6.2

    41、 SCI 中断方式中断方式n TXRDY是中断标志位,是中断标志位,当当TXRDY位置位置1时时,会,会产产生发送中断事件,如果各级中断都已经使能,则会生发送中断事件,如果各级中断都已经使能,则会响应响应SCI的发送中断函数。的发送中断函数。n 当接收中断标志位当接收中断标志位RXRDY置置1时时,会,会产生接收中断产生接收中断标志标志。n 如果如果各级中断已经使能,则会响应各级中断已经使能,则会响应SCI的接收中断。的接收中断。50F2812 PIE 中断52nSCI发送和接收都可以采用中断控制。发送和接收都可以采用中断控制。nSCI控制寄存器控制寄存器SCICTL2中有一个发送缓冲寄中有一

    42、个发送缓冲寄存器准备好标志位存器准备好标志位TXRDY。n当发送缓冲寄存器准备好标志位当发送缓冲寄存器准备好标志位TXRDY置置1时,时,会产生发送中断事件。会产生发送中断事件。n如果各级中断都已经使能,则会响应如果各级中断都已经使能,则会响应SCI的发的发送中断函数。送中断函数。7.6.2 SCI 中断方式中断方式537.6.2 SCI 中断方式中断方式nSCI接收状态寄存器接收状态寄存器SCIRXST中有接收器准备好标志位中有接收器准备好标志位RXRDY和和SCI间断检测标志位间断检测标志位BRKDT,还有,还有SCI接收器接收器错误标志位错误标志位RX ERROR。nSCI接收器错误标志

    43、位接收器错误标志位RX ERROR是间断检测标志是间断检测标志BRKDT、帧错误标志、帧错误标志FE、超时错误标志、超时错误标志OE和奇偶校验和奇偶校验错误标志错误标志PE的逻辑或。的逻辑或。n发送器和接收器有发送器和接收器有独立的中断使能位。独立的中断使能位。n当禁止中断时,中断不能够被响应。但是条件标志保持当禁止中断时,中断不能够被响应。但是条件标志保持有效状态,可以反映发送和接收的状态。有效状态,可以反映发送和接收的状态。54nSCI有着独立的外设中断向量用于接收和发送。有着独立的外设中断向量用于接收和发送。n接收中断请求和发送中断请求在同一个时间产生时,接收中断请求和发送中断请求在同一

    44、个时间产生时,接接收中断请求的优先级高于发送中断请求的优先级。收中断请求的优先级高于发送中断请求的优先级。n需要减少接收器数据溢出的可能性。需要减少接收器数据溢出的可能性。n当接收器准备好标志位当接收器准备好标志位RXRDY置置1时,会产生接收中断时,会产生接收中断标志。标志。n如果各级中断已经使能,则会响应如果各级中断已经使能,则会响应SCI的接收中断。的接收中断。7.6.2 SCI 中断方式中断方式7.6.2 SCI 中断方式中断方式n外设中断的外设中断的标志位标志位一定一定要用软件复位,要用软件复位,SCI特殊。特殊。n原因原因:当发送器缓冲寄存器:当发送器缓冲寄存器SCITXBUF的数

    45、据到达的数据到达TXSHF寄存器时寄存器时,发送缓冲寄存器准备好标志位,发送缓冲寄存器准备好标志位TXRDY置置1,当,当CPU将数据写入将数据写入SCITXBUF时,时,TXRDY自动清自动清0。n当数据从当数据从RXSHF接收移位寄存器移入接收缓冲寄存器接收移位寄存器移入接收缓冲寄存器SCIRXBUF时,时,SCI接收器准备好标志位接收器准备好标志位RXRDY从从0变为变为1,表明一个新的字符已经接收表明一个新的字符已经接收。n当当CPU将数据从将数据从SCIRXBUF读出时,读出时,RXRDY会自动清会自动清0。n发送和接收这两个中断标志位都是可以发送和接收这两个中断标志位都是可以自动清

    46、零的自动清零的,所以,所以无需手动无需手动复位。复位。这这是与其他外设中断不一样的地方。是与其他外设中断不一样的地方。55例例7.1 SCI采用中断采用中断方式接收方式接收数据数据 7.6.2 SCI 中断方式中断方式56#include DSP28_Device.h“unsigned int uart_sendtype;unsigned int Sci_VarRx100;unsigned int i,j;unsigned int Send_Flag;void main(void)InitSysCtrl();/系统控制初始化系统控制初始化DINT;/禁止全局中断禁止全局中断INTMIER=0

    47、x0000;/禁止禁止CPU中断中断IFR=0 x0000;/CPU中断标志寄存器清零中断标志寄存器清零InitPieCtrl();/初始化初始化PIE控制寄存器控制寄存器 InitPieVectTable();/初始化初始化PIE中断向量表中断向量表InitSci();/初始化初始化SCI7.6.2 SCI 中断方式中断方式 for(i=0;i 100;i+)Sci_VarRxi=0;i=0;j=0;Send_Flag=0;/发送标志清零发送标志清零 EALLOW;/解除寄存器保护解除寄存器保护 PieVectTable.RXAINT=&SCIRXINTA_ISR;/SCI接收中断函数入口地

    48、址装入中断向量表接收中断函数入口地址装入中断向量表EDIS;/使能寄存器保护使能寄存器保护 IER|=M_INT9;/使能使能CPU级级INT9中断中断EINT;/使能全局中断使能全局中断 INTMERTM;/使能全局实时中断使能全局实时中断 DBGM 577.6.2 SCI 中断方式中断方式58for(;)if(SciaTx_Ready()=1)&(Send_Flag=1)SciaRegs.SCITXBUF=Sci_VarRxi;/数据送到发送数据缓冲寄存器数据送到发送数据缓冲寄存器SCITXBUF中中Send_Flag=0;/发送标志清零发送标志清零i+;if(i=j)i=0;j=0;7.

    49、6.2 SCI 中断方式中断方式59interrupt void SCIRXINTA_ISR(void)/SCI-A接收中断函数接收中断函数 PieCtrl.PIEACK.bit.ACK9=1;if(SciaRx_Ready()=1)Sci_VarRxj=SciaRegs.SCIRXBUF.all;/读取接收数据缓冲寄存器读取接收数据缓冲寄存器SCIRXBUF的值的值Send_Flag=1;/接收数据后将发送标志置接收数据后将发送标志置1j+;if(j=100)j=0;7.6.2 SCI 中断方式中断方式60int SciaTx_Ready(void)unsigned int i;if(Sci

    50、aRegs.SCICTL2.bit.TXRDY=1)/发送缓冲寄存器准备好标志位发送缓冲寄存器准备好标志位TXRDY为为1 i=1;/返回返回1说明发送器准备就绪,可以进行新的数据发送说明发送器准备就绪,可以进行新的数据发送 else i=0;return(i);int SciaRx_Ready(void)unsigned int i;if(SciaRegs.SCIRXST.bit.RXRDY=1)/接收器准备好标志位接收器准备好标志位RXRDY为为1 i=1;/返回返回1说明数据接收已经就绪,等待说明数据接收已经就绪,等待CPU读取数据读取数据else i=0;return(i);7.6.2

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第7章-SCI串行通信接口0320课件.pptx
    链接地址:https://www.163wenku.com/p-3212441.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库