pc机DOS串口编程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DOS串口编程 ? 第一章串行通信接口 串行通信使用单条数据线代替了并行通信的8位数据线,传输的距离更远。通信接口每次从CPU得到8位数据,然后通过一个并行入串行出的移位寄存器,转换成串行位,每次发送一位,将数据发送出去。同样,在接收端也必须有一个串行入并行出的移位寄存器来接收串行数据。并组合打包成一个字节。 ? 以串行方式进入数据线的是由0和1组成的数据,一组这样的数叫做一个字符,一个字符可能有8位,或者7位,6位,5位。在传输中,每个字符都要加上起始位和终止位,起始位总是1位,终止位可以是1位或2位。为了保证传输数据的正确性,有时还包括一位效验位。一般芯片都允许编程时设定效验方式为奇效验,偶效验或者无效验。 ? 串行通信的数据传输速率用bps(bits per second)来表示。另外,还有一种表示信号传输速率的单位是波特率(band rate)。波特率是一种信号调制单位,和bps不一定相等,它定义每秒钟传输的离散信号的数目。所谓的离散信号,就是指不均匀的,不连续的也不相关的信号。更详细的讲解请查阅相关文档。通信端口的传输速率从110bps到115200bps,经验表明,波特率相当于9600bps的时候,传输相当稳定。 ? 1960年电子工业协会(Electronics Industries Association,EIA)制定了RS-232接口标准,以后又陆续发布了修订版本,这是目前广泛应用于个人计算机上的串行接口,用于近程数据通信,连接一些外部设备。下图就是我们经常用到的9针RS-232插头, 每个引脚的定义为: 引脚 方向 名称 描述 含义 1 输入 CD Carrier Detect 数据载波检测 2 输入 RXD Receive Data 数据接收端 3 输出 TXD Transmit Data 数据发送端 4 输出 DTR Data Terminal Ready 数据终端准备就绪(计算机) 5 - SG System Ground 信号地 6 输入 DSR Data Set Ready 数据设备准备就绪 7 输出 RTS Request to Send 请求发送(计算机要求发送数据) 8 输入 CTS Clear to Send 清除发送(MODEM准备接收数据) 9 输入 RI Ring Indicator 响铃指示 ? 以上信号在通信过程中可能会被全部或者部分使用,把两台计算机通过串口连接起来,最简单的通讯仅需TXD及RXD及SG即可完成。 TXD 3 RXD 2 GND 5 DTR 4 DSR 6 CD? 1 RTS 7 CTS 8 2 RXD 3 TXD 5 GND 4 DTR 6 DSR 1 CD 7 RTS 8 CTS ? 第二章端口设置 IBM PC和80x86兼容机可以连接4个串行端口,即COM1~COM4,相应的BIOS中的编号为COM0~COM3,但程序每次只能对其中一个端口进行存取。计算机启动时,自检程序就会测试4个COM端口是否存在,并把每个COM端口的I/O地址写到BIOS的数据区0040:0000~0040:0007共8个字节,每个COM地址占用2个字节。如果系统没有连接串行端口,BIOS数据区的这几个单元内容就成为0。用debug可以查看COM端口地址。 ? Cdebug -d 0040:0000 L08 0040:0000 F8 03 F8 02 E8 03 E8 02 ? 上例查看结果表明系统中有4个COM端口,对应I/O地址分别为3F8,2F8,3E8,2E8。每个COM端口都包括一组8位的寄存器,这四个地址都叫做基地址,也就是第一个寄存器的I/O地址,其他寄存器的地址按照递增的顺序排列。COM1的基地址是3F8,COM2的基地址是2F8,COM3的基地址是3E8,COM4的基地址是2E8。我们通过这些寄存器编程控制数据接收或者发送。 ? COM1及COM3使用PC机中断4,COM2及COM4使用中断3。 ? 第三章寄存器 1 寄存器组 COM端口的寄存器组如下表所示,共有12个寄存器,使用了8个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分。DLAB是线路控制寄存器的第7位。 ? 基地址 读/写 寄存器缩写 描述 0 Write - 发送保持寄存器(DLAB=0) 0 Read - 接收数据寄存器(DLAB=0) 0 Read/Write - 波特率低八位(DLAB=1) 1 Read/Write IER 中断允许寄存器 1 Read/Write - 波特率高八位(DLAB=1) 2 Read IIR 中断标识寄存器 2 Write FCR FIFO控制寄存器 3 Read/Write LCR 线路控

文档评论(0)

gangshou + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档