串行通信原理与应用.ppt

串行通信原理与应用.ppt

ID:51495352

大小:1.26 MB

页数:33页

时间:2020-03-24

串行通信原理与应用.ppt_第1页
串行通信原理与应用.ppt_第2页
串行通信原理与应用.ppt_第3页
串行通信原理与应用.ppt_第4页
串行通信原理与应用.ppt_第5页
资源描述:

《串行通信原理与应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、串行通信原理及应用让计算机相互通信!HOW?什么是通信两个设备之间交换数据的过程我们称之为通信单工双工AB通信的方式从同时传输的数据位数来分为:1、并行通信(Parrel)2、串行通信(Serial)串并行方式各自特点速度价格距离并行串行相对快相对慢短远贵廉价如何并行通信(有时间再讲)DB0-DB7WRRDCSALE信号等举例:内存的写数据过程(两部分)。通过时序图让学生明白CLKA[15:0]ALEWRPhase2Phase1AddressD[7:0]Data如何串行通信就用极少的数据线就能实现数据通信,那么是如何实现的呢?桢的概念:起始位,数据位,

2、速率(波特率),应答位或停止位。举例说明串行通信桢格式常见的串行通信协议名称特点USARTUSBI2CCAN用途PC与MCUPC与MCUMCU之间MCU之间特点简单快, 可靠简单复杂,可靠USARTPC与MCU简单USART特点支持同步串行通信和异步串行通信支持全双工桢格式可编程串行输出原理串行输入原理PIC的USART结构起始位数据停止位接收发送起始位停止位起始位TXEN0111TXIF接收缓冲寄存器波特率发生器RCIF88SPEN10波特率发生器SPEN发送缓冲寄存器1发送移位寄存器01接收移位寄存器0停止位(教材89页)图3-9USART异步传送

3、模式结构原理及时序图串行通信时必须要考虑的问题硬件如何连接?传输速度是多少?通信格式是什么样的?要发送或接收的数据放在哪里?如何判断发送或接收完毕?MCU通过UART与PC连接图+5V代表10V代表0+12V代表1-12V代表0TXPCMAX232电平转换器+12V/-12V+5V/0VRX寄存器设置PORTC<6>:TXDTransmitterPORTC<7>:RXDReceiverRXSTA:1b7b6b5b4B3b2b1b0SPENRX9SRENCRENADDENFERROERRRX9Db7SPEN考虑传输速率问题可能出现设备之间

4、的主频不同的情况,为了解决这个问题,两个设备之间必须协商通信速率。对于UART而言,传输速率是两个设备之间预先协商好的,通过设置相应寄存器来实现。传输速率相关寄存器及标志位波特率发生寄存器:SPBPG(99H)高波特率标志位:BRGH@TXSTA<2>同步收发标志位:SYNC@TXSTA<4>常用SPBPG的值:当主频是4Mhz时, 速度希望采用9600bps进行异步通信则SPBRG=25,BRGH=1,SYNC=0串行通信格式图相关寄存器有两个:TXSTA:发送控制寄存器RCSTA:接收控制寄存器TXSTA(98H):发送控制寄存器765432100

5、TX9TXENSYNC0BRGH0TX9D功能: 控制UART发送数据的格式TXSTA(98H):发送控制寄存器765432100TX9TXENSYNC0BRGH0TX9D9位发送使能发送使能同步模式使能高波特率使能发送位第9位无用位,清0TXSTA(98H):发送控制寄存器7bit6bit5bit43bit2bit1bit0CSRCTX9TXENSYNC-BRGHTRMTTX9D思考题:我想让PIC的USART模块采用8位数据位发送数据,异步方式,高速状态,请问TXSTA该设定何值?TXSTA=0b00100100;RCSTA:接收控制寄存器bit7

6、654SPENRX9SRENCREN3bit2bit1bit0ADDENFERROERRRX9D功能: 控制UART接收数据的格式和状态RCSTA:接收控制寄存器bit76543bit2bit1bit0SPENRX90CREN0FERROERRRX9D串口使能9位使能连续接收使能桢格式错溢出错接收的第9位未用,置0思考题:我想让PIC的USART模块在异步方式下采用8位数据位接收数据,请问RCSTA该设定何值?RCSTA=0b10010000;要发送或接收的数据放在哪里?要发送的数据放在TXREG里收到的数据放在RCREG里TXREG和RCREG都在0

7、体中TXREG=‘A’;charvar=RCREG;如何判断发送成功?对于发送而言,当一个字节发送完毕后PIR1的TXIF标志位会被自动置1,通过判断此位就可得知数据发送是否完毕,当TXREG被赋值后,TXIF自动被清空。思考题:如何用程序判断是否发送成功?76543210TXIFPIR1:if((PIR1&0b00010000)!=0){//TXIF=1,本次发送成功//发下一个数据或结束发送}如何判断接收完毕?对于接收而言,当接收到一个字节后PIR1的RCIF标志位会置1,通过判断此位可得知是否收到一个数据,当RCREG被读取后,RCIF自动被清空

8、。思考题:如何用程序判断是否接收完毕?76543210RCIFPIR1:if((PIR1&0b

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。