新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机共享片外存储器及其与微机通信的方法

单片机共享片外存储器及其与微机通信的方法

——
作者:北京理工大学 裴洪安 贾云得 甘景全 朱玉文 时间:2006-09-11 来源:半导体技术 收藏

1板间共享的硬件接口电路和软件控制流程

1.1 信号
处理板硬件接口电路

基于DSP的信号处理板可以根据应用要求运行许多信号处理算法,如信号预处理、目标识别与跟踪定位、Kalman滤波等。待处理的原始信号数据通过板间通信从数据采集板获得。这里采用板间共享的方法来完成数据交换,DSP既可以从共享读取采集数据,也可以把处理结果(如新的程控放大倍数值,跟踪定位结果等)写到共享存储器中供MCU读取。

TMS320C32有一个双向串行口,可以设置每帧同时收发8/16/24/32位数据,同步时钟可以由内部串口定时器产生或由外部输入。通过设置串口全局控制寄存器来控制串口的总体功能和工作模式;通过设置FSX/DX/CLKX端口控制寄存器和FSR/DR/CLKR端口控制寄存器来控制串口6个引脚的功能,可以软件设置每个引脚为通用的I/O引脚或串口通信引脚。TMS320C32有两根通用的I/O引脚为XF0和XF1,由于共享存储器接口电路需要4根控制线来进行DSP与MCU间的握手通信,这里把串口的2个引脚FSR0和FSX0设置为通用的I/O引脚用作控制线。接口电路原理图如图1所示。



图中RAM0~RAM3是四片容量为512K的8位高速RAM(芯片型号为CY7C1049-17VC),组成32位数据宽度的存储器,DSP运行时的程序和数据都在这四片RAM中。FLASH(芯片型号为Am29F016)用于存储程序和初始化数据,即使掉电内容也不丢失,DSP上电时由自带的BOOT LOADER程序从FLASH中取出程序到四片RAM中运行。从共享存储器读取的采集数据也暂存到这四片RAM中。

1.2数据采集板硬件接口电路

基于AT89C51的数据采集板在的全局控制下,通过对多路声传感器输出的微弱信号进行程控放大、低通滤波、同步采样保持、A/D变换,实时同步采集多路信号,并把采集到的信号数据存放在数据采集板上的128K共享存储器(芯片型号为CY7C109-12VC)中。

共享存储器及其总线隔离电路设计在数据采集板上。在某一时刻,共享存储器只能被某一方访问,否则会产生总线冲突。这里由MCU切换选通DSP总线或总线,分时访问共享存储器。总线隔离芯片选用常见的双向总线隔离/驱动芯片74HC245,它有一个输出使能引脚(E)和一个数据传输方向(DIR)引脚,MCU通过控制这两个引脚来完成总线隔离与数据传输方向控制功能。接口电路原理图如图2所示。图中,MCU端的总线隔离由一片74HC373和两片74HC245完成,DSP端由三片74HC245完成数据总线和地址总线的隔离。由P1.2控制选通哪组总线,当P1.2为低电平时,共享存储器只能被MCU访问;当P1.2为高电平时,只有当P1.3也为高电平时(表示MCU同意让出共享存储器),共享存储器才能被DSP访问。由于DSP需要读或写共享存储器,所以需要软件设置数据总线隔离芯片74HC245的数据传输方向,这里通过设置DSPDIR信号线的电平状态来完成(高电平时为读,低电平时为写)。由于地址总线的数据传输方向始终是单向的,所以其隔离芯片的DIR端可以固定接低电平或高电平,视74HC245的实际接线而定。


1.3软件控制流程

信号处理板上的DSP需要采集信号数据时就向数据采集板上的MCU发出请求信号,单片机接收到请求信号后,如果同意让出共享存储器,则向DSP发出应答信号,同时隔离MCU端的总线,暂停数据采集。DSP接收到应答信号后就可以访问共享存储器,DSP快速读、写完数据后,向单片机发结束信号,单片机接收到结束信号后,收回共享存储器,同时隔离DSP端总线,继续采集。这样数据采集与信号处理就可以同时进行,不同于一般的采集一段处理一段的串行工作模式,实现了数据采集零等待,增加了系统的吞吐能力。参见图3的接线图,一次完整的通信过程详述如下,注意在DSP程序初始化时应把XF0、XF1、FSR0设置为相应的无效状态。

1DSP需要采集信号数据时向MCU发请求信号(置XF0为低电平),触发MCU的INT0中断,等待MCU应答(DSP循环检测XF1的状态)。

2如果MCU同意让出共享存储器,则响应中断,否则等待。在中断服务程序中,置P1.3(即DSPACK)为高电平,表示应答。同时置P1.2为高电平,选通DSP总线。MCU接着循环检测P1.4即DSPEOR)的状态。

3DSP收到应答信号(即检测到XF1为高电平),立即快速读写共享存储器,在读操作前,置FSX0为高电平,在写操作前,置FSX0为低电平。读写完后,向MCU发结束信号(置FSR0为高电平),DSP紧接着进行其它处理操作。

4MCU收到结束信号后(即检测到P1.4为高电平),置P1.2为高电平,隔离DSP总线,收回共享存储器,继续采集。

2信号处理板与控制>系统的通信

信号处理板从数据采集板获取采集数据后,经过对其进行一系列信号处理算法的运算处理,得到的处理结果需要传送给基于单片机或微机的控制系统。由于这里的处理结果数据量很小,所以利用串口通信的方法进行数据传输最为简单。我们可以直接对信号处理板上DSP的串口编程来与控制系统进行通信。但由于DSP的串口为同步串口,而单片机或微机的串口通常都为异步串口,这样就需要用软件来模拟DSP串口的异步通信时序,软件工作量大而且通信不可靠。这里通过扩展单片机与共享存储器的方法很好地解决了这个问题。DSP把处理结果写到共享存储器中,立即进行下一轮处理,由单片机从共享存储器中取出处理结果并传送给控制系统。这就省去了DSP进行串口通信所需的时间,最大限度地利用了DSP的高速数据处理的能力。在实时性要求很高的场合,这显得尤为重要。通过扩展少量的硬件,不但提高了系统的速度,优化了整体性能,而且软件实现也简单了许多。

2.1信号处理板与控制系统的串口通信硬件电路

信号处理板利用扩展的单片机AT89C51与基于微机或MCU的控制系统进行全双工通信。图4为AT89C51的串口通信电路,通过"串口选择"拨码开关选择是与基于微机的控制系统通信,还是与基于MCU的控制系统通信。

在IBM PC/XT微机系统中,其串口符合RS-232C接口标准。为提高抗干扰能力,RS-232C标准采用负逻辑,低电平在-5V~-15V之间(通常用-12V表示)为逻辑"1",高电平在+5V~+15V之间(通常用+12V表示)为逻辑"0",上述电平称为EIA电平,它与TTL电平和CMOS电平不同。为了使AT89C51能与微机进行串行通信,可以利用常见的MC1488和MC1489进行电平转换。MC1488把TTL电平转换为RS-232C电平,MC1489把RS-232C电平转换为TTL电平。但由于MC1488和MC1489需要



评论


相关推荐

技术专区

关闭