第14章 串行通信接口SCI
串行通信接口SCI

串行通信分为同步通信和异步通信。
串行通信接口都具有发送引脚TXD和接收引脚RXD,它们是TTL平电。
如果要利用这两个引脚与外界实行异步通信,必须将TTL电平转化为RS-232电平。
SCI是一种全双工异步串行通信接口,主要用于MCU与其他计算机或设备之间的通信,几个独立的MCU也能通过SCI实现串行通信,形成网络。
从编程角度看,先设定好波特率,通信格式,是否校验,是否允许中断等。
接着发送数据时,先检查相应的标志位是否允许发送数据,如果可以,则把数据放入SCI数据寄存器即可,剩下的工作芯片自动完成:将数据从SCI数据寄存器送到发送移位寄存器,硬件驱动将发送移位寄存器里的数据按规定发送到发送引脚TXD,供对方接收。
接收时,数据逐位从接收引脚RXD进入到接收移位寄存器,当收到一个完整字节时,芯片会自动将数据送到SCI数据寄存器,并置相应的标志位,我们就可以根据标志位的情况来读取数据了。
SCIBDH:TNP[1:0]:发送窄脉冲位。
此位的设定与SCI传送的脉冲对应关系如下表:SCIBDL:SBR[12:0]:波特率设定位当IREN=0时,SCI波特率=SCI总线时钟/(16*SBR[12:0])当IREN=1时,SCI波特率=SCI总线时钟/(32*SBR[12:1])SCICR1:控制寄存器1(当AMAP=0时有效)LOOPS:循环模式选择位。
LOOPS=0时,为正常模式。
LOOPS=1时,为自发自收模式,在此模式下,RXD引脚与SCI内部断开,内部发送数据直接作为接收的输入,用于测试。
接收器的输入由RSRC位决定。
SCISWAI:当SCISWAI=0时,SCI可以在等待模式下工作。
当SCISWAI=1时,SCI 不可以在等待模式下工作。
RSRC:当LOOPS=1时,RSRC位决定接收移位寄存器接收数据的来源。
RSRC=1,RXD引脚与SCI模块断开,SCI用TXD引脚来发送及接收。
RSRC=0时,发送器的输出作为接收器的输入。
DSP课件-SCI串行通信接口

CPU
SCITXBUF
TXSHF
SCITXD
13
SCI的中断
SCI通信过程可以使用中断方式或查询方式控制接收器和发送器的工作; 发送器和接收器有独立的中断使能位(TX INT ENA、RX/BK INT、RX ERR). 当中断被屏蔽时,但标志位仍然有效,可以反映发送和接收状态; 发送器有一个SCITXBUF空标志(TXRDY=1),接收器有3个中断标志:
22
地址位多处理器模式 地址位多处理器协议中,每帧的最后一个数据位后有一个附加的地址位;
数据块的第一帧的地址位设置为1,其余帧的地址位为0; 数据传输与数据块间的空闲周期无关。
ADDR/I多处理器模式
数据块发送:
TXWAKE=1发送地址 TXWAKE=0发送数据
1)接收器数据准备好(RXRDY=1); 2)接收器错误标志位(RX ERROR=1); 3)如果SCIRXD引脚连续保持至少10个低电平,则产生一个间断条件 ( BRKDT =1)。
1、发送器中断:
1)置位TX INT ENA(SCICTL2.0); 2)只要SCITXBUF中数据传送到TXSHF中,就会产生发送器中断; 3)该操作将TXRDY置位(SCICTL2.7),表示CPU可以继续写数据。
1166
中断方式
中断方式:通过中断进行控制SCI的发送和接收数据,必 须使能外设中断、PIE中断和CPU中断。SCIA的发送和接收 中断对应CPU中断的INT9。TXRDY是发送中断标志位,置1 时产生发送中断事件,则响应SCI的发送中断函数。同样, 当接收中断标志位RXRDY置1时,产生接收中断事件,则响 应SCI的接收中断函数。
TMS320x280x串行通讯接口(SCI)手册

TMS320x280x, 2801x, 2804x Serial Communications Interface (SCI) Reference Guide.pdf串行通讯接口(SCI)两线异步串行接口,即UART。
支持半双工和全双工通讯。
发送或接收完成通过中断驱动或查询状态标志实现。
波特率自适应。
包含两个SCI模块:SCI-A、SCI-B。
Character——Frame中的数据位Frame——起始位+数据位+(地址位)+校验位+停止位Block——若干Frame多处理器通讯:同一时刻只能有一个处理器作为数据发送者占用串行总线。
在Block中包含一个Address字节,接收者通过鉴别该字节判断是否与自己通讯,如果不符,则后续字节不会触发中断。
直至下一Address字节到来(触发中断),方再次判断。
通过置位SLEEP可以实现只有Address字节可触发中断,当中断处理程序判别出符合的Address字节后,需手动复位SLEEP,以允许后续数据字节触发中断。
idle-line多处理器通讯机制以10位或更多位高电平作为idle time。
idle time用以区分Block。
Block内首个Frame是address。
实现步骤:1)idle time唤醒SCI模块;2)处理器将识别下一个SCI中断;3)中断处理程序对收到的address和程序预知的地址进行比较;4)如果比较结果一致,中断服务程序应使SLEEP复位,并且接收剩余的数据Frame;如果不一致,则SLEEP保持置位。
idle time的生成方法:1)制造延时。
2)将TXWAKE置位,再向SCITXBUF写入一个字节,将发送长度为11位的idle time。
address bit多处理器通讯机制每一Frame额外包含一个address位。
Block内首个Frame 的address位为1,其余Frame的address位为0。
实现步骤:1)将TXWAKE置位,向SCITXBUF写入地址字节;2)TXWAKE复位以发送剩余非地址Frame。
DSP课件-SCI串行通信接口

8255A
打印机插座
CPU
PA0~7
PC7 PC2
地
DATA0~7
STB BUSY 地
8255A并行打印机接口电路框图
3
串行通信概述
串行通信:通信线上既传输数据信息,也传输联络信息,因 此收发双方就必须要有通信协议。特点是串行传输成本低, 适用于远距离通信,但传输速度低。 串行通信分类:1)同步通信;2)异步通信。
同步通信:发送器和接收器通常使用同一时钟源来同步。方法是在发送器 发送数据时同时包含了时钟信号,接收器利用该时钟信号进行接收。 异步通信:收发双方的时钟不是同一个时钟,是由双方各自的时钟实现数 据的发送和接收。但要求双方使用同一标称频率,允许有一定偏差。 同步方法:要正确传输字符,准确读取每一位是必须用各自的时钟同步的, 为克服不同时钟的偏差,每个字符都有一个起始位进行同步。
发送过程:在FIFO功能使能的情况下,缓冲寄存器SCITXBUF从TX FIFO中获 取要发送的数据,然后将数据传输给发送移位寄存器TXSHF,若SCI的发送功 能使能,将接收到的数据逐位的移到SCITXD引脚上。
8
SCI的数据格式
SCI的数据格式包括: 一个开始位 1~8个数据位(通常为8位) 一个奇/偶校验位或无奇偶校验位 1~2个停止位 区分地址和数据的附加位(仅地址位模式时存在)
CPU SCIRXBUF
每个字符6个数据位
RXSHF
SCIRXD
地址位模式
12
通信过程中的发送器信号 3个数据位
地址位模式
1)TXENA=1(SCICTL1.D1),使能发送器发送数据; 2)程序写数据到SCITXBUF寄存器,此时发送器不为空,TXRDY变低; 3)SCI发送数据到移位寄存器TXSHF后,产生中断请求,同时TXRDY变高; 4)TXRDY变高后,程序写第二个字符到SCITXBUF,随后TXRDY又变低; 5)发送完第一个字符,开始将第二个字符移位到寄存器TXSHF;
串行接口教程串行通讯的概念

(2)数据发送与接收线: 发送数据(Transmitted data-TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。 接收数据(Received data-RxD)——通过RxD线终端接收从MODEM发来的串行数据,(DCE→DTE)。 (3)地线 有两根线SG、PG——信号地和保护地信号线,无方向。
奇偶校验
奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,如: 1 0110,0101 0 0110,0001 偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如: 1 0100,0101 0 0100,0001
1.电气特性
EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。 在TxD和RxD上:逻辑1(MARK) =-3V~-15V 逻辑0(SPACE)=+3~+15V 在RTS、CTS、DSR、DTR和DCD等控制线上: 信号有效(接通,ON状态,正电压)=+3V~+15V 信号无效(断开,OFF状态,负电压) = -3V~-15V
TTLRS232转换芯片
连接器的机械特性
串口通信基本接线方法
9针串口(DB9)
25针串口(DB25)
针号
功能说明
缩写
针号
功能说明
缩写
1
数据载波检测
DCD
8
数据载波检测
DCD
2
接收数据
RXD
3
接收数据
RXD
3
发送数据
TXD
2
发送数据
TXD
4
数据终端准备
DTR
SCI

SCI(serial communication interface)串行通信接口SCI 是一个双线的异步接口,即具有接受和发送两根信号线的异步接口,一般可以看着UART(通用异步接收/发送装置),SCI可以工作在查询和中断的方式实例:设计时使用MAX3232芯片将SCI 设计成串口RS232,那么X2812就可以和其他使用RS232接口的设备进行通信,当然也可设计成其他电平形式的串口,如RS485。
2812具有2个相同的SCI 模块,SCIA,SCIB 。
每个模块都有一个接收器和发送器,发送器和接收器都具有一个16级深度的FIFO 队列。
它们都自己独立的使能位和中断位。
工作模式:一.SCI 模块的特点1. 有两个引脚,发送SCITXD 和接收SCIRXD ,分别对应FPIOF 模块的第4位和第5位。
在编程初始化时,需要将GPIOFMUX 寄存器的第4位和第5位置1,否则这两个引脚就是通用数字I/O 口。
2. 外部晶振通过PLL 模块倍频之后产生了CPU 的系统时钟SYSCLKOUT ,经低速时钟预定标器之后输出低速外设时钟LSPCLK 提供给SCI 模块,要保证SCI 正常运行,系统控制模块必须使能SCI 时钟,只有使能了,LSPCLK 才能供给SCI 。
也就是在系统初始化函数中需要将外设时钟控制寄存器PCLKCR 的SCIAENCLK 位置1.3. SCI 具有4种错误检测标志:极性错误,超时错误,帧错误,间断检测A A ABB B单工,A 只发,B 只接半双工,A,B 都可发,同一时刻只能接收或发送全双工,任何时刻,都可发4.具有双缓冲接收和发送功能,接收缓冲寄存器位SCIRXBUF,发送缓冲寄存器为SCITXBUF。
独立的发送器和接收器使得SCI可以工作于半双工或全双工5.可以产生两个中断:SCIRXINT和SCITXINT,即接收中断和发送中断,SCI模块具有独立的发送中断使能位和接收中断使能位,发送和接收可以通过中断方式实现,也可以查询中断方式是实现6.在多处理器模式下,SCI模块具有两种唤醒方式:空闲线方式和地址位方式。
串口通信(SCI)

串口通信(SCI)名词解释:IR: InfraRed(红外)LSB: Least Significant Bit (最低有效位)MSB: Most Significant Bit(最高有效位)特征:八个中断标志位:(1)、传送区为空(2)、传送完成(3)、接收区已满(4)、空闲接收输入(5)、接收器超出(6)、噪音错误(7)、架构错误(8)、奇偶校验错误(9)、接收唤醒(10)、发送冲突(11)、SCI寄存器:注意:SCIBDH、SCIBDL、SCICR1这3个寄存器只能在SCISR2的AMAP=0时才能进入而SCIASR1、SCIACR1、SCIACR2这3个寄存器则只能在SCISR 的AMAP=1时才能进入1、SCI Baud Rate Registers (SCIBDH, SCIBDL)在AMAP=0的时候可写在AMAP=0的情况下,如果只有SCIBDH被写入,读取SCIBDH 不会返回当前值,直到SCIBDL也被写入(在写入SCIBDH之后) 注意:这两个寄存器只有在AMAP=0的情况下才能在memory map下可见IREN:0红外调制/解调不使能;1红外调制解调使能TNP[1:0]:此位控制是否使能narrow pluse(不知道是什么)SBR[12:0]:SCI 波特率设置位。
当IREN=0时,SCI baud rate = SCI bus clock / (16 x SBR[12:0])当IREN= 1时,SCI baud rate = SCI bus clock / (32 x SBR[12:1])注意:波特率发生器在reset之后被禁止且直至TE、RE位被置一。
而且,波特率发生器在(SBR[12:0]=0和IREN=0)||(SBR[12:0]=0和IREN=1)的情况下被禁止。
注意:只写入SCIBDH不写入SCIBDL是无效的,因为在未写入SCIBDL之前写入SCIBDH,会将SCIBDH的值放入一个短暂储存的空间。
串行通信接口模块(SCI)概要

电气工程学院
Electrical Engineering Institute of NEDU
2020年1月29日星期三
12.2.2 SCI的多处理器通信
1.空闲线多处理器模式(ADDR/IDLE MODE=0)
数据块被块间的时间间隔分开,该时间间隔 比块中的数据帧之间的时间间隔要长,一帧后的 空闲时间(10个或更多个高电平位)表明了一个 新块的开始。如下页图所示:
Electrical Engineering Institute of NEDU
TXD RXD
从机n
2020年1月29日星期三
12.2.1串行通信接口可编程的数据格式 串行通信接口的NRZ数据格式包括:
一个起始位; 1~8个数据位; 一个奇/偶校验位 或 无奇/偶校验位; 1~2个停止位; 一个用于区分数据和地址的额外位。
BRR=24000000/(9600*8)–1=311.5
取138H 所以波特率选择寄存器设置为 SCIHBUAD=01H,SCILBAUD=38H
电气工程学院
Electrical Engineering Institute of NEDU
2020年1月29日星期三
12.3串行通信接口控制寄存器
第十二章 串行通信接口模块(SCI) Serial Communication Interface
电气工程学院
Electrical Engineering Institute of NEDU
2020年1月29日星期三
12.1串行通信接口概述
SCI模块支持异步通信;
SCI接收器和发送器是双缓冲的,各自有独立 的使能位和中断标志位。可以独立工作,或全 双工方式工作;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
空闲线模式下SCI一帧的数据格式
SCI的数据帧包括: 1个起始位、1~8个数据位、1个可选的奇偶校验位和1或2个停止位。
SCI异步通信格式
SCI通信的波特率
波特率就是指设备每秒所能发送的二进制数据 的位数。 X281X的每个SCI模块都具有2个8位的波特率 寄存器,SCIHBAUD和SCILBAUD,通过编程, 可以实现达到64K种不同的速率。
TXFFIL
TXFFIENA
1
TXINT
SCI多处理器通信模式
多处理器通信,顾名思义,就是多个处理器之间进行数据通信。 一个简单的多处理器通信拓扑示意图如下图所示。在图中,处理 器A、B、C、D之间都可以实现通信,图中的实线表示处理器A和 处理器B、C、D之间的通信。在同一个时刻,处理器A只能和处理 器B、C、D之中的一个实现数据传输。当处理器A给处理器B、C、 D中的某一个处理器发送数据时,A-B、A-C、A-D这3条通路上都 会出现相同的数据,那如何来确保这些数据被正确的处理器接收 呢?
地址位多处理器通信模式
空闲线多处理通信模式
串行通信的三种方式
根据数据的传送方向,串行通信可以分 为单工、半双工和全双工三种
SCI模块的特点
SCI模块信号总结
信号分类 信号名称 说明 SCIRXD SCI异步串口接收数据
外部信号 SCITXD
SCI异步串口发送数据
LSPCLK 控制信号
低速外设预定标时钟
RXINT
SCI接收中断
中断信号 TXINT
SCI发送中断
SCI模块的工作原理
1.1个发送器及其相关寄存器 SCITXBUF:发送数据缓冲寄存器,存放由CPU装载的需要发送的数据; TXSHF:发送移位寄存器,从SCITXBUF寄存器接收数据,然后将数据逐位逐位 移到SCITXD引脚上,每次移1位数据。 2.1个接收器及其相关寄存器 RXSHF:接收移位寄存器,从SCIRXD引脚移入数据,每次移1位数据。 SCIRXBUF:接收数据缓冲寄存器,存放CPU要读取的数据。从其他处理器传输 过来的数据逐位逐位的移入寄存器RXSHF,当装满RXSHF的时候,将数据装入 接收数据缓冲寄存器SXIRXBUF和接收仿真缓冲寄存器SCIRXEMU中。
2400
1952
0x7A
0
2400
0
4800
976
0x3D
0
4798-0.049600487
0x01
0xE7
9606
-0.06
19200
243
0
0xF3
19211
0.06
38400
121
0
0x79
38422
0.06
SCI模块的中断
SCI模块的中断
工作模式 SCI中断源 中断标志位 中断使能位 SCIFFENA 中断线 接收完成 RXRDY RX/BKINTENA 0 RXINT
1 BRR 65535 时的情况,
当BRR=0时,SCI模块通信的波特率为:
SCI Asynchronous Baud
LSPCLK 16
LSPCLK=37.5MHz时,SCI常见波特率所对应的波特率寄存器的值
BRR(十进制) 误差(%)
理想波特率
SCIHBAUD
SCILBAUD
精确波特率
SCI通信的波特率
SCI模块通信波特率与波特率选择寄存器之间的关系如下所示:
BRR
LSPCLK 1 SCI Asynchronous Baud*8
其中,BRR为SCI波特率选择寄存器中的值,从十进制转换成16进制后, 其高8位赋值给SCIHBAUD,低8位赋值给SCILBAUD。
需要提醒的是,上式所示的波特率公式仅仅适用于
3.1个可编程的波特率发生器。
4. 数据存储器映射的控制和状态寄存器。
SCI模块的工作原理
SCI通信的数据格式
X281X的SCI模块使用的是NRZ数据格式, 其包括了: (1)1个起始位; (2)1~8个数据位; (3)1个奇/偶/非极性位; (4)1~2个结束位; (5)在多处理器通信时的地址位模式下, 有1个用于区别数据或者地址的特殊位。
接收错误 标准SCI模式
RXERR
RXERRINTENA
0
RXINT
接收间断
BRKDT
RX/BKINTENA
0
RXINT
发送完成
TXRDY
TXINTENA
0
TXINT
接收错误和接收间断
RXERR
RXERRINTENA
1
RXINT
FIFO模式
FIFO接收中断
RXFFIL
RXFFIENA
1
RXINT
FIFO发送中断
第14章 串行通信接口SCI
14.1 串行通信接口SCI
SCI是Serial Communication Interface的 简称,即串行通信接口。 SCI是一个双线的异步串口,换句话说, 是具有接收和发送两根信号线的异步串 口,一般可以看作是UART(通用异步接 收/发送装置)。 X281X的内部具有两个相同的SCI模块, SCIA和SCIB。