文说明了异步串行通信(RS-232)的工作方式,探讨了查询和中断两种软件接口利弊,并给出两种方式的C语言源程序。 的I/O通道之一,以最简单方式组成的串行双工线路只需两条信号线和一条公共地线,因此串行通信既有线路简单的优点同时也有它的缺点,即通信速率无法同并行通信相比,实际上EIA RS-232C在标准条件下的最大通信速率仅为20Kb/S。 串行通信是计算机通信的一种重要方式,特别是在C语言编程中,实现串行通信接口程序能够有效地连接外部设备,如打印机、Modem等。本文主要讨论的是异步串行通信的标准RS-232,它是微机系统常用的串行通信协议。 RS-232采用单向不平衡传输方式,其信号电平标准为±12V,负逻辑表示逻辑1,正逻辑表示逻辑0。通信过程包括起始位、数据位、奇偶校验位(可选)和停止位。由于其线路结构简单,仅需两条信号线和一条地线,因此在硬件实现上相对经济,但通信速率较低,标准条件下最大速率仅为20Kbps。 IBM PC及其兼容机通常内置了8250 UART(通用异步接收/发送器)来处理串行通信。8250 UART有10个可编程的单字节寄存器,分别负责数据发送、接收、波特率设置、中断管理等功能。例如,COM1和COM2的基地址分别为0040:0000H和0040:0002H,且这些寄存器可以通过读写操作和线路控制寄存器的第7位(DLAB)来访问和配置通信参数。 在C语言中实现串行通信有两种主要方式:查询方式和中断方式。查询方式是指程序不断检查串行口的状态,直到数据准备好或发送完成。这种方式简单,但效率较低,因为CPU需要持续轮询。中断方式则通过设置UART的中断标志,当数据准备好时,UART会向CPU发出中断请求,CPU响应后处理数据,这种方式效率更高,但需要配合中断控制器8259进行中断处理,并在MODEM控制寄存器中设置相应的位以启用中断。 编程时,可以使用DOS功能调用INT 21H的03h和04h号功能,或BIOS功能调用INT 14H来实现串行通信。不过,这两种方法都需要握手信号,且不支持中断,因此在需要高效通信的场合下,通常选择直接访问串行口硬件端口地址的方式。 在实际应用中,可以通过编写C语言程序,直接操作8250 UART的寄存器来实现串行通信接口。程序1就是一个查询通信方式的例子,它使用了BIOS INT 14H的0号功能初始化COM1,简化了波特率因子等参数的设置,只需关注发送和接收寄存器以及线路状态寄存器的读写。 C语言实现串行通信接口程序涉及到对串行通信协议的理解、UART的寄存器操作、中断机制的运用以及对DOS或BIOS功能调用的掌握。这种接口程序对于开发需要与外部设备进行串行通信的系统是至关重要的,尤其是在工业控制和数据采集等领域。



















- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 大数据背景下新闻把关功能消解效应浅析.docx
- 基于网络隔离技术的信息资源共享方案研究.docx
- 于单片机智能电器控制原理及设计.doc
- 探究大数据环境下的财务转型.docx
- 区块链金融存在的常见问题与对策建议.docx
- 互联网+教育的计算机网络教学模式在高技能人才培养中的应用.docx
- 计算机数控系统复习题..doc
- 基于翻转混合式的算法设计与分析教学探索.docx
- 栾川县政府网络信息化建设方案v.doc
- 互联网+背景下企业人力资源管理探究.docx
- 会计领域下区块链技术的应用面临的挑战及应对.docx
- 基于X文件的数据库管理方法的研究-MFC技术.docx
- 基于学生基础素质培养开展中专计算机应用基础教学的具体思路分析.docx
- 计算机技术在工程管理中的应用.docx
- 网络信息安全控制技术及应用.docx
- Web的图书管理系统的设计与开发.doc


