STR71xF嵌入式系統(tǒng)設計和實踐
0 前言
隨著信息化、智能化、網(wǎng)絡化的發(fā)展,嵌入式系統(tǒng)技術也將獲得廣闊的發(fā)展空間。以信息家電為代表的互聯(lián)網(wǎng)時代嵌入式產(chǎn)品,不僅為嵌入式市場展現(xiàn)了美好前景,注人了新的生命,同時也對嵌入式系統(tǒng)技術提出了新的挑戰(zhàn)。這主要包括:支持日趨增長的功能密度、靈活的網(wǎng)絡聯(lián)接、輕便的移動應用和多媒體的信息處理。
由于因特網(wǎng)技術的成熟、帶寬的提高,ICP和ASP在網(wǎng)上提供的信息內容日趨豐富、應用項目多種多樣,像電話手機、電話座機及電冰箱、微波爐等嵌入式電子設備的功能不再單一,電氣結構也更為復雜。為了滿足應用功能的升級,設計師們一方面采用更強大的嵌入式處理器如32位、64位RISC芯片增強處理能力;同時還采用實時多任務編程技術和交叉開發(fā)工具技術來控制功能復雜性,簡化應用程序設計、保障軟件質量和縮短開發(fā)周期。
ARM微處理器因其卓越的低功耗、高性能在32位嵌入式應用中已位居世界第一,是高性能、低功耗嵌入式處理器的代名詞。為了順應當今世界技術革新的潮流,了解、學習和掌握嵌入式技術,就必然要學習和掌握以ARM微處理器為核心的嵌入式開發(fā)環(huán)境和開發(fā)流程,這對于研究和開發(fā)高性能微處理器、DSP以及開發(fā)基于SOC芯片設計及應用系統(tǒng)是非常必要的。作為電子信息專業(yè)的本科生很有必要了解和掌握32位嵌入式應用的開發(fā)技術。所以,通過對嵌入式系統(tǒng)設計課程的學習和本次設計的實踐,一方面使學生具有較強的綜合素質,成為具有良好的實際操作能力設計能力符合社會需求的開拓性電子應用人才,另一方面也可為高年級本科生提供一個可擴展的嵌入式系統(tǒng)設計平臺。
1 STR710FZ2TB微處理器介紹
嵌入式微處理器的基礎是通用計算機中的CPU。在應用中,將微處理器裝配在專門設計的電路板上,只保留和嵌入式應用有關的母板功能,這樣可以大幅度減小系統(tǒng)體積和功耗。為了滿足嵌入式應用的特殊要求,嵌入式微處理器雖然在功能上和標準微處理器基本是一樣的,但在工作溫度和工業(yè)控制計算機相比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優(yōu)點,嵌入式處理器目前主要有Power PC, 68000, MIPS, ARM系列等。
STR710F 系列產(chǎn)品以工業(yè)標準的ARM7TDMI 32位RISC CPU為內核,特別適用于需要尺寸緊湊、CPU功能強大的嵌入式系統(tǒng)和可升級的解決方案如用戶界面、工廠自動化系統(tǒng)和銷售點(POS)應用等。該系列微控制器提供同級產(chǎn)品中最佳的閃存隨機存取時間,直接從閃存的速率高達33MHz;由于采用突發(fā)加速技術,順序代碼零等待狀態(tài),最大存取速率50MHz,因此這個系列產(chǎn)品非常適合實時應用。該系列配備多達10個通信接口,包括CAN、 USB、HDLC (高級數(shù)據(jù)鏈路控制)、MMC (多媒體卡)和智能卡接口。靈活的封裝選擇包括有小型低量引腳的64引腳TQFP64和外置存儲器總線的144引腳TQFP144。該系列包括內置USB 和CAN接口的低成本64k字節(jié)閃存版微控制器STR711和 STR712,以及內置128或256字節(jié)程序閃存的經(jīng)典型微控制器,和對于無需USB和CAN接口的成本更低的“裸”微控制器STR715,該芯片內置 64千字節(jié)代碼閃存、16字節(jié)數(shù)據(jù)閃存和16字節(jié)RAM,沒有USB和CAN模塊,這個成本優(yōu)化型32位微控制器采用 64引腳的TQFP64封裝,專門為占板尺寸小的低成本應用而設計,例如:需要多用途和高性能處理器而不需要USB和CAN接口的工業(yè)系統(tǒng)和消費家電。
STR710工業(yè)級微控制器以ARM7TDMI 16/32處理器為內核,內帶Flash、SRAM、EMI、USB、CAN、5個定時器、12位ADC、10個通信接口。
2 uC/OS-II操作系統(tǒng)介紹
嵌入式系統(tǒng)的軟件一般由嵌入式操作系統(tǒng)和應用軟件組成, 編譯過程是一起進行的。而操作系統(tǒng)的軟件又與硬件緊密相關, 必須與具體應用相結合才能發(fā)揮其優(yōu)勢, 即必須結合實際系統(tǒng)的需求進行合理的裁剪。所以, 如果能夠建立相對通用的軟硬件基礎, 然后在其上開發(fā)出需要的系統(tǒng), 是一種比較好的發(fā)展模式。從某種程度上來說, 嵌入式系統(tǒng)是指能夠運行操作系統(tǒng)的軟硬件綜合體。就實時嵌入式操作系統(tǒng)(operation system )而言, 它可大致分為商用嵌入式OS與源碼開放的嵌入式OS, 前者如WindRiver公司的Vxworks、ISI公司的pSOS和Quan- tum公司的QNX 等, 后者如免費的嵌入式Linux, 以及本文中所用到的uC/OS-II。
μC/OS-II由Micrium公司提供,是一個可移植、可固化的、可裁剪的、占先式多任務實時內核,它提供信號量、帶互斥機制的信號量、事件標志、消息信箱、消息隊列、內存管理、時鐘管理、任務管理等服務,適用于多種微處理器,微控制器和數(shù)字處理芯片(已經(jīng)移植到超過100種以上的微處理器應用中),同時,該系統(tǒng)源代碼開放、整潔、一致,注釋詳盡,適合系統(tǒng)開發(fā)。
3 嵌入式系統(tǒng)設計
3.1 硬件設計
該系統(tǒng)的硬件主要由STR710F微處理器,電源、復位、時鐘電路,JTAG調試電路,基本的按鍵和LED顯示等人機接口電路和時鐘電路所組成。系統(tǒng)設計結構如圖1所示。
在硬件上,系統(tǒng)包括基于STR710FZ2TB的ARM開發(fā)平臺和時鐘電路兩大部分,其中ARM開發(fā)平臺由電源部分,復位電路,時鐘電路,JTAG調試電路,Boot模式配置電路,ADC接口等組成。
電源部分電路見圖2所示。
其中LM1117是穩(wěn)壓集成電路,輸入5V,輸出3.3V。
復位芯片采用 IMP809S,系統(tǒng)主時鐘為16MHz,ADC接口電路可外接模擬信號或用板上模擬電壓。
3.2 軟件設計
3.2.1 BootLoader設計
簡單地說,BootLoader 就是在操作系統(tǒng)內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調用操作系統(tǒng)內核準備好正確的環(huán)境。通常,Boot Loader 是嚴重地依賴于硬件而實現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的 Boot Loader 幾乎是不可能的。另外,由于 Boot Loader 的實現(xiàn)依賴于 CPU 的體系結構,因此大多數(shù) Boot Loader 都分為 stage1 和 stage2 兩大部分。依賴于 CPU 體系結構的代碼,比如設備初始化代碼等,通常都放在 stage1 中,而且通常都用匯編語言來實現(xiàn),以達到短小精悍的目的。而 stage2 則通常用C語言來實現(xiàn),這樣可以實現(xiàn)給復雜的功能,而且代碼會具有更好的可讀性和可移植性。
Boot Loader 的 stage1 通常包括以下步驟(以執(zhí)行的先后順序):
硬件設備初始化。
為加載 Boot Loader 的 stage2 準備 RAM 空間。
拷貝 Boot Loader 的 stage2 到 RAM 空間中。
設置好堆棧。
跳轉到 stage2 的 C 入口點。
Boot Loader 的 stage2 通常包括以下步驟(以執(zhí)行的先后順序):
初始化本階段要使用到的硬件設備。
檢測系統(tǒng)內存映射(memory map)。
將 kernel 映像和根文件系統(tǒng)映像從 flash 上讀到 RAM 空間中。
為內核設置啟動參數(shù)。
調用內核。
3.2.2 應用程序設計
本實例主要用FIQ來設計一個時鐘,實現(xiàn)一小時計時,由于需要4個7段數(shù)碼管,考慮到I/O口的數(shù)量,所以采用動態(tài)顯示方式。要點是要掌握ARM7TDMI的快速中斷原理和定時器原理,能正確地分配時鐘。程序流程圖如圖8 所示。
圖8 時鐘程序流程框圖
4 開發(fā)環(huán)境介紹
硬件開發(fā)主要采用Protel 99se。軟件開發(fā)主要采用ADS1.2集成開發(fā)環(huán)境和EMBEST PowerICE For ARM仿真器。下面著重對ADS1.2集成開發(fā)環(huán)境進行介紹。
ADS 集成開發(fā)環(huán)境是ARM 公司推出的ARM 核微控制器集成開發(fā)工具,英文全稱為ARM Developer Suite,成熟版本為ADS1.2。ADS1.2 支持ARM10 之前的所有ARM 系列微控制器,支持軟件調試及JTAG 硬件仿真調試,支持匯編、C、C++源程序,具有編譯效率高、系統(tǒng)庫功能強等特點,可以在Windows98、Windows XP、Windows2000 以及RedHat Linux上運行。
ADS 1.2 由6 個部分組成,如表1 所示
表1 ADS 1.2 的組成部分
5 結束語
本次設計基本完成預期目標,時鐘計時精確穩(wěn)定可靠。通過本次設計實踐,使嵌入式系統(tǒng)課程知識得到了回顧,加深了理解,基本掌握了ARM系統(tǒng)的軟硬件開發(fā)流程,無論是;理論知識還是實際動手能力都到了較大提高。
參考文獻
[1] 田澤.嵌入式系統(tǒng)開發(fā)和應用教程[M].北京:北京航空航天大學出版社,2005:1-9.
[2] STR71xF 參考指南(意法半導體公司);
[3] 嵌入式實時操作系統(tǒng)uC/OS-II(第2版) 2003.5 北京航空航天大學出版社 邵貝貝;
[4] 張錫鶴 盛鴻宇.印制電路板電路設計實訓教程[M].北京:科學出版社,2005。
[5] Samuel P.Harbison III, Guy L.Steele Jr.C:A Reference Manual Fifth Edition.China Machine Press,2003.