- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理13_串行接口8251ok
循环冗余校验码与纠错原理 循环冗余校验码(Cyclic Redundancy Checksum,CRC)是常用的信道编码方式,广泛应用于帧校验。 设要传送的k位信息码为(mk-1,mk-2,…,m1,m0) 所对应的多项式为: M(x)=mk-1xk-1+ mk-2xk-2+…+m1x+m0 将其左移r=n-k位,相当于M(x)乘以xr得xn-k M(x) 引入一个r位的生成多项式g (x),可有: xn-k M(x)/ g (x)=S (x) + r (x) )/ g (x) ;模2除 r (x)就被称之为CRC校验码多项式 定义传送码字 C (x) =xn-k M(x)+ r (x) 这样组成的k+r位多项式必被g (x) 整除 循环冗余校验码与纠错原理 CRC检错方法: 发送方发送信息码,并将其与g (x) 相除,得到 r (x) 后,将其系数拼在后面发给接收方; 接收方收到c (x)后,将其与g (x) 相除,最后被整除表示 所接收到的数据完全正确;不能被整除表示数据传输出错。 CRC检错码的检错能力与其生成多项式g (x) 密切相关, g (x) 一般形式为: g(x)=xn-k+ gn-k-1xn-k-1+…+g1x+1 g (x)的首项系数为1,末项系数也必须为1, g (x)的次数越高,其检错能力越强。 8251的内部结构 8251A的读/写控制真值表 8251A规定: 复位后的第一个控制命令是方式选择控制字 8251A方式选择控制字 操作命令控制字直接让8251A实现某种操作或进入规定的工作状态,它只有在设定了方式选择控制字后,才能由CPU写入。 8251A操作命令控制字 CPU可在8251A工作过程中利用输入指令读取当前8251A的状态字,从而可以检测接口和数据传输的工作状态。 8251A的状态字 8251A初始化和数据传送流程图 8251编程示例 例:编写8251异步模式下的接收和发送程序,完成256个字符的发送和接收,设端口地址:208H,209H,波特率因子16,1起始位,1停止位,无奇偶校验,每字符8位。 发送数据256字节,放在OUTBUF中 Data segment OUTBUF DB xx, xx, xx,…….. ;共256字节 Data ends MOV DX,209H MOV AL,40H ;复位命令。 OUT DX,AL MOV AL ;模式字,波特率因子16,1起始 位,1停止位,无奇偶校验,每字符8位。 OUT DX,AL MOV AL ;控制字,错误标志全复位,使RTS和DTR输出低有效,允许发送和接受 OUT DX,AL MOV SI,0 MOV CX,256 ;发送256字节 NEXT:MOV DX ,209H IN AL,DX ;状态字 AND AL,01H ;TXRDY? JZ NEXT MOV AL,OUTBUF[SI] MOV DX,208H OUT DX,AL ;发送 INC SI LOOP NEXT 发送程序 接收程序 接收256字节,放在buf中 Data segment buf DB 256 dup(?) Data ends ┆ MOV DX,209H MOV AL,40H;复位 OUT DX,AL MOV AL ;模式字 OUT DX,AL MOV AL ;控制字 OUT DX,AL MOV CX,256 ;接收256字节 MOV SI,0 NEXT: MOV DX,209H IN AL,DX ;读状态字 AND AL,02H ; RXRDY? JZ NEXT MOV DX,208H IN AL,DX ;接收1字符 MOV buf[SI],AL INC SI LOOP NEXT 小
文档评论(0)