基于STM32處理器的數字PDA系統設計
3 數字PDA系統軟件系統設計
3.1 軟件系統總體介紹
相比較硬件電路來說,硬件電路一旦確定并且電路正確,基本上沒有大的變化,而軟件部分則會出現非常大變化,因為應用的程序是多種多樣的。但是STM32微控制器沒有像PC處理器那樣含有MMU,不能運行Linux和WinCE操作系統,但是在很多情況下,PDA數字系統是要實現多任務操作的,或者說多線程操作,所以在這種條件下,PDA數字系統采選用μC/OS-Ⅱ進行多任務之間根據優先級別的調度,而應用程序又是基于操作系統和硬件的,為了提高操作系統的穩定性和減少在數字PDA添加應用程序時代碼的修改了,所以數字PDA系統將操作系統、GUI、硬件驅動程序、文件系統FATFS進行整合,采用一種頁機制,每一頁就是指一個TFT LCD顯示的頁,每一頁就是一個線程,當頁切換時,底層操作系統就實現任務的切換。
3.2 FATFS文件系統的移植
由于PDA數字系統使用SD卡作為大容量數據的存儲,雖然主控制器STM32含有SDIO接口,硬件驅動程序只要進行相應的配置就能實現SD的讀寫操作,但是這種操作時基于扇區的,而上層應用程序操作的是文件,所以必須移植文件系統。移植步驟就是將SD的讀寫扇區函數和文件系統的底層接口函數想關聯。數字PDA系統使用FATFS文件系統,當然也可以使用FAT32文件系統,FATFS文件系統中diskio.c中提供五個接口函數,如圖2所示。本文引用地址:http://www.104case.com/article/160480.htm
將microSD卡驅動函數的SD扇區讀函數、扇區寫函數、以及SD初始化的函數和圖中的disk_read,disk_write,disk_initialize進行對接,當讓還要在FATFS文件系統中數據類型integer.h中包含stm32f10x.h以及將integer.h中的數據類型進行更改,只需要更改文件系統中BOOL類型數據和stm32f10x.h中的bool類型一致即可,文件系統就移植完了。移植了FATFS文件系統后,數字PDA系統在讀取SD卡時,就可以按照大家常用的文件格式進行讀取數據。
3.3 μC/OS-Ⅱ實時操作系統的移植
μC/OS-Ⅱ為PDA數字系統的操作系統提供多線程操作,任務的調度。由于系統需要多線程的調度,需要為數字PDA系統移植μC/OS-Ⅱ。數字PDA系統使用信號量和郵箱機制進行多任務的調度。μC/OS-Ⅱ是用標準C語言和匯編語言來寫的,只有與微處理器相關的是由匯編指令寫的,所以在STM32F103ZET6上中移植μC/OS-Ⅱ實時操作系統,只需要更改或者重寫處理器相關文件OS_CPU.H和OS_CPU_C.C,匯編文件OS_CPU-A.ASM,系統配置文件OS_CFG.h。
3.4 硬件驅動程序
數字PDA系統在調用微控制器的各種外設接口資源、以及各種硬件資源時需要調用這些硬件資源的驅動程序。數字PDA系統的硬件驅動程序由串口打印輸出驅動程序、SD卡驅動程序、VS1003B硬件驅動程序、TFT LCD液晶顯示器驅動程序、3個SPI串行通信口的驅動程序、NOR FLASH和STM32 FSMC接口驅動程序、觸摸屏TSC2046驅動程序組成。以上的驅動程序保證了各個模塊硬件資源的正常工作。作為最底層驅動程序,這些程序保證了整個數字PDA系統能夠實現各種應用程序。
3.5 頁與GUI圖形界面接口
數字PDA系統要在TFT LCD液晶顯示器中的進行圖形界面的顯示,需要GUI的支持,數字PDA系統采GUI設計沒有移植uCGui,而是根據液晶控制器重寫的GUI,由于STM32F103ZET6微控制器的時鐘為72 MHz,這樣寫的好處在于提高液晶頁面顯示的速度,減少刷屏現象的產生,提高PDA液晶畫面顯示的質量。
數字PDA系統將以上的所有軟件進行了整合,將液晶屏顯示一個頁作為一個線程,頁面進行切換就實現了任務的切換,任務的切換由操作系統實現。通過頁機制的框架,在應用程序進行修改或者添加新的應用程序時,減少了代碼的修改量,保證系統的穩定性。
數字PDA系統啟動后就進入主頁線程,操作系統系統根據硬件中斷和信號量郵箱機制,進行也切換,頁切換的時候,會調用文件系統或者硬件驅動程序,這就是PDA系統的工作原理。
4 結語
數字PDA設計是在硬件電路設計上移植文件系統、操作系統上完成的,整個系統不僅要求硬件電路的兼容正確,同時也要求FATFS文件系統和μC/OS-Ⅱ操作系統的移植正確,整個系統基于頁的機制進行任務切換,經過實際證明頁機制可以進行快速嚴謹的應用程序開發。
評論