把網(wǎng)絡(luò)引進(jìn)嵌入式控制系統(tǒng)----微型單板計(jì)算機(jī)加軟件可顯著減少聯(lián)網(wǎng)控制系統(tǒng)的復(fù)雜性
OEM廠商把強(qiáng)大的網(wǎng)絡(luò)功能引進(jìn)到嵌入式應(yīng)用系統(tǒng)中?,F(xiàn)在,自動(dòng)裝配線的監(jiān)控人員可以坐在臺(tái)式計(jì)算機(jī)前面,通過Web瀏覽器,監(jiān)控和調(diào)整總裝線上的每一個(gè)設(shè)備部件;醫(yī)生則可以通過Web瀏覽器把一系列上網(wǎng)診斷設(shè)備的數(shù)據(jù)調(diào)集在一起,進(jìn)行綜合分析。
許多OEM廠家對產(chǎn)品上網(wǎng)有些顧慮,怕拖延產(chǎn)品上市時(shí)間、怕需要一筆可觀的起動(dòng)資金、怕會(huì)有長遠(yuǎn)的維修費(fèi)用。Bright Start Engineering公司率先實(shí)現(xiàn)了一項(xiàng)既簡單、價(jià)格又不貴的上網(wǎng)技術(shù)。這就是集軟硬件和必要的開發(fā)環(huán)境于一身的垂直式網(wǎng)絡(luò)引擎,我們叫ipEngine。
對于多種控制應(yīng)用系統(tǒng),ipEngine可以作為控制器使用。ipEngine用FPGA構(gòu)成虛擬接口,可動(dòng)態(tài)地配置內(nèi)部功能和外部接口,以適應(yīng)各種用戶的應(yīng)用需要。圖1給出了ipEngine在生產(chǎn)廠中的應(yīng)用示例。作為混合罐的控制器,ipEngine以M型模塊方式裝在混合罐主接口電子線路板上。它和傳感器相連以測量溫度、壓力,與執(zhí)行機(jī)構(gòu)相連以控制轉(zhuǎn)動(dòng)部分的工作和速度。ipEngine板上的軟件完成閉環(huán)控制所需的任一功能,板上嵌入的Web服務(wù)器支持在intranet或Intenet網(wǎng)上的任意地方,都可通過瀏覽器對設(shè)備進(jìn)行監(jiān)視和控制。為防止對設(shè)備進(jìn)行非授權(quán)的訪問,Web網(wǎng)頁設(shè)有口令字,保證Web網(wǎng)服務(wù)的安全。
IpEngine還可提供對原有的控制系統(tǒng)提供上網(wǎng)能力。譬如,對于圖1中的焊接機(jī)器人,ipEngine安裝在原有的控制系統(tǒng)內(nèi)。有的控制系統(tǒng)多數(shù)都有標(biāo)準(zhǔn)總線接口。將ipEngine上的FPGA配置成對應(yīng)的標(biāo)準(zhǔn)總線協(xié)議,如PC機(jī)的ISA、PCMCIA或VME總線等。ipEngine可經(jīng)總線與已有控制系統(tǒng)相連,雖然軟件的閉環(huán)控制部分用不著,但是它卻擔(dān)當(dāng)起焊接機(jī)器人已存在的接口協(xié)議與Internet網(wǎng)之間的網(wǎng)關(guān)作用。
與ipEngine硬件相配套的有兩種預(yù)集成的、不需付版權(quán)費(fèi)的操作系統(tǒng)。一個(gè)是實(shí)時(shí)的基于POSIX的網(wǎng)絡(luò)操作系統(tǒng);一個(gè)是Linux嵌入版本。兩個(gè)操作系統(tǒng)都支持完備的TCP/IP連網(wǎng)和Web服務(wù)器。
結(jié)構(gòu)
圖2是ipEngine的硬件結(jié)構(gòu)圖。微處理器是Motorola生產(chǎn)的 嵌入式MPC823型PowerPC。之所以選MPC823是因?yàn)樗胸S富的外圍接口,包括Ethernet、USB、和I2C,還有兩個(gè)串行口和一個(gè)LCD控制器。MPC823有適合于電池供電片上的許多低功耗工作模式。ipEngine板上有16MB DRAM,2MB FLASH(快閃)存儲(chǔ)器,使應(yīng)用軟件足以從網(wǎng)上下載,或存于FLASH。板上有專門的開關(guān)電源,除自用外還可以向用戶的電子電路供電。開關(guān)電源的輸入為5~18V的單一直流電源。
虛擬接口
ipEngine板上采用由FPGA構(gòu)成的介于MPC823和用戶電子電路之間的虛擬接口。FPGA選用Altera公司的EPF6016,具有1300個(gè)用戶可配置的觸發(fā)器。因?yàn)镕PGA的配置數(shù)據(jù)每次上電要重裝一次,或運(yùn)行中進(jìn)行配置,重裝約需10ms。虛擬接口的外引接插件有132引腳,其中82引腳接FPGA,其余接時(shí)鐘、電源和MPC823的外圍功能。另有128K×16位高速同步SRAM掛在FPGA上,作為虛擬接口的高速緩沖。FPGA中有專門為MPC823和FPGA訪問SRAM時(shí)所需的仲裁電路。SRAM也用做高速同步I/O與處理器內(nèi)核之間的緩沖,和存放輸出波形的查表數(shù)據(jù)。板上的鎖相環(huán)電路能合成任意頻率的時(shí)鐘信號(hào),為PowerPC提供片上波特率信號(hào)源和FPGA所需的低時(shí)滯時(shí)鐘,還留有一路經(jīng)虛擬接口的插頭方便用戶的使用。
傳感器及執(zhí)行機(jī)構(gòu)接口
ipEngine提供的典型I/O接口有:串行I/O,并行總線及I/O,波形輸入/輸出。見圖3。
串行I/O 對于串行設(shè)備的同步 (如AD/DA變換器)使用內(nèi)部移位寄存器加上一些控制邏輯,因此,串行模擬變換器可由FPGA上8/16位寄存器的讀和寫來操作。現(xiàn)在MPC823用的是查詢方式,將來可以用中斷或DMA方式。典型的同步串行口大約耗用20~30個(gè)觸發(fā)器。
并行I/O及總線 并行AD/DA變換器及分立的I/O設(shè)備的接口FPGA的寄存器來實(shí)現(xiàn)。復(fù)雜的雙向存儲(chǔ)器接口和處理器總線式接口也由FPGA的內(nèi)部邏輯來實(shí)現(xiàn)。
波形輸入
主要用于輸入波形的測量和比較,如脈沖的頻率、脈寬和多路脈沖的相位等。它們用輸入波形對內(nèi)部的計(jì)數(shù)器進(jìn)行門控或鐘控來實(shí)現(xiàn)。
波形輸出
主要是PWM驅(qū)動(dòng)和控制步進(jìn)馬達(dá)等的輸出。它們用計(jì)數(shù)器、寄存器、比較器或方向控制電路來實(shí)現(xiàn)。用更復(fù)雜的邏輯還可實(shí)現(xiàn)加速和制動(dòng)輸出。
虛擬接口的討論
以FPGA為基礎(chǔ)的虛擬接口能省去連接用戶傳感器和執(zhí)行機(jī)構(gòu)等的附加硬件,可節(jié)省開發(fā)調(diào)試的時(shí)間。因?yàn)镕PGA的各種配置軟件可以事前開發(fā)或更新,使用時(shí)可在現(xiàn)場升級。 但是虛擬接口的缺點(diǎn)是,雖然可向用戶硬件提供靈活的接口,但缺少工業(yè)標(biāo)準(zhǔn)總線(即PC/104和VME),而不能為現(xiàn)成的標(biāo)準(zhǔn)I/O卡提供接口?,F(xiàn)BSE公司完成了FPGA上的ISA總線接口,以及PC/104模板。雖然FPGA可以實(shí)現(xiàn)很多復(fù)雜的功能,但是用戶要花很多時(shí)間去開發(fā)。為此,BSE公司打算提供上千種預(yù)先編輯好的fpgaWare庫,其中包括標(biāo)準(zhǔn)的內(nèi)部外設(shè)和外部接口,fpgaWare庫可通過自動(dòng)處理向用戶提供。
操作系統(tǒng)
BSE公司首選的是自己的pKernel實(shí)時(shí)操作系統(tǒng),pKernel提供POSIX操作,以及上網(wǎng)應(yīng)用的開發(fā)環(huán)境。它集成了TCP/IP網(wǎng)絡(luò)協(xié)議和Apache Web server嵌入式版本。第二個(gè)選用的操作系統(tǒng)是Linux嵌入式版本。ipEngine上裝有Linux全部內(nèi)核和網(wǎng)絡(luò)實(shí)用程序,但節(jié)省了幾百兆的硬盤,用起來還是方便的。除上述Linux內(nèi)核和實(shí)用程序外,ipEngine的板上閃存還裝有Apache Web server,Java虛擬機(jī)等,存儲(chǔ)空間最后還有剩余。
BSE能提供嵌入式Linux和pKernel環(huán)境下的開發(fā)工具套件。還有開發(fā)者立即可用的硬件和軟件,它們有:ipEngine板、電源、PowerPC成套交叉編譯工具、Linux或pKernel、機(jī)箱、文件和技術(shù)支持等。
評論