《嵌入式系统》实验指导书
- 格式:pdf
- 大小:8.46 MB
- 文档页数:78
《嵌入式系统》实验指导书2012.2目录第一章智能车硬件系统说明 (4)1.1 总体概述 (4)1.2 机械系统图设计架构 (4)1.3 传感和控制设计架构 (5)第二章 STM32系列处理器简介 (6)2.1 STM32家族 (6)2.2 处理器架构和资源 (7)第三章嵌入式集成开发环境IAR EWARM (9)3.1 软件安装准备工作 (9)3.2 软件安装 (9)3.3 IAR EWARM环境下基于STM32软件库的应用开发 (15)3.4 嵌入式集成开发环境IAR EWARM的Option配置 (24)第四章STM32处理器的GPIO操作 (30)4.1 STM32处理器GPIO口的基本结构与特性 (30)4.2 STM32处理器GPIO的寄存器配置 (32)4.3 STM32处理器GPIO操作示例 (34)第五章STM32处理器的中断 (38)5.1 STM32嵌套式中断控制器(NVIC)简介 (38)5.2 外部中断/事件(EXTI)控制原理及相关的寄存器说明39第六章串口实验 (48)6.1 串行通信接口 (48)6.2 USART寄存器 (48)第七章STM32处理器的AD转换 (52)7.1 STM32 ADC简介 (52)7.2 STM32 A/D编程 (52)第八章 STM32处理器的定时器操作 (64)8.1STM32的通用定时器简介 (64)8.2 STM32通用定时器的PWM输出控制 (69)8.3 实验练习 (70)第九章 STM32处理器控制L298驱动直流伺服电机 (72)9.1 L298介绍 (72)9.2 码盘Encoder (74)第一章智能车硬件系统说明1.1 总体概述完整的嵌入式控制系统的开发一般包括硬件和软件系统开发,硬件系统的开发一般包括电路原理设计,PCB(印刷电路板)设计制作两个部分,使用Protel 等软件实现;软件系统开发一般通过各种嵌入式集成开发环境来进行编译、调试、仿真和下载,针对不同类型的嵌入式处理器相关的开发环境也不同,常见的有AVR Studio、Keil MDK和IAR WorkBench等。
本实验中的智能车平台是一款以STM32处理器为控制核心,集成了红外光电传感、霍尔编码反馈、直流电机伺服驱动等外围应用,可以做嵌入式处理器开发入门学习和高级算法程序设计的综合机电控制系统,基于机械和控制部分的硬件设计,通过编程开发可以实现智能避障和巡线等功能。
学生通过实验可以进行STM32处理器基本资源的学习和利用,在了解嵌入式处理器的架构和开发的基础上进行自主学习和相关功能算法的编写与实践。
1.2 机械系统图设计架构图1.1 机械结构机械结构方面,整车采用的是三轮运动布置,一个被动万向轮作为前轮随动,通过两个后轮差分驱动实现整个的运动和转向调整。
所有的轮子和控制器件同通过螺钉紧固在车的底板上,底板上开有相应的固定槽和固定孔,方便根据需要调整各个零的安装尺寸和位置。
1.3 传感和控制设计架构图1.2 控制系统架构传感方面主要利用红外光电传感器检测周围的环境给控制系统提供输入信息;通过L298驱动直流电机运转,同时通过霍尔传感器实现直流电机的编码测速反馈,达到闭环控制直流电机的目的;核心的控制由一片基于ARM核心的STM32控制器来做算法和数据处理,结合STM32本身自带的一些基本外设,实现小车的智能控制。
第二章 STM32系列处理器简介STM32是意大利的意法半导体公司设计的基于ARM公司Cortex-M3内核的32位哈佛架构的嵌入式处理器系列。
2.1 STM32家族图2.1 STM32 MCU Family根据每款具体的处理器上所集成的外设种类、数量和存储器的容量大小等的不同,STM32系列处理器又分为众多具体的型号。
各种处理器的命名规则如STM32F103RBT6这款型号,其中STM32表示这是一款ST公司基于ARM的32位微控制器;F表示通用类型;103表示产品子系列为增强型;R表示芯片引脚数为64引脚;B表示芯片的闪存容量为128K;T表示芯片的封装为LQFP;6表示芯片的工业级温度范围。
(更详细的命名规则参考STM32数据手册)。
2.2 处理器架构和资源图2.2 STM32 Block Diagram基于ARM内核的处理器有很多不同的品牌,像Sumsun, Atmel以及STM32等都有基于ARM架构的处理器,这些处理器的共同点是都以ARM架构为核心基础,再结合具体的应用和本公司的优势集成不同的内部外设形成不同功能特色的ARM处理器。
可见STM32只不过是ARM架构下处理器花园里的一朵。
STM32系列MCU以一个36/72MHz的Cortex-M3处理器为核心运算单元,通过ICode总线将内核的指令总线与闪存的指令接口相连,完成指令的预取;通过DCode总线将内核的数据总线和闪存的数据接口相连,实现数据加载和访问;通过System系统总线将内核的外设总线连接到总线矩阵,协调内核和DMA之间的外设访问;总线矩阵协调内核系统总线和DMA总线之间的访问仲裁,AHB 外设通过总线矩阵与系统总线相连;系统的两个AHB/APB桥在AHB总线和2个APB总线之间提供同步连接,其中APB1总线操作速度限于36MHz,APB1总线操作于全速72MHz;所有的系统外设都挂靠在外设总线上,通过APB1和APB2总线来控制访问;处理器上所有的程序存储器、数据存储器、寄存器和输入输出端口都被统一组织在一个4G的线性空间地址内。
DMA和FSMC是STM32系列处理器内部架构中的两个亮点,两个DMA控制器共控制着12个DMA通道,能够在不消耗CPU时钟周期的情况下提供外设和存储器之间或者存储器和存储器之间的高速数据传输,提高了系统的效率,解放了CPU的负担来完成其他的运算和处理;FSMC(Flexible Static Memory Controller,只在Flash大于256KB的大容量产品中嵌入有这一控制器)使得处理器内部总线能够与同步或异步存储器接口,支持访问外挂的SRAM,ROM,NOR Flash和Nand Flash存储器,以及可以看做SRAM来访问的LCD模块,方便系统灵活的扩展。
第三章嵌入式集成开发环境IAR EWARM3.1 软件安装准备工作1)嵌入式集成开发环境IAR EWARM安装包IAR for ARM_4.42A 。
2)J-Link驱动程序安装包。
3)USB驱动程序win-driver。
3.2 软件安装3.2.1 嵌入式集成开发环境IAR EWARM安装1)打开IAR安装包进入安装界面2)选择Install IAR Embedded Workbench安装选项。
3)进入Welcome to Systems Product Setup界面,单击“Next”。
4)进入IAR Systems Software License Agreement界面,单击“Accept”按钮。
5)进入Enter User Information界面,打开安装目录中How to install(License &Key).txt文件,复制如图所示的序列号至Enter User Information界面的文本框中,单击“Next”,如下图所示。
6)进入Enter License Key界面,复制How to install(License & Key).txt文件中的Key至Enter License Key界面中的文本框中,单击“Next”,如图所示。
7)进入Select Destination Folder界面,单击Browser,选择安装目录,这里选择D盘Program Files目录下,依次单击“确定”、“Next”。
8)进入Select Program Folder界面,单击“Next”。
9)进入Review Settings Before Copying Files界面,单击“Next”。
10)进入Performing Operations安装界面。
11)进入Setup Complete界面,单击“Finish”,至此,嵌入式集成开发环境IAREWARM安装完成。
3.2.2 J-Link驱动程序安装1)启动J-Link安装包,进入安装界面,单击“Yes”。
2)单击“Next”,继续安装J-Link。
3)单击“Browser”,选择安装路径,依次单击“OK”、“Next”。
4)进入创建快捷方式选项界面,单击“Next”。
5)进入J-Link准备安装界面,单击“Next”。
6)进入安装状态。
7)进入SEGGER J-Link DLL Updater V4.20p界面,选择相应的IAR软件版本,单击“OK”。
8)进入Installation Complete界面,单击“Finish”,完成J-Link驱动的安装。
3.3 IAR EWARM环境下基于STM32软件库的应用开发3.3.1 在IAR中创建工程前期需要准备的文件1.stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h、readme.txt和main.c。
2.stm32f10x_vector.c、cortexm3_macro.s、lnkarm_ram.xcl和lnkarm_flash.xcl(如下图所示)。
3.STM32软件库中FWlib目录中的library。
其中:◆cortexm3_macro.s是一些启动函数,用汇编语言编写。
◆stm32f10x_vector.c是一些中断向量。
◆readme.txt文件用以说明该工程的用法、用途及一些需要注意的事项。
3.3.2在IAR EWARM环境下创建工程的一般步骤创建工程目录,这里选择在D盘目录下创建EXAMPLE文件夹,以保存工程文件,并将事先准备的文件(stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h、readme.txt、main.c、stm32f10x_vector.c、cortexm3_macro.s、lnkarm_ram.xcl和lnkarm_flash.xcl)复制到D:\EXAMPLE目录下。
1)启动嵌入式集成开发环境IAR EWARM,单击“Create new pr oject in currentwork space”新建工程按钮(或单击取消,再在菜单栏中单击“Project”→“Create new project in current work space”创建工程,如下图所示)。
2)进入“Creat e New Project”对话框,在“Tool chain”中选取“ARM”,“Projecttemplates”中选取“Empty project”,单击“OK”。