經過20多年的發展,單片機品種不斷增多,功能不斷增強,應用范圍不斷擴大,開發時間(Time to Market)要求越來越短。為了節省時間,嵌入式微處理器在16位和32位應用場合得到使用,大量的微機程序可直接引用。
在軟件開發上,由匯編語言編程、高級語言C語言編程,轉向在實時操作系統(Real Time Operating System,簡稱RTOS)之上編程。
在硬件設計上,由使用分立元件和微機接口芯片轉向更加集成化的設計模式——CPU+PLD+AD/DA。
CPU即 MCU或MPU, PLD即可編程邏輯器件。模數混合的集成電路很難設計生產,現階段AD/DA即模數和數模轉換器等模擬電路還采用傳統的設計方法。PLD芯片可以在系統編程ISP(In System Programming),硬件已經軟化,隨時可以進行修改。
1999年全國大學生電子設計競賽和許多產品的硬件設計已采用這種設計模式。為進一步縮短開發時間、加強管理,平臺觀念已逐步引入到產品的設計開發過程中。從隨意性開發轉向平臺開發模式是嵌入式應用軟硬件設計開發的發展趨勢。
軟件開發
單片機生產廠家不斷增多,單片機品種層出不窮。單片機廣泛選擇是當今產品開發的一個重要環節。每個單片機系列的指令系統不同,與指令系統對應的匯編助記符就不同。匯編語言的不兼容性使得在一種單片機上編制的程序,在另一種單片機上不能運行,單片機重新選型后程序必須重新編制。匯編語言的難記、難讀及易搞混,每個匯編程序員深有同感。自己編制的程序過一段時間修改時,往往要重讀很大部分,經過長時間回憶才能找到問題所在。修改別人留下的匯編源程序,若程序的注釋說明不詳細、程序的思路不清晰、子程序使用不夠多的話,還不如自己重新編制。
用C語言編程是單片機軟件開發的必然趨勢。C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。 C語言有功能豐富的庫函數、運算速度快、編譯效率高、可移植性好,而且可以直接實現對系統硬件的控制。C語言是一種結構化程序設計語言,支持當前程序設計中廣泛采用的由頂向下結構化程序設計技術。
采用C語言也不必對單片機和硬件接口的結構有很深入的了解,編譯器可以自動完成變量存儲單元的分配,編程者專注于應用軟件部分的設計即可,這樣大大加快了軟件的開發速度。采用C語言可以很容易地進行單片機的程序移植工作,有利于產品中單片機的重新選型。
采用C語言,可針對單片機常用的接口芯片編制通用的驅動函數,針對常用的功能模塊、算法等編制相應的函數。這些函數經過歸納整理可形成專家庫函數,供廣大的單片機愛好者使用、完善,這樣可大大提高國內單片機軟件設計水平。C語言可讀性的特點,更容易使大家借鑒前人的開發經驗,提高自己的軟件設計水平。
對于C語言生成代碼的時空效率,一般來講,程序代碼長度增加20%,程序執行速度約減慢20%。這在片內程序存儲器不斷擴大、晶振頻率不斷提高的今天,已不是主要考慮的問題。
況且,這是和優秀的匯編程序員編制代碼的比較。當然,非常注重代碼效率的場合可以是以C語言為主,匯編語言為輔。匯編語言掌握到只要可以讀懂程序,在時間要求比較嚴格的模塊中進行程序的優化即可。在可移植性方面,單片機C語言都符合ANSI C標準,差別主要是有關片內資源的不同配置及使用,這可以通過采用不同的頭文件,經過少量的加工就可以實現。
隨著國內單片機開發工具研制水平的提高,現在的單片機仿真器普遍支持C語言程序調試,為單片機編程使用C語言提供了便利的條件。單片機的C語言相對微機的C語言要好學得多,它沒有微機 C語言有關文件的使用,也不必掌握標準輸入輸出設備有關的格式要求。
北京航空航天大學出版社出版的《單片機的C語言應用程序設計》(修訂版)教材是專為沒有C基礎的人編寫的,大量的實例可引導大家進入單片機C時代。嵌入式微處理器是以C、C++甚至JAVA語言進行編程的,并普遍采用RTOS。
在嵌入式應用中使用RTOS是由于嵌入式應用一般是計算機實時系統,有兩個重要特性:實時性和可靠性。實時性標準常用“系統響應時間”來衡量,即當一外部事件發生,系統能在多少時間內響應事件。RTOS分強實時和弱實時兩種。強實時RTOS用于對時間要求比較嚴格的場合。可靠性標準常用系統平均無故障運行時間,即平均的故障間隔時間MTBF來衡量。
操作系統(OS)是一組計算機程序的集合,用來有效地控制和管理計算機的硬件和軟件資源,即合理地對資源進行調度,并為用戶提供方便的應用接口。它為應用支持軟件提供運行環境,即對程序開發者提供功能強、使用方便的開發環境。OS的前身就是監控程序,類似于單片機仿真器的監控程序。
RTOS是多任務的,每個用戶的應用程序可以設計成多個不同的任務,這些任務可以并發執行,提高系統的吞吐量,更有效地利用系統資源。常用的任務調度算法為:優先級加輪詢、非搶占式優先級調度、按優先級搶占的調度算法。任務間通信與同步機制為:郵箱、隊列、信號量、事件標志。劃分任務時,任務之間的通信要盡可能少,這樣可以簡化設計。
基于任務的設計可擴展、可管理、可大大提高系統的可靠性。RTOS提供給用戶的是各種系統調用。中斷、時間基準及定時的管理都由RTOS完成。采用RTOS編程可大幅度縮短程序的開發時間。RTOS一般都可裁剪、移植,適用于多種硬件環境,可以和應用程序一起固化到應用系統中。
隨著后PC時代的來臨,微軟維納斯計劃推出Windows CE,我國女媧計劃推出自主版權的Hopen實時多任務操作系統。 “3C”結合的信息家電問世,RTOS引起國內業界的極大關注。國內已引入pSOS、 VRTX、VxWorks、QNX、Nucleus等RTOS以及 CMX和RTXC小型適合單片機的帶源代碼的RTOS。
免費公開內核的RTLinux和 μCOS也是使用的熱點。清華大學出版社出版了《工業控制計算機實時操作系統》。國際上很有名的有關μCOS的專著《Micro C/OS-ii The Real Time Kernel》不久將在國內翻譯出版。 RTOS會更加深入人心,嵌入式應用軟件開發由匯編、C向 RTOS發展。
硬件設計
單片機,即一個芯片就是一個計算機,代表著計算機小型化的理想。隨著超大規模高速集成電路 VHSIC(Very High Speed Integrated Circuit)的發展,專用集成電路 ASIC(Application Special Integrated Circuit)設計已使片上系統 SOC(System On a Chip)的設計與制造正在或已經成為現實。
單片機和SOC是硬件設計高度集成化的產物。高度集成可以增加系統的可靠性、縮小體積并降低成本。集成電路產品的集成度,目前仍然保持每18個月增長一倍的發展速度(摩爾定律),而產品的生命周期卻日趨縮短,因此,迫切要求提高ASIC芯片的設計速度。其中最重要的是盡可能重復運用已有的設計成果,采用具有知識產權的功能單元塊,即IP核(Intelligence Property Core)。
因此,必須重視IP核的開發和重用。在設計方法上運用電子設計自動化(EDA)工具,使用 VHDL和 Verilog硬件描述語言HDL(Hardware Description Language)進行硬件的設計。VHDL支持行為級描述,并有IEEE 87和IEEE 93標準,設計效率明顯高于Verilog,更加受歡迎。從集成電路的觀點看,單片機是IP核,常用接口芯片 8255、8250、8279等也有類似功能的IP核。8051單片機得到Philips、Atmel等眾多廠商的支持也得益于其IP核的互換和轉讓。內含CPU的可編程邏輯器件已列入集成電路生產廠家的生產計劃。模數混合的集成電路還存在設計制造難度。
?
目前,嵌入式應用硬件設計采用滿足要求的單片機是理想的選擇,采用CPU+PLD+AD/DA模式是明智的選擇??删幊踢壿嬈骷陌l展經歷了由GAL/PAL、EPLD向 CPLD/FPGA(復雜可編程邏輯器件/現場可編程邏輯器件)發展,集成度越來越高。Lattice、Altera、Xilinx、AMD等公司提供可編程邏輯器件和EDA設計工具,支持HDL文本輸入和原理圖輸入,配備編輯、編譯、仿真、綜合、芯片編程等功能。通過在系統編程ISP(In System Programming)或稱在線下載,利用微機并口配有的下載電纜和可編程器件的JTAG接口相連,即可修改系統中PLD部分的設計,實現硬件設計的軟化。
系統定制電路部分的設計已從ASIC集成電路設計的殿堂變成電子工程師的必備知識。集成電路的設計和電子電路的設計在融合。當然,單片機外接的簡單邏輯也可采用邏輯表達式和 ABEL語言設計GAL芯片或PSD器件實現。PSD器件上含有PLD、FLASH、EEPROM、RAM等,是單片機較理想的外接芯片。
現內置 FLASH的單片機也有帶JTAG或類似接口的產品,支持在線程序下載,生產廠家有 TI、Atmel、Microchip等。只須簡單的下載開發工具,大大方便了程序的開發和現場的修改。在線修改是電子設計的革命,是發展方向。硬件電路設計采用VHDL語言是發展趨勢。VHDL語言是電子工程師的必備知識,VHDL語言比C語言還容易掌握。
國內出版的VHDL書有:西安電子科技大學出版社的《VHDL硬件描述語言與數字邏輯電路設計》(修訂版)、電子科技大學出版社的《VHDL實用教程》和清華大學出版社的《VHDL簡明教程》及《VHDL語言100例詳解》等。
平臺模式
隨著計算機技術、微電子技術和網絡技術、軟件技術的不斷發展,人類社會正逐步進入后PC時代,嵌入式應用是當今計算機發展的一個熱點。嵌入式應用的從業人員來自各行各業,技術背景參差不齊,很多還是非電子類專業。應用的設計帶有很大的自主性、隨意性。低水平重復勞動是制約產品設計水平的關鍵因素。20年來嵌入式應用的發展,國內業界已成一定氣候,嵌入式應用設計亟待從隨意性設計轉入平臺開發模式。
平臺開發模式,即在一個設計集團中,實行嚴格的標準化、系列化、規范化設計,將某一類產品領域的基本硬件結構及基本軟件形成產品的“統一機芯”,即基礎平臺,并將基礎平臺相關的周邊擴展電路及應用軟件進行優化、篩選,形成基礎平臺的平臺庫資源。在開發新產品時,利用基礎平臺,并選擇平臺庫中的相關資源進行。
嵌入式應用設計亟待發展軟/硬IP產業,完善軟/硬IP功能庫。專家庫函數是廣義的軟IP,網絡應用使用的TCP/IP協議軟件是典型的軟 IP。在平臺方式下,基礎軟硬件工作可解決在平臺之中。常用的外圍接口芯片8255、8250、8279等都可以做成類似功能的硬IP,軟件庫函數可包含它們的驅動程序。鍵盤可規范成8鍵、4×4鍵、8×8鍵設計,LED顯示可規范成8個或16個數碼管。顯示和鍵盤掃描可編成標準程序。嵌入式應用的從業人員可互相借鑒交流 IP,建設自己的開發平臺。
基于平臺觀念的設計工具有我國東大阿爾派公司的NEST2000通用型嵌入式系統設計平臺和美國I- Logix公司的基于UML的面向嵌入式應用的軟件開發環境——Rhapsody。NEST2000面向信息終端類產品設計,采用32位微處理器作為核心,支持FLASH、DRAM、SRAM等存儲器,具有LCD顯示、觸摸屏、語音、鍵盤、紅外調制解調器、條形碼閱讀器、RFID/xinpin/zhinenka/‘ target=’_blank‘》IC卡等多種外圍接口模塊,其支撐軟件包括RTOS、網絡協議(TCP/IP)、圖形用戶接口(GUI)、嵌入式數據庫系統以及JAVA平臺等。
硬件模塊可以方便地根據用戶的需求進行選擇使用,軟件平臺提供它們的驅動程序,在RTOS之上提供給用戶應用程序接口(API),可以最快速度地完成產品應用軟件的開發。Phapsody采用迭代增量式軟件開發方法,支持可視化建模,支持基于模型調試。更令人驚訝的是,改變模型,代碼隨之改變,并可自動生成可讀性好,可直接使用的C、C++、 JAVA語言代碼。隨著平臺觀念逐步深入人心,愿嵌入式應用的設計人員都能建設平臺、使用平臺,借鑒前人的設計開發經驗,利用自己的技術儲備,以最快的速度推出新產品。
評論
查看更多