1.2 课题研究的目的
本文通过对单片机串口通信以及红外传输技术的研究,旨在设计一个单片机多机数据串行通信系统,利用红外波段载波传输数据,以达到单片机间红外传输的目的。其中从机(发送数据方称为从方)作为载波信号和待传送数据的控制器,数据经过调制后由红外线发射管发射到为号单片机,同时1号单片机也由红外线接收管接收主机单片机发射的握手信息,完成所传输数据的确认工作。
1.3 论文结构
第1章为绪论,论述了红外无线传输技术和单片机串口通信的背景和课题研究目的。
第2章为相关基本原理,介绍了单片机串口通信的原理以及在红外通信系统中,包括发射部分和接收部分,以及接收数据的数码管显示的原理和方法
第3章为系统硬件电路设计,给出了系统的原理框图,并详细介绍了硬件电路的各个部分,包括单片机时钟电路,复位电路,矩阵键盘扫描电路和显示电路,以及红外发射电路和接收电路。
第4章为系统软件设计,介绍了系统的红外发射模块和红外接收模块软件实现的主流程图以及相关子程序的子流程图,包括部分主要程序。
第5章是硬件调试结果和软件仿真结果。
最后是致谢与参考文献,附录中包括实验电路图和完整的程序。
2 系统基本原理
2.1 单片机串口通信原理
单片机串行通信方式中,数据按位分时传输,也就是说,在一根用于数据通信的传输线上,在设定的波特率脉冲控制下,数据各位一次传递输出或输入,从而完成处理器之间的数据交流。其串口可以在在使用一个I/O口发送数据的同时用另一个I/O口接收数据。
串口通信使用三根线完成,分别是地线,发送和接受。由于串口通信是异步通信,端口能够在一根线上发送数据的同时在另一根线上接收数据。其他接口用于握手及其他功能即可。
串口通信中,有同步通信和异步通信两种方式。由于同步通信要求双方有非常精确的时钟,这对硬件要求较高,因此这种通信模式在较高级的设备上才会有配置。在此不再赘述。只介绍异步通信。
异步通信中,以帧为单位进行数据的传送。一帧数据是由1个起始位、5~8位数据位,1个可编程的校验位以及一个停止位组成,如下图。对于两个进行通信的端口,这些参数时必须匹配的,如图2.1:
异步通信数据帧格式
(1) 波特率:这是一个衡量通信传输速度的参数。它表示系统每秒钟传送的二进制数码的位数,单位为位/秒,即b/s或(bps)。如果协议需要9600波特率,这意着串口通信在数据上的采样率为9600Hz。波特率高低与距离成反比。同时为了通信的稳定,我们应该尽量选择时钟误差较小的频率进行通信。
(2) 起始位:用于实现发送和接收双方设备之间的同步。当不进行数据通信时,通信线路保持为高电平,当发送设备准备向接收端传输数据时,首先发送起始位,即通信上的0电平,使得串行通信线路的电平由高变低,接收端在测试到铜芯线由高变低的电平变化后,就知道数据端开始发送一帧数据,可以准备接收数据。
(3) 数据位:一个衡量通信中实际数据位的参数。当计算机发送一个信息报,实际的数据不会是8位的,标准的值是5位,7位和8位。如何设置取决于待传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。
(4) 停止位:占一位。用于表示单个包的最后一位。数据传输结束后,发送端发送逻辑电平1,将通信线再次置为高电平,表示一帧数据发送结束。直到下一帧数据的到来,由起始位再次置低通信线,开始下一次的数据传输。停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。