第七章串行通信接口SCI

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1嵌入式系统设计原理与应用DesignandapplicationofembeddedsystembasedonMCU第7章串行通信接口SCI孙文义wenyisun@126.com东北大学秦皇岛分校控制工程学院2014年3月2提纲异步串行通信的基础知识电平转换电路与SCI通用编程原理XS128SCI模块寄存器串行口初始化与收发编程的基本方法串行通信通用函数与测试实例有关串行通信编程的进一步讨论3异步串行通信的基础知识1.异步串行通信的格式(NRZ)第0位第1位第2位第3位第4位第5位第6位第7位停止位开始位2.串行通信的波特率定义:每秒内传送的位数。单位:b/s或bps常用:1200bps、4800bps、9600bps……43.奇偶校验奇校验:校验位为0或1,使得1的数目是奇数偶校验:校验位为0或1,使得1的数目是偶数4.串行通信的传输方式单工:1根数据线全双工:2根数据线半双工:1根数据线5RS-232C总线标准1.采用负逻辑逻辑“1”:-15V~-3V逻辑“0”:+3V~+15V2.传输距离≤30m,通信速率≤20Kbps3.接口9芯、25芯地线、发送数据线、接收数据线6+5V232电平R1INT1OUTMAX232CPE16151413121110912345678+5VGND1µF×5+TTL电平转为232电平++V1++TTL电平T1INR1OUT电平转换芯片MAX2327SCI的基本编程原理SCI数据寄存器MCU的内部总线(InternalBus)接收移位寄存器15SPH15H87X0707发送移位寄存器接收引脚RxD发送引脚TxDSCI控制寄存器SCI状态寄存器SCI波特率寄存器8SCI的主要功能是:接收时,把外部的单线输入的数据变成一个字节的并行数据送入MCU内部;发送时,把需要发送的一个字节的并行数据转换为单线输出。91011根据波特率设置寄存器的公式:BR=fBUS/(16×Bt)举例:总线频率fBUS=19.6608MHz,定义波特率Bt=9600(针对SCI0)SCI0BDL=0x80;//须先给低8位赋值SCI0BDH=0x00;//再给高5位赋值12缩写:SCICR1位定义:数据位D7D6D5D4D3D2D1D0定义LOOPSSCISWAIRSRCMWAKEILTPEPT复位00000000SCICR2控制寄存器213举例:设置允许SCI、正常码输出、8位数据、无校验允许发送,允许接收,允许接收中断SCI0CR1=0x00;SCI0CR2=0x2C;14SCISR1状态寄存器1SCISR2状态寄存器215SCIDRH/L数据寄存器16设置SCI波特率寄存器设置SCI控制寄存器1设置SCI控制寄存器2初始化过程17查询方式发送接收一个字符发送数据可以发送数据吗?是否接收数据可以接收数据吗?是否18voidSCI_Init(void){SCI0BD=BUS_FREQUENCY/BAUDRATE;SCI0CR1=0X00;SCI0CR2=0X2C;}19voidSCI_Transmit(bytedata){while(!SCI0SR1_TDRE);//等待发送缓冲区空SCI0DRL=data;}20voidSCI_Receive(byte*data){*data=SCI0DRL;}21#pragmaCODE_SEG__NEAR_SEGNON_BANKEDinterruptvoidSCI_Int(void){//Receiverdataregisterfullinterruptif(SCI0SR1_RDRF){SCI_IntRx();}//Transmitdataregisteremptyinterruptif(SCI0SR1_TDRE){}//Transmitcompleteinterruptif(SCI0SR1_TC){}}#pragmaCODE_SEGDEFAULT

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功