首页 理论教育 单片机串口通信实验指导书

单片机串口通信实验指导书

时间:2023-11-06 理论教育 版权反馈
【摘要】:实验目的理解单片机串行接口C语言程序的基本结构。掌握单片机与PC机串行通信使用方法。这意味着串口通信在数据线上的采样率为4800 Hz。奇偶校验位这是串口通信中一个检错参数。单片机和PC机的串行通信一般采用RS-232、RS-422或B3-485总线标准接口,也有采用非标准的20nnJL电流环的。

单片机串口通信实验指导书

实验目的

(1)理解单片机串行接口C语言程序的基本结构。

(2)了解单片机、PC机串口结构。

(3)掌握单片机与PC机串行通信使用方法。

实验仪器

单片机开发板、稳压电源、计算机。

实验原理

1.串行通信的原理和使用

随着单片机和微机技术的不断发展,特别是网络技术在测控领域的广泛应用,由PC机和多台单片机构成的多机网络测控系统已成为单片机技术发展的一个方向。它结合了单片机在实时数据采集和微机对图形处理、显示的优点。同时,Windows环境下的后台微机在数据库管理上具有明显的优势。

所谓“串行通信”是指外设和计算机间使用一根数据信号线,数据在一根数据信号线上按位进行传输,每一位数据都占据一个固定的时间长度。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。相比之下,由于高速率的要求,处于计算机内部的CPU与串口之间的通信仍然采用并行的通信方式,所以串行口的本质就是实现CPU与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计算机时,数据格式由位(bit)转化为字节数据;反之,当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。

串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。

在Windows环境下,串口是系统资源的一部分。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管按位的并行通信比按字节(byte)的慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20 m,并且任意两个设备间的长度不得超过2 m;而对于串口而言,长度可达1200 m。典型的串口用于ASCII码字符的传输。

通信使用3根线完成:①地线,②发送线,③接收线。由于串口通信是异步的,因此端口能够在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验

对于两个进行通信的端口,这些参数必须匹配。

(1)波特率 这是一个衡量通信速度的参数。它表示每秒钟传送的位数。例如,300波特表示每秒钟发送300个位。当提到时钟周期时,我们就会想到波特率。例如,如果协议需要4800波特率,那么时钟是4800 Hz。这意味着串口通信在数据线上的采样率为4800 Hz。通常电话线的波特率为14400、28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置得很近的仪器间的通信,典型的例子就是GPIB设备的通信。

(2)数据位 这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位、数据位和奇偶校验位。实际数据位取决于选取的通信协议,术语“包”指任何通信的情况。

(3)停止位 用于表示单个包的最后一位。典型的值为1、1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步,因此停止位不仅仅表示传输的结束,而且能提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

(4)奇偶校验位 这是串口通信中一个检错参数。它包含四种检错方式:偶、奇、高和低。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶数个或者奇数个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位。高位和低位并不真正检查数据、简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者传输和接收数据不同步。

单片机和PC机的串行通信一般采用RS-232、RS-422或B3-485总线标准接口,也有采用非标准的20nnJL电流环的。为保证通信的可靠,在选择接口时必须注意:①通信的速率;②通信距离:③抗干扰能力;④组网方式。

RS-232是早期为公用电话网络数据通信而制定的标准,其逻辑电平与ITL/CMOS电平完全不同。逻辑“0”规定为+5~+15 V之间,逻辑“1”规定为-5~-15 V之间。由于RS-232在发送和接收之间有公共地,传输采用非平衡模式,因此共模噪声会耦合到信号系统中,其标准建议的最大通信距离为15 m,但实际应用中我们在300 bit/s的速率下可以达到300 m。

2.RS-232-C串行通信接口(www.xing528.com)

RS-232-C串行通信接口是美国电气工业协会(EIA)与BELL公司等一起开发的一种MTD2002标准通信协议,现在它在开关电源模块终端、外设与计算机中被广泛采用。该标准规定了21个信号和25个引脚,但在智能仪器与计算机之间的通信中常用2个信号及3个引脚(2脚数据输入,3脚数据输出,7脚信号地)。它采用双极性的负逻辑信号,0逻辑信号为+3 V至12 V,1逻辑信号为-3 V至-12 V,它的传输速率最大为20 kbit/s,传输距离仅为15 m。由于RS-232的任务主要是完成电平移位、转换和信号反相等,所以它有自己的电平转换与驱动芯片,如MC1488(发送)与MC1489(接收)。IBMPC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平,为了在PC机与MCS-51机之间可靠地进行串行通信,需要用电平转换芯片。由于MC1488和MC1489需要±12 V、+5 V的电源供电,故采用MAXIM公司生产的低功耗、单电源、低价格的MAX232芯片,因为它自身带有电源电压变换器,可以把+5 V的电源变换成RS-232输出电平所需的±10 V电压,实现RS-232的技术指标,并只需要+5 V的电源,就能为串行通信带来了较好的性能。

3.RS-232接口的9针串口

9针串口:一个完整的RS-232接口是一个25针的D型插头座,25针的连接器实际上只有9根连接线,所以就产生了一个简化的9针D型RS-232插头座,这种插头座就是常用的9针D型插头座。

EIA-RS-232C对电气特性、逻辑电平和各种信号线功能都做了规定:

在TXD和RXD上:逻辑1(MARK)=-3 V~-15 V

逻辑0(SPACE)=+3 V~+15 V

在RTS、CTS、DSR、DTR和DCD等控制线上:

信号有效(接通,ON状态,正电压)=+3 V~+15 V

信号无效(断开,OFF状态,负电压)=-3 V~-15 V

介于-3 V~+3 V之间的电压无意义,低于-15 V或高于+15 V的电压也被认为无意义。若要进行通信,还要对信号的电平进行转换,比如使用MAX3232芯片来转换电平。使用串口进行通信时,我们最关心的是以下三个引脚:⑤GND、②RXD、③TXD。要完成数据的发送与接收必须用到这三个引脚。而其他引脚是用来控制传输规则的,即握手协议。实验图14-1所示为RS232串口接线引脚功能说明和9针串口(DB9)图。

实验图14-1 RS232串口接线引脚功能说明和9针串口图

实验源程序

实验仿真电路(实验图14-2)

实验图14-2 单片机与PC机串口通信实验仿真图

思考题

1.单片机与PC机串口通信为什么有接口电路而非直连?

2.单片机与PC机的通信数据帧格式是什么?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈