单片机原理及应用:第11章 S12串行通信模块_第1页
单片机原理及应用:第11章 S12串行通信模块_第2页
单片机原理及应用:第11章 S12串行通信模块_第3页
单片机原理及应用:第11章 S12串行通信模块_第4页
单片机原理及应用:第11章 S12串行通信模块_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章S12串行通信模块

MCU与外设进行数据交换称为通信,方法:并行---多位同时传输。速度快,距离近,占引脚多串行---逐位顺序传输。速度慢,距离远,占引脚少串行通信须遵守通信协议,S12集成:SPI、SCI、CAN、I2C等

11.1SPI串行通信接口

SPI(SerialPeripheralInterface)---串行外设接口,一种同步串行通信系统,即收、发双方共享同一个时钟信号。SPI通信原理:1个时钟(SCK)2个数据信号(MISO,MOSI)1个从机选择信号(SS)重庆大学通信工程学院任勇SPI模块的内部组成

如图11-1,主要包括:

8位移位寄存器、时钟控制逻辑、引脚控制逻辑、SPI控制逻辑、分频器、波特率寄存器、状态寄存器、SPI控制寄存器。

其中:总线时钟经波特率寄存器进行分频选择后作为SPI时钟源,核心是8位移位寄存器,在SCK的作用下,数据寄存器的数据从8位移位寄存器移出或移入。控制寄存器负责控制SPI工作方式,状态寄存器负责记录SPI工作状态。SPI模块的外部引脚

当SPI模块使能时,S口的PS7~PS4变为SPI的MISO、MOSI、SS、SCK引脚:MISO(MasterIn/SlaveOut):主机入/从机出。MOSI(MasterOut/SlaveIn):主机出/从机入。SS(SlaveSelect):从机选择。做主机时须接高;做从机时低选通SCK(SerialClock):同步串行时钟。做从机时为输入,主机时输出重庆大学通信工程学院任勇11.1.1SPI工作模式

3种:主机模式从机模式双工模式11.1.2SPI寄存器地址寄存器名称与缩写访问权限基本功能SPI0SPI1$00D8$00F0控制寄存器1(SPICR1)读/写设置传输格式、中断使能$00D9$00F1控制寄存器2(SPICR2)只读中断标志、发送与接收状态$00DA$00F2波特率寄存器(SPIBR)读/写设置波特率$00DB$00F3状态寄存器(SPISR)只读读取各个状态标记位$00CD$00F5数据寄存器(SPIDR)读/写收发的数据注:由于有两个串行外设接口(SPI0/SPI1),编程使用时,寄存器名称中SPI改为SPIx,x=0,1。重庆大学通信工程学院任勇

SPI寄存器具体定义见书,不确定时用默认;用时查对。编程基本方法:

1、初始化2、发送或接收1个字节

【实例】SPI输出控制的跑马灯。(74LS164:串入并出)重庆大学通信工程学院任勇

使用SPI,节省MCU的引脚,但须增加外接移位寄存器。【实例】SPI输入的开关检测。(74LS165:并入串出)SPI接口还方便于:对一些具有SPI接口能力的芯片可以直接连接通信,如AD采集芯片TLC2543。程序略…重庆大学通信工程学院任勇11.2SCI串行通信接口

SCI串行通信---异步通信,最常用;SCI基本概念:1、异步串行通信的格式(NRZ,8位或9位,异步通信:每一数据块的字符以起始位“0”表示开始;停止位“1”表示结束)2.串行通信的波特率定义:每秒内传送的位数单位:b/s或bps常用:1200bps、4800bps、9600bps……3.奇偶校验奇校验:校验位为0或1,使得1的数目是奇数偶校验:校验位为0或1,使得1的数目是偶数4.串行通信的传输方式单工:1根数据线全双工:2根数据线;常用半双工:1根数据线

重庆大学通信工程学院任勇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机串行通信电路重庆大学通信工程学院任勇11.2.1SCI串行通信接口的特点

S12集成了2个SCI串行通信模块,内部结构如图11-2;特点:双线全双工串行标准NRZ格式硬件自动生成奇偶校验位独立的波特率产生逻辑独立的发送器和接收器允许控制位中断驱动机制,方便调试可监视发送器的输出,进行通信自诊断11.2.2SCI的寄存器设置

(1)SCI波特率寄存器---SCIxBDH、SCIxBDL(共16位)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0\\\SBR12SBR11SBR10SBR9SBR8高8位SCIBDHBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SBR7SBR6SBR5SBR4SBR3SBR2SBR1SBR0低8位SCIBDL波特率计算公式:波特率=总线频率/(16xBR),编程时按16位送数,如:

LDX#13STXSCI0BD;2MHz/(16x13)=9600bps重庆大学通信工程学院任勇(2)SCI控制寄存器---SCIxCR1、SCIxCR2(3)SCI状态寄存器---SCIxSR1Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0LOOPSSCISWARSRCMWAKEILTPEPTSCICR1Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TIETCIERIEILIETERERWUSBKSCICR2举例:设置允许SCI、正常码输出、8位数据、无奇偶校验

SCI0CR1=Ox00;举例:设置禁止中断、允许发送、允许接收,查询方式收发

SCI0CR2=0x0C;Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TDRETCRDRFIDLEORNFFEPF常用:TDRE:发送寄存器空标志。1=可以发送数据;0=不可以发送数据,需等待

RDRF:接收数据满标志。1=可以取出数据;0=不可以取出数据,需等待重庆大学通信工程学院任勇(4)SCI数据寄存器---SCIxDRH、SCIxDRLBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0R8T8\\\\\\高位SCIDRHBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0R7/T7R6/T6R5/T5R4/T4R3/T3R2/T2R1/T1R0/T0低位SCIDRLR8:

接收位8。写无效,9位数据模式时,该位是从串行数据流中接收的第9位T8:

发送位8。可读写,9位数据模式时,该位是送到串行数据流的第9位R7~R0:接收数据位7~0。T7~T0:发送数据位7~0。

注:无校验位时,只使用低位SCIxDRL

(SCI0DRL或SCI1DRL)重庆大学通信工程学院任勇SCI串行通信接口的应用程序

基本编制方法:

1、初始化:设置波特率、设置2个控制寄存器

2、发送数据:先判断是否可以发送数据,可以时再发送

3、接收数据:先判断是否可以接收数据,可以时再接收【实例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论