




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第13章微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)13.1概述13.2系統(tǒng)設(shè)計(jì)的原則與步驟13.3微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例習(xí)題1313.1概述13.1.1微機(jī)應(yīng)用的意義在術(shù)語方面,所說的計(jì)算機(jī)“應(yīng)用”(Application)有別于“使用”(Use)。所謂“使用”是指在計(jì)算機(jī)一般環(huán)境下,按照說明書操作來完成用戶的工作需求。因此“使用”對計(jì)算機(jī)本身的硬、軟件基本不做增減,對使用者的專業(yè)要求極為簡單。而“應(yīng)用”的含義將更為廣泛,除具有上述的“使用”意義之外,既可能對計(jì)算機(jī)的硬、軟件做相當(dāng)大的“開發(fā)式”增減(如檢測通道、執(zhí)行通道及相應(yīng)的接口乃至應(yīng)用軟件)與改造,也可能在用戶選配的外圍設(shè)備或器件(硬件)的支持下,對儀器、儀表、裝置以及整個(gè)工業(yè)過程進(jìn)行檢測控制。因此對應(yīng)用者有更高的專業(yè)要求。因此,“應(yīng)用”是一種設(shè)計(jì)與創(chuàng)新。13.1.2微機(jī)應(yīng)用系統(tǒng)的一般類型微機(jī)的應(yīng)用一般可分成三種類型,即檢測控制型、數(shù)據(jù)處理型和混合型系統(tǒng)。
1.檢測控制型系統(tǒng)檢測控制型微機(jī)應(yīng)用系統(tǒng)需要檢測控制對象的狀態(tài)參數(shù),對控制對象的狀態(tài)做出某些推理判斷,然后輸出信號(hào)再去控制執(zhí)行機(jī)構(gòu)。它不需要做復(fù)雜的數(shù)學(xué)模型的計(jì)算工作,但它必須有檢測控制對象的傳感電路,并且還要將檢測到的模擬信號(hào)(連續(xù)的電壓或電流值)轉(zhuǎn)換成數(shù)字信號(hào)(量化的數(shù)字量),即通過模/數(shù)轉(zhuǎn)換(A/D)來實(shí)現(xiàn)工作目的。
作為一個(gè)計(jì)算機(jī)控制系統(tǒng),如果把計(jì)算機(jī)比作人的“頭腦”的話,則傳感器就相當(dāng)于“耳目”,執(zhí)行機(jī)構(gòu)則是行動(dòng)的“手腳”,而ADC是起到使“耳目”和“頭腦”之間匹配的作用,或者說起到將模擬信號(hào)翻譯成數(shù)字信號(hào)的作用,以適應(yīng)計(jì)算機(jī)的工作需要。執(zhí)行機(jī)構(gòu)如果要求開關(guān)量驅(qū)動(dòng),則計(jì)算機(jī)只要輸出開關(guān)量(如繼電器)即可;如執(zhí)行機(jī)構(gòu)是模擬量驅(qū)動(dòng),則計(jì)算機(jī)要將數(shù)據(jù)經(jīng)過DAC轉(zhuǎn)換才能產(chǎn)生用于控制的模擬量(如電壓或電流值)。這里要指出的是,ADC和DAC是計(jì)算機(jī)控制系統(tǒng)的必備的重要器件。其他的“手腳”和“耳目”之類的器件都是一般控制檢測裝置上通用的,只要適當(dāng)?shù)剡x配,即可以構(gòu)成計(jì)算機(jī)控制系統(tǒng)。2.數(shù)據(jù)處理型系統(tǒng)數(shù)據(jù)處理型微機(jī)應(yīng)用系統(tǒng)是指輸入數(shù)據(jù)量比較大(幾十、幾百、甚至成千上萬個(gè)數(shù)據(jù)),數(shù)據(jù)輸入后需要按照一定規(guī)律進(jìn)行分類、排序(列表)、折算(如線性化)、換算(如求均值、方差等),然后再送入有關(guān)的數(shù)學(xué)模型進(jìn)行繁雜運(yùn)算的計(jì)算機(jī)系統(tǒng)。這類系統(tǒng)為了便于人機(jī)對話,必須配有CRT顯示器和鍵盤。某些情況下還可增設(shè)若干個(gè)帶有電傳打字機(jī)的終端機(jī)。
3.混合型系統(tǒng)混合型應(yīng)用系統(tǒng)即以上二者的復(fù)合型形式。它一方面既有很多數(shù)據(jù)輸入,并需要對輸入數(shù)據(jù)進(jìn)行相應(yīng)的運(yùn)算、分析和處理,另一方面又要根據(jù)處理的結(jié)果去控制相應(yīng)的對象,以達(dá)到整個(gè)系統(tǒng)的預(yù)期目的。13.2系統(tǒng)設(shè)計(jì)的原則與步驟13.2.1微機(jī)應(yīng)用系統(tǒng)的一般構(gòu)成微機(jī)應(yīng)用系統(tǒng)由硬件系統(tǒng)(微機(jī)+控制電路)和軟件系統(tǒng)(系統(tǒng)軟件+應(yīng)用軟件)兩大部分構(gòu)成。
1.應(yīng)用系統(tǒng)的硬件組成微機(jī)應(yīng)用系統(tǒng)的硬件的一般構(gòu)成框圖如圖13.1所示。由圖可以看到,應(yīng)用系統(tǒng)由如下幾大部分組成。圖13.1微機(jī)應(yīng)用系統(tǒng)硬件的一般組成1)微機(jī)微機(jī)是整個(gè)應(yīng)用系統(tǒng)的核心,其他所有設(shè)備都要在它的控制和管理下進(jìn)行工作,又稱系統(tǒng)為系統(tǒng)主機(jī)。在系統(tǒng)控制或監(jiān)測過程中,主機(jī)能自動(dòng)接收或采集被控對象的各種信息。在微機(jī)內(nèi),按人們事先安排好的程序,對采集到的信息進(jìn)行加工運(yùn)算和分析判別,并做出相應(yīng)的處理和控制決策,以信息形式再回送給執(zhí)行結(jié)構(gòu),控制執(zhí)行機(jī)構(gòu)動(dòng)作,從而實(shí)現(xiàn)對被控或被測對象的自動(dòng)控制與管理。微機(jī)中的程序和有關(guān)的初始數(shù)據(jù)是人們事先編排好的。在操作前,通過輸入設(shè)備將其輸入或使用讀寫器固化在ROM中。一旦系統(tǒng)被引導(dǎo)啟動(dòng),微機(jī)就會(huì)按順序取出一條條所存貯的指令執(zhí)行。于是系統(tǒng)就會(huì)按人們預(yù)先設(shè)想的規(guī)律,一步一步地完成整個(gè)系統(tǒng)的控制和監(jiān)測過程。2)常規(guī)外圍設(shè)備
(1)輸入設(shè)備:主要用于程序和數(shù)據(jù)的輸入,常見的有紙帶閱讀機(jī)、鍵盤、鼠標(biāo)器和光筆等。
(2)輸出設(shè)備:主要用于程序處理后的信息或數(shù)據(jù)的輸出。它把處理過的各種信息和數(shù)據(jù),以人們能夠直觀接受的外形(如字符、數(shù)字、圖形)提供給操作人員,以便操作人員能及時(shí)了解微機(jī)內(nèi)部及整個(gè)應(yīng)用系統(tǒng)的工作情況。常見的輸出設(shè)備有打印機(jī)、X-Y記錄儀和顯示器等。
(3)外存貯器:主要用來存貯程序及有關(guān)的數(shù)據(jù),如磁帶機(jī)、磁盤(硬盤和軟盤)、光盤等。3)外部接口電路外部接口設(shè)備是應(yīng)用系統(tǒng)與被控或被測對象之間進(jìn)行信息變換和信息傳遞的設(shè)備。它包括輸入接口和輸出接口電路。接口電路通常應(yīng)具備以下特征:
(1)數(shù)據(jù)傳輸通道:它能為微機(jī)提供一個(gè)輸入/輸出數(shù)據(jù)的通道,用于快速傳輸數(shù)據(jù)。
(2)信息格式的匹配與變換:接口應(yīng)具備輸入/輸出信息,實(shí)現(xiàn)信息格式的匹配與變換功能,如A/D、D/A轉(zhuǎn)換,串—并、并—串轉(zhuǎn)換及其他信息格式的轉(zhuǎn)換等。
(3)輸入/輸出電平匹配:微機(jī)的輸入/輸出電平往往是TTL電平,而被控對象所要求的輸入/輸出電平的規(guī)格較多,為此,接口應(yīng)具備電平轉(zhuǎn)換功能。(4)負(fù)載匹配:微機(jī)的輸出負(fù)載能力是比較小的,為了使系統(tǒng)能夠控制大功率的被控對象,接口也應(yīng)具備驅(qū)動(dòng)和功率放大的能力。
(5)同步:微機(jī)的工作速度是比較高的,而一般受控對象所要求的控制速率卻較低。這樣,為了使微機(jī)的工作速度和外界受控對象所要求的控制速度相匹配,就要由接口電路的同步機(jī)構(gòu)來實(shí)現(xiàn)內(nèi)、外部系統(tǒng)的速度同步。盡管對微機(jī)接口電路要求較多,但并不是每種接口都具備上述所有功能。接口要求功能的多少往往視接口連接的對象而定。目前各器件生產(chǎn)廠家都生產(chǎn)了配套的輸入/輸出接口芯片,因此使接口設(shè)計(jì)變得比較容易,通常只要做少量的硬件工作就可以將微機(jī)與被控或被測對象連接起來。4)操作控制臺(tái)及監(jiān)視報(bào)警設(shè)備微機(jī)應(yīng)用系統(tǒng)在正常工作時(shí),并不需要人直接參與。但是無論如何,必須使人—機(jī)保持密切的聯(lián)系。這是因?yàn)橄到y(tǒng)在運(yùn)行過程中,操作人員需要對運(yùn)行狀態(tài)進(jìn)行監(jiān)視和了解。系統(tǒng)發(fā)生故障時(shí),必須能自動(dòng)報(bào)警,爾后,操作人員可以通過控制臺(tái)上的按鍵干預(yù)。另外,當(dāng)需要修改控制程序和控制參數(shù)時(shí),同樣也要通過控制臺(tái)上的鍵盤對系統(tǒng)的工作進(jìn)行干預(yù)。根據(jù)上述要求,操作控制臺(tái)應(yīng)包含控制鍵盤、面板顯示和報(bào)警顯示器等。在某些系統(tǒng)中,為了調(diào)試和工作方便,在控制臺(tái)上還裝有手動(dòng)轉(zhuǎn)換裝置,以便在人工方式時(shí),對被控對象進(jìn)行操縱。
2.應(yīng)用系統(tǒng)的軟件構(gòu)成要使微機(jī)應(yīng)用系統(tǒng)能正常工作,就必須在微機(jī)內(nèi)存中存放一定的程序。系統(tǒng)管理需要程序,對某些對象進(jìn)行控制和監(jiān)測也需要程序??梢赃@么說,微機(jī)應(yīng)用系統(tǒng)的硬件是系統(tǒng)的軀體,而軟件(即各種程序和數(shù)據(jù)的集合)是整個(gè)系統(tǒng)的靈魂。不同的控制對象和不同的控制任務(wù),在系統(tǒng)軟件構(gòu)成上會(huì)有很大區(qū)別。一般來說,只有系統(tǒng)軟硬件協(xié)同設(shè)計(jì)完成以后,才能完全確定如何配置系統(tǒng)的軟件。但是,這并不意味著系統(tǒng)的軟件構(gòu)成是不可捉摸的。一般根據(jù)其功能,軟件系統(tǒng)大體可以分成以下幾個(gè)部分。1)用戶程序在微機(jī)應(yīng)用系統(tǒng)中,對每個(gè)控制對象或控制任務(wù)都一定配有相應(yīng)的控制程序,這些程序用來完成對各被控對象的不同控制。例如,我們要控制一臺(tái)機(jī)床,對構(gòu)件進(jìn)行切削加工,就必須配備一個(gè)切削加工程序。通常這種為了各種應(yīng)用目的(控制、監(jiān)測等)而編制的程序稱為應(yīng)用程序或用戶程序。編寫應(yīng)用程序的工作一般都由用戶自己開發(fā)完成。用戶可以根據(jù)微機(jī)應(yīng)用系統(tǒng)的資源配備情況,確定使用何種語言來編寫用戶程序,既可以用高級(jí)語言也可以用匯編語言。高級(jí)語言功能強(qiáng),且比較近似于人們?nèi)粘I钣谜Z習(xí)慣,因此比較容易編寫。而用匯編語言編寫的程序則具有執(zhí)行速度快、對硬件及端口操作靈活、占用存儲(chǔ)器少的特點(diǎn)。目前,人們通常用高級(jí)語言和匯編語言混合編程的方法來編寫用戶程序。在微機(jī)應(yīng)用系統(tǒng)中,用戶程序是一個(gè)用于對被控對象進(jìn)行直接控制的程序。因此,它將對控制對象產(chǎn)生決定性的影響,即用戶程序的優(yōu)劣,會(huì)給系統(tǒng)的精度、可靠性及工作效率帶來致命的影響。2)常用子程序庫一個(gè)微機(jī)應(yīng)用系統(tǒng)的基本功能要受到硬件結(jié)構(gòu)和系統(tǒng)擁有的資源的限制。例如,一般不能用硬件進(jìn)行數(shù)制變換和數(shù)據(jù)采集等,而這樣一些功能是應(yīng)用系統(tǒng)要經(jīng)常用到的。為此,我們采用子程序的方式來滿足系統(tǒng)用戶程序的要求。所謂子程序,就是將一些特定功能編成一個(gè)個(gè)專用程序段,放在子程序庫中,系統(tǒng)需要使用時(shí),可以隨時(shí)調(diào)用。子程序庫中的子程序都編成標(biāo)準(zhǔn)的形式,一般都要規(guī)定入口參數(shù)、入口地址、出口參數(shù)等。只要按其規(guī)定,即可在主程序中隨意調(diào)用。3)操作系統(tǒng)一般從商家買來的微機(jī)都配有操作系統(tǒng)。操作系統(tǒng)是一個(gè)系統(tǒng)管理程序,它由多個(gè)不同功能和作用的程序模塊組成,形成一個(gè)程序的集合體,用于控制、管理微機(jī)系統(tǒng)的軟硬件資源,提供用戶操作和使用的接口。在應(yīng)用系統(tǒng)中,各程序模塊之間存在著復(fù)雜的邏輯關(guān)系和時(shí)間關(guān)系,它們之間不僅有運(yùn)行的獨(dú)立性,而且還有運(yùn)行的并行性。隨著系統(tǒng)控制過程的發(fā)展,在某一個(gè)時(shí)刻可能出現(xiàn)多個(gè)任務(wù)的不同請求,這就形成了幾個(gè)程序同時(shí)要求運(yùn)行的情況,這種情況稱為任務(wù)對微機(jī)資源的競爭。在這種情況下,系統(tǒng)必須實(shí)時(shí)響應(yīng)這些請求,根據(jù)輕重緩急,妥善地處理好這種競爭,使對系統(tǒng)的所有請求都得到相應(yīng)的滿足。
除此之外,操作系統(tǒng)還要對其他資源,如外圍設(shè)備、內(nèi)存等進(jìn)行管理,還要對人—機(jī)通信進(jìn)行管理和幫助等。在某些較小型的微機(jī)中(如單板機(jī)),由于受到硬件資源的限制,不可能配備操作系統(tǒng)那樣規(guī)模的系統(tǒng)程序,而通常配備一個(gè)能提供最基本操作環(huán)境的駐留監(jiān)控程序。當(dāng)然,這種駐留監(jiān)控程序的規(guī)模也和系統(tǒng)有關(guān),其功能強(qiáng)弱也各不相同??傊僮飨到y(tǒng)將給人們使用微機(jī)系統(tǒng)提供了一個(gè)方便的使用環(huán)境。13.2.2應(yīng)用系統(tǒng)的設(shè)計(jì)原則和要求微機(jī)應(yīng)用系統(tǒng)的基本設(shè)計(jì)原則和要求,在不同規(guī)模和要求的系統(tǒng)中大體是相同的。因此,這些共同的原則和要求在設(shè)計(jì)前或設(shè)計(jì)過程中都必須予以很好的考慮。
1.操作性能要好微機(jī)應(yīng)用系統(tǒng)的操作性能好,就是指系統(tǒng)的人—機(jī)界面要友好,操作起來簡單、方便,并且便于維護(hù)。為此,在設(shè)計(jì)整個(gè)系統(tǒng)的硬件和軟件時(shí),應(yīng)處處為用戶想到這一點(diǎn)。在設(shè)計(jì)系統(tǒng)軟件時(shí),就應(yīng)該考慮配備什么樣的軟件和環(huán)境能降低操作人員對某些專業(yè)知識(shí)的要求。前面已經(jīng)提到,系統(tǒng)中的某些用戶程序是要由用戶自己編寫的。例如,在數(shù)控設(shè)備中,加工切削程序往往要由操作人員來編寫或進(jìn)行修改。如果這樣的用戶程序是用匯編語言編寫的,那么對操作人員來說,就必須熟悉相應(yīng)微機(jī)的匯編指令和程序設(shè)計(jì)的基本知識(shí),否則是難于勝任的。這種軟件設(shè)計(jì)方案必然會(huì)限制微機(jī)應(yīng)用系統(tǒng)的推廣和應(yīng)用。
事實(shí)上,如果我們在系統(tǒng)上配上高級(jí)語言,特別是配上像工業(yè)控制中常用的數(shù)控語言,那么加工程序的編制就非常容易,一般操作人員就能很快掌握。這樣就有利于微機(jī)應(yīng)用系統(tǒng)的推廣和應(yīng)用。對硬件方面的要求也一樣,例如,系統(tǒng)的控制開關(guān)不能太多、太復(fù)雜,操作順序要盡量簡單等。另外,盡管微機(jī)應(yīng)用系統(tǒng)的可靠性較高,但是不能理想地認(rèn)為它不會(huì)發(fā)生故障。一旦出現(xiàn)故障,如何能盡快地排除,這也是系統(tǒng)設(shè)計(jì)時(shí)要考慮的問題。從軟件角度來說,系統(tǒng)應(yīng)配置自檢或診斷程序,以便在故障發(fā)生時(shí),能用程序來查找故障發(fā)生的部位,以縮短排除故障的時(shí)間;從硬件角度來說,零部件的配置應(yīng)便于操作人員檢修。
2.通用性好,便于擴(kuò)展通常一個(gè)微機(jī)應(yīng)用系統(tǒng)在工作時(shí)都能同時(shí)控制幾臺(tái)設(shè)備。但是,在大多數(shù)情況下,各個(gè)設(shè)備的控制要求往往是有差別的。另外,所控制的設(shè)備也不是一成不變的,而是要經(jīng)常不斷地進(jìn)行更新。這樣,就要求系統(tǒng)不僅能適應(yīng)各種不同設(shè)備的要求,而且也要考慮在設(shè)備更新時(shí),整個(gè)系統(tǒng)不需要做大的改動(dòng)就能馬上適應(yīng)新的配置。系統(tǒng)的通用性,而且在必要時(shí)能靈活地進(jìn)行擴(kuò)展。微機(jī)應(yīng)用系統(tǒng)要達(dá)到這樣的要求,就必須盡可能地采用標(biāo)準(zhǔn)化設(shè)計(jì)。例如,盡可能采用通用的系統(tǒng)總線結(jié)構(gòu),像采用STD總線、AT總線、MULTIBUS總線等。在需要擴(kuò)充時(shí),只要增加一些相應(yīng)的接口卡就能實(shí)現(xiàn)對所擴(kuò)充的設(shè)備進(jìn)行控制。另外,接口部件盡量采用標(biāo)準(zhǔn)的通用的大規(guī)模集成電路芯片。在考慮軟件時(shí),只要速度允許,就盡可能把接口硬件部分的操作功能用軟件來替代。這樣在改變被控設(shè)備時(shí),就無需變動(dòng)或較少變動(dòng)硬件,只需要改變軟件就行了。系統(tǒng)的各項(xiàng)設(shè)計(jì)指標(biāo)留有一定的余量,也是可擴(kuò)充的首要條件。例如,微機(jī)的工作速度如果在設(shè)計(jì)時(shí)不留有一定余量,那么要想再進(jìn)行系統(tǒng)擴(kuò)充是完全不可能的。其他指標(biāo),如電源功率、內(nèi)存容量、輸入/輸出通道、中斷等也
3.可靠性高對任何微機(jī)應(yīng)用系統(tǒng)來說,盡管各種各樣的要求很多,但可靠性是最突出和最重要的一個(gè)基本要求。因?yàn)椋粋€(gè)系統(tǒng)能否長時(shí)期安全可靠地正常工作,對一個(gè)工廠來說將要影響到整個(gè)裝置、整個(gè)車間,乃至整個(gè)工廠的正常生產(chǎn)。一旦發(fā)生故障,就會(huì)造成整個(gè)生產(chǎn)過程的全面混亂甚至癱瘓,從而引起嚴(yán)重后果,所以對可靠性有很高的要求。特別是作為控制核心的微機(jī),其可靠性要求則更高。
人們通常采用多微機(jī)系統(tǒng)形式來構(gòu)成一個(gè)應(yīng)用系統(tǒng),就是將應(yīng)用系統(tǒng)分成若干個(gè)功能模塊,每個(gè)功能模塊由一個(gè)微機(jī)來進(jìn)行控制,并將各個(gè)微機(jī)用網(wǎng)絡(luò)連接起來,構(gòu)成一個(gè)多機(jī)系統(tǒng)。這樣,功能分散了,危險(xiǎn)也相應(yīng)地分散了。即使工作過程中某一臺(tái)微機(jī)發(fā)生了故障,也不至于使整個(gè)系統(tǒng)癱瘓。當(dāng)前常見的形式有下面兩種。1)采用雙機(jī)系統(tǒng)在這種系統(tǒng)中,用兩臺(tái)微機(jī)作為系統(tǒng)的核心控制器。由于兩臺(tái)微機(jī)同時(shí)發(fā)生故障的概率很小,從而大大提高了系統(tǒng)的可靠性。雙機(jī)系統(tǒng)中兩臺(tái)微機(jī)的工作方式,常見的有以下兩種。
(1)備份機(jī)工作方式。在這種方式中,一臺(tái)微機(jī)投入系統(tǒng)運(yùn)行,另一臺(tái)雖然也同樣處于運(yùn)行狀態(tài),但是它是脫離系統(tǒng)的,只是作為系統(tǒng)的一臺(tái)備份機(jī)。當(dāng)投入系統(tǒng)運(yùn)行的那一臺(tái)微機(jī)出現(xiàn)故障時(shí),通過專門的程序和切換裝置,自動(dòng)地把備份機(jī)切入系統(tǒng),以保持系統(tǒng)正常運(yùn)行。被替換下來的微機(jī)經(jīng)修復(fù)后,就變成系統(tǒng)的備份機(jī),這樣可使系統(tǒng)不因主機(jī)故障而影響系統(tǒng)的正常工作。(2)主—從工作方式。這種方式是兩臺(tái)微機(jī)同時(shí)投入系統(tǒng)運(yùn)行。在正常情況下,這兩臺(tái)微機(jī)分別執(zhí)行不同的任務(wù)。如一臺(tái)微機(jī)可以承擔(dān)系統(tǒng)的主要控制工作,而另一臺(tái)可以執(zhí)行諸如數(shù)據(jù)處理等一般性的工作。當(dāng)其中一臺(tái)發(fā)生故障時(shí),故障機(jī)能自動(dòng)地脫離系統(tǒng),另一臺(tái)微機(jī)就自動(dòng)地承擔(dān)起系統(tǒng)的所有任務(wù),以保證系統(tǒng)的正常工作。2)采用多微機(jī)集散控制這種系統(tǒng)結(jié)構(gòu)是目前提高系統(tǒng)可靠性的一個(gè)重要發(fā)展趨勢。在過去,如上所述,計(jì)算機(jī)控制主要傾向于采用集中控制的方案,即根據(jù)系統(tǒng)的控制任務(wù)和要求,選擇一臺(tái)適當(dāng)功能的計(jì)算機(jī)來承擔(dān)系統(tǒng)的全部任務(wù)。這樣做,一旦主機(jī)發(fā)生故障就會(huì)影響整個(gè)系統(tǒng)。隨著微機(jī)的出現(xiàn),以及它的硬件價(jià)格不斷地下降,已有可能把系統(tǒng)的所有控制任務(wù)分散地由多臺(tái)微機(jī)來承擔(dān)。為了保持整個(gè)系統(tǒng)的完整性,再用一臺(tái)適當(dāng)功能的微機(jī)作為上一級(jí)的管理主機(jī),對多臺(tái)分散的下一級(jí)微機(jī)進(jìn)行監(jiān)督和管理。這就組成了一個(gè)兩級(jí)多機(jī)分布式應(yīng)用系統(tǒng),如圖12.2所示。圖中第一級(jí)有多臺(tái)微機(jī)分別對各被控對象進(jìn)行控制,而上一級(jí)的微機(jī)通過總線與下一級(jí)的微機(jī)相連接,并對它們實(shí)施管理和監(jiān)督。圖13.2多微機(jī)集散控制示意圖
多級(jí)分布式應(yīng)用系統(tǒng)可以使微機(jī)的故障對系統(tǒng)所產(chǎn)生的影響減至最小。如果第一級(jí)中某一臺(tái)發(fā)生故障,其影響是很小的一個(gè)局部。如果上一級(jí)管理機(jī)發(fā)生了故障,則下一級(jí)微機(jī)仍可以獨(dú)立維持對被控對象的控制,直到上一級(jí)管理機(jī)排除故障為止。有關(guān)微機(jī)應(yīng)用系統(tǒng)可靠性的問題是一個(gè)十分重要而又復(fù)雜的課題??煽啃栽O(shè)計(jì)應(yīng)包括硬件的、軟件的、電源的、環(huán)境的及電磁兼容性的設(shè)計(jì)等等,詳細(xì)內(nèi)容請讀者參閱有關(guān)資料。
4.設(shè)計(jì)周期短、價(jià)格便宜在研制微機(jī)應(yīng)用系統(tǒng)時(shí),應(yīng)考慮的一個(gè)重要因素是設(shè)計(jì)周期短、價(jià)格便宜。目前科學(xué)技術(shù)發(fā)展十分迅速,各種新的技術(shù)和產(chǎn)品不斷出現(xiàn),這就要求所設(shè)計(jì)的微機(jī)應(yīng)用系統(tǒng)能跟上形勢的發(fā)展。如果研制周期太長,會(huì)使產(chǎn)品失去競爭能力和實(shí)用價(jià)值。所以,微機(jī)應(yīng)用系統(tǒng)不能搞大而全,應(yīng)考慮實(shí)際情況來確定系統(tǒng)的設(shè)計(jì)規(guī)模。這樣既可以縮短設(shè)計(jì)周期又可以降低系統(tǒng)的設(shè)計(jì)費(fèi)用。在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),要仔細(xì)核算以降低整個(gè)系統(tǒng)的成本,在保證功能和性能的前提下,低的價(jià)格才有競爭力。
5.對環(huán)境的適應(yīng)性要好在開發(fā)微機(jī)應(yīng)用系統(tǒng)時(shí),一定要考慮到其應(yīng)用環(huán)境,保證在現(xiàn)場的環(huán)境下可靠地工作。例如,有的地方電源電壓波動(dòng)很大,有的地方環(huán)境溫度變化劇烈,有的地方濕度很大,有的地方振動(dòng)很厲害,而有的工作環(huán)境有粉塵、鹽霧、腐蝕等等。這些外界因素在系統(tǒng)設(shè)計(jì)中必須加以考慮,采用必要的措施保證微機(jī)應(yīng)用系統(tǒng)安全可靠地工作。13.2.3微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的基本內(nèi)容和步驟
1.系統(tǒng)引入微機(jī)的必要性——成本控制在設(shè)計(jì)微機(jī)應(yīng)用系統(tǒng)之前,首先要估價(jià)一下引入微機(jī)以后會(huì)給用戶帶來多少經(jīng)濟(jì)效益和社會(huì)效益,即估價(jià)成本高低,系統(tǒng)性能改善程度,系統(tǒng)的通用性、可靠性、可維護(hù)性等方面。最后再確定是否在系統(tǒng)中引入微機(jī)。一般地說,如果在三年內(nèi)能收回引入微機(jī)應(yīng)用系統(tǒng)所花的成本,采用微機(jī)就是合理的。若采用微機(jī)應(yīng)用系統(tǒng)能取得降低工作人員的勞動(dòng)強(qiáng)度,避開有污染和有害環(huán)境,保證人身安全等社會(huì)效益時(shí),則引入微機(jī)也是十分必要的。
2.需求分析——確定系統(tǒng)的功能需求分析是在仔細(xì)了解用戶需求的基礎(chǔ)上進(jìn)行的。因此,首先必須詳細(xì)了解用戶的需求。調(diào)查用戶要利用微機(jī)應(yīng)用系統(tǒng)實(shí)現(xiàn)的功能。例如,對于測量系統(tǒng),應(yīng)該了解要測量的參數(shù)是什么,采用什么傳感器,信號(hào)大小與形式,放大器要求,測量精度,如何顯示,如何輸出結(jié)果等。對于控制系統(tǒng),還要仔細(xì)調(diào)查用戶的要求、工藝過程、控制精度等等。此外,在了解用戶要求完成測控功能的同時(shí),還必須認(rèn)真了解未來微機(jī)應(yīng)用系統(tǒng)的工作環(huán)境,包括電源的穩(wěn)定性,干擾大小以及環(huán)境的溫度、濕度等等。
總之,開發(fā)設(shè)計(jì)人員一定要非常認(rèn)真仔細(xì)地進(jìn)行需求調(diào)查,必須強(qiáng)調(diào)需求調(diào)查和分析是后續(xù)工作的依據(jù),其后所做的一切都是以滿足用戶需求為目的的。針對用戶的需求,仔細(xì)分析測控對象的工作過程,明確微機(jī)系統(tǒng)應(yīng)如何去做,用時(shí)間和控制流圖來描述這些工作過程。
3.選擇基本微機(jī)系統(tǒng)——硬件系統(tǒng)設(shè)計(jì)在設(shè)計(jì)微機(jī)應(yīng)用系統(tǒng)時(shí),通??偸窍冗x擇一個(gè)最基本的微機(jī)系統(tǒng),然后對它進(jìn)行擴(kuò)展,并配上相應(yīng)的軟件,從而形成一個(gè)實(shí)用的應(yīng)用系統(tǒng)。由于微機(jī)是整個(gè)應(yīng)用系統(tǒng)的核心,所以它的選擇是否合適,將對整個(gè)系統(tǒng)產(chǎn)生決定性的影響?;疚C(jī)系統(tǒng)選擇中應(yīng)考慮的依據(jù)大致有以下四個(gè)方面。1)微處理器的字長微處理器的字長會(huì)直接對系統(tǒng)精度、指令多少、尋址能力、處理速度等產(chǎn)生影響,由此必然導(dǎo)致應(yīng)用領(lǐng)域的不同。一般來說,微處理器的字長愈長,對數(shù)據(jù)處理愈有利,處理速度也可以進(jìn)一步提高。但是,并不是字長愈長愈好,在選擇時(shí),應(yīng)根據(jù)應(yīng)用實(shí)際情況及性能價(jià)格比綜合考慮。2)微處理器的工作速度微處理器的工作速度一般取決于系統(tǒng)的主頻,目前常見的是幾百兆赫到幾千兆赫。速度的選擇應(yīng)使其與被控對象的要求相適應(yīng)或稍留一點(diǎn)余量,過高的要求會(huì)給系統(tǒng)的安裝和調(diào)試帶來不必要的困難。因?yàn)樵诟咚俟ぷ鲿r(shí),引線之間的串?dāng)_及信號(hào)延時(shí)是非常令人頭痛的問題。3)系統(tǒng)結(jié)構(gòu)對環(huán)境的適應(yīng)性不同的微機(jī)系統(tǒng)對環(huán)境的適應(yīng)能力是不同的。例如,市面上出售的一般IBM-PC微機(jī),通常只能適用于辦公室或?qū)嶒?yàn)室這樣的室內(nèi)環(huán)境,如果將它用于工業(yè)控制環(huán)境就會(huì)產(chǎn)生諸多問題。在工業(yè)控制領(lǐng)域中,最好選用具有工業(yè)控制總線(STD總線)的工控機(jī)。因?yàn)樗哂锌拐?、抗干擾等優(yōu)良性能,能較好地適應(yīng)工業(yè)領(lǐng)域的惡劣環(huán)境。4)盡量選用有較多軟件支持的機(jī)型開發(fā)一個(gè)微機(jī)應(yīng)用系統(tǒng),其很重要的一部分工作是開發(fā)軟件。如果所選擇的微機(jī)系統(tǒng)有較多的軟件支持,這無疑會(huì)大大有利于應(yīng)用系統(tǒng)的軟件開發(fā),這樣可以節(jié)省大量的人力、物力和開發(fā)時(shí)間。當(dāng)然,除上述幾個(gè)方面外,外圍設(shè)備配置情況、總線擴(kuò)展方便與否、體積大小、重量等也都是通常要考慮的因素。
4.確定整個(gè)應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)——硬件系統(tǒng)設(shè)計(jì)在基本微機(jī)系統(tǒng)選定以后,就可以根據(jù)被控對象的具體要求來確定系統(tǒng)的結(jié)構(gòu)。
1)通道劃分及輸入/輸出方式的確定根據(jù)被控對象所要求的輸入/輸出參數(shù)的數(shù)目,就可以確定整個(gè)系統(tǒng)應(yīng)該有幾個(gè)輸出通道。當(dāng)然,有的通道可以由幾個(gè)被控設(shè)備共用,由硬件(或軟件)來輸入/選擇切換。另外,根據(jù)被控對象要求,確定采用哪一種輸入/輸出方式更合適。一般說來,采用中斷方式處理器效率較高,但硬件費(fèi)用會(huì)稍高一些,而查詢方式硬件價(jià)格較低,但處理器效率比較低,速度較慢。在一般小型的應(yīng)用系統(tǒng)中,由于速度要求不高,控制的對象也較少,此時(shí),大多采用查詢方式。2)內(nèi)存分配一般基本微機(jī)系統(tǒng)都對內(nèi)存分配作了具體的規(guī)定。用戶在使用已有的內(nèi)存區(qū)時(shí),應(yīng)注意不要使用戶程序占用微機(jī)系統(tǒng)的基本工作區(qū)。如果用戶認(rèn)為內(nèi)存不夠,需要進(jìn)行擴(kuò)展,那么應(yīng)按說明書的要求,在空余的內(nèi)存區(qū)進(jìn)行擴(kuò)展。根據(jù)需求分析,設(shè)計(jì)者可以估計(jì)出未來的系統(tǒng)大約要占多大的ROM用以存放用戶程序和不變的數(shù)據(jù),需要多少RAM用以存放經(jīng)常要改變的數(shù)據(jù)。從而在留有一定余量的基礎(chǔ)上,可以確定內(nèi)存的大小。此后,根據(jù)系統(tǒng)設(shè)計(jì)方便,可以對選定的ROM和RAM分配內(nèi)存地址。3)確定接口和外設(shè)除了專用外設(shè),可以購買現(xiàn)成的設(shè)備。對于應(yīng)用系統(tǒng)中所需的測控部件,如有合適的也盡量購買成品部件。若需自己設(shè)計(jì)開發(fā),那就需要根據(jù)用戶的要求仔細(xì)加以確定。例如,根據(jù)系統(tǒng)要求的精度,該選用多少位的A/D和D/A變換器,根據(jù)所需求的力矩大小決定選擇什么樣的步進(jìn)電機(jī)等等。4)選擇電源微機(jī)應(yīng)用系統(tǒng)的故障多發(fā)點(diǎn)就包括電源部分。根據(jù)系統(tǒng)的硬件配置,可以粗略估計(jì)系統(tǒng)電源需要幾組,各為多少伏,它們的容量是多少。同時(shí),還要考慮對電源采用必要的可靠性措施,如濾波、穩(wěn)壓、防雷電、防浪涌等。
5)系統(tǒng)總線的選擇系統(tǒng)總線的選擇對通用性和可擴(kuò)展性具有很重要的意義。目前常見的系統(tǒng)總線有STD總線、AT總線、VME總線、MULTIBUS總線等。外接口總線有IEEE-488總線、RS-232C總線、CENTRONIC總線等。采用標(biāo)準(zhǔn)化總線,可對系統(tǒng)設(shè)計(jì)帶來很多方便。6)確定系統(tǒng)的機(jī)械結(jié)構(gòu)最終研制的系統(tǒng)是要放在控制臺(tái)中的,在硬件設(shè)計(jì)時(shí),也要考慮將來系統(tǒng)的機(jī)械結(jié)構(gòu)。例如,顯示器、控制按鈕、鍵盤、手動(dòng)操作桿、鼠標(biāo)等通常放在控制臺(tái)上面;主機(jī)、放大器、驅(qū)動(dòng)器放在控制臺(tái)中間;而電源、繼電器、電機(jī)等大功率設(shè)備放在控制臺(tái)底下或放在另外的機(jī)箱中。
5.確定軟件框架及流程——軟件系統(tǒng)設(shè)計(jì)在硬件結(jié)構(gòu)確定的基礎(chǔ)上,考慮與之相配合的軟件框架,確定軟件的組成模塊。例如,對于微機(jī)控制系統(tǒng),主要應(yīng)包括系統(tǒng)初始化模塊、人機(jī)界面模塊、參數(shù)采集模塊、控制算法模塊、控制信號(hào)輸出模塊、顯示打印模塊、出錯(cuò)及狀態(tài)越限報(bào)警模塊、自檢診斷模塊等等。根據(jù)用戶的要求,將這些模塊有機(jī)地聯(lián)系在一起,形成粗略的系統(tǒng)軟件流程圖。同時(shí),對軟件的大致方案寫出文字和流程圖組成的文檔。在硬件及軟件方案確定之后,應(yīng)對方案進(jìn)行認(rèn)真討論,必要時(shí)邀請有關(guān)方面的專家對方案進(jìn)行認(rèn)真論證和審定,以確保方案的正確性。只有方案本身合理、正確,后面的工作才有意義。
6.硬件和軟件的具體設(shè)計(jì)——系統(tǒng)實(shí)現(xiàn)
1)硬件的具體設(shè)計(jì)
(1)硬件規(guī)劃:在硬件系統(tǒng)上合理地劃分模塊,即將硬件系統(tǒng)劃分成若干相對獨(dú)立的部件。例如,將復(fù)位信號(hào)產(chǎn)生、時(shí)鐘、CPU及總線形成作為一個(gè)模塊,將內(nèi)存(ROM,RAM)作為一個(gè)模塊,將接口分為幾個(gè)模塊,這些模塊均可以采用電路板的形式實(shí)現(xiàn)。其他的如電源、各外設(shè)分別劃分給專人負(fù)責(zé)完成設(shè)計(jì)或購置。(2)各模塊(電路板)的邏輯設(shè)計(jì):選擇具體的元器件、譯碼器等集成電路芯片,畫出在方案中確定的總線之下的各電路原理圖。在進(jìn)行邏輯設(shè)計(jì)時(shí),特別注意信號(hào)的有效性要求。例如,有的器件要求高電平(或低電平)有效,而有的要求上升沿有效或下降沿有效。其他如器件的工作電壓,使用環(huán)境,驅(qū)動(dòng)能力等各方面,在設(shè)計(jì)選擇器件時(shí)也要仔細(xì)考慮。在進(jìn)行電路的邏輯設(shè)計(jì)時(shí),還必須仔細(xì)考慮將來電路板工作的可靠性,增加如濾波、限額控制等各種措施。同時(shí),在進(jìn)行具體設(shè)計(jì)時(shí),就要考慮將來如何進(jìn)行調(diào)試。(3)電路板設(shè)計(jì):現(xiàn)在有許多功能很強(qiáng)的CAD、PROTEL、EDA、PCAD等工具軟件,為我們進(jìn)行電路板設(shè)計(jì)創(chuàng)造了條件。在這些工具軟件的支持下,可以很快地按電路板的尺寸大小設(shè)計(jì)出電路板的加工圖。
(4)加工電路板:目前國內(nèi)可加工雙面及多層電路板。在研制開發(fā)階段,如果允許采用雙面電路板,只要將加工圖交給有關(guān)廠家就行了。甚至將邏輯圖交給廠家,廠家就可以加工出合格的電路板。(5)安裝、調(diào)試:在加工好的電路板上安裝元器件,并進(jìn)行調(diào)試。調(diào)試單塊電路板使其正常工作。
(6)硬件各部件(各模塊)進(jìn)行聯(lián)調(diào):將構(gòu)成微機(jī)應(yīng)用系統(tǒng)的各模塊,逐塊連在一起進(jìn)行調(diào)試,直到將所有部件全部連接在一起,并確信它們已基本正常工作。有關(guān)調(diào)試的問題,留待下一節(jié)說明。2)軟件的具體設(shè)計(jì)
(1)劃分模塊:對于一個(gè)稍具規(guī)模的系統(tǒng)來說,常將軟件劃分成若干個(gè)相對獨(dú)立的模塊,分給多個(gè)軟件開發(fā)人員同時(shí)研制,其目的就在于縮短研制時(shí)間。
(2)確定各模塊的詳細(xì)要求:最基本的問題是系統(tǒng)的輸入/輸出問題,按照微機(jī)的被控對象確定哪些設(shè)備和器件應(yīng)該在系統(tǒng)中以什么方式與主機(jī)進(jìn)行信息傳遞。另外,最大的數(shù)據(jù)速率、平均速率、誤差校驗(yàn)過程、輸入/輸出狀態(tài)指示、字長、格式要求、時(shí)鐘及選通脈沖等都是需要具體考慮的問題。另一個(gè)重要問題是處理要求(或控制要求),我們必須確定對輸入的數(shù)據(jù)進(jìn)行怎樣的處理及處理的順序。對過程控制來說,往往工作順序要求相當(dāng)苛刻,什么時(shí)候發(fā)送數(shù)據(jù),什么時(shí)候接收數(shù)據(jù),對于一般硬件設(shè)備,都需要一定的時(shí)序關(guān)系,為保證微機(jī)與外部設(shè)備同步,通常要用鎖存電路和定時(shí)選通電路來協(xié)調(diào),程序長短及數(shù)據(jù)量多少都將決定內(nèi)存容量和緩沖區(qū)的大小,這一切都與處理要求密切相關(guān)。剩下的一個(gè)問題是如何進(jìn)行出錯(cuò)處理。為此,我們需要事先確定出錯(cuò)誤處理方案,詳細(xì)地列出各種錯(cuò)誤圖像以及顯示錯(cuò)誤的方法。出錯(cuò)處理最常用的辦法是使系統(tǒng)重啟動(dòng)。概括而言,在程序開發(fā)之前要確定的問題是:輸入/輸出、時(shí)間限制、處理要求、精確度、內(nèi)存容量、出錯(cuò)處理和各程序之間的關(guān)系等。(3)確定程序設(shè)計(jì)方法:一旦與系統(tǒng)有關(guān)的問題已經(jīng)確定,用戶程序開發(fā)的下一步就是程序設(shè)計(jì)。在程序設(shè)計(jì)過程中,采用合理的程序設(shè)計(jì)結(jié)構(gòu)是一個(gè)技術(shù)關(guān)鍵。一般程序設(shè)計(jì)采用下面幾種技術(shù):①模塊化設(shè)計(jì):這種方法是把一個(gè)大程序分成若干個(gè)小的程序模塊,對它們進(jìn)行獨(dú)立設(shè)計(jì)和編程,然后分別進(jìn)行調(diào)試,最后把它們連接為一個(gè)大程序。模塊是按功能加以劃分的,這種劃分的程序模塊能夠形成在以后工作中所要用到的程序庫。模塊化編程有許多明顯優(yōu)點(diǎn),它縮短了查錯(cuò)和測試的程序長度,并且為其他程序提供了可以重復(fù)使用的基本程序。其缺點(diǎn)是:各模塊連接時(shí),參數(shù)傳遞費(fèi)時(shí)并占用內(nèi)存,另外,需要進(jìn)行模塊級(jí)和主程序級(jí)的兩級(jí)調(diào)試。②自上至下的程序設(shè)計(jì):這種方法是在程序設(shè)計(jì)時(shí),先從系統(tǒng)一級(jí)的程序(主程序)開始設(shè)計(jì),從屬的程序或子程序用一些程序代號(hào)來表示。當(dāng)主程序編好之后,再將各代號(hào)展開成從屬的程序或子程序,最后完成整個(gè)系統(tǒng)程序的設(shè)計(jì)。這種設(shè)計(jì)的優(yōu)點(diǎn)是設(shè)計(jì)、測試和連接同時(shí)按一條線索進(jìn)行,所出問題可以較早地發(fā)現(xiàn)并解決。其測試能夠完全按真實(shí)的系統(tǒng)環(huán)境進(jìn)行,無須測試程序。它是將程序設(shè)計(jì)、手工編程和測試等幾個(gè)步驟結(jié)合到一起的研制軟件的方法。其缺點(diǎn)是這種設(shè)計(jì)方法不能充分發(fā)揮硬件在軟件設(shè)計(jì)中的作用,其樹形結(jié)構(gòu)會(huì)使上一級(jí)錯(cuò)誤對整個(gè)程序產(chǎn)生災(zāi)難性的影響。③結(jié)構(gòu)程序設(shè)計(jì):以標(biāo)準(zhǔn)的結(jié)構(gòu)進(jìn)行編程,就是結(jié)構(gòu)程序設(shè)計(jì)。有三種邏輯簡單的結(jié)構(gòu)便于掌握,而且可以編出滿足任何要求的程序。這三種結(jié)構(gòu)是:線性結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。總之,在確定程序設(shè)計(jì)方法和采用合適的程序語言的基礎(chǔ)上,可使程序的開發(fā)事半功倍。目前,在工業(yè)控制微機(jī)應(yīng)用系統(tǒng)中,常采用高級(jí)語言與匯編語言混合編程的方法,這樣可以充分發(fā)揮兩種語言的優(yōu)點(diǎn),使編程方便且效率高。在很小的(單片機(jī))系統(tǒng)中,也有只用匯編語言編程的,這種軟件一般比較簡單。(4)編寫代碼:在確定了具體的程序設(shè)計(jì)方法之后,就可以編制用戶程序了。編制用戶程序可以用高級(jí)語言、匯編語言或兩者混合使用。對于一個(gè)工業(yè)控制系統(tǒng),由于資源有限,速度要求又較高,故實(shí)際用戶程序的子功能多采用匯編程序完成,而主程序又多以C語言來設(shè)計(jì)。這樣既利用了匯編語言速度快的特點(diǎn)以滿足系統(tǒng)的速度要求,又利用了C語言功能強(qiáng)、實(shí)現(xiàn)容易的特點(diǎn)以提高程序質(zhì)量。例如,用C語言可以很方便地編制出良好的用戶界面,使操作者可以很快地掌握系統(tǒng)的使用方法。同時(shí),在編程中,尤其是用匯編語言編程,由于是在指令級(jí)上進(jìn)行的,因此,要特別注意細(xì)節(jié),每一步都要小心謹(jǐn)慎,盡可能少出現(xiàn)錯(cuò)誤。例如,用符號(hào)來表示地址、常數(shù)、標(biāo)志等會(huì)帶來方便,但盡可能不采用容易混淆的符號(hào);應(yīng)盡量使程序短小易懂;關(guān)鍵問題要加以注釋。(5)查錯(cuò):即使是一個(gè)很熟練的程序員,在編寫程序時(shí),尤其是編寫較大的程序時(shí),都很難不出現(xiàn)錯(cuò)誤。查錯(cuò)是解決這一問題的有效手段,同時(shí)它也是程序設(shè)計(jì)過程中所必須經(jīng)過的一個(gè)步驟。對于一個(gè)微機(jī)應(yīng)用系統(tǒng)來說,查錯(cuò)通常比較困難,這是因?yàn)槲⑻幚砥鞯膬?nèi)部寄存器都在CPU內(nèi),程序執(zhí)行時(shí)不能直接發(fā)現(xiàn)寄存器的內(nèi)容,軟件和硬件關(guān)系密切,程序執(zhí)行過程有嚴(yán)格的定時(shí)關(guān)系,而且在實(shí)時(shí)應(yīng)用中不能得到足夠的數(shù)據(jù)等,這一切都增加了微機(jī)系統(tǒng)查錯(cuò)的困難。下面我們介紹幾個(gè)常用的查錯(cuò)手段。①匯編(或編譯)程序。利用匯編(MASM)程序,可以給出匯編語言源程序中的語法錯(cuò)誤及其他明顯的錯(cuò)誤。同樣,利用高級(jí)語言的編譯程序也會(huì)給出一些語法方面的錯(cuò)誤。但是,它們并不能找出程序中的邏輯錯(cuò)誤。②邏輯分析儀和在線仿真器。這兩種測試儀器可以幫助我們查找軟件及硬件的錯(cuò)誤(故障)。③列表校正和手工校正。手工校正在程序設(shè)計(jì)中通常作為必要的補(bǔ)充查錯(cuò)手段。對整個(gè)程序,尤其是較長的程序進(jìn)行手工校正要花費(fèi)大量的時(shí)間和精力,但對于程序的某些部分,這樣做又是必不可少的。④第三方檢查。有時(shí)請第三者仔細(xì)閱讀出錯(cuò)的程序,對照校正表認(rèn)真分析,可以較容易地發(fā)現(xiàn)錯(cuò)誤。(6)測試:測試和查錯(cuò)是緊密相連的。測試的本質(zhì)就是在一組特定的測試條件下,進(jìn)行查錯(cuò)的后續(xù)步驟。測試方法和測試條件的選擇關(guān)系到測試成功與否,在許多微處理機(jī)工業(yè)控制系統(tǒng)中,程序的實(shí)時(shí)輸入很難控制和模擬,而且各部分聯(lián)系都很緊密,因而選擇合適的測試條件是件非常復(fù)雜的工作。有關(guān)測試手段和測試數(shù)據(jù)的選擇在軟件工程中學(xué)習(xí),此處不再說明。在此特別說明,在軟件開發(fā)中,無論是匯編語言還是高級(jí)語言,都可以用DEBUG(動(dòng)態(tài)調(diào)試工具)進(jìn)行查錯(cuò)和進(jìn)行一般的測試。有了這個(gè)工具,將給軟件及硬件開發(fā)帶來一定的方便。
7.軟、硬件聯(lián)調(diào)——系統(tǒng)調(diào)試在硬件系統(tǒng)和軟件系統(tǒng)分別進(jìn)行設(shè)計(jì)并調(diào)試的基礎(chǔ)上,將硬件和軟件放到同一系統(tǒng)中進(jìn)行聯(lián)調(diào),又稱集成測試。在聯(lián)調(diào)中往往是逐步進(jìn)行的,逐個(gè)硬件模塊和軟件模塊進(jìn)入系統(tǒng),使它們進(jìn)入正常工作。如果某一模塊有問題,則可集中注意力加以解決,直至整個(gè)系統(tǒng)通過測試。
8.實(shí)驗(yàn)室模擬運(yùn)行——離線仿真將整個(gè)聯(lián)調(diào)好的系統(tǒng)在實(shí)驗(yàn)室中模擬現(xiàn)場的運(yùn)行,此步驟稱為離線仿真。這時(shí),可由人工輸入模擬信號(hào)(電壓),用儀表(例如萬用表、示波器等)對輸出進(jìn)行指示,使系統(tǒng)連續(xù)運(yùn)行。在實(shí)驗(yàn)室模擬運(yùn)行過程中,設(shè)計(jì)人員必須仔細(xì)觀察運(yùn)行過程中的各種狀態(tài),對任何不正常情況必須仔細(xì)分析其原因。必要時(shí),可人為地制造一些干擾,以便觀察系統(tǒng)的可靠性,亦可將電源拉偏,觀察系統(tǒng)的適應(yīng)能力等等。
9.現(xiàn)場調(diào)試、試運(yùn)行將所研制的系統(tǒng)放到用戶現(xiàn)場,接上用戶的常規(guī)及專用外設(shè),對專用外設(shè)進(jìn)行逐一調(diào)試,使它們進(jìn)入正常狀態(tài)。然后,執(zhí)行用戶程序,由用戶使用,完成用戶提出的功能,使系統(tǒng)進(jìn)入試運(yùn)行狀態(tài)。在試運(yùn)行過程中,開發(fā)者與使用者需要密切配合,仔細(xì)觀察并記錄系統(tǒng)運(yùn)行的狀態(tài)。如發(fā)現(xiàn)問題,要認(rèn)真分析,務(wù)求盡快解決。在試運(yùn)行過程中,系統(tǒng)的設(shè)計(jì)開發(fā)人員要認(rèn)真編寫大量的文件、資料。例如,研制項(xiàng)目的背景、研制報(bào)告、技術(shù)報(bào)告、使用維護(hù)手冊、軟件資料、硬件圖紙、標(biāo)準(zhǔn)化規(guī)范、用戶使用報(bào)告等等。
10.驗(yàn)收或鑒定——系統(tǒng)性能評估在用戶使用半年或更長時(shí)間之后,若用戶和設(shè)計(jì)者均對系統(tǒng)的性能感到滿意,即可組織驗(yàn)收或鑒定,使設(shè)計(jì)工作完結(jié)。否則,依據(jù)需要修改設(shè)計(jì),重新開發(fā)。微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)和開發(fā)步驟的簡要流程如圖12.3所示。圖13.3微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)步驟示意圖12.2.4系統(tǒng)集成在前面敘述微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)時(shí),無論是硬件系統(tǒng)還是軟件系統(tǒng),主要是以自己的設(shè)計(jì)來實(shí)現(xiàn)系統(tǒng)的硬、軟件。這在那些具有特殊要求的場合,在必須這樣做的情況下,只能參考上面所提到的步驟完成用戶所要求的微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)。目前,硬件系統(tǒng)集成、軟件系統(tǒng)集成以及網(wǎng)絡(luò)集成已成為工程技術(shù)的流行方法。對應(yīng)用于工業(yè)現(xiàn)場實(shí)現(xiàn)對生產(chǎn)過程監(jiān)控的微機(jī)應(yīng)用系統(tǒng),其硬件系統(tǒng)多采用系統(tǒng)集成的方法來實(shí)現(xiàn)。對大型的網(wǎng)絡(luò)(如城域網(wǎng)),常采用網(wǎng)絡(luò)集成,包括網(wǎng)絡(luò)的硬件、軟件均采用集成方式。在這里我們僅就工業(yè)企業(yè)的小型監(jiān)控系統(tǒng)來說明系統(tǒng)集成的方法。
1.硬件系統(tǒng)集成技術(shù)的發(fā)展已經(jīng)提醒我們,在進(jìn)行微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)時(shí),不必什么都從元器件級(jí)上進(jìn)行設(shè)計(jì)。這是因?yàn)?,前人及許多廠家為應(yīng)用系統(tǒng)設(shè)計(jì)者提供了大量的、經(jīng)過使用證明是穩(wěn)定可靠的半成品。設(shè)計(jì)人員完全可以合理地利用這些半成品,以更快的速度、更低的代價(jià)構(gòu)成微機(jī)應(yīng)用系統(tǒng)。如果說元件級(jí)上的設(shè)計(jì)是要求廚師從種菜、養(yǎng)豬做起的話,則系統(tǒng)集成是要求廚師將已配好的原料加工成為一盤佳肴。
微機(jī)應(yīng)用系統(tǒng)硬件集成就是利用已有的部件(半成品),根據(jù)系統(tǒng)設(shè)計(jì)要求,構(gòu)成微機(jī)應(yīng)用系統(tǒng)硬件。當(dāng)然,這種集成決不是簡單的組合,它必須根據(jù)設(shè)計(jì)要求,滿足所規(guī)定的性能指標(biāo)。集成工作是經(jīng)過系統(tǒng)需求分析且在整個(gè)系統(tǒng)的硬、軟件方案均已確定后進(jìn)行的。因此,系統(tǒng)集成的目標(biāo)就是以既定的方案為基礎(chǔ)進(jìn)行系統(tǒng)合成的。例如,現(xiàn)在有眾多的工業(yè)控制機(jī)廠家,它們?yōu)閺V大系統(tǒng)設(shè)計(jì)者提供了大量的可供選擇的電路板、部件等產(chǎn)品,也提供大小不一的機(jī)箱、機(jī)柜供選用。系統(tǒng)設(shè)計(jì)者可以比較方便地構(gòu)成硬件系統(tǒng)。
這里需強(qiáng)調(diào)指出,在硬件集成時(shí),系統(tǒng)設(shè)計(jì)者必須根據(jù)廠家提供的說明書,徹底弄清它們的工作原理,使各部件集成在一起能夠很快調(diào)試好,使其進(jìn)入正常狀態(tài)。而且,一旦某部件出現(xiàn)故障要能很快判斷故障的部位并加以排除。若集成的系統(tǒng)能正常工作,則后面的工作將如前所述。2.軟件集成軟件集成就是直接將現(xiàn)成的軟件產(chǎn)品通過有機(jī)的集合與組織實(shí)現(xiàn)應(yīng)用的目的。單臺(tái)微機(jī)應(yīng)用系統(tǒng)的時(shí)代已成為過去,而由多臺(tái)微機(jī)聯(lián)網(wǎng)組成的網(wǎng)絡(luò)分布式應(yīng)用系統(tǒng)成為需要。例如數(shù)據(jù)庫、應(yīng)用軟件包、多媒體等多種信息的綜合應(yīng)用軟件已成為商品,大型應(yīng)用系統(tǒng)開發(fā)都需要集成許多軟件(包括工具軟件)。包含在工業(yè)系統(tǒng)中的設(shè)備種類繁多,每種設(shè)備各自安裝不同的應(yīng)用軟件,有機(jī)的集成就成為軟件開發(fā)的主要工作。大型應(yīng)用系統(tǒng)則是在單臺(tái)微機(jī)應(yīng)用系統(tǒng)基礎(chǔ)上,通過通信方式實(shí)現(xiàn)整個(gè)系統(tǒng)內(nèi)不同子系統(tǒng)的無縫鏈接并配合工作,從而形成一個(gè)更大的邏輯整體來達(dá)到實(shí)現(xiàn)對整個(gè)生產(chǎn)過程全面監(jiān)控的目的。13.3微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例13.3.1微機(jī)信號(hào)發(fā)生器
【例13-1】利用微機(jī)制作信號(hào)發(fā)生器。通過在微型計(jì)算機(jī)中擴(kuò)展A/D、D/A通道和信號(hào)變換設(shè)備,形成多種信號(hào)發(fā)生器的硬件環(huán)境。通過軟件編程使用DAC0832產(chǎn)生不同波形,然后利用ADC0809采集這個(gè)波形并以圖形方式在顯示器上顯示。本例以產(chǎn)生鋸齒波為例,說明系統(tǒng)分析設(shè)計(jì)的全過程。當(dāng)然,若在軟件設(shè)計(jì)上稍做修改,也可以產(chǎn)生方波、三角波信號(hào)等。
1.硬件設(shè)計(jì)分析設(shè)計(jì)提示:D/A轉(zhuǎn)換送出的模擬量信號(hào),再用A/D將其取回并轉(zhuǎn)換成數(shù)字量數(shù)據(jù)。對于D/A和A/D轉(zhuǎn)換器的工作原理,可參考D/A和A/D章節(jié)部分,這里不做說明。以圖形方式顯示各種波形,必須熟悉和掌握微型計(jì)算機(jī)顯示器的圖形編程方法,具體可用BIOS的INT10H調(diào)用來實(shí)現(xiàn)。根據(jù)上述分析,依據(jù)前面介紹的設(shè)計(jì)原則和設(shè)計(jì)步驟,分析設(shè)計(jì)系統(tǒng)的硬件連接。參考電路如圖13.4所示。其中:(1)D/A電路采用雙緩沖工作方式,用CS片選信號(hào)確定輸入寄存器和DAC寄存器的端口地址,進(jìn)行兩次寫操作便可以完成數(shù)據(jù)傳送和轉(zhuǎn)換。第一次CS有效,完成將數(shù)據(jù)線上的數(shù)據(jù)鎖存到輸入寄存器;第二次有效,完成將輸入寄存器中的數(shù)據(jù)鎖存到DAC寄存器實(shí)現(xiàn)D/A轉(zhuǎn)換。D/A電路用通用雙運(yùn)放LM358實(shí)現(xiàn)電流到電壓的轉(zhuǎn)換。D/A輸出為雙極性,電壓輸出范圍是-5~+5V,電壓輸出與數(shù)字量的應(yīng)關(guān)系如表13-1所示。表13-1電壓輸出與數(shù)字量的對應(yīng)關(guān)系(2)A/D電路將START端和ALE端相連,從而可同時(shí)鎖存通道地址并開始A/D采樣轉(zhuǎn)換。其輸入控制信號(hào)為CS和IOW,故啟動(dòng)A/D轉(zhuǎn)換只要能發(fā)出CS和IOW信號(hào)即可。如:
MOVDX,2A0H;ADC0809的端口地址
OUTDX,AL;啟動(dòng)A/D
采用中斷法讀取A/D轉(zhuǎn)換結(jié)果,即用A/D轉(zhuǎn)換結(jié)束信號(hào)EOC作為中斷請求信號(hào),提出中斷申請,在中斷服務(wù)程序中,使用下面的指令讀取A/D轉(zhuǎn)換的結(jié)果: MOVDX,2A0H INAL,DX
可使用微型計(jì)算機(jī)的中斷IRQ3(串行口2不用),A/D芯片的EOC信號(hào)接總線的IRQ3。
ADC0809采集通道用IN0,電壓輸出范圍是0~+5V,端口地址為2A0H。(3)8254用通道0對CPU主頻進(jìn)行分頻(8086CPU主頻為4MHz,分頻后產(chǎn)生ADC0809所需的500kHz時(shí)鐘)。
8254通道0的地址為2B0H,8254控制寄存器的地址為2B3H。
(4)地址譯碼器完成各個(gè)接口芯片的地址選擇,可采用74LS128譯碼器,也可用邏輯門電路來實(shí)現(xiàn)線選譯碼。在選擇各個(gè)端口地址時(shí)一定不能與IBM-PC系統(tǒng)中的I/O端口地址沖突。本例選擇的地址范圍為290H~2B7H。其中的290H~29lH分配給DAC0832,2A0H~2A7H分配給ADC0809,2B0H~2B3H分配給8254。圖13.4微機(jī)信號(hào)發(fā)生器的硬件參考電路
2.軟件設(shè)計(jì)(以鋸齒波信號(hào)為例)D/A數(shù)據(jù)端送出的鋸齒波數(shù)據(jù)由80H(0V)開始,每次增1,順序遞增到0FFH(+5V),輸出1個(gè)鋸齒波。重復(fù)此過程,可以連續(xù)輸出多個(gè)鋸齒波。顯示器應(yīng)初始化成圖形方式,再顯示鋸齒波圖形。
A/D采集來的鋸齒波圖形放置到一個(gè)數(shù)據(jù)緩沖區(qū)中,同時(shí)畫出該鋸齒波的圖形點(diǎn)。數(shù)據(jù)緩沖區(qū)滿時(shí),將第一個(gè)鋸齒波數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)去掉,同時(shí)將對應(yīng)的圖形點(diǎn)抹掉。將數(shù)據(jù)緩沖區(qū)中其余鋸齒波數(shù)據(jù)順序前移一個(gè)位置,并將其余鋸齒波圖形點(diǎn)的顯示也順序前移一個(gè)位置,這樣可得到一個(gè)向前移動(dòng)的鋸齒波圖形顯示,使得演示的波形更加直觀。圖13.5鋸齒波主程序流程圖圖13.6中斷服務(wù)程序流程圖3.鋸齒波參考程序;系統(tǒng)主程序DATA SEGMENTX0 EQU 155Y0 EQU 155 ;坐標(biāo)系原點(diǎn)坐標(biāo)(X0,Y0)MESS DB ‘pressanykeytoreturntodos.’,0DH,0AH;提示信息TMCTL EQU 2B3H ;8254控制口地址TMRO EQU 2B0H ;8254通道0地址INPR EQU 290H ;DAC0832輸入寄存器地址DACR EQU 29lH ;DAC0832DAC寄存器地址DAIN DB ? ;DAC0832的D/A數(shù)據(jù)INT3S DW ? ;IRQ3的中斷向量段地址保存單元INT3O DW ? ;IRQ3的中斷向量偏移地址保存單元IMR DB ? ;中斷屏蔽字保存單元ADDR EQU 2A0H ;ADC0809的片選地址ADDA DB ? ;ADC0809的采集數(shù)據(jù)COUNT DW 0 ;ADC0809的采集數(shù)據(jù)個(gè)數(shù)BUFF DB 240DUP(?) ;采集數(shù)據(jù)緩沖區(qū)(240個(gè)數(shù)據(jù))DATA ENDSSTACK SEGMENT DB 100DUP(?)STACK ENDSWRICH MACROCHAR,WH,COLOR ;寫字符定調(diào)用(CHAR為字符,WH 為位置,COLOR為顏色)MOV AH,02H ;置光標(biāo)位置功能調(diào)用MOV DX,WH ;光標(biāo)位置為WHMOV BH,00HINT 10H ;顯示功能調(diào)用MOV AH,09H ;寫字符功能調(diào)用MOV AL,CHAR ;顯示字符送ALMOV BL,COLOR ;置字符顏色MOV CX,l ;字符長度為1INT 10HWRICH ENDMCODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXCLI ;關(guān)中斷
MOV DX,TMCTLMOV AL,00110110BOUT DX,AL ;8254初始化
MOV DX,TMROMOV AL,08H ;計(jì)數(shù)低位字節(jié),計(jì)數(shù)初值為8OUT DX,ALMOV AL,00H ;計(jì)數(shù)高位字節(jié)置0OUT DX,ALMOV AL,0BHMOV AH,35HINT 21H ;取IRQ3的中斷向量并保存在INT3OMOV INT3S,ES ;和INT3S單元MOV INT3O,BXPUSH DSMOV DX,OFFSET ADINTMOV BX,SEG ADINTMOV DS,BXMOV AL,0BHMOV AH,25HINT 21H ;設(shè)置新的IRQ3中斷向量 POP DS IN AL,21H MOV IMR,AL ;保存中斷屏蔽字
AND AL,11110111B OUT 21H,AL ;開放IRQ3中斷
MOV SI,OFFSET BUFF CALL INIT ;屏幕圖形初始化
MOV DAIN,80H ;鋸齒波初值80H送DAINBEGIN:MOV AL,DAIN MOV DX,INPR OUT DX,AL ;鋸齒波值送DAC0832輸入寄存器
MOV DX,DACR OUT DX,AL ;鋸齒波值送DAC0832DAC寄存器INC DAINJNZ QQQMOV DAIN,80HQQQ: STI ;開中斷MOV DX,ADDROUT DX,AL ;啟動(dòng)一次A/D轉(zhuǎn)換HLT ;等待中斷CLIINC COUNT ;采集數(shù)據(jù)個(gè)數(shù)+1MOV AL,ADDA ;取A/D采集數(shù)據(jù)MOV BX,COUNTMOV BYTEPTR[SI+BX],AL ;將A/D采集數(shù)據(jù)送數(shù)據(jù)緩沖區(qū)CMP COUNT,240JB DRAW;以下程序?yàn)椴杉瘮?shù)據(jù)緩沖區(qū)滿的處理,在顯示器上抹掉緩沖區(qū)中第一個(gè)數(shù)據(jù)的顯示;將緩沖區(qū)中2~240位置的數(shù)據(jù)順序向前移動(dòng)一個(gè)位置
MOV BX,1 ;從采集數(shù)據(jù)緩沖區(qū)的;第一個(gè)數(shù)據(jù)處開始處理BUFDR:MOV AL,00 ;點(diǎn)的顏色為黑色
CALL DPT ;從顯示器上抹掉第一個(gè)點(diǎn)
MOV AL,BYTEPTR[SI+BX+l]
MOV BYTEPTR[SI+BX],AL ;將采集數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)
MOV AL,0FFH ;順序前移一個(gè)位置,并置點(diǎn)的
CALL DPT ;顏色為白色,調(diào)用畫點(diǎn)子程序
INC BXCMP BX,240JNE BUFDRMOV COUNT,239JMP NEXTDRAW:MOV AL,0FH ;顯示緩沖區(qū)未滿時(shí),
MOV BX,COUNT ;直接顯示采集的數(shù)據(jù)
CALL DPTNEXT:MOV AH,06HMOV DL,0FFH ;判斷是否有鍵按下
INT 21HJZ BEGIN ;沒有按鍵,則繼續(xù)OVER:PUSH DSMOV DX,INTSOMOV BX,INT3SMOV DS,BXMOV AL,0BHMOV AH,25HINT 21H ;恢復(fù)原IRQ3中斷向量POP DSMOV AL,IMROUT 21H,AL ;恢復(fù)原中斷屏蔽字STIMOV AH,4CH INT 21H ;返回DOS;中斷服務(wù)子程序ADINT PROC NEAR ;A/D中斷服務(wù)程序PUSH AXPUSH DXPUSH DSMOV AX,DATAMOV DS,AX ;送數(shù)據(jù)段地址;確保中斷服務(wù)程序MOV DX,ADDR ;對數(shù)據(jù)段中的變量正確尋址IN AL,DX ;讀入A/D數(shù)據(jù)并送ADDA單元MOV ADDA,ALMOV AL,20HOUT 20H,AL ;送EOI命令POP DSPOP DXPOP AXIRET ;中斷返回ADINT ENDPDPT PROC NEAR ;畫點(diǎn)子程序PUSH AXPUSH BXPUSH CXPUSH DXMOV CX,X0 ;點(diǎn)的列位置(CX)為BX+X0ADD CX,BXMOV DH,00MOV DL,BYTEPTR[SI+BX] ;取緩沖區(qū)中的數(shù)據(jù)SHR DX,l ;DX/2MOV BX,DX ;DX值送BXMOV DX,Y0-1 ;點(diǎn)的行位置為Y0-1-BXSUB DX,BX ;減1是為了避免將點(diǎn)畫到坐標(biāo)軸上MOV AH,0CH ;畫點(diǎn)INT 10HPOP DXPOP CXPOP BXPOP AXRETDPT ENDPINIT PROC NEAR ;初始化屏幕子程序MOV AH,00 ;設(shè)置顯示器工作方式為EGA/VGAMOV AL,0EH ;顯示模式為640×200×16INT 10HWRICH ‘∧’,0112H,0FH ;顯示坐標(biāo)系的兩個(gè)箭頭WRICH ‘>’,124CH,0FHMOV AH,0CH ;寫像素功能調(diào)用MOV AL,0FH ;顏色為白色MOV CX,X0MOV DX,Y0DRAX:INT 10H ;畫坐標(biāo)系的X軸INC CXCMP CX,614JNZ DRAXMOV DX,Y0MOV CX,X0DRAY:INT 10H ;畫坐標(biāo)系的Y軸DEC DXCMP DX,8JNZ DRAYMOV AH,0CH;以下為顯示坐標(biāo)系上X、Y軸的刻度MOV AL,0FHMOV CX,X0-4 ;給定Y軸刻度初值,畫第一個(gè)MOV DX,25 ;刻度,長度為4點(diǎn)YBJ: INT10HINC CXCMP CX,X0JNZ YBJMOV CX,X0-4 ;在Y軸畫間隔為26ADD DX,26 ;長度為4點(diǎn)的5條刻度線CMP DX,Y0JB YBJMOV CX,X0+80 ;給定X軸刻度初值,畫第一個(gè)MOV DX,Y0+2 ;刻度,長度為2點(diǎn)XBJ: INT 10HDEC DXCMP DX,Y0JNZ XBJMOV DX,Y0+2 ;在X軸上,畫間隔為80ADD CX,80 ;長度為2點(diǎn)的7條刻度線CMP CX,600JB XBJWRICH‘V’,0112H,0FH ;顯示坐標(biāo)系的Y軸標(biāo)識(shí)V,;行列位置為(01H,12H),;白色WRICH‘0’,1412H,0FH ;顯示原點(diǎn)標(biāo)識(shí)WAICH‘T’,144CH,0FH ;顯示X軸標(biāo)識(shí)TWAICH‘l’,14Ldh,0FH ;顯示X軸的刻度WRICH‘2’,1427H,0FHWRICH‘3’,1431H,0FHWRICH‘4’,143BH,0FHWRICH‘5’,1445H,0FH;WRICH‘2’,0D12H,0FH ;顯示Y軸的刻度值WRICH‘5’,0312H,0FHPUSH DSPOP ESMOV AX,1200H ;顯示字符串功能調(diào)用LEA BP,MESS ;ES:BP指向提示信息MOV CX,35 ;提示信息長度MOV BL,0FH ;黑底,白字MOV DX,1600H ;從16H行00列開始INT 10H ;顯示功能調(diào)用RETINIT ENDPCODE ENDS END START13.3.2城市交通管理控制系統(tǒng)分析與設(shè)計(jì)
【例13-2】城市交通管理控制系統(tǒng)分析與設(shè)計(jì)。城市交通管理中十字路口交通燈的控制對車輛運(yùn)行效率及安全十分重要。傳統(tǒng)管理利用人工定時(shí)切換方式,控制過程不靈活。采用計(jì)算機(jī)控制具有實(shí)時(shí)、高效、靈活和安全等優(yōu)點(diǎn),可為城市交通管理帶來極大的經(jīng)濟(jì)效益和社會(huì)效益。
1.控制要求及系統(tǒng)分析城市交通管理中,十字路口的交通燈布局情況如圖13.7所示。圖13.7十字路口的交通燈控制
交通管理系統(tǒng)中,要求對十字路口的交通燈進(jìn)行定時(shí)轉(zhuǎn)換控制,這種燈光控制的規(guī)律可歸結(jié)如下:
(1)縱向(A向)與橫向(B向)的交通燈定時(shí)60秒交換紅綠燈一次。
(2)燈光有三種顏色:紅、黃、綠(圖13.7中的R、O、G),每次交換時(shí)要求在黃色燈亮?xí)r停留3秒鐘。
(3)一路在60秒內(nèi)過車完后超過6秒無車?yán)^續(xù)過時(shí),如另一路有車在等待,則自動(dòng)提前交換燈色。交換過程也得先在黃燈處停留3秒。
(4)在緊急車輛(如消防車、救護(hù)車等)通過時(shí),四邊街口均顯紅燈,以便只許緊急車輛通過,其他車輛暫停行駛。緊急車輛過后自動(dòng)恢復(fù)原來的燈色標(biāo)志。
還可以提出更多的要求。不過,上述四點(diǎn)基本要求已足以說明交通燈控制問題對計(jì)算機(jī)提出的要求是什么。這種控制方式具有如下的特點(diǎn):第一,這是一個(gè)開環(huán)控制系統(tǒng),即無反饋的程序控制。第二,開關(guān)量輸入和開關(guān)量輸出。圖13.7中的車輛檢測傳感器(A1、A2及B1、B2),是光電開關(guān)式的,所以送入計(jì)算機(jī)的信息是開關(guān)量。計(jì)算機(jī)控制交通燈的通斷是通過繼電器的,所以也是開關(guān)量輸出。
第三,有提前換燈信號(hào)功能,即一路的車輛能夠申請另一路中斷綠燈而讓其通行。不過這是有條件的,即必須是被請求的一路已有6秒鐘無車通過才會(huì)響應(yīng);硬件電路設(shè)置為IRQ5實(shí)現(xiàn)。第四,有緊急車輛檢測功能。當(dāng)圖13.7中的緊急車輛檢測傳感器(J)檢測到有緊急車輛要通過時(shí),立即發(fā)出緊急中斷訊號(hào)(也是開關(guān)量)。這種中斷請求不必等到被請求的一路已無車通過,而是無條件地停止其他車輛通過。這里中斷設(shè)置為IRQ3,它的優(yōu)先級(jí)高于IRQ5。2.系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)圖13.8交通燈控制系統(tǒng)結(jié)構(gòu)框圖
微型計(jì)算機(jī)是系統(tǒng)的核心,它具有下列最基本的組件:微處理機(jī):包含CPU、ROM/RAM等部件。CPU是執(zhí)行程序、接受輸入信號(hào)并發(fā)出控制信號(hào)的指揮中心;ROM/RAM是只讀存儲(chǔ)器/隨機(jī)存儲(chǔ)器,存放著控制系統(tǒng)的程序和數(shù)據(jù),其中的程序是由用戶編制的,故稱為用戶程序。這個(gè)程序是根據(jù)交通燈控制的需要而由設(shè)計(jì)者(用戶)制定的。
LED:發(fā)光二極管顯示器(模擬燈光標(biāo)志)。在編制程序時(shí),此顯示器可幫助程序員觀察到存儲(chǔ)器中所存的內(nèi)容是否符合所編程序的要求,也可顯示控制過程。
并行接口電路:利用PA端口連接和控制十字路口的紅、黃、綠三色燈,PB端口連接緊急車輛檢測器。
REL:繼電器板。其中有六個(gè)繼電器以提高輸出接口的六條輸出線的功率,以便控制A向及B向的交通燈。
RA、OA、GA為A向兩個(gè)街口的交通燈,紅、黃、綠三色各有兩個(gè)燈。
RB、OB、GB為B向兩個(gè)街口的交通燈,也是三色各有兩個(gè)燈。
GB:門電路板。其中裝有兩個(gè)或門,這實(shí)際上是一個(gè)門電路組件。其各個(gè)與門的輸入輸出邏輯關(guān)系為:A1+A2=A,B1+B2=B。A1及A2為放在A向兩個(gè)街口的檢測器,只要其中一個(gè)為1(有車要通過),則A=1,即通知計(jì)算機(jī)A向有車要求通過。
B1與B2是放在B向兩個(gè)街口的檢測器,其作用和上述檢測器是相同的。
J:四個(gè)緊急車輛檢測器的公共入口,即四個(gè)控制器的輸出端并聯(lián)在一起,接至此處。NMI為CPU的一個(gè)非屏蔽中斷輸入端,低電位(即在J=0時(shí))有效(表示有緊急車輛要通過)。通過NMI端將此信息進(jìn)入CPU,從而使RAM中正在進(jìn)行的程序中斷,而跳轉(zhuǎn)至讓緊急車輛通過的中斷服務(wù)子程序。當(dāng)車輛過后,J恢復(fù)為1,則經(jīng)由PC口的輸入線使程序恢復(fù)到原來的主程序上去。圖13.9城市交通控制系統(tǒng)的硬件參考電路
3.系統(tǒng)工作原理這個(gè)系統(tǒng)的工作過程是:
(1)開始時(shí)設(shè)A向通行(GA,即A向的綠燈亮),B向不通(RB,即B向的紅燈亮)。這樣,通行60秒后自動(dòng)轉(zhuǎn)為B向通行(GB,綠燈亮),A向不通(RA,紅燈亮)。這是兩個(gè)方向都很頻繁通車的情況。(2)如在GA(綠燈)及RB(紅燈)亮?xí)r,A向并未有車輛通行,等待6秒之后,如B向有車輛在等待通過,則通過B1或B2使程序跳轉(zhuǎn),其結(jié)果是使燈光自動(dòng)按次序改變:GA及RB滅;OA及OB亮(3秒);RA及GB亮,同時(shí)OA及OB滅。(3)從此時(shí)起B(yǎng)向車輛可以通行,60秒后又自動(dòng)轉(zhuǎn)為A向車輛通行的程序。如無論哪個(gè)方向正在通行時(shí),突然來了緊急車輛,不論其方向是否與正在通行的方向相同,則通過S(S=0)使程序跳轉(zhuǎn)至讓緊急車輛通行的子程序而使RA及RB都亮,此時(shí)沒有黃燈過渡時(shí)期,以便禁止一般車輛繼續(xù)通行。此時(shí)子程序所達(dá)到的燈光控制效果為:如本來GA是亮的,則GA由亮轉(zhuǎn)滅,然后RA亮。而原來就是紅燈亮(RB)的B向,其紅燈RB仍不變。在A向和B向的紅燈全亮?xí)r,緊急車輛可以不受交通燈的管制而隨意通行。
根據(jù)上述控制過程的燈色配置,可以將燈色狀態(tài)歸納成四個(gè)模式(PAD),表13-2作出了這四種模式各自的燈色配置。
4.系統(tǒng)軟件設(shè)計(jì)根據(jù)上面討論的交通規(guī)則要求,可以設(shè)計(jì)出如圖13.10所示的程序流程圖。圖13.10交通燈控制系統(tǒng)軟件流程圖
程序設(shè)計(jì)思路如下:程序開始后,即對A向(縱向)進(jìn)行測試,如A=1為真,即A向有車要求通過,則程序轉(zhuǎn)至CHK1端而直接輸出燈色模式ZA,否則輸出燈色模式ZB(CHK2端)。如A向及B向均無車時(shí),則對CHK0及CHK2進(jìn)行循環(huán)測試,同時(shí)維持原來的某一輸出狀態(tài)不變。在循環(huán)測試過程中,測試某一方向有車,如A向有車,A=1是真,其控制流程為圖中的左半部,則控制過程如下:先檢查該A向原來是否已處于放行狀態(tài)(PAD=ZA)?如PAD≠ZA,則在A向轉(zhuǎn)為綠燈之前,必須經(jīng)黃燈的過渡。所以要用ZC子程序和3秒子程序,然后調(diào)用ZA子程序。如果PAD=ZA,則說明該A向已處于放行狀態(tài),不需經(jīng)過ZC子程序,而直接由CHK1處進(jìn)入輸出ZA的方框(即PAD=ZA),并等到60秒子程序進(jìn)行完畢后再去進(jìn)行循環(huán)檢查。當(dāng)檢出B=1為真,即B向有車時(shí),其控制流程為圖13.10中的右半部,其過程和左半部完全一樣。
在圖13.10中的60秒子程序方框旁的箭頭附注A=0(或B=0)的意義是,在A向無車時(shí),就轉(zhuǎn)入進(jìn)行循環(huán)測試。為此,必須每隔若干秒(一般為零點(diǎn)幾秒)測試一次A或B是否為0。如A向(或B向)始終有車,則PAD=ZA(或PAD=ZB),要延續(xù)至滿60秒再轉(zhuǎn)入循環(huán)測試程序。當(dāng)有緊急車輛通過時(shí),NMI線有效,則計(jì)算機(jī)進(jìn)入緊急車輛程序,此程序一開始就將圖13.10復(fù)位至初始狀態(tài),等緊急車輛過完后,才又從“開始”方框進(jìn)入控制流程。13.4虛擬儀器技術(shù)
隨著微電子技術(shù)、計(jì)算機(jī)軟硬件技術(shù)和通信技術(shù)的發(fā)展及其在測量儀器中的應(yīng)用,推動(dòng)了測試新理論、新方法及其新的儀器結(jié)構(gòu)的發(fā)展。虛擬儀器就是基于計(jì)算機(jī)的、具有傳統(tǒng)儀器功能的軟件與硬件的組合體。虛擬儀器具有軟件的表現(xiàn)形式,又有實(shí)際儀器的功能和形式,因此用戶可根據(jù)需求的變化,通過增減相應(yīng)的軟件、硬件或修改軟件的方法,重新定義或配置出新功能的測量儀器。
1.虛擬儀器的基本結(jié)構(gòu)通常傳統(tǒng)測量儀器是一個(gè)能實(shí)現(xiàn)特定功能的獨(dú)立硬件盒子,其功能在制造時(shí)就確定了(如示波器、信號(hào)發(fā)生器等),而基于相關(guān)技術(shù)的虛擬儀器,其物理硬件不必限
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年天燃?xì)鈨艋僮鞴つM考試題庫試卷
- 三明市第一醫(yī)院招聘工作人員的筆試真題2024
- 湖南長沙寧鄉(xiāng)市金海中學(xué)教師招聘筆試真題2024
- 學(xué)校健康飲食推廣計(jì)劃
- 智能制造設(shè)備成品保護(hù)措施實(shí)施
- 心理輔導(dǎo)公開課心得體會(huì)
- 一年級(jí)上期班主任課程改革計(jì)劃
- 教育領(lǐng)域教師培訓(xùn)及保障措施
- 小學(xué)二年級(jí)語文閱讀理解計(jì)劃
- 康復(fù)治療中心職責(zé)
- 2024年4月貴州省高三年級(jí)適應(yīng)性考試地理試卷
- (高清版)DZT 0073-2016 電阻率剖面法技術(shù)規(guī)程
- 2024年福建省2024屆高三3月省質(zhì)檢(高中畢業(yè)班適應(yīng)性練習(xí)卷)英語試卷(含答案)
- 新申請艾滋病篩查實(shí)驗(yàn)室驗(yàn)收指南
- 倉儲(chǔ)設(shè)備操作安全操作培訓(xùn)
- 上海電機(jī)學(xué)院計(jì)算機(jī)C語言專升本題庫及答案
- 2023年寧波房地產(chǎn)市場年度報(bào)告
- 員工身心健康情況排查表
- 模擬小法庭劇本-校園欺凌
- 危險(xiǎn)化學(xué)品經(jīng)營企業(yè)安全評價(jià)細(xì)則
- 哈利波特與死亡圣器下雙語電影臺(tái)詞
評論
0/150
提交評論