免费论文查重: 大雅 万方 维普 turnitin paperpass

基于SPI 接口多机通信-

最后更新时间:2024-04-11 作者:用户投稿原创标记本站原创 点赞:7498 浏览:30694
论文导读:以只有从机1对地址分配信息进行处理,通过以下时序对从机1进行地址分配:①主机向从机发送地址分配起始标识符‘(’,告诉从机此时进行地址分配操作,从机1向主机反馈确认信息;②主机向从机发送地址,从机1进行地址存储并向主机反馈确认信息;③主机向从机发送地址分配结束标识符‘)’,告诉从机已完成地址分
[摘要]:本文介绍一种基于SPI 接口的高速可靠的多微处理器扩展和通信方法,包括该方法的实现原理、硬件连接和软件实现等。
[关键词]:SPI 接口,通信,扩展
1 引言
现代测控领域中,工业电子产品往往不是孤立存在的,而是需要能够数据共享,实现多机通信的功能,因而在大多数电子产品的设计中要考虑多机扩展和通信问题。比如在各种采用微处理器的控制系统中,就要求能实现多微处理器的柔性扩展和它们之间的数据通信。本文以R 单片机组成的一主两从系统为例,介绍一种基于 SPI 接口的高速可靠的多微处理器扩展和通信方法,包括该方法的实现原理、硬件连接和软件实现。
2 通信接口的选择
通信接口的选择关系到整个多机扩展的构成和通信方案的设计。微控制器的通信方式包括并行通信和串行通信,其中串行通信方式有 SPI 通信接口、UART 通信接口、I2C 通信接口等。在通信接口的选择中,通信的可靠性要放在首位。由于并行通信方式通道间会有互相干扰,当传输出错时,要重新传送数据,而且要求数据同时到达接收端,但往往各通道由于布线长度不一等原因难以保证真正的一致性。另外采用并行通信方式占用了较多的 I/O 资源,不适合于小型系统,所以本文选择了串行通信方式。基于 SPI通信接口的速度较快,而且通信协议也较为简单,相对来说也比较稳定等优点,本设计就选用 SPI 接口来实现多机通信。
SPI 接口是全双工同步串行外设接口,采用主从模式架构,支持单主多从模式应用。时钟由主机控制,在时钟移位脉冲下,数据按位传输,输入输出为全双工通信方式。SPI 数据通信时的主-从连接与数据传送方式如图 1 所示。
图1SPI 数据通信时的主-从机连接与数据传送方式
由图1可知,SPI 数据传输系统是由主机和从机两部分组成;主要是由主、从双方的两个移位寄存器和主机 SPI 时钟发生器组成,主机为 SPI 数据传输的控制方。NSS为从设备选择管脚,对于主机,无用,可配置为GPIO口用于选择从机;通知从机进入传输状态,然后主机启动时钟发生器产生同步时钟信号SCK,预先存在两个移位寄存器中的数据在 SCK 的驱动下进行循环移位操作,完成主-从机之间的数据交换,传输的数据为 8 位,按位传输。
SPI 通过一根时钟引线 SCK 将主机和从机同步,主机的数据由 MOSI 进入从机,而同时从机的数据由MISO 进入主机。因此,它的串行数据交换不需要增加起始位、停止位等用于同步的格式位,直接将要传送的数据写入到主机的 SPI 发送数据寄存器,这个写入过程自动启动主机的发送过程。对于从机,同样在SCK 的节拍下将出现在引脚 MOSI 上的数据逐位移到从机的移位寄存器,当接收完一个完整的数据块后,设置中断标志,通知从机这个数据块已接收完毕,同时将移位寄存器接收到的内容复制到从机的SPI接收数据寄存器。可以看出,用户编程只需在发送数据时写数据到SPI发送数据寄存器,在接收数据时读SPI接收数据寄存器,其余的移位、同步、置位收发标志等工作都由内置的 SPI 模块自动完成。
3 多机扩展和通信的实现原理
以一主两从的系统结构、主从都以 Atmega128 单片机为例,介绍多机扩展和通信方案。系统框图如图2 所示,主机分别同两个从机的 SPI 接口相连,另外主从机间还增加了地址分配使能线 AD。在理论上这种扩展方法可以实现无数个从机的扩展和通信。
图2系统框图

3.1 地址分配

在多机通信系统中,主机通过从机地址对各个从机进行访问,因此,要求每个从机都有唯一的地址。为确保地址的唯一性和可靠性,就必须对从机进行统一编址。
常用编址方式是将拨码开关连接在从机的 I/O上,用人工拨码来实现编址。拨码开关打开和关闭分别代表着 0 和 1,这也就代表着一定的数据,这个数据就是该从机的地址。这种硬编址方式简单且容易操作,但是占用从机的 I/O 资源。当从机数量增加时,用于拨码开关的 I/O 口也要相应地增加,而且编址需要人工操作来实现,在实际应用中很不方便。
本文设计了一种软件编址方式,采用主机自动给从机分配地址的方法。在硬件上,只需在 SPI 通信接口的基础上增加一根地址分配使能线就能实现,如图2 所示。其实现原理是:主机通过AD线向从机1发出处理地址分配使能信号,与此同时,从机 1 通过 AD 线禁止从机 2 地址分配使能,保证在地址分配期间某一时刻只有一个从机进行地址信息处理。主机通过 SPI 接口向各从机发出地址分配信息,从机都接收到主机传来的地址信息,但此时只有从机 1 的地址分配是使能的,所以只有从机1 对地址分配信息进行处理,通过以下时序对从机 1 进行地址分配:
① 主机向从机发送地址分配起始标识符‘(’,告诉从机此时进行地址分配操作,从机 1 向主机反馈确认信息;
② 主机向从机发送地址,从机 1 进行地址存储并向主机反馈确认信息;
③ 主机向从机发送地址分配结束标识符‘)’,告诉从机已完成地址分配。
主机成功对从机 1 进行地址分配后,主机关闭从机 1 的地址分配使能,从机 1 开启从机 2 的地址分配使能,同理,依照以上时序,主机完成对所有从机的地址分配。

3.2 数据查询

主机对所有的从机进行了统一编址后,每个从机都拥有了唯一的地址,这样主机和从机之间就可以进行数据查询和发送操作了。数据查询操作时,首先主机向所有从机发出其要查询从机的地址,所有从机接到主机发来的地址后和自己的地址信息进行比较,地址匹配的从机就响应主机并将数据传给主机,这样就完成了主机对一个从机的数据查询。数据查询操作的时序为:
① 主机向从机发送数据查询起始标识符‘[’,从机以此识别为数据查询操作;
② 主机向从机发送数据查询的地址值,从机接收地址信息并和自己的地址比较,相同者才进行下面的操作,不同者就不做任何操作;
③ 对应地址的从机向主机发回数据,主机进行数据接收;
④ 从机向主机发送数据结束标识符‘]’,告诉主机数据传送结束。
依照时序,主机论文导读:。数发送的时序为:①主机向从机发送数据及起始标识符‘<’,从机以此识别为数据发送操作;②主机根据从机地址发送数据,从机接收地址信息并和自己的地址比较,相同者才进行下面的操作,不同者就不做任何操作;③主机向从机发送数据;④结束后主机向从机发送数据结束标识符‘>’,告诉从机数据传送结束。依照
就可以对全部从机或者某个从机进行数据查询。

3.3 数据发源于:论文结论www.7ctime.com


数据发送操作时,首先主机向所有需要向其发送数据的从机发出地址信息,所有从机接到主机发来的地址后和自己的地址信息进行比较,地址匹配的从机就响应主机并做好接受数据的准备,这样就完成了主机向一个从机发送数据的过程。数发送的时序为:
① 主机向从机发送数据及起始标识符‘<’,从机以此识别为数据发送操作;
② 主机根据从机地址发送数据,从机接收地址信息并和自己的地址比较,相同者才进行下面的操作,不同者就不做任何操作;
③ 主机向从机发送数据;
④ 结束后主机向从机发送数据结束标识符‘>’,告诉从机数据传送结束。
依照时序,主机就可以根据需要向全部或者某个从机进行数据发送。
4 结束语
本文介绍了一种多机扩展和通信的实现方法,该方法在标准 SPI 接口的基础上加上一根普通 I/O 线并采用软件编址的方式来实现了对从机的地址分配,与硬件编址方式比较更节省 I/O 资源且简单并容易实现,基于 SPI 接口,数据查询发送的通信速率更快,本文所提出的多机扩展和通信方法简单可行、安全可靠,值得推广。
参考文献:
胡汉才. 单片机原理及其接口技术[M].北京:清华大学出版社,2004.
赵凯,黄珊. TLl6C550在TMS320VC5402与PC机串行通信中的应用[J].国外电子元器,2007,(9):17-20.
[3] 徐明,堵国梁. 双向透明串口扩展技术在嵌入式系统中的实现[J].信息化纵横,2009,(14):31-34.
[4] 马忠梅.单片机的C语言应用程序设计[M]. 北京:北京航天航空大学出版社,2007.