双单片机如何颠覆系统,征服通信模块?

2014-06-25 09:26 来源:电子信息网 作者:娣雾儿

3 基于双单片机的数据通信模块设计的相关内容

为了提高测控系统对多个事件的响应速度和控制能力,经常需要多个单片机来分工协调工作,这就要求各个单片机在完成自己任务的同时,还要同其他单片机进行数据通信。由单片机构成的双CPU系统中,两单片机间的数据传输通常是采用并行口进行并行通信或利用串口、串行总线(SPI,I2C等)进行串行通信,还有通过共享I/O接口芯片、共享存储器(RAM)等方式通信。若利用两单片机的串口进行串行通信,则必须保证二者的串口都可用,而51系列单片机只有1个串口,如果系统还要与其他外围设备进行数据通信,则串口被占用,此时要实现两单片机间的通信就得考虑其他的方法;若采用并行通信方式,则至少需要8根并行数据线、2根控制信号线(对于双机单向并行通信),如果是双向并行通信,则需要的控制信号线就会更多,这就对单片机的可用I/O口线提出了要求,而且并行通信要求两CPU的时钟同步,硬件设计相对复杂;若采用共享I/O接口芯片或共享存储器方式通信,则需增加外围接口芯片,使得硬件结构更复杂。

其中,单片机89C2051(A)的串口(RXD和TXD)与RS485总线接口,用来接收本站多个数据采集模块的数据;89C2051(B)的串口与Modem芯片接口,用来接收下线车站数据和向上线车站发送数据。

此外,89C2051(B)通过P1口的2根口线(P1.7和P1.6)与I2C总线(SCL和SDA)接口的芯片CAT1161构成看门狗电路,两CPU的复位端RST接在一起,使得他们可以同时复位;两CPU各通过P1口的一根口线外接一个发光二极管,指示该CPU是否正常工作,若正常工作,则程序间隔地给这根口线高、低电平,使发光二极管处于闪烁状态,以便程序调试。因此,串口已不能用于两单片机间的数据传输,又由于本系统对二者之间的通信速度要求不太高,所以简单有效的方法是通过模拟串口来实现两单片机间的通信。经过实验发现模拟SPI串行总线是实现双CPU之间数据通信的一种行之有效的方法,SPI总线只需要片选、串行时钟、数据输入和数据输出4根线就可以完成两CPU间的数据交换,因此采用SPI总线接口可以节省I/O口线和系统资源、简化电路设计、提高系统的可靠性。由于AT89C2051单片机不带SPI串行总线接口,所以要用软件来模拟SPI的操作。

在实际应用中,对于不同的SPI接口芯片,他们的工作时序不同。本模块采用时序进行软件模拟SPI的操作,即在时钟信号的上升沿输入(接收)数据,下降沿输出(发送)数据。其中,Din和Dout分别用于串行数据输入和输出,片选线CS用于控制数据传输的开始和结束,时钟线CLK用于同步主从设备间的数据传输。

4 总结

双单片机数据通信模块设计的过程中,为了使数据信息传输能力得到有效提高,人们采用软件模拟SPI总线来对其进行处理,这样不仅使通信系统进一步优化,并很好的满足单片机运行的相关要求,使其通信系统的通信能力得到提升。

< 1 2 
通信模块 双单片机

相关阅读

暂无数据

一周热门