您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于ADSP-BF561的控制信号处理系统 正文
基于ADSP-BF561的控制信号处理系统

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

点击数:7122 次   录入时间:03-04 12:00:56   整理:http://www.55dianzi.com   DSP/FPGA技术

公式 

  其中,SCLK是DSP系统的时钟频率,Divisor的值介于1~65536,可以由timer寄存器相应的值得到,满足关系式

公式

  在BF561的初始化设置中,将UART设为8bit数据模式,同时将Timer2设置为WDTH_CAP模式,用Timer2去捕获串口的数据变化率,而Timer2位于TMRS8寄存器里,程序初始化代码如下:

  *pUART_LCR = WLS(8);

         *pUART_MCR = LOOP_ENA;       

         *pTMRS8_DISABLE = TIMDIS2;

         *pTMRS8_STATUS = TRUN2 | TOVL_ERR2 | TIMIL2;

         *pTIMER2_CONFIG = TIN_SEL | IRQ_ENA | PERIOD_CNT | WDTH_CAP;

         *pTMRS8_ENABLE = TIMEN2;

         *pUART_GCTL = UCEN;

  在程序一开始,就会按照初始化设置进行自动波特率检测。当有字符输入时,timer会测量连续2次下降沿的宽度,并返回到timer所对应的period寄存器里。比如说,如果发送 ”@”(0x40h )作为自动波特率检测,发送时包括起始位,总共为8bit,如图10所示。

自动波特率检测字符”@”(0x40h)

图10  自动波特率检测字符 ”@”(0x40h )

  此处period的大小如上图所示,捕获的UART bits为8位,所以得到

公式



www.55dianzi.com

  再根据波特率的公式,就可以求得波特率的大小。此段程序代码如下:

  Period = *pTIMER2_PERIOD;  //返回period的值

  Divisor = Period >> 7;         //右移7bit就相当于除以16×8

  BaudRate = SYSCLK/16/divisor;  //得到波特率

  结论

  整个控制系统是以LCD显示的界面为基础,按提示进行相应的键盘操作。经过测试,该系统各部分工作正常,无相互干扰现象。实时时钟定时精确,可以达到秒级。数字IO输出的波形编码无乱码,定时精度可达毫秒级。RS232接口传输数据时,以高达115200bit/s的波特率传输,误码率小于5%。该控制系统已成功应用于某 雷达 系统的控制子系统。



上一页  [1] [2] 


本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术