您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 基于STM32的嵌入式系统原理与设计第四章
LOGOLOGO基于STM32的嵌入式系统原理与设计第四章工程项目实例主讲教师:EMAL:博客:交流论坛:开发板和教程:原作者:卢有亮有修改请发修改稿到论坛以更有利于其他人教学!要点需求分析工程设计软件开发设计题第四章工程项目实例•学到的知识要转化为成果,就要开发工程项目。将学到的知识应用于实际,才能转化为价值。在工程项目中克服困难解决问题,才能将知识转化为能力。•本书的工程实例应用于实际的多电源检测系统工程。由于基于STM32的μC/OS和μC/GUI部分在亮点嵌入式后续的书籍中,因此,本章完成不需要μC/OS和μC/GUI的从机部分,主机部分需要μC/OS和μC/GUI,在后续书籍中给出。•本章引领读者,如何去分析和开始做一个工程。•既然是工程,就要从需求分析开始。4.1需求分析4.1.1需求MDKKEIL•需求,是用户想要达到的目标。目标没搞清楚,技术再先进也达不到理想的结果。因此,项目的开发都是从需求开始的。1.用户是“上帝”,但不一定是专家。需求没搞清楚需要返工的时候,多批评自己而不是责怪用户。2.与用户友好沟通,多接触多学习。3.立下字据让用户签字确认。项目的开发应以协议或合同为准,可以满足用户额外的部分需求,有的时候用户看到产品才觉得需要做需求的改进。4.1需求分析4.1.1需求MDKKEIL该工程项目的被测控设备如下表:•1.电源A:被检测信号:电压,电流,过流控制信号:开关•2.电源B:被检测信号:电压,电流,过流控制信号:开关•3.电源C:被检测信号:电压,电流,过流控制信号:开关•4.电源D:被检测信号:电压控制信号:开关,发射•5.功率设备:被检测信号:电压(表示功率)控制信号:数字量5根,根据功率查表进行设置。4.1需求分析4.1.1需求MDKKEIL•需要以图形的方式在480X272的屏幕上显示各电源电压电流值,需要以触摸的方式按键控制各电源及功率设备的开关,需要输入功率值以5根数字信号控制功率设备。•功率设备与电源之间需要隔离。4.1需求分析4.1.2分析MDKKEIL•需要检测7路模拟电压,由于功率设备和电源之间去要隔离,因此需要采用主从机的模式,主机和从机之间需进行高压隔离。•主机应具备带触摸液晶屏,需要的接口如下:•1.1路RS232接口,通过隔离电路与从机通过RS232相连,发送命令和接收数据。•2.1路模拟输入,检测功率信号。•3.10根GPIO输出,其中5根设置功率,4根设置4个电源的开关,1根用来设置电源4的发射。4.1需求分析4.1.2分析MDKKEIL•从机不需要液晶屏,需要的接口如下:•1.1路RS232接口,通过隔离电路与主机通过RS232相连,接收命令和发送数据。•2.7路模拟输入,检测电压电流信号。•3.3路GPIO输入信号,分别是3个电源的过流信号。•从机需编程实现的主要功能:•多路AD采集•GPIO信息采集•采集信息打包发送到串口4.2工程设计4.2.1总体设计4.2工程设计4.2.2硬件端口设计(分配)•从第2章的硬件设计来看,亮点STM32开发板的功能完全满足了项目的需要,有独立的模拟和数字接口,因此使用该开发板就可以实现项目的需要,对应的问题转化为分配具体的管脚功能。有多路的串口,因为串口1已经转为USB接口输出,工程中采用串口4就可以满足项目的需要。•亮点STM32开发板的模拟接口(附录A,P234表A-4)还提供了4路的GPIO,因此不需要采用其他接口了。端口功能分配见P224表4-14.2工程设计4.2.3从机软件设计•采集7路模拟量,并将其值通过串口发送给主机•在主循环中实现即可。注意对7路模拟量都需要通过一个积分滤波的方式进行滤波,然后周期性的发送给主机。考虑采用DMA方式采集AD数据,•设计软件流程图4-24.2工程设计4.2.3从机软件设计•发送数据格式(简单协议)4.3软件开发4.3.1宏和变量定义•为方便系统修改,增强系统的可读性,定义了AD采集次数和AD通道数,过流信号的管脚和通道等宏,这些定义在bp_config.h中。4.3软件开发4.3.1宏和变量定义•全局变量在主程序main.c中定义,定义了一个二维数据AD_Value用来存储每个通道一次DMA采集缓存的采集数据,一维数组After_filter用来存放滤波后的数据。4.3软件开发4.3.2主程序编程•初始化变量,时钟使能,初始化串口,初始化ADC和DMA,启动DMA4.3软件开发4.3.2主程序编程启动AD转换,延时等待转换完成后暂停转换,这时缓冲区中为采集到的数据。调用函数对缓冲区的采集数据进行处理,将滤波后的数值存储到全局数组CJDY中4.3软件开发4.3.2主程序编程主循环下半部分,读GPIO,根据结果设置CJDY[8]的各个位。然后,将数组CJDY的数据循环发送到串口。CJDY为16位类型,因此先发高8位,再发低8位。设计题一采集系统采集系统以12位精度和100K采样率采集3通道模拟电压,将其通过网络发送到远程主机,设计基于STM32的方案完成采集和发送硬件和软件设计,并编程实现。作业•无LOGOLOGO亮点嵌入式
本文标题:基于STM32的嵌入式系统原理与设计第四章
链接地址:https://www.777doc.com/doc-6826277 .html