历史上的今天
今天是:2025年03月01日(星期六)
2018年03月01日 | 几种实现PC机和单片机串行通信的硬件接口设计
2018-03-01 来源:21ic
目前,计算机控制系统已逐步从单机控制发展成为多机控制并出现了以计算机技术为核心,与数据通讯技术相结合的集检测、控制和管理为一体的计算机网络,即集中分布式测控系统。其中单片机作为从机,负责现场控制和实时数据的采集;PC机作为主机,负责对各从机发来的数据进行分析、处理,并向各从机发布命令,以实现对工业现场的集中监控与管理。由于主从机需不断进行信息交流,因此通信成为分布式测控系统重要而基本的功能。
本文以MCS-96系列单片机中的8098为例,论述了几种实现PC机和单片机串行通信的硬件接口设计,其中包括RS232标准接口、RS 422标准接口、20mA电流环路串行接口以及利用调制解调器实现远程通信。
1 基本原理
PC机与单片机之间通常采用2种通信方式:并行通信和串行通信。并行通信是指将待发送数据的各位同时传送,串行通信则将数据一位一位地按顺序传送。并行通信虽然传输效率高,由于所需硬件设备复杂,不适于长距离通信,所以一般只适用于要求实时性强,传送速率较高的控制系统中,实用面较窄;相比之下,串行通信简单易实现,传输距离较长,所以已被广泛应用于各种工控系统中。
串行通信分为同步通信和异步通信2种方式。同步通信是指通过在每个数据块开始时的同步字符来实现收/发双方同步的一种数据传输方法,常用于信息量大,速度要求高的场合;异步通信则规定了标准的字符数据传输格式,即每一帧信息由起始位、数据位、奇偶校验位和停止位组成。由于有冗余位,所以传送效率不高,常用于信息量不大,速度较低的场合。在计算机测控系统中,由于串行接口的标准化,一般采用异步串行通信方式,以提高其通用性。由于各种接口的机械和电器特性有所差异,串行通信分为近程通信和远程通信。
2 接口电路的设计
2.1 近程通信
目前,PC机是利用异步通讯控制器来实现串行通讯的,其核心是8250通讯芯片加上一些收发逻辑电路。接口标准大多是RS232标准,其通讯距离小于15m,传输速率小于20kb/s。RS232标准是按负逻辑定义的,他的"1"电平在一5~一15V之间,"0"电平在+5~+15V之间。由于PC机使用的是TTL电平信号,因此数据输出时必须把TTL电平信号转换成RS232标准电子;数据接收时把RS232标准信号转换成TTL电平信号。实现这种功能的常用芯片是传送线驱动器MCl488和接收器MCl489,其作用除了电平转换外,还实现正负逻辑电平转换。如图1和图2所示。

PC机的串行口适用25针D型插座,其中RTS(请求发送,输出)和CTS(清除发送,输入),DSR(数据准备好,输入)和DTR(数据终端准备好,输出),分别连在一起,这是因为PC机的BIOS中的INT14H(串行通讯程序)在接收和发送数据时均要判断CTS和DSR是否有效。8098与RS232标准接口电路图如图3所示。

2.2 远程通信
(1)RS422标准接口
虽然RS232应用很广,但由于数据传输速率慢,通讯距离短,特别是在100m以上的远程通讯中难以让人满意,因此通常采用RS422,RS449,RS423及RS485等接口标准来实现远程通讯。这里以RS422为例。
RS422接口标准通过提供平衡电路来改进接口电气特性,通过传输线驱动器将逻辑电平变为电位差,实现信息传送。通过传输线接收器将电位差变为逻辑电平,实现信息接收。因而可以支持较高的传输速率和较长的传输距离,在最大传输率10Mb/s的情况下,电缆允许长度为120m;如果采用低传输率,如90kb/s时,最大距离可达1 200m。
RS422每个通道用两条信号线,一条为逻辑"1",一条为逻辑"0"。RS422A电路由发送器,接收器,平衡连接电缆,电缆终端负载,接收器等部分组成,通常采用点对点通信方式。
该标准允许驱动器输出为目前RS422A与TTL的电平转换常用芯片是驱动器SN75174和接收器SN75175。该标准允许驱动器输出为土2~土6V,接收器可以检测到的输入信息电平可低到200mA。采用光隔离的RS422标准来实现8098与PC机的远程通信的通讯接口电路如图4所示。

(2)20mA电流环路串行接口
20mA电流环是目前远程通讯广泛使用的另一种接口。其原理如图5所示,发送正和负,接受正或负4根线组成一个输入回路和一个输出回路。由于20mA电流环是一种异步串行接口标准,所以每次发送数据时必须以无电流的起始作为字符的起始位,接收端检测到起始位便开始接收数据。

电流环路串行接口的优点是低阻抗传输线对电气噪声不敏感,以实现光电隔离,有利于长距离传输。图6为一个带光电隔离的20mA电流环接口线路图。发送端将TTL电子转为环路电流信号,在接收端又转换成TTL电子。

(3)Modem实现远程通信
尽管RS232总线标准无法实现远程数字通讯,但由于电话网络的普及,利用Modem和现有电话线实现PC机和单片机的远程双向通讯也是工业控制系统中广泛采用的一种方法。基本原理框图如图7所示。
通常外置式Modem具有RS232接口,通过DB-9插头可与计算机RS232口相连接。如果单片机串行口直接与Modem接口,由于没有握手信号,只能保证单个字节传输的正确,对大量数据的传输将导致数据丢失,这点可通过软件处理来避免;如果采用单片机的I/O口与Modem握手,将占用单片机I/O口资源。因此一般采用前一种方法实现对Modem接口。
本文仅以Modem芯片MSM7512B为例,阐述一下接口电路的设计。由于PC机与Modem芯片的接口已非常普及,现仅将8098和MSM7512B的接口电路画出。如图8所示。

MSM7512B主要由调制器、解调器、接口控制逻辑组成。AI是解调器的输入端;AO是调制器输出端。通过控制MODl,MOD2可使MSM7512B工作在4种不同的工作方式。在工作时,计算机首先检测CD端。若为高电子,表明Modem处于等待与上位机通信状态;若其为低电平,则标明Modem已和上位机建立数据通道。而要想使Modem发送数据,应置RS脚为低电平。单片机发送和接收数据就是对串行通信口写和读,可采用中断或查询方式工作。
3 结 语
上述几例是工业控制系统中比较实用的串行通信接口电路设计,在具体的控制系统中可根据要求编制相应的软件程序来实现近程或远程的PC机与单片机串行通信。
下一篇:PC与外部硬件电路的通信接口设计
史海拾趣
|
这里有玩Quartus II的伐? 用VHDL编过计数器的帮忙 先声明 偶才接触这东西10来天的样子 不怎么熟练 外加这边的人看上去似乎都是专业的= = 最好能给点指导 或者能给个计数器的实例看下 我一般情况下就能搞懂了 以下这段实验用的东西为啥通不过编译呢? LIBRARY ieee; USE ieee.std_logic_1164.all ...… 查看全部问答> |
|
如题,比如有个函数atoi(字符串转化为整形)相应的头文件我也包含过了。 比如我在MDK编译器下测试该函数发现它的输出一直为0,这是不对的。 难道在c库中这个函数是个空的函数,应该是定义且声明过,要不然编译应该报错。 编译器的c库中有的函数包 ...… 查看全部问答> |
|
毕业设计做的是主从分布式系统,涉及通信协议方面的事情。 报文头分别设置为5AA5H和6776H 这两个双字节数是老师告诉我常用的,但是并未跟我讲明白为何要用这两个双字节数。 写论文的时候,我说是因为其无对应的ASC码,老师说不对。 我说是因为 ...… 查看全部问答> |
|
热电偶维护检修问题如何解决 根椐中国家标准规定及工业用热电偶维护检修规程,热电偶维护检修中遇到的问题应有以下处理 方法,标准规定了工业用热电偶的维护、检修、投运及其安全 ...… 查看全部问答> |
|
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE ieee.std_logic_arith.all; USE ieee.std_logic_unsigned.all; USE ieee.numeric_std.ALL; LIBRARY lpm; USE lpm.lpm_components.all; ENTITY test IS GENERI ...… 查看全部问答> |




