第七章串行通信接口SCI

合集下载

串行通信接口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时,发送器的输出作为接收器的输入。

数字信号处理 串行通信接口(SCI)

数字信号处理  串行通信接口(SCI)
较高,通常应用于11个或更少字节的数据块传送。而数据块较 大时推荐使用空闲线模式。
12
SCI的增强特性
SCIFIFO描述 发送器与接收器各有16级FIFO,有3个专门的寄存器控制; 复位时,SCI工作于标准模式,禁止FIFO功能。
自动波特率检测 自动检测SCI通信的波特率,并刷新BRR寄存器。
(BRR+1)×8
注意:如果BRR=0,则波特率=LSPCLK/16.
SCICLK×8
1≤BRR≤65535,如果BRR=0,等同于BRR=1
BRR
SYSCLKOUT/4
6
SCI多处理器通信
在同一条串行连线上,多处理器通信模式允许一个处理器 (主机)向串行线上其它处理器(从机)发送数据。
一条串行线上每刻只能有一个节点发送数据(发送使能控 制),但可以多个节点同时接收数据。 1、地址字节
13
第7章 DSP片上串行通信外设
7.3 串行通信接口(SCI)
串行通信概述
串行通信:通信线上既传输数据信息,也传输联络信息,因 此收发双方就必须要有通信协议。特点是串行传输成本低, 适用于远距离通信,但传输速度低。 串行通信分类:1)同步通信;2)异步通信。
同步通信:发送器和接收器通常使用同一时钟源来同步。方法是在发送器 发送数据时同时包含了时钟信号,接收器利用该时钟信号进行接收。 异步通信:收发双方的时钟不是同一个时钟,是由双方各自的时钟实现数 据的发送和接收。但要求双方使用同一标称频率,允许有一定偏差。 同步方法:要正确传输字符,准确读取每一位是必须用各自的时钟同步的, 为克服不同时钟的偏差,每个字符都有一个起始位进行同步。
方法二: 利用TXWAKE位产生11位的空闲时间 1)首先置位TXWAKE(SCICTL1.3),控制数据发送特征; 2)写一个数据字节(内容不重要)到SCITXBUF,发送一个

7第七章 串行异步通信

7第七章 串行异步通信

7.1.2 RS-232串行接口
1. RS-232概况
2. 标准的RS-232C电平转换器
3. EIA-RS-232C接口
7.1.2 RS-232串行接口
1. RS-232概况
• EIA-RS-232C是由美国电子工业协会 EIA(Electronic Industry Association) 制 订的一种串行物理接口标准。 • 规定逻辑“1”的电平表示低于-3V,而 逻辑“0”的电平为高于+3V。 • EIA-RS-232C最大的传输距离是30m, 通信速率低于20Kbps。
7.1.1 有关名词
• 2.异步传输 • 在异步传输中,每个字符编码为一系列脉冲。 传输由一个启始脉冲开始,脉冲长度等于一 个代码脉冲的长度。编码字符(脉冲系列)紧随 其后。最后是一个停止脉冲,其长度长于或 大于代码脉冲长度,其数目依据使用的传输 代码。 • 在异步传输中,错误控制的最常见格式是单 个位──奇偶校验位──错误检测的使用。 •
• 2.发送一个数据与接收一个数据 • 设在口地址定义处有下列语句: • SCS1 EQU $0016 ;SCI状态寄存器1 • SCDR EQU $0018 ;SCI数据寄存器
7.2.2 初始化与收发编程基本方法
• 要发送一个数据,首先通过状态寄存器 SCS1的D7(SCTE)判断是否可以向数据 寄存器SCI送数,SCTE=1可以送数:
• 目前较多使用MAX232,可用单一+5V电源供电 实现电平转换。
• 利用MAX232与MC68HC908GP32单片机构成的具 有串行通信功能的电路见图6-4。
7.1.3 串行异步通信接口电路设计
• 如图
7.1.3 串行异步 通信接口电路设计

DSP课件-SCI串行通信接口

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;

SCI

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串行通信

实验五SCI串行通信一.实验目的1.了解串行通讯的基本原理;2. 掌握SCI接口通信的工作原理和典型编程方法。

二.实验设备1.PC机一台,操作系统为WindowsXP (或Windows98、Windows2000),安装了ccs3.1;2.TI 2000系列的TMS320F2812 eZdsp开发板一块;3.扩展实验箱一台。

三.实验原理1.串行通信接口(SCI)是采用双线制通信的异步串行通信接口(UART)。

SCI模块采用标准非归零(NRZ)数据格式,能够实现多CPU之间或同其他具有兼容数据格式SCI端口的外设进行数据通信。

SCI的接收器和发送器都支持16级接受和发送FIFO,有着各自独立的中断和使能位,可以独立地操作实现半双工通信,或者同时操作实现全双工通信。

为保证数据完整,SCI模块对接受的数据进行间断、极性、超限和帧错误的检测。

为减少软件的负担,SCI采用硬件对通信数据进行极性和数据格式检测。

通过对16位的波特率控制寄存器进行编程,配置不同的SCI通信速率。

SCI与CPU的的接口结构如图5.1。

图5.1 SCI与CPU接口结构图2.SCI接口特点:2个外部引脚:SCITXD为SCI数据发送引脚;SCIRXD为SCI数据接收引脚。

两个引脚为多功能复用引脚,如果不使用可以作为通用数字量I/O。

●可编程通信速率,可以设置64K种通信速率。

●数据格式:1个启动位;1-8个可编程数据字长度;可选择奇校验、偶校验或无校验位模式;1或2位的停止位。

●4种错误检测标志位:奇偶错误、超时错误、帧错误和间断错误。

●2种唤醒多处理器方式:空闲线唤醒(Idle-line)和地址位唤醒(Address Bit)。

●全双工或半双工通信模式。

●双缓冲接收和发送功能。

●发送和接收可以采用中断和状态查询2种方式。

图5.2 SCI通信模块接口框图●独立的发送和接收中断使能控制。

●NRZ(非归零)通信格式。

●13个SCI模块控制寄存器,起始地址为7050H。

sci串口通信原理 -回复

sci串口通信原理 -回复

sci串口通信原理-回复SCI(串行通信接口)是一种常见的串口通信协议,被广泛应用于各种电子设备中。

在本文中,我们将一步一步回答关于SCI串口通信原理的问题,包括它的工作原理、常见的应用场景以及一些技术细节。

首先,让我们来了解SCI串口通信的工作原理。

SCI是一种串行通信接口,它通过使用单一的线路来传输数据。

这条线路被分为两个方向,一个用于传输数据(TX),一个用于接收数据(RX)。

通过在这两个方向上的电位变化,可以实现数据的传输。

SCI串口通信一般使用异步传输模式,即数据按照一个位一个位地传输,每个位之间使用起始位和停止位进行分隔。

在SCI串口通信中,每个数据位通常是8位或9位。

其中,8个数据位中的7个用于传输数据的真正内容,而最高位为校验位。

校验位有助于检测数据传输错误,提高数据传输的可靠性。

在接收端,接收器会比对接收到的校验位和传输过程中计算得到的校验位,以检测并纠正任何可能的错误。

除了数据位外,SCI串口通信还使用两个控制信号:RTS(请求发送)和CTS(清除发送)。

RTS信号由发送端控制,用于请求发送数据。

而CTS 信号由接收端控制,用于指示接收端是否准备好接收数据。

这两个控制信号的使用可以有效地控制数据的传输速率,避免数据传输丢失或溢出的情况发生。

SCI串口通信可以应用于多种场景中。

例如,它常用于个人电脑与其他外部设备之间的通信,如打印机、调制解调器、数码相机等。

此外,它还可以用于嵌入式系统中,如工业自动化、机器人控制、仪器仪表等。

由于SCI串口通信具有简单、可靠、成本低廉等特点,因此在各种场景下都有广泛的应用。

在SCI串口通信中,还有一些技术细节需要考虑。

首先是波特率的选择,波特率表示数据传输速度,常用的波特率有9600、19200、38400等。

选择合适的波特率能够平衡数据传输速度和系统资源的利用率。

其次是数据格式的设置,包括数据位数、校验位和停止位。

不同的应用场景可能需要不同的数据格式设置,需要根据具体需求进行调整。

第7章 串行通信接口(SCI)

第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) 。

DSP原理及应用技术第7.3节 串行通信接口(SCI)

DSP原理及应用技术第7.3节  串行通信接口(SCI)
RXINT RXINT
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种不同的波特率; ➢ 可编程的数据字格式; ➢ 四个错误检测标志:奇偶校验、溢出、帧错误和间断检测; ➢ 两种多处理器唤醒模式:空闲线和地址位; ➢ 半双工或者全双工操作; ➢ 双缓冲接收或发送功能; ➢ 发送器和接收器操作的完成可以通过中断驱动或者软件查询状态标志来

sci基本通讯过程

sci基本通讯过程

sci基本通讯过程
SCI(串行通信接口)是一种用于串行数据传输的通信协议,常用于嵌入式系统和通信设备中。

下面是SCI的基本通讯过程:
初始化:首先,发送方和接收方需要初始化SCI通信参数,包括波特率、数据位数、校验位和停止位等。

帧起始位:发送方发送一个起始位,通常为低电平,用于标识数据帧的开始。

数据传输:发送方依次发送数据位,从最高位到最低位。

每个数据位的传输时间根据所设置的波特率确定。

校验位:可选的校验位用于验证数据的正确性。

常见的校验位包括奇偶校验和循环冗余校验(CRC)等。

停止位:发送方发送一个或多个停止位,通常为高电平,用于标识数据帧的结束。

确认和响应:接收方接收到数据后,可以发送确认信号给发送方,表示数据接收成功。

发送方可以根据接收方的确认信号采取相应的控制动作。

重复以上步骤:发送方可以继续发送下一个数据帧,重复以上的通讯过程。

需要注意的是,SCI通信过程中的数据传输是单向的,即发送方发送数据,接收方接收数据。

如果需要双向通信,需要使用两条SCI通信线路,一条用于发送,一条用于接收。

SCI通信协议可以根据具体的应用需求进行定制和扩展,可以加入流控制、错误检测和纠错等功能。

以上是SCI的基本通讯过程,具体的实现和应用还需要根据具体的硬件和软件平台进行配置和开发。

SCI通讯口的使用方法

SCI通讯口的使用方法

M68HC08异步串行通信口中(SCI)SCI是一个全双工异步串行通信接口,它用于MCU与其他计算机之间进行通信。

1.1 SCI功能一、SCI基本特性·全双工操作;·标准不归零(NRZ)格式;·可选32种波特率;·可程控为8位或9位字符长度;·分开的发送和接收器允许控制;·分开的接收和发送CPU中断请求;·可程控发送输出极性;·两种接收器唤醒方:——空闲线唤醒;——地址位唤醒。

·具有8个中断标志位的中断驱动操作:——发送器空:——发送完成;——接收器满;——空闲接收输入;——接收器溢出;·硬件检偶检验;·1/16位时间噪声检测;·设置寄存器的SCIBDSRC位可选择波特率时钟源。

二、数据格式SCI采用标准的NRZ数据格式。

它由一个起始位(0),8或9个数据位和一个停止位(1)组成,数据位的位数由串行通信控制寄存器1(SCC1)的M位来选择。

M=0,为8位;M=1,为9位。

在允许检偶检验时,最高数据位将用作奇偶位。

这样,M=0时数据为7位;M=1时为8位。

1.2 SCI结构SCI由发送器和接收器组成,它们在功能上是独立的,但使用相同的数据格式和波特率。

一、SCI发送器SCI发送器框图见图1。

图1发送器的核心部分是图中上部的发送串行移位寄存器。

置位SCI允许(ENSCI)和SCI 发送允许(TE)时,写入串行通讯数据寄存器(SCDR)(事先应先读入SCI状态寄存器1(SCS1),以清除SCI发送器空位SCTE),启动发送。

这时,如串行移位寄存器为空,则存放在SCDR 中的数据传送到发送串行移位寄存器中,并置位SCTE,表示SCDR可接收新数据。

在允许发送中断(SCTIE=1)时产生发送中断。

数据从低位(LSB)(先为起始位)开始逐位从TXD脚移位输出。

在数据发送完成时,置位“发送完成”标志(TC),如没有新的等待发送的数据且不是发送引导码(或中止码),并在“允许发送完成中断”(TCIE)=1时产生中断。

串行口SCI

串行口SCI
Page 1
串行通信接口SCI 串行通信接口
SCI同步方式: 同步方式: 同步方式 以数据格式以及发收双方时钟相同设置进行同步。 以数据格式以及发收双方时钟相同设置进行同步。 主从机具有相同时钟周期(波特率) 主从机具有相同时钟周期(波特率)在特定数据格式下收发 数据可以同步(起始位 数据位 校验位+停止位 空闲位) 数据位+校验位 停止位+空闲位 数据可以同步(起始位+数据位 校验位 停止位 空闲位) SCI异步通信可使用半双工或全双工模式通信。在这种 异步通信可使用半双工或全双工模式通信。 异步通信可使用半双工或全双工模式通信 模式下,一个帧包括 个起始位 个起始位、 个数据位 个数据位、 个 模式下,一个帧包括1个起始位、1-8个数据位、1个 可选的奇偶校验位以及1-2个停止位。每个数据占 可选的奇偶校验位以及 个停止位。每个数据占8 个停止位 个SCICLK周期。 周期。 周期
Page 15
识别地址
处理器根据多处理器的模式来识别一个地址字节,例如: 处理器根据多处理器的模式来识别一个地址字节,例如: • 空闲线模式在地址字节前留有一段静空间。数据块之间 空闲线模式在地址字节前留有一段静空间。 个或10个以上连续空闲位 是10个或 个以上连续空闲位,同一帧数据字符间空闲 个或 个以上连续空闲位, 位应小于10个 该模式没有一个附加的地址/数据位, 位应小于 个。该模式没有一个附加的地址/数据位,在 处理包含多于10个字节的数据块的情况下,其效率比地址 处理包含多于 个字节的数据块的情况下, 个字节的数据块的情况下 位模式更高。 位模式更高。 • 地址位模式为每个字节增加一个附加位 地址位 来 地址位模式为每个字节增加一个附加位(地址位 地址位)来 从数据中识别地址。该模式在处理多个小数据块时 从数据中识别地址。 更有效。 更有效。

串行通信接口(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)

第7章 串行通信接口SCI By Wang

第7章 串行通信接口SCI By Wang
16
//发送就绪标志状态查询函数 int SciaTx_Ready(void) { unsigned int i; if(SciaRegs.SCICTL2.bit.TXRDY == 1) { i = 1; //返回1说明发送器已经准备就绪, 可以接收新的数据进行发送 } Else { i = 0; } return(i); }
18
除了查询方式之外,SCI的发送和接 收还可以通过中断进行控制。
看hellodsp 资料
19
多处理器通信
20
多处理器通信方式分为: 空闲线模式 地址位模式
21
22
23
RX FIFO_15
RX FIFO_15 6
SCI Device #1
SCI Device #2
7
之所以SCI能工作于全双工模式,是因为它 够同时进行,也能够独立 进行发送和接收的操作。
8
SCI数据格式
进行通信的时候,一般都会涉及到协议,所谓协 议就是通信双方预先约定好的数据格式,以及数 据的具体含义。这就像地下党员做情报工作时一 样,地下工作人员将一份情报交给了上级,上级 可以根据事先约定好的规则进行翻译,获取情报 具体内容。如果情报被敌人截获那也不怕,由于 敌人不知道情报中每个文字所代表的含义,所以, 对于敌人来说,这份情报也是无效的。这种事先 约定好的规则,我们就把它叫做通信协议。
11
通信波特率
所谓的波特率就是指每秒所能发送的位数 双方必须一致 2812的每个SCI都具有两个8位的波特率寄存器, SCIHBAUD和SCILBAUD
其中BRR=波特率选择寄存器中的值,从十进制转换成十 六进制后,高8位赋值给SCIHBAUD,低8位赋值给 SCILBAUD。

dsp-串行通信接口sci

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。

异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线

异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线

异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线(USB)等,这些总线在速度、物理接口要求和通信方法学上都有所不同。

本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。

由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。

目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。

微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。

这些总线在速度、物理接口要求和通信方法学上都有所不同。

本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。

为了说明方便起见,本文的阐述是基于微处理器的设计。

串行与并行相比串行相比于并行的主要优点是要求的线数较少。

例如,用在汽车工业中的LIN串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。

较少的线意味着所需要的控制器引脚较少。

集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。

相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。

另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB 板面积更大、更复杂,从而增加了硬件成本。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11
缩写:SCICR1 位定义:
数据位 定义
复位
D7 LOOPS
0
D6 SCISWAI
0
D5 RSRC
0
D4 M
0
D3 WAKE
0
D2 ILT
0
D1 PE
0
D0 PT
0
SCICR2 控制寄存器2
12
ห้องสมุดไป่ตู้
举例:设置允许SCI、正常码输出、8位数据、无校验 允许发送,允许接收,允许接收中断 SCI0CR1=0x00; SCI0CR2=0x2C;
7
7
SCI的主要功能是:


接收时,把外部的单线输入的数据变成一个字节 的并行数据送入MCU内部; 发送时,把需要发送的一个字节的并行数据转换 为单线输出。
8
9
10
根据波特率设置寄存器的公式:BR=fBUS/(16×Bt) 举例:总线频率fBUS=19.6608MHz, 定义波特率Bt=9600(针对SCI0) SCI0BDL=0x80; //须先给低8位赋值 SCI0BDH=0x00; //再给高5位赋值
3
3.奇偶校验


奇校验:校验位为0或1,使得1的数目是奇 数 偶校验:校验位为0或1,使得1的数目是偶 数 单工:1根数据线 全双工:2根数据线 半双工:1根数据线
4
4.串行通信的传输方式

RS-232C总线标准
1.采用负逻辑

逻辑“1”:-15V~-3V

逻辑“0”:+3V~+15V
18
void SCI_Transmit(byte data){ while(!SCI0SR1_TDRE); // 等待发送缓冲区空 SCI0DRL = data; }
19
void SCI_Receive(byte *data){ *data = SCI0DRL; }
20
#pragma CODE_SEG __NEAR_SEG NON_BANKED interrupt void SCI_Int(void){ // Receiver data register full interrupt if(SCI0SR1_RDRF){ SCI_IntRx(); } // Transmit data register empty interrupt if(SCI0SR1_TDRE){} // Transmit complete interrupt if(SCI0SR1_TC){} } #pragma CODE_SEG DEFAULT
13
SCISR1 状态寄存器1
SCISR2 状态寄存器2
14
SCIDRH/L 数据寄存器
15
初始化过程
设置SCI波特率寄存器
设置SCI控制寄存器1
设置SCI控制寄存器2
16
查询方式发送接收一个字符
可以发送 数据吗? 否

可以接收 数据吗? 否

发送数据
接收数据
17
void SCI_Init(void){ SCI0BD = BUS_FREQUENCY/BAUDRATE; SCI0CR1 = 0X00; SCI0CR2 = 0X2C; }
+
+5V +
1µ F×5
TTL 电平 转为 232 电平
V
1
6
SCI的基本编程原理
接收引脚 RxD 发送引脚 TxD 接收移位寄存器 发送移位寄存器
15 SPH
H X 0
SCI 数据寄存器
15 8 7
MCU 的 内 部 总 线 (Internal Bus)
0
7 SCI 控制寄存器
SCI状态寄存器
SCI波特率寄存器
XS128 SCI模块寄存器
串行口初始化与收发编程的基本方法
串行通信通用函数与测试实例
有关串行通信编程的进一步讨论
2
异步串行通信的基础知识
1.异步串行通信的格式(NRZ)
开始位 第0位 第1位 第2位 第3位 第4位 第5位 第6位 第7位 停止位
2.串行通信的波特率 定义:每秒内传送的位数。 单位:b/s或bps 常用:1200bps、4800bps、 9600bps……
21
嵌入式系统设计原理与应用
Design and application of embedded system based on MCU
第 7章
串行通信接口SCI
孙文义
wenyisun@ 东北大学秦皇岛分校控制工程学院
2014年3月
1
提纲
异步串行通信的基础知识
电平转换电路与SCI通用编程原理
2.传输距离≤30m,通信速率≤20Kbps 3.接口

9芯、25芯 地线、发送数据线、接收数据线
5
232 电 平
TTL 电 平
T1IN R1IN R1OUT T1OUT
+5V GND +
16 15 14 13 12 11 10 MAX232CPE 1 2 3 4 5 6 7
+ +
9 8
电平转换芯片MAX232
相关文档
最新文档