串行通信协议设计

串行通信协议设计

ID:40038862

大小:284.31 KB

页数:17页

时间:2019-07-18

串行通信协议设计_第1页
串行通信协议设计_第2页
串行通信协议设计_第3页
串行通信协议设计_第4页
串行通信协议设计_第5页
资源描述:

《串行通信协议设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四讲异步串行通信(SCI)通信协议基础协议的分层握手与应答超时控制串行通信是CPU与外界进行信息交换的一种方式,是指数据一位一位地按顺序传送带通信方式。串行通信的两种基本的工作方式:异步传送方式同步传送3.1通信协议基础通信的内容是什么。如何通信何时通信通信协议的内容通信协议的功能通信协议就是对数据传送方式的规定,包括数据格式定义和数据位定等。3.2SCI协议的分层应用程序自定协议异步串行通信协议电气接口与底层通信链路应用层中间层串行协议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波特。12345

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

5、号来表示通信结束。提示程序分析:/*=========发送子程序==========*/voidTxSCI(bytesend_data){bytei;TXDATA=0;Delay(200);//启动信号for(i=0;i<8;i++){//发送8位数据if((send_data&0x01)==0)TXDATA=0;elseTXDATA=1;send_data>>=1;Delay(200);}TXDATA=1;//空闲时恢复高电平状态Delay(200);}发送开始位轮流发送8位数据发送奇偶校验位发送停止位12345687思考练习问题:如果要求发送偶校验位(

6、即8位数据位和奇偶位1的个数为偶数),该怎样编写该子程序?提示:1、添加一个局部变量j。2、当TXDATA为1时,j加一。3、发送完8位数据后,该发送第九位数据(即奇偶位)时,判断变量j的第0位是否为1,若为1,第九位发送1。若为0,第九位发送0。/*=========接收子程序==========*/byteRxSCI(){bytei;byterece_data=0;while(RXDATA);Delay(100);if(RXDATA==1)//startreturn0;for(i=1;i<8;i++){Delay(200);//1??为什么i不是从1到

7、9呢。if(RXDATA==0)rece_data&=0x7f;elserece_data

8、=0x80;rece_data>>=1;}Delay(200);//8if(RXDATA==0)rece_data&=0x7f;elserece_data

9、=0x80;Delay(200);//endif(RXDATA==0){RxBuf=0x00;return0;}else{RxBuf=rece_data;rece_data=0;return1;}}TxSCI()和RxSCI()是SCI通信的基础,所有上层通信协议是建立在这个基础之上。思考练习题:如果发送端在第九

10、位发送有奇偶校验位。在接收端,怎样编写子程序。提示:1、设置一个局

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

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

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