新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于双单片机的信号处理系统设计

基于双单片机的信号处理系统设计

作者:时间:2010-12-13来源:网络收藏

CY7C132允许两个CPU同时读取任何存储单元(包括同时读同一地址单元),但不允许同时写或一读一写同一地址单元。双端口RAM中引入了仲裁逻辑(忙逻辑)电路来解决这个问题:当左右两端器同时写入或一读一写同一地址单元时,先稳定的地址端口通过仲裁逻辑电路优先读写,同时内部电路使另一个端口的BUSY有效,并在内部禁止对方访问,直到本端口操作结束。BUSY可以作为中断源指明本次操作非法。需要注意的是:这种方法当CPU发生插入等待时,可能会降低程序效率,不可应用于频繁产生插入中断的场合。
该系统采用存取时间为55 ns的CY7C132,从工作速度在μs级,主工作速度在ms级,双方同时读取双口RAM的概率较小,上述冲突解决方案可以满足实际需求。在主从启动工作后,为了防止主单片机的空读,即从单片机的首次写入时间晚于主单片机的首次读入时间,将存储器的首地址设置为起始标志位,通过主单片机读写该为状态决定是否将读取下一位的存储位。

2 具体电路
根据上述系统总体结构框图和功能,绘制统的电路原理图,如图2所示。
单片机的控制或检测工作是通过I/O引脚实现的。单片机1(U1)中,PO和P2引脚以及P3.6与P3.7引脚用来与外部数据存储器CY7C132交换数据;P1.0、P1.1和P3.4引脚是与A/D转换器ADC0832连接,控制A/D转换操作以及读取转换结果:P3.2(外部中断0)引脚与单片机2(V2)的引脚P1.0相互通信。单片机2的I/O引脚的使用情况与单片机1类似。其中特别需要指出的是:单片机2的P1.2引脚连接至CY7C132的BUSY引脚;而P3.0与P3.1是串口通信引脚,连接至MAX232。
CY7C132是双口RAM,但是其任意一端的地址线、数据线以及控制线的连接方法与一般RAM几乎没有区别,2片单片机与CY7C132的地址线和数据线采用相同的连接方法。以单片机1为例进行说明,CY7C132的内部存储空间为2KB,因此,其地址空间为0000H~07FFH。单片机的I/O口要提供11根地址线,除去P0口还需占用P2.0、P2.1、P2.2端。该系统设计仅使用单片机AT89S51的外部RAM,因此不存在片选问题。这里采用线选法,P2.3直接与CY7C132的CS相连。
另外,以下原因,单片机1与单片机2使用了不同频率的外部晶振:1)单片机AT89S51支持的频率有限,被选择的晶振频率必须符合要求;2)由于AT89S51使用机器周期作为其工作基准,在使用外部振荡电路的情况下,该单片机是以晶振频率除以12得到的数值作为机器周期,所以在单片机1需要定时器的情况下,晶振频率要便于定时器的设置;3)单片机2需要和计算机进行串口通信,晶振频率要便于串口通信中波特率的设置。因此,单片机1与单片机2的晶振频率分别选择了12 MHz和11.059 2 MHz。

3 系统软件设计
该系统软件设计使用的是汇编语言。汇编语言的优点是:编写的程序存储空间小,运行速度快,程序效率高。另外,汇编语言编写的程序能直接管理和控制硬件设备。汇编语言编写的程序并不能直接为单片机所使用,必须使用编译器编译。本系统使用Keil C5l V7.09评估版。
3.1 单片机主程序
单片机1使用内部RAM的20H.1作为A/D转换标志位,当标志位被置1时,主程序中的A/D转换子程序不会运行;当该标志位被置0时,A/D转换子程序才可以执行。单片机1的主程序执行过程,见图3(a)。单片机2用内部RAM的20H.1作为程序启动标志位,当标志位被置1时,主程序不会运行;当该标志位被置0时,主程序才可以执行。在主程序开始运行后,从外部数据寄存器中读入数据,然后关闭串口中断,通过查询方式向串口写入数据,然后再打开串口中断。单片机2的主程序执行过程,见图3(b)。

本文引用地址:http://www.eepw.com.cn/article/173059.htm


3.2 数字滤波子程序
算术平均值滤波的原理是对于连续采样的n个数据,寻找一个数值y(k),使该值与采样值之间误差的平方和最小:

式中,y(k)是第k次采样时,N个采样值的平均值,X(i)是第i次采样值。
算术平均值滤波适用于被测信号在某一数字范围附近作上下波动的场合。该方法将干扰的影响平摊到每个测量值。采样数n决定了抗干扰的能力,n越大,抗干扰性能越好,但是,n值过大,系统的灵敏度会降低。算术平均值滤波对周期性干扰有较好的抑制作用,但对脉冲性干扰作用不大。
中值滤波算法是对某一被测参数连续采样n次(一般n取奇数)。n次采样值按照大小排列,取中间值作为本次采样值。中值滤波算法能有效克服因偶然因素引起的波动干扰。对于温度、液体表面等变化缓慢的被测参数,能收到良好的滤波效果。中值滤波子程序和算术平均值滤波子程序流程见图4。



4 实验数据
在实验过程中,测试平台的辅助工具包括,可提供±5 V输出的WJ7103型直流稳压电源,美国Tektronic公司的AFG3021型函数发生器。首先,信号函数发生器产生直流信号通过信号单元电路板被传输到工控机;其次,被测数据通过串口助手显示并以文本格式(txt)存储在工控机中;最后,被测数据通过MATLAB软件以分别以图像的形式显示和十进制数的格式记录。
在0 V信号输入的条件下,信号单元的采样结果(随机取样1 000次)见图5。图中的(1)(2)(3)分别表示单片机1在没有使用数字滤波算法,采用中值滤波算法和算术平均值滤波算法的条件下得到的输出结果。在理想情况下,采样值应该是0,而记录的采样结果与理想值存在误差。



评论


相关推荐

技术专区

关闭