基于STM32的无线通信系统设计课程设计(共46页).doc
《基于STM32的无线通信系统设计课程设计(共46页).doc》由会员分享,可在线阅读,更多相关《基于STM32的无线通信系统设计课程设计(共46页).doc(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 课程设计说明书题 目: 基于STM32的无线通信系统设计课 程: ARM课程设计院 (部): 计算机科学与技术学院专 业: 计算机科学与技术专业班 级: 学生姓名: 学 号: 指导教师: 完成日期: 目录专心-专注-专业山东建筑大学计算机科学与技术学院课程设计任务书设计题目基于STM32的无线通信系统设计指导教师 班 级 学 号 已知技术参数和设计要求技术参数:基于Cortex-M3内核的奋斗STM32开发板,无线射频收发器nRF24L01P工作于2.4GHz频段,STM32和nRF24L01P之间采用SPI接口方式,嵌入式操作系统平台采用uC/OS-II。设计要求
2、:用STM32开发板和nRF24L01扩展板设计一个基于uC/OS-II的无线通信系统,能够实现两个无线节点间的数据收发。设计内容与步骤设计内容:1. 编写STM32和nRF24L01P的初始化程序。2. 将uC/OS-II移植至 STM32。3. 设计简单的无线通信协议,编写无线通信任务和射频收发中断服务子程序。设计步骤:1 uC/OS-II任务划分及概要设计,ISR的功能设计。2 编写 STM32和nRF24L01P的初始化程序,调试STM32的片内定时器模块,编写基于nRF24L01P模块的数据收发ISR。3 编写与移植相关的几个函数,将uC/OS-II移植至 STM32。4 拟定通信协
3、议,编写无线通信任务。5 利用两套STM32开发板和nRF24L01扩展板调试上述功能,总结分析,撰写课程设计说明书。设计工作计划与进度安排1、 奋斗STM32开发版资源及应用:10学时2、 Cortex M3权威指南、STM32F10X参考手册、STM32固件库手册:20学时3、 MDK安装及使用:5学时4、 概要设计:15学时5、 uC/OS-II移植及所用外设的驱动程序编写:10学时6、 无线通信任务编程及调试:15学时7、 撰写课程设计说明书:15学时设计考核要求1、 考勤20%2、 课程设计说明书50%。3、 成果演示30%1. 课程设计题目 基于STM32的无线通信系统设计2. 课
4、程设计目的ARM课程设计是计算机科学与技术专业的专业限定选修实践课程,是学习嵌入式系统设计课程后必要的实践教学环节。通过本课程设计使学生加深理解、巩固课堂教学和平时实验内容,使学生初步具备嵌入式应用系统分析、系统设计、系统实现与测试的实际能力,强化学生的实践意识、提高动手能力,发挥学生的想象力和创新能力,从而实现课程教学目标。提高综合运用所学知识进行系统分析、设计的能力。加深对嵌入式软件开发流程以及项目开发步逐的认识,进一步熟悉UC/OS-II的一直与使用,进一步熟悉UCGUI的使用,提高嵌入式软件开发所必须的技能。本课程设计主要培养学生在嵌入式系统设计方面的能力。通过本课程的学习和实践,学生
5、应能在嵌入式系统组成形式、构造方法、设计流程以及基于集成开发环境调试嵌入式系统的方法等方面得到锻炼,在硬件系统设计(整合)、操作系统移植、应用程序编写等方面得到全面训练。3. 课程设计内容3.1 硬件资源基于奋斗STM32开发板,完成的设计及调试。系统涉及的硬件资源主要有:(1) 电源模块AMS1117-3.3(N1)输入+5V,提供3.3V 的固定电压输出,为了降低电磁干扰,C1-C5 为CPU 提供BANK 电源(VCC:P50、P75、P100、P28、P11 GND:P49、P74、P99、P27、P10)滤波。CPU 的模拟输入电源供电脚VDDA(P22)通过L1 22uH 的电感与
6、+3.3V VDD 电压连接,CPU 的模拟地VSSA(P19)及VREF-(P20)通过R1 0 欧电阻与GND 连接。VREF+(P21)采用VDDA(P22)电源基准。 RT9166-2.5(N2)和RT9166-2.8(N3)输入+5V,提供2.5V 及2.8V 的固定电压输出,为MP3 电路VS1003 提供所需的电压。为RTC 的备份电源采用V1 3.3V 锂离子片状电池,如图3.1。 图3.1(2) 复位时钟模块 外部晶体/陶瓷谐振器(HSE)(P12、P13):B1:8MHz 晶体谐振器,C8,C9 谐振电容选择10P。系统的时钟经过PLL 模块将时钟提高到72MHz。 低速外
7、部时钟源(LSE)(P8、P9):B2: 32.768KHz 晶体谐振器。C10,C11 谐振电容选择10P。注意: 根据 ST 公司的推荐, B2 要采用电容负载为6P 的晶振,否则有可能会出现停振的现象,时钟模块如图3.2所示。图3.2(3) 主控芯片采用STM32F103VET6 作为开发板的MCU 平台。这个MCU 是STM32F103里的高容量芯片, 具有512K 字节的内部FLASH,64K 字节的SRAM, 外设资源有全速USB Device,SDIO,SPI,I2C,I2S,FSMC,定时器,USART,ADC,DAC,CAN 等接口,如图3.3所示。图3.3(4) LCD液晶
8、显示模块LCD显示模块采用STM32 的FSMC 接口模式。显示速度更快。3 寸屏, 分辨率240X400, 64K 色,数据接口16 位,背光源是4 LED 并联模式, 背光驱动采用白光驱动器提供背光用的横流源, 使背光更加均匀,背光明暗控制采用TTL 电平或者PWM 模式控制。屏上带电阻式触摸屏, 模块板上带SPI 控制方式的触摸屏控制电路,如图3.4所示。图3.4(5) 串行接口拥有 1 路RS-232 接口,CPU 的PA9-US1-TX(P68)、PA10-US1-RX(P69)通过MAX3232实现1 路RS-232 接口,分别连接在XS5 和XS17 接口上。 USART1 在系
9、统存储区启动模式下,可以通过该口通过PC 对板上的CPU 进行ISP,该口也可作为普通串口功能使用, XS6接口作为TTL 异步通信接口USART2 的接口,在一些应用的调试上有作用,比如通过XS6连接GPS OEM 板, 可以接收GPS 的协议数据。串行接口如图3.5所示。USART1 地址:0x4001 3800 - 0x4001 3BFFUSART2 地址:0x4000 4400 - 0x4000 47FF图3.5(6) NRF24L01 模块简介本实验采用的无线模块芯片型号为 NRF24L01+,是工作在 2.42.5GHz频段的,具备自动重发功能,6 个数据传输通道,最大无线传输速率
10、为2Mbits。MCU 可与该芯片通过 SPI 接口访问芯片的寄存器进行配置,模块规格如图3.6所示。图3.6 SPI写操作图3.7SPI读操作图3.83.2软件资源(1) 操作系统A 操作系统介绍本设计所使用的UC/OS-II操作系统版本号为2.85,是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器C/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器;最小编译内核可达到2KB,结构精简,硬件要求低。B 目录结构(a) UC-OS-I
11、I/Port在此目录下包含三个文件,OS_CPU_C.C,OS_DBG.C,OS_CPU_A.ASM;1. 在OS_CPU_C.C中,定义了系统初始化,系统滴答,系统堆栈初始化等钩子函数函数,其中,除了系统堆栈初始化是“可重入的”,其他函数都是不可冲入函数,在执行期间必须关闭中断,否则系统将会出现不可预料的错误。2. 在OS_DBG.C中,声明了调试相关的数据结构,以及全局的数据结构配置声明数据信息,以及系统调试初始化函数;3. 在OS_CPU_A.ASM中,使用arm汇编程序完成了全局中断的保存于回复,最高就绪态的执行,系统上下文切换,系统异常挂起以及进入异常的堆栈操作等函数;(b) UC-
12、OS-II/CPU在此目录下仅有CPU_A.asm这一个文件,通篇使用arm汇编完成;主要操作有中断的使能与清除;临界区操作(进出临界区);(c) UC-OS-II/Source在此目录下是操作系统的平台无关性源码,保存了系统核心代码、邮箱,内存管理,信号量,消息队列,临界资源控制,时间控制等操作系统的各种高级应用API接口函数,是操作系统的主要功能实现部分;C 修改内容在通过以上的了解之后,UC-OS-II系统的源码结构十分清晰,在此只需要修改UC-OS-II/Port,UC-OS-II/CPU这两个文件中的少量代码即可(细节将在详细设计中介绍)。(2) 固件库stm32f10x_stdpe
13、riph_lib,版本为3.5.0,系统库的结构如图3.9所示:图3.9CMSCS文件夹内包含的内容与cpu内核和cpu启动相关的文件,stm32F10x_stdperiph_driver文件内包含了stm32f10x系列所有外设的驱动库;stm32f10x_stdperiph_example内包含了多个关于本系列芯片的一些例程;stm32f10x_stdperiph_templete内包含了多种开发平台的模板;最下面的chm文件为关于固件库的使用说明;A MSICS文件,如图3.10所示:图3.10core_m3.c为内核相关源码;start_up_stm32f10x.hd.s为stm32f
14、10x高容量系列的启动文件;system_stm32f10x.c为系统时钟和cpu设置相关配置的源码;B stm32F10x_stdperiph_driver这个文件夹内容如图3.11,包含两个部分,为库的外设驱动源码文件夹,inc中保存头文件,src保存相关外设的源文件。图3.11图3.12所示的是外设驱动库的头文件的内容:图3.12图3.13所示的是外设驱动库的C文件内容:图3.13在本设计中仅使用FSMC,GPIO,RCC,MSIC,EXTI,SPI六个部分;因此只需添加这三个原文件即可;其中FSMC用来做液晶显示驱动;RCC为操作系统提供systick;MSIC提供了中断相关的函数;G
15、PIO用来做USB的开关控制;EXTI使用外部中断;SPI提供SPI总线操作,为NRF24C01和触摸屏提供支持;因此以上部分必须添加;头文件在工程设置中C/C+现象卡中的includePATH里面选择;(3) UCGUIuC/GUI是Micrium公司研发的通用的嵌入式用户图像界面软件。他给任何使用图像LCD的应用程序提供单独于处理器和LCD控制器之外的有效的图形用户接口。能够应用于单一任务环境,也能够应用于多任务环境中。uC/GUI能够应用于任何LCD控制器和CPU的任何尺寸的物理显示或模拟显示中。在此,使用的UCGUI已经封装成库文件,所有的调用接口可以在GUI.h等头文件里面看到。用户
16、应用程序只需描述关于窗口的数据结构,GUI显示初始化函数,回调函数,以及用户界面任务函数四个部分;进行显示任务设计时可以借助UCGUIBulider,通过图形界面设计产生比较准确的界面布局数据,在本设计中,由于涉及到较多的按键,因此UCGUIBulider只能编辑到BUTTON9,需要注意的是GUI.H里面定义了用户自定义ID,可以借助这个ID在基础上增加数字实现 大范围ID定义。3.3 调试环境准备与使用(1) MDK编译调试环境安装MDK安装:首先安装MDK,是常规安装,next,agree。最后选择不安装ULINK等;安装完毕后,以管理员身份运行keil,在file-lisenceMan
17、agement拷给CID,然后打开破解软件,拷贝CID,generation拷贝lisence码至keil的lisenceManagement内的license栏,add添加lisence看到2020年的使用期限则破解成功;(2) JLINK驱动安装JLINK安装与常规软件安装无异,最后可以不建立桌面快捷方式和菜单启动选项;(3) MDK建立工程(4) MDK项目属性设置(5) 使用MDK调试工程(6) 使用MDK下载运行3.4 系统设计步骤341需求分析(1) 本设计需要实现功能:编写STM32和nRF24L01P的初始化程序。将uC/OS-II移植至 STM32。设计简单的无线通信协议,编
18、写无线通信任务和射频收发中断服务子程序。(2) 性能价格要求:A 在开发板固有硬件资源上尽量不增加硬件资源;选择免费开源嵌入式操作系统;B 使用操作系统,提高任务调度,资源管理,系统稳定性;使用中断提高响应速度。(3) 热设计要求:开发板功耗相对较低,发热元器件分布为分散,不需要其他措施来提高散热能力;(4) 信息安全要求:本设计为实验产品,暂不考虑在PC机与开发板通信过程中增加加密模块;如果是在工程项目中,有必要开率增加通信加密模块(AES或者LBLock都可考虑)。342概要设计(1)软件结构图图形输入输出界面和无线收发任务uCGUI库文件uCOSII实时操作系统ST库NRF驱动LCD驱动
19、图3.14(2)程序流程图开始底层驱动初始化系统时钟、中断向量、LED指示灯、串口、uCOS操作系统、uCGUI、触摸屏初始化检测无线模块连接情况绘制搜索无线模块界面NRF模块是否连接初始化NRF无线模块配置NRF为接收模式绘制输入输出界面是否是否有输入接收数据,并将数据显示在液晶屏上是否否是是否有发送请求NRF切换成发送模式发送数据发送完成后是否接到响应是否达到最大发送次数NRF切换至接收模式是是否否(2)任务和ISR描述A任务描述编号任务名称英文简称优先级堆栈容量(BYTE)任务描述1开始任务App_TaskStart2128创建其他子任务2用户界面AppTaskUserIF5256创建输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 无线通信 系统 设计 课程设计 46
限制150内