串行通信接口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时,发送器的输出作为接收器的输入。
第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串口通信原理
sci串口通信原理SCI(Serial Communication Interface,串行通信接口)是一种广泛应用于嵌入式系统和电子设备中的串行通信协议。
SCI通常指的是UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)的一种实现方式。
在SCI通信原理中,数据以串行的方式通过一根或多根信号线进行发送和接收。
基本的通信参数包括波特率(bits per second, bps)、数据位数、停止位数和校验类型等。
1. 波特率:指每秒钟传输的比特数,是通信双方必须同步的一个重要参数。
2. 数据格式:1)数据位数(Data Bits):通常为5、6、7或8位。
2)停止位(Stop Bits):通常为1或2位,用于表示一个字符数据包的结束。
3)校验位(Parity Bit):奇偶校验,可选无校验、奇校验或偶校验,用于检测数据传输过程中可能出现的错误。
3. 通信过程:1)发送端将并行数据转换为串行数据,并按照设定的波特率和格式输出。
2)接收端则按照相同的参数设置解码接收到的串行数据,还原成并行数据。
4. 控制信号:1)RTS (Request to Send) 和CTS (Clear to Send) 用于硬件握手,确保双方都准备好进行通信。
2)DTR (Data Terminal Ready) 和DSR (Data Set Ready) 另一对硬件握手信号,用于设备之间表明就绪状态。
3)TXD (Transmit Data) 是发送数据的信号线,RXD (Receive Data) 是接收数据的信号线。
4)其他可能还包括中断请求线(如IRQ)等。
在嵌入式系统中,例如使用TMS320F28xx系列DSP芯片时,SCI模块负责处理这些串行通信任务,通过配置相应的寄存器来设定上述参数,然后利用中断机制实现在数据发送和接收过程中的实时响应与处理。
数字信号处理 串行通信接口(SCI)
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,发送一个
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与SPI
8.3 SCI模块的编程结构
(1)SCI波特率寄存器 ) 波特率寄存器(SCI Baud Rate Register,SCBR) , 波特率寄存器
具有串行通信功能的 MC68HC908G932最小系统电路原理图 最小系统电路原理图
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
MC68HC908GP32
1 0.1μ +5V PLL滤波 L 10K 0.47µ 0.01µ 2 3 4 5 6 9 10 11 12 13 14 15 16 17 18 19 20 0.1μ 复位电路 +5V RST 7 8 10K 0.1µ +5V 51 +5V
SCC2的地址是:$0014 ,定义为: 的地址是: 定义为: 的地址是 定义为
数据位 定义 复位 D7 SCTIE 0 D6 TCIE 0 D5 0 D4 0 D3 TE 0 D2 RE 0 D1 RWU 0 D0 SBK 0
SCRIE ILIE
发送完成中 断允许位 发送中断 允许位
空闲线中 断允许位
开始位 第0 位 第1 位 第2 位 第3 位 第 4 位 第5 位 第6 位 第7 位 停止位
SCI数据格式
8.1 串行通信基本知识概要
(2)串行通信的波特率 ) 波特率( ):每秒内传送的位数 波特率(baud rate):每秒内传送的位数。 ):每秒内传送的位数。
波特率单位是位/秒 记为 波特率单位是位 秒,记为bps。通常情况下,波特率的单位可以 。通常情况下, 省略。通常使用的波特率有 省略。通常使用的波特率有300、600、900、1200、1800、2400、 、 、 、 、 、 、 4800、9600、19200、38400。 、 、 、 。
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串行通信一.实验目的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是一种串行通信接口,它通过使用单一的线路来传输数据。
这条线路被分为两个方向,一个用于传输数据(TX),一个用于接收数据(RX)。
通过在这两个方向上的电位变化,可以实现数据的传输。
SCI串口通信一般使用异步传输模式,即数据按照一个位一个位地传输,每个位之间使用起始位和停止位进行分隔。
在SCI串口通信中,每个数据位通常是8位或9位。
其中,8个数据位中的7个用于传输数据的真正内容,而最高位为校验位。
校验位有助于检测数据传输错误,提高数据传输的可靠性。
在接收端,接收器会比对接收到的校验位和传输过程中计算得到的校验位,以检测并纠正任何可能的错误。
除了数据位外,SCI串口通信还使用两个控制信号:RTS(请求发送)和CTS(清除发送)。
RTS信号由发送端控制,用于请求发送数据。
而CTS 信号由接收端控制,用于指示接收端是否准备好接收数据。
这两个控制信号的使用可以有效地控制数据的传输速率,避免数据传输丢失或溢出的情况发生。
SCI串口通信可以应用于多种场景中。
例如,它常用于个人电脑与其他外部设备之间的通信,如打印机、调制解调器、数码相机等。
此外,它还可以用于嵌入式系统中,如工业自动化、机器人控制、仪器仪表等。
由于SCI串口通信具有简单、可靠、成本低廉等特点,因此在各种场景下都有广泛的应用。
在SCI串口通信中,还有一些技术细节需要考虑。
首先是波特率的选择,波特率表示数据传输速度,常用的波特率有9600、19200、38400等。
选择合适的波特率能够平衡数据传输速度和系统资源的利用率。
其次是数据格式的设置,包括数据位数、校验位和停止位。
不同的应用场景可能需要不同的数据格式设置,需要根据具体需求进行调整。
spi与sci的区别与联系
spi与sci的区别与联系
SPI与SCI
1. SPI串行外围设备接口(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口。
Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接
口,如68系列MCU。
SPI总线是一种三线同步总线,因其硬件功能很强,所以,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
2. SCI串行通信接口(serial communication interface)也是由Motorola公司推出的。
它是一种通用异步通信接口UART,与MCS-51的异步通信功能基本相同。
说白一点一个是同步串行、一个是异步串行
再白一点——同步的需要多出一条时钟线、异步的只需要接收、发送两条线
SCI模块用于串行通讯,如RS422、RS485、RS232;
SPI模块用于扩展外设,如AD、DA、FRAM、DSP等。
SCI模块和SPI模块是两个外设的扩展模块!
SCI是异步通信
SPI是同步通信
sci是异步串行通信接口,spi是同步,spi分主从机,通信速率上spi高于sci。
sci串行通信接口工作原理
sci串行通信接口工作原理
SCI(Serial Communication Interface)是一种串行通信接口,用于在数字系统中进行串行数据传输。
SCI通常包括发送和接收端,通过串行方式传递数据,它在嵌入式系统和通信领域中被广泛使用。
以下是SCI串行通信接口的基本工作原理:
1.帧结构:SCI通信以帧为单位,每一帧包含了一定数量的比特,通常包括起始位、数据位、奇偶校验位(可选)、停止位等。
这种帧结构有助于接收端正确解析和识别数据。
2.波特率设置:波特率是SCI通信的速率,表示每秒传输的比特数。
在SCI通信中,发送端和接收端必须配置相同的波特率,以确保数据的正确传输。
3.起始位和停止位:为了使接收端能够准确识别帧的起始和结束,通常在每帧的开始设置一个起始位,结束时设置一个或多个停止位。
4.数据传输:数据以二进制形式传输,由发送端按照事先定义好的帧结构进行发送。
接收端在正确配置的情况下,能够识别并解析这些帧,将二进制数据还原为原始数据。
5.同步机制:为确保数据的同步传输,通常在帧的开始设置一个起始位,作为同步信号,帮助接收端正确解析后续的数据。
6.协议选择:在SCI通信中,数据的传输可以使用不同的协议,例如异步传输和同步传输。
异步通信不需要与时钟同步,而同步通信则需要与外部时钟同步。
总体而言,SCI串行通信接口通过在帧中使用起始位、数据位、停止位等结构,按照事先定义好的协议传输数据。
这种方式具有灵活性和可靠性,适用于许多嵌入式系统和通信场景。
sci与spi的区别与联系
SPI与S CI--[360doc]1. SPI串行外围设备接口(se rialperip heral inte rface)总线技术是Moto rola公司推出的一种同步串行接口。
Mo torol a公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。
SPI总线是一种三线同步总线,因其硬件功能很强,所以,与S PI有关的软件就相当简单,使C PU有更多的时间处理其他事务。
2.SCI串行通信接口(seria l com munic ation inte rface)也是由M otoro la公司推出的。
它是一种通用异步通信接口UART,与MCS-51的异步通信功能基本相同。
说白一点一个是同步串行、一个是异步串行再白一点——同步的需要多出一条时钟线、异步的只需要接收、发送两条线SCI模块用于串行通讯,如RS422、RS485、RS232;S PI模块用于扩展外设,如AD、DA、FR AM、DS P等。
SCI模块和SPI模块是两个外设的扩展模块!SC I是异步通信SPI是同步通信sc i是异步串行通信接口,spi是同步,sp i分主从机,通信速率上spi高于sci------------------------------------------------------------------------------[百度知道]通常,大部分人把SCI、UART与RS232混为一谈,其实他们有本质上的差别:SC I(Ser ial C ommun icati on In terfa ce)意为“串行通信接口”,是相对于并行通信的,是串行通信技术的一种总称,最早由Motol ora公司提出的。
sci基本通讯过程
sci基本通讯过程
SCI(串行通信接口)是一种用于串行数据传输的通信协议,常用于嵌入式系统和通信设备中。
下面是SCI的基本通讯过程:
初始化:首先,发送方和接收方需要初始化SCI通信参数,包括波特率、数据位数、校验位和停止位等。
帧起始位:发送方发送一个起始位,通常为低电平,用于标识数据帧的开始。
数据传输:发送方依次发送数据位,从最高位到最低位。
每个数据位的传输时间根据所设置的波特率确定。
校验位:可选的校验位用于验证数据的正确性。
常见的校验位包括奇偶校验和循环冗余校验(CRC)等。
停止位:发送方发送一个或多个停止位,通常为高电平,用于标识数据帧的结束。
确认和响应:接收方接收到数据后,可以发送确认信号给发送方,表示数据接收成功。
发送方可以根据接收方的确认信号采取相应的控制动作。
重复以上步骤:发送方可以继续发送下一个数据帧,重复以上的通讯过程。
需要注意的是,SCI通信过程中的数据传输是单向的,即发送方发送数据,接收方接收数据。
如果需要双向通信,需要使用两条SCI通信线路,一条用于发送,一条用于接收。
SCI通信协议可以根据具体的应用需求进行定制和扩展,可以加入流控制、错误检测和纠错等功能。
以上是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 功 能
SCI,SPI,UART三种串行总线协议的区别
SCI,SPI,UART三种串行总线协议的区别SCI (串行通讯接口)模块对其进行控制。
(注:SCI 首先由Motorola 微串口微控制器而得名,SCI 另一种说法是UART 控制器)常用的许多芯片中都包含了SCI ,例如ARM 的S3C2410X 芯片内嵌了3 个串行接口控制器,而Nios等软核芯片则可以用选用UART(RS232) 的IP 对UART 进行控制。
PC 机则常用16650 UART,16750 UART 等控制串口。
--这样说来SCI 只不过属于UART里面比较特殊的一种串行通讯方式了。
确实也只是在飞思卡尔芯片上遇见过。
第一个区别当然是名字:SCI(Serial Communicate Interface:串行通信接口)SPI(Serial Peripheral Interface:串行外设接口)另外曾在一官方datasheet 里面看见这种说法:Serial Parallel Interface:串并行接口UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)第二,区别在电气信号线上:SPI 总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI 总线可以实现多个SPI 设备互相连接。
提供SPI 串行时钟的SPI 设备为SPI 主机或主设备(Master),其他设备为SPI 从机或从设备(Slave)。
主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
如果用通用IO 口模拟SPI 总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
UART 总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16 倍)、UART 接收器、UART 发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
DSP-12章SCI
发送:
1:置发送唤醒位为1.TXWAKE=1。 2:将任意字写入SCITXBUF以发送块的开始信号(11位)。 在块住处发送时,该字被忽略,发送11位空闲位且清TXWAKE。 3:将新地地址写入SCITXBUF。
2.地址位多处理器模式(ADD/IDLE MODE=1)
发送: 1:TXWAKE为附加数据位的1,因此置位TXWAKE(地址帧),写地址到 SCITXBUF。 2:由于TXSHF与WUT为双缓冲,第二个字标可立即写入,但TXWAKE应为0 数据帧。 接收: 1:TXWAKE为附加数据位的1,因此置位TXWAKE(地址帧) 2:若本机地址相同,则复位SLEEP,以使接收随后的数据字符。 若不同,则不复位SLEEP,其后的数据帧不会响应中断。SLEEP位必须 由用户改变。
0
1---8 校验 空闲线模式
0
1---8
地址 校验 停止
地址位模式
帧格式
SCICTL1.3
SCITL2.7
寄偶校验特性
WUT
TXBUF 发送缓冲器
TXRDY位
TXEMPTY
SCICTL2.6
TXINTENA (SCICTL2.0)
唤醒方式 选择
移位发送器
TXENA发送使能 SCICTL1.1 SCITXD
3.中断标志:
中断或查询标志:TXRDY RXRDY,RBKDT 中断允许标志:TX/INTEA RX/BRKDE INT ENA 4.波特率=SYSCLK/[(BRR+1)*8 ] =SYSCLK/16(BRR=0) 其中BRR=1—65535
5.10个寄存器:
1.控制寄存器:SCICCR:定义:字符[0-2],格式,模式选择[3] 2.控制寄存器1:SCITL1:定义:发送/接收允许[0,1].休眠[2].发送 唤醒[3].复位[5].错误中断使能[6] 3.控制寄存器2:SCITL2:定义:发送/接收中断允许[0,1]发送器状态 4.波率选择寄存器:SCIHBAVD (16位) SCILBAVD 5.状态寄存器:SCIRXST:定义:接收唤醒标志[1].错误标志[2,3,4,5] 接收器准备好[6].总错误标志位[7] 6.接收缓冲器:SCIRXBUF 7.仿真接收缓冲器:SCIRXEMU 8.发送数据缓冲器:SCITXBUF 9.优先级控制寄存器:SCIPR1
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)和通用串行总线(USB)等,这些总线在速度、物理接口要求和通信方法学上都有所不同。
本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。
由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。
目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。
微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。
这些总线在速度、物理接口要求和通信方法学上都有所不同。
本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。
为了说明方便起见,本文的阐述是基于微处理器的设计。
串行与并行相比串行相比于并行的主要优点是要求的线数较少。
例如,用在汽车工业中的LIN串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。
较少的线意味着所需要的控制器引脚较少。
集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。
相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。
另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB 板面积更大、更复杂,从而增加了硬件成本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串口调试工具软件界面
串行通信收发测试软件界面
5.4
AW60的中断源与第一个带有中断的编程实例
5.4.1 中断处理的相关基本概念
中断与异常的含义 中断服务例程ISR 中断源与中断向量表 中断优先级 可屏蔽中断与不可屏蔽中断 中断处理的一般过程
5.4.2
S08CPU的中断实现过程
读/写
收发数据 读/写
控制寄存器
设置传输格式,中 断使能
读/写
状态寄存器
只读
中断标志,发送与 接收状态
AW60的SCI模块寄存器简况
SCI波特率计算公式与SCI波特率寄存器
SCI波特率= fBUSCLK/(16×BR),其中fBUSCLK为内部总线频率
SCI数据寄存器 SCI控制寄存器
半双工(Half-duplex):数据传送也是双向的,但是在这种 传输方式中,除了地线之外,一般只有一根数据线。任何一个 时刻,只能由一方发送数据,另一方接收数据,不能同时收发。 在freescale的HCS08系列MCU中,监控模式的通信就采用这种 方式
5.1.2
RS-232总线标准
MCU引脚一般输入/输出使用TTL电平,而TTL电平的“1”和 “0”的特征电压分别为2.4V和0.4V,适用于板内数据传输。 为了使信号传输得更远,美国电子工业协会EIA(Electronic Industry Association)制订了串行物理接口标准RS-232C。 RS-232C采用负逻辑,-3V~-15V为逻辑“1”,+3V~+15V为逻 辑“0”。RS-232C最大的传输距离是30m,通信速率一般低于 20Kbps。 RS-232接口,简称“串口”,它主要用于连接具有同 样接口的室内设备。目前几乎所有计算机上的串行口都是9芯接 口。下面给出了9芯串行接口的排列位置,相应引脚含义见下表。
MAX232引脚
串行通信接口电平转换电路
MAX232芯片进行电平转换基本原理是: 发送过程:MCU的TXD(TTL电平)经过MAX232的11脚 (T1IN)送到MAX232内部,在内部TTL电平被“提升”为 232电平,通过14脚(T1OUT)发送出去 接收过程:外部232电平经过MAX232的13脚(R1IN)进入 到MAX232的内部,在内部232电平被“降低”为TTL电平, 经过12脚(R1OUT)送到MCU的RXD,进入MCU内
SCI构件单字节发送功能函数:SCISend1
SCI构件的单字节接收功能函数:SCIRe1
SCI构件的多字节发送功能函数:SCISendN
SCI构件的多字节接收功能函数:SCIReN
SCI构件的字符串接收功能函数:SCISendString
5.3.4
SCI构件的测试工程
SCI1模块首先向PC机发送字符串,然后等待接收PC机从串 口发送来的数据,若成功接收到1个数据,则立即将该数据 回发给PC机,随后继续等待接收1个数据并回发,如此循环
5.4.4
AW60的中断编程方法
CW环境下使用AW60芯片中断的步骤是:
在main.c中,依照“关总中断→开模块中断→开总中断”的顺 序打开模块中断; 在isr.c文件中,编写中断服务程序,修改中断向量表
为了方便代码移植,在Includes.h文件中做了如下定义:
#define EnableInterrupts() #define DisableInterrupts() asm("CLI") //开放总中断 asm("SEI") //禁止总中断
5.3.2
SCI构件的头文件SCI.h
头文件SCI.h中的内容可分为两个主要的部分, 它们分别是5个函数原型的声明和外设模块寄存器相 关信息的定义。前者给出了本SCI构件对上层构件或 软件所提供的接口函数,而后者则指明了本“元构 件”与具体硬件相关的信息
5.3.3 SCI构件的C语言源程序文件SCI.c SCI构件的初始化功能函数:SCIInit
SCI 控制寄存器1(SCIxC1) SCI 控制寄存器2(SCIxC2) SCI 控制寄存器3(SCIxC3)
SCI状态寄存器
SCI状态寄存器1(SCIxS1) SCI状态寄存器2(SCIxS2)
5.3 AW60的SCI构件设计与测试
5.3.1 SCI构件设计概述
以SCI的初始化、接收和发送三种基本操作为例,来说明实现构件 化的全过程
SCI初始化: void SCIInit(uint8 SCINo, uint8 sysclk, uint16 baud) 通过其中一个串口发送一个字节: void SCISend1(uint8 SCINo, uint8 ch) 通过其中一个串口接收单个字节: uint8 SCIRe1(uint8 SCINo, uint8 *p) 通过其中一个串口发送N个字节: void SCISendN(uint8 SCINo, uint8 n, uint8 ch[]) 通过其中一个串口接收N个字节: uint8 SCIReN(uint8 SCINo, uint8 n, uint8 ch[])
串行通信的传输方式
单工(Simplex):数据传送是单向的,一端为发送端,另一 端为接收端。这种传输方式中,除了地线之外,只要一根数据 线就可以了。有线广播就是单工的 全双工(Full-duplex):数据传送是双向的,且可以同时接 收与发送数据。这种传输方式中,除了地线之外,需要两根数 据线,站在任何一端的角度看,一根为发送线,另一根为接收 线。一般情况下,MCU的异步串行通信接口均是全双工的
接到9芯接口的2脚RXD 接到9芯接口的3脚TXD
MAX232芯片输入输出引脚分类与基本接法
5.1.4
串行通信编程模型
从基本原理角度看,串行通信接口SCI的主要功能是:接收 时,把外部的单线输入的数据变成一个字节的并行数据送入MCU 内部;发送时,把需要发送的一个字节的并行数据转换为单线 输出
接受引脚 RxD 发送引脚 TxD
5.1.3
TTL电平到RS-232电平转换电路
具有SCI接口的MCU,一般具有发送引脚(TxD)与接收引脚 (RxD),不同公司或不同系列的MCU,使用的引脚缩写名可能不 一致,但含义相同。SCI的外围硬件电路,主要目的是将MCU的 发送引脚TxD与接收引脚RxD的TTL电平,通过RS-232电平转换 芯片转换为RS-232电平。下图给出一个基本SCI电平转换电路 及芯片MAX232引脚图
第5章 串行通信接口SCI
主要内容 5.1 异步串行通信的通用基础知识 5.2 AW60的SCI模块的编程结构 5.3 AW60的SCI构件设计与测试 5.4 AW60的中断源与第一个带有中断的编程 实例
5.1
异步串行通信的通用基础知识
5.1.1 串行通信的基本概念 异步串行通信的格式 SCI(standard non-return-zero mark/space data format) “标准不归零传号/空号数据格式”通常采用NRZ 数据格式.“不归零”的最初含义是:用正、负电平表示 二进制值,不使用零电平。“mark/space”即“传号/空 号”分别是表示两种状态的物理名称,逻辑名称记为 “1/0”。下图给出了8位数据、无校验情况的传送格式
上图为9芯串行接口排列
引脚号 1 2 3 4 5 功能 接收线信号检测(载波检 测DCD) 接收数据线(RXD) 发送数据线(TXD) 数据终端准备就绪(DTR) 信号地(SG) 引脚号 6 7 8 9 功能 数据通信设备准备就 绪(DSR) 请求发送(RTS) 允许发送(CTS) 振铃指示
9芯串行接口引脚含义表
AW60的中断编程的可概括为下述3个步骤:
新建(或者复制)一个isr.c文件,并加入工程中 定义中断向量表(复制isr.c的应修改中断向量表) 定义ISR并在中断向量表中填入相应ISR的名称
5.4.5
AW60的中断编程示例
以SCI1接收中断为例,实现以下功能:主程序每隔1秒 让SCI1模块向PC机发送用于握手的字符串“Hello! World!”;同时,串口等待接收从PC机发来的数据,一旦接 到数据,马上将该数据回发给PC机。串口接收程序使用中断 来实现,中断处理程序执行完毕后,又回到主程序,继续每 隔1秒钟向PC机发送一遍“Hello! World!”
串行通信数据格式
串行通信的波特率 波特率单位是位/秒,记为bps。通常情况下,波特率的单位 可以省略。通常使用的波特率有300、600、900、1200、1800、 2400、4800、9600、19200、38400、57600、115200、128000 等 奇偶校验 字符奇偶校验检查(character parity checking)称为垂直 冗余检查( vertical redundancy checking,VRC),它是每 个字符增加一个额外位使字符中“1”的个数为奇数或偶数。 奇校验:如果字符数据位中“1”的数目是偶数,校验位应为 “1”,如果“1”的数目是奇数,校验位应为“0”。 偶校验:如果字符数据位中“1”的数目是偶数,则校验位应 为“0”,如果是奇数则为“1”
接受移位寄存器
发送移位寄存 器
SCI数据寄存器 MCU内部总线
SCI控制寄 存器
SCI状态 寄存器
SCI波特率 寄存器
5.2
AW60的SCI模块的编程结构
从程序员角度看,涉及SCI的有8个8位寄存器,其中2个波特 率寄存器,1个数据寄存器,3个控制寄存器,2个状态寄存器, 只要理解和掌握这8个寄存器的用法,就可以进行SCI编程
堆栈的使用 S08CPU的中断过程的详细说明 中断的关闭与开启方法 中断的处理过程一般为: 关中断、保护现场、 执行中断服务程序、 恢复现场、开中断等
中断过程CPU中寄存器进出栈情况