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