新聞中心

EEPW首頁 > EDA/PCB > 步進(jìn)電機(jī)單片機(jī)控制系統(tǒng)設(shè)計(jì)

步進(jìn)電機(jī)單片機(jī)控制系統(tǒng)設(shè)計(jì)

——
作者: 時(shí)間:2008-01-12 來源:電子產(chǎn)品世界 收藏

摘要:單片機(jī)控制技術(shù)應(yīng)用十分廣泛,其核心技術(shù)是單片機(jī)控制系統(tǒng)的設(shè)計(jì)。介紹了對(duì)單片機(jī)控制系統(tǒng)的構(gòu)成、硬件設(shè)計(jì)、軟件設(shè)計(jì)和系統(tǒng)調(diào)試等各環(huán)節(jié)并進(jìn)行了討論,根據(jù)工作經(jīng)驗(yàn)給出了調(diào)試方法。

關(guān)鍵詞:單片機(jī);系統(tǒng)設(shè)計(jì);系統(tǒng)調(diào)試

  隨著材料科學(xué)、工藝技術(shù)、計(jì)算機(jī)技術(shù)的發(fā)展與進(jìn)步,電路系統(tǒng)向著集成度極高的方向發(fā)展。CPU的生產(chǎn)制造技術(shù),也朝著綜合性、技術(shù)性、實(shí)用性發(fā)展。如CPU的運(yùn)算位數(shù)從4位、8位 ……到32位機(jī)的發(fā)展,運(yùn)算速度從8 MHz、32 MHz……到1.6 GHz??梢哉f是日新月異的發(fā)展著。其中單片機(jī)在控制系統(tǒng)中的應(yīng)用是越來越普遍了。單片機(jī)控制系統(tǒng)是以單片機(jī)(CPU)為核心部件,擴(kuò)展一些外部接口和設(shè)備,組成單片機(jī)工業(yè)控制機(jī),主要用于工業(yè)過程控制。要進(jìn)行單片機(jī)系統(tǒng)設(shè)計(jì)首先必須具有一定的硬件基礎(chǔ)知識(shí);其次,需要具有一定的軟件設(shè)計(jì)能力,能夠根據(jù)系統(tǒng)的要求,靈活地設(shè)計(jì)出所需要的程序;第三,具有綜合運(yùn)用知識(shí)的能力。最后,還必須掌握生產(chǎn)過程的工藝性能及被測(cè)參數(shù)的測(cè)量方法,以及被控對(duì)象的動(dòng)、靜態(tài)特性,有時(shí)甚至要求給出被控對(duì)象的數(shù)學(xué)模型。

  單片機(jī)系統(tǒng)設(shè)計(jì)主要包括以下幾個(gè)方面的內(nèi)容:控制系統(tǒng)總體方案設(shè)計(jì),包括系統(tǒng)的要求、控制方案的選擇,以及工藝參數(shù)的測(cè)量范圍等;選擇各參數(shù)檢測(cè)元件及變送器;建立數(shù)學(xué)模型及確定控制算法;選擇單片機(jī),并決定是自行設(shè)計(jì)還是購買成套設(shè)備;系統(tǒng)硬件設(shè)計(jì)〔1〕,包括接口電路,邏輯電路及操作面板;系統(tǒng)軟件設(shè)計(jì),包括管理、監(jiān)控程序以及應(yīng)用程序的設(shè)計(jì),應(yīng)用系統(tǒng)設(shè)計(jì)包含有硬件設(shè)計(jì)與軟件設(shè)計(jì)兩部分〔2〕;系統(tǒng)的調(diào)試與試驗(yàn)。

1單片機(jī)控制系統(tǒng)總體方案的設(shè)計(jì)

  確定單片機(jī)控制系統(tǒng)總體方案,是進(jìn)行系統(tǒng)設(shè)計(jì)最重要、最關(guān)鍵的一步??傮w方案的好壞,直接影響整個(gè)控制系統(tǒng)的性能及實(shí)施細(xì)則??傮w方案的設(shè)計(jì)主要是根據(jù)被控對(duì)象的任務(wù)及工藝要求而確定的。設(shè)計(jì)方法大致如下:根據(jù)系統(tǒng)的要求,首先確定出系統(tǒng)是采用開環(huán)系統(tǒng)還是閉環(huán)系統(tǒng),或者是數(shù)據(jù)處理系統(tǒng)。選擇檢測(cè)元件,在確定總體方案時(shí),必須首先選擇好被測(cè)參數(shù)的測(cè)量元件,它是影響控制系統(tǒng)精度的重要因素之一。選擇執(zhí)行機(jī)構(gòu),執(zhí)行機(jī)構(gòu)是微型機(jī)控制系統(tǒng)的重要組成部件之一。執(zhí)行機(jī)構(gòu)的選擇一方面要與控制算法匹配,另一方面要根據(jù)被控對(duì)象的實(shí)際情況確定。選擇輸入/輸出通道及外圍設(shè)備。選擇時(shí)應(yīng)考慮以下幾個(gè)問題:被控對(duì)象參數(shù)的數(shù)量;各輸入/輸出通道是串行操作還是并行操作;各通道數(shù)據(jù)的傳遞速率;各通道數(shù)據(jù)的字長及選擇位數(shù);對(duì)顯示、打印有何要求;畫出整個(gè)系統(tǒng)原理圖。
單片機(jī)控制系統(tǒng)中控制算法的選用一般有:

(1) 直接數(shù)字控制

  當(dāng)被控對(duì)象的數(shù)學(xué)模型能夠確定時(shí),可采用直接數(shù)字控制。所謂數(shù)學(xué)模型就是系統(tǒng)動(dòng)態(tài)特性的數(shù)學(xué)表達(dá)式,它表示系統(tǒng)輸入輸出及其內(nèi)部狀態(tài)之間的關(guān)系。一般多用實(shí)驗(yàn)的方法測(cè)出系統(tǒng)的特性曲線,然后再由此曲線確定出其數(shù)學(xué)模型?,F(xiàn)在經(jīng)常采用的方法是計(jì)算機(jī)仿真及計(jì)算機(jī)輔助設(shè)計(jì),由計(jì)算機(jī)確定出系統(tǒng)的數(shù)學(xué)模型,因而加快了系統(tǒng)模型的建立。當(dāng)系統(tǒng)模型建立后,即可選定上述某一種算法,設(shè)計(jì)數(shù)字控制器,并求出差分方程。計(jì)算機(jī)的主要任務(wù)就是按此差分方程計(jì)算并輸出控制量,進(jìn)而實(shí)現(xiàn)控制。

(2) 數(shù)字化PID控制

  由于被控對(duì)象是復(fù)雜的,因此并非所有的系統(tǒng)均可求出數(shù)學(xué)模型,有些即使可以求出來,但由于被控對(duì)象環(huán)境的影響,許多參數(shù)經(jīng)常變化,因此很難進(jìn)行直接數(shù)字控制。此時(shí)最好選用數(shù)字化PID(比例積分微分)控制。在PID控制算法中,以位置型和增量型2種PID為基礎(chǔ),根據(jù)系統(tǒng)的要求,可對(duì)PID控制進(jìn)行必要的改進(jìn)。通過各種組合,可以得到更圓滿的控制系統(tǒng),以滿足各種不同控制系統(tǒng)的要求。例如串級(jí)PID就是人們經(jīng)常采用的控制方法之一。

  所謂串級(jí)控制就是第一級(jí)數(shù)字PID的輸出不直接用來控制執(zhí)行機(jī)構(gòu),而是作為下一級(jí)數(shù)字PID的輸入值,并與第二級(jí)的給定值進(jìn)行比較,其偏差作為第二級(jí)數(shù)字PID的控制量。當(dāng)然,也可以用多級(jí)PID嵌套。


2單片機(jī)系統(tǒng)硬件設(shè)計(jì)

  盡管單片機(jī)集成度高,內(nèi)部含有I/O控制線,ROM,RAM和定時(shí)/計(jì)數(shù)器。但在組成單片機(jī)系統(tǒng)時(shí),擴(kuò)展若干接口仍是設(shè)計(jì)者必不可少的任務(wù)。擴(kuò)展接口有2種方案,一種是購置現(xiàn)成的接口板,另一種是根據(jù)系統(tǒng)實(shí)際需要,選用適合的芯片進(jìn)行設(shè)計(jì)控制系統(tǒng)。就后一種而言,主要包括以下幾個(gè)方面的內(nèi)容。

  基本系統(tǒng)的構(gòu)成:一個(gè)獨(dú)立的單片機(jī)核心系統(tǒng),一般由時(shí)鐘電路、地址鎖存器電路、地址譯碼器、存儲(chǔ)器擴(kuò)展、模擬量輸入通道的擴(kuò)展、模擬量輸出通道的擴(kuò)展、開關(guān)量的I/O接口設(shè)計(jì)、鍵盤輸入和顯示電路等組成。

(1)存儲(chǔ)器擴(kuò)展

  由于單片機(jī)有4種不同的存儲(chǔ)器,且程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是分別編址的,所以單片機(jī)的存儲(chǔ)器容量與同樣位數(shù)的微型機(jī)相比擴(kuò)大了一倍多。擴(kuò)展時(shí),首先要注意單片機(jī)的種類;另一方面要把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開。

{{分頁}}

(2)模擬量輸入通道的擴(kuò)展

  主要有以下2個(gè)問題:一個(gè)是數(shù)據(jù)采集通道的結(jié)構(gòu)形式,一般單片機(jī)控制系統(tǒng)都是多通道系統(tǒng)。因此選用何種結(jié)構(gòu)形式采集數(shù)據(jù),是進(jìn)行模擬量輸入通道設(shè)計(jì)首先要考慮的問題。多數(shù)系統(tǒng)都采用共享A/D和S/H形式。但是當(dāng)被測(cè)參數(shù)為幾個(gè)相關(guān)量時(shí),則需選用多路S/H,共享A/D形式。對(duì)于那些參數(shù)比較多的分布式控制系統(tǒng),可把模擬量先就地進(jìn)行A/D轉(zhuǎn)換,然后再送到主機(jī)中處理。對(duì)于那些被測(cè)參數(shù)相同(或相似)的多路數(shù)據(jù)采集系統(tǒng),為減少投資,可采用模擬量多路轉(zhuǎn)換,共享儀用放大器、S/H和A/D的所謂地電平多路切換形式。另外一個(gè)問題是A/D轉(zhuǎn)發(fā)器的選擇,設(shè)計(jì)時(shí)一定要根據(jù)被控對(duì)象的實(shí)際要求選擇A/D轉(zhuǎn)換器,在滿足系統(tǒng)要求的前提下,盡量選用位數(shù)比較低的A/D轉(zhuǎn)換器。

(3)模擬量輸出通道的擴(kuò)展

  模擬量輸出通道是單片機(jī)控制系統(tǒng)與執(zhí)行機(jī)構(gòu)(或控制設(shè)備)連接的紐帶和橋梁。設(shè)計(jì)時(shí)要根據(jù)被控對(duì)象的通道數(shù)及執(zhí)行機(jī)構(gòu)的類型進(jìn)行選擇。對(duì)于那些可直接接受數(shù)字量的執(zhí)行機(jī)構(gòu),可由單片機(jī)直接輸出數(shù)字量,如步進(jìn)電機(jī)或開關(guān)、繼電器系統(tǒng)等。對(duì)于那些需要接收模擬量的執(zhí)行機(jī)構(gòu),則需要用D/A轉(zhuǎn)化,即把數(shù)字量變成模擬量后,再帶動(dòng)執(zhí)行機(jī)構(gòu)。

(4)開關(guān)量的I/O接口設(shè)計(jì)

  由于開關(guān)量只有2種狀態(tài)“1”或“0”,所以,每個(gè)開關(guān)量只需一位二進(jìn)制數(shù)表示即可。因?yàn)镸CS—51系列單片機(jī)設(shè)有一個(gè)專用的布爾處理機(jī),因而對(duì)于開關(guān)量的處理尤為方便。為了提高系統(tǒng)的抗干擾能力,通常采用光電隔離器把單片機(jī)與外部設(shè)備隔開。

(5)操作面板

  操作面板是人機(jī)對(duì)話的紐帶,它根據(jù)具體情況,可大可小。為了便于現(xiàn)場(chǎng)操作人員操作,單片機(jī)控制系統(tǒng)設(shè)計(jì)一個(gè)操作面板的要求:操作方便、安全可靠、并具有自保功能,即使是誤操作也不會(huì)給生產(chǎn)帶來惡果。

(6)系統(tǒng)速度匹配

  在不影響系統(tǒng)總功率的前提下,時(shí)鐘頻率選得低一些較好,這樣可降低系統(tǒng)對(duì)其他元器件工作速度的要求,從而降低成本和提高系統(tǒng)的可靠性。但系統(tǒng)頻率選的比較高時(shí),要設(shè)法使其他元器件與主機(jī)匹配。

(7)系統(tǒng)負(fù)載匹配 系統(tǒng)中各個(gè)器件之間的負(fù)載匹配問題,主要表現(xiàn)在以下幾個(gè)方面。

① 邏輯電路間的接口及負(fù)載:在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),有時(shí)需要采用TTL和CMOS混合電路,由于二者要求的電平不一樣,因此一定要注意電流及負(fù)載的匹配問題。

② MCS—51系列單片及負(fù)載:8031的外部擴(kuò)展功能是很強(qiáng)的,但是8031的P0口和P2口以及控制信號(hào)ALE的負(fù)載能力都是有限的,P0口能驅(qū)動(dòng)8個(gè)LSTTL電路,P2口能驅(qū)動(dòng)4個(gè)LSTTL電路。硬件設(shè)計(jì)時(shí)應(yīng)仔細(xì)核對(duì)8031的負(fù)載,使其不超過總的負(fù)載能力的70%。


3單片機(jī)控制系統(tǒng)的軟件設(shè)計(jì)

 單片機(jī)控制系統(tǒng)的軟件設(shè)計(jì)一般分2類,系統(tǒng)軟件和應(yīng)用軟件設(shè)計(jì)。系統(tǒng)軟件的主要任務(wù)是:管理整個(gè)控制系統(tǒng)的全過程,比如,POWERUP自診斷功能,KEYINPIT 的管理功能,PRINTER OUTPUT報(bào)表功能,DISPLAY功能等等。是控制系統(tǒng)的核心程序,也稱之為MONITER監(jiān)控管理程序其作用類似PC機(jī)的DOS系統(tǒng)。軟件設(shè)計(jì)的幾個(gè)方面如下:

(1)可靠性設(shè)計(jì)為保證系統(tǒng)軟件的可靠性,通常設(shè)計(jì)一個(gè)自診斷程序,定時(shí)對(duì)系統(tǒng)進(jìn)行診斷。在可靠性要求較高的場(chǎng)合,可以設(shè)計(jì)看門狗電路,也可以設(shè)計(jì)軟件陷阱,防止程序跑飛。

(2)軟件設(shè)計(jì)與硬件設(shè)計(jì)的統(tǒng)一性在單片機(jī)系統(tǒng)設(shè)計(jì)中,通常一個(gè)同樣的功能,通過硬件和軟件都可以實(shí)現(xiàn),確定那些由硬件完成,那些由軟件完成,這就是軟件、硬件的折衷問題。一般來說,在系統(tǒng)可能的情況下,盡量采用軟件,因?yàn)檫@樣可以節(jié)省經(jīng)費(fèi)。若系統(tǒng)要求實(shí)時(shí)性比較強(qiáng),則可采用硬件。

(3)應(yīng)用軟件的特點(diǎn)

①實(shí)時(shí)性:由于工業(yè)過程控制系統(tǒng)是實(shí)時(shí)控制系統(tǒng),所以對(duì)應(yīng)用軟件的執(zhí)行速度都有一定的要求,即能夠在被控對(duì)象允許的時(shí)間間隔內(nèi)對(duì)系統(tǒng)進(jìn)行控制、計(jì)算和處理。換言之,要求整個(gè)應(yīng)用軟件必須在一個(gè)采樣周期內(nèi)處理完畢。所以一般都采用匯編語言編寫應(yīng)用軟件。但是,對(duì)于那些計(jì)算工作量比較大的系統(tǒng),也可以采用高級(jí)語言和匯編語言混合使用的辦法,即數(shù)據(jù)采集、判斷、及控制輸出程序用匯編語言,而對(duì)于那些較為復(fù)雜的計(jì)算可采用高級(jí)語言。為了提高系統(tǒng)的實(shí)時(shí)性,對(duì)于那些需要隨機(jī)間斷處理的任務(wù),通常采用中斷系統(tǒng)來完成。
②通用性:在應(yīng)用程序設(shè)計(jì)中,為了節(jié)省內(nèi)存和具有較強(qiáng)的適應(yīng)能力,通常要求程序有一定的靈活性和通用性。為此,可以采用模塊結(jié)構(gòu),盡量將共用的程序編寫成子程序,如算術(shù)和邏輯運(yùn)算程序、A/D、D/A轉(zhuǎn)換程序、延時(shí)程序、PID運(yùn)算程序、數(shù)字濾波程序、標(biāo)度變換程序、報(bào)警程序等。

(4)軟件開發(fā)步驟軟件開發(fā)大體包括:劃分功能模塊及安排程序結(jié)構(gòu);畫出各程序模塊詳細(xì)流程圖;選擇合適的語言編寫程序;將各個(gè)模塊連接成一個(gè)完整的程序。

4單片機(jī)控制系統(tǒng)的調(diào)試

(1)硬件調(diào)試 根據(jù)設(shè)計(jì)的原理電路做好實(shí)驗(yàn)樣機(jī),便進(jìn)入硬件調(diào)試階段。調(diào)試工作的主要任務(wù)是排除樣機(jī)故障,其中包括設(shè)計(jì)錯(cuò)誤和工藝性故障。
① 脫機(jī)檢查:用萬能表或邏輯測(cè)試筆逐步按照邏輯圖檢查機(jī)中各器件的電源及各引腳的連接是否正確,檢查數(shù)據(jù)總線、地址總線和控制總線是否有短路等故障。有時(shí)為保護(hù)芯片,先對(duì)各管座的電位(或電源)進(jìn)行檢查,確定其無誤后再插入芯片檢查。
② 仿真調(diào)試:暫時(shí)排除目標(biāo)板的CPU和EPROM,將樣機(jī)接上仿真機(jī)的40芯仿真插頭進(jìn)行調(diào)試,調(diào)試各部分接口電路是否滿足設(shè)計(jì)要求。這部分工作是一種經(jīng)驗(yàn)性很強(qiáng)的工作,一般來說,設(shè)計(jì)制作的樣機(jī)不可能一次性完好,總是需要調(diào)試的。通常的方法是,先編調(diào)試軟件,逐一檢查調(diào)試硬件電路系統(tǒng)設(shè)計(jì)的準(zhǔn)確性。其次是調(diào)試MONITOR程序,只有MONITOER程序正常工作才可以進(jìn)行下面的應(yīng)用軟件調(diào)試。
硬件電路調(diào)試的一般順序是:
① 檢查CPU的時(shí)鐘電路。通過測(cè)試ALE信號(hào),如沒有ALE信號(hào),則判斷是晶體或CPU故障,這稱之為“心臟”檢查。
② 檢查ABUS/DBUS的分時(shí)復(fù)用功能的地址鎖存是否正常。
③ 檢查I/O地址分配器。一般是由部分譯碼或全譯碼電路構(gòu)成,如是部分譯碼設(shè)計(jì),則排除地址重疊故障。
④ 對(duì)擴(kuò)展的RAM、ROM進(jìn)行檢查調(diào)試。一般先后寫入55H、AAH,再讀出比較,以此判斷是否正常。因?yàn)檫@樣RAM、ROM的各位均寫入過‘0’、‘1’代碼。
⑤ 用戶級(jí)I/O設(shè)備調(diào)試。如面板、顯示、打印、報(bào)警等等。

{{分頁}}

(2)軟件調(diào)試 軟件調(diào)試根據(jù)開發(fā)的設(shè)備情況可以有以下方法:
① 交叉匯編:用IBM PC/XT機(jī)對(duì)MCS—51系列單片機(jī)程序進(jìn)行交叉匯編時(shí),可借助IBM
PC/XT機(jī)的行編輯和屏幕編輯功能,將源程序按規(guī)定的格式輸入到PC機(jī),生成MCS—51 HEX目標(biāo)代碼和LIST文件。
② 用匯編語言:現(xiàn)在有些單片STD工業(yè)控制機(jī)或者開發(fā)系統(tǒng),可直接使用匯編語言,借助CRT進(jìn)行匯編語言調(diào)試。
③
手工匯編:這種方法是最原始,但又是一種最簡(jiǎn)捷的調(diào)試方法,且不必增加調(diào)試設(shè)備。這種方法的實(shí)質(zhì)就是對(duì)照MCS—51指令編碼表,將源程序指令逐條地譯成機(jī)器碼,然后輸入到RAM重新進(jìn)行調(diào)試。在進(jìn)行手工匯編時(shí),要特別注意轉(zhuǎn)移指令、調(diào)用指令、查表指令。必須準(zhǔn)確無誤地計(jì)算出操作碼、轉(zhuǎn)移地址和相對(duì)偏移量,以免出錯(cuò)。

  以上3種方法調(diào)試完成以后,即可通過EPROM寫入器,將目標(biāo)代碼寫入EPROM中,并將其插至機(jī)器的相應(yīng)插座上,系統(tǒng)便可投入運(yùn)行。

(3)硬件、軟件仿真調(diào)試

  經(jīng)過硬件、軟件單獨(dú)調(diào)試后,即可進(jìn)入硬件、軟件聯(lián)合仿真調(diào)試階段,找出硬件、軟件之間不相匹配的地方,反復(fù)修改和調(diào)試。實(shí)驗(yàn)室調(diào)試工作完成以后,即可組裝成機(jī)器,移至現(xiàn)場(chǎng)進(jìn)行運(yùn)行和進(jìn)一步調(diào)試,并根據(jù)運(yùn)行及調(diào)試中的問題反復(fù)進(jìn)行修改。
5結(jié)論

 單片機(jī)控制技術(shù)應(yīng)用越來越廣泛,其核心技術(shù)是單片機(jī)控制系統(tǒng)的設(shè)計(jì)。對(duì)工程技術(shù)人員來說,抓住系統(tǒng)的原理構(gòu)成、軟件設(shè)計(jì)、硬件設(shè)計(jì)以及系統(tǒng)調(diào)試方法的要點(diǎn)是十分必要的。根據(jù)工作經(jīng)驗(yàn),前面敘述的系統(tǒng)調(diào)試方法將會(huì)有助于從事這方面工作的技術(shù)人員及本專業(yè)的學(xué)習(xí)者。

參考文獻(xiàn)
1陳粵初.單片及應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)踐. 北京: 北京航空航天大學(xué)出版社,1992
2何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) .北京:北京航空航天大學(xué)出版社,1998



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉