- 單片機原理與嵌入式系統設計
- 張齊 朱寧西 畢盛編著
- 2613字
- 2018-12-27 05:43:27
3.2 單片機嵌入式系統開發的軟硬件環境
3.2.1 單片機嵌入式系統開發的軟硬件環境構成
當用戶目標系統設計完成后,還需要應用軟件支持,用戶目標系統才能成為一個滿足用戶要求的單片機嵌入式系統。但該用戶目標系統不具備自開發能力,需要借助于單片機仿真器(也稱單片機開發系統)完成該項工作。一個典型的單片機嵌入式系統開發環境組成如圖3.2所示,單片機嵌入式系統開發環境硬件由PC、單片機仿真器、用戶目標系統、編程器和數條連接電纜組成。軟件由PC上的單片機集成開發環境軟件和編程器軟件構成,前者為單片機仿真器隨機軟件,后者為編程器隨機軟件。

圖3.2 單片機系統開發環境組成
單片機仿真器也稱單片機開發系統。單片機仿真器的工作步驟是:取下用戶目標系統的單片機芯片(目標系統CPU),把仿真器上的CPU仿真頭插入用戶目標系統CPU相應的位置,這樣就將仿真器中的CPU和ROM出借給了目標系統;PC通過仿真器和目標系統建立起一種透明的聯系,程序員可以觀察到程序的運行(實際上程序在仿真器中運行)和CPU內部的全部資源情況,也就是說,在開發環境中用戶目標系統中的程序存儲器是閑置的。我們調試的是仿真器中的程序,仿真器中的程序運行完全受仿真器的監控程序控制。仿真器的監控程序相當于PC的操作系統,該監控程序與PC上運行的集成開發環境相配合,使得我們可以修改和調試程序,并能觀察程序的運行情況。
待程序調試完成后,將編程器通過通信電纜線連接到PC,將調試好的程序通過編程器寫入單片機芯片(即寫入單片機內部的程序存儲器)或目標系統上的程序存儲器,從用戶目標系統上拔掉仿真頭CPU,即完成了單片機的仿真調試,然后換上寫入程序的單片機芯片(目標系統CPU),得到單片機嵌入式系統的運行態如圖3.3所示,也稱為脫機運行。由于仿真器的功能差別很大,脫機運行有時和仿真運行并不完全一致,還需要返回仿真過程調試。上述過程有時可能要重復多次。
開發環境要求的各種配置如下。
① PC,目前市售的計算機配置都滿足要求。
② 操作系統應使用Windows 95/98/ME/NT/2000/XP或更高版本。
③ 單片機仿真器及相應的配件,包括通信電纜、仿真電纜、電源等。
④ 在PC上運行的單片機仿真器集成開發環境軟件。
⑤ 匯編或編譯軟件,將匯編語言或高級語言源程序翻譯為浮動的目標代碼。
⑥ 連接定位器軟件,把多個浮動的目標代碼在單片機程序空間做定位控制。
⑦ 編程器,一種把單片機運行文件寫入EPROM/E2PROM/Flash E2PROM/CPU的工具。
單片機仿真器在開發環境中出借CPU和程序存儲器到用戶目標系統,調試完成后通過編程器把程序固化到程序存儲器,插入目標系統,同時插入目標系統CPU,即可得到單片機嵌入式系統的運行態。
編程器的功能是把調試好的目標代碼寫入單片機的片內(外)程序存儲器里面,把寫好后的芯片插到用戶目標板上進行脫機(脫離仿真器)運行,如未達到用戶要求,則要重新返回仿真階段查找軟件或硬件的原因。這個過程可能要重復多遍。

圖3.3 單片機嵌入式系統的運行態
3.2.2 單片機嵌入式系統開發工具選擇原則
在單片機嵌入式系統研制中,仿真器是一個重要的輔助開發工具,因此,有必要選擇一個好的仿真調試工具,滿足做產品開發的用戶對目標機仿真調試的要求,并且使用方便可靠。
選擇仿真器要求如下:
全地址空間的仿真;
不占用任何用戶目標系統的資源;
必須實現硬斷點,并且具有靈活的斷點管理功能;
硬件實現單步執行功能;
可跟蹤用戶程序執行;
可觀察用戶程序執行過程中的變量和表達式;
可中止用戶程序的運行或用戶程序復位;
系統硬件電路的診斷與檢查;
支持匯編和高級語言源程序級調試。
3.2.3 使用JTAG界面單片機仿真開發環境
JTAG(Joint Test Action Group,聯合測試行動小組)是一種國際標準測試協議(IEEE 1149.1兼容),主要用于芯片內部測試。現在多數的高級器件都支持JTAG協議,如DSP、FPGA器件等。標準的JTAG接口有4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數據輸入和數據輸出線。JTAG最初是用來對芯片進行測試的,基本原理是在器件內部定義一個TAP(Test Access Port,測試訪問口),通過專用的JTAG測試工具對內部節點進行測試。JTAG測試允許多個器件通過JTAG接口串聯在一起,形成一個JTAG鏈,能實現對各個器件的分別測試。現在,JTAG接口還常用于實現ISP(In-System Programmable,在系統編程),對單片機內部的Flash E2PROM等器件進行編程。
JTAG編程方式是在線編程,這種方式不需要編程器。傳統生產流程中的先對芯片進行預編程、現裝配的方式,因此而改變。簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快了工程進度。
新一代的單片機芯片內部不僅集成了大容量的Flash E2PROM,芯片還具有 JTAG接口,可接JTAG ICE仿真器,PC提供高級語言開發環境(Windows),支持C語言及匯編語言,不僅可以下載程序,還可以在系統調試程序,具有調試目標系統的所有功能,開發不同的單片機系統只需更換目標板。JTAG仿真開發環境如圖3.4所示。
在JTAG單片機仿真開發環境中,JTAG適配器提供了計算機通信口到單片機JTAG接口的透明轉換,并且不出借CPU和程序存儲器給應用系統,使得仿真更加貼近實際目標系統。單片機內部已集成了基于JTAG的協議調試和下載程序。
3.2.4 單片機的在線編程
通常進行單片機開發時,編程器是必不可少的。仿真、調試完的程序,需要借助編程器燒到單片機內部或外接的程序存儲器中。普通的編程器價格從幾百元到幾千元不等,對于一般的單片機愛好者來說,這是一筆不小的開支。另外,在開發過程中,程序每改動一次就要拔下電路板上的芯片編程后再插上,也比較麻煩。

圖3.4 JTAG單片機仿真開發環境
隨著單片機技術的發展,出現了可以在線編程的單片機。這種在線編程目前有兩種實現方法:在系統編程(ISP)和在應用編程(IAP)。ISP一般通過單片機專用的串行編程接口對單片機內部的Flash存儲器進行編程,而IAP技術是從結構上將Flash存儲器映射為兩個存儲體,當運行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之后將控制從一個存儲體轉向另一個。ISP的實現一般需要很少的外部電路輔助,而IAP的實現更加靈活,通常可利用單片機的串行口接到計算機的RS-232口,通過專門設計的固件程序對內部存儲器編程。例如,Atmel公司的單片機AT89S8252提供了一個SPI串行接口,對內部程序存儲器編程(ISP),而SST公司的單片機SST89C54內部包含了兩塊獨立的存儲區,通過預先編程在其中一塊存儲區中的程序就可以通過串行口與計算機相連,使用PC上專用的用戶界面程序直接下載程序代碼到單片機的另一塊存儲區中。
ISP和IAP為單片機的實驗和開發帶來了很大的方便和靈活性,也為廣大單片機愛好者帶來了福音。利用ISP和IAP,不需要編程器就可以進行單片機的實驗和開發,單片機芯片可以直接焊接到電路板上,調試結束即為成品,甚至可以遠程在線升級或改變單片機中的程序。
- 現代測控系統典型應用實例
- 嵌入式系統應用
- Google Cloud Platform Cookbook
- 2018西門子工業專家會議論文集(上)
- CorelDRAW X4中文版平面設計50例
- Azure PowerShell Quick Start Guide
- Extending Ansible
- Salesforce Advanced Administrator Certification Guide
- 從零開始學Java Web開發
- C++程序設計基礎(上)
- 基于Proteus的單片機應用技術
- 人工智能云平臺:原理、設計與應用
- 渲染王3ds Max三維特效動畫技術
- Mastering DynamoDB
- 微控制器的選擇與應用