
串行通信接口本章内容: 8.1 SCI模块概述8.2 SCI模块的结构8.3 SCI寄存器24x DSP通信接口包括异步串行通信接口(SCI),串行设备接口(SPI),控制器局域网( CAN)接口等. 8.1SCI 24x DSP的SCI(串行通信接口)串行通信接口模块是标准的异步串行端口(UART). 可与RS232 / 485设备连接. 可以半双工或全双工运行. 波特率可以通过波特率选择寄存器设置. 数据格式: 起始位,1〜8个数据位,可选的奇/偶/无奇偶校验位,一个或两个停止位. SCI的功能: (1)两个I / O引脚: SCIRXD和SCITXD(2)可编程16位波特率选择寄存器,可以获得65536种不同的速率. (3)1〜8个可编程数据位. (4)长度为1或2位的可编程停止位. (5)内部产生的串行时钟. (6)四个错误检测标志: 奇偶校验错误,溢出错误,帧错误,不连续检测(7)两种唤醒多处理器模式: 空闲线唤醒,位地址唤醒(8)半双工或全双工通信. (9)双缓冲区接收和发送功能. (10)发送和接收操作都可以通过中断或查询来执行.

(11)不返回零格式(NRZ). 注意: SCI模块中的所有寄存器均为8位,但已连接到16位总线. 因此,访问这些寄存器时,寄存器的数据在低字节(位0〜7)和高字节(位8〜15)中读为0,这对高字节的写操作无效. 该模块主要包括以下组件: (1)Transmitter-TX SCITXBUF-发送数据缓冲寄存器,存储发送的数据. TXSHF发送移位寄存器,一次到SCITXD引脚一位. (2)Receiver-RX RXSHF-Receive移位寄存器,一次移位一位,将SCIRXD引脚上的数据移位. SCIRXBUF-接收数据缓冲寄存器,存储RXSHF接收的数据. (3)可编程波特率发生器. (4)控制和状态寄存器(映射在数据存储区中). SCI模块寄存器地址寄存器名称7050h SCICCR SCI通信控制寄存器7051h SCICTL1 SCI控制寄存器1 7052h SCIHBAUD波特率选择寄存器高8位7053h SCILBAUD波特率选择寄存器低8位7054h SCICTL2 SCI控制寄存器2 7055h SCIRXST SCI状态寄存器7056h SCIRXEMU SCI仿真数据缓冲寄存器7057h SCIRXBUF SCI接收数据缓冲寄存器7059h SCITXBUF SCI发送数据缓冲寄存器705Fh SCIPRI SCI优先级控制寄存器串行通信接口信号分类信号名称描述外部信号SCIRXD SCI异步串行接口接收数据SCITXD SCI异步串行接口发送数据控制信号波特率时钟LSPCLK预分频器时钟中断信号TXINT发送中断RXINT接收中断串行通信接口可编程数据格式串行通信接口SCI具有两个多处理器协议: 空闲线路多处理器模式和地址位多处理器模式.

数据的基本单位是字符,长度为1〜8位. 数据的每个字符包括一个起始位,一个或两个停止位,一个可选的奇偶校验位和一个地址位. 10 SCI多处理器通信多处理器通信格式允许一个处理器在同一串行线上与其他处理器有效地传输数据块. 在串行线上,一次只允许一个. 地址字节: 发送的数据包的第一个字节包括一个地址字节. 所有侦听器都会读取它. 只有地址匹配的侦听器才能接收地址字节后面的数据. 下一个地址. SLEEP: 所有串行连接的处理器都将其串行通信接口的SLEEP位(SCICTL1.2)设置为1,以便仅在检测到地址字节时才会中断,并且用户需要在地址匹配时清除SLEEP位. 当接收到每个数据字节时产生一个中断. SCI数据帧格式11处理器根据多处理器模式识别地址字节: 空闲线模式在地址之前保留一个固定的空间,该模式没有其他地址/数据位,在处理期间包含10个以上的字节数据块比地址位模式更有效. 地址位模式向每个字节添加一个额外的位(地址位)以区分地址和数据. 当处理多个小数据块时,它更有效. 在两种多处理器模式下,接收步骤: 接收地址块时,即使可以请求RX / BKINTENA位(SCICTL2.1)中断串行通信接口,串行通信接口也会唤醒并请求中断;它读取地址块中的第一帧数据,其中包括目标处理器的地址.

将由中断和校对程序获得的地址输入到软件子例程中,然后再次校对存储在存储器中的地址字节和设备地址. 如果地址匹配,则CPU清除SLEEP位并读取块中的剩余数据. 否则,它将退出子程序,并且SLEEP位仍会置1. 直到下一个地址块的开始,才接收到中断. 12空闲线多处理器模式数据块和数据块之间的空闲时间更长,并且此空闲时间比数据块内帧之间的空闲时间长得多. 空闲线路协议通过在特定帧后使用10位或更多空闲时间来指示新数据块的开始. 有两种方法可以发送该块的开始信号: 有意地留出10位或更多的空闲时间串行通信接口,以在前一个块的最后一帧的数据传输和新块的地址帧之间延迟. 在寄存器之前,串行通信接口首先将TXWAKE位设置为1,并发送11位空闲时间. 这样,串行通信线路仅空闲所需的位. •与TX WAKE位(TXWAKE)相关的是唤醒临时标志(WUT),它是一个内部标志,与TXWAKE构成一个双缓冲区. 当的移位寄存器(TXSHF)从串行通信接口发送数据缓冲寄存器(SCITXBUF)加载数据时,WUT从发送唤醒标志(TXWAKE)加载数据,然后TXWAKE位被清除.

13在传输期间,一帧时间的块起始信号: 将一个数字(内容不重要)写入SCITXBUF寄存器作为传输块的起始信号. 当移位寄存器TXSHF再次空闲时,发送数据缓冲寄存器SCITXBUF的内容被传送到TXSHF,将TXWAKE位移位到WUT,然后将TXWAKE位清零(因为TXWAKE动态位,数据位和奇偶校验位)在该帧的最后一个停止位之后,该位被11个空闲位替换);将新地址写入SCITXBUF寄存器. 必须首先将此无关的数据字写入SCITXBUF,以便可以将TXWAKE的值移入WUT. 在无关数据移入TXSHF之后,由于TXSHF和WUT是两级缓冲区,因此SCITXBUF寄存器可以重写地址位. 多处理器模式在此模式下,帧信息的最后一个数据位后跟一个名称. 它是地址位的附加位. 在数据块中,第一帧的地址位设置为1,其他帧的地址位必须设置为0. 发送地址: 将TXWAKE设置为1并将适当的地址写入SCITXBUF. 当地址移入TXSHF寄存器并再次移出时,其地址位设置为1,即串行线. 因为TXSHF和WUT是双缓冲的,所以SCITXBUF和TXWAKE可以在加载TXSHF和WUT之后立即写入新值;发送块帧(数据帧)中没有地址,TXWAKE应设置为0.
15 SCI通信格式SCI异步通信格式每个帧包括一个起始位,1到8个数据位,一个可选的奇偶校验位和1-2个停止位. 每个数据位有8个SCICLK周期. 处理器通过在中间对值进行三次采样来确定每个位的值. 这些样本分别出现在第4个,第5个和第6个时钟周期,并且该位的值是根据多数表决的原则(3之2)确定的. 16串行通信接口中断SCI和可以产生中断. SCICTL2寄存器包含一个标志位(TXRDY),用于指示当前的中断状态,而SCIRXST寄存器还包含两个中断标志位(RXRDY和BRKDT)和一个RX ERROR中断标志(由FE,OE,PE,等). 条件逻辑或生成). 和具有自己的中断使能. SCI和具有自己的中断向量. 中断请求可以设置为高优先级或低优先级,这由SCI模块发送到PIE控制器的优先级标志确定. 当将RX和TX中断分配为相同的优先级时,为了降低接收溢出的可能性,中断总是高于中断优先级. 17 SCI波特率计算SCI模块的波特率(1BRR65535(BRRCLKOUT BAUD波特率选择寄存器(SCIHBAUD,SCILBAUD)值)BRR BAUDCLKOUT BRR 16CLKOUT BAUD SCI通信控制寄存器: SCICCR SCI控制寄存器1: SCICTL1波特率选择寄存器: SCIHBAUD ,SCILBAUD SCI控制寄存器2: SCICTL2 SCI接收状态寄存器: SCIRXST SCI接收数据缓冲寄存器: SCIRXBUF SCI发送数据缓冲寄存器: SCITXBUF SCI优先级控制寄存器: SCIPRI 19 SCI通信控制寄存器(SCICCR)SCI通信控制寄存器(SCI通信控制)寄存器SCICCR)定义了字符格式,协议和通信模式.
STOPBITS: 设置SCI停止位的数量. 1: 2个停止位,0: 1停止位. EVEN / ODDPARITY: SCI奇偶校验选择位. 1: 偶校验,0: 奇校验PARITYENABLE: SCI校验使能位. 1: 启用,0: 禁用. LOOPBACK ENA: 自检模式使能位. 1: 启用自检模式,0: 禁用自检模式. ADDR / IDLEMODE: SCI多处理器模式选择位. 1: 选择地址位模式. 0: 选择空闲线路模式. SCICHAR2〜0: 字符长度选择位. 20个字符长度选择SCICHAR2 SCICHAR1 SCICHAR0字符长度/位数21 SCI控制寄存器1(SCICTL1)SCI控制寄存器1(SCI控制寄存器SCICTL1)控制接收/发送使能,TXWAKE和SLEEP功能以及SCI软件重启. RXERR INT ENA: SCI接收错误中断使能位. 1: 使能SWRESET: SCI软件复位位(低电平有效). TXWAKE: SCI唤醒方法选择位. 0: 没有选择的传输特性,1: 选择的传输特性取决于空闲线模式或地址位模式SLEEP: SCI睡眠位. 0: 禁用睡眠模式,1: 睡眠模式.
TXENA: SCI发送使能位. 0: 禁用传输,1: 启用传输. RXENA: SCI接收使能位. 0: 禁用接收; 1: 启用接收. 22波特率选择寄存器(SCIHBAUD,SCILBAUD)包括波特率选择高字节寄存器SCICHBAUD和低字节寄存器SCILBAUD. 两者都确定SCI的波特率. 23 SCI模块的波特率的计算方式如下(1BRR65535)(BRRCLKOUT BAUD BAUD速率选择寄存器(SCIHBAUD,SCILBAUD)值BRR BAUDCLKOUT BRR 16CLKOUT BAUD 24SCI控制寄存器2(SCI控制寄存器TXRDY: 发送缓冲寄存器就绪标志位1) : SCITXBUF为空,准备接收数据,0: SCITXBUF为满TXEMPTY: 空标志位1: SCITXBUF寄存器或TXSHF寄存器为空,0: SCITXBUF寄存器,TXSHF寄存器或两者都装载有数据RX / BKINT ENA: 接收缓冲区/不连续中断使能位1: 使能,0: 禁止TXINT ENA: 发送缓冲区寄存器(SCITXBUF)中断使能位1: 允许TXRDY中断,0: 禁止TXRDY中断25 SCI接收状态寄存器: SCIRXST SCI状态寄存器(SCIRXST)包含7位状态标志(其中两个可以生成中断请求).
RXERROR: SCI错误标志. 0: 设置无错误标志,1: 设置有错误标志BRKDT: SCI不连续检测标志. 0: 不满足不连续条件; 1: 不满足条件FE: SCI帧错误(FrameError)标志. 0: 未检测到帧错误,1: 检测到帧错误OE: SCI溢出错误标志. 0: 未检测到溢出错误,1: 检测到溢出错误PE: SCI奇偶校验错误标志. 0: 未检测到奇/偶校验错误; 1: 检测到奇/偶校验错误RXWAKE: SCI唤醒检测标志. 当该位为1时,表示检测到唤醒条件. 26 SCI接收数据缓冲寄存器(SCIRXEMU,SCIRXBUF)接收数据缓冲寄存器(SCIRXEMU,SCIRXBUF)用于接收数据并将数据从寄存器RXSHF传输到SCIRXEMU和SCIRXBUF. 仿真数据缓冲寄存器SCIRXEMU主要由(EMU)使用. 27 SCI发送数据缓冲寄存器(SCITXBUF)将要发送的数据写入发送数据缓冲寄存器. 此数据必须右对齐. 28 SCI优先级控制寄存器(SCIPRI)SCITXPRIORITY: 中断优先级选择. 0: 高优先级,1: 低优先级SCIRXPRIORITY: 中断优先级选择. 0: 高优先级,1: 低优先级SCISOFT和SCI FREE: 当发生模拟的挂起事件时,这两个决定以后的操作方式. 00: 模拟暂停后,立即停止. 10: 模拟暂停后,请在完成当前的接收/发送操作后停止. x1: SCI操作不受模拟挂起的影响.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-233052-1.html
自己一不留神成为首富就不知道话怎么讲了
挺好
期待
这真是事实