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

发布者:古宝奇缘最新更新时间:2012-03-07 来源: 21IC 关键字:单片机  数字信号处理器  共享存储器  串口通信 手机看文章 扫描二维码
随时随地手机看文章

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

[page]

 

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

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

 

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%,实验证明通信完全可靠

关键字:单片机  数字信号处理器  共享存储器  串口通信 引用地址:异种单片机共享片外存储器及其与微机通信的方法

上一篇:DDS芯片AD9850的工作原理及其与单片机的接口
下一篇:单片射频发射接收芯片GJRF400的应用

推荐阅读最新更新时间:2024-03-16 12:54

提高MSP430G系列单片机的Flash擦写寿命的方法
摘要 在嵌入式设计中,许多应用设计都需要使用EEPROM 存储非易失性数据,由于成本原因,某些单片机在芯片内部并没有集成EEPROM。MSP430G 系列处理器是TI 推出的低成本16 位处理器,在MSP430G 系列单片机中并不具备EEPROM。为了存储非易失性数据,MSP430G 系列处理器在芯片内部划分出了256 字节的Flash 空间作为信息Flash,可用于存储非易失性数据,但是由于Flash 与EEPROM 在擦写寿命上存在一定差距,所以在实际应用中,这种应用方式并不能够满足所有客户的需求。本应用笔记介绍了使用代码区域Flash 来模拟EEPROM,通过一定的软件处理算法,可以大大增加数据存储周期的一种方法。本文给出了
[单片机]
提高MSP430G系列<font color='red'>单片机</font>的Flash擦写寿命的方法
用51单片机写个电动小风扇方案
接下来我将为你介绍如何使用51单片机来实现一个简单的电动小风扇。 1、硬件准备 首先,我们需要准备好以下硬件: 51单片机主板 直流电机 驱动模块 电池盒或电源模块 一些导线和杜邦线 2、电路连接 接下来,我们需要将这些硬件进行连接。具体连接方式如下: 将直流电机连接到驱动模块上,驱动模块需要根据电机的电压和电流进行选择。 将驱动模块的输入端连接到单片机主板上的某个IO口,用于控制电机的开关。 将电池盒或电源模块连接到单片机主板上,用于提供电源。 连接完成后,检查一遍电路是否连接正确,然后进行下一步。 3、编写代码 现在,我们需要编写控制代码来控制电机的开关。以下是一个简单的示例代码: #include
[单片机]
用51<font color='red'>单片机</font>写个电动小风扇方案
瑞萨面向电机控制应用推出性能卓越的RA8 MCU
基于Arm® Cortex®-M85处理器的RA8T1 MCU产品群, 为工业、楼宇和家庭自动化应用提供低功耗操作和专用模拟功能 2024 年 1 月 30 日,中国北京讯 - 全球半导体解决方案供应商瑞萨电子今日宣布推出基于Arm® Cortex®-M85处理器的RA8T1微控制器(MCU)产品群,可满足工业、楼宇自动化,以及智能家居等应用中常见的电机、电源和其它产品的实时控制要求。 RA8T1产品群是瑞萨RA8系列的第三款产品。所有RA8系列产品均具备6.39 CoreMark/MHz(注)的突破性性能,并采用高性能Arm Cortex-M85处理器和Arm的Helium™技术,能够在数字信号处理器(DSP)和机器学习
[工业控制]
瑞萨面向电机控制应用推出性能卓越的RA8 <font color='red'>MCU</font>
51单片机——数码管驱动
#include reg52.h #include ./delay/delay.h #include intrins.h #define SEGPORT P0 sbit bit_sel = P2^0; sbit seg_sel = P2^1; unsigned char segdata = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; unsigned char bitdata = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void main() { unsi
[单片机]
义隆电子推出符合工业规格的低功耗微控制器
义隆电子股份有限公司日前推出符合工业规格的微控制器(MCU)新品——EM78P159N系列8位MCU,该产品具有低功耗,拥有抗干扰及抗静电的能力,同时操作温度范围可达-45℃~85℃,可以广泛的应用于小家电产品。 EM78P159N的详细规格为1K×13位ROM,48字节RAM,I/O最大可达15个,另提供三种工作模式——IRC、ERC、Crystal三组的中断资源,以及快速的唤醒模式、一组8bit计时/计数器、Watch Dog Timer。为符合客户需求,EM78P159N提供18pin/20 pin, DIP/SOP等多种包装。此外,还有14pin封装,编号为EM78P154N。 义隆电子自2004年起,全面提升8位微控
[新品]
单片机常用功能模块的使用 Part7. LCD 1602
1、基本常识: ①、好像也写成 LCM 1602,个人感觉和 LCD 1602 是一个东西,可能叫法不一样吧。 ②、LCD 1602,本质上是一种 字符型液晶 ,用来显示字母、数字、符号,基本不用来显示汉字。 ③、由若干 5 x 7 或者 5 x 11 大小的点阵字符位组成,字符与字符之间有一个点距的间隔。 ④、所谓的 LCD 1602,其实就是 显示内容为 16 x 2,每行 16 字符,显示 2 行 。 ⑤、目前市面上 字符型液晶 绝大多数是基于 HD44780 液晶芯片的,控制原理完全相同,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 ⑥、LCD 1602 样子如下图:
[单片机]
<font color='red'>单片机</font>常用功能模块的使用 Part7. LCD 1602
24-基于51单片机的4乘4计算器设计
具体实现功能 系统由STC89C52单片机+4乘4按键模块+LCD1602液晶显示屏+电源构成。 具体功能: 利用输入采用4×4矩阵键盘,可以进行加、减、乘、除等几种数字运算,并在LCD1602上显示操作过程及结果。 设计背景 计算器的市场需求较大,应用范围广泛,任何一个办公地点不可缺少的都需要计算器,常见的计算器有:算术型计算器,可进行加、减、乘、除等简单的四则运算。科学型计算器,可进行乘方、开方、指数、对数等方面的运算。程序计算器,可以编程序,把较复杂的运算步骤贮存起来,进行多次重复的运算。简易计算器应用更为广泛,将其设计的更加具有市场竞争力是完全有必要的。我国计算器已经有了很成熟的技术,这里推广的是新观念,通过实
[单片机]
24-基于51<font color='red'>单片机</font>的4乘4计算器设计
基于MSP430单片机的地下微水检测系统设计
  微水试验法是一种瞬时向井中注入或抽取一定量的水,通过观测井水位变化情况,求得井附近含水层渗透系数的方法。对于渗透性较高的含水层,瞬时抽取或注入一定流量水后,井中水位很快恢复到初始水位,不易观测井中水位降深随时间的变化;对于低渗透性含水层,瞬时抽取或注入一定流量水后,能够较好观测到井中水位降深随时间的变化,求得含水层水文地质参数。   1 地下微水检测系统的设计方案   该检测系统用于确定不同低渗透性含水层介质中的渗透参数。通过在含水层布置的钻孔中激发水头变化,实时测量水头随时间的变化,利用地下水动力学原理,计算含水层的渗透系数。   该系统通过MSP430单片机采集压力式液位变送器和温度传感器的信号,将采集的信号经过简
[单片机]
基于MSP430<font color='red'>单片机</font>的地下微水检测系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved