《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 彩色小長(zhǎng)圖無(wú)紙記錄儀的設(shè)計(jì)與開(kāi)發(fā)

彩色小長(zhǎng)圖無(wú)紙記錄儀的設(shè)計(jì)與開(kāi)發(fā)

2008-10-29
作者:謝 鋒 陳 引 吳明光

  摘? 要: 介紹了在保持與中長(zhǎng)圖無(wú)紙記錄儀" title="無(wú)紙記錄儀">無(wú)紙記錄儀通用的基礎(chǔ)上開(kāi)發(fā)的小長(zhǎng)圖無(wú)紙記錄儀。該記錄儀可全中文圖形界面顯示、萬(wàn)能輸入、功能完備,運(yùn)用了數(shù)據(jù)空間擴(kuò)展分頁(yè)訪問(wèn)管理和代碼空間擴(kuò)展切換等新技術(shù)。從硬件以及軟件兩方面詳細(xì)論述了這些新技術(shù)的實(shí)現(xiàn)。

  關(guān)鍵詞: 分頁(yè)訪問(wèn)? 代碼切換? 無(wú)紙記錄儀

?

  記錄儀是工業(yè)生產(chǎn)自動(dòng)化系統(tǒng)中常見(jiàn)的二次儀表。傳統(tǒng)的記錄儀功能單一,機(jī)械結(jié)構(gòu)易發(fā)故障,日常維護(hù)工作繁瑣,已經(jīng)無(wú)法滿(mǎn)足生產(chǎn)過(guò)程綜合自動(dòng)化的要求。筆者于1998年研制的彩色中長(zhǎng)圖無(wú)紙記錄儀,已經(jīng)實(shí)現(xiàn)了產(chǎn)品化,并廣泛應(yīng)用于化工、鋼鐵行業(yè)的過(guò)程監(jiān)控,獲得用戶(hù)的好評(píng)。在此基礎(chǔ)上,根據(jù)用戶(hù)的實(shí)際需求以及使用意見(jiàn),筆者又開(kāi)發(fā)了新一代的彩色小長(zhǎng)圖無(wú)紙記錄儀。該記錄儀具有5″DSTN彩色液晶顯示,1~8通道萬(wàn)能輸入、16點(diǎn)報(bào)警、2點(diǎn)PID輸出,尺寸小、功能全、可滿(mǎn)足大多數(shù)行業(yè)的需求。

1 主要功能

  (1)信號(hào)采樣:模擬輸入通道1~8路。全隔離萬(wàn)能輸入,可輸入0~10V、0~5V、1~5V、0~10mA、4~20mA標(biāo)準(zhǔn)信號(hào)和PT100、Cu50熱電阻信號(hào)以及K、S、B、N、T、E、J、R熱電偶信號(hào)。用戶(hù)直接在組態(tài)畫(huà)面選擇,無(wú)需更換輸入通道板。記錄間隔可設(shè)置為1/2/4/8/20/40/60/120/240等。

  (2)組態(tài)功能:該記錄儀具有強(qiáng)大的組態(tài)功能,用戶(hù)可對(duì)通道信號(hào)類(lèi)型、單位、量程、顯示范圍、記錄間隔、報(bào)警上下限以及顯示畫(huà)面、歷史追憶、流量累計(jì)、PID參數(shù)等進(jìn)行設(shè)置。圖形化的組態(tài)界面,操作簡(jiǎn)單。

  (3)顯示功能:全中文圖形界面,菜單驅(qū)動(dòng),信息直觀豐富,操作簡(jiǎn)單。主要顯示畫(huà)面:水平趨勢(shì)畫(huà)面、垂直趨勢(shì)畫(huà)面、棒圖畫(huà)面、數(shù)字畫(huà)面(以上畫(huà)面均可1~8通道選擇)、歷史數(shù)據(jù)趨勢(shì)追憶畫(huà)面(單通道或多通道同時(shí))、多通道流量累計(jì)畫(huà)面、組態(tài)畫(huà)面(包括通道設(shè)置、顯示設(shè)置、流量累計(jì)設(shè)置、PID參數(shù)設(shè)置、歷史追憶設(shè)置等畫(huà)面)。

  (4)存儲(chǔ)功能:采用大容量" title="大容量">大容量Flash作為主要存儲(chǔ)設(shè)備(用戶(hù)可選1/2/4/6M)。軟盤(pán)作為輔助,用戶(hù)可將任意時(shí)間段內(nèi)的數(shù)據(jù)轉(zhuǎn)存到軟盤(pán),然后在PC機(jī)上進(jìn)行顯示、分析、打印。

  (5)通訊功能:提供RS-232/RS-485通訊接口。可遠(yuǎn)距離通訊,多臺(tái)儀表組網(wǎng)。配合上位PC機(jī)軟件可實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。

  (6)打印功能:提供常用微型打印機(jī)接口,打印任意時(shí)間段內(nèi)數(shù)據(jù)、趨勢(shì)曲線、流量累計(jì)值等。

  (7)報(bào)警功能:配有16點(diǎn)開(kāi)關(guān)量輸出通道(可選長(zhǎng)開(kāi)/長(zhǎng)閉),根據(jù)各通道設(shè)置的上下限,在顯示畫(huà)面實(shí)時(shí)顯示報(bào)警信息的同時(shí)輸出報(bào)警信號(hào)。

  (8)簡(jiǎn)單PID調(diào)節(jié)功能:具有兩路PID輸出通道,信號(hào)類(lèi)型為1~5V/4~20mA。

2 硬件設(shè)計(jì)

  作者先前開(kāi)發(fā)的彩色中長(zhǎng)圖無(wú)紙記錄儀內(nèi)部采用了上下位機(jī)" title="下位機(jī)">下位機(jī)的結(jié)構(gòu)。上位機(jī)采用ALL-IN-ONE型PC104嵌入式模板作為硬件平臺(tái),直接接入GB級(jí)硬盤(pán)和1.44MB軟盤(pán)、640×480的10″彩色TFT液晶顯示屏、6鍵數(shù)字鍵盤(pán)。下位機(jī)采用以PHILIPS公司80C552為控制核心的采集模塊。上位機(jī)負(fù)責(zé)畫(huà)面顯示、用戶(hù)組態(tài)、數(shù)據(jù)管理、打印以及遠(yuǎn)程通訊(RS232或485)。下位機(jī)負(fù)責(zé)信號(hào)調(diào)理、數(shù)據(jù)計(jì)算、報(bào)警以及PID輸出。上下位機(jī)間通過(guò)RS232接口連接,傳遞通道組態(tài)信息和通道數(shù)據(jù)值。結(jié)構(gòu)框圖見(jiàn)圖1。采用該種結(jié)構(gòu)的優(yōu)點(diǎn)是模塊化設(shè)計(jì),上下位機(jī)各司其職,分工合作;應(yīng)用靈活,兼容性好;故障定位容易。該系統(tǒng)的易用性和可靠性已經(jīng)在工廠應(yīng)用中得到了證明。但也要看到,在該系統(tǒng)中,PC104模板的功能并沒(méi)有被充分使用,硬盤(pán)空間浪費(fèi)嚴(yán)重(目前市場(chǎng)上已買(mǎi)不到4G以下容量的硬盤(pán)了),液晶顯示屏價(jià)格昂貴,從而導(dǎo)致了記錄儀價(jià)格偏高。

?

?

  在總結(jié)了中長(zhǎng)圖無(wú)紙記錄儀的研發(fā)之后,在小長(zhǎng)圖無(wú)紙記錄儀的設(shè)計(jì)中仍然采用了上下位機(jī)的結(jié)構(gòu)。其中下位機(jī)數(shù)據(jù)采集模塊與中長(zhǎng)圖無(wú)紙記錄儀通用,這樣避免了重復(fù)開(kāi)發(fā),并使小長(zhǎng)圖、中長(zhǎng)圖無(wú)紙記錄儀成為一個(gè)體系。全新開(kāi)發(fā)了以Dallas公司80C320為核心的上位機(jī)。結(jié)構(gòu)框圖見(jiàn)圖2。采用了320×240的5″DSTN彩色液晶顯示屏。數(shù)據(jù)存儲(chǔ)主要采用大容量的Flash,輔助設(shè)備采用1.44M軟盤(pán),由GM82C765負(fù)責(zé)控制。使用80C320主要基于兩點(diǎn)考慮:一是80C320具有兩個(gè)UART,能滿(mǎn)足記錄儀內(nèi)部上下位機(jī)通訊以及與外部的遠(yuǎn)程通訊,軟件編制的復(fù)雜程度也大大降低;二是軟驅(qū)控制器GM82C765的實(shí)時(shí)性要求比較高,而80C320的4周期技術(shù)可使其在與其它51芯片采用相同晶振的條件下,指令執(zhí)行速度快三倍;加上雙DPTR的結(jié)構(gòu),能提高程序執(zhí)行效率,從而更好地與GM82C765配合。

?

?

  由于液晶屏采用RAM方式驅(qū)動(dòng),并且大容量的并行Flash存儲(chǔ)器遠(yuǎn)遠(yuǎn)超出了51單片機(jī)64K的數(shù)據(jù)尋址空間,因此,我們對(duì)80C320進(jìn)行了數(shù)據(jù)空間擴(kuò)展,增加了8根地址線。對(duì)增加的地址空間我們進(jìn)行了分頁(yè)管理(每個(gè)頁(yè)面大小為32K),利用51原有的高端32K數(shù)據(jù)空間進(jìn)行換頁(yè)訪問(wèn)。在增加的數(shù)據(jù)空間內(nèi),我們安排了32K的I/O空間、64K的液晶顯示空間以及Flash存儲(chǔ)器空間,擴(kuò)充的數(shù)據(jù)空間達(dá)到8M。原理圖見(jiàn)圖3。

?

?

  對(duì)編程而言,數(shù)據(jù)空間就是原有的64K空間。當(dāng)程序要訪問(wèn)擴(kuò)充的數(shù)據(jù)空間時(shí),先向地址0x7FFF寫(xiě)入高8位地址進(jìn)行頁(yè)面選擇,由硬件片選電路將被選擇的頁(yè)面映射到原51的高端32K數(shù)據(jù)空間。此后對(duì)高端32K數(shù)據(jù)空間的訪問(wèn)就是對(duì)所選擴(kuò)展數(shù)據(jù)空間頁(yè)面的訪問(wèn)。擴(kuò)充數(shù)據(jù)空間總共有分為256個(gè)頁(yè)面。低端32K數(shù)據(jù)空間的訪問(wèn)不受頁(yè)面選擇的影響。

  由于51系列單片機(jī)體系結(jié)構(gòu)上的限制,其代碼空間只有64K。小長(zhǎng)圖無(wú)紙記錄儀軟件采用C語(yǔ)言編寫(xiě),菜單驅(qū)動(dòng)全中文圖形界面顯示,并且功能完備,軟件代碼的長(zhǎng)度超出了64K。為了解決這個(gè)問(wèn)題,我們開(kāi)創(chuàng)性地使用了擴(kuò)充代碼空間并自行控制片選從而切換代碼空間的方法,可以說(shuō)這是小長(zhǎng)圖無(wú)紙記錄儀在技術(shù)上的一個(gè)創(chuàng)新。其硬件原理見(jiàn)圖4。而在軟件設(shè)計(jì)" title="軟件設(shè)計(jì)">軟件設(shè)計(jì)上,為了保證程序能在兩塊代碼空間自由切換且保證運(yùn)行正常,在軟件編寫(xiě)以及編譯連接定位上均有較高的要求,這在下面的軟件設(shè)計(jì)一節(jié)中詳細(xì)說(shuō)明。

?

?

3 軟件設(shè)計(jì)

  小長(zhǎng)圖無(wú)紙記錄儀軟件采用C語(yǔ)言和匯編語(yǔ)言" title="匯編語(yǔ)言">匯編語(yǔ)言混合編寫(xiě)。用C語(yǔ)言進(jìn)行編程能提高開(kāi)發(fā)的效率以及代碼的質(zhì)量,但在實(shí)時(shí)性要求較高的場(chǎng)合,目前的C51編譯器仍有其局限性。因此,軟件的主體部分采用C語(yǔ)言編寫(xiě);而對(duì)實(shí)時(shí)性要求嚴(yán)格的GM82C765軟驅(qū)控制器的訪問(wèn)、液晶屏的驅(qū)動(dòng)等底層函數(shù)均采用51匯編語(yǔ)言編寫(xiě)。C程序和匯編語(yǔ)言模塊之間的連接主要解決變量傳遞、共享及代碼調(diào)用等問(wèn)題。限于篇幅,在此就不多論述了,有興趣的讀者請(qǐng)參閱參考文獻(xiàn)3。

軟件設(shè)計(jì)中要解決的關(guān)鍵問(wèn)題是代碼切換。其原理圖見(jiàn)圖5。

?

  原理圖中Function1與Funciton2代碼很大,當(dāng)它們放在一個(gè)工程中編譯時(shí),代碼超出了64K的限制。因此將它們分置于兩個(gè)代碼空間中。相應(yīng)的程序必須分成兩個(gè)工程來(lái)編寫(xiě)。其中Function1放在ROM1中,Function2放在ROM2中,MainLoop(主循環(huán))與SwitchChip(空間切換函數(shù))為公共函數(shù);同時(shí)為了工程能被正確編譯連接,在ROM1和ROM2中分別加入了Function2與Function1的空函數(shù)。

  代碼空間切換的流程是這樣的:假定上電后,程序開(kāi)始運(yùn)行于ROM1空間,進(jìn)入MainLoop循環(huán)等待事件發(fā)生。當(dāng)某一時(shí)刻,event2事件發(fā)生,程序調(diào)用SwitchChip,參數(shù)為2(見(jiàn)圖中①)。進(jìn)入SwitchChip函數(shù)后,根據(jù)參數(shù)設(shè)置片選,選中ROM2,此后程序在ROM2空間運(yùn)行(見(jiàn)圖中②)。SwitchChip函數(shù)返回,開(kāi)始調(diào)用ROM2中真正的Function2函數(shù)(見(jiàn)圖中③)。完畢后程序在ROM2空間中的MainLoop循環(huán),等待新事件發(fā)生。

  當(dāng)程序運(yùn)行在ROM2中的MainLoop時(shí),event1事件發(fā)生,程序調(diào)用SwitchChip,參數(shù)為1(見(jiàn)圖中④)。進(jìn)入SwitchChip函數(shù)后,根據(jù)參數(shù)設(shè)置片選,選中ROM1,從而程序回到ROM1空間運(yùn)行(見(jiàn)圖中⑤)。SwitchChip函數(shù)返回,開(kāi)始調(diào)用ROM1中真正的Function1函數(shù)(見(jiàn)圖中⑥)。執(zhí)行完畢后程序在ROM1空間中的MainLoop循環(huán)。

  而當(dāng)程序運(yùn)行在ROM1中發(fā)生event1事件時(shí),調(diào)用SwitchChip不會(huì)切換ROM空間,從而能正確調(diào)用Function1函數(shù)。同理在ROM2中發(fā)生event2事件也是一樣。

  從原理圖以及上述流程可以看出,使兩塊ROM空間進(jìn)行正確切換的必要條件是:

  ·兩塊ROM中MainLoop函數(shù)的起始地址必須相同,并且語(yǔ)句必須完全一樣,從而保證每條語(yǔ)句的地址是相同的。在ROM切換后,函數(shù)調(diào)用的返回地址是相同的。程序能正常運(yùn)行而不跑飛。

  ·同理,兩塊ROM中SwitchChip函數(shù)體必須完全相同并定位在相同的地址。

  ·兩個(gè)工程中的全局變量在RAM中的定位必須完全一致,否則將出現(xiàn)不可預(yù)期的后果。

  ·ROM片選線的切換速度必須足夠快,使得CPU在讀取下一條指令前片選信號(hào)就已穩(wěn)定下來(lái)。

  程序中函數(shù)以及變量的定位可參考C51編譯器以及連接器的定位開(kāi)關(guān),這里就不展開(kāi)了。

  彩色小長(zhǎng)圖無(wú)紙記錄儀的設(shè)計(jì)與開(kāi)發(fā)保持了與彩色中長(zhǎng)圖無(wú)紙記錄儀的通用性?;竟δ芤恢?體積減小,成本降低。并且使用了數(shù)據(jù)空間(RAM)擴(kuò)展分頁(yè)訪問(wèn)管理、代碼空間(ROM)擴(kuò)展切換等新技術(shù)。

?

參考文獻(xiàn)

1 Dallas80C320 Data Sheet. Dallas Semiconductor, 1998

2 GM82C765 Data Sheet. LG Semicon.Co. LTD, 1996

3 徐愛(ài)鈞,彭秀華.單片機(jī)高級(jí)語(yǔ)言C51應(yīng)用程序設(shè)計(jì).北京:電子工業(yè)出版社,1998

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。