串行通信接口SCI与SPI
串行通信接口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时,发送器的输出作为接收器的输入。
DSPF28335---SPI模块
DSPF28335---SPI模块DSPF28335--串行外设接口(SPI模块)问题1:什么是串行外设接口(SPI)?答:SPI(Serial Peripheral Interface)接口是高速同步串行I/O接口。
问题2:串行通信接口(SCI)和串行外设接口(SPI)主要区别?答:(1)SPI采用同步通讯方式,除了发送和接受两根线之外,还需要一根同步时钟线;SCI采用异步通信方式,只需要发送和接收两根线,通讯双方微处理器使用各自的时钟。
(2)SPI适用于板上短距离高速通讯;SCI适用于对另外的外设长距离的低速率通讯,在默认状态下,其最高通讯速率只相当于SPI通讯速率的1/4。
(3)SPI的时钟可反映在外在的同步时钟线上;SCI的时钟时隐藏的。
问题3:TMS320F28335有几个SPI接口模块?答:有一个专门的SPI模块,另外两个McBSP也可以配置为SPI接口。
问题4:F28335SPI接口由几组寄存器控制?答:12组,位于控制寄存器帧0x7040h开始的位置。
问题5:SPI FIFO模式下如何对传输和接收16级FIFO进行操作?直接对SPITXBUF寄存器进行赋值以传输数据。
例如:SpiaRegs.SPITXBUF=sdata[i],此操作可理解为:首先使TXFIFO头指针加1,然后把值写入TXFIFO头指针指向的位置。
如果当前没有一个激活的传输过程时,对SPITXBUF的写入会激活一个传输过程。
直接读取SPIRXBUF寄存器的值以接收数据。
例如:rdata[i]=SpiaRegs.SPIRXBUF,此操作可理解为:首先从RXFIFO 头指针处读取1个字符,然后使RXFIFO头指针减1。
问题6:SPI FIFO模式下传输和接收中断何时产生?答:是在数据传输或接收结束后,再判断传输和接收FIFO队列中有多少数据(SPIFFTX.TXFFST(4-0)和SPIFFRX.RXFFST(4-0)的值)。
数字信号处理 串行通信接口(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,发送一个
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。
几种最常用的串行数据传输总线-SPI
⼏种最常⽤的串⾏数据传输总线-SPI串⾏数据总线由于占⽤较少的管脚被⼴泛应⽤在MCU和外设的连接中,在过去的⼏⼗年⾥,有三种最常⽤的多线串⾏数据传输格式SPI、I2C和UART。
这3种串⾏总线的主要区别:SPI - Serial Peripheral Interface(串⾏外设接⼝),突出了外设,也就有了主(Master - 控制器)和从(Slave - 外设)之分,在总线中也就只有⼀个“主⼈”,其它都是处于服从的位置,也就是Slave,它是⼀种有时钟信号的同步串⾏总线,从器件的寻址是靠专⽤的⽚选信号线SS来实现的;I2C - Inter-Integrated Circuits(集成电路之间的连接),没有突出主次,也就是所有挂在总线上的器件都是平等的,它也是⼀种有时钟信号的同步串⾏总线,每个器件都有⾃⼰的地址,两根信号线都需要通过电阻上拉;UART - universal asynchronous receiver/transmitter(通⽤异步收/发),顾名思义,它是异步串⾏总线,传输的信号中没有专⽤的时钟信号线。
由于很多MCU、外设芯⽚为了节省管脚,都采⽤了管脚功能复⽤的⽅式,同⼀个管脚既可以⽤于SPI,也可以⽤于I2C,根据具体的器件连接⽅式进⾏选⽤。
当器件的管脚配置为I2C的时候,要记住在I2C的两根信号线(SCL、SDA)上⼀定要有上拉电阻,SPI则不需要。
今天我们就先来说说SPI:SPI(Serial Peripheral Interface - 串⾏外设接⼝)是⼀种⽤于短距离通信(主要是嵌⼊式系统中)的同步串⾏通信接⼝规范,这种接⼝由Motorola发明,已经成了⼀种事实标准。
⼴泛⽤于各种MCU处理器中,同传感器,串⾏ADC、DAC、存储器、SD卡以及LCD等进⾏数据连接。
⼏乎所有的微处理器/微控制器都有SPI/I2C和UART接⼝,⽽且不⽌⼀个SPI和I2C也被⼴泛⽤于传感器的数字接⼝连接即便FPGA也将SPI和I2C做成了硬化的IP在芯⽚内主要的信号线:SPI总线由4根主要的信号线组成以实现数据在主设备(Master)和从设备(Slave)之间的全双⼯(收、发同时执⾏)同步(由时钟同步)通信:SCLK:串⾏时钟(由主设备输出),每个时钟周期将会移出⼀个新的数据位;MOSI:主设备输出⇒从设备输⼊,数据由主设备进⼊从设备,器件A上的MOSI线连接到器件B 上的MOSI线。
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公司提出的。
SPI、I2C、UART、USB串行总线协议的区别
SPI、I2C、UART、USB串行总线协议的区别SPI、I2C、UART三种串行总线协议的区别第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。
主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,看看牛人们的意见吧!wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
6.5 串行通信接口SCI模块080408
一、概述
一、概述
DSP控制器 SCI DSP 控制器SCI 接口为通用异步 控制器 SCI接口为通用异步 接收/发送(UART)接口。 接收/发送(UART)接口。
接收器和发送器双缓冲( ①接收器和发送器双缓冲(有各自的使能 和中断位) 和中断位) ②可以工作于半双工或全双工 ③有四种错误检测 ④波特率可编程
南京航空航天大学自动化学院DSP技术应用实验室 技术应用实验室 南京航空航天大学自动化学院
二、串行通信工作原理
1. 点-点通信 主从机连接方法如图示。 主从机连接方法如图示。 在时钟节拍下逐位传送数据。 在时钟节拍下逐位传送数据。 同步串行通信(SPI) 主从机时钟相同。 ① 同步串行通信(SPI):主从机时钟相同。 异步串行通信(SCI) 主从机时钟独立, ② 异步串行通信(SCI):主从机时钟独立,波 特率相同。 特率相同。 缺点: 主从机时钟相位和周期不一致时, 缺点 : 主从机时钟相位和周期不一致时 , 会 影响通信正确性。 影响通信正确性。
7052h 7053h 7054h
SCIHBAUD SCILBAUD SCICTL2
7055h 7056h 7057h 7059h 705Fh
SCIRXST SCIRXEM U SCIRXBUF SCITXBUF SCIPRI
南京航空航天大学自动化学院DSP技术应用实验室 技术应用实验室 南京航空航天大学自动化学院
南京航空航天大学自动化学院DSP技术应用实验室 技术应用实验室 南京航空航天大学自动化学院
(2)SCI控制寄存器 SCICTL1 控制寄存器1 控制寄存器
第3章 串行通信接口模块(sci)
6
计算机通信接口
7
F2812 SCI 通信模块
TX FIFO_0
TX FIFO_15SCITXBUF8TXSHF全双工
SCITXD
SCITXD
TX FIFO_0
TX FIFO_15
SCITXBUF
8
TXSHF
RXSHF
8
SCIRXBUF
4)TXRDY变高后,程序写第二个字符到SCITXBUF,随后TXRDY又变低; 5)发送完第一个字符,开始将第二个字符移位到寄存器TXSHF;
6)TXENA=0,禁止发送数据,SCI继续完成当前字符的发送;
7)第二个字符发送完成后,发送器变空,TXEMPTY=1。
CPU
SCITXBUF
TXSHF
SCITXD
1)SCI接收到一个完整的帧,并将RXSHF中的数据送SCIRXBUF, 就会产生接收器中断,同时将RXRDY置位(SCICTL2.6);
2)间断检测条件发生(在一个缺少的停止位后,SCIRX保持10 周期的低电平)。该操作将BRKDT置位,并产生中断。
19
SCI的中断(续)
3、 在接收器错误中断服务子程序中,可以检测错误条件: 1)FE:当检测不到一个期望的停止位时,帧错误标志置位; 2)OE:在前一个字符被CPU读取前,有新的字符送到 SCIRXBUF中时,置位超时错误标志,此时前一个字符被覆盖; 3)PE:当接受字符中1的个数和它的奇偶校验位之间不匹配时 (含地址位),且校验模式被使能时,奇偶校验错误标志置位。
FIFO模式下,SCITXBUF将不被使用,发送移位寄存 器TXSHF将直接从FIFO加载需要发送的数据,而且加 载数据的速度可编程。
08章 SCI&SPI串行通信
MCU与外设进行数据交换称为通信,方法: 并行---多位同时传输。速度快,距离近,占引脚多,抗干扰弱 串行---逐位顺序传输。速度慢,距离远,占引脚少,抗干扰强 串行通信须遵守通信协议
嵌入式系统中,串行通信------一般特指SCI与RS232芯片连接的通信 但还有众多串行通信方式 Freescale MCU 集成: SCI---Serial Communication Interface SPI---Serial Peripheral Interface CAN---Comtrol Area Network I2C---Inter Integrated Circuit LIN---Local Interconnect Network USB---Universal Serial Bus 等等
重庆大学通信工程学院
任勇
(2) SCI控制寄存器---SCIxCR1、SCIxCR2
SCICR1
Bit7 Bit6 Bit5 Bit4 M Bit3 WAKE Bit2 ILT Bit1 PE Bit0 PT LOOPS SCISWA RSRC
举例:设置允许SCI、正常码输出、8位数据、无奇偶校验 SCI0CR1=0x00;
连接信号线: 1个时钟(SCK)
2个数据信号(MISO,MOSI)
1个从机选择信号(SS)
重庆大学通信工程学院
任勇
S12(X) SPI模块的内部组成 如图8-5,主要包括: 8位移位寄存器、时钟控制逻辑、引脚控制逻辑、SPI控制逻 辑、分频器、波特率寄存器、状态寄存器、SPI控制寄存器。 其中:总线时钟经波特率寄存器进行分频选择后作为SPI时钟 源,核心是8位移位寄存器,在SCK的作用下,数据寄存器的 数据从8位移位寄存器移出或移入。控制寄存器负责控制SPI工 作方式,状态寄存器负责记录SPI工作状态。 SPI模块的外部引脚 当SPI模块使能时,S口的PS4~PS7变为SPI0的MISO、MOSI、 SCK 、SS引脚: (SPI1与PP0~PP3复用)
第五部分 F2812数字通信接口 SPI SCI汇总
① 串行时钟(Serial Clock,SCK)线是主机和从机之间数据传输的同步 信号。对于主机而言,SCK是时钟输出引脚;对于从机则SCK是时钟输入 引脚。在主机模式下,SCK时钟信号来源于主机(如微控制器)内部总线 时钟。如果传输数据宽度为8位,则每当主机发起一次传送时,则SCK引脚 上就会产生8个时钟周期。在主机与从机之间,数据传输发生在SCK信号的 跳变沿(如上升沿),等待数据稳定后,在另一个SCK跳变沿(如下降沿) 采集数据。
SPIIN1: CLR
MOV
RLC SETB DJNZ
C,MISO
A SCK R1,SPIIN1
;从机输出SPISO送进位C
;左移至累加器ACC ;使SCK(时钟)输出为1 ;判断是否循环8次(8位数据)
MOV
RET
SPIMRD,A
;8位数据送SPIMRD
②MCU串行输出子程序SPIOUT
将MCS-51单片机中数据发送寄存器SPIMTD 的内容传送到外设的SPISI线上的程序如下:
SI SCK CS SO
P1.0 模拟SPI的数据输出端(MOSI) P1.1 模拟SPI的SCK输出端 P1.2 模拟SPI的从机选择端(SS) P1.3 模拟SPI的数据输入端(MISO) 下面给出模拟SPI串行输入、串行输出和串行输入/输出 的3个子程序。
1. MCU串行输入子程序SPIIN
SPIOUT1:CLR SCK
SETB
DJNZ RET
SCK
R1,SPIOUT1
;使SCK(时钟)输出为1
;判是否循环8次(8位数据)
③MCU串行输入/输出子程序SPIIO
将 MCS-51 单片机数据发送寄存器 SPIMTD的内容传送到外设 的 SPI 总线的 SI 中,同时从外设的 SPI 总线的 SO 接收8 位数 据到接收寄存器SPIMRD中的程序如下:
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 发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
SCI I2C SPI
SPI总线有4根线,分别是SCK,SDO,SDI,SS,可以挂多个从设备,但是在挂多个从设备时,主设备端还需要做一个n选一的译码器,用于选择将要访问的从设备,因此,主设备上的管脚需求比较多;SPI总线在只有一个从设备时,只要用到SCK,SDO,SDI这三根线,此时选择SPI比I2C总线占优。
I2C总线只有两根线,SCL,SDA.,也可以挂多个从设备,对从设备的选择直接依靠协议完成,无需增加物理连线。
一般情况下,当一块电路板上有多个从设备时,往往选用I2C而非SPI,因为SPI增加了额外额硬件开销以及电路板走线。
I2c和SPI总线一般是读取一些PROM等从设备用。
串行通信接口SCI,主要应用在两个智能设备之间的互相通讯。
有别于SPI和I2C总线的主从模式,SCI可以是主-主模式。
SPI与SCI
SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占
用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个
(4)CS – 从设备使能信号,由主设备控制。
其中,CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位为可能。
通常,大部分人把SCI、UART与RS232混为一谈,其实他们有本质上的差别:
SCI(Serial Communication Interface)意为“串行通信接口”,
是相对于并行通信的,是串行通信技术的一种总称,最早由Motolora公司提出的。
UART(Universal Asynchronous Receiver & Transmitter)
即通用异步收发器,是串行通信的一种协议,它规定串行通信的波特率、起始/停止位、数据位、校验位等格式,以及各种异步握手信号。
RS232是串行通信的一种物理接口电气标准,规定传输介质(电缆)、收发电平等。其实,RS232、RS422、RS485等都是SCI,其中两线制
(仅RXD和TXD)的RS232与RS422和RS485的通信协议是相同的(只有波特率、起始/停止位、数据位、校验位等参数),仅传输介质和收发
主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)
、SDO(数据输出)、SCLK(时钟)、CS(片选)。
(1)SDO – 主设备数据输出,从设备数据输入;
单片机MCS串行通信接口SCI和串行外设接口SPI
《嵌入式应用技术基础教程》课件
8.1.2 RS-232C总线标准
RS-232接口,简称“串口”,
它主要用于连接具有同样接口的室内
6 78 9
设备。目前几乎所有计算机上的串行 口都是9芯接口。右图给出了9芯串 行接口的排列位置,相应引脚含义见
1 23 4 5 9芯串行接口排列
表8-1。
表8-1 9芯串行接口引脚含义表
《嵌入式应用技术基础教程》课件
第八章 串行通信接口SCI 与串行外设接口SPI
主要内容 ❖ 串行通信基本知识概要 ❖ SCI的外围硬件电路与基本编程原理 ❖ SCI模块的编程结构 ❖ 串行通信编程实例 ❖ SPI模块的编程结构及应用实例 ❖ SPI应用实例━━高位A/D扩展接口
《嵌入式应用技术基础教程》课件
8.1 串行通信基本知识概要
8.1.1 基本概念
(1)异步串行通信的格式
SCI 通 常 采 用 NRZ 数 据 格 式 , 即 : standard non-return-zero mark/space data format,译为:“标准不归零传号/空号数据格 式”。“不归零”的最初含义是:用正、负电平表示二进制值,不使 用零电平。“mark/space”即“传号/空号”分别是表示两种状态的物 理名称,逻辑名称记为“1/0”。下图给出了 8位数据、无校验情况的 传送格式。
《嵌入式应用技术基础教程》课件
(3)奇偶校验
字符奇偶校验检查(character parity checking)称为
垂直冗余检查( vertical redundancy checking,VRC),它是每个 字符增加一个额外位使字符中“1”的个数为奇数或偶数。
奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”, 如果“1”的数目是奇数,校验位应为“0”。
异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线
异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线(USB)等,这些总线在速度、物理接口要求和通信方法学上都有所不同。
本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。
由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。
目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。
微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。
这些总线在速度、物理接口要求和通信方法学上都有所不同。
本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。
为了说明方便起见,本文的阐述是基于微处理器的设计。
串行与并行相比串行相比于并行的主要优点是要求的线数较少。
例如,用在汽车工业中的LIN串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。
较少的线意味着所需要的控制器引脚较少。
集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。
相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。
另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB 板面积更大、更复杂,从而增加了硬件成本。
串行通信接口SCI与串行外设接口SPI
MC68HC908GP32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
0.1μ +5V
PLL滤波 10K 0.47μ 0.01μ
复位电3;5V
232电平
OUT IN
0.1μ +5V
TTL电平
OUT IN
10K
移位寄存器
SPI全双工主-从连接
8.5.2 SPI的寄存器
MC68HC908GP32的SPI模块有3个寄存器,它们对应的存储器 地址为$0010~$0012 。
(1)SPI数据寄存器(SPI Data Register,SPDR)
SPDR的地址是$0012。写入时,为要发送的8位数据,记为: T7~T0;读出时,为接收的8位数据,记为:R7~R0。它们的特点 与SCI数据寄存器相似。在实际内部结构上,SPDR由两个独立的数 据寄存器组成,即只能写入的发送数据寄存器和只能读出的接收数据 寄存器,它们共用一个地址。
STA SCC1
;设置允许SCI,正常码输出、8位数据、无校验
第三步:写控制字到SCI控制寄存器2(SCC2)。
LDA #%00001100
STA SCC2
;设置允许发送、允许接收,查询方式收发
(2)发送一个数据与接收一个数据
发送数据是通过判断状态寄存器SCS1的第7位(SCTE)进行 的,而接收数据是通过判断状态寄存器SCS1的第5位(SCRF)进
BRCLR 5,SCS1,* ;SCS1.5=0? 为0则等待
LDA SCDR
;SCS1.5=1,可以取出数据
返回
8.4 串行通信编程实例
8.4.1 08汇编语言串行通信子程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。 、 、 、 。
7 3
8 4
9 5
9芯串行接口排列
8.1 串行通信基本知识概要
返回
8.2 SCI的外围硬件电路与基本编程原理 的外围硬件电路与基本编程原理
8.2.1 SCI的外围硬件电路 的外围硬件电路
(1)电源供给与滤波 ) (2)晶振电路 ) (3)复位电路 ) (4)SCI电平转换电路 ) 电平转换电路
8.2 SCI的外围硬件电路与基本编程原理
表8-1 9芯串行接口引脚含义表 引脚号 1 2 3 4 5 功 能 接收线信号检测(载波检测DCD) 接收数据线(RXD) 发送数据线(TXD) 数据终端准备就绪(DTR) 信号地(SG) 引脚号 6 7 8 9 功 能 数据通信设备准备就绪(DSR) 请求发送(RTS) 清除发送 振铃指示
6 1 2
8.3 SCI模块的编程结构
控制寄存器1(SCI Control Register 1,SCC1) (2) SCI控制寄存器 ) 控制寄存器 ,
SCC1的地址是:$0013 ,定义为: 的地址是: 定义为: 的地址是 定义为
数据位 定义 复位 D7 0 D6 0 D5 0 D4 0 D3 0 D2 0 D1 0 D0 0
D2~D0 — SCR:波特率选择位(SCI Baud Rate Select Bits), ~ :波特率选择位( ), 定义波特率另一分频值,记为: ,定义如下: 定义波特率另一分频值,记为:BD,定义如下 SCR2、1、0 =000 、 、 BD = 1 001 2 010 011 100 101 110 111 4 8 16 32 64 128
8.1 串行通信基本知识概要
(4)串行通信的传输方式 )
单工( ):数据传送是单向的 单工(Simplex):数据传送是单向的,一端为发送端,另一端 ):数据传送是单向的,一端为发送端, 为接收端。这种传输方式中,除了地线之外, 为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以 有线广播就是单工的。 了。有线广播就是单工的。 全双工( ):数据传送是双向的 全双工(Full-duplex):数据传送是双向的,且可以同时接收 ):数据传送是双向的, 与发送数据。这种传输方式中,除了地线之外,需要两根数据线, 与发送数据。这种传输方式中,除了地线之外,需要两根数据线,站 在任何一端的角度看,一根为发送线,另一根为接收线。一般情况下, 在任何一端的角度看,一根为发送线,另一根为接收线。一般情况下, MCU的异步串行通信接口均是全双工的。 的异步串行通信接口均是全双工的。 的异步串行通信接口均是全双工的 半双工( ):数据传送也是双向的 半双工(Half-duplex):数据传送也是双向的,但是在这种传 ):数据传送也是双向的, 输方式中,除了地线之外,一般只有一根数据线。任何一个时刻, 输方式中,除了地线之外,一般只有一根数据线。任何一个时刻,只 能由一方发送数据,另一方接收数据,不能同时收发。 能由一方发送数据,另一方接收数据,不能同时收发。在freescale 系列MCU中,监控模式的通信就采用这种方式。 的HC08系列 系列 中 监控模式的通信就采用这种方式。
8.1 串行通信基本知识概要
8.1.2 RS-232C总线标准 总线标准
RS-232接口,简称“串口”, 接口,简称“串口” 接口 它主要用于连接具有同样接口的室 内设备。 内设备。目前几乎所有计算机上的 串行口都是9芯接口。右图给出了 串行口都是 芯接口。右图给出了9 芯接口 芯串行接口的排列位置,相应引脚 芯串行接口的排列位置, 含义见表8-1。 含义见表 。
(1)异步串行通信的格式
SCI 通 常 采 用 NRZ 数 据 格 式 , 即 : standard non-return-zero mark/space data format, 译为: “ 标准不归零传号/空号数据格 , 译为 : 标准不归零传号 空号数据格 不归零”的最初含义是:用正、负电平表示二进制值, 式”。“不归零”的最初含义是:用正、负电平表示二进制值,不使 用零电平。 空号” 用零电平。“mark/space”即“传号 空号”分别是表示两种状态的物 即 传号/空号 理名称,逻辑名称记为“ 位数据、 理名称,逻辑名称记为“1/0”。下图给出了 8位数据、无校验情况的 。 位数据 传送格式。 传送格式。
串行通信接口SCI 第八章 串行通信接口 与串行外设接口SPI 与串行外设接口
主要内容 串行通信基本知识概要 SCI的外围硬件电路与基本编程原理 SCI模块的编程结构 串行通信编程实例 SPI模块的编程结构及应用实例 SPI应用实例━━高位A/D扩展接口
8.1 串行通信基本知识概要
8.1.1 基本概念
接收器 允许位
发送终止位
接收中断 允许位
发送器允许位
接收器唤 醒位
8.3 SCI模块的编程结构
控制寄存器3(SCI Control Register 3,SCC3) (4) SCI控制寄存器 ) 控制寄存器 ,
SCC3的地址是:$0015 ,定义为: 的地址是: 定义为: 的地址是 定义为
数据位 定义 复位 D7 R8 0 D6 T8 0 D5 0 D4 0 D3 0 D2 NEIE 0 D1 FEIE 0 D0 PEIE 0
8.1 串行通信基本知识概要
8.1.2 RS-232C总线标准 总线标准
MCU引脚一般输入 输出使用 引脚一般输入/输出使用 电平, 电平的“ 引脚一般输入 输出使用TTL电平,而TTL电平的“1” 电平 电平的 的特征电压分别为2.4V和0.4V,适用于板内数据传输。为 和“0”的特征电压分别为 的特征电压分别为 和 ,适用于板内数据传输。 了使信号传输得更远,美国电子工业协会 了使信号传输得更远,美国电子工业协会EIA(Electronic ( Industry Association) 制订了串行物理接口标准 ) 制订了串行物理接口标准RS-232C。 。 RS-232C采用负逻辑,-3V~-15V为逻辑“1”,+3V~+15V为逻 采用负逻辑, ~ 为逻辑“ , ~ 为逻 采用负逻辑 为逻辑 最大的传输距离是30m,通信速率一般低于 辑“0”。RS-232C最大的传输距离是 。 最大的传输距离是 , 20Kbps。 。
DMARE DMATE ORIE
发送位8 发送位 接收位8 接收位
DMA发送 发送 允许位
接收器噪 声错误中 断允许位
接收器奇偶错 误中断允许位 接收器帧 错误中断 允许位
DMA接收 接收 允许位
接收器溢出 中断允许位
8.3 SCI模块的编程结构
状态寄存器1(SCI Status Register 1,SCS1 ) (5) SCI状态寄存器 ) 状态寄存器 ,
8.2 SCI的外围硬件电路与基本编程原理
8.2.2 SCI的基本编程原理 的基本编程原理
接收引脚 RxD 接收移位寄存器 发送引脚 TxD 发送移位寄存器
SCI 数据寄存器
Bus) MCU 的 内 部 总 线 (Internal Bus)
SCI 控制寄存器
SCI状态寄存器 状态寄存器 SCI编程模型
为串行通信时钟源频率, 设fSCI为串行通信时钟源频率,fSCI= fBUS或CGMXCLK,取决于 为串行通信时钟源频率 或 , CONFIG2的SCIBDSRC,一般设定 的 ,一般设定SCIBDSRC=1,SCI用内部总线时 , 用内部总线时 钟,则fSCI= fBUS,则波特率的定义公式为: ,则波特率的定义公式为: Bt=fBUS /(64×PD×BD) = ( × × )
8.1 串行通信基本知识概要
(3)奇偶校验 ) 字符奇偶校验检查( 字符奇偶校验检查(character parity checking)称为 )
垂直冗余检查( ),它是每 垂直冗余检查( vertical redundancy checking,VRC),它是每 , ), 个字符增加一个额外位使字符中“ 的个数为奇数或偶数 的个数为奇数或偶数。 个字符增加一个额外位使字符中“1”的个数为奇数或偶数。 奇校验:如果字符数据位中“ 的数目是偶数 校验位应为“ , 的数目是偶数, 奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”, 如果“ 的数目是奇数 校验位应为“ 。 的数目是奇数, 如果“1”的数目是奇数,校验位应为“0”。 偶校验:如果字符数据位中“ 的数目是偶数 的数目是偶数, 偶校验:如果字符数据位中“1”的数目是偶数,则校验位应为 “0”,如果是奇数则为“1”。 ,如果是奇数则为“ 。