步進電機單片機控制系統(tǒng)設(shè)計
摘要:單片機控制技術(shù)應(yīng)用十分廣泛,其核心技術(shù)是單片機控制系統(tǒng)的設(shè)計。介紹了對單片機控制系統(tǒng)的構(gòu)成、硬件設(shè)計、軟件設(shè)計和系統(tǒng)調(diào)試等各環(huán)節(jié)并進行了討論,根據(jù)工作經(jīng)驗給出了調(diào)試方法。
關(guān)鍵詞:單片機;系統(tǒng)設(shè)計;系統(tǒng)調(diào)試
隨著材料科學(xué)、工藝技術(shù)、計算機技術(shù)的發(fā)展與進步,電路系統(tǒng)向著集成度極高的方向發(fā)展。CPU的生產(chǎn)制造技術(shù),也朝著綜合性、技術(shù)性、實用性發(fā)展。如CPU的運算位數(shù)從4位、8位 ……到32位機的發(fā)展,運算速度從8 MHz、32 MHz……到1.6 GHz。可以說是日新月異的發(fā)展著。其中單片機在控制系統(tǒng)中的應(yīng)用是越來越普遍了。單片機控制系統(tǒng)是以單片機(CPU)為核心部件,擴展一些外部接口和設(shè)備,組成單片機工業(yè)控制機,主要用于工業(yè)過程控制。要進行單片機系統(tǒng)設(shè)計首先必須具有一定的硬件基礎(chǔ)知識;其次,需要具有一定的軟件設(shè)計能力,能夠根據(jù)系統(tǒng)的要求,靈活地設(shè)計出所需要的程序;第三,具有綜合運用知識的能力。最后,還必須掌握生產(chǎn)過程的工藝性能及被測參數(shù)的測量方法,以及被控對象的動、靜態(tài)特性,有時甚至要求給出被控對象的數(shù)學(xué)模型。
單片機系統(tǒng)設(shè)計主要包括以下幾個方面的內(nèi)容:控制系統(tǒng)總體方案設(shè)計,包括系統(tǒng)的要求、控制方案的選擇,以及工藝參數(shù)的測量范圍等;選擇各參數(shù)檢測元件及變送器;建立數(shù)學(xué)模型及確定控制算法;選擇單片機,并決定是自行設(shè)計還是購買成套設(shè)備;系統(tǒng)硬件設(shè)計〔1〕,包括接口電路,邏輯電路及操作面板;系統(tǒng)軟件設(shè)計,包括管理、監(jiān)控程序以及應(yīng)用程序的設(shè)計,應(yīng)用系統(tǒng)設(shè)計包含有硬件設(shè)計與軟件設(shè)計兩部分〔2〕;系統(tǒng)的調(diào)試與試驗。
1單片機控制系統(tǒng)總體方案的設(shè)計
確定單片機控制系統(tǒng)總體方案,是進行系統(tǒng)設(shè)計最重要、最關(guān)鍵的一步??傮w方案的好壞,直接影響整個控制系統(tǒng)的性能及實施細則??傮w方案的設(shè)計主要是根據(jù)被控對象的任務(wù)及工藝要求而確定的。設(shè)計方法大致如下:根據(jù)系統(tǒng)的要求,首先確定出系統(tǒng)是采用開環(huán)系統(tǒng)還是閉環(huán)系統(tǒng),或者是數(shù)據(jù)處理系統(tǒng)。選擇檢測元件,在確定總體方案時,必須首先選擇好被測參數(shù)的測量元件,它是影響控制系統(tǒng)精度的重要因素之一。選擇執(zhí)行機構(gòu),執(zhí)行機構(gòu)是微型機控制系統(tǒng)的重要組成部件之一。執(zhí)行機構(gòu)的選擇一方面要與控制算法匹配,另一方面要根據(jù)被控對象的實際情況確定。選擇輸入/輸出通道及外圍設(shè)備。選擇時應(yīng)考慮以下幾個問題:被控對象參數(shù)的數(shù)量;各輸入/輸出通道是串行操作還是并行操作;各通道數(shù)據(jù)的傳遞速率;各通道數(shù)據(jù)的字長及選擇位數(shù);對顯示、打印有何要求;畫出整個系統(tǒng)原理圖。
單片機控制系統(tǒng)中控制算法的選用一般有:
(1) 直接數(shù)字控制
當被控對象的數(shù)學(xué)模型能夠確定時,可采用直接數(shù)字控制。所謂數(shù)學(xué)模型就是系統(tǒng)動態(tài)特性的數(shù)學(xué)表達式,它表示系統(tǒng)輸入輸出及其內(nèi)部狀態(tài)之間的關(guān)系。一般多用實驗的方法測出系統(tǒng)的特性曲線,然后再由此曲線確定出其數(shù)學(xué)模型?,F(xiàn)在經(jīng)常采用的方法是計算機仿真及計算機輔助設(shè)計,由計算機確定出系統(tǒng)的數(shù)學(xué)模型,因而加快了系統(tǒng)模型的建立。當系統(tǒng)模型建立后,即可選定上述某一種算法,設(shè)計數(shù)字控制器,并求出差分方程。計算機的主要任務(wù)就是按此差分方程計算并輸出控制量,進而實現(xiàn)控制。
(2) 數(shù)字化PID控制
由于被控對象是復(fù)雜的,因此并非所有的系統(tǒng)均可求出數(shù)學(xué)模型,有些即使可以求出來,但由于被控對象環(huán)境的影響,許多參數(shù)經(jīng)常變化,因此很難進行直接數(shù)字控制。此時最好選用數(shù)字化PID(比例積分微分)控制。在PID控制算法中,以位置型和增量型2種PID為基礎(chǔ),根據(jù)系統(tǒng)的要求,可對PID控制進行必要的改進。通過各種組合,可以得到更圓滿的控制系統(tǒng),以滿足各種不同控制系統(tǒng)的要求。例如串級PID就是人們經(jīng)常采用的控制方法之一。
所謂串級控制就是第一級數(shù)字PID的輸出不直接用來控制執(zhí)行機構(gòu),而是作為下一級數(shù)字PID的輸入值,并與第二級的給定值進行比較,其偏差作為第二級數(shù)字PID的控制量。當然,也可以用多級PID嵌套。
2單片機系統(tǒng)硬件設(shè)計
盡管單片機集成度高,內(nèi)部含有I/O控制線,ROM,RAM和定時/計數(shù)器。但在組成單片機系統(tǒng)時,擴展若干接口仍是設(shè)計者必不可少的任務(wù)。擴展接口有2種方案,一種是購置現(xiàn)成的接口板,另一種是根據(jù)系統(tǒng)實際需要,選用適合的芯片進行設(shè)計控制系統(tǒng)。就后一種而言,主要包括以下幾個方面的內(nèi)容。
基本系統(tǒng)的構(gòu)成:一個獨立的單片機核心系統(tǒng),一般由時鐘電路、地址鎖存器電路、地址譯碼器、存儲器擴展、模擬量輸入通道的擴展、模擬量輸出通道的擴展、開關(guān)量的I/O接口設(shè)計、鍵盤輸入和顯示電路等組成。
(1)存儲器擴展
由于單片機有4種不同的存儲器,且程序存儲器和數(shù)據(jù)存儲器是分別編址的,所以單片機的存儲器容量與同樣位數(shù)的微型機相比擴大了一倍多。擴展時,首先要注意單片機的種類;另一方面要把程序存儲器和數(shù)據(jù)存儲器分開。
{{分頁}}
(2)模擬量輸入通道的擴展
主要有以下2個問題:一個是數(shù)據(jù)采集通道的結(jié)構(gòu)形式,一般單片機控制系統(tǒng)都是多通道系統(tǒng)。因此選用何種結(jié)構(gòu)形式采集數(shù)據(jù),是進行模擬量輸入通道設(shè)計首先要考慮的問題。多數(shù)系統(tǒng)都采用共享A/D和S/H形式。但是當被測參數(shù)為幾個相關(guān)量時,則需選用多路S/H,共享A/D形式。對于那些參數(shù)比較多的分布式控制系統(tǒng),可把模擬量先就地進行A/D轉(zhuǎn)換,然后再送到主機中處理。對于那些被測參數(shù)相同(或相似)的多路數(shù)據(jù)采集系統(tǒng),為減少投資,可采用模擬量多路轉(zhuǎn)換,共享儀用放大器、S/H和A/D的所謂地電平多路切換形式。另外一個問題是A/D轉(zhuǎn)發(fā)器的選擇,設(shè)計時一定要根據(jù)被控對象的實際要求選擇A/D轉(zhuǎn)換器,在滿足系統(tǒng)要求的前提下,盡量選用位數(shù)比較低的A/D轉(zhuǎn)換器。
(3)模擬量輸出通道的擴展
模擬量輸出通道是單片機控制系統(tǒng)與執(zhí)行機構(gòu)(或控制設(shè)備)連接的紐帶和橋梁。設(shè)計時要根據(jù)被控對象的通道數(shù)及執(zhí)行機構(gòu)的類型進行選擇。對于那些可直接接受數(shù)字量的執(zhí)行機構(gòu),可由單片機直接輸出數(shù)字量,如步進電機或開關(guān)、繼電器系統(tǒng)等。對于那些需要接收模擬量的執(zhí)行機構(gòu),則需要用D/A轉(zhuǎn)化,即把數(shù)字量變成模擬量后,再帶動執(zhí)行機構(gòu)。
(4)開關(guān)量的I/O接口設(shè)計
由于開關(guān)量只有2種狀態(tài)“1”或“0”,所以,每個開關(guān)量只需一位二進制數(shù)表示即可。因為MCS—51系列單片機設(shè)有一個專用的布爾處理機,因而對于開關(guān)量的處理尤為方便。為了提高系統(tǒng)的抗干擾能力,通常采用光電隔離器把單片機與外部設(shè)備隔開。
(5)操作面板
操作面板是人機對話的紐帶,它根據(jù)具體情況,可大可小。為了便于現(xiàn)場操作人員操作,單片機控制系統(tǒng)設(shè)計一個操作面板的要求:操作方便、安全可靠、并具有自保功能,即使是誤操作也不會給生產(chǎn)帶來惡果。
(6)系統(tǒng)速度匹配
在不影響系統(tǒng)總功率的前提下,時鐘頻率選得低一些較好,這樣可降低系統(tǒng)對其他元器件工作速度的要求,從而降低成本和提高系統(tǒng)的可靠性。但系統(tǒng)頻率選的比較高時,要設(shè)法使其他元器件與主機匹配。
(7)系統(tǒng)負載匹配 系統(tǒng)中各個器件之間的負載匹配問題,主要表現(xiàn)在以下幾個方面。
① 邏輯電路間的接口及負載:在進行系統(tǒng)設(shè)計時,有時需要采用TTL和CMOS混合電路,由于二者要求的電平不一樣,因此一定要注意電流及負載的匹配問題。
② MCS—51系列單片及負載:8031的外部擴展功能是很強的,但是8031的P0口和P2口以及控制信號ALE的負載能力都是有限的,P0口能驅(qū)動8個LSTTL電路,P2口能驅(qū)動4個LSTTL電路。硬件設(shè)計時應(yīng)仔細核對8031的負載,使其不超過總的負載能力的70%。
3單片機控制系統(tǒng)的軟件設(shè)計
單片機控制系統(tǒng)的軟件設(shè)計一般分2類,系統(tǒng)軟件和應(yīng)用軟件設(shè)計。系統(tǒng)軟件的主要任務(wù)是:管理整個控制系統(tǒng)的全過程,比如,POWERUP自診斷功能,KEYINPIT 的管理功能,PRINTER OUTPUT報表功能,DISPLAY功能等等。是控制系統(tǒng)的核心程序,也稱之為MONITER監(jiān)控管理程序其作用類似PC機的DOS系統(tǒng)。軟件設(shè)計的幾個方面如下:
(1)可靠性設(shè)計為保證系統(tǒng)軟件的可靠性,通常設(shè)計一個自診斷程序,定時對系統(tǒng)進行診斷。在可靠性要求較高的場合,可以設(shè)計看門狗電路,也可以設(shè)計軟件陷阱,防止程序跑飛。
(2)軟件設(shè)計與硬件設(shè)計的統(tǒng)一性在單片機系統(tǒng)設(shè)計中,通常一個同樣的功能,通過硬件和軟件都可以實現(xiàn),確定那些由硬件完成,那些由軟件完成,這就是軟件、硬件的折衷問題。一般來說,在系統(tǒng)可能的情況下,盡量采用軟件,因為這樣可以節(jié)省經(jīng)費。若系統(tǒng)要求實時性比較強,則可采用硬件。
(3)應(yīng)用軟件的特點
①實時性:由于工業(yè)過程控制系統(tǒng)是實時控制系統(tǒng),所以對應(yīng)用軟件的執(zhí)行速度都有一定的要求,即能夠在被控對象允許的時間間隔內(nèi)對系統(tǒng)進行控制、計算和處理。換言之,要求整個應(yīng)用軟件必須在一個采樣周期內(nèi)處理完畢。所以一般都采用匯編語言編寫應(yīng)用軟件。但是,對于那些計算工作量比較大的系統(tǒng),也可以采用高級語言和匯編語言混合使用的辦法,即數(shù)據(jù)采集、判斷、及控制輸出程序用匯編語言,而對于那些較為復(fù)雜的計算可采用高級語言。為了提高系統(tǒng)的實時性,對于那些需要隨機間斷處理的任務(wù),通常采用中斷系統(tǒng)來完成。
②通用性:在應(yīng)用程序設(shè)計中,為了節(jié)省內(nèi)存和具有較強的適應(yīng)能力,通常要求程序有一定的靈活性和通用性。為此,可以采用模塊結(jié)構(gòu),盡量將共用的程序編寫成子程序,如算術(shù)和邏輯運算程序、A/D、D/A轉(zhuǎn)換程序、延時程序、PID運算程序、數(shù)字濾波程序、標度變換程序、報警程序等。
(4)軟件開發(fā)步驟軟件開發(fā)大體包括:劃分功能模塊及安排程序結(jié)構(gòu);畫出各程序模塊詳細流程圖;選擇合適的語言編寫程序;將各個模塊連接成一個完整的程序。
4單片機控制系統(tǒng)的調(diào)試
(1)硬件調(diào)試 根據(jù)設(shè)計的原理電路做好實驗樣機,便進入硬件調(diào)試階段。調(diào)試工作的主要任務(wù)是排除樣機故障,其中包括設(shè)計錯誤和工藝性故障。
① 脫機檢查:用萬能表或邏輯測試筆逐步按照邏輯圖檢查機中各器件的電源及各引腳的連接是否正確,檢查數(shù)據(jù)總線、地址總線和控制總線是否有短路等故障。有時為保護芯片,先對各管座的電位(或電源)進行檢查,確定其無誤后再插入芯片檢查。
② 仿真調(diào)試:暫時排除目標板的CPU和EPROM,將樣機接上仿真機的40芯仿真插頭進行調(diào)試,調(diào)試各部分接口電路是否滿足設(shè)計要求。這部分工作是一種經(jīng)驗性很強的工作,一般來說,設(shè)計制作的樣機不可能一次性完好,總是需要調(diào)試的。通常的方法是,先編調(diào)試軟件,逐一檢查調(diào)試硬件電路系統(tǒng)設(shè)計的準確性。其次是調(diào)試MONITOR程序,只有MONITOER程序正常工作才可以進行下面的應(yīng)用軟件調(diào)試。
硬件電路調(diào)試的一般順序是:
① 檢查CPU的時鐘電路。通過測試ALE信號,如沒有ALE信號,則判斷是晶體或CPU故障,這稱之為“心臟”檢查。
② 檢查ABUS/DBUS的分時復(fù)用功能的地址鎖存是否正常。
③ 檢查I/O地址分配器。一般是由部分譯碼或全譯碼電路構(gòu)成,如是部分譯碼設(shè)計,則排除地址重疊故障。
④ 對擴展的RAM、ROM進行檢查調(diào)試。一般先后寫入55H、AAH,再讀出比較,以此判斷是否正常。因為這樣RAM、ROM的各位均寫入過‘0’、‘1’代碼。
⑤ 用戶級I/O設(shè)備調(diào)試。如面板、顯示、打印、報警等等。
{{分頁}}
(2)軟件調(diào)試 軟件調(diào)試根據(jù)開發(fā)的設(shè)備情況可以有以下方法:
① 交叉匯編:用IBM PC/XT機對MCS—51系列單片機程序進行交叉匯編時,可借助IBM
PC/XT機的行編輯和屏幕編輯功能,將源程序按規(guī)定的格式輸入到PC機,生成MCS—51 HEX目標代碼和LIST文件。
② 用匯編語言:現(xiàn)在有些單片STD工業(yè)控制機或者開發(fā)系統(tǒng),可直接使用匯編語言,借助CRT進行匯編語言調(diào)試。
③
手工匯編:這種方法是最原始,但又是一種最簡捷的調(diào)試方法,且不必增加調(diào)試設(shè)備。這種方法的實質(zhì)就是對照MCS—51指令編碼表,將源程序指令逐條地譯成機器碼,然后輸入到RAM重新進行調(diào)試。在進行手工匯編時,要特別注意轉(zhuǎn)移指令、調(diào)用指令、查表指令。必須準確無誤地計算出操作碼、轉(zhuǎn)移地址和相對偏移量,以免出錯。
以上3種方法調(diào)試完成以后,即可通過EPROM寫入器,將目標代碼寫入EPROM中,并將其插至機器的相應(yīng)插座上,系統(tǒng)便可投入運行。
(3)硬件、軟件仿真調(diào)試
經(jīng)過硬件、軟件單獨調(diào)試后,即可進入硬件、軟件聯(lián)合仿真調(diào)試階段,找出硬件、軟件之間不相匹配的地方,反復(fù)修改和調(diào)試。實驗室調(diào)試工作完成以后,即可組裝成機器,移至現(xiàn)場進行運行和進一步調(diào)試,并根據(jù)運行及調(diào)試中的問題反復(fù)進行修改。
5結(jié)論
單片機控制技術(shù)應(yīng)用越來越廣泛,其核心技術(shù)是單片機控制系統(tǒng)的設(shè)計。對工程技術(shù)人員來說,抓住系統(tǒng)的原理構(gòu)成、軟件設(shè)計、硬件設(shè)計以及系統(tǒng)調(diào)試方法的要點是十分必要的。根據(jù)工作經(jīng)驗,前面敘述的系統(tǒng)調(diào)試方法將會有助于從事這方面工作的技術(shù)人員及本專業(yè)的學(xué)習(xí)者。
參考文獻
1陳粵初.單片及應(yīng)用系統(tǒng)設(shè)計與實踐. 北京: 北京航空航天大學(xué)出版社,1992
2何立民.單片機應(yīng)用系統(tǒng)設(shè)計 .北京:北京航空航天大學(xué)出版社,1998
評論