第5章-43学时串行通信接口.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 查询通信线路状态 statue: mov dx,2fdh ;读通信线路状态寄存器 in al,dx test al,1eh ;接收有错误否? jnz error ;有错,则转错误处理 test al,01h ;接收到数据吗? jnz receive ;是,转接收处理 test al,20h ;发送保持寄存器空吗? jz statue ; 不空,循环查询 异步通信程序 * 检测键盘输入 mov ah,0bh ;检测键盘有无输入字符 int 21h cmp al,0 jz statue ;无输入字符,循环等待 mov ah,0 ;有输入字符,读取字符 int 16h ;采用01号DOS功能调用,则有回显 cmp al,1bh jz done ;是ESC键,程序返回DOS 异步通信程序 * 发送数据 mov dx,2f8h ;将字符输出给发送保持寄存器 out dx,al ;串行发送数据 jmp statue ;继续查询 异步通信程序 * 接收数据 receive: mov dx,2f8h ;从输入缓冲寄存器读取字符 in al,dx and al,7fh ;传送标准ASCII码(7个数据位) ;所以仅取低7位 push ax ;保存数据 异步通信程序 * 显示数据 mov dl,al ;屏幕显示该数据 mov ah,2 int 21h pop ax ;恢复数据 cmp al,0dh ;数据是回车符吗? jnz statue ;不是,则循环 mov dl,0ah ;是,再进行换行 mov ah,2 int 21h jmp statue ;继续查询 异步通信程序 * 接收错误处理 error: mov dx,2f8h ;读出接收有误的数据,丢掉 in al,dx mov dl,’?’ ;显示问号 mov ah,2 int 21h jmp statue ;继续查询 异步通信程序 * 5.4.4 中断通信方式的编程方法 关键 解决主程序与中断服务程序的数据传递 注意 处理好8250的4级10种中断源 简便方法 只允许接收数据准备好中断 * 中断通信方式的循环队列 接收缓冲 寄存器 中断服务程序 主程序 读队列送UART (保持寄存器空中断) 读UART送队列 (接收数据准备好中断) 发送处理: 向队列 输出字符 接收处理: 从队列 输入字符 接收队列 尾指针 头指针 头指针 尾指针 发送队列 UART 发送保持 寄存器 * 自测试循环工作方式 8250 数据终端准备好DTR* 数据装置准备好DSR* 发送数据SOUT 接收数据SIN 请求发送RTS* 允许发送CTS* 输出OUT2 载波检测RLSD* 振铃指示RI* 输出OUT1 4个控制输入信号和系统分离,并在芯片内部与4个控制输出信号相连 发送的串行数据立即在内部被接收 可用来检测8250发送和接收功能正确与否,而不必外连线 * * 数据总线缓冲 寻址及控制逻辑 CS0 CS1 CS2 A2 A1 A0 /ADS DISTR /DISTR DOSTR /DOSTR DDIS MR D0~D7 内部数据总线 发送保持寄存器 接收缓冲寄存器 发送移位寄存器 接收移位寄存器 Sout Sin 线路控制寄存器 线路状态寄存器 除数寄存器高位 除数寄存器低位 波特率发生器 MODEM控制寄存器 MODEM状态寄存器 RCLK XTAL1 XTAL2 /BAUDOUT 控制逻辑 /RTS /CTS /DTR /DSR /RLSD /RI 中断允许寄存器 中断识别寄存器 控制逻辑 /OUT1 /OUT2 INTRPT 中断 MODEM 1M~10M 握手线 UART 数据总线缓冲 寻址及控制逻辑 5.3.1 8250的内部结构 * 1. 串行数据的发送 并行数据 加入起始位、 校验位、停止位 串行数据 CPU 发送保持寄存器 发送移位寄存器 同步控制 8250 SOUT 0/1 0/1 0/1 0/1 双缓冲寄存器结构 保证数据的连续发送 * 2. 串行数据的接收 并行数据 检测接收错误 删除起始位、 校验位、停止位 串行数据 CPU 接收缓冲寄存器 接收移位寄存器 同步控制 8250 SIN 0/1 0/1 0/1 0/1 双缓冲寄存器结构 保证数据的连续接收 * 3. 接收错误的处理 奇偶错误PE(Parity Error) 若接收到的字符的“1”的个数不符合奇偶校验要求 帧错误FE(Frame Error) 若接收到的字符格式不符合规定(如缺少停止位) 溢出错误OE(Overrun Error) 若接收移位寄存器接收到一个数据,并送至输入缓冲器时,CP

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档