串行通信协议设计.ppt_第1页
串行通信协议设计.ppt_第2页
串行通信协议设计.ppt_第3页
串行通信协议设计.ppt_第4页
串行通信协议设计.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、第四讲 异步串行通信(SCI),通信协议基础 协议的分层 握手与应答 超时控制,串行通信是CPU与外界进行信息交换的一种方式,是指数据一位一位地按顺序传送带通信方式。 串行通信的两种基本的工作方式: 异步传送 方式 同步传送,3.1通信协议基础 通信的内容是什么。 如何通信 何时通信 通信协议的内容 通信协议的功能 通信协议就是对数据传送方式的规定,包括数据格式定义和数据位定等。,3.2 SCI协议的分层,应用程序,自定协议,异步串行通信协议,电气接口与底层通信链路,应用层,中间层,串行协议,RS232,这个就是今天的主要内容,提示:这个简单的协议后面马上要到! SCI字符数据的传送格式: 1

2、、起始位:通信线上没有数据被传输时处于逻辑“1”状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”电平,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个低电平后,就开始准备接收数据位信号。起始位的作用就是使设备同步,通信双方必须在传送数据位前协调同步。,2、数据位:当接收设备收到起始位后,接着就会收到数据位。数据位的个数可以是5、6、7、8、9位,这些数据位被接收到移位寄存器中,构成传送数据字符。在字符传送过程中,数据位从最低有效位开始传送,依次在接收设备中被转换为并行数据。,3、奇偶校验位:数据发送完之后,便可以发送奇偶校验位。奇偶校验用于有限差错检测,通

3、信双方应约定一致的奇偶校验方式。 偶校验:数据位和奇偶位1的个数为偶数 奇校验:数据位和奇偶位1的个数为奇数 4、停止位:在奇偶位或数据位后发送的是停止位,停止位是一个字符数据的结束标志,可以是1位、1.5位、2位的低电平。接收设备收到停止位后,通信线路上就恢复逻辑“1”状态,直到下一个字符数据的起始位到来。,5、波特率设置: 通信线路上传输的所有位信号都保持一致的持续时间,每一位的宽度都由数据传送速率确定,而传送速率是以每秒多少个二进制位来度量的,这个速率是波特率。如果数据以每秒300个二进制位在通信线路上传送,则其传输速率就位300波特。,1,2,3,4,5,6,8,7,起始位,数据位,奇

4、偶校验位,停止位,协调同步,低电平,标志一个数据的结束,数据位数可位5、6、7、8、9、,何谓奇偶校验?,主机发送握手信号 并等待对方回应,主机判断应答信息 后进行相应的处理,主机发送“结束通信” 消息并等待回应,接收到对方的确认 消息主机结束通信,检测应答信息根据 回应进行相应处理,接收到对方的应 答信息,连接建立,主机接收数据并检 验后发送相应 消息通知发送方,根据本机状态 发送回应给发送方,收到“结束通信” 后发 送确认消息结束通信,发送方,接收方,3.3 握手与应答,握手与应答的使用是相当灵活的。在保证链路可靠的情况下,发送发可以在发出握手信号后就开始发送数据。在发送完数据后不发送任何

5、信号来表示通信结束。,提示,程序分析:,/*= 发送子程序 =*/ void TxSCI(byte send_data) byte i; TXDATA=0; Delay(200); /启动信号 for(i=0;i=1; Delay(200); TXDATA=1; /空闲时恢复高电平状态 Delay(200); ,发送开始位,轮流发送8位数据,发送奇偶校验位,发送停止位,1,2,3,4,5,6,8,7,思考练习问题:,如果要求发送偶校验位(即8位数据位和奇偶位1的个数为偶数),该怎样编写该子程序? 提示: 1、添加一个局部变量 j 。 2、当TXDATA为1时,j加一。 3、发送完8位数据后,该

6、发送第九位数据(即奇偶位)时,判断变量j的第0位是否为1,若为1,第九位发送1。若为0,第九位发送0。,/*= 接收子程序 =*/ byte RxSCI() byte i; byte rece_data=0; while(RXDATA); Delay(100); if(RXDATA=1) /start return 0; for(i=1;i=1; ,Delay(200); /8 if(RXDATA=0) rece_data ,TxSCI( )和RxSCI() 是SCI通信的基础,所有上层通信协议是建立在这个基础之上。,思考练习题:,如果发送端在第九位发送有奇偶校验位。在接收端,怎样编写子程序。 提示: 1、设置一个局部变量j。 2、接收从1到9位数据时,如果为1,则j加一。 3、停止位接收完毕后,检查变量j的第0位是否为0。如果为0,则接收的数据正确。否则错误。,作业:,1、请在读懂程序的基础上,要求发送一组8个数据。(30分) 2、请SCI实现一个握手与应答通信过程。如主机发送一个0 x13给从机,从机受到0 x13后,发送一个0 x31给主机。这时表示从机可以批量接受数据了。(40分) 3、请用流程图说明本程序。(30

温馨提示

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

评论

0/150

提交评论