0 引言
以Cortex-M3為內核的處理器由于其低功耗以及低成本并且是32位處理器,越來越多的研究人員已經從51處理器、AVR等處理器開始轉移到這個領域。數(shù)字PDA系統(tǒng)設計采用的是以Cortex-M3的內核STM32ZET6控制器,但是由于STM32ZET6內部沒有MMU,不能移植WincE,Linux等操作系統(tǒng),故只能應用ucLinux,μC/OS-Ⅱ等實時操作系統(tǒng)。傳統(tǒng)的操作系統(tǒng)ucLinux,μC/OS-Ⅱ在微控制器中移植后,應用程序就開始了與操作系統(tǒng)、以及硬件驅動之間的交互,一旦要添加新的應用程序或者對應用程序的更改,代碼的修改量以及整個操作系統(tǒng)的穩(wěn)定性都會收到影響。這時就需要一種新的機制,能夠在保證系統(tǒng)穩(wěn)定性的基礎上快速設計應用程序,也正是基于這種思想,數(shù)字PDA系統(tǒng)將實時操作系統(tǒng)、硬件驅動、FATFS進行統(tǒng)一的封裝,并給出一種基于頁的機制,每一頁就是一個線程,利用μC/OS-Ⅱ操作系統(tǒng)進行任務間的切換,而應用程序只需要按照頁的設計規(guī)則,進行應用程序頁設計即可,設計最終證明是合理可靠的。
1 數(shù)字PDA系統(tǒng)原理框圖說明
數(shù)字PDA系統(tǒng)的硬件電路部分由微控制器STM32F103ZET6、16 Mb NOR FLASH存儲器、液晶顯示LCD控制電路、USB接口電路、VS1003B MP3解碼芯片電路、2 Gb misroSD卡接口電路、以及2.5~5 V電源電路組成。它的結構圖如圖1所示。
2 數(shù)字PDA系統(tǒng)硬件電路設計
?
2.1 微處理器MCU
微處理器MCU采用STM32F103ZET6 ARM芯片,其特點是低功耗、價格低、具有豐富的外設資源如FSMC控制器、USB、多路SPI和USART,并且有MDK編程手冊,易于上手。
2.2 NOR FLASH存儲器
NOR FLASH采用M29W128芯片,NOR FLASH的作用是存儲頁面資源、GUI資源、以及各種字庫資源。數(shù)字PDA系統(tǒng)硬件電路使用微控制器的FSMC控制器對M29W128 NOR FLASH進行讀寫操作,主要是為了提高對M29W128讀寫速度。M29W128NOR FLASH中的存儲的數(shù)據,也可以通過從microSD卡中讀取并進行存儲。
2.3 TFT液晶顯示電路
數(shù)字PDA系統(tǒng)硬件電路使用以HX8312為主控芯片的液晶控制電路和主控制器連接。主控制器和液晶控制電路之間的數(shù)據通信也使用主控制器的FSMC接口,目的是進行快速傳輸數(shù)據,避免液晶顯示刷屏現(xiàn)象的產生。
2.4 VS1003音頻解碼電路
VS1003是音頻解碼芯片,它支持Mpeg1和Mpeg2,WMA,MIDI,MP3解碼,同時支持IMA ADPCM(單聲道)、麥克風和線入等編碼,VS1003具有一個高性能低功耗的DSP處理器核VS_DSP,0.5 KB數(shù)據RAM。數(shù)字PDA系統(tǒng)使用VS1003音頻解碼芯片,實現(xiàn)PDA的音樂MP3的播放功能。
2.5 USB接口電路和microSD卡接口電路
STM32微控制器具有1個USB接口,該USB接口主要實現(xiàn)數(shù)字系統(tǒng)PDA在和PC機連接時的USB通信,當然也能為數(shù)字系統(tǒng)PDA系統(tǒng)供電。micro SD實現(xiàn)了數(shù)字PDA系統(tǒng)的大容量數(shù)據的存儲。
2.6 PDA內部USB轉串口電路
PL2303遵循USB協(xié)議,并且支持到RS 232的轉換。PDA數(shù)字系統(tǒng)通過PL2303電路實現(xiàn)主控制器的串口和PC之間的串口通信,這個電路主要用于系統(tǒng)調試。
2.7 電源電路
電源電路包括鋰電、5 V外接電源濾波電路、5 V轉3.3 V、3.3 V轉2.8 V、3.3 V轉2.5 V五個電路,它們主要負責分別給主控制器、解碼芯片、SD、NORFLASH提供電源。
3 數(shù)字PDA系統(tǒng)軟件系統(tǒng)設計
3.1 軟件系統(tǒng)總體介紹
相比較硬件電路來說,硬件電路一旦確定并且電路正確,基本上沒有大的變化,而軟件部分則會出現(xiàn)非常大變化,因為應用的程序是多種多樣的。但是STM32微控制器沒有像PC處理器那樣含有MMU,不能運行Linux和WinCE操作系統(tǒng),但是在很多情況下,PDA數(shù)字系統(tǒng)是要實現(xiàn)多任務操作的,或者說多線程操作,所以在這種條件下,PDA數(shù)字系統(tǒng)采選用μC/OS-Ⅱ進行多任務之間根據優(yōu)先級別的調度,而應用程序又是基于操作系統(tǒng)和硬件的,為了提高操作系統(tǒng)的穩(wěn)定性和減少在數(shù)字PDA添加應用程序時代碼的修改了,所以數(shù)字PDA系統(tǒng)將操作系統(tǒng)、GUI、硬件驅動程序、文件系統(tǒng)FATFS進行整合,采用一種頁機制,每一頁就是指一個TFT LCD顯示的頁,每一頁就是一個線程,當頁切換時,底層操作系統(tǒng)就實現(xiàn)任務的切換。
3.2 FATFS文件系統(tǒng)的移植
由于PDA數(shù)字系統(tǒng)使用SD卡作為大容量數(shù)據的存儲,雖然主控制器STM32含有SDIO接口,硬件驅動程序只要進行相應的配置就能實現(xiàn)SD的讀寫操作,但是這種操作時基于扇區(qū)的,而上層應用程序操作的是文件,所以必須移植文件系統(tǒng)。移植步驟就是將SD的讀寫扇區(qū)函數(shù)和文件系統(tǒng)的底層接口函數(shù)想關聯(lián)。數(shù)字PDA系統(tǒng)使用FATFS文件系統(tǒng),當然也可以使用FAT32文件系統(tǒng),F(xiàn)ATFS文件系統(tǒng)中diskio.c中提供五個接口函數(shù),如圖2所示。
將microSD卡驅動函數(shù)的SD扇區(qū)讀函數(shù)、扇區(qū)寫函數(shù)、以及SD初始化的函數(shù)和圖中的disk_read,disk_write,disk_initialize進行對接,當讓還要在FATFS文件系統(tǒng)中數(shù)據類型integer.h中包含stm32f10x.h以及將integer.h中的數(shù)據類型進行更改,只需要更改文件系統(tǒng)中BOOL類型數(shù)據和stm32f10x.h中的bool類型一致即可,文件系統(tǒng)就移植完了。移植了FATFS文件系統(tǒng)后,數(shù)字PDA系統(tǒng)在讀取SD卡時,就可以按照大家常用的文件格式進行讀取數(shù)據。
3.3 μC/OS-Ⅱ實時操作系統(tǒng)的移植
μC/OS-Ⅱ為PDA數(shù)字系統(tǒng)的操作系統(tǒng)提供多線程操作,任務的調度。由于系統(tǒng)需要多線程的調度,需要為數(shù)字PDA系統(tǒng)移植μC/OS-Ⅱ。數(shù)字PDA系統(tǒng)使用信號量和郵箱機制進行多任務的調度。μC/OS-Ⅱ是用標準C語言和匯編語言來寫的,只有與微處理器相關的是由匯編指令寫的,所以在STM32F103ZET6上中移植μC/OS-Ⅱ實時操作系統(tǒng),只需要更改或者重寫處理器相關文件OS_CPU.H和OS_CPU_C.C,匯編文件OS_CPU-A.ASM,系統(tǒng)配置文件OS_CFG.h。
3.4 硬件驅動程序
數(shù)字PDA系統(tǒng)在調用微控制器的各種外設接口資源、以及各種硬件資源時需要調用這些硬件資源的驅動程序。數(shù)字PDA系統(tǒng)的硬件驅動程序由串口打印輸出驅動程序、SD卡驅動程序、VS1003B硬件驅動程序、TFT LCD液晶顯示器驅動程序、3個SPI串行通信口的驅動程序、NOR FLASH和STM32 FSMC接口驅動程序、觸摸屏TSC2046驅動程序組成。以上的驅動程序保證了各個模塊硬件資源的正常工作。作為最底層驅動程序,這些程序保證了整個數(shù)字PDA系統(tǒng)能夠實現(xiàn)各種應用程序。
3.5 頁與GUI圖形界面接口
數(shù)字PDA系統(tǒng)要在TFT LCD液晶顯示器中的進行圖形界面的顯示,需要GUI的支持,數(shù)字PDA系統(tǒng)采GUI設計沒有移植uCGui,而是根據液晶控制器重寫的GUI,由于STM32F103ZET6微控制器的時鐘為72 MHz,這樣寫的好處在于提高液晶頁面顯示的速度,減少刷屏現(xiàn)象的產生,提高PDA液晶畫面顯示的質量。
數(shù)字PDA系統(tǒng)將以上的所有軟件進行了整合,將液晶屏顯示一個頁作為一個線程,頁面進行切換就實現(xiàn)了任務的切換,任務的切換由操作系統(tǒng)實現(xiàn)。通過頁機制的框架,在應用程序進行修改或者添加新的應用程序時,減少了代碼的修改量,保證系統(tǒng)的穩(wěn)定性。
數(shù)字PDA系統(tǒng)啟動后就進入主頁線程,操作系統(tǒng)系統(tǒng)根據硬件中斷和信號量郵箱機制,進行也切換,頁切換的時候,會調用文件系統(tǒng)或者硬件驅動程序,這就是PDA系統(tǒng)的工作原理。
4 結語
數(shù)字PDA設計是在硬件電路設計上移植文件系統(tǒng)、操作系統(tǒng)上完成的,整個系統(tǒng)不僅要求硬件電路的兼容正確,同時也要求FATFS文件系統(tǒng)和μC/OS-Ⅱ操作系統(tǒng)的移植正確,整個系統(tǒng)基于頁的機制進行任務切換,經過實際證明頁機制可以進行快速嚴謹?shù)膽贸绦蜷_發(fā)。
評論
查看更多