实验目的
(2)了解单片机串行通信的硬件设计和调试方法。
(3)掌握双机串行通信使用方法。
实验仪器
单片机开发板、稳压电源、计算机。
实验原理
1.单片机串行通信方式
单片机之间的通信可以分为两大类:并行通信和串行通信。串行通信传输线少,长距离传输时成本低,且数据采集方便灵活,因此在通信领域发挥着越来越重要的作用。
两台机器的通信方式可分为单工通信、半双工通信、双工通信,它们的通信原理及通信方式分述如下。
单工通信:是指消息只能单方向传输的工作方式。单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。通信双发采用单工通信属于点到点的通信。根据收发频率的异同,单工通信可分为同频通信和异频通信。
半双工通信:这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。也就是说,通信信道的每一段都可以是发送端,也可以是接收端。但同一时刻里,信息只能有一个传输方向。
双工通信:双工通信是指在同一时刻信息可以进行双向传输,和打电话一样,说的同时也能听,边说边听。这种发射机和接收机分别在两个不同的频率上能同时进行工作的双工机也称为异频双工机。双工机的特点是使用方便,但线路设计较复杂,价格也较高。
2.常用单片机之间的通信方式
(1)采用硬件UART进行异步串行通信。这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件UART,有些也只有1个UART。如果系统还要与上位机通信的话,硬件资源是不够的。这种方法一般用于单片机有硬件UART且不需与外界进行串行通信或采用双UART单片机的场合。
(2)采用片内SPI接口或I2C总线模块串行通信形式。SPI/I2C接口具有硬件简单、软件编程容易等特点,但目前大多数单片机不具备硬件SPI/I2C模块。
(3)利用软件模拟SPI/I2C模式通信。这种方式很难模拟从机模式,通信双方对每一位要作出响应,通信速率与软件资源的开销会形成一个很大的矛盾,处理不好会导致系统整体性能急剧下降。这种方法只能用于通信量极少的场合。
(4)口对口并行通信。利用单片机的口线直接相连,加上1~2条握手信号线。这种方式的特点是通信速度快,1次可以传输4位或8位,甚至更多,但需要占用大量的口线,而且数据传递是准同步的。在一个单片机向另一个单片机传送1个字节后,必须等到另一个单片机接收响应信号才能传送下一个数据。一般用于硬件口线比较富裕的场合。
(5)利用双口RAM作为缓冲器通信。这种方式的最大特点就是通信速度快,两边都可以直接用读写存储器的指令直接操作,但这种方式需要大量的口线,而且双口RAM的价格很高,一般只用于一些对速度有特殊要求的场合。(www.xing528.com)
(6)利用铁电存储器作为数据缓冲器的通信方式。铁电存储器是美国Ramtran公司推出的一种非易失性存储器,简称FRAM。与普通EEPROM、Flash-ROM相比,它具有不需写入时间、读写次数无限、没有分布结构、可连续写放的优点,具有RAM与EEPROM的双得特性,且价格相对较低。现在大多数单片机系统配备串行EEPROM(如24CXX、93CXX等)用来存储参数。若用1片FRAM代替原有EEPROM,就可得到既能存储参数,又能作为串行数据通信的缓冲器。2个(或多个)单片机与1片FRAM接成多主-从I2C总线方式,增加几条握手线,即可得到简单高效的通信硬件电路。在软件方面,只要解决好I2C多主-从的控制冲突与通信协议问题,即可实现简单、高效、可靠的通信。
3.两单片机串口直接通信原理
两个单片机都使用串口方式1进行通信,并且必须保证两单片机的通信波特率完全一致,否则接受不到正确的数据。在发送数据时,向SBUF中写入一个数据后,使用“while(!TI);”等待是否发送完毕。因为发送完毕后,TI被硬件置1,然后才退出“while(!TI);”接下来再将TI手动清零。同理,在接收数据时,在中断服务程序中也需要将接收中断标志位RI置零。
实验源程序
甲机源程序:
乙机源程序:
实验仿真电路(实验图13-1)
实验图13-1 单片机之间的双向通信实验仿真图
思考题
1.两单片机通信的方法有哪些?
2.两单片机直接通信的距离有多远?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。