新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于CAN的多通道數(shù)據(jù)采集系統(tǒng)的設計

        基于CAN的多通道數(shù)據(jù)采集系統(tǒng)的設計

        作者: 時間:2016-12-20 來源:網(wǎng)絡 收藏

        系統(tǒng)的校正分為硬件校正和軟件校正,硬件校正是在設計電路時完成的,主要包括選用高可靠性的電子元器件、減少電路設計時的電磁干擾、選用高質(zhì)量穩(wěn)壓電源等。如在放大電路中選用高精度小溫漂電阻,A/D芯片的工作電源及參考電壓上加濾波電容,運算放大器的電源盡量采用雙電源供電減小其零點漂移等,這些都是減小其非線性關(guān)系的方法,但這些方法只是在硬件上減小了其非線性關(guān)系但并不能使其消除。單憑硬件校正是無法滿足系統(tǒng)對誤差的要求,所以必須在軟件上對采集得到的數(shù)據(jù)進行校正。

        考慮整個動態(tài)測試系統(tǒng)是一個實時的動態(tài)測試過程,如果數(shù)據(jù)的實時性達不到要求會影響整個測試過程,甚至使整項測試失敗,所以在選擇校正算法時要考慮其復雜性及計算量的大小,有些算法精度較高但其計算量大,實現(xiàn)起來比較復雜,并不適合本系統(tǒng)應用,如BP人工神經(jīng)網(wǎng)絡和函數(shù)逼近算法等。為此必須尋找一種既滿足系統(tǒng)誤差要求、計算量又小的方法對其進行校正。

        設實際物理量y”與微處理器獲得的數(shù)字量戈之差為δ,即8=y-x,x與δ間的關(guān)系曲線(虛擬曲線)如圖3所示。xi與xi+1為通過高精度萬用表實際標定的點,其對應的誤差分別為δi和δi+1,Xa為介于xi與Xi+1之間的某次采樣值,該點對應的實際誤差為δa,在滿足系統(tǒng)誤差要求的條件下如何通過簡便的方法獲得δa的近似值δ”是該系統(tǒng)進行非線性誤差標定的初衷。如圖3所示,以標定的相鄰兩點做回歸直線來代替該區(qū)間上的曲線是最簡單的方法,在該曲線連續(xù)的條件

        點擊放大圖片

        點擊放大圖片

        圖3數(shù)字量與其對應誤差關(guān)系曲線

        進行系統(tǒng)標定及校準的步驟如下:

        ①根據(jù)實際信號范圍,將待采集信號的電壓范圍分成N段后計算出應該標定的點;

        ②采用高精度低波紋的穩(wěn)壓源和精密電位器調(diào)出標定點電壓的近似值后接入調(diào)理電路輸入端;

        ③用高精度萬用表測量標定點的實際值,同時取A/D轉(zhuǎn)換100次數(shù)據(jù)的平均值代表該點A/D的采樣值;

        ④將A/D采樣換算值和真實值與A/D采樣換算值之差分別填寫到相應的表格中;

        點擊放大圖片

        4 CAN總線通信設計

        4.1 系統(tǒng)中CAN總線結(jié)構(gòu)

        數(shù)據(jù)采集系統(tǒng)是整個動態(tài)測試系統(tǒng)中的一個分系統(tǒng),同時動態(tài)測試系統(tǒng)中還有其他分系統(tǒng),各個系統(tǒng)之間要進行實時通信。所以在選擇系統(tǒng)間傳輸總線的時候要考慮各系統(tǒng)的組網(wǎng)、數(shù)據(jù)傳輸速率以及總線的抗干擾性等問題。USB是一種高速的數(shù)據(jù)傳輸方式,但其組網(wǎng)困難、通信協(xié)議復雜,使得其在工業(yè)控制當中應用并不成熟。

        CAN總線是一種支持分布式控制和實時控制的串行通信網(wǎng)絡,它適用于工業(yè)控制、汽車電子等方面,具有通信速率高、抗干擾性強、接口靈活、性價比高等優(yōu)點,是應用最成功的現(xiàn)場總線之一。對于本系統(tǒng)選用CAN總線建立通信網(wǎng)絡無疑是較好的選擇。

        IPC2292中自帶CAN控制器,為了增強CAN總線的抗干擾性,在數(shù)據(jù)采集系統(tǒng)節(jié)點上增加一個CTM1050T高速CAN隔離收發(fā)器,該芯片具有DC2500V的隔離功能及ESD保護作用,硬件連接如圖4所示。

        CAN控制器在硬件上實現(xiàn)了CAN物理層和數(shù)據(jù)鏈路層的大部分功能,用戶只需對CAN控制器進行正確初始化,并對總線上的數(shù)據(jù)進行收發(fā)操作即可實現(xiàn)不同節(jié)點間的通信;CAN總線支持多主節(jié)點,節(jié)點之間通過總線仲裁的方式獲得總線的控制權(quán),其完善的處理機制保證了其在惡劣環(huán)境下數(shù)據(jù)傳輸?shù)目煽啃浴?P align=center>點擊放大圖片

        圖4 IPC2292組網(wǎng)詳細接線

        4.2 CAN通信軟件設計

        要實現(xiàn)CAN的正常通信則必須按照其通信協(xié)議嚴格規(guī)范設計程序。完成傳輸層有關(guān)功能,包括幀控制、總線仲裁、消息過濾、出錯警告及故障隔離等。需要完成以下幾個方面:

        ①CAN控制器初始化。CAN控制器的初始化主要包括設置波特率寄存器、錯誤警告寄存器、中斷寄存器等,只有正確配置好這些寄存器,CAN控制器才能工作在正常的狀態(tài)下。要使CAN控制器對接收到的報文具有全局驗收過濾的功能,還必須對驗收過濾器進行設置,建立標識符LUT表格填寫到相應的RAM中。值得注意的是,在完成這些配置之前應先將控制器進行軟件復位,并對CAN控制器進行硬件使能、對CAN的引腳進行正確配置。CAN的初始化是在主程序中完成,其流程如圖5所示

        點擊放大圖片

        圖5 CAN初始化流程

        ②發(fā)送報文。在完成CAN控制器的初始化之后就可以進行報文發(fā)送,本系統(tǒng)為每個信號通道分配一個標識符,A/D采集得到的數(shù)據(jù)通過誤差標定后被寫入到事先分配好的內(nèi)存緩沖區(qū)中,同時查看控制器的3個發(fā)送郵箱,并把緩沖區(qū)數(shù)據(jù)寫入到判斷為空的郵箱數(shù)據(jù)寄存器中,添加該幀數(shù)據(jù)的標識碼、幀格式、數(shù)據(jù)長度等信息后啟動發(fā)送命令,當該控制器得到總線控制權(quán)時就會把數(shù)據(jù)發(fā)送到總線上。

        ③接收報文。當CAN控制器的接收端接收到一個完整的標識符時,它將通知驗收過濾器搜索RAM中的表格,以決定接收或放棄這一幀信息。CAN控制器若采用中斷的方式接收總線上的報文,在報文通過驗收過濾時,CAN控制器將產(chǎn)生接收中斷,由CAN接收中斷服務程序完成對該報文的讀取。

        5 系統(tǒng)軟件結(jié)構(gòu)設計

        系統(tǒng)上電后,待數(shù)據(jù)采集系統(tǒng)完成各模塊的初始化后,下位機的控制權(quán)將交給上位機。上位機首先命令數(shù)據(jù)采集系統(tǒng)進行自檢,查看其能否正常工作以及通信是否正常。自檢完成之后,上位機根據(jù)測試項目的要求來對某些傳感器、發(fā)動機電子控制單元輸出信號和電源信號進行循環(huán)采樣,同時數(shù)據(jù)采集系統(tǒng)將根據(jù)上位機命令對某些信號進行立即采樣,或執(zhí)行其他操作。主程序的流程圖如圖6所示。



        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 南溪县| 惠州市| 禹城市| 天气| 亚东县| 陆河县| 苏州市| 曲阜市| 手机| 滨海县| 凌云县| 兴文县| 安塞县| 北辰区| 黄骅市| 斗六市| 高雄市| 贺州市| 武陟县| 永春县| 新绛县| 巫溪县| 仙居县| 裕民县| 六枝特区| 赤水市| 南丹县| 盖州市| 花莲市| 电白县| 额敏县| 兴山县| 富平县| 黄山市| 泸西县| 沙田区| 盘山县| 随州市| 桂阳县| 都兰县| 双柏县|