引 言
在工業(yè)生產的很多領域都需要對生產過程進行監(jiān)控管理,因此以A/D轉換器為核心的數(shù)據(jù)采集系統(tǒng)必不可少。為了提高監(jiān)控系統(tǒng)的準確性與可靠性,數(shù)據(jù)采集卡可選用∑一△型高分辨率的A/D轉換器。而控制器局域網(wǎng)(CAN)能有效支持具有高安全級的分布式實時控制,憑借其在噪聲環(huán)境中的可靠性及其故障狀態(tài)檢測,以及從故障狀態(tài)恢復的能力被廣泛應用于工業(yè)控制等領域。本文設計了一種關于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)的復位開關,系統(tǒng)原理圖如圖1所示。雙通道O~5 V的模擬信號,經過信號調理電路轉換為適合ADC采樣的電壓信號,被2個24位精度的低功耗A/D轉換器ADSl251采樣;所采樣的數(shù)據(jù)經過LPC2292的處理后存入擴展的SRAM靜態(tài)存儲器(Cypress公司的CY7C1061AV33)當中,再通過ARM內嵌的2個CAN控制器控制2路CTM8231(通用CAN隔離收發(fā)器)進行數(shù)據(jù)傳輸。其中,CP2102是ARM中UART與USB端口的橋接芯片,它將USB口模擬為串口,可在PC機上方便地對LPC2292進行上電之前的Flash擦寫等操作。
2 信號調理電路
其中一路通道的信號調理電路如圖2所示。ADSl251是24位低功耗、寬動態(tài)范圍、高信噪比的deIta—sigma型A/D轉換器。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的外部信號轉變?yōu)橐?.096~+4.096 V的信號進入ADSl251的差分輸入端。
3 CAN通信傳輸電路
CAN相關電路如圖3所示。LPC2292中雖然內嵌CAN控制器,但是必須與CAN收發(fā)器連接才能具備收發(fā)功能,在以往的設計中ARM和CAN收發(fā)器之間通常需要加入DC-DC電源隔離模塊和高速光電耦合器組成的隔離電路,以確保在CAN總線遭受嚴重的干擾時控制器能夠正常工作。然而考慮到復雜度、系統(tǒng)集成等因素,本設計中利用CTM8231接口芯片來實現(xiàn)帶隔離的CAN收發(fā)電路。它將LPC2292中內建的CAN控制器邏輯電平轉換為CAN總線的差分電平,實現(xiàn)起來非常簡單而且有高抗電磁干擾性;每一路獨立的CAN總線接口均配上120Ω的可跨接的終端匹配電阻,同時在印制板上留有可另接一其他阻值電阻的接口,以便在調試和使用過程中進行終端電阻的調整,由撥碼開關選擇。CAN總線上有數(shù)據(jù)傳輸時,用發(fā)光二極管閃爍指示。
4 軟件設計
4.1 A/D轉換程序設計
整個A/D轉換的時間需要384個CLK時鐘周期,ADsl251的工作時序如圖4所示。ADS1251的輸出信號DOUT/DRDY是在兩種工作模式下轉換的:第一種模式是DRDY(需要36個CLK時鐘周期),它表明新的數(shù)據(jù)已經加載到數(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轉換器的部分程序如下:
4.2 CAN控制器程序設計
CAN控制器的初始化流程是:首先將ARM中CAN控制器相關的硬件和連接的引腳使能,并對CAN控制器進行復位操作,設置CAN總線的通信波特率;接著是中斷處理的初始化,然后配置驗收過濾器(即對接收標識符的查詢),最后是初始化CAN的工作模式。初始化CAN控制器之后就可以進行數(shù)據(jù)的發(fā)送與中斷接收操作了。
CAN控制器的部分程序如下:
結 語
本文所設計的系統(tǒng)目前已經投入工業(yè)中實際使用,其運行性能穩(wěn)定,信噪比在93 dB以上,采樣精度為19~22位。由于LPC2292中內置了RTC實時時鐘,所以本系統(tǒng)還可以添加實時控制的功能;也可以利用ARM剩下的I/0口等資源,輔以DC-DC電源模塊、驅動芯片、繼電器開關、光耦等元件實現(xiàn)多路可選相互隔離的穩(wěn)定電源輸出功能,作為工業(yè)相關領域的供電設備,以而可使系統(tǒng)的應用更加廣泛,功能更為豐富。