引言 在工業(yè)生產(chǎn)的很多領域都需要對生產(chǎn)過程進行監(jiān)控管理,因此以A/D轉(zhuǎn)換器為核心的數(shù)據(jù)采集系統(tǒng)必不可少。為了提高監(jiān)控系統(tǒng)的準確性與可靠性,數(shù)據(jù)采集卡可選用∑一△型高分辨率的A/D轉(zhuǎn)換器。而控制器局域網(wǎng)(CAN)能有效支持具有高安全級的分布式實時控制,憑借其在噪聲環(huán)境中的可靠性及其故障狀態(tài)檢測,以及從故障狀態(tài)恢復的能力被廣泛應用于工業(yè)控制等領域。本文設計了一種關(guān)于CAN總線的雙通道高精度采集系統(tǒng),提高了工業(yè)控制中的信號采集處理以及傳輸抗干擾能力。 1 系統(tǒng)原理 系統(tǒng)選用Philips公司的LPC2292(支持實時仿真和跟蹤的32位ARM7TDMI—S CPU的微控制器)作為主芯片,功耗極低,具有高速Flash存儲器、多個32位定時器、2路CAN以及多達9個外部中斷,特別適用于工業(yè)控制等。 Maxim公司的MAX811作為系統(tǒng)的復位開關(guān),系統(tǒng)原理圖如圖1所示。雙通道O~5 V的模擬信號,經(jīng)過信號調(diào)理電路轉(zhuǎn)換為適合ADC采樣的電壓信號,被2個24位精度的低功耗A/D轉(zhuǎn)換器ADSl251采樣;所采樣的數(shù)據(jù)經(jīng)過 LPC2292的處理后存入擴展的SRAM靜態(tài)存儲器(Cypress公司的CY7C1061AV33)當中,再通過ARM內(nèi)嵌的2個CAN控制器控制2 路CTM8231(通用CAN隔離收發(fā)器)進行數(shù)據(jù)傳輸。其中,CP2102是ARM中UART與USB端口的橋接芯片,它將USB口模擬為串口,可在 PC機上方便地對LPC2292進行上電之前的Flash擦寫等操作。 2 信號調(diào)理電路 其中一路通道的信號調(diào)理電路如圖2所示。ADSl251是24位低功耗、寬動態(tài)范圍、高信噪比的deIta—sigma型A/D轉(zhuǎn)換器。ADSl251為差分模擬輸入,當參考輸入電壓等于+4.096 V時,雙端輸入電壓為一4.096~+4.096 V。本設計利用LM4040AIM3—4.1穩(wěn)壓管為ADC提供+4.096 V參考電壓,系統(tǒng)時鐘信號和串行時鐘信號都由ARM提供。為了更好地發(fā)揮ADC的性能,最重要的是信號的滿量程輸入,因此在ADC雙端輸入的前端,采用軌到軌運算放大器0PA4350設計了一個變換電平電路。首先外部信號進入一個射隨放大器,然后通過2個運算放大器進行電平移位,讓0~5 V的外部信號轉(zhuǎn)變?yōu)橐?.096~+4.096 V的信號進入ADSl251的差分輸入端。 3 CAN通信傳輸電路 CAN 相關(guān)電路如圖3所示。LPC2292中雖然內(nèi)嵌CAN控制器,但是必須與CAN收發(fā)器連接才能具備收發(fā)功能,在以往的設計中ARM和CAN收發(fā)器之間通常需要加入DC-DC電源隔離模塊和高速光電耦合器組成的隔離電路,以確保在CAN總線遭受嚴重的干擾時控制器能夠正常工作。然而考慮到復雜度、系統(tǒng)集成等因素,本設計中利用CTM8231接口芯片來實現(xiàn)帶隔離的CAN收發(fā)電路。它將LPC2292中內(nèi)建的CAN控制器邏輯電平轉(zhuǎn)換為CAN總線的差分電平,實現(xiàn)起來非常簡單而且有高抗電磁干擾性;每一路獨立的CAN總線接口均配上120Ω的可跨接的終端匹配電阻,同時在印制板上留有可另接一其他阻值電阻的接口,以便在調(diào)試和使用過程中進行終端電阻的調(diào)整,由撥碼開關(guān)選擇。CAN總線上有數(shù)據(jù)傳輸時,用發(fā)光二極管閃爍指示。 4 軟件設計 4.1 A/D轉(zhuǎn)換程序設計 整個A/D轉(zhuǎn)換的時間需要384個CLK時鐘周期,ADsl251的工作時序如圖4所示。ADS1251的輸出信號DOUT/DRDY是在兩種工作模式下轉(zhuǎn)換的:第一種模式是DRDY(需要36個CLK時鐘周期),它表明新的數(shù)據(jù)已經(jīng)加載到數(shù)據(jù)輸出寄存器中,可以進行讀操作;第二種模式是DOUT(需要 384個CLK時鐘周期),它將數(shù)據(jù)以串行方式送到數(shù)據(jù)輸出寄存器DOR。DRDY模式持續(xù)t4(24個CLK時鐘周期)、t2(6個CLK時鐘周期)、 t2(6個CLK時鐘周期)時間,然后在t3的下降沿進入DOUT模式,數(shù)據(jù)在t7之后開始輸出。而LPC2292在t6時間后為ADS1251提供 SCLK時鐘,并在SCLK的上升沿鎖存數(shù)據(jù),為了接收到有效數(shù)據(jù),DOR數(shù)據(jù)輸出寄存器必須在DOUT/DRDY變回到DRDY模式之前將數(shù)據(jù)讀出。 A/D轉(zhuǎn)換器的部分程序如下: 4.2 CAN控制器程序設計 CAN控制器的初始化流程是:首先將ARM中CAN控制器相關(guān)的硬件和連接的引腳使能,并對CAN控制器進行復位操作,設置CAN總線的通信波特率;接著是中斷處理的初始化,然后配置驗收過濾器(即對接收標識符的查詢),最后是初始化CAN的工作模式。初始化CAN控制器之后就可以進行數(shù)據(jù)的發(fā)送與中斷接收操作了。 CAN控制器的部分程序如下: 結(jié)語 本文所設計的系統(tǒng)目前已經(jīng)投入工業(yè)中實際使用,其運行性能穩(wěn)定,信噪比在93 dB以上,采樣精度為19~22位。由于LPC2292中內(nèi)置了RTC實時時鐘,所以本系統(tǒng)還可以添加實時控制的功能;也可以利用ARM剩下的I/0口等資源,輔以DC-DC電源模塊、驅(qū)動芯片、繼電器開關(guān)、光耦等元件實現(xiàn)多路可選相互隔離的穩(wěn)定電源輸出功能,作為工業(yè)相關(guān)領域的供電設備,以而可使系統(tǒng)的應用更加廣泛,功能更為豐富。 參考文獻 1. 饒運濤.鄒繼軍 現(xiàn)場總線CAN原理與應用技術(shù) 2003 2. 吳明暉 基于ARM的嵌入式系統(tǒng)開發(fā)與應用 2004 3. 沈紅衛(wèi) 基于單片機的智能系統(tǒng)設計與實現(xiàn) 2005 4. 周立功 ARM 嵌入式系統(tǒng)基礎教程 2005 5. Furber Steve.Furber Stephen B ARM System?on?Chip Architecture 2000 作者:四川大學 曾涌泉 王勇 植涌 來源:單片機與嵌入式系統(tǒng) 2008 (11) |