DSP课件-SCI串行通信接口
DSP课件-SPI串行外设接口
传输速率较很高,可达75M×16=1200Mbps 信号线多(DB8/16,AB等) 限用于板级扩展外设的输入/输出接口。
4
SPI模块的特点与信号
F281x包含一个四线制SPI接口,可工作于全双工模式 数据长度:1~16位可编程 波特率:126种可编程 可同时进行发送和接收操作
SPI中断使能位(SPICTL.0):1-使能中断,0-禁止中断 当中断使能置位,且满足中断条件时,产生相应的中断。 SPI中断标志位(SPISTS.6):只读,由硬件设置。 指示SPI接收器中已经存放字符可以被读取或已完成指定长度的数据发送。 该位置位时已接收数据送入SPIRXBUF,当DSP读SPIRXBUF中的数据后 自动清除中断标志。
SPICCR.3~SPICCR.0确定了字符的位数(1~16); 当数据写入SPIDAT和SPITXBUF寄存器时必须左对齐; 当数据从SPIRXBUF读取时,必须是右对齐; SPIRXBUF中包含最新接收的字符,以及上次接收且已移位到左边的位。 例1:发送数据长度为1,SPIDAT当前值为737BH,数据格式见下图。
讲授人:奚伯齐 Email: 2015dsp@ 密码:2015dsp
SPI串行外设接口
Serial Peripheral Interface(SPI) 1 SPI模块概述 2 SPI的工作原理 3 通过SPI接口扩展外设 4 软件编程举例
2
1 SPI模块概述
SPI与SCI有什么区别?
两种工作方式:主/从工作方式 4种时钟模式:由极性和相位控制 接口方式:中断或查询
4个外部引脚 只能以 16位方 式访问
12个寄存器
同步时钟
5
模 块 框 图
DSP第三章3节
停止位和空闲位是高电平,以保证在起始位的开始处一定有一 去图 个下跳沿作为起始检测标志。 DSP控制器的串行通信由时钟SCICLK指挥,每位占有8个 SCICLK周期, 在SCICLK周期的第4、5、6个脉冲的下降沿采样引脚,采取3 取2的投票机制决定该位的状态。 而普通的单片机只在每位采样1次就决定该位状态,因此DSP的 采样更合理,抗干扰性能也要好。 为了保证异步串行通信主、从机之间的同步,除了要有前面的 通信数据格式外,还必须要求主、从机的发送和接收时钟具有相同 的周期,既相同的波特率。
数据类寄存器有3个,分别是数据发送缓冲寄存器SCITXBUF、 数据接收缓冲寄存器SCIRXBUF、仿真数据接收缓冲寄存器 SCIRXEMU。
表3.17 串行通信接口寄存器说明
地 址 7050h 寄存器 SCICCR 7 SCI通信 STP 控制寄存 BITS 器 RW-0 SCI CTL1 SCI控制 寄存器1 7 保留 6 EVEN/ ODD RW-0 6 5 PAR ITY RW-0 5 4 SCI ENA RW-0 4 CLOCK ENA RW-0 4 BAUD 12 RW-0 位 数 3 ADDR/ IDLE RW-0 3 TXW AKE RW-0 3 BAUD 11 RW-0 2 SCI CHAR2 RW-0 2 SLEEP RW-0 2 BAUD 10 R-0 1 SCI CHAR1 RW-0 1 TXENA RW-0 1 BAUD9 RW-0 0 SCI CHAR0 RW-0 0 RXENA RW-0 0 BAUD8 RW-0
2、地址位方式 如上图(c)所示,它是增加了一个地址/数据位,该位为1表示 信息块是地址信息,否则是数据信息。 去图 这种方法不需要监视空闲位的长短,编程比较简明。
地址位方式适合于短信息的传送,空闲线方式适合于长信息的 传送。
第7章 串行通信接口(SCI)
第7章串行通信接口(SCI)目前几乎所有的台式电脑都带有9芯的异步串行通信口,简称串行口或COM口。
有的台式电脑带有两个串行口,分别称为COM1、COM2口。
大部分的笔记本电脑也带有串行口。
随着USB接口的普及,串行口的地位逐渐变低了。
但是,作为设备间的一种简便的通信方式,在相当长的时间内,串行口还不会消失。
因为简单且常用的串行通信只需要三根线(发送线、接收线和地线),所以,串行通信可以作为MCU与外界通信的简便方式之一。
大部分嵌入式MCU都具有串行通信接口(Serial Communication Interface,SCI),掌握SCI的编程是学习MCU的重要内容之一。
本章从掌握规范的SCI基本编程角度讨论串行通信编程,把与芯片型号相关内容和与芯片型号无关内容区别开来,便于读者融会贯通与实际应用。
本章7.1、7.2节是与芯片无关的有关串行通信的通用基础知识,只有理解这些基础知识,才能进行串行通信的应用。
7.3、7.4节阐述GP32芯片的SCI模块的编程方法,在此基础上,重点掌握7.5节给出的编程实例。
注意,在汇编程序中,只有初始化子程序与GP32相关,收发程序在整个08系列中是通用的,在C程序中,只有初始化子程序与GP32相关,收发程序对任何芯片是通用的。
当然,要注意头文件SCI.h相关位的定义。
关于串口程序的测试,最好利用教学资料中提供的PC机方的高级语言源程序进行。
根据自己对高级语言的熟悉程度选用VB、C#、VC或其他高级语言。
实际上,掌握一门PC机方的高级语言编程对嵌入式系统开发是必要的。
7.1异步串行通信的基础知识本节简要概括了串行通信中的通常使用的相关基本概念,为学习MCU的串行接口编程做准备。
对于已经了解这方面知识的读者,可以略读本节。
7.1.1基本概念“位”(bit)是单个二进制数字的简称,是可以拥有两种状态的最小二进制值,分别用“0”和“1”表示。
在计算机中,通常一个信息单位用8位二进制表示,称为一个“字节”(byte)。
第十章 串行通信接口(SCI)模块-TMS320F28335 DSP原理、开发及应用-符晓
0x0000-7774 0x0000-7775 0x0000-7776 0x0000-7777 0x0000-7779 0x0000-777A 0x0000-777B 0x0000-777C 0x0000-777F
1
控制寄存器2
1
接收状态寄存器
1
仿真缓冲寄存器
1
2
SCI Char2
1
SCI Char1
0
SCI Char0
0 = 1 位停止位 1 = 2 位停止位
0:禁止奇偶校验功能 1:使能奇偶校验功能
0:空闲线模式 1:地址位模式
0:奇校验 1:偶校验
0:禁止测试模式 1:使能测试模式
数据位= (二进制值 + 1) 例如 110b代表7位数据位
SCI异步通信数据格式
寄存器名称
SCICCR SCICTL1 SCIHBAUD
SCILBAUD
SCICTL2 SCIRXST SCIRXEMU SCIRXBUF SCITXBUF SCIFFTX SCIFFRX SCIFFCT SCIPRI
SCI-A 0x0000-7050 0x0000-7051 0x0000-7052
下一个数据块的 地址字节
(地址位为1)
无关紧要的 空闲时间
地址位模式下的一帧数据
SCI波特率计算
SCI 波特率=
LSPCLK , BRR = 1 to 65535 (BRR + 1) x 8
LSPCLK ,
16
BRR = 0
波特率选择的MSB寄存器(ScixRegs.SCIHBAUD)
7
BAUD15 (MSB)
CI常用波特率配置(LSPCLK=37.5MHz)
DSP原理及应用技术第7.3节 串行通信接口(SCI)
TXINT TXINT
7.3 串行通信接口(SCI)
2)SCI自动波特率
SCI模块的增强功能支持硬件上的自动波特率检测逻辑。自动波特率 检测的流程如下:
①使能自动波特率检测模式:设置CDC位(SCIFFCT.13)为1并通过 向ABDCLR位(SCIFFCT.14)写1清除ABD位(SCIFFCT.12)。
7.3 串行通信接口(SCI)
(3)SCI多处理器通信
多处理器通信格式允许一个处理器在同一串行线路中将数据块有 效地传给其它处理器。在一条串行线上每次只有一个处理器发送数据 地址字节: 休眠位: 识别地址字节:
两种多处理器模式的接收顺序如下: 1)在接收一个地址块时,SCI端口被唤醒并请求中断(SCICTL2 寄存器的RX/BK INT ENA位必须使能以发送中断请求)。读取包含目 的地址的第一帧数据。 2)通过中断进入一个软件服务程序,检测即将到来的地址,将 接收到的地址字节与存储在内存中的器件地址进行比对。 3)如果检测结果表明数据块的地址与该设备CPU地址一致,则 CPU清零SLEEP位,并读取数据块的其余部分;如果不是则退出子程序 ,SLEEP仍然保持置位,并且在下一个数据块开始之前不会产生接收 中断。
SCI模块与CPU的连接如图7-29所示。
7.3 串行通信接口(SCI)
1. SCI模块具有以下特征:
➢ 两个外部引脚(不用于SCI通信时,可作为通用I/O口): SCITXD:SCI发送-输出引脚; SCIRXD:SCI接收-输入引脚; ➢ 可编程为多达64K种不同的波特率; ➢ 可编程的数据字格式; ➢ 四个错误检测标志:奇偶校验、溢出、帧错误和间断检测; ➢ 两种多处理器唤醒模式:空闲线和地址位; ➢ 半双工或者全双工操作; ➢ 双缓冲接收或发送功能; ➢ 发送器和接收器操作的完成可以通过中断驱动或者软件查询状态标志来
6.5_串行通信接口SCI模块080408
接收缓冲器/间断中断使 能
0
TX INT ENA
发送缓冲器中断使能控 制TXRDY标志引起的 中断
0-禁止TXRDY中断; 1-使能TXRDY中断
南京航空航天大学自动化学院DSP技术应用实验室
(4)SCI优先级控制寄存器SCIPRI 规定SCI发送和接收中断的优先级以及 SCI模块在仿真挂起时的操作.
2. SCI接收操作 ⑤接收器继续接收下一帧数据,检测起始位, 重复上述操作。 ⑥若第二帧数据尚未接收完毕(时刻6), RXENA=0,则将这一帧数据全部接收完毕后再 停止,但RXSHF中的数据并不传送到SCIRXBUF 中。
南京航空航天大学自动化学院DSP技术应用实验室
四、 SCI操作控制
3. SCI错误处理操作
7052h
SCIHBAUD
SCI波特率选择寄存器高8位
7053h
7054h
SCILBAUD
SCICTL2
SCI波特率选择寄存器低8位
SCI控制寄存器2
保存波特率控制数据低8位
发送中断使能,接收缓冲器/ 间断中断使能,发送准备好 标志和发送空标志。 存放7个接收状态标志
7055h
SCIRXST
SCI接收状态寄存器
四种错误:间断错误、奇偶性错误、溢出错误和帧错 误 ① 数据帧错误(Framing error):若超过一段时间 后仍收不到期待的停止位。 发生数据帧错误时,FE(SCIRXST.4)置位。 ②奇/偶校验错误(Parity error):检测接收到的数 据中1的个数是否正确,用于有限差错检测。 发生奇偶校验错误时,PE(SCIRXST.2)置位。
南京航空航天大学自动化学院DSP技术应用实验室
2. SCI模块的主要部件
第9-11章SCI-McBSP(xkj201612)4
波特率控制
- 工作时钟为LSPCLK - 64K种可编程波特率 - 波特率由SCIHBAUD、SCILBAUD寄存器配置
• BRR = 1~65535
LSPCLK SCI Baud Rate (BRR 1) 8
LSPCLK BRR -1 SCI Baud Rate 8
LSPCLK 16 说明:实际的最大波特率需确保小于主从机的最大允许速率。 SCI Baud Rate
(Full Duplex Shown)
TX FIFO_0 TX FIFO_15 Transmitter-data buffer register 8 Transmitter shift register SCITXD SCITXD TX FIFO_0 TX FIFO_15 Transmitter-data buffer register 8 Transmitter shift register
合肥工业大学电气与自动化工程学院DSP实验室
2016-12-
串行通信概述
串行通信的传送方式
1.单工方式:通信双方一方只能发 送,另一方只能接收,传送方向 是单一的。 2.半双工方式:通信双方只有一根 传输线(共地)(一个信道),但 同一时刻只能其中一方发送,另 一方接收。 3.全双工方式:需要通信双方连接 两条传输线(共地)(两个信 道),一条是将数据从甲方送往 乙方,另一条是从乙方送往甲方。 允许双向同时发送。
串行通信概述
RS-232C串行通信标准接口
RS-232C接口采用EIA电平 • 低电平为+3V~+15V • 高电平为-3V~-15V • 接口电源±12V或±15V • 25或9芯D型插座连接
引脚 1 2 3 4 5 9芯串行接口引脚含义表 功 能 引脚 接收线信号检测(载波检测DCD) 接收数据线(RXD) 发送数据线(TXD) 数据终端准备就绪(DTR) 信号地(SG) 6 7 8 9 功 能
第9章 串行通信接口SCI
上式适用于1≤BRR≤65535的情况
应用举例:
利用DSP的SCI口与PC的RS-232接口进行通讯。 上位机使用“串口调试助手”软件。 DSP使用“查询”方式,发送和接收数据。 波特率设为9600bps。
MAX232 RS-232 RX 74LS245
9.5 SCI中断
SCI的接收器和发送器有独立的中断标志。
发送中断:
TXRDY:当一个数据发送完毕时产生,通知CPU可以将 新数据写入SCITXBUF中。
接收中断:
RXRDY:当接收完一个数据并存入SCIRXBUF后产生,通 知CPU可以将接收数据读走。 BRKDT:间断检测,丢失了1个停止位后,SCIRXD引脚 保持10个周期的低电平。 RX ERROR:接收错误,是奇偶校验错误、超时、帧错 误的或。
9.6 SCI波特率计算
串行时钟由系统时钟频率CLKOUT和两个波特率选 择寄存器决定。 SCI使用16位的波特率选择寄存器来选择65536种 不同的串行时钟频率中的一种。SCI波特率选择 寄存器SCIHBAUD和SCILBAUD合成一个16位的波 特率值,用BRR表示。 SCI波特率可以使用如下的公式计算。
9.1.2 SCI模块的结构
9.1.2 SCI模块的结构
发送数据缓冲寄存器 SCITXห้องสมุดไป่ตู้UF 8
发送移位寄存器
TXSHF 接收数据缓冲寄存器 SCIRXBUF 8 接收移位寄存器 RXSHF
SCITXD
SCIRXD
SCI内部结构简图
9.1.3 SCI模块的寄存器地址
地址 7050h 7051h 7052h 7053h 7054h 7055h 7056h 7057h 7059h 705Fh 寄存器 SCICCR SCICTL1 SCIHBAUD SCILBAUD SCICTL2 SCIRXST SCIRXEMU SCIRXBUF SCITXBUF SCIPRI 名称 SCI通信控制寄存器 SCI控制寄存器1 波特率选择寄存器高8位 波特率选择寄存器低8位 SCI控制寄存器2 SCI接收器状态寄存器 SCI仿真数据缓冲寄存器 SCI接收器数据缓冲寄存器 SCI发送数据缓冲寄存器 SCI优先级控制寄存器
串行通信接口(SCI)
SCI的特性: (1)两个I/O引脚:SCIRXD与SCITXD (2)一个16位的波特率选择寄存器可编程,可得到
65536种的不同速率。
(3)1~8位的可编程数据位。 (4)长度为1位或2位的可编程停止位。 (5)内部产生的串行时钟。 (6)四个错误的检测标志:
奇偶性错误、超限错误、帧错误、间断检测 (7)两种唤醒多处理器模式:
}
void main(void)
{ SCSR1=81FE; WDCR=0x6f; Sci_init();
//系统初始化,40MHz //关闭WD //SCI初始化
while (1)
{
while((SCIRXST&0x40) != 1) {;}//RXRDY=1表示接收到 数据
RecieveChar=SCIRXBUF; SCITXBUF = RecieveChar;
SCICTRL1 SCI控制寄存器1
SCIHBAUD 波特率选择寄存器高8位
SCILBAUD 波特率选择寄存器低8位
SCICTRL2 SCI控制寄存器2
SCIRXST SCI接收器状态寄存器
SCIRXEMU SCI仿真数据缓冲寄存器
SCIRXBUF SCI接收器数据缓冲寄存器
SCITXBUF SCI发送数据缓冲寄存器
5. 空闲线多处理器模式
• 数据块与数据块之间通过较长的空闲时间分开,而且这个 空闲时间比数据块内部帧与帧之间的空闲时间长得多。
• 空闲线协议通过在某一帧之后使用10位或更多的空闲时间 来指示一个新数据块的开始。
空闲线多处理器模式的数据格式
6. 地址位多处理器模式
• 帧信息的最后一个数据位后紧跟着一个称之为地址位 的附加位。
SCI优先级控制寄存器(SCIPRI)
DSP课件 第九章 串行外设接口(SPI)
12
9.2.4 数据格式
13
ห้องสมุดไป่ตู้
9.2.5 波特率设置和时钟方式
SPI支持125种不同的波特率和4种不同的时钟方式。 1.波特率的计算
对于SPIBRR=3~127时
4
接口结构框图(从机方式)
5
§9.2 串行外设接口操作
串行外设接口的操作包括:操作方式、中断、数据格 式、时钟源和初始化。 9.2.1 操作介绍
两机之间的连接。 主机输出SPICLK信号启动数据传送。主机和从机数据 在SPICLK的一个边沿移出,在另一个边沿锁存。
6
返回
图9.2 SPI主机/从机的连接
之前接收的数据已被覆盖。如果OVERRUN INT ENA置位,则SPI就发生一次中
断请求。 该位可由以下三种操作来清除:
写1到该位;写0 到SPI SW RESET位;系统复位。
0 无中断请求
1 中断请求
位6
SPI INT FLAG。SPI中断标志位。
0 无中断请求
1 中断请求
位5
TX BUF FULL FLAG。SPI发送缓冲器满标志位。向SPITXBUF写入数据,该位置
9
9.2.2 SPI的主机和从机方式
2.从机方式
数据从SPISOMI引脚移出, SPISIMO引脚移入,SPICLK引脚输入串 行时钟。
发送数据:当主机SPICLK边沿合适时,从机中SPIDAT数据移出。 全部数据移出后,SPITXBUF数据传送到SPIDAT中。
接收数据:来自主机的SPICLK信号,将SPISIMO引脚上的数据移入 到SPIDAT。如果从机同时发送数据,则在SPICLK信号开始之前把数据 写入到SPITXBUF或SPIDAT中。
串行通信接口模块(SCI).
Electrical Engineering Institute of NEDU
3. 4.
5.
2018年7月31日星期二
12.1串行通信接口概述 全双工模式下SCI的主要部件
1.
2. 3. 4.
一个发送器(TX)及和它相关的主要寄存器; 一个接收器(RX)及和它相关的主要寄存器; 一个可编程的波特率发生器; 控制和状态寄存器。
电气工程学院
Electrical Engineering Institute of NEDU
2018年7月31日星期二
12.2.2 SCI的多处理器通信
地址字节的识别 空闲线模式在地址字节前留有一定长度的 空闲空间, 这种模式对于大数据块传输更有效。 地址位模式在每帧中加入额外地址/数据位, 这种模式对于小数据块传输更有效。
第十二章 串行通信接口模块(SCI) Serial Communication Interface
电气工程学院
Electrical Engineering Institute of NEDU
2018年7月31日星期二
12.1串行通信接口概述
SCI模块支持异步通信; SCI接收器和发送器是双缓冲的,各自有独立 的使能位和中断标志位。可以独立工作,或全 双工方式工作; SCI对接收到的数据进行间断检测,奇偶校验, 越限和帧出错的检查; 数据传输速度可编程为65535种方式;
电气工程学院
Electrical Engineering Institute of NEDU
2018年7月31日星期二
12.2.2 SCI的多处理器通信
空闲线模式下有两种方法可传送块的开始信号
1.
在前一块的最后一帧的数据传送与新块的地址 帧传送之间留出10位或更多位的空闲时间。 首 先 将 发 送 唤 醒 位 TXWAKE 置 1 , 然 后 再 向 SCITXBUF 写入任意一个数据,这样可以在数 据线上产生11位的空闲时间。
dsp-串行通信接口sci
SCI:DSP和计算机之间进行数据传输查询和中断的方式来实现sci接收和发送数据两个Sci模块(16级深度的FIFO队列)单工、半双工、全双工SCITXD 发送引脚SCIRXD 接收引脚其为复用引脚,分别对应GPIOF模块的第四位和第五位,编程时需把GPIOFMUX 模块第四位和第五位置1,否则这两个引脚就是通用的数字I/O口。
SCI模块具有四种错误检测标识,分别为极性错误,超时错误,帧错误,间断检测。
接收中断,发送中断Sci的寄存器是8位的__SHF 移位寄存器每次移入一位__BUF 缓冲寄存器SCITXBUF→TXSHF→SCITXDSCIRXBUF存放cpu要读的数据,从其他处理器传过来的数据逐位移入寄存器RXSHF 装满时→RXSHF 从SCIRXD移入数据一个可编程的波特率发生器发送和接收数据的原理Scictl1的位RXENA为1即使能了SCI的接收操作如果使能了sci的FIFO功能,则RXSHF会将数据直接加载到接收队列中,CPU再从队列读取,这时简化了CPU的开销,提高了效率。
FIFO模式下,直接从从指令中进行操作。
NRZ(反向不归零制)指数字数据传输的一种形式,用数字0和1表示二进位的低和高状态通过特特殊的和持续的直流(DC)电压传输。
在正逻辑NRZ 中,低位状态用更大的负的或更小的正的电压表示,高位状态用较小的负的或较大的正的电压表示。
例子如下:逻辑0=+0.5 伏特逻辑1=+5.0 伏特逻辑0=-3.0 伏特逻辑1=0.0 伏特在负逻辑NRZ 中,低位状态用更大正的或更小的负的电压表示,高位状态用较小的正的或较大的负的电压表示。
例子如下:逻辑0=+5.0 伏特逻辑1=+0.5 伏特逻辑0=0.0 伏特逻辑1=-3.0 伏特当逻辑状态之一可能被零电压表示的时候,一些人对这个模型的名字前面为什么要加上"非" 感到奇怪。
和归零制的定义比较之后答案就变得很明显。
也可参看双极发信号,单极发信号,和RZ。
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的接收中断函数。
DSP 第08章 串行通信接口SCI(2学时)
第8章
串行通信接口(SCI)
地址位模式为每个字节增加一个附加位(地址 位)来从数据中识别地址。该模式在处理多个 小数据块时更有效。与空闲线模式不一样, 因为它在数据块之间不需要等待。但在大数 据块传输中效率不如空闲线模式。
19
第8章
串行通信接口(SCI)
控制SCI Tx和Rx特性 多处理器的模式可通过ADDR/IDLE MODE位 (SCICCR.3)来设置。 两种模式都使用TXWAKE位(SCICTL1.3)、RXWAKE位 (SCIRXST.1)和SLEEP标志位(SCICTL1.3)来控制串行 通信接口发送器和接收器的工作状态。 接收顺序:在两种多处理器模式中,接收顺序如 下:
第8章
8.6
串行通信接口(SCI)
SCI波特率
内部产生的串行时钟由系统时钟频率CLKOUT和两个 波特率选择寄存器决定。SCI使用16位的波特率选 择寄存器来选择65536种不同的串行时钟频率中的 一种。 SCI波特率选择寄存器为SCIHBAUD(高字节)和 SCILBAUD(低字节),连一起形成16位的波特率 值— —BRR。
串行通信接口(SCI)
尽管当SLEEP位为1时,接收器仍能工作,但 它不会使RXRDY、RXINT或任何接收错误状态 位设置为1,除非检测到地址字节,且接收到 的帧的地址位是1。 SLEEP位必须由用户软件改变。
17
第8章
串行通信接口(SCI)
识别地址字节 处理器根据多处理器的模式来识别一个地址字 节,例如: 空闲线模式在地址字节前留有一段静空间。 该模式没有一个附加的地址/数据位,在处 理包含多于10个字节的数据块的情况下,其 效率比地址位模式更高。
串行通信接口(SCI)
寄存器 SCICCR SCICTRL1 SCIBAUD SCIBAUD SCICTRL2 SCIRXST SCIRXEMU SCIRXBUF SCITXBUF SCIPRI 名称 SCI通信控制寄存器 SCI控制寄存器1 波特率选择寄存器高8位 波特率选择寄存器低8位 SCI控制寄存器2 SCI接收器状态寄存器 SCI仿真数据缓冲寄存器 SCI接收器数据缓冲寄存器 SCI发送数据缓冲寄存器 SCI优先级控制寄存器
DSP-12章SCI
(2)主程序: .text
_c_int0 SETC INTM CLRC SXM CLRC OVM CLRC CNF LDP #0E0H SPLK #81FEH,SCSR1 SPLK #0E8h,WDCR CALL SCI_INIT LDP #5H SPLK #00H,SCI_FLAG
TXD_LOOP: LDP #5H BIT SCI_FLAG,BIT0 BCND TXD_DATA,TC B WAIT
Clock
波特率选择
RXWAKE
接收唤醒标志
SCIRXST.1
SCIRXST.7.4-2
错误标志 奇偶错 帧出错 超时错
优先级TX
RX优先级
RXSHF
接收移位器
SCIRXD
RXENA(接收使能)
SCICTL1.0
(RX/BRKDT)
INTENA
接收缓冲器
SCI RXRDY
RXBUF
BRKDT
接收中断使能
SCI_RX_END:
CLRC INTM RET
(5)假中断程序: PHANTOM
KICK_DOG RET END
发送:
1:置发送唤醒位为1.TXWAKE=1。 2:将任意字写入SCITXBUF以发送块的开始信号(11位)。
在块住处发送时,该字被忽略,发送11位空闲位且清TXWAKE。 3:将新地地址写入SCITXBUF。
2.地址位多处理器模式(ADD/IDLE MODE=1)
发送: 1:TXWAKE为附加数据位的1,因此置位TXWAKE(地址帧),写地址到
SCILBAVD 5.状态寄存器:SCIRXST:定义:接收唤醒标志[1].错误标志[2,3,4,5]
接收器准备好[6].总错误标志位[7] 6.接收缓冲器:SCIRXBUF 7.仿真接收缓冲器:SCIRXEMU 8.发送数据缓冲器:SCITXBUF 9.优先级控制寄存器:SCIPR1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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;
10
SCI通信格式
1) 4个SCICLK周期的连续低电平表示有效的起始位; 2) 接收器收到1个起始位后开始接收数据; 3) 每个串行数据位占用8个SCICLK时钟周期; 4) 在随后的各位中进行三次采样(4、5、6)确定该位电平; 5)串口两端的接收/发送器分别使用各自的时钟(异步方式)。
11
通信过程中的接收器信号
6)TXENA=0,禁止发送数据,SCI继续完成当前字符的发送; 7)第二个字符发送完成后,发送器变空,TXEMPTY=1。
CPU
SCITXBUF
TXSHF
SCITXD
13
SCI的中断
SCI通信过程可以使用中断方式或查询方式控制接收器和发送器的工作; 发送器和接收器有独立的中断使能位(TX INT ENA、RX/BK INT、RX ERR). 当中断被屏蔽时,但标志位仍然有效,可以反映发送和接收状态; 发送器有一个SCITXBUF空标志(TXRDY=1),接收器有3个中断标志:
讲课内容
“串行通信接口(SCI)”
1 通信接口概述 2 SCI串行通信接口 3 标准串行通信总线 4 SCI编程举例 5 RS485实际应用举例
2
1 通信接口概述
通信方式:1)串行通信;2)并行通信。
并行通信:一般包括8条数据线,几条控制线和状态线。特点 是传输速度快,但通信距离短、传输线多。 例如XINTF、并行打印机接口等。
1)置RXENA=1(SCICTL1.D0),使能接收器接收数据; 2)数据到达SCIRXD引脚后,检测起始位(SCI自动实现); 3)数据从RXSHF寄存器移位到接收缓冲寄存器(SCIRXBUF),
产生一个中断请求,同时接收器数据准备好标志RXRDY=1; 4)用户程序读取SCIRXBUF寄存器,标志位RXRDY自动清零; 5)数据的下一个字符到达SCIRXD引脚,检测到起始位; 6)RXENA=0,禁止接收数据。继续向RXSHF装载数据,但不送入SCIRXBUF。
典型的异步串行通信接口:RS-232、RS-422/485、USB等
4
2 SCI模块
主要特点:
串行通信接口(SCI-Serial Communication Interface) F2812包含两个SCI接口,记做SCIA和SCIB SCI是一种异步串行通信接口,即通常所说的UART接口 SCI支持16级接收和发送FIFO,有助于减少CPU的开销 如果不使用FIFO时,SCI接收器和发送器采用两级缓冲方式 SCI可工作于半双工或全双工模式(RS485/422) 两种多处理器通信模式:空闲线与地址位多处理器模式 为保证数据的完整性,SCI模块对接收到的数据可以进行间 断、奇偶、超限和帧错误检测。
与RS232 格式兼容
9
SCI数据格式的配置
SCIA的通信控制寄存器
STOP BITS:指定发送时停止位个数,0-1个停止位,1-2个停止位; EVEN/ODD PARITY:奇偶校验选择, 0-奇校验, 1-偶校验; PARITY ENALBE:校验使能, 0-禁止奇偶校验,1-允许奇偶校验; LOOPBACK ENA:环路测试模式使能,1-TX数据内部送Rx,0-禁止 ADDR/IDLE MODE:多处理器模式选择,0-空闲线模式,1-地址位模式 SCICHAR2~0:数据长度选择,1~8位数据(000-111)。
1)接收器数据准备好(ቤተ መጻሕፍቲ ባይዱXRDY=1); 2)接收器错误标志位(RX ERROR=1); 3)如果SCIRXD引脚连续保持至少10个低电平,则产生一个间断条件 ( BRKDT =1)。
5
SCI与CPU间的接口
CPU
两个外 部引脚
SCI模块
3.3V TTL 电平
13个控制 寄存器
只能以 16位方 式访问
6
SCI
模
块
框
LSPCLK
图
TXSHF SCITXBUF
RXSHF SCIRXBUF
SCITXD
To CPU
SCIRXD
To CPU
7
SCI模块原理图
接收过程:来自于SCIRXD引脚的数据逐位移至寄存器RXSHF,若SCI的接收功能 使能,将这些数据传输给接收缓冲寄存器SCIRXBUF,如果FIFO功能使能,将数据 加载到RX FIFO中,CPU从FIFO读取数据。