《第七章串行通信接口SCI.ppt》由会员分享,可在线阅读,更多相关《第七章串行通信接口SCI.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式系统设计原理与应用嵌入式系统设计原理与应用Design and application of embedded system based on MCU 第第7 7章章 串行通信接口串行通信接口SCISCI孙文义孙文义 东北大学秦皇岛分校控制工程学院东北大学秦皇岛分校控制工程学院20142014年年3 3月月1提纲提纲异步串行通信的基础知识电平转换电路与SCI通用编程原理 XS128 SCI模块寄存器串行口初始化与收发编程的基本方法串行通信通用函数与测试实例有关串行通信编程的进一步讨论2异步串行通信的基础知识1.异步串行通信的格式异步串行通信的格式(NRZ)2.串行通信的波特率串行通信的波
2、特率定义定义:每秒内传送的位数。每秒内传送的位数。单位单位:b/s或或bps常用常用:1200bps、4800bps、9600bps33.奇偶校验奇偶校验n奇校验:校验位为奇校验:校验位为0或或1,使得,使得1的数目是奇数的数目是奇数n偶校验:校验位为偶校验:校验位为0或或1,使得,使得1的数目是偶数的数目是偶数4.串行通信的传输方式串行通信的传输方式n 单工:单工:1根数据线根数据线n 全双工:全双工:2根数据线根数据线n 半双工:半双工:1根数据线根数据线4RS-232C总线标准总线标准1.采用负逻辑采用负逻辑n逻辑逻辑“1”:-15V-3V n逻辑逻辑“0”:+3V+15V 2.传输距离
3、传输距离30m,通信速率,通信速率20Kbps 3.接口接口n9芯、芯、25芯芯n地线、发送数据线、接收数据线地线、发送数据线、接收数据线5电平转换芯片电平转换芯片MAX232MAX2326SCI的基本编程原理的基本编程原理7SCI的主要功能是:n 接收时,把外部的单线输入的数据变成一个字节的并行数据送入MCU内部;n 发送时,把需要发送的一个字节的并行数据转换为单线输出。8910根据波特率设置寄存器的公式:根据波特率设置寄存器的公式:BR=fBUS/(16Bt)举例:总线频率举例:总线频率fBUS19.6608MHz,定义波特率定义波特率Bt=9600(针对针对SCI0)SCI0BDL=0
4、x80;/须先给低须先给低8位赋值位赋值SCI0BDH=0 x00;/再给高再给高5位赋值位赋值11缩写:缩写:SCICR1位定义:位定义:数据位数据位D7D6D5D4D3D2D1D0定定 义义LOOPSSCISWAIRSRCMWAKEILTPEPT复复 位位00000000SCICR2 控制寄存器212举例:设置允许举例:设置允许SCI、正常码输出、正常码输出、8位数据、无校验位数据、无校验 允许发送,允许接收,允许接收中断允许发送,允许接收,允许接收中断 SCI0CR1=0 x00;SCI0CR2=0 x2C;13SCISR1 状态寄存器1SCISR2 状态寄存器214SCIDRH/L 数
5、据寄存器15设置设置SCI波特率寄存器波特率寄存器设置设置SCI控制寄存器控制寄存器1设置设置SCISCI控制寄存器控制寄存器2 2初始化过程16查询方式发送接收一个字符发送数据发送数据可以发送可以发送数据吗?数据吗?是是否否接收数据接收数据可以接收可以接收数据吗?数据吗?是是否否17void SCI_Init(void)SCI0BD=BUS_FREQUENCY/BAUDRATE;SCI0CR1=0X00;SCI0CR2=0X2C;18void SCI_Transmit(byte data)while(!SCI0SR1_TDRE);/等待发送缓冲区空 SCI0DRL=data;19void SCI_Receive(byte*data)*data=SCI0DRL;20#pragma CODE_SEG _NEAR_SEG NON_BANKEDinterrupt 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 DEFAULT2122