中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 存储设计 >>电子行业新闻正文

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

时间:2007/11/23 9:31:00  作者:  来源:IC72  浏览人数:880
 
 

      摘要:介绍了通用单片机(MCU)AT89C51与信号处理单片机(DSP)TMS320C32通过共享片外随机存储器实现板间通信的方法,并给出了总线隔离硬件电路与软件控制流程。文中还简要分析了AT89C51与微机进行串行通信的软硬件设计,通过扩展AT89C51间接实现了TMS320C32与通用单片机或微机之间的通信。

      关键词:单片机 DSP数字信号 处理器 共享存储器 串口通信

      TMS320系列数字信号处理单片机(DSP)在测控、仪器仪表、图象处理、计算机视觉与声信号处理等领域得到了越来越广泛的应用。DSP获取原始采集数据和输出处理结果一般有两种途径:一是通过串行口,另一是通过数据总线读写片外存储器。本文介绍了基于DSP的信号处理目标板与基于单片机AT89C51的多路同步数据采集板通过共享片外随机存储器实现板间通信,来获取原始采集数据的方法,并给出了总线隔离硬件电路与软件控制流程。并介绍了把DSP的处理结果传送给基于MCS-51单片机或基于微机的控制系统的方法。文中还简要分析了AT89C51与微机进行串口通信的软硬件设计,通过扩展AT89C51间接实现了TMS320C32与单片机或微机之间的通信,比直接通过TMS320C32的串口与单片机或微机进行通信要简单可靠得多。下面如无特别说明,MCU指AT89C51,DSP指TMS320C32。

      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所示。

IC72新闻中心

      图中RAM0~RAM3是四片容量为512K的8位高速RAM(芯片型号为CY7C1049-17VC),组成32位数据宽度的存储器,DSP运行时的程序和数据都在这四片RAM中。FLASH(芯片型号为Am29F016)用于存储程序和初始化数据,即使掉电内容也不丢失,DSP上电时由自带的BOOTLOADER程序从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的实际接线而定。

IC72新闻中心

      1.3软件控制流程

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

IC72新闻中心

      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的控制系统通信。

IC72新闻中心

      在IBMPC/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需要±12V的供电电压,增加了电源电路的复杂性,如图4所示,这里选用只需单一+5V电压的MAX232来完成电平转换,简化了硬件电路。

      当信号处理板与基于MCU的控制系统通信时,只需三根线,一根发送线(TXD),一根接收线(RXD),一根共地线(GND),将双方的地线连在一起,将双方的发送线与接收线交叉连接即可。当信号处理板与基于微机的控制系统通信时,利用微机的九针串口进行通信,它们的串口电缆连线如图5所示。这里的发送线与接收线没有交叉,是因为在进行电平转换时已经交叉过了(参见图4)。

IC72新闻中心

      2.2信号处理板与控制系统的串口通信软件编程

      单片机与单片机或微机进行串口通信的软件编程有两种:查询方式和中断方式。这里发送方(信号处理板)采用查询方式,接收方(控制系统)采用中断方式。通信程序主要完成对串口初始化(包括选择串口模式、设置数据传输格式、设置波特率等)、建立连接、传输数据和断开连接等功能。为确保通信可靠,双方约定如下通信协议。

      1.信号处理板上电后,一直发送请求联机信号'R',等待控制系统发应答信号'A',如果信号处理板收到应答,表示双方硬件连接正确,联机成功。

      2.运行控制系统的串口通信程序。如果是与微机通信,则先自动检测连接的是哪个串口(COM1或COM2),检测到后向信号处理板发应答信号'A';若没检测到则显示错误信息,提示检查接线是否有误。若是与单片机通信,如果在规定的时间内(如10s内)还没有收到应答,则让指示灯闪烁,认为出错,需重新复位。

      3.信号处理板收到应答后,先向控制系统发送总共要传输的数据个数,然后依次发送每个数据,直到发完为止。

      4.控制系统发完联机应答信号后,就处于接收状态。先接收总共的数据个数,然后依次接收每个数据。控制系统每接收到一个数据都向信号处理板发确认信号,信号处理板只有收到确认信号后才发下一个数据。

      另外,在单片机与微机之间进行通信时,双方要正确选择一致的波特率而且SMOD位的选择影响单片机波特率的准确度,即影响波特率的误差范围。因而在单片机波特率设置时,对SMOD的选取也要适当考虑。为了保证通信的可靠性,通常波特率相对误差不要大于2.5%,当单片机与微机之间进行通信时,尤其要注意这一点。例如,单片机的时钟fOSC=12MHz,串口模式为方式1,假设单片机与微机的波特率都选为9600bps。当SMOD=0时,波特率相对误差为8.5%,当SMOD=1时,波特率相对误差为6.99%。实验表明,不论SMOD=0或1,单片机与微机在这种条件下均不能实现正常的发送与接收。若双方的波特率都取4800bps,且SMOD=1时,波特率相对误差为0.16%,实验证明通信完全可靠。

 
【相关文章】
·异种单片机共享片外存储器及其与微机通信的方法
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9