摘 要: 介紹了基于CAN總線通信協(xié)議的多路高精度模擬量采集電路的軟硬件設(shè)計(jì)與實(shí)現(xiàn)。采用了A/D轉(zhuǎn)換芯片AD1674,通過軟件分時(shí)的方法采集24路12位模擬量信號(hào),特別適用于航天器地面測(cè)試;同時(shí)模擬量采集電路使用了CAN總線通信方式,實(shí)現(xiàn)了采集卡的靈活控制和數(shù)據(jù)交換。軟件采用了C語言編寫,提高了開發(fā)的效率。
關(guān)鍵詞: 單片機(jī);模擬量采集;CAN總線;AD1674
0 引言
數(shù)據(jù)采集技術(shù)是電子學(xué)科的重要分支,是傳感器、信號(hào)獲取、存儲(chǔ)與處理等相關(guān)技術(shù)結(jié)合的產(chǎn)物。隨著我國(guó)工業(yè)水平的提高,現(xiàn)場(chǎng)的數(shù)據(jù)采集顯得越來越重要,許多被測(cè)參數(shù),如溫度、流量、壓力、液位、速度等都是連續(xù)變化的模擬量,對(duì)其測(cè)量精度、采集速度、數(shù)據(jù)穩(wěn)定性和遠(yuǎn)程通信質(zhì)量的要求也越來越高。一個(gè)良好的數(shù)據(jù)采集卡能夠在復(fù)雜環(huán)境下為數(shù)據(jù)采集帶來很多便利。同樣,在航天領(lǐng)域,模擬整星環(huán)境對(duì)航天器有效載荷輸出的模擬量進(jìn)行實(shí)時(shí)采集,是航天器地面檢測(cè)中的一項(xiàng)重要任務(wù)。
本采集卡采用12位的A/D轉(zhuǎn)換芯片AD1674,可以滿足一些對(duì)采集精度要求較高的場(chǎng)合。在通信方面,本采集卡使用CAN總線進(jìn)行采集數(shù)據(jù)的傳輸,CAN控制器選用SJA1000[1]。CAN總線具有良好的抗干擾能力,能夠滿足工業(yè)現(xiàn)場(chǎng)的需求,而且應(yīng)用成本較低,該總線應(yīng)用廣泛,簡(jiǎn)單方便,能很好地實(shí)現(xiàn)系統(tǒng)的集散控制。本文分別從硬件和軟件兩方面對(duì)系統(tǒng)設(shè)計(jì)進(jìn)行詳細(xì)的介紹。硬件方面對(duì)主要芯片的應(yīng)用電路和抗干擾措施作簡(jiǎn)單介紹;軟件方面則重點(diǎn)介紹模擬量數(shù)據(jù)采集模塊和模擬量數(shù)據(jù)上傳模塊。
1 系統(tǒng)硬件設(shè)計(jì)和抗干擾措施
本模擬量采集卡為24路12位模擬量采集系統(tǒng),使用基于SJA1000的CAN總線通信方式,可以通過撥碼開關(guān)來選擇本卡地址,采集通道的選擇是通過軟件控制模擬開關(guān)完成的[2]。
本文設(shè)計(jì)的模擬量遙測(cè)電路有4部分組成:CAN總線接口協(xié)議電路、單片機(jī)AT89C51電路、模擬量采集電路(芯片為AD1674)和模擬量開關(guān)電路。如圖1所示。
5位撥碼開關(guān)設(shè)定電路板的板號(hào),軟件設(shè)定相應(yīng)的通信協(xié)議。單片機(jī)通過CAN總線將模擬量采集數(shù)據(jù)傳送給上位機(jī)做處理。模擬量通過模擬開關(guān)AD7501選擇24路模擬量中的一路,兩片AD7501完成8路模擬量的差分輸入,共需6片AD7501。模擬量經(jīng)過放大器AD620緩沖放大后再輸入到模擬量采集芯片AD1674[3]。
1.1 儀表放大器AD620的電路設(shè)計(jì)
AD620是一種只用一個(gè)外部電阻就能設(shè)置放大倍數(shù)為0~1 000的低功耗、高精度儀表放大器。它體積小,采用8管腳的SOIC或DIP封裝;供電電源范圍為±2.3 V~±18 V;最大供電電流僅為1.3 mA。本電路設(shè)計(jì)采用±12 V電源供電,設(shè)計(jì)為2倍放大倍數(shù)。AD620外圍電路如圖2所示。
AD620儀表放大器電路的放大倍數(shù)與電阻值的關(guān)系如下:
選取RG=49.4 Ω的精密電阻,放大器放大倍數(shù)G=2。輸入0~5 V的模擬量,對(duì)應(yīng)輸出為0~10 V。
1.2 模擬量/數(shù)字量轉(zhuǎn)換芯片AD1674的電路設(shè)計(jì)
AD1674是一種12位帶并行微機(jī)接口的逐次逼近型模/數(shù)轉(zhuǎn)換芯片。該芯片內(nèi)部自帶采樣保持器(SHA)、10 V基準(zhǔn)電壓源、時(shí)鐘源以及可與微處理器總線直接接口的暫存/三態(tài)輸出緩沖器。其基本特點(diǎn)和參數(shù)如下:
轉(zhuǎn)換時(shí)間為10 μs;非線性誤差為±1/2 LSB;滿量程校準(zhǔn)誤差為0.125%;內(nèi)有+10 V基準(zhǔn)電源;單極或雙極電壓輸入范圍為0 V~ 10 V,0 V~20 V,±5 V,±10 V;利用不同的控制信號(hào)可實(shí)現(xiàn)8位或12位轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)有兩種讀出方式:12位一次輸出和8位、4位分兩次輸出。設(shè)有三態(tài)輸出緩沖器,可直接與8位或16位的微處理器接口;采用雙電源供電:模擬部分為±12 V/±15 V,數(shù)字部分為+5 V。
本電路選擇AD1674的工作方式為:?jiǎn)螛O性0 V~10 V輸入;數(shù)據(jù)讀出方式為8位、4位兩次讀出,如圖3連接,當(dāng)A0=0時(shí),高8位數(shù)據(jù)輸出;當(dāng)A0=1時(shí),低4位輸出[4]。
1.3 CAN總線的電路設(shè)計(jì)
模擬量采集的數(shù)據(jù)是靠CAN總線傳輸給上位機(jī)的,CAN總線最初由德國(guó)BOSCH公司推出,用于汽車內(nèi)部測(cè)量與執(zhí)行部件之間的數(shù)據(jù)通信。能適應(yīng)工業(yè)現(xiàn)場(chǎng)惡劣的環(huán)境。
CAN總線協(xié)議芯片選用PHILIPS公司的SJA1000,該協(xié)議芯片為符合CAN2.0B協(xié)議的總線控制器,它是應(yīng)用于汽車和一般工業(yè)環(huán)境的獨(dú)立CAN總線控制器(具有完成CAN通信協(xié)議所要求的全部特性)。經(jīng)過簡(jiǎn)單總線連接的SJA1000可完成CAN總線的物理層和數(shù)據(jù)鏈路層的所有功能。其硬件與軟件設(shè)計(jì)可兼容基本CAN模式(BasicCAN)和新增加的增強(qiáng)CAN模式(PeliCAN)CAN2.0B協(xié)議。本電路設(shè)計(jì)中選用CAN總線的BasicCAN模式,波特率設(shè)置為125 kb/s,CAN總線收發(fā)芯片選用的是帶光耦隔離的CTM1050T,最大程度降低傳輸線上的干擾,提高數(shù)據(jù)傳輸?shù)目煽啃訹5]。SJA1000電路連接圖如圖4所示。
1.4 硬件濾波設(shè)計(jì)
在24路模擬量通道的每一個(gè)通道的正、負(fù)線輸入端之間都加上了RC濾波網(wǎng)絡(luò)。選用R=1 kΩ,C=0.1 μF,有效地抑制尖峰脈沖及部分噪聲的干擾,從而使通道的信噪比大大提高。對(duì)數(shù)字地和模擬地在適當(dāng)?shù)奈恢枚探?,可以有效防止地線干擾,保證采集電路正常工作。
2 軟件設(shè)計(jì)
在模擬量遙測(cè)電路的軟件設(shè)計(jì)中,最重要的部分為模擬量數(shù)據(jù)采集模塊和模擬量數(shù)據(jù)上傳模塊。其他程序均為處理器最小系統(tǒng)初始化的常用指令。
模擬量遙測(cè)電路的軟件流程圖如圖5所示。
程序開始先初始化單片機(jī)最小系統(tǒng),初始化CAN總線控制器SJA1000,然后開外中斷INT0,之后程序進(jìn)入循環(huán)采集24路通道模擬量的過程中,等待外中斷的來臨,通過CAN總線發(fā)送模擬量采集數(shù)據(jù)。
2.1 模擬量數(shù)據(jù)采集模塊
在A/D采集過程中,運(yùn)用了軟件濾波方式以提高模擬量信號(hào)的采集精度。具體方法如下:每次選通一個(gè)通道時(shí),先軟件延時(shí)2 ms,等信號(hào)穩(wěn)定后,開通AD1674以查詢的方式開始讀取采集數(shù)據(jù),連續(xù)采集10次,去掉最大值和最小值后,取平均值,然后再關(guān)掉此通道,開下一個(gè)通道,依次類推,24路通道循環(huán)采集。這樣可最大限度地消除電路板本身由電路干擾帶來的影響[6-7]。
2.2 模擬量數(shù)據(jù)上傳模塊
利用CAN總線通信協(xié)議進(jìn)行數(shù)據(jù)的傳輸操作,電路上電后,對(duì)SJA1000進(jìn)行初始化,數(shù)據(jù)傳輸波特率為125 kb/s,用中斷方式,每接收到上位機(jī)一幀數(shù)據(jù)傳送請(qǐng)求信息,就引發(fā)一次微處理器中斷,在中斷服務(wù)程序中讀取該組幀信息并傳送到上位機(jī)界面[8]。
3 驗(yàn)證結(jié)果
此模擬量遙測(cè)電路板已經(jīng)做過全面的測(cè)試,測(cè)試結(jié)果表明:采集模擬量數(shù)據(jù)的精度可以達(dá)到±0.02 V,符合航天器有效載荷對(duì)測(cè)試設(shè)備的要求。目前,此電路板已經(jīng)批量地應(yīng)用在地面測(cè)試設(shè)備中,大大地提高了測(cè)試效率和測(cè)試精度。
4 結(jié)束語
本文介紹了基于AD1674轉(zhuǎn)換芯片和CAN總線傳輸?shù)哪M電路的設(shè)計(jì),對(duì)其硬件和軟件的設(shè)計(jì)作了較為詳細(xì)的闡述,其測(cè)試驗(yàn)證結(jié)果也符合預(yù)期。通過自主研發(fā),整體提升了地面測(cè)試平臺(tái)的性能和測(cè)試精度,提高了對(duì)航天器有效載荷進(jìn)行地面測(cè)試的有效性。
參考文獻(xiàn)
[1] 王毅峰, 李令奇. SJA1000在數(shù)據(jù)采集與控制系統(tǒng)中的應(yīng)用[J]. 微計(jì)算機(jī)信息, 2001,17(4):16-18.
[2] 劉暾東, 柳小鵬, 余齊齊. 高精度模擬量采集卡的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)測(cè)量與控制, 2006,14(11):1575-1577.
[3] 王彪. A/D轉(zhuǎn)換技術(shù)及其在電力生產(chǎn)中的應(yīng)用[J]. 合肥聯(lián)合大學(xué)學(xué)報(bào), 2002,12(3):107-112.
[4] 李相國(guó). 遙測(cè)離散量與模擬量數(shù)據(jù)綜合監(jiān)控系統(tǒng)[J]. 測(cè)控技術(shù), 2011,30(增刊):142-144.
[5] 郝迎吉, 楊華平, 文微. 基于C8051F350的帶有數(shù)據(jù)變送器功能的高精度數(shù)據(jù)采集系統(tǒng)[J]. 儀表技術(shù)與傳感器, 2007(2):58-62.
[6] 聶浩, 許敬旺, 康曉軍, 等. IEEE1394總線接口設(shè)計(jì)[J]. 航天返回與遙感, 2011,32(4):59-67.
[7] 童詩白, 華成英. 模擬電子技術(shù)基礎(chǔ)[M]. 北京:高等教育出版社, 2001.
[8] 鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京:北京航空航天大學(xué)出版社, 2001.