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