CPLD在遠程多路數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
摘要:采用VHDL語言和圖形輸入設(shè)計方法,給出了用CPLD在遠程多路數(shù)據(jù)采集系統(tǒng)中實現(xiàn)地址譯碼、串口擴展、模塊測試、模數(shù)轉(zhuǎn)換以及高位數(shù)據(jù)處理等功能的具體方法,同時簡要介紹了遠程多路數(shù)據(jù)采集系統(tǒng)的工作原理及軟、硬件框架。
關(guān)鍵詞:CPLD;單片機;譯碼;RS-232;VHDL; EPM7256SQC208
CPLD(Complex Programmable Logic Device?復(fù)雜可編程邏輯器件)是在傳統(tǒng)的PAL、GAL基礎(chǔ)上發(fā)展起來的。目前,CPLD已在通訊、DSP及微機系統(tǒng)中有著非常廣泛的應(yīng)用,它不僅可使設(shè)計的產(chǎn)品小型化、集成化和穩(wěn)定可靠,而且還具有在系統(tǒng)或在芯片直接編程的能力,從而使電子系統(tǒng)的設(shè)計、開發(fā)、更新與維護變得更為方便,更便于裝配和批量生產(chǎn)。因此,利用CPLD可大大縮短設(shè)計周期,減少設(shè)計費用,降低設(shè)計風(fēng)險。遠程多路數(shù)據(jù)采集系統(tǒng),不但需要較多的片選信號,而且模塊測試所占用的I/O口資源也較多,用一般的芯片較難實現(xiàn),而用CPLD/FPGA則不但可以較好地實現(xiàn)其功能,而且還可大大提高設(shè)計能力和設(shè)計效率。
1 系統(tǒng)組成思路
本遠程多路數(shù)據(jù)采集系統(tǒng)以Altera公司7000S系列CPLD產(chǎn)品中的EPM7256SQC208-10為控制核心,并由A/D(模擬量采集)模塊、DI(數(shù)字量采集)模塊、D/A(模擬量輸出)模塊、DO(數(shù)字量輸出)模塊、MCU模塊、電源模塊及I/O接口模塊組成,其系統(tǒng)組成原理圖如圖1所示。
圖中,MCU模塊主要由CAN總線模塊、RS-485模塊、RS-232模塊、時鐘和復(fù)位模塊、CPLD模塊等組成,MCU模塊的電路原理圖如圖2所示。該遠程多路數(shù)據(jù)采集系統(tǒng)的I/O接口板共有14個插槽,其中12個插槽可實現(xiàn)A/D模塊、D/A模塊、DI模塊、DO模塊等四種模塊的任意配置。因此,單個數(shù)據(jù)采集系統(tǒng)最大可采集192路模擬量或192路數(shù)字量,也可以提供最大96路模擬量輸出或192路數(shù)字量輸出。多個數(shù)據(jù)采集系統(tǒng)也可以根據(jù)實際和現(xiàn)場需要通過CAN總線、RS-485總線或RS-232總線進行連接,從而實現(xiàn)上百個或上千個采集頻率不高的遠程數(shù)據(jù)采集。該遠程多路數(shù)據(jù)采集系統(tǒng)可采集0~5V的電壓信號和4~20mA的電流信號,數(shù)字量輸出電平為12V,可直接控制12V的繼電器。
顯而易見,傳統(tǒng)的設(shè)計思路不但要使用大量的外圍芯片,而且需要主處理器直接控制各種采集模塊和控制模塊,并完成各模塊和通道的自檢。因此,這種解決方案需要占用主處理器大量的I/O資源和處理時間。然而,一般處理器的 I/O資源極其有限,而且又要求大量的匯編軟件配合,這就使設(shè)計移植變得比較困難;此外,由于I/O的頻繁操作也不利于系統(tǒng)調(diào)度軟件的設(shè)計和其他軟件模塊的實時執(zhí)行,因而在現(xiàn)場更難以組成分布式控制管理系統(tǒng)(FCS)??梢?,如果采用傳統(tǒng)的設(shè)計方法,不但使系統(tǒng)設(shè)計較為龐大,而且開發(fā)成本高、設(shè)計周期長、設(shè)計效率低。所以,傳統(tǒng)的設(shè)計思路在遠程多路數(shù)據(jù)采集系統(tǒng)中是不可取的,而使用CPLD或FPGA器件則可以較好地解決上述問題。
2?。茫校蹋脑O(shè)計
2.1 頂層軟件設(shè)計
上述功能可在MAX+PLUSII 9.5環(huán)境下設(shè)計完成。該系統(tǒng)的軟件設(shè)計采用“自頂向下”、“軟硬兼施”的設(shè)計方法,主要設(shè)計了五大功能模塊,分別是DECODE?地址譯碼?模塊、AD?模擬量輸入數(shù)據(jù)處理?模塊。DATA?數(shù)據(jù)處理?模塊、TEST?模塊自動識別?模塊、UART?串口擴展?模塊,其設(shè)計原理圖如圖3所示。其中譯碼模塊用于完成處理器對CPLD片內(nèi)和片外模塊的尋址和譯碼,這是一種簡單的譯碼邏輯和觸發(fā)電路,共產(chǎn)生34個片選信號。AD模塊用于完成對10位A/D 轉(zhuǎn)換芯片TLV1578高位D8、D9的處理以及實現(xiàn)D9/A1、D8/A0的分時復(fù)用,是一般組合邏輯電路和數(shù)據(jù)緩沖及鎖存電路。TEST模塊用于完成對各種模塊的自動識別,包括識別某一插槽有無模塊以及具體是何種模塊,該模塊共需處理36個測試信號。DATA模塊用于簡單處理各種數(shù)據(jù),包括數(shù)據(jù)的緩沖、鎖存以及驅(qū)動放大等。由于該系統(tǒng)中單片機的串口被RS-485占用,因此,UART模塊一般用于實現(xiàn)RS-232串口擴展。
2.2 底層軟件設(shè)計
底層軟件設(shè)計是基于頂層軟件中五大功能模塊而設(shè)計的,其中UART模塊設(shè)計采用VHDL語言描述完成,而DECODE模塊、TEST模塊、DATA模塊和AD模塊由于原理和時序相對簡單,則采用圖形輸入設(shè)計方法,并通過編譯、綜合、仿真后生成底層設(shè)計文件(即生成相應(yīng)的設(shè)計符號*.sym),以供頂層設(shè)計調(diào)用。
為了突出重點,這里只簡單介紹UART模塊的底層設(shè)計。UART模塊是一個8位全雙工異步接收發(fā)送器模塊,該模塊主要由四個子模塊構(gòu)成,即并入串出模塊、串入并出模塊、接口模塊、時鐘產(chǎn)生模塊。該UART模塊的主要功能是:從計算機接收8位并行數(shù)據(jù)并發(fā)送到串口輸出;二是從串口讀入外部串行數(shù)據(jù)并將其轉(zhuǎn)換為8位并行數(shù)據(jù)送到計算機。
并入串出操作由輸入信號的高電平觸發(fā)的,串行輸出結(jié)束后,結(jié)束信號變?yōu)椤啊?。而串入并出操作則由串行輸入的下降沿觸發(fā),且串行輸入要保持低電平持續(xù)半個周期以上。此半周期時鐘同時可作為輸入移位時鐘,8位數(shù)據(jù)輸入結(jié)束后,結(jié)束信號變?yōu)椤啊⒕S持到下次數(shù)據(jù)輸入。數(shù)據(jù)口是8位雙向三態(tài)I/O口。
時鐘產(chǎn)生模塊產(chǎn)生的時鐘用于并入串出模塊和串入并出模塊。在串入并出操作中,工作時鐘只有高于移位時鐘,才能檢測是否開始一次新的輸入過程,因此,工作時鐘是移位時鐘的4倍。其時鐘產(chǎn)生模塊的VHDL源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;?
ENTITY clkgen IS
PORT (iclk,oclk:BUFFER STD_LOGIC);?
END clkgen;
ARCHITECTURE clk OF clkgen IS
SIGNAL iclk_lag,oclk_lag:TIME:=0 ns;
SIGNAL temp_iclk,temp_oclk:STD_LOGIC;
BEGIN
PROCESS(temp_iclk,temp_oclk)
BEGIN
temp_iclk<=NOT temp_iclk AFTER iclk_lag/4;
temp_oclk<=NOT temp_oclk AFTER oclk_ lag;
END PROCESS;
iclk<=temp_iclk;
oclk<=temp_oclk;
END clk;
限于篇幅,UART模塊的其它底層模塊設(shè)計這里不作一一介紹。
圖3
3 系統(tǒng)仿真和驗證
軟件設(shè)計完成后,可根據(jù)Protel99SE中的電路原理圖進行引腳鎖定,然后啟動編譯程序來編譯項目。編譯器將進行錯誤檢查、網(wǎng)表提取、邏輯綜合和器件適配,然后進行行為仿真、功能仿真和時序仿真。最后采用并口下載電纜ByteBlaster并通過JTAG編程方式將top.pof文件下載到EPM7256SQC208-10芯片中,從而生成硬件電路。4 結(jié)束語
為了將該遠程多路數(shù)據(jù)采集系統(tǒng)應(yīng)用到污水處理自動控制系統(tǒng)中,筆者設(shè)計了以計算機為核心的分布式控制管理系統(tǒng)(FCS),從而高性價比地實現(xiàn)了污水處理設(shè)備的自動化控制和信息化管理,穩(wěn)定可靠地發(fā)揮了污水處理設(shè)備的作用,實現(xiàn)了現(xiàn)場數(shù)據(jù)信息傳遞的完全數(shù)字化,同時保證了數(shù)據(jù)采集的準確性和控制功能的可靠性。
借助先進的MAX+PLUSII EDA設(shè)計軟件和高可靠性的CPLD/FPGA芯片開發(fā)的這種分布式控制管理系統(tǒng),不但可大大節(jié)省電路開發(fā)費用,而且能提高設(shè)計效率,同時還可有效實現(xiàn)電路的數(shù)字化與微型化。