双CPU通信接口设计

时间:2022-04-10 09:47:51

双CPU通信接口设计

【摘要】在双CPU系统中处理好两个CPU间的通信,是系统设计的关键。本文设计采用双口RAM实现ARM与DSP间通信,并利用中断逻辑解决端口争用问题,从实际运行情况看,完全满足双CPU系统中两个处理器间高效、实时、稳定的通信。

【关键词】双口RAM;DSP;ARM;中断

Abstract:In the double CPU system handle the communication between two CPU,is the key to the system design.This design USES the dual port RAM to realize the communication between ARM and DSP,and use the logic of interrupt port to solve the port contention issues,according to the actual operation,fully meet the double CPU system between two processors in efficient,real-time and stability of the communication.

Keywords:Dual-Port RAM;DSP;ARM;interrupt

1.引言

随着新技术的发展,工业现场控制系统中往往有多种通讯模式存在,不但要求系统有很好的人机界面和实时、稳定、可靠的通信能力,而且要求系统有很强的计算能力。一个单CPU的控制系统很难满足现代工业控制系统的要求。在ARM+DSP双核控制系统中,ARM以其低功耗、高性能的特点,在通讯、人机交互有很好的表现;DSP作为一种针对数字信号的特种处理器,拥有专门的硬件乘法器和特殊指令,在高速运算和实时处理方面有强大的功能。将DSP技术和ARM技术结合起来,可以充分发挥ARM和DSP处理芯片各自特点,组成双CPU架构系统,充分利用两者优势以达到系统对数据处理与传输的实时性、高效性要求。然而,构建这种系统的关键是要保证ARM和DSP之间能够准确、快速并且稳定地通信,同时这也是影响系统性能的关键部分之一。

ARM和DSP间的通信方式主要有以SPI为代表的总线方式、利用HPI接口的HPI方式和利用双端口RAM的外部RAM方式。这几种通信方式各有有缺点,针对本设计系统中ARM与DSP间数据传输量大,实时性、稳定性要求高的特点,主要介绍利用外部双端口RAM的并行通信方式。

2.系统组成

本文控制系统中人机接口通过以太网与ARM进行连接;ARM与数据采集模块通过CAN总线通信接口连接,并采用轮询的方式向数据采集模块请求温度、电压、电流等采样信号;ARM与DSP间通过双端口RAM进行数据交换,人机界面下发的指令、参数由ARM写入双口RAM,DSP收到中断信号后再从双口RAM中读取数据;DSP运行中的实时数据根据任务标识写入双口RAM,ARM收到中断信号后从双口RAM中读取DSP实时运行数据。ARM收集到的DSP实时运行数据和数据采集模块数据通过以太网口传输给人机界面显示。系统结构简图如图1所示。

图1中ARM采用NXP公司的LPC1788芯片。DSP采用TI公司生产的TMS320F2812。双口RAM采用IDT公司的IDT70V25芯片。

本系统的关键是要保证ARM与DSP间数据交换的实时、高效、稳定,ARM与DSP间数据交换的错误、混乱就会造成DSP运行失效,引起系统失控,因此必须解决ARM与DSP间利用双口RAM进行通信时对通信权的争用冲突现象,避免产生读写错误。本系统中采取双口RAM中断逻辑方式实现DSP与ARM间的双向数据传输,避免左右端口读写冲突。

2.1 LPC1788

LPC1788是基于ARM最新内核Cortex-M3的微控制器,具有3级流水线和哈佛结构,带独立的本地指令总线与数据总线,以及用于外设的性能略低的第三条总线。Cortex-M3 CPU还包括一个支持随机跳转的内部预取单元和一个专用的Flash加速器,使Flash中代码执行达到最佳性能。操作频率可以高达120MHz。外设组件包括512kB的Flash存储器、96kB的数据存储器、外部存储器控制器、一个以太网MAC、5个UART、3个I2C接口、一个双通道CAN接口、一个8通道12位ADC、一个10位ADC、4个通用定时器、一个CRC计算引擎、多达165个通用I/O管脚等。

2.2 TMS320F2812

TMS320F2812是TI公司的一款采用高性能CMOS技术,32位CPU内核DSP芯片,最高工作频率150MHz,具有128K片上FLASH,两个串口,16路12位ADC,两个针对电机控制的事件管理器等。

2.3 IDT70V25

IDT70V25是一款高速8KX16位静态双口RAM,具有两个独立端口允许同时读写数据,每个端口有自己独立的控制信号线、地址线和数据线,可高数存取数据,最快存取时间为25ns,与高速处理器配合使用时无需插入等待状态。IDT70V25主要特点如下:(1)具有两套完全独立的数据、地址、控制线,允许对同一存储单元进行读写;(2)具有两套完全独立的中断逻辑和BUSY逻辑线,可方便实现双CPU之间握手解决端口争用问题;(3)数据传输速度快;(4)可采用数据平行通信方式,确保数据传输稳定可靠;(5)具有多种逻辑交换接口,可构成多种通信接口形式。图2所示为IDT70V25功能框图:

图2中引脚说明如下:,芯片使能;,读/写使能;,输出使能;A0~A12,地址线;I/O0~I/O15,数据线;,高/低字节选择;,忙标志;,信号使能;,中断标志;,主/从选择。

3.接口电路

当ARM、DSP向双口RAM存取数据时,存在四种情况:(1)ARM、DSP不同时对同一地址单元存取数据;(2)ARM、DSP同时对同一地址单元读数据;(3)ARM、DSP同时对同一地址单元写数据;(4)ARM、DSP同时对同一地址单元,一个写数据,另一个读数据。根据读写逻辑和芯片特性,第(1)、(2)种情况下,不会出现数据存取错误,第(3)种情况会出现写数据错误,第(4)种情况会出现读数据错误。第(3)、(4)种情况出现的错误是由端口争用引起的,为了避免错误情况的出现,IDT70V25左右两边的BUSY、INT和SEM信号线提供了3种左右逻辑交互方式,本文设计中使用INT信号线,采用中断逻辑模式。

IDT70V25的中断逻辑是通过信箱实现的,地址单元1FFF为右边端口的中断信箱,1FFE为左边端口的中断信箱。本设计中地址单元1FFF为DSP的中断信箱,1FFE为ARM的中断信箱。当ARM向DSP中断信箱写入数据时,==VL,=L,IDT70V25向DSP发出一个中断信号,DSP读取自己的中断信箱时,==VL,=H,该中断信号被清除。当DSP向ARM中断信箱写入数据时,==VL,=L,IDT70V25向ARM发出一个中断信号,ARM读取自己的中断信箱时,==VL,=H,该中断信号被清除。当ARM或DSP读取对方的中断信箱时,中断信号不会清除。需要注意的是,当IDT70V25的BUSY信号有效时,即BUSY信号线为低电平时,IDT70V25不会发出中断信号,因此,在使用中断逻辑时,BUSY信号线应始终保持高电平状态。图3所示为LPC1788与TMS320F2812通过IDT70V25实现通信的接口电路简图:

图3 接口电路简图

4.接口程序

ARM和DSP数据交换程序由任务标志发起,任务标志由中断触发,当有数据交换时,ARM为主机DSP为从机,ARM向DSP发送数据时,根据数据类型,ARM先写数据到双口RAM对应地址单元,然后向中断信箱写入标识码向DSP发出中断信号,DSP收到中断信号后根据标识码读取相应地址单元数据。ARM向DSP索要数据时,根据索要数据类型,向中断邮箱写入标识码向DSP发出索要数据中断信号,DSP收到中断信号后根据标识码向双口RAM相应地址单元写入数据,然后向中断信箱写入标识码向ARM发出中断信号,ARM收到中断信号后根据标识码读取双口RAM相应地址单元数据。当中断发生时必须对中断地址单元执行一次读操作,清除中断信号,否则下次再写中断地址时将不会产生中断信号。接口程序流程简图如图4所示:

图4 接口程序流程简图

5.结束语

本设计采用双口RAM实现了ARM与DSP间数据高速并行通信,利用IDT70V25芯片的中断逻辑方式很好的解决了数据交互时的端口争用问题,从系统实际运行情况看完全能满足LPC1788与TMS320F2812间实时、高效、稳定的通信要求。

参考文献

[1]TI.TMS320F2812 digital signal processors data manual[Z].2010.

[2]IDT.IDT70V25S/L Data Sheet[EB/OL].2011.

[3]NXP.LPC178x/7x data sheet.Rev3.2011.

[4]胡剑凌,徐盛.数字信号处理系统的应用和设计[M].上海:上海交通大学出版社,2003.

[5]苏奎峰,吕强,常天庆,等.TMS320X281X DSP原理及C程序开发[M].北京:北京航空航天大学出版社,2008.

基金项目:国家科技支撑计划项目(项目编号:2012BAG03B01)资助。

作者简介:

夏云非(1976―),男,硕士研究生,主要从事检测、监控技术的研究与开发。

黄凌,男,主要从事检测、监控技术研究与开发。

上一篇:基于PLC的自动切板机的设计 下一篇:项目教学法在网页制作教学中的优势研究