現(xiàn)場(chǎng)總線的開關(guān)量 I/O 模塊的設(shè)計(jì)總述及基本名詞解釋
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著信息技術(shù)的發(fā)展,智能化、信息化、網(wǎng)絡(luò)化成為現(xiàn)代工業(yè)控制的發(fā)展潮流。20世紀(jì)80年代以來,開放的工業(yè)控制總線迅速發(fā)展,徹底改變了世界的技術(shù)面貌,在此基礎(chǔ)上通過網(wǎng)絡(luò)連接到分散控制和嵌入式設(shè)備的控制技術(shù)逐步發(fā)展成熟,遠(yuǎn)程I/O就是在這種條件下發(fā)展的一類產(chǎn)品,可以分散配置在現(xiàn)場(chǎng),連接當(dāng)?shù)氐妮斎胼敵鲂盘?hào),實(shí)現(xiàn)要求的配置。
在工業(yè)控制領(lǐng)域,現(xiàn)場(chǎng)總線技術(shù)將控制功能徹底下放到現(xiàn)場(chǎng)。MODBUS是現(xiàn)場(chǎng)總線的國(guó)際標(biāo)準(zhǔn)之一,符合IEC物理層標(biāo)準(zhǔn),有冗余的物理總線網(wǎng)絡(luò)和嚴(yán)格的控制信息傳輸機(jī)制。
實(shí)時(shí)工業(yè)現(xiàn)場(chǎng)開關(guān)量數(shù)據(jù)的采集給開發(fā)者提出了廣泛的要求,包括較高的處理性能,低功耗,高速數(shù)據(jù)I/O,較高的存儲(chǔ)能力,高可靠性等。而種類繁多的ARM處理器具有成本低、功耗低、易開發(fā)和性能好等特點(diǎn),可開發(fā)出較佳性能的控制采集系統(tǒng)。S3C2440就是其中的一種工業(yè)級(jí)ARM微處理器,具有性價(jià)比高,可靠性高等特點(diǎn),因此選用它做為系統(tǒng)開發(fā)的硬件平臺(tái)。
Linux操作系統(tǒng)由于其開源、精簡(jiǎn)而高效的內(nèi)核,豐富的網(wǎng)絡(luò)性能以及對(duì)多種處理器結(jié)構(gòu)的支持,使其在嵌入式工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用,而實(shí)時(shí)處理工業(yè)現(xiàn)場(chǎng)開關(guān)量數(shù)據(jù)是工業(yè)控制領(lǐng)域的主要應(yīng)用之一。
本文“基于現(xiàn)場(chǎng)總線的開關(guān)量I/O模塊的設(shè)計(jì)”實(shí)現(xiàn)了一個(gè)完整的通用嵌入式系統(tǒng)開發(fā)平臺(tái)。介紹了基于MODBUS現(xiàn)場(chǎng)總線的開關(guān)量I/O模塊,此模塊連接了MODBUS現(xiàn)場(chǎng)總線和傳統(tǒng)的開關(guān)量控制設(shè)備。首先簡(jiǎn)要介紹了系統(tǒng)總體方案設(shè)計(jì),在此基礎(chǔ)上,把系統(tǒng)設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大部分。
系統(tǒng)硬件首先對(duì)A RM處理器和S3C2440微處理器進(jìn)行了簡(jiǎn)單的介紹,重點(diǎn)論述了S3C2440處理器與存儲(chǔ)器(Nand和SDRAM)、RS485、GPIO等接口的設(shè)計(jì),對(duì)開關(guān)量輸入輸出電路進(jìn)行了深入分析,可同時(shí)進(jìn)行16路開關(guān)量的輸出和采集,并對(duì)硬件做了相關(guān)的調(diào)試。
系統(tǒng)軟件分為上位機(jī)和下位機(jī)兩部分:上位機(jī)以Windows XP為開發(fā)平臺(tái),采用VC++軟件設(shè)計(jì)界面,利用MSComm控件進(jìn)行MODBUS串口編程,具有操作簡(jiǎn)單,配置靈活的特點(diǎn);下位機(jī)以嵌入式Linux為核心平臺(tái),首先構(gòu)建嵌入式Linux,主要包括bootloader、內(nèi)核的編譯與移植以及嵌入式Linux下文件系統(tǒng)的構(gòu)建。接著對(duì)MODBUS協(xié)議的移植和字符設(shè)備驅(qū)動(dòng)程序(串口、GPIO )做了深入分析,重點(diǎn)用C語言實(shí)現(xiàn)了基于RS485接口的MODBUS串口編程,給出了軟件流程圖及核心代碼,并對(duì)軟件進(jìn)行了調(diào)試。
1.1引言
近幾十年來,工業(yè)控制系統(tǒng)從傳統(tǒng)的集中控制系統(tǒng),過渡到分散控制(DCS)系統(tǒng),但DCS仍是集中與分散相結(jié)合的控制體系。進(jìn)入90年代,隨著計(jì)算機(jī)技術(shù)及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,出現(xiàn)了現(xiàn)場(chǎng)總線,現(xiàn)場(chǎng)總線與傳統(tǒng)DCS相比具有更多優(yōu)勢(shì),并能帶來巨大的經(jīng)濟(jì)效益。根據(jù)國(guó)際電工委員會(huì)IEC61158標(biāo)準(zhǔn)的定義:安裝在制造或生產(chǎn)過程區(qū)域的現(xiàn)場(chǎng)裝置與控制室內(nèi)的自動(dòng)控制裝置之間的數(shù)字式、串行、雙向、多點(diǎn)通信的數(shù)據(jù)總線稱為現(xiàn)場(chǎng)總線。由現(xiàn)場(chǎng)總線與現(xiàn)場(chǎng)智能設(shè)備組成的控制系統(tǒng)稱為現(xiàn)場(chǎng)總線控制系統(tǒng)FCS(Fieldbus Control System )。
衡量一個(gè)控制系統(tǒng)是否為真正的現(xiàn)場(chǎng)總線控制系統(tǒng)FCS有三個(gè)關(guān)鍵要點(diǎn),即:核心、基礎(chǔ)和本質(zhì)。FCS的核心是總線協(xié)議,只有遵循現(xiàn)場(chǎng)總線協(xié)議的控制系統(tǒng),才能稱為現(xiàn)場(chǎng)總線控制系統(tǒng);FCS的基礎(chǔ)是數(shù)字智能現(xiàn)場(chǎng)儀表,是FCS的硬件支撐;FCS的本質(zhì)是信息處理現(xiàn)場(chǎng)化,這是FCS的系統(tǒng)效能體現(xiàn)。
FCS與DCS的本質(zhì)差異在于現(xiàn)場(chǎng)級(jí)設(shè)備的數(shù)字化、網(wǎng)絡(luò)化,實(shí)現(xiàn)了控制裝置與現(xiàn)場(chǎng)裝置的雙向通信,消除了生產(chǎn)過程監(jiān)控的信息“盲點(diǎn)”。
與DCS相比FCS有如下顯著優(yōu)點(diǎn):
●DCS有I/O模件控制柜,F(xiàn)CS很少。這樣就省去了中間環(huán)節(jié),降低了系統(tǒng)成本,節(jié)省電纜及相關(guān)的材料和安裝費(fèi)用。
●FCS使用數(shù)字通信,傳輸數(shù)據(jù)更準(zhǔn)確,信息量更大。
●DCS就像PC機(jī),設(shè)備越多,性能越差,F(xiàn)CS就像PC機(jī)構(gòu)成的網(wǎng)絡(luò),總線上的設(shè)備越多,在總線通信速率足夠快的情況下,F(xiàn)CS功能越強(qiáng)。
●具有可互操作性、可互換性,克服傳統(tǒng)DCS和PLC等含有專利性技術(shù)的控制系統(tǒng)所帶來的封閉性問題,降低工程項(xiàng)目的建造和運(yùn)營(yíng)成本。
但是在生產(chǎn)力發(fā)展到一定階段之前,并不是先進(jìn)的技術(shù)就一定要完全取代落后的技術(shù)。不同層次的技術(shù)有它應(yīng)用的領(lǐng)域,可以允許FCS ,DCS ,PLC等技術(shù)共同存在,一些場(chǎng)合并不一定非要先進(jìn)的技術(shù)。只要其能在特定的地方發(fā)揮相應(yīng)的功能就行。所以討論誰取代誰并沒有實(shí)際的意義。從這個(gè)角度講,本論文的基于現(xiàn)場(chǎng)總線的開關(guān)量I/O模塊并不是一個(gè)過渡產(chǎn)品,在現(xiàn)場(chǎng)總線技術(shù)深入到儀表之后,開關(guān)量I/0模塊還可在適當(dāng)?shù)牡胤绞褂谩?/p>
1.2研究背景
技術(shù)的發(fā)展和更新?lián)Q代是一個(gè)緩慢和逐步接受的過程,F(xiàn)CS不可能很快取代現(xiàn)有控制系統(tǒng)。在FCS逐步推廣的過程中,將所有設(shè)備全部采用FCS的可能性不大,這樣就不可避免地要與已有的設(shè)備進(jìn)行連接。
唯有比較才可體現(xiàn)FCS的優(yōu)越性,將傳統(tǒng)儀表集成到FCS系統(tǒng)也可以說是FCS發(fā)展中的一種策略。在比較中可以體現(xiàn)出FCS控制系統(tǒng)的優(yōu)越性,這樣能夠促進(jìn)用戶使用FCS的積極性。
從生產(chǎn)現(xiàn)場(chǎng)實(shí)際情況來講,生產(chǎn)現(xiàn)場(chǎng)有許多需要開關(guān)量控制和開關(guān)量顯示的設(shè)備。如電機(jī)啟動(dòng)停止控制、電機(jī)行程反饋、變頻器控制和變頻器反饋、溫度開關(guān)、壓力開關(guān)、逆止門電磁鐵指令和電磁鐵狀態(tài)反饋等。而現(xiàn)場(chǎng)總線設(shè)備可能暫時(shí)還沒有相應(yīng)產(chǎn)品,或者客戶有傳統(tǒng)設(shè)備的庫存,這就需要將己有的設(shè)備集成到FCS.
另外,從成本考慮,現(xiàn)有的FCS設(shè)備成本大大高于常規(guī)儀表。有些設(shè)備的控制并不一定需要FCS設(shè)備,這樣就要用常規(guī)設(shè)備實(shí)現(xiàn)控制功能。這就需要把常規(guī)設(shè)備集成到FCS中來。因此采用開關(guān)量I/O裝置就成為一個(gè)很好的選擇。
本文要設(shè)計(jì)的現(xiàn)場(chǎng)總線的開關(guān)量I/O模塊是完成MODBUS現(xiàn)場(chǎng)總線與傳統(tǒng)開關(guān)量設(shè)備互連的控制裝置。尤其適合將傳統(tǒng)工業(yè)的控制系統(tǒng)與FCS控制系統(tǒng)結(jié)合,在所有現(xiàn)場(chǎng)設(shè)備未全部與現(xiàn)場(chǎng)總線融合之前,對(duì)企業(yè)原有設(shè)備與現(xiàn)場(chǎng)總線連接方面有很大的現(xiàn)實(shí)意義。
因此,基于以上考慮,有了市場(chǎng)和技術(shù)的巨大需求開發(fā)基于MODBUS的開關(guān)量I/O模塊成為必然。
1.3研究路線及內(nèi)容結(jié)構(gòu)
現(xiàn)場(chǎng)總線技術(shù)的研究,是目前工業(yè)控制領(lǐng)域的重要前沿,是當(dāng)前國(guó)內(nèi)外都非常熱門的研究方向。針對(duì)這種情況,本論文從現(xiàn)場(chǎng)總線上一個(gè)開關(guān)量輸入輸出模塊的設(shè)計(jì)著手,對(duì)其進(jìn)行設(shè)計(jì)與實(shí)踐,并對(duì)MODBUS現(xiàn)場(chǎng)總線技術(shù)做了初步的接觸。
MODBUS的開關(guān)量I/O模塊放在現(xiàn)場(chǎng),實(shí)現(xiàn)傳統(tǒng)儀表、執(zhí)行器與FCS的連接。本論文的目的是制作一個(gè)實(shí)現(xiàn)基于MODBUS的開關(guān)量輸入、開關(guān)量輸出的模塊。
1.3.1研究路線
本文主要是研究和實(shí)現(xiàn)一種基于現(xiàn)場(chǎng)總線的開關(guān)量I/O模塊。根據(jù)需求,本模塊采用基于ARM9的S3C2440微處理器作為硬件開發(fā)平臺(tái),嵌入式Linux2.6作為系統(tǒng)軟件開發(fā)平臺(tái),通過串口RS485,應(yīng)用MODBUS現(xiàn)場(chǎng)總線協(xié)議,實(shí)現(xiàn)與上位機(jī)控制中心PC機(jī)與I/O模塊間的遠(yuǎn)程通信,從而使控制中心能夠得到所需要的數(shù)據(jù);通過可用的G PI O來控制傳統(tǒng)開關(guān)量的采集與控制,并通過控制中心來配置輸入輸出的個(gè)數(shù),鍵盤用來做本地測(cè)試。
1.3.2內(nèi)容結(jié)構(gòu)
本文的章節(jié)安排如下:
第一章緒論:概述了課題研究的背景以及應(yīng)用領(lǐng)域,闡述了本論文研究的目的和意義、研究路線以及論文的架構(gòu)安排。
第二章MODBUS現(xiàn)場(chǎng)總線技術(shù)綜述:簡(jiǎn)單介紹了MODBUS現(xiàn)場(chǎng)總線的特點(diǎn),詳細(xì)闡述了MODBUS現(xiàn)場(chǎng)總線的通信原理。
第三章總體方案設(shè)計(jì):重點(diǎn)闡述了系統(tǒng)硬件和軟件的設(shè)計(jì)方案。
第四章開關(guān)量I/O模塊硬件結(jié)構(gòu)設(shè)計(jì):采用ARM S3C2440作為系統(tǒng)微處理器,設(shè)計(jì)了存儲(chǔ)電路、電源電路、RJ45網(wǎng)口,JTAG接口、鍵盤模塊、輸入輸出模塊、RS485接口、復(fù)位電路、時(shí)鐘電路,完成系統(tǒng)硬件設(shè)計(jì)。
第五章操作系統(tǒng)移植與驅(qū)動(dòng)開發(fā):完成了嵌入式Linux操作系統(tǒng)的構(gòu)建,移植了MODBUS總線協(xié)議,實(shí)現(xiàn)了字符設(shè)備驅(qū)動(dòng)程序。
第六章開關(guān)量I/O模塊軟件結(jié)構(gòu)設(shè)計(jì):分上位機(jī)和下位機(jī)兩部分,介紹了基于MODBUS的串口編程,完成應(yīng)用程序的開發(fā)。
第七章結(jié)論:總結(jié)了本文的工作,指出了進(jìn)一步研究的重點(diǎn)。
1.4關(guān)鍵技術(shù)分析
1.4.1現(xiàn)場(chǎng)總線技術(shù)現(xiàn)場(chǎng)總線的概念是隨著微電子技術(shù)的發(fā)展,數(shù)字通信網(wǎng)絡(luò)延伸到工業(yè)過程現(xiàn)場(chǎng)成為可能后,于1984年左右提出的。現(xiàn)場(chǎng)總線是面向工廠底層自動(dòng)化及信息集成的數(shù)字化網(wǎng)絡(luò)技術(shù)?,F(xiàn)場(chǎng)總線類型主要有:FF、ProfiBus、ControlNet、P-NET、InterBus、CAN和Modbus等。這些總線各有各的規(guī)范,互不兼容。
現(xiàn)場(chǎng)總線控制系統(tǒng)有如下主要優(yōu)點(diǎn):
(1 )全數(shù)字化。在采用現(xiàn)場(chǎng)總線控制系統(tǒng)的企業(yè)中,用于生產(chǎn)管理的局域網(wǎng)能夠與用于自動(dòng)控制的現(xiàn)場(chǎng)總線網(wǎng)絡(luò)緊密銜接。此外,數(shù)字化信號(hào)固有的高精度、抗干擾特性也能提高控制系統(tǒng)的可靠性。
(2 )全分布。在現(xiàn)場(chǎng)總線控制系統(tǒng)中,各現(xiàn)場(chǎng)設(shè)備有足夠的自主性,它們彼此之間相互通信,完全可以把各種控制功能分散到各種設(shè)備中,實(shí)現(xiàn)真正的分布式控制。
(3 )雙向傳輸。對(duì)于傳統(tǒng)的4-20mA電流信號(hào),一條線只能傳遞一路信號(hào)?,F(xiàn)場(chǎng)總線設(shè)備在一條線上則可以向上傳遞傳感器信號(hào),也可以向下傳遞控制信號(hào)。
(4 )自診斷?,F(xiàn)場(chǎng)總線儀表本身具有自診斷功能,而且這種診斷信息可以送到中央控制室,以便于維護(hù),而這在只能傳遞一路信號(hào)的傳統(tǒng)儀表中是做不到的。
(5 )節(jié)省布線及控制室空間。傳統(tǒng)的控制系統(tǒng)每個(gè)儀表都需要一條線連到中央控制室,在中央控制室裝備一個(gè)搭配線架。而在FCS系統(tǒng)中多臺(tái)現(xiàn)場(chǎng)設(shè)備可串行連接在一條總線上,只需較少的線進(jìn)入中央控制室,這樣就大量節(jié)省了布線費(fèi)用,同時(shí)也降低了中央控制室的造價(jià)。
(6 )多功能儀表。數(shù)字雙向傳輸方式使得現(xiàn)場(chǎng)總線儀表可以擺脫傳統(tǒng)儀表功能單一的制約,可以在一個(gè)儀表中集成多種功能,做成多變量變送器,甚至集檢測(cè)、運(yùn)算、控制于一體的變送控制器。
(7 )開放性。1999年底現(xiàn)場(chǎng)總線協(xié)議已被IEC批準(zhǔn)正式成為國(guó)際標(biāo)準(zhǔn),從而使現(xiàn)場(chǎng)總線成為一種開放的技術(shù)。
(8 )互操作性?,F(xiàn)場(chǎng)總線標(biāo)準(zhǔn)保證不同廠家的產(chǎn)品可以互操作,這樣就可以在一個(gè)企業(yè)中由用戶根據(jù)產(chǎn)品的性能、價(jià)格選用不同廠商的產(chǎn)品,集成在一起,避免了傳統(tǒng)控制系統(tǒng)中必須選用同一廠家的產(chǎn)品限制,促進(jìn)有效的競(jìng)爭(zhēng),降低控制系統(tǒng)的成本。
(9 )智能化與自治性?,F(xiàn)場(chǎng)總線設(shè)備具有很高的智能,能處理各種參數(shù)、運(yùn)行狀態(tài)信息及故障信息,甚至能在部件、網(wǎng)絡(luò)故障的情況下獨(dú)立工作,大大提高了整個(gè)控制系統(tǒng)的可靠性。
現(xiàn)場(chǎng)總線突破了DCS系統(tǒng)中因?qū)S猛ㄐ啪W(wǎng)絡(luò)的封閉造成的缺陷,采用開放化、標(biāo)準(zhǔn)化的解決方案,把來自不同廠商而遵守同一協(xié)議規(guī)范的自動(dòng)化設(shè)備連接成控制網(wǎng)絡(luò),組合成各類控制系統(tǒng),實(shí)現(xiàn)綜合自動(dòng)化的各種功能。其突出特點(diǎn)是開放性、分散性與數(shù)字通信。
1.4.2嵌入式技術(shù)
●嵌入式系統(tǒng)
根據(jù)IEEE (國(guó)際電氣和電子工程師協(xié)會(huì))的定義,嵌入式系統(tǒng)是“以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能”。在當(dāng)前數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PC時(shí)代,嵌入式系統(tǒng)已經(jīng)廣泛地滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、工業(yè)控制等方方面面中,而且工業(yè)控制是嵌入式系統(tǒng)重要的應(yīng)用領(lǐng)域。
嵌入式系統(tǒng)的主要特點(diǎn):
(1 )系統(tǒng)內(nèi)核小。嵌入式系統(tǒng)通常是面向特定應(yīng)用的嵌入式CPU,通常都具有低功耗、體積小、集成度高等特點(diǎn),系統(tǒng)資源相對(duì)有限,所以內(nèi)核較之傳統(tǒng)的操作系統(tǒng)要小得多,從而有利于嵌入式系統(tǒng)設(shè)計(jì)趨于小型化,移動(dòng)能力大大增強(qiáng)。
(2 )專用性強(qiáng)。嵌入式系統(tǒng)的個(gè)性化很強(qiáng),其中的軟件系統(tǒng)和硬件的結(jié)合非常緊密,一般要針對(duì)硬件進(jìn)行系統(tǒng)的移植。
(3 )系統(tǒng)精簡(jiǎn)。嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計(jì),量體裁衣、去除冗余。
(4 )具有實(shí)時(shí)性的系統(tǒng)軟件(OS)是嵌入式軟件的基本要求。軟件代碼要求高質(zhì)量和高可靠性。
(5 )支持多任務(wù)。嵌入式軟件開發(fā)要想走向標(biāo)準(zhǔn)化,就必須使用多任務(wù)的操作系統(tǒng)。
嵌入式系統(tǒng)的應(yīng)用程序可以沒有操作系統(tǒng)而直接在芯片上運(yùn)行:但是為了合理的調(diào)度多任務(wù)。利用系統(tǒng)資源、系統(tǒng)函數(shù)以及專家?guī)旌瘮?shù)接口,用戶必須自行選配RTOS( Real-Time Operating System )開發(fā)平臺(tái),這樣才能保證程序執(zhí)行的實(shí)時(shí)性、可靠性并減少開發(fā)時(shí)間。
(6 )嵌入式系統(tǒng)開發(fā)需要專門的開發(fā)工具和環(huán)境。由于嵌入式系統(tǒng)本身不具備自主開發(fā)能力,即使設(shè)計(jì)完成后,用戶通常不能對(duì)其中的程序功能進(jìn)行修改,因此必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。開發(fā)時(shí)往往有主機(jī)和目標(biāo)機(jī)的概念,主機(jī)用于程序的開發(fā),目標(biāo)機(jī)作為最后的執(zhí)行機(jī),開發(fā)是需要交替結(jié)合進(jìn)行。
●嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)就是支持嵌入式系統(tǒng)工作的操作系統(tǒng),是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺(tái)。它是一段嵌入在目標(biāo)代碼中的軟件,用戶的其他應(yīng)用程序都建立在操作系統(tǒng)之上,它在知識(shí)體系和技術(shù)本質(zhì)上與通用操作系統(tǒng)沒有太大的區(qū)別,一般用于比較復(fù)雜的嵌入式系統(tǒng)軟件開發(fā)中。由于大多數(shù)嵌入式系統(tǒng)應(yīng)用在實(shí)時(shí)環(huán)境中,因此嵌入式系統(tǒng)一般具有實(shí)時(shí)特點(diǎn)。
嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的靈魂,它的出現(xiàn)大大提高了嵌入式系統(tǒng)開發(fā)的效率,減少了系統(tǒng)開發(fā)的總工作量,而且提高了嵌入式應(yīng)用軟件的可移植性。為了滿足嵌入式系統(tǒng)的需要,嵌入式操作系統(tǒng)必須要包括操作系統(tǒng)的一些最基本的功能,如中斷處理與進(jìn)程調(diào)度,用戶可以通過應(yīng)用程序接口(API)來使用操作系統(tǒng)。
●嵌入式開發(fā)過程
在嵌入式開發(fā)過程中有宿主機(jī)和目標(biāo)機(jī)之分:宿主機(jī)是執(zhí)行編譯、鏈接、定址過程的計(jì)算機(jī);目標(biāo)機(jī)指運(yùn)行嵌入式軟件的硬件平臺(tái)。首先須把應(yīng)用程序轉(zhuǎn)換成可以在目標(biāo)機(jī)上運(yùn)行的二進(jìn)制代碼。這一過程包含三個(gè)步驟:編譯、鏈接、定址。編譯過程由交叉編譯器實(shí)現(xiàn)。所謂交叉編譯器就是運(yùn)行在一個(gè)計(jì)算機(jī)平臺(tái)上并為另一個(gè)平臺(tái)產(chǎn)生代碼的編譯器。常用的交叉編譯器有GNUC/C++ (gcc)。編譯過程產(chǎn)生的所有目標(biāo)文件被鏈接成一個(gè)目標(biāo)文件,稱為鏈接過程。定址過程會(huì)把物理存儲(chǔ)器地址指定給目標(biāo)文件的每個(gè)相對(duì)偏移處。該過程生成的文件就是可以在嵌入式平臺(tái)上執(zhí)行的二進(jìn)制文件。常用的集成開發(fā)工具有ADSl.2等。
嵌入式開發(fā)過程中另一個(gè)重要的步驟是調(diào)試目標(biāo)機(jī)上的應(yīng)用程序。嵌入式調(diào)試采用交叉調(diào)試器,一般采用宿主機(jī)-目標(biāo)機(jī)的調(diào)試方式,它們之間由串行口線或以太網(wǎng)或BDM線相連。交叉調(diào)試有任務(wù)級(jí)、源碼級(jí)和匯編級(jí)的調(diào)試,調(diào)試時(shí)需將宿主機(jī)上的應(yīng)用程序和操作系統(tǒng)內(nèi)核下載到目標(biāo)機(jī)的RAM中或直接燒錄到目標(biāo)機(jī)的FLASH中。目標(biāo)監(jiān)控器是調(diào)試器對(duì)目標(biāo)機(jī)上運(yùn)行的應(yīng)用程序進(jìn)行控制的代理( Debugger Agent),事先被固化在目標(biāo)機(jī)的Flash、ROM中,在目標(biāo)機(jī)上電后自動(dòng)啟動(dòng),并等待宿主機(jī)方調(diào)試器發(fā)來的命令,配合調(diào)試器完成應(yīng)用程序的下載、運(yùn)行和基本的調(diào)試功能,將調(diào)試信息返回給宿主機(jī)[5 ]。