程長流
(杭州寶葉環(huán)境建設(shè)有限公司,浙江 杭州 311100)
利用嵌入式系統(tǒng)的智能控制器、各種工業(yè)單元的安裝調(diào)試及遠(yuǎn)程線上實時監(jiān)控系統(tǒng)與故障偵測的技術(shù),也可以及時快速發(fā)現(xiàn)異常及有效修復(fù)系統(tǒng)故障,確保所有工業(yè)系統(tǒng)都始終處于運作及正常。同時,可以減輕專業(yè)維修作業(yè)人員工作的繁重負(fù)擔(dān),其優(yōu)勢比較明顯[1]。
工業(yè)應(yīng)用程序提供的工業(yè)智能控制系統(tǒng)一般包括以下幾種功能:一是多路模擬量數(shù)據(jù)和開關(guān)量信號的自動實時監(jiān)控采集處理以及顯示;二是通過控制單元或其他主機輸出控制單元的命令信息,如啟動和停止;三是自動收集日志和自動記錄作業(yè)狀態(tài)數(shù)據(jù);四是發(fā)送故障記錄警報消息;五是自動存儲歷史數(shù)據(jù)等;六是時間開關(guān)設(shè)備等。同時,應(yīng)具有網(wǎng)絡(luò)數(shù)據(jù)遠(yuǎn)程傳輸控制和網(wǎng)絡(luò)軟件遠(yuǎn)程控制安裝與數(shù)據(jù)更新2種功能。傳統(tǒng)上的智能控制器系統(tǒng)通常由嵌入式8位單片機實現(xiàn),但隨著控制器實際編程操作功能的日益復(fù)雜集成化程度的進一步提高,尤其主要是單片機在同時實現(xiàn)了大量的數(shù)據(jù)自動采集分析和自動存儲、彩色圖形顯示交互系統(tǒng)和串行網(wǎng)絡(luò)的通信處理等各方面,很難單獨實現(xiàn)基于單片機平臺的遠(yuǎn)程實時自動化控制[2]。因此,理想上的方案一般是采用基于32位嵌入式ARM處理器。
作為1套完整嵌入式電子系統(tǒng)互連的重要載體,嵌入式硬件系統(tǒng)互連中所用的印刷電路板(Printed Circuit Board,PCB)層對硬件芯片之間都擔(dān)負(fù)著重要電氣元器件連接板的承載作用。如果要真正制造研發(fā)出1塊具有卓越的性能、可靠性度和系統(tǒng)穩(wěn)定性能的表面連接板,必須事先具備有關(guān)電路、電磁兼容性技術(shù)和電路信號完整性問題的理論知識,并與實際經(jīng)驗相結(jié)合。通常還要求硬件工程師具備較為熟練實用的嵌入式電子設(shè)計自動化(Electronic Design Automation,EDA)繪圖工具,以便快速設(shè)計1款高質(zhì)量的PCB板,并能夠為開發(fā)整個嵌入式系統(tǒng)硬件平臺奠定最堅實可靠的基礎(chǔ)。
在硬件抗干擾技術(shù)中,最常用的方法是光電隔離。在嵌入式系統(tǒng)中使用光電隔離方法的步驟為接收到外部干擾雜波信號時,系統(tǒng)的輸入和輸出端子與可以隔離信號和噪聲的光接口相連。中央處理器(Central Processing Unit,CPU)系統(tǒng)很容易被驅(qū)動電路干擾[3]。此時,通過光路隔離CPU和電源電路可以起到抗干擾的作用。在長期的傳輸過程中,內(nèi)建的傳輸信號系統(tǒng)可能會受到干擾。使用電纜連接遠(yuǎn)端設(shè)備時,設(shè)備之間的整地電位會發(fā)生差異,以產(chǎn)生回流,從而導(dǎo)致微分模式的干擾應(yīng)力,因此采取隔離是確保長期傳輸可靠性的最佳措施。
正確選擇一套具有最強大的抗干擾防護能力的電源系統(tǒng),以大大減少電磁波對電源產(chǎn)生的諧波干擾。具體技術(shù)措施則包括選擇一臺可為整個電力系統(tǒng)中提供一個穩(wěn)定輸入電壓源的三相交流穩(wěn)定的電源,防止出現(xiàn)影響電網(wǎng)系統(tǒng)穩(wěn)定性功能的系統(tǒng)過電壓或電源欠直流電壓問題。在電網(wǎng)無法連接到隔離電源網(wǎng)絡(luò)時,隔離電源變壓器用作于隔離電源,從而降低分布式容量的影響,并提高其在正常模式下的抗干擾能力。
智能調(diào)節(jié)器中的軟件部分主要包括系統(tǒng)啟動自檢模塊、系統(tǒng)自動初始化自檢模塊、實時系統(tǒng)時鐘及顯示、IIC鍵盤、串行總線通信、液晶顯示器、網(wǎng)絡(luò)通信、數(shù)據(jù)自動收集檢測和控制、數(shù)據(jù)的存儲查詢、硬件故障記錄管理以及硬件自動配置升級系統(tǒng)等模塊。對于主流ARM系統(tǒng),主要包括以下4個級別,分別是引導(dǎo)加載程序、系統(tǒng)軟件、圖形用戶界面以及較高級別的應(yīng)用程序軟件。在執(zhí)行基本結(jié)構(gòu)體系結(jié)構(gòu)時,應(yīng)將其視為一個整體,并從不同級別執(zhí)行最高級別的系統(tǒng),以實現(xiàn)總體效果的最佳選擇,主要包括串行總線通信、液晶顯示器(Liquid Crystal Display,LCD)、網(wǎng)絡(luò)通信、自動采集和控制數(shù)據(jù)、數(shù)據(jù)存儲和查詢、硬件故障記錄以及硬件自動配置和更新。
首先,利用標(biāo)準(zhǔn)的超高速集成電路硬件描述語 言(Very-High-Speed Integrated Circuit Hardware Description Language,VHDL)對內(nèi)部集成電路(Inter-Integrated Circuit,I2C)進行硬件電路的設(shè)計,并將其數(shù)據(jù)記錄在復(fù)雜可編程邏輯器件(Complex Programmable Logic Device,CPLD)芯片中。它的主要作用是完成對外部接口的輸入/輸出信息的采集,并與外部主機進行串口通信[4]。按照這個協(xié)議標(biāo)準(zhǔn),記錄了如數(shù)據(jù)傳送和數(shù)據(jù)串行傳輸、數(shù)據(jù)位接收和發(fā)送、數(shù)據(jù)確認(rèn)位的接收等。在進行調(diào)試時,要注意SDA與SCL信號的時序關(guān)系。在這樣的工作模式下,處理器只能通過查詢等方式來判斷是否成功地按下了按鈕,所以在設(shè)計時,利用計時裝置可以讀出I2C接口芯片中存儲的數(shù)據(jù)。另外,該接口還可對32臺系統(tǒng)開關(guān)進行實時控制。
圖形用戶界面(Graphical User Interface,GUI)系統(tǒng)主要包括高度客制化的XWindows、MiniGUI、OpenGUI、QT/Embedded等。每個GUI都有自己的特性,必須仔細(xì)考慮選擇。第1個系統(tǒng)在運行時占用大量系統(tǒng)資源,而使用本地代碼將進一步提高其運行功耗,因此主要用于機頂盒等音視頻設(shè)備。對于第2個系統(tǒng),主要用于提供輕量級GUI支持系統(tǒng)。因此,在設(shè)計基于ARM的軟件和硬件系統(tǒng)時,應(yīng)綜合考慮各種條件,良好的人機交互設(shè)計為系統(tǒng)提供了便利。嵌入式系統(tǒng)中的GUI設(shè)計應(yīng)綜合考慮3個因素,即代碼占用資源、GUI響應(yīng)速度以及易用性。如果移植了高級圖形界面源代碼,那么將占用太多資源,并且響應(yīng)速度相對較慢。此設(shè)計使用面向?qū)ο蟮脑O(shè)計方法并充分定義了某些數(shù)據(jù)結(jié)構(gòu),因此圖形顯示不僅滿足要求,而且具有良好的可擴展性。
嵌入式操作系統(tǒng)主要類型包括VxWorks、Linux和嵌入式WinCE。在具體選擇系統(tǒng)時,首先應(yīng)先深入分析研究這3種類型操作系統(tǒng)之間的主要優(yōu)缺點,了解它們的基本功能,并有針對性地設(shè)計軟件系統(tǒng)。Linux操作系統(tǒng)的設(shè)計是近年來增長速度最快、應(yīng)用最廣泛的,其主要是性能要更高,這一點使其成為用戶選擇操作系統(tǒng)的一種重要決定因素。WinCE是其中一款適用于整個環(huán)境有限資源使用的多線程、完全無優(yōu)先級操作系統(tǒng)和多任務(wù)操作。開發(fā)起來既簡單方便又十分快速,但卻也同樣存在運行成本相對過高等的致命缺點。對于VxWorks軟件來說,它同樣具有一個非常好用的實時性,而且價格也非常高,因此沒有得到廣泛的開發(fā)和使用。在軟件設(shè)計中,首先按照所定義的數(shù)據(jù)結(jié)構(gòu)來確定各界面的顯示數(shù)據(jù)和窗口處理的函數(shù)。在點擊系統(tǒng)按鍵之后,系統(tǒng)會根據(jù)當(dāng)前的鍵值、當(dāng)前窗口編號和當(dāng)前點擊坐標(biāo)來決定編號和當(dāng)前值。從視窗的資料區(qū)中提取要顯示的資料,并按視窗及點擊坐標(biāo)號碼進行緩存。LCD界面可以直接從窗口緩沖中提取和顯示數(shù)據(jù)。
根據(jù)數(shù)據(jù)處理在“顯示”窗口中的展示,可以將顯示模式分為2種類型。一種是使用具有良好一致性的上述顯示方法,另一種是單獨解決。因為在顯示的界面之間,某些界面的數(shù)據(jù)處理很少,而有些界面的處理量很大,例如參數(shù)編輯窗口界面。現(xiàn)在,這些窗口必須獨立處理。在實際工程中,合理地使用這2種顯示方法可以在復(fù)雜行為下方便地處理人機交互。通常,系統(tǒng)頂級主窗口以統(tǒng)一視圖顯示,并且可以更好地單獨控制圖紙窗口。
ARM嵌入式智能控制器內(nèi)建系統(tǒng)采用了特殊設(shè)計的內(nèi)建處理器,可自定義軟件和硬件,并特別針對特定應(yīng)用程序區(qū)域而設(shè)計。因此,它使系統(tǒng)本身的所有主要部分硬件結(jié)構(gòu)都經(jīng)過進一步簡化,系統(tǒng)體積顯得比較瘦小,具有兼容性良好、穩(wěn)定性良好、低功耗能性的系統(tǒng)特點。硬件系統(tǒng)平臺、應(yīng)用程序軟件和ARM操作系統(tǒng)共同構(gòu)成了嵌入式系統(tǒng)。ARM嵌入式系統(tǒng)具有PC的運行特性,可同時獨立開發(fā)工作在或集成于嵌入式系統(tǒng)之中的各類硬件系統(tǒng)和相關(guān)軟件,以實現(xiàn)高效運行。但是,與傳統(tǒng)的基于ARM體系結(jié)構(gòu)的嵌入式系統(tǒng)產(chǎn)品不同,需要具有足夠高的實時信息實時存儲計算能力和實時信息的處理運算能力以及實時功能的調(diào)整,嵌入式實時系統(tǒng)未來的2個主要技術(shù)發(fā)展的方向中包括處理器、接口和測試平臺等特定設(shè)計的外圍設(shè)備,因此需要充分考慮嵌入式系統(tǒng)的運行特性和需求。
該顯示控制系統(tǒng)按照功能要求,主要包括控制器ARM、液晶顯示器、關(guān)鍵控制模塊以及從站等。其中,S3c44b0X是主控芯片。該處理器采用ARM7TDMI芯片,為硬件系統(tǒng)的設(shè)計和穩(wěn)定提供了便利。另外,在硬件方面,擴展了存儲系統(tǒng)、液晶顯示屏、CPLD芯片、串行通信以及網(wǎng)卡通信等[5]。儲存系統(tǒng)會選取更大容量的NorFlash,以儲存程序代碼和系統(tǒng)資料,以便在工作流中進行紀(jì)錄。LCD采用320x240STLCD,內(nèi)置ADC控制器和可擴展的外接多路轉(zhuǎn)換器,并能利用CPLD芯片完成接口輸入輸出(Input/Output,I/O)的擴充。
模擬計算機數(shù)據(jù)的收集過程主要包括2個子部分,即據(jù)收集算法設(shè)計和數(shù)據(jù)處理算法。為了盡量保證信息采集數(shù)據(jù)的計算正確性,本文還采用到了中值濾波計算方法。收集得到的模擬數(shù)據(jù)中最多可有至少32個數(shù)據(jù)通道,并且數(shù)據(jù)通常可由多個系統(tǒng)獨立執(zhí)行,因此建立良好算法的總體設(shè)計及結(jié)構(gòu)模型是其必不可少的。綜合考慮多路數(shù)據(jù)復(fù)用開關(guān)轉(zhuǎn)換的串?dāng)_時間、初始開關(guān)轉(zhuǎn)換時的串?dāng)_時間和數(shù)據(jù)轉(zhuǎn)換的時間后,采用了多路數(shù)據(jù)采集的方法。
網(wǎng)絡(luò)通信系統(tǒng)主要完成網(wǎng)卡芯片的硬件初始化、數(shù)據(jù)信號的傳輸處理和數(shù)據(jù)接收處理以及對網(wǎng)絡(luò)協(xié)議和堆棧協(xié)議的移植。該通信系統(tǒng)提供的RTL8019AS網(wǎng)卡芯片中包含了用于數(shù)據(jù)發(fā)送緩沖和數(shù)據(jù)接收均衡的內(nèi)存。當(dāng)數(shù)據(jù)可通過本地的直接存儲器訪問(Direct Memory Access,DMA)從網(wǎng)絡(luò)電纜直接復(fù)制傳輸?shù)骄W(wǎng)絡(luò)接口卡和接收緩存中。當(dāng)緩存過滿時,數(shù)據(jù)就通過遠(yuǎn)程或DMA方式復(fù)制數(shù)據(jù)到內(nèi)存中以供處理器來處理。
網(wǎng)絡(luò)接口控制器(Network Interface Controller,NIC)芯片驅(qū)動程序主要通過配置網(wǎng)卡芯片內(nèi)的一系列寄存器來重置網(wǎng)卡、配置物理地址、配置讀/寫高速緩存指針以及配置數(shù)據(jù)傳輸和接收。在編寫程序的過程中,應(yīng)熟悉控制NIC芯片的前32個地址空間的功能和方法,以便整個NIC芯片系統(tǒng)均能夠同時保證其正常工作。驅(qū)動程序調(diào)試完成后,需要重新移植一個傳輸控制協(xié)議/網(wǎng)際協(xié)議(Transmission Control Protocol/Internet Protocol,TCP/IP)的堆棧。在調(diào)試過程中,根據(jù)網(wǎng)絡(luò)原理的層次結(jié)構(gòu)以及網(wǎng)絡(luò)數(shù)據(jù)的封裝和解壓縮過程,逐層進行調(diào)試,并編寫一些網(wǎng)絡(luò)數(shù)據(jù)包捕獲程序和發(fā)送程序,以確保數(shù)據(jù)在傳輸過程中是正常的,并且以正確的方式傳輸。除此之外,異常處理程序還應(yīng)注意資料的寬度和邊界對齊。
內(nèi)存管理單元(Memory Management Unit,MMU)存儲器通常認(rèn)為是CPU緩存的一部分,并通常有極少量的存儲空間來用于存儲一個從虛擬地址映射到真實物理地址之間的相應(yīng)的表。此表稱為翻譯頁緩沖區(qū)。所有的數(shù)據(jù)要求是將這些數(shù)據(jù)都發(fā)送1次到一個內(nèi)存MMU,以供用來進一步確定這些數(shù)據(jù)究竟到底是只位于一個隨機存取存儲器(Random Access Memory,RAM)設(shè)備中還是僅僅只會位于某一個高容量內(nèi)存設(shè)備上。如果所有這些數(shù)據(jù)都并不在同一個內(nèi)存空間表中,MMU也同樣無法直接生成內(nèi)存數(shù)據(jù)分頁文件的中斷。MMU中其他的2個部分實現(xiàn)的主要功能如下:將內(nèi)存的虛擬物理地址轉(zhuǎn)換為一個實際物理地址;控制對內(nèi)存地址的訪問次數(shù)和操作權(quán)限。停用內(nèi)存MMU設(shè)備時,虛擬物理地址直接轉(zhuǎn)換到實際物理地址。
在許多工程應(yīng)用實踐研究工作實例中,使用內(nèi)存MMU設(shè)備解決出解決了基本典型問題,具體如下。將DRAM內(nèi)存用作大容量內(nèi)存時,如果插入DRAM存儲器的行數(shù)和行列均不是整塊的,則與DRAM內(nèi)存的實際物理地址數(shù)據(jù)將始終不緊密相連,這便給內(nèi)存程序的實際編程安裝和硬件調(diào)試上帶來造成了一些不便。MMU可以用于將所有它們都轉(zhuǎn)換為一個連續(xù)的虛擬地址。
舉例代碼為
在ARM鏈接器的命令行里加入“-scovdescription-file–scf”或“-scatterdescription-file”,編譯鏈接后,將產(chǎn)生一個分布裝載文件。
在未來很長一段時間內(nèi),隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展和進步,對智能控制器設(shè)計提出了更高的要求。為了應(yīng)對這種發(fā)展趨勢,應(yīng)進一步支持?jǐn)?shù)控系統(tǒng)的科研工作,以更好地提高嵌入式系統(tǒng)的性能,進而實現(xiàn)嵌入式系統(tǒng)功能的提高和開發(fā)。因此,在智能控制器的功能設(shè)計中不僅適當(dāng)補充增加了一些基本的人機界面控制和簡單輸入或輸出控制操作,而且控制系統(tǒng)還需要具有良好性能的計算機通信、數(shù)據(jù)的查詢、自動軟件升級、自動菜單打開顯示和窗口關(guān)閉、自動數(shù)據(jù)記錄查詢以及芯片故障信息自動記錄,增強充電的安全性和穩(wěn)定性。