- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机4-2概要
串行通信的错误校验 串行通信信号传送的过程中,容易受到各种干扰信号的干扰,而产生错误。如下图所示: 为了检查并纠正这些错误,通信的双方应该采取一些校验措施。单片机串行通信中常用的几种校验措施有: 1、奇偶校验 在发送数据时,数据位尾随1位奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。 2、代码和校验 代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。 3、循环冗余(CRC)校验 循环冗余码(CRC)是最常用的一种差错校验码,其特征是:信息字段和校验字段的长度可以任意指定。 CRC码又称为多项式码。这是因为任何一个由二进制数位串组成的代码都可以和一个只含有0和1两个系数的多项式建立一一对应的关系。例如,代码1011011对应的多项式为x6+x4+x3+x+1,而多项式x5+x4+x2+x对应的代码为110110。 k位要发送的信息位可对应于一个(k-1)次多项式K(x),r位冗余位对应于一个(r-1)次多项式R(x)。由k位信息位后面加上r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式 T(x)=xr?K(x)+R(x) 。 根据代数理论,多项式T(x)存在且仅存在一个r次多项式G(x),使得: T(x) =xr?K(x)+R(x) = A(x)?G(x) 其中G(x)=g0x0+g1x1+g2x2+…+gr-1xr-1+grxr 称为生成多项式,对应的二进制代码称为生成码。 数据通信中利用这一原理,在发送方通过指定的G(x)产生CRC校验码,接收方利用相同的多项式G(x)验证收到的信息的正确性。 【例4.6】信息字段代码为1011001,对应多项式为m(x)= x6+x4+x3+1,假设生成多项式为g(x)= x4+x3+1,则对应的g(x)的代码为11001,x4?m(x)= x10+x8+x7+x4对应的代码记为10110010000,采用多项式除法: 得到余数1010 ,即校验字段为1010,因此,形成的传输码为: 1011001 1010 信息码 校验码 接收端在收到发送方发送过来的信息后,用同样的生成码进行校验,即用接收到的信息码除以生成码,如果能够除尽,则正确,否则出错。 这种校验方法纠错能力强,常用于对磁盘信息的传输,存储区的完整性校验,安全性要求较高的通信系统中等。 a、输出 用串行口工作方式0扩展的并行输出电路如下图所示: 当一个数据写入SBUF后,串行数据将由RxD逐位移出;TxD输出移位时钟,频率=fosc1/12;时序如下图所示: 注意:每送出8位数据 TI就自动置1,再次发送前需要用软件清零 TI。 b、输入 用串行口工作方式0扩展的并行输入电路如下图所示: 串行数据由RxD逐位移入SBUF中,串行数据将由RxD逐位移入;TxD输出移位时钟,频率=fosc1/12;时序如下图所示: a、输出 串行口以方式1发送数据时,数据位由TXD端输出,发送一帧信息为10位,其中1位起始位,8位数据位(先低位后高位),1位停止位。 CPU执行1条写入发送缓冲器的指令后,就会启动发送器发送,发送完数据后,置中断标志TI为1。时序如下图所示: b、输入 用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。时序如下图所示: a、输出 发送开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出位(D0)到TXD引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD引脚输出。 当发送完1帧数据时置TI=1,向CPU请求中断。在发送下1帧数据之前,必须将TI清0。时序如下图所示: b、输入 接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的第9位数据为1)时
您可能关注的文档
最近下载
- GB-T20801-2006《压力管道规范-工业管道》.pdf VIP
- 新《未成年人保护法》解读.ppt VIP
- 颅脑损伤查房课件.pptx VIP
- 补充耕地质量调查与评定技术规范.pdf VIP
- 体例格式9:工学一体化课程《windows服务器基础配置与局域网组建》任务2学习任务工作页.docx VIP
- 借用营业执照开亚马逊协议书8篇.docx VIP
- 不同茶叶的冲泡方法.docx
- 目标八:强化医疗关键环节和行为管理提高关键诊疗行为相关记录完整率.pdf VIP
- 临床试验文献汇报.pptx VIP
- 体例格式9:工学一体化课程《windows服务器基础配置与局域网组建》任务4学习任务工作页.docx VIP
文档评论(0)