首页 > 范文大全 > 正文

基于STM32的嵌入式系统实验平台设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于STM32的嵌入式系统实验平台设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:针对嵌入式系统在当前开放式实验教学模式中的应用,根据对实验平台的低成本、易携带、丰富的扩展功能和平台资源的要求,提出基于stm32的本科及研究生教育嵌入式系统实验平台设计方案。介绍该实验平台的硬件设计和特点,给出系统平成的实验项目及例程,并对以该平台为基础的实验内容、教学手段、科技竞赛等方面进行探索和实践。从实训课程的效果反馈来看,学生的创新能力和对嵌入式系统技术的应用能力有了显著的提升。

关键词:

嵌入式系统;STM32;研究生教育实验平台;开放式实验教学模式

中图分类号:TP31文献标识码:A文章编号:10053824(2013)06008503

0引言

嵌入式系统被定义为以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应于应用系统对功能、可靠性、成本、体积、功耗等具有严格要求的专用计算机系统[1]。随着移动互联网和智能手机、平板电脑的逐步兴起,嵌入式系统已经成为后PC时代最热门的研究领域。

嵌入式系统自身的特点决定了它主要是依附在其他学科的相关应用领域,其无法单独成为一个独立的学科。嵌入式技术主要依赖于微电子技术、计算机技术和各学科应用技术,其中计算机技术是嵌入式应用的基础。为了使非计算机专业的工科大学生也能把握嵌入式技术的发展全貌,并及时更新自己的知识结构,通过总结以往实践教学经验,提出了开放式实验教学模式,配合本文介绍的基于STM32的实验平台,以期从教学与实践2个层面推动大学生创新能力与工程实践能力的培养。

嵌入式课程可以选择的实验平台有很多,国内高校不约而同地选择了以ARM为内核结构的系列芯片为实验平台的核心。ARM结构的系列芯片发展到今天,已经出现了3条不同的分支,A分支主要是设计用于高性能的开放应用平台,例如智能手机和平板电脑等。R分支用于高端的嵌入式系统,例如对实时性与速度并重的系统。M分支用于深度嵌入的、单片机风格的系统中[2]。上述3个分支涉及到的ARM芯片结构和性能并不相同,从学习的渐进性考虑,其中的M分支也就是以ARM Cortex M3为核心的实验平台更适合用于在本科非计算机专业学科中开展嵌入式课程。

1系统硬件设计

传统的实验教学过分依赖实验箱,这对实验场地和实验时间的要求很高,像这种集中式的教学模式并不适应开放式实验教学模式的要求。开放式实验教学模式要求学生可以随时随地地完成实验例程和查看实验效果,并不完全依赖实验场地和实验设备。为了满足上述要求,本实验平台的设计充分考虑了平台的低成本、易携带、丰富的扩展功能和平台资源。其特点如下:1)低成本,核心芯片的价格不过十几元,使学生能够人手一块实验板;2)易携带,板子外观只有8 cm×10 cm;3)功能丰富,实验平台贴合现在嵌入式最新的技术,包括触摸输入、SD卡外部储存、2.4 G无线通信模块和彩色液晶显示等。下面对实验平台的硬件构成做一个简单介绍。

1.1系统硬件模块结构

实验平台的核心是一块基于ARM CortexM3内核的ST公司STM32F103RB芯片,考虑该芯片的主要原因是性价比,能以8位MCU的价格获得32位MCU的性能[3]。同时SPI,USB,CAN,ADC和DMA等功能部件一个不缺。系统模块如图1所示。

实验平台采用3.3 V供电,在设计上包括了程序一键下载、供电、调试(串口打印信息)3位一体,所有的一切只需要一根USB线就可以使用。只要学生身旁有电脑,就可以使用这个开发平台,这样极大地拓展了学生的学习时间与空间。

MCU的PORTA与PORTB以及PORTC的部分I/O口引出,已方便与外部设备连接;平台上预留了DS18B20接口与NRF24L01的接口,以尽可能多地扩展实验平台的应用。

1.2系统特点

该实验平台的设计理念如下:一,为嵌入式系统课程的开放式实验教学服务;二,为配合嵌入式系统的课程设计,该实验平台采用模块化扩展方式,有很强的扩展功能;三,为研究生阶段继续从事嵌入式系统应用研究的学生打好基础。该系统在设计上一方面强调与先修课程的衔接过渡,另一方面考虑和研究生阶段的课程设置与培养方案相对接。下面通过一些功能性介绍来说明该实验平台的上述特点。

1)与51单片机的衔接。实验平台上集成了按键与LED灯等外设,这对学过51单片机的同学并不陌生,学生可以把51单片机的学习经验和部分知识迁徙到该实验平台上。同时实验平台的软件集成开发环境选用的是KEIL公司的RVMDK,这和51单片机上的开发软件是同样的环境,这在最大程度上减轻了学生的学习成本。

2)贴近市场,与技术潮流同步。传统的实验平台在设计输入输出的实验时多考虑采用按键与数码管显示的方式,而现在的嵌入式应用领域输入与输出都是在触摸屏上完成。本实验平台提供了触摸屏输入接口与OLED显示模块的接口,这使得图像处理的部分应用能在本实验平台上得以进行,为学生以后进入智能手机的应用开发打下基础。

3)感受实时操作系统的魅力。与传统嵌入式系统课程最大的不同在于,本实验平台强化了实时操作系统的学习,可以移植像μCOS这样的实时操作系统,操作系统是嵌入式课程与传统单片机课程最大的区别。在本实验平台下,学生可以完成实时操作系统下程序设计学习,为以后在Andriod或者iOS这样的手机操作系统上应用打下基础。

4)模块化的设计与丰富的应用扩展。为了配合开放式实验教学,检验教学效果,嵌入式系统课程设计的作用非常重要,这是培养学生工程实践、项目管理和团队合作的一种方式。本实验平台可以根据学生选择的不同课程设计课题,提供诸如音频解码扩展板、NRF24L01无线通信模块和SD卡扩展存储读取等附件,充分发挥学生的创新精神并锻炼他们的工程实践能力。

2系统完成的实验项目及例程

好的实验平台一定要配合好的实验项目。为了提高学生的学习效果,为课程开设的实验项目内容新颖,由各项操作性实验、验证性实验、综合实验和创新性实验组成[4]。

2.1典型的实验项目

1)操作性实验。以熟悉嵌入式系统开发环境和开发平台为主要内容,包括RVMDK软件的使用,熟悉实验平台的电路原理图,板载资源的使用等,使学生对嵌入式系统有初步的了解和认识。如果学生前期对单片机有过了解,这部分实验可以起到从单片机到嵌入式系统的过渡衔接。

2)验证性实验。要求学生深度挖掘实验平台的功能,以ARM的Cotex M3构建的实验平台为例,对STM32的F103系列的ARM芯片的GPIO引脚、定时器、系统时钟结构、中断系统、位带操作等功能部件的使用进行学习和理解。

3)综合性实验。将多个知识点整合设计成多项任务,经过设计和分析的流程,得出某种解决方案,以培养学生应用所学知识分析和解决实际问题的能力。例如,将按键输入与ARM中断功能相互结合,将SD卡存储的图片文字输入到LCD上进行显示等。

4)创新性实验。结合所学的知识,将多学科的知识综合应用,以电子设计大赛或实际项目开发的方式,按照产品开发的流程完成以ARM为核心的嵌入式系统设计作品。例如,基于STM32和DS18B20的温控系统、基于NRF2401的无线通信系统的设计,将μCOS操作系统移植到开发板上并完成音频解码的控制等。着重培养学生的创新能力和科研能力。具体如表1所示。

2.2实验例程

通常的嵌入式实验例程多是采用芯片提供商提供的库函数为主[5],虽然在开发上能带来一定的便利性,但是使得开发者对芯片内核结构的工作机理了解甚少。我们配套的实验例程几乎都是采用直接操作CortexM3内核的寄存器来完成的,对于学生学习芯片内核结构有着传统方法无法比拟的优势。下面我们以一个简单的实验例程代码来说明。

该实验例程是一个点亮LED灯实验,这在传统单片机上是学生非常熟悉的一个实验内容,这个实验的目的主要是让学生掌握GPIO口的工作原理和使用方式。这是嵌入式系统学习最为基础的一个实验。代码部分如下:

void LED_Init(void)

{

RCC->APB2ENR|=1

GPIOC->CRH&=0XFFF00FFF;//清除11,12位上设置

GPIOC->CRH|=0x00038000;//PC11输入,PC12输出

GPIOC->ODR=1

}。

上述代码是在实验平台上使用GPIO口的初始化设置代码,其中使用到了3个寄存器,其中APB2ENR是时钟使能,CRH控制每个IO口的模式及输出速率,ODR是端口输出数据寄存器向该寄存器写数据,可以控制IO口的输出电平。具体寄存器的控制位,可以参考STM32参考手册[6],这里不再赘述。下面是主函数调用代码:

int main(void)

{

Stm32_Clock_Init(9);

delay_init(72);

LED_Init();

while(1)

{

LED0-=0;

delay_ms(300);

LED0=1;

}。

主程序调用代码结构非常简单,学过单片机的学生很容易看懂程序结构。上述程序代码主要体现在本实验平台下配套例程开发考虑到学习过程的承上启下和易读易用的特点。

3结语

针对本科嵌入式系统设计的开放式教学实验平台系统具有基础性、实用性、先进性、多用性和可扩展性,综合性强、内容覆盖面广。该实验系统完全能够满足计算机科学技术、电子信息工程、自动化控制、通信工程等专业研究生、本科学生的嵌入式实验教学。

目前,该实验平台在重庆邮电大学通信学院的研究生创新项目中率先得到使用,通过研究生和本科生的实训课程效果反馈来看,学生的创新能力和对嵌入式系统技术的应用能力有了显著提升。下一步打算将实验平台向其他专业推广,并丰富实验平台的实验例程和扩展。

参考文献:

[1]叶秉良,戴文战.基于创新能力培养目标的实验教学的构建[J].实验技术与管理,2008,25(11):131134.

[2]姚文详,宋岩.ARM CortexM3权威指南[M].北京:北京航空航天大学出版社,2009.

[3]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.

(下转第92页)

[4]孙福,赵月飞.开放式实验教学管理模式的改革与实践[J].实验研究与探索,2008(11):142143.

[5]彭刚,秦志强.基于ARM CortexM3的STM32系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011.

[6]黄俊,刘科征.ARM嵌入式系统基础及应用[M].西安:西安电子科技大学出版社,2010.

作者简介:

刘科征(1977),男,重庆人,硕士,讲师,主要研究方向为通信技术。

基金项目:重庆市教委研究生教育优质课程建设项目(2013年第29号项目);重庆邮电大学研究生研究生教育创新计划重点项目(Y201020)。