基于飞思卡尔MK10N512微控制器及MQX操作系统的电梯主控系统设计
FlexBus接口具有5个用户可编程片选信号(FB_CS[5:0]),FB_CS[5:0]片选信号通过片选基址寄存器FB_CSARn和片选掩码寄存器FB_CSMRn来控制。基址寄存器FB_CSARn[31:16]设置访问地址的高16位,片选掩码寄存器FB_CSMRn[31:16]用于屏蔽访问地址的低16位。基址寄存器FB_CSARn设置访问外设最大空间为216=64kbyte,配合掩码寄存器设置访问外设最大空间为232=4GByte。本设计中SRAM容量为512kbyte,位于CS0区域,故需要配合掩码寄存器一并设置,如FB_CSAR0[31:16] = 0x6000;FB_CSMR0[31:16] = 0x0007,其区域容量为2(16+3)=512Kbyte。而FeRAM容量为32kbyte,位于CS1区域,只需设置基址寄存器即可,如FB_CSAR0[31:16] = 0x6010。
本文引用地址:https://www.eepw.com.cn/article/248893.htmFlexBus接口可以连接8位、16位、32位数据总线,支持字节、字和长字操作数传输。FlexBus接口还支持Burst传输,实现一个周期最多可以传输16 Byte。本设计采用8位数据总线,为了提高效率,采用Burst传输,实现一个周期传输4Byte。MK10N512的FB_AD31-24管脚连接存储器的数据线D7-D0管脚,故数据传输采用左对齐的方式,控制寄存器FB_CSCR0设置如下:FB_CSCR0[BLS]=0b,FB_CSCR0[PS]=01b,FB_BSTR0[PS]=1b,FB_CSCR0[BSTW]=1b。
5 主控系统软件设计
5.1 开发环境
Code Warrior Developer Studio 10.2开发环境是飞思卡尔专门针对其微控制器的集成开发环境。它是基于eclipse框架的集成开发环境,包括项目管理器、文本编辑器、汇编器、C/C++编译器、连接器和调试器。通过安装插件的方式,可以添加MQX实时操作系统调试工具。MQX调试工具能实现监控系统内核数据、任务的运行情况和占用内存、信号量(Semaphores)和事件(Event)等的使用情况,非常便于基于MQX操作系统的程序调试。相比其他集成开发环境,Code Warrior Developer Studio 10.2对飞思卡尔公司开发的微控制器和MQX实时操作系统,能提供最新、最快、最好的支持。
5.2 软件架构
软件架构如图5所示,采用分层结构,包括PSP(Processor Service Package)、BSP(Board Service Package)、MQX内核、定时控制程序、中断控制程序、电梯控制任务和通信数据处理任务。PSP和BSP是硬件驱动层,负责初始化CPU、板上外设、总线接口、通信接口、以及提供访问硬件的接口。MQX内核是操作系统层,提供任务管理、内存管理、任务间的通信与同步、中断管理、时间管理等系统级服务及接口函数。定时控制程序及中断控制程序为系统中间层,为电梯任务与操作系统的中间控制层,是根据电梯任务的特点,调用操作系统的任务接口API实现对电梯任务的调度处理。电梯控制任务和通信数据处理任务为用户层。电梯控制任务负责根据召唤信息控制电梯的运行。通信数据处理任务负责处理电梯主制系统与调试工具、召唤系统、大楼智能控制系统的数据通信,并把通信数据传输给电梯控制任务。
5.3 系统初始化
系统上电后,首先对硬件进行初始化,即对MCU的内部寄存器和外设寄存器赋初始值,包括初始化栈指针寄存器SP的值。接着对程序定义的变量进行初始化,包括对不带初始值的变量进行清零;对有初始值的变量,把其初始值从ROM赋值到RAM;对程序定义的对象进行初始化。完成上述初始化之后,就可以对实时操作系统MQX进行初始化,创建MQX系统内存空间,初始化最基本的组件,创建IDLE空闲任务和Main_task自动运行任务,并且进入Main_task自动运行任务。至此MQX系统初始化就基本完成,接着可以开始用户任务程序初始化。Main_task任务初始化定时控制程序、中断控制程序、电梯控制任务和通信数据处理任务。Main_task任务完成用户任务初始化后,把任务运行的控制权交给定时控制程序和中断控制程序,系统开始运行电梯控制任务和通信数据处理任务。系统初始化流程如图6所示。
单片机相关文章:单片机教程
linux相关文章:linux教程
单片机相关文章:单片机视频教程
单片机相关文章:单片机工作原理
评论