5)SCI串行通信接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
SCI的中断(续)
2、接收器/间断中断: 如果臵位RX/BK INT ENA (SCICTL2.1), 则下列条件之一产生接收器中断: 1)SCI接收到一个完整的帧,并将RXSHF中的数据送SCIRXBUF,就会产生 接收器中断,同时将RXRDY臵位(SCICTL2.6); 2)间断检测条件发生(在一个缺少的停止位后,SCIRX保持10周期的低电 平)。该操作将BRKDT臵位,并产生中断。 3、 在接收器错误中断服务子程序中,可以检测错误条件:
PC机1
RXD 2 TXD 3 GND 5 DCD 1 DTR 4 DSR 6 RTS 7 CTS 8
PC机2 双绞线:小于50英尺
17
空闲线多处理器模式
数据块被各数据块间的空闲时间分开;
一帧空闲时间(10位或更多位个高电平)表示数据块的开始;
空闲时间
ADDR/IDLE MODE=0
18
空闲线多处理器模式
块起始信号的产生:
方法一:人为地在两个数据块间增加10或更多位的空闲时间。 方法二: 利用TXWAKE位产生11位的空闲时间
21
地址位多处理器模式
ADDR/IDLE MODE=1
22
地址位多处理器模式
数据块发送:
TXWAKE=1发送地址 TXWAKE=0发送数据
1)发送地址帧:TXWAKE位臵1,并写适当地地址值到SCITXBUF寄存器; 这样串行总线上的其它微处理器会读取该地址。 2)发送数据帧:将TXWAKE位清零,然后向SCITXBUF中写入要发送的第 一个数据;
两种多处理器通信模式:空闲线与地址位多处理器模式
为保证数据的完整性,SCI模块对接收到的数据可以进行间 断、奇偶、超限和帧错误检测。
6
SCI与CPU间的接口
CPU
两个外 部引脚
SCI模块
13个控制 寄存器
只能以 16位方 式访问
3.3V TTL 电平
7
SCI的数据格式
SCI的数据格式包括:
典型的异步串行通信接口:RS-232、RS-422/485、USB等
4
计算机通信接口
5
6.2 SCI模块
主要特点:
串行通信接口(SCI-Serial Communication Interface)
F2812包含两个SCI接口,记做SCIA和SCIB
SCI是一种异步串行通信接口,即通常所说的UART SCI支持16级接收和发送FIFO,有助于减少CPU的开销 如果不使用FIFO时,SCI接收器和发送器采用两级缓冲方式 SCI可工作于半双工或全双工模式(RS485/422)
5)数据的下一个字节到达SCIRXD引脚,检测到起始位;
6)RXENA=0,禁止接受数据。继续向RXSHF装载数据,但不送入SCIRXBUF。
CPU SCIRXBUF
RXSHF SCIRXD 地址位模式
11
每个字符6个数据位
通信过程中的发送器信号
1)TXENA=1(SCICTL1.D1),使能发送器发送数据;
发送器有一个SCITXBUF空标志(TXRDY=1),接收器有3个中断标志:
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可以继续写数据。
3个数据位 地址位模式
2)程序写数据到SCITXBUF寄存器,此时发送器不为空,TXRDY变低; 3)SCI发送数据到移位寄存器TXSHF后,产生中断请求,同时TXRDY变高; 4)TXRDY变高后,程序写第二个字符到SCITXBUF,随后TXRDY又变低; 5)发送完第一个字符,开始将第二个字符移位到寄存器TXSHF; 6)TXENA=0,禁止发送数据,SCI继续完成当前字符的发送; 7)第二个字符发送完成后,发送器变空,TXEMPTY=1,与TXSHF相对
6.1 计算机通信概述 6.2 SCI串行通信接口 6.3 标准串行通信总线 6.4 SCI编程举例
2
6.1 计算机通信概述
计算机间或计算机与外部设备间交换信息,称为计算机通信。 计算机通信方式:1)串行通信;2)并行通信。 并行通信:一般包括8条数据线,几条控制线和状态线。特点 是传输速度快,但通信距离短、传输线多。 例如XINTF、并行打印机接口、仪器仪表用IEEE 488总线等。
19
地址位多处理器协议中,每帧的最后一个数据位后有一个附加的地址位; 数据块的第一帧的地址位设臵为1,其余帧的地址位为0; 数据传输与数据块间的空闲周期无关。
地址位多处理器模式
ADDR/IDLE MODE=1
20
地址位多处理器模式
ADDR/IDLE MODE=1
地址位多处理器协议中,每帧的最后一个数据位后有一个附加的地址位; 数据块的第一帧的地址位设臵为1,其余帧的地址位为0; 数据传输与数据块间的空闲周期无关。
16
SCI多处理器通信
多处理器模式下,接受步骤如下:
接受地址块时,SCI端口被唤醒并申请中断,读取地址块 的第一帧,该帧包含目的处理器的地址;
比较接受的地址字节与内存中存放的器件地址;
如果二者一致,则编程使CPU清除SLEEP位,并读取数据 块中各个数据帧;否则,退出接受子程序并保持SLEEP臵位, 直到下一个地址块的开始才接受中断。 如何识别地址字节? SCI的两种模式均支持多处理器通信。
同步通信:发送器和接收器通常使用同一时钟源来同步。方法是在发送器 发送数据时同时包含了时钟信号,接收器利用该时钟信号进行接收。 异步通信:收发双方的时钟不是同一个时钟,是由双方各自的时钟实现数 据的发送和接收。但要求双方使用同一标称频率,允许有一定偏差。 同步方法:要正确传输字符,准确读取每一位是必须用各自的时钟同步的, 为克服不同时钟的偏差,每个字符都有一个起始位进行同步。
8255A 2~9 PA0~7 打印机插座 DATA0~7 STB 1 BUSY 11 地
3
CPU
PC7 PC2 地
8255A并行打印机接口电路框图
串行通信概述
串行通信:通信线上既传输数据信息,也传输联络信息,因 此收发双方就必须要有通信协议。特点是串行传输成本低, 适用于远距离通信,但传输速度低。 串行通信分类:1)同步通信;2)异步通信。
CPU SCITXBUF
TXSHF SCITXD
12
SCI的中断
SCI通信过程可以使用中断方式或查询方式控制接收器和发送器的工作;
发送器和接收器有独立的中断使能位(TX INT ENA、RX/BK INT、RX ERR INT ENA). 当中断被屏蔽时,但标志位仍然有效,可以反映发送和接收状态;
1)FE:当检测不到一个期望的停止位时,帧错误标志臵位;
2)OE:在前一个字符被CPU读取前,有新的字符送到SCIRXBUF中时,臵 位超时错误标志,此时前一个字符被覆盖; 3)PE:当接受字符中1的个数和它的奇偶校验位之间不匹配时(含地址位), 且校验模式被使能时,奇偶校验错误标志臵位。
错误标志位不能被直接清除,只能通过软件复位或系统复位来清除。
第四讲 内容回顾
1、DSP开发系统组成 1)硬件开发工具;2)软件开发工具;3)DSP应用板。 2、DSP最小系统 1)DSP芯片;2)时钟电路;3)电源与复位电路; 4)JTAG仿真接口。 3、人机接口 1)输入:键盘、开关、按钮等; 2)输出:LED、LCD等
1
DSP原理及其应用技术
串行通信接口(SCI)
一个开始位 1~8个数据位(通常为8位) 一个奇/偶校验位或无奇偶校验位 1~2个停止位
区分地址和数据的附加位(仅地址位模式时存在)
与RS232 格式兼容
8
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)。
14
SCI的波特率计算
波特率:串行通信过程每秒钟传送的二进制脉冲数目,单位: bit/s (位/秒) 串行时钟 SCICLK 由低速外设时钟 LSPCLK和波特率选择寄存器确定; 注意:如果 BRR= 0,则波特率=LSPCLK/16. BRR--Baud-Select Register
3)依次发送其ຫໍສະໝຸດ Baidu的数据帧,直至整个数据块发送完毕。
提示: 地址位模式下数据块间不需要等待,传输小数据块时效率 较高,通常应用于11个或更少字节的数据块传送。而数据块较 大时推荐使用空闲线模式。
23
SCI的增强特性
SCIFIFO描述
发送器与接收器各有16级FIFO,有3个专门的寄存器控制; 复位时,SCI工作于标准模式,禁止FIFO功能。
自动波特率检测
自动检测SCI通信的波特率,并刷新BRR寄存器。
24
6.3 标准串行总线接口
1、 RS-232C标准(Recommended Standard)
计算机远程通信
DTE(Data Terminal Equipment)数据终端 DCE(Data Communications Equipment)数据通信装臵 机械连接:25针,9针 电气方面:采用负逻辑电平:-5V~-15V +5V~+15V
规定为逻辑 “1” 规定为逻辑 “0”
25
RS-232接口的硬件连接
RS232的信号定义:
TXD/RXD : 是一对数据线,TXD称发送数据输出,RXD称接收数据输入,当 两台计算机以全双工方式直接通信时,双方的这两根线应交叉连接。
GND: 所有的信号都要通过信号地线构成回路。
其余为联络(握手信号)信号线.
9
SCI通信格式
1) 4个SCICLK周期的连续低电平表示有效的起始位; 2) 接收器收到1个起始位后开始接受数据; 3) 每个串行数据位占用8个SCICLK时钟周期; 4) 在随后的各位中进行三次采样(4、5、6)确定该位电平;
5)串口两端的接收/发送器分别使用各自的时钟(异步方式)。
10
通信过程中的接收器信号
1)臵RXENA=1(SCICTL1.D0),使能接收器接收器数据; 2)数据到达SCIRXD引脚后,检测起始位(SCI自动实现); 3)数据从RXSHF寄存器移位到接收缓冲寄存器(SCIRXBUF), 产生一个中断请求,同时接收器数据准备好标志RXRDY=1;
4)用户程序读取SCIRXBUF寄存器,标志位RXRDY自动清零;
SCI使用16位波特率选择寄存器,可以设定为64K种波特率;
SCI波特率= LSPCLK/ (BRR+1)×8
SYSCLKOUT/4
15
SCI多处理器通信
在同一条串行连线上,多处理器通信模式允许一个处理器 (主机)向串行线上其它处理器(从机)发送数据。
一条串行线上每刻只能有一个节点发送数据(发送使能控 制),但可以多个节点同时接受数据。
1、地址字节
发送节点发送信息的第一个字节是地址字节(各个从机的地址预先定义 好),所有接受节点都读取该地址字节。只有地址字节与接受节点的地址 字相符,才能接受数据,否则等待下一个地址字节。
2、Sleep位 (接收器休眠位)
连接到串行总线上的所有处理器都将SCI Sleep位臵1,这样只有检测到 地址字节后才会中断。当数据块地址与用户软件设臵的处理器地址相符时, 用户必须清除Sleep位,以便SCI能够在接受每个数据字节时产生中断。
1)首先置位TXWAKE(SCICTL1.3),控制数据发送特征;
2)写一个数据字节(内容不重要)到SCITXBUF,发送一个块 开始信号( 11位的空闲时间);
3)写一个新的地址到SCITXBUF,当TXSHF再次空闲后, SCITXBUF内容送TXSHF,TXWAKE被清零;
4)随后依次发送各个数据帧。
SCI的中断(续)
2、接收器/间断中断: 如果臵位RX/BK INT ENA (SCICTL2.1), 则下列条件之一产生接收器中断: 1)SCI接收到一个完整的帧,并将RXSHF中的数据送SCIRXBUF,就会产生 接收器中断,同时将RXRDY臵位(SCICTL2.6); 2)间断检测条件发生(在一个缺少的停止位后,SCIRX保持10周期的低电 平)。该操作将BRKDT臵位,并产生中断。 3、 在接收器错误中断服务子程序中,可以检测错误条件:
PC机1
RXD 2 TXD 3 GND 5 DCD 1 DTR 4 DSR 6 RTS 7 CTS 8
PC机2 双绞线:小于50英尺
17
空闲线多处理器模式
数据块被各数据块间的空闲时间分开;
一帧空闲时间(10位或更多位个高电平)表示数据块的开始;
空闲时间
ADDR/IDLE MODE=0
18
空闲线多处理器模式
块起始信号的产生:
方法一:人为地在两个数据块间增加10或更多位的空闲时间。 方法二: 利用TXWAKE位产生11位的空闲时间
21
地址位多处理器模式
ADDR/IDLE MODE=1
22
地址位多处理器模式
数据块发送:
TXWAKE=1发送地址 TXWAKE=0发送数据
1)发送地址帧:TXWAKE位臵1,并写适当地地址值到SCITXBUF寄存器; 这样串行总线上的其它微处理器会读取该地址。 2)发送数据帧:将TXWAKE位清零,然后向SCITXBUF中写入要发送的第 一个数据;
两种多处理器通信模式:空闲线与地址位多处理器模式
为保证数据的完整性,SCI模块对接收到的数据可以进行间 断、奇偶、超限和帧错误检测。
6
SCI与CPU间的接口
CPU
两个外 部引脚
SCI模块
13个控制 寄存器
只能以 16位方 式访问
3.3V TTL 电平
7
SCI的数据格式
SCI的数据格式包括:
典型的异步串行通信接口:RS-232、RS-422/485、USB等
4
计算机通信接口
5
6.2 SCI模块
主要特点:
串行通信接口(SCI-Serial Communication Interface)
F2812包含两个SCI接口,记做SCIA和SCIB
SCI是一种异步串行通信接口,即通常所说的UART SCI支持16级接收和发送FIFO,有助于减少CPU的开销 如果不使用FIFO时,SCI接收器和发送器采用两级缓冲方式 SCI可工作于半双工或全双工模式(RS485/422)
5)数据的下一个字节到达SCIRXD引脚,检测到起始位;
6)RXENA=0,禁止接受数据。继续向RXSHF装载数据,但不送入SCIRXBUF。
CPU SCIRXBUF
RXSHF SCIRXD 地址位模式
11
每个字符6个数据位
通信过程中的发送器信号
1)TXENA=1(SCICTL1.D1),使能发送器发送数据;
发送器有一个SCITXBUF空标志(TXRDY=1),接收器有3个中断标志:
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可以继续写数据。
3个数据位 地址位模式
2)程序写数据到SCITXBUF寄存器,此时发送器不为空,TXRDY变低; 3)SCI发送数据到移位寄存器TXSHF后,产生中断请求,同时TXRDY变高; 4)TXRDY变高后,程序写第二个字符到SCITXBUF,随后TXRDY又变低; 5)发送完第一个字符,开始将第二个字符移位到寄存器TXSHF; 6)TXENA=0,禁止发送数据,SCI继续完成当前字符的发送; 7)第二个字符发送完成后,发送器变空,TXEMPTY=1,与TXSHF相对
6.1 计算机通信概述 6.2 SCI串行通信接口 6.3 标准串行通信总线 6.4 SCI编程举例
2
6.1 计算机通信概述
计算机间或计算机与外部设备间交换信息,称为计算机通信。 计算机通信方式:1)串行通信;2)并行通信。 并行通信:一般包括8条数据线,几条控制线和状态线。特点 是传输速度快,但通信距离短、传输线多。 例如XINTF、并行打印机接口、仪器仪表用IEEE 488总线等。
19
地址位多处理器协议中,每帧的最后一个数据位后有一个附加的地址位; 数据块的第一帧的地址位设臵为1,其余帧的地址位为0; 数据传输与数据块间的空闲周期无关。
地址位多处理器模式
ADDR/IDLE MODE=1
20
地址位多处理器模式
ADDR/IDLE MODE=1
地址位多处理器协议中,每帧的最后一个数据位后有一个附加的地址位; 数据块的第一帧的地址位设臵为1,其余帧的地址位为0; 数据传输与数据块间的空闲周期无关。
16
SCI多处理器通信
多处理器模式下,接受步骤如下:
接受地址块时,SCI端口被唤醒并申请中断,读取地址块 的第一帧,该帧包含目的处理器的地址;
比较接受的地址字节与内存中存放的器件地址;
如果二者一致,则编程使CPU清除SLEEP位,并读取数据 块中各个数据帧;否则,退出接受子程序并保持SLEEP臵位, 直到下一个地址块的开始才接受中断。 如何识别地址字节? SCI的两种模式均支持多处理器通信。
同步通信:发送器和接收器通常使用同一时钟源来同步。方法是在发送器 发送数据时同时包含了时钟信号,接收器利用该时钟信号进行接收。 异步通信:收发双方的时钟不是同一个时钟,是由双方各自的时钟实现数 据的发送和接收。但要求双方使用同一标称频率,允许有一定偏差。 同步方法:要正确传输字符,准确读取每一位是必须用各自的时钟同步的, 为克服不同时钟的偏差,每个字符都有一个起始位进行同步。
8255A 2~9 PA0~7 打印机插座 DATA0~7 STB 1 BUSY 11 地
3
CPU
PC7 PC2 地
8255A并行打印机接口电路框图
串行通信概述
串行通信:通信线上既传输数据信息,也传输联络信息,因 此收发双方就必须要有通信协议。特点是串行传输成本低, 适用于远距离通信,但传输速度低。 串行通信分类:1)同步通信;2)异步通信。
CPU SCITXBUF
TXSHF SCITXD
12
SCI的中断
SCI通信过程可以使用中断方式或查询方式控制接收器和发送器的工作;
发送器和接收器有独立的中断使能位(TX INT ENA、RX/BK INT、RX ERR INT ENA). 当中断被屏蔽时,但标志位仍然有效,可以反映发送和接收状态;
1)FE:当检测不到一个期望的停止位时,帧错误标志臵位;
2)OE:在前一个字符被CPU读取前,有新的字符送到SCIRXBUF中时,臵 位超时错误标志,此时前一个字符被覆盖; 3)PE:当接受字符中1的个数和它的奇偶校验位之间不匹配时(含地址位), 且校验模式被使能时,奇偶校验错误标志臵位。
错误标志位不能被直接清除,只能通过软件复位或系统复位来清除。
第四讲 内容回顾
1、DSP开发系统组成 1)硬件开发工具;2)软件开发工具;3)DSP应用板。 2、DSP最小系统 1)DSP芯片;2)时钟电路;3)电源与复位电路; 4)JTAG仿真接口。 3、人机接口 1)输入:键盘、开关、按钮等; 2)输出:LED、LCD等
1
DSP原理及其应用技术
串行通信接口(SCI)
一个开始位 1~8个数据位(通常为8位) 一个奇/偶校验位或无奇偶校验位 1~2个停止位
区分地址和数据的附加位(仅地址位模式时存在)
与RS232 格式兼容
8
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)。
14
SCI的波特率计算
波特率:串行通信过程每秒钟传送的二进制脉冲数目,单位: bit/s (位/秒) 串行时钟 SCICLK 由低速外设时钟 LSPCLK和波特率选择寄存器确定; 注意:如果 BRR= 0,则波特率=LSPCLK/16. BRR--Baud-Select Register
3)依次发送其ຫໍສະໝຸດ Baidu的数据帧,直至整个数据块发送完毕。
提示: 地址位模式下数据块间不需要等待,传输小数据块时效率 较高,通常应用于11个或更少字节的数据块传送。而数据块较 大时推荐使用空闲线模式。
23
SCI的增强特性
SCIFIFO描述
发送器与接收器各有16级FIFO,有3个专门的寄存器控制; 复位时,SCI工作于标准模式,禁止FIFO功能。
自动波特率检测
自动检测SCI通信的波特率,并刷新BRR寄存器。
24
6.3 标准串行总线接口
1、 RS-232C标准(Recommended Standard)
计算机远程通信
DTE(Data Terminal Equipment)数据终端 DCE(Data Communications Equipment)数据通信装臵 机械连接:25针,9针 电气方面:采用负逻辑电平:-5V~-15V +5V~+15V
规定为逻辑 “1” 规定为逻辑 “0”
25
RS-232接口的硬件连接
RS232的信号定义:
TXD/RXD : 是一对数据线,TXD称发送数据输出,RXD称接收数据输入,当 两台计算机以全双工方式直接通信时,双方的这两根线应交叉连接。
GND: 所有的信号都要通过信号地线构成回路。
其余为联络(握手信号)信号线.
9
SCI通信格式
1) 4个SCICLK周期的连续低电平表示有效的起始位; 2) 接收器收到1个起始位后开始接受数据; 3) 每个串行数据位占用8个SCICLK时钟周期; 4) 在随后的各位中进行三次采样(4、5、6)确定该位电平;
5)串口两端的接收/发送器分别使用各自的时钟(异步方式)。
10
通信过程中的接收器信号
1)臵RXENA=1(SCICTL1.D0),使能接收器接收器数据; 2)数据到达SCIRXD引脚后,检测起始位(SCI自动实现); 3)数据从RXSHF寄存器移位到接收缓冲寄存器(SCIRXBUF), 产生一个中断请求,同时接收器数据准备好标志RXRDY=1;
4)用户程序读取SCIRXBUF寄存器,标志位RXRDY自动清零;
SCI使用16位波特率选择寄存器,可以设定为64K种波特率;
SCI波特率= LSPCLK/ (BRR+1)×8
SYSCLKOUT/4
15
SCI多处理器通信
在同一条串行连线上,多处理器通信模式允许一个处理器 (主机)向串行线上其它处理器(从机)发送数据。
一条串行线上每刻只能有一个节点发送数据(发送使能控 制),但可以多个节点同时接受数据。
1、地址字节
发送节点发送信息的第一个字节是地址字节(各个从机的地址预先定义 好),所有接受节点都读取该地址字节。只有地址字节与接受节点的地址 字相符,才能接受数据,否则等待下一个地址字节。
2、Sleep位 (接收器休眠位)
连接到串行总线上的所有处理器都将SCI Sleep位臵1,这样只有检测到 地址字节后才会中断。当数据块地址与用户软件设臵的处理器地址相符时, 用户必须清除Sleep位,以便SCI能够在接受每个数据字节时产生中断。
1)首先置位TXWAKE(SCICTL1.3),控制数据发送特征;
2)写一个数据字节(内容不重要)到SCITXBUF,发送一个块 开始信号( 11位的空闲时间);
3)写一个新的地址到SCITXBUF,当TXSHF再次空闲后, SCITXBUF内容送TXSHF,TXWAKE被清零;
4)随后依次发送各个数据帧。