Download presentation
Presentation is loading. Please wait.
1
第8章 SCI/SPI串行通信模块 并行---多位同时传输。速度快,距离近,占引脚多,抗干扰弱
MCU与外设进行数据交换称为通信,方法: 并行---多位同时传输。速度快,距离近,占引脚多,抗干扰弱 串行---逐位顺序传输。速度慢,距离远,占引脚少,抗干扰强 串行通信须遵守通信协议 嵌入式系统中,串行通信------一般特指SCI与RS232芯片连接的通信 但还有众多串行通信方式 Freescale MCU 通常集成: SCI---Serial Communication Interface SPI---Serial Peripheral Interface (Motorola推出) CAN---Control Area Network (Motorola推出) I2C---Inter Integrated Circuit (philips推出) LIN---Local Interconnect Network (Motorola推出) USB---Universal Serial Bus 重庆大学通信工程学院 任勇
2
8.1.1 SCI串行通信规范 2.串行通信的波特率 3.奇偶校验 4.串行通信的传输方式
SCI串行通信---异步通信,最常用、最经典;SCI基本概念: 1、异步串行通信的格式(NRZ,8位或9位,异步通信:每一数据块的字符以起始位“0”表示开始;停止位 “1”表示结束) 2.串行通信的波特率 定义:每秒内传送的位数 单位:b/s或bps 常用:1200bps、4800bps、9600bps、19200bps…… 3.奇偶校验 奇校验:校验位为0或1,使得帧数据中1的数目是奇数 偶校验:校验位为0或1,使得帧数据中1的数目是偶数 4.串行通信的传输方式 单工:1根数据线 全双工:2根数据线 (常用) 半双工:1根数据线 TXD RXD MCU GND 重庆大学通信工程学院 任勇
3
6. SCI的电平转换电路(MCU与MCU之间无需)
5. RS-232C串行通信标准 采用负逻辑:逻辑“1”:-15V~-3V ;逻辑“0”:+3V~+15V 传输距离≤30m,通信速率≤20Kbps 接口:9芯;常用3线:地(GND)、发送数据(TXD)、接收数据(RXD) 6. SCI的电平转换电路(MCU与MCU之间无需) 7. SCI通信的基本工作原理 接收时,把外部单线输入的串行数据变成1个字节的并行数据送入MCU 发送时,把需要发送的1个字节的并行数据转换为串行数据单线输出 MCU与PC机串行通信电路 重庆大学通信工程学院 任勇
4
S12XS128 集成2个SCI串行通信模块,内部结构如图8-4;特点:
S12(X) SCI串行通信接口的功能与设置 S12XS128 集成2个SCI串行通信模块,内部结构如图8-4;特点: 双线全双工串行标准NRZ格式 可硬件自动生成奇偶校验位 独立的波特率产生逻辑,13位波特率设置 8位或9位数据格式 独立的发送器和接收器允许控制位 中断驱动机制,方便调试 可监视发送器的输出,进行通信自诊断 SCI模块引脚复用:SCI0(RXD,TXD) PS0,PS1 SCI1(RXD,TXD) PS2,PS3 重庆大学通信工程学院 任勇
5
(1)SCI波特率寄存器---SCIxBDH、SCIxBDL
(共16位,13位有效) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 \ SBR12 SBR11 SBR10 SBR9 SBR8 高8位SCIBDH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 SBR7 SBR6 SBR5 SBR4 SBR3 SBR2 SBR1 SBR0 低8位SCIBDL 波特率计算公式:波特率=总线频率/(16xBR),编程时按16位送数,如: LDX #13 STX SCI0BD ; 2MHz/(16x13)=9600bps 重庆大学通信工程学院 任勇
6
(2) SCI控制寄存器---SCIxCR1、SCIxCR2
(3) SCI状态寄存器---SCIxSR1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 LOOPS SCISWA RSRC M WAKE ILT PE PT SCICR1 举例:设置允许SCI、正常码输出、8位数据、无奇偶校验 SCI0CR1=0x00; Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TIE TCIE RIE ILIE TE RE RWU SBK SCICR2 举例:设置禁止中断、允许发送、允许接收,查询方式收发 SCI0CR2=0x0C; Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TDRE TC RDRF IDLE OR NF FE PF 常用: TDRE:发送寄存器空标志。1=可以发送数据;0=不可以发送数据,需等待 RDRF:接收数据满标志。 1=可以取出数据;0=不可以取出数据,需等待 重庆大学通信工程学院 任勇
7
(4) SCI数据寄存器---SCIxDRH、SCIxDRL
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 R8 T8 \ 高位SCIDRH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 R7/T7 R6/T6 R5/T5 R4/T4 R3/T3 R2/T2 R1/T1 R0/T0 低位SCIDRL R8: 接收位8。写无效,9位数据模式时,该位是从串行数据流中接收的第9位 T8: 发送位8。可读写,9位数据模式时,该位是送到串行数据流的第9位 R7~R0:接收数据位7~0。 T7~T0:发送数据位7~0。 注:无校验位时,只使用低位SCIxDRL (即SCI0DRL或SCI1DRL) 重庆大学通信工程学院 任勇
8
2、发送数据:先判断是否可以发送数据,可以时再发送 3、接收数据:先判断是否可以接收数据,可以时再接收
SCI串行通信接口的应用程序 基本编制方法: 1、初始化:设置波特率、设置2个控制寄存器 2、发送数据:先判断是否可以发送数据,可以时再发送 3、接收数据:先判断是否可以接收数据,可以时再接收 【实例】查询方式的SCI串行口收发数据。(可连接PC机) 思考:可能的问题? 循环中检测,消耗CPU 改造为中断方式接收 重庆大学通信工程学院 任勇
9
【例8-2】MCU中断响应SCI接收,将接收到的数据依次存入内存中,当接收到一组数据后通过SCI发送回送应答码及所接收数据。
fBus=8MHz。SCI双方通信约定:19200bps波特率、8位数据、无校验位。 重庆大学通信工程学院 任勇
10
SPI(Serial Peripheral Interface)---串行外设接口,一种同步串行通信系统,即收、发双方共享同一个时钟信号。
连接信号线: 1个时钟(SCK) 2个数据信号(MISO,MOSI) 1个从机选择信号(SS) 重庆大学通信工程学院 任勇
11
8位移位寄存器、时钟控制逻辑、引脚控制逻辑、SPI控制逻辑、分频器、波特率寄存器、状态寄存器、SPI控制寄存器。
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复用) MISO (Master In / Slave Out):主机入/从机出。 MOSI (Master Out / Slave In ):主机出/从机入。 SCK (Serial Clock):同步串行时钟。做从机时为输入,主机时输出 SS (Slave Select):从机选择。做主机时须接高;做从机时低选通 重庆大学通信工程学院 任勇
12
SPI工作模式 3种: 主机模式 从机模式 双工模式 SPI寄存器 地址 寄存器名称与缩写 访问 权限 基本功能 SPI0 SPI1
$00D8 $00F0 控制寄存器1(SPICR1) 读/写 设置SPI使能、中断、主从模式 $00D9 $00F1 控制寄存器2(SPICR2) 设置工作模式 $00DA $00F2 波特率寄存器(SPIBR) 设置波特率 $00DB $00F3 状态寄存器(SPISR) 只读 各个状态、标志位 $00CD $00F5 数据寄存器(SPIDR) 收发的数据 注:由于有两个串行外设接口(SPI0/SPI1),编程使用时, 寄存器名称中SPI改为SPIx,x=0,1。 重庆大学通信工程学院 任勇
13
SPI寄存器具体定义见书,不确定时用默认;用时查对。 编程基本方法: 1、初始化 2、发送或接收1个字节
编程基本方法: 1、初始化 2、发送或接收1个字节 【例8-2】SPI输出控制的跑马灯。(74LS164:串入并出) 重庆大学通信工程学院 任勇
14
使用SPI,节省MCU的引脚,但须增加外接移位寄存器。
【例8-3】SPI输入的开关检测。(74LS165:并入串出) 程序略… 重庆大学通信工程学院 任勇
15
参考程序片段: SPI接口还方便于:对一些具有SPI接口能力的芯片可以直接连接通信,如D/A转换芯片TLC5615、语音芯片ISD1760等。 重庆大学通信工程学院 任勇
16
本章习题: SCI通信接口有哪些引脚,分别与哪个I/O引脚复用?
汇编语言编程:MCU在接受到命令字$01后,将起始地址在$2000的16个8位数据加奇校验位发送出去。波特率要求4800bps,MCU总线频率为2MHz。 汇编语言编程:中断引发接收的SCI接收与发送。波特率要求9600bps,MCU总线频率为8MHz。 SPI通信接口有哪些引脚,分别是什么功用? 试编程:MCU通过SPI连接74LS165,完成外接开关状态检测。 重庆大学通信工程学院 任勇
Similar presentations