基于飛思卡爾MK10N512微控制器及MQX操作系統的電梯主控系統設計
FlexBus接口具有5個(gè)用戶(hù)可編程片選信號(FB_CS[5:0]),FB_CS[5:0]片選信號通過(guò)片選基址寄存器FB_CSARn和片選掩碼寄存器FB_CSMRn來(lái)控制?;芳拇嫫鱂B_CSARn[31:16]設置訪(fǎng)問(wèn)地址的高16位,片選掩碼寄存器FB_CSMRn[31:16]用于屏蔽訪(fǎng)問(wèn)地址的低16位?;芳拇嫫鱂B_CSARn設置訪(fǎng)問(wèn)外設最大空間為216=64kbyte,配合掩碼寄存器設置訪(fǎng)問(wèn)外設最大空間為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。
本文引用地址:http://dyxdggzs.com/article/248893.htmFlexBus接口可以連接8位、16位、32位數據總線(xiàn),支持字節、字和長(cháng)字操作數傳輸。FlexBus接口還支持Burst傳輸,實(shí)現一個(gè)周期最多可以傳輸16 Byte。本設計采用8位數據總線(xiàn),為了提高效率,采用Burst傳輸,實(shí)現一個(gè)周期傳輸4Byte。MK10N512的FB_AD31-24管腳連接存儲器的數據線(xiàn)D7-D0管腳,故數據傳輸采用左對齊的方式,控制寄存器FB_CSCR0設置如下:FB_CSCR0[BLS]=0b,FB_CSCR0[PS]=01b,FB_BSTR0[PS]=1b,FB_CSCR0[BSTW]=1b。
5 主控系統軟件設計
5.1 開(kāi)發(fā)環(huán)境
Code Warrior Developer Studio 10.2開(kāi)發(fā)環(huán)境是飛思卡爾專(zhuān)門(mén)針對其微控制器的集成開(kāi)發(fā)環(huán)境。它是基于eclipse框架的集成開(kāi)發(fā)環(huán)境,包括項目管理器、文本編輯器、匯編器、C/C++編譯器、連接器和調試器。通過(guò)安裝插件的方式,可以添加MQX實(shí)時(shí)操作系統調試工具。MQX調試工具能實(shí)現監控系統內核數據、任務(wù)的運行情況和占用內存、信號量(Semaphores)和事件(Event)等的使用情況,非常便于基于MQX操作系統的程序調試。相比其他集成開(kāi)發(fā)環(huán)境,Code Warrior Developer Studio 10.2對飛思卡爾公司開(kāi)發(fā)的微控制器和MQX實(shí)時(shí)操作系統,能提供最新、最快、最好的支持。
5.2 軟件架構
軟件架構如圖5所示,采用分層結構,包括PSP(Processor Service Package)、BSP(Board Service Package)、MQX內核、定時(shí)控制程序、中斷控制程序、電梯控制任務(wù)和通信數據處理任務(wù)。PSP和BSP是硬件驅動(dòng)層,負責初始化CPU、板上外設、總線(xiàn)接口、通信接口、以及提供訪(fǎng)問(wèn)硬件的接口。MQX內核是操作系統層,提供任務(wù)管理、內存管理、任務(wù)間的通信與同步、中斷管理、時(shí)間管理等系統級服務(wù)及接口函數。定時(shí)控制程序及中斷控制程序為系統中間層,為電梯任務(wù)與操作系統的中間控制層,是根據電梯任務(wù)的特點(diǎn),調用操作系統的任務(wù)接口A(yíng)PI實(shí)現對電梯任務(wù)的調度處理。電梯控制任務(wù)和通信數據處理任務(wù)為用戶(hù)層。電梯控制任務(wù)負責根據召喚信息控制電梯的運行。通信數據處理任務(wù)負責處理電梯主制系統與調試工具、召喚系統、大樓智能控制系統的數據通信,并把通信數據傳輸給電梯控制任務(wù)。
5.3 系統初始化
系統上電后,首先對硬件進(jìn)行初始化,即對MCU的內部寄存器和外設寄存器賦初始值,包括初始化棧指針寄存器SP的值。接著(zhù)對程序定義的變量進(jìn)行初始化,包括對不帶初始值的變量進(jìn)行清零;對有初始值的變量,把其初始值從ROM賦值到RAM;對程序定義的對象進(jìn)行初始化。完成上述初始化之后,就可以對實(shí)時(shí)操作系統MQX進(jìn)行初始化,創(chuàng )建MQX系統內存空間,初始化最基本的組件,創(chuàng )建IDLE空閑任務(wù)和Main_task自動(dòng)運行任務(wù),并且進(jìn)入Main_task自動(dòng)運行任務(wù)。至此MQX系統初始化就基本完成,接著(zhù)可以開(kāi)始用戶(hù)任務(wù)程序初始化。Main_task任務(wù)初始化定時(shí)控制程序、中斷控制程序、電梯控制任務(wù)和通信數據處理任務(wù)。Main_task任務(wù)完成用戶(hù)任務(wù)初始化后,把任務(wù)運行的控制權交給定時(shí)控制程序和中斷控制程序,系統開(kāi)始運行電梯控制任務(wù)和通信數據處理任務(wù)。系統初始化流程如圖6所示。
單片機相關(guān)文章:單片機教程
linux相關(guān)文章:linux教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論