文档库 最新最全的文档下载
当前位置:文档库 › 基于STM32的雷达原理实验箱设计

基于STM32的雷达原理实验箱设计

科技资讯

 科技资讯 SCIENCE & TECHNOLOGY INFORMATION2010 NO.08

SCIENCE & TECHNOLOGY INFORMATION

高 新 技 术

雷达原理课程涉及到微波、通信原理、自动控制原理、信号处理等多门学科知识,要求学员有扎实的基础知识和较强的综合能力。针对于飞行学员侧重于飞行训练,专业基础课较为薄弱,我们设计了这款实验箱,其目的就是使学员可以快速、直观的建立起基本概念,辅助雷达原理的课程教学。我们在建设实验室之初考察了市场上的相关产品,发现由于专业面很窄,雷达原理实验套件在市场上难觅踪影,而购买实际的雷达装备价格又过于昂贵,于是根据我们教研室多年的雷达教学经验,在大学实验室建设经费的支持下,自主研制了这套实验设备。

STM32系列处理器是意法半导体于2008年开始推出的基于ARM-CortexM3内核的处理器,具有功耗低,价格低,外设资源丰富的特点。意法半导体提供了完整的Firmware 源码支持,方便了对外设的访问。尤其是增强型E 系列的产品,增加了F S MC ,D AC 等外设,高达512KB 的片内Flash 及64KB 的片内SRAM,可以很容易的移植上μCOS Ⅱ实时操作系统及μCGUI 嵌入式图形系统,使软件开发工作更加灵活、高效。

1 STM32的主要优势

1.1具业界领先架构的Cortex-M3内核

采用了哈佛总线结构,高效率1.25DMI PS /MHz 和低功耗0.19mW/MHz,Thumb-2指令集以16位的代码密度带来了32位的性能,单周期乘法指令和硬件除法指令,内置了快速的中断控制器,使得中断间的延迟时间降低到只需6个CPU 周期,从低功耗模式唤醒的时间只需要6个CPU 周期。与ARM7TDMI 相比运行速度最多可快35%且代码最多可节省45%。1.2出众的功率效率

当代码从Flash 中以72MHz 全速运行

时,外设时钟开启时STM32仅消耗27mA 电

流,待机模式下,典型的耗电值仅为2uA 。2.0V ~3.6V 的供电电压范围,适合电池供电的应用。

1.3内部高度集成

内嵌电源监控器,包括了上电复位、低电压检测、掉电检测、自带时钟的看门狗定时器,内置R C 振荡器可作为主时钟源,LQPF100封装芯片的最小系统只需要7个外部无源器件(滤波电容)。1.4创新而出众的外设

在芯片内部集成了U S B ,I 2C ,S P I ,G P I O ,U S A R T ,P W M ,A D C ,D A C ,D M A ,T I ME R ,RT C ,B KP (备份寄存器),CA N ,FSMC 等丰富外设,大大简化了系统硬件电路设计。

1.5提供了完备的固件库和丰富的例程

固件库用于访问各种外设,虽然稍微牺牲了一些性能,但有效提高了软件开发速度,通过参考固件库里附带的分类例程,可迅速对外设性能进行评估,开发效率极高。

2 实验箱功能及组成

实验箱需要模拟产生雷达发射机的调制脉冲,能够产生接收机的视频脉冲并能调整脉宽,占空比等参数。能产生在自动增益控制/STC 增益控制/手动增益控制三种增益控制模式下的视频脉冲信号,使学员能够直观了解各种增益控制电路的不同作用和原理。考虑到STM32系列的处理器片内外设丰富,并且可通过串口实现在系统编程(ISP),使得后续的功能扩展十分,软件升级都十分的方便。

系统硬件组成如图1所示,STM32为核心处理单元,ADC 用于采集两个电位器输出的模拟电压值,FSMC 接口用于驱动3.2英寸的液晶屏,触摸屏通过专用芯片将电压值量化后通过SPI 接口和STM32通信。

DAC 输出波形经运算放大器驱动后输出到面板上,MAX3232用于扩展出3线制串口,用于烧写程序以及与上位机通信。GPIO 用于采集开关量输入状态,接下来介绍各项具体功能需求。2.1自动增益模式

在自动增益模式,由于输入信号的幅度不稳定,而为了使输出信号幅度保持稳定,接收机增益会不断调整,这样的结果是输出信号的幅度一定,但噪声幅度会一直在变化。在这种模式下,需要通过DAC 产生脉冲和噪声相叠加的信号,并且噪声的幅度还会随机变化。

2.2近程增益控制模式(S T C)

近程增益控制电路又称“时间增益控制电路”或“灵敏度时间控制(STC)电路”,它用来防止近程杂波干扰所引起的中频放大器过载。在STC 模式下,接收机的增益随目标距离的变化而变化,对于距离近的目标,增益较小,而对于距离远的目标,接收机增益加大,其增益随目标距离变化的曲线如图2所示。因此,当发射机天线在作扫描时,如果扫描到不同距离的目标,接收机输出的视频信号是一系列幅度不等的脉冲,每个脉冲对应于一个点目标,距离越近,增益越小,距离越远,增益越大,距离超过一定范围后,增益为一恒定值,因此当接收机接收到的脉冲为等幅脉冲时,其输出脉冲幅度与时间的关系如图3所示,时间轴的零点为发射脉冲的时刻。

STC 增益控制曲线是可以调节的,面板上的STC 调节电位器可以产生不同的STC 增益控制曲线,如图4所示。2.3手动增益模式

在手动增益模式下,输出信号的幅度取决于手动增益调节电位器的设置。实际雷达的手动增益调节范围很宽,但作为教学使用调节范围在20dB 就足够了。在这种模式下,STM32需要采集增益控制电位器

基于STM32的雷达原理实验箱设计

肖卫华 田润兰 常硕

(空军航空大学电子系 长春 130022)

摘 要:雷达原理实验箱需要模拟产生雷达在不同工作模式下的一些关键信号,要求人机交互界面友好,系统升级方便。STM32处理器具有丰富的片内外设资源,阐述了如何灵活利用其片内ADC,DAC,DMA,TIMER 资源实现了设计目标,首先介绍了μCOS Ⅱ和μCGUI 在STM32平台上移植的关键步骤,其次介绍了利用DMA 访问外设以减轻CPU 负担的方法,最后还介绍了采用片内DAC 产生随机噪声的技巧,该设计具有很强的参考价值和实用价值。

关键词:STM32 Cortex-M3 μCOS μCGUI 中图分类号:TN951文献标识码:A 文章编号:1672-3791(2010)03(b)-0009-03

Design of Radar Principle Experiment Kit Based on STM32

Xiao Weihua Tian Runlan Chang Shuo

(Electronic Department of Avation university of Air Force,ChangChun,130022)

Abstract:The Radar Principle Experiment Kit is developed to simulate radar working in various mode, it is requried the Man-machine interface is friendly and system updating is easy.STM32 series processors intergrated plenty of Peripherals,this paper elaborated how to make use of the internal ADC,DAC,DMA,TIMER to reach the aim.Firstly introduced the key step to port μCOS Ⅱ and μCGUI to STM32 platform, then the usage of DMA to decrease the CPU load.Finaly the method to generate random noise using the internal DAC,this design has greate referential value and practical value.

10科技资讯

科技资讯 SCIENCE & TECHNOLOGY INFORMATION

2010 NO.08

SCIENCE & TECHNOLOGY INFORMATION

高 新 技 术

的值,然后根据这个值输出相应幅度的脉

冲信号。

2.4脉冲参数调节

这项功能是为了使学员能直观观察到不同参数的脉冲信号,通过两个电位器调整输出脉冲的脉冲宽度和脉冲周期参数。STM32根据两个电位器的电压值改变输出信号的脉冲宽度及脉冲周期。2.5人机交互控制

为了便于学员实验操作,还需要在液晶屏上显示实验项目列表,在进行各项实验时要在液晶屏上提示操作步骤、实验原理及实验结果,使学员实验时无需参考实验指导书也能正常操作。

3 关键技术的实现

前面介绍了硬件组成和功能需求,由于硬件已经高度集成化,设计工作量不大,主要工作量集中在软件开发上。这里我们选用了KEIL 公司的MDK3.8集成开发环境,采用C 语言编程,添加了ST 公司提供的Firmware 库,移植了μCGUI 和μCOS Ⅱ,再此基础上开发了应用程序,下文对其中的关键技术做了详细介绍。3.1μCGUI 和μCOS Ⅱ的移植

对于简单的实时系统,不需要操作系统支持,但我们设计的实验箱既要驱动液晶屏,在上面显示复杂的文本,图片,同时

还要采集触摸屏的位置,电位器的电压及一些开关量,并通过DAC 输出各种信号,控制关系比较复杂,为了简化编程,我们在STM32上移植了μCOS Ⅱ实时操作系统以及μCGUI 图形系统。这两个系统都是针对于嵌入式系统设计的,在可移植方面做了很多的考虑,μCOS Ⅱ源码中目录Ports 下的文件包含了所有和硬件平台相关文件,包括os_cpu_c.c,os_cpu.h,os_cpu_a.asm,除此之外,还要在STM32的中断向量表中添加OSPendSV 中断服务,中断向量表通常定义在stm32f10x_startup.s 文件中。因此为了实现μCOS Ⅱ的移植,这4个文件必须做相应的修改。

μCGUI 的移植关键在LCD 驱动部分和触摸屏的位置采集,意法半导体的官方网站提供了完整的参考设计,通过对参考设计的研究,我们发现在GUI_X_Touch.c 文件定义了触摸屏事件的处理,在LCDDriver 目录里定义了液晶屏驱动的底层操作。μCGUI 调用了以下重要函数来实现对屏幕的操作。

int LCD_L0_Init(void);//液晶屏初始化void LCD_L0_SetPixelIndex(int x,int y,int PixelIndex);//在指定位置画点

unsigned int LCD_L0_GetPixelIndex (int x, int y);//读取指定位置像素点

只要这三个函数正确实现,μCGUI 就可以正确地在屏幕上显示文本和图像,具体实现需要根据LCD 屏的硬件参数,我们

采用的液晶屏为3.2寸的320*240分辨率,控制芯片为ILI9320。这个液晶屏为16位的并行总线接口,共两个端口,一个是控制端口,一个是数据端口,为了提高访问速度,我们利用了STM32的FSMC 接口,STM32只有增强型系列才有DAC,FSMC 外设,在器件选型时应注意这一点。图5是STM32的FSMC 控制器IO 与LCD 控制器的连接示意图。FSMC 接口的数据线为16位,连接到LCD 的16位数据总线,LCD 的地址线只有一个,这里为了编程方便,使用了FSMC 的A1地址,实际上可以用任意一根地址线(A0除外)。对于某些封装的STM32,例如V 系列是100脚封装的,没有A1地址线,完全可以用其它地址线代替。RD 和WR 分别为读、写信号,NE4为FSMC 其中的一个片选信号,,其对应的基地址为0x6C000000,更详细的地址分配请参见STM32数据手册。

为了更好的理解μCGUI 对液晶屏的操作过程,我们对程序进行了跟踪和分析,得到如图6所示的调用层次关系,按照这个原理,我们已经成功移植了不同驱动芯片的液晶屏。

最顶层是我们在程序中可以直接调用的函数,比如显示文本,绘图等操作,这些操作最终归结为在指定位置画点和读取指定位置的像素点操作,为了完成画点,通常又要分解为两步,首先是设置光标或者时设定显示区域,然后再写数据,读指定位置的像素也需要分两步进行,这些操作都可归结为对显存的访问。对显存的访问最终

6

μCGUI

对液晶屏的访问层次图

5 FSMC 与

ili9320

控制器的接口连接

3 STC

模式下接收机的输出脉冲幅度

图4 STC

增益控制曲线

2 STC

模式下接收机增益随时间按变化曲线

图1 硬件组成框图

11

科技资讯

 科技资讯 SCIENCE & TECHNOLOGY INFORMATION2010 NO.08

SCIENCE & TECHNOLOGY INFORMATION

高 新 技 术

依靠对两个端口的读写操作,因此,μCGUI 液晶屏驱动移植的关键点就在于最底下两层,这部分代码只要正确无误,μCGUI 的移植就是成功的。

3.2利用Timer 中断事件触发DMA 读取ADC

STM32的外设既能产生中断,也能产生事件。在中断打开时,中断会使CPU 的执行路径发生改变,像读取ADC 这样的简单任务如果每次也要CPU 去读,显然浪费了CPU 资源,尤其是在通道数比较多的情况。STM32可以利用DMA 搬运数据,而DMA 又可以通过事件来触发驱动,CPU 对Timer,DMA,ADC 初始化完毕后,DMA 就会自动地将ADC 的转换结果搬运到指定的内存,CPU 要想获得ADC 的转换结果,只需访问对应的内存变量即可,通过这种方式有效提高了CPU 的执行效率,同时也简化了编程。3.3利用Timer 、DMA 和DAC 产生叠加有噪声的脉冲信号

S T M 32有两个D M A 控制器,其中DMA1上有7个通道,DMA2上有5个通道,前文所用的DMA 仅占用了12个通道中的一个通道,因此还有足够的DMA 资源可作别用,本文的设计利用DMA1读取ADC 采样值,利用DMA2将内存中的数据搬运到DAC 外设,触发周期由Timer 设定。

STM32有两个DAC 通道,我们只用到其中的一个通道。为了输出脉冲波形,首先在片内RAM 中建立一个short 类型,长度为4096的数组,将一个周期的脉冲信号波形存入这个数

组中,在主循环中判断两个电位器的值是否发生变化,如果脉冲宽度有变化就需要更新这个数组,如果是脉冲宽度有变化则需要重新初始化并启动DMA,需要改变DMA 的传输字节数。

噪声叠加可以通过两种模式来实现,一种是修改数组,数据里的每一个成员都叠加随机数,但这样修改数据会占用大量的CPU 时间;另一种方法是直接利用DAC 的硬件噪声发生器来产生噪声,只占用非常少的CPU 资源,CPU 只需设置一下噪声的幅度,因此我们选择了采用DAC 的硬件噪声发生器来产生噪声。

4 结语

完成这篇文章时,我们的实验箱已经制作了20台,产品的一致性非常好,由于有了3.2寸触摸屏的支持,所有的操作步骤及提示都可以显示在屏幕上,使用起来十分方便。由于集成度很高,产品的成本得以降低,成品率非常高。

STM32虽然功能强大,但在开发过程中还是遇到了不少问题,主要集中在软件方面。下面总结了我们开发过程中遇到的一些问题和解决方法,供大家参考借鉴。

跟其它处理器相比,它的外设时钟缺省是断开的,为了使用某个外设,必须先把使能外设时钟,然后再进行初始化等操作。

STM32的外部晶振最好用8MHz 的,因为它的Firmware 默认晶体的基准时钟是

8MHz 。如果用其他频率的晶振,需要修改Firmware 源文件,再重新编译生成库文件。

由于这个芯片比较新,购买时可能会买到测试版的芯片,这些芯片一般都有少量BUG,在调试的过程中发现,有时在访问合法内存地址时也会出现内存访问异常,这样会导致即使断电后即使重启程序也会锁死,导致不能通过仿真器加载程序,遇到这种情况,只能通过串口擦除flash,然后恢复程序到上一步的状态,才能用仿真器进行烧写。因此建议一定要将串口0扩充出来,以防止程序跑飞导致仿真器无法下载程序。

参考文献

[1]ST Microelectronics.STM32 Reference

Manual,2009.

[2]ST Microelectronics.UM0427 User

manual,2009.

[3]李妍,李威宣.基于ARM 和mC/OS-II

的手机展示平台的设计[J].信息化纵横,2009,12:7~9.

[4]关海,冯大政.μCOSII 在基于Cortex2

M3核的ARM 处理器上的移植[J].电子科技,2009(22):69~74.

稿件要求

1、稿件应具有科学性、先进性和实用性,论点明确、论据可靠、数据准确、逻辑严谨、文字通顺。

2、计量单位以国家法定计量单位为准;统计学符号按国家标准《统计学名词及符号》的规定书写。

3、所有文章标题字数在20字以内。

4、参考文献应引自正式出版物,在稿件的正文中依其出现的先后顺序用阿拉伯数字加方括号在段末上角标出。

5、参考文献按引用的先后顺序列于文末。

6、正确使用标点符号,表格设计要合理,推荐使用三线表。

7、图片要清晰,注明图号。

投稿说明

1、稿件须以电子文档形式发送。如为打印稿,请附软盘,软盘采用Word 格式。请勿一稿多投。来稿一律不退,请作者自留底稿。

2、本刊已加入《中国学术期刊(光盘版)》、《中文科技期刊数据库》、《万方数据数字化期刊群》等网络媒体,本刊发表的文章将在网络媒

体上全文发布。

3、本刊编辑部对来稿有修改权,不愿改动者请事先说明。自收稿之日起1个月内未收到用稿通知,作者可自行处理。

4、来稿请注明作者姓名、单位、通讯地址、邮编、联系电话及电子信箱。

5、如有一稿多投、剽窃或抄袭行为者,一切后果由作者本人负责。

《科技资讯》期刊投稿要求及说明

相关文档
相关文档 最新文档