新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 電動助力轉(zhuǎn)向系統(tǒng)(EPS)數(shù)據(jù)采集的實現(xiàn)

電動助力轉(zhuǎn)向系統(tǒng)(EPS)數(shù)據(jù)采集的實現(xiàn)

作者: 時間:2010-04-26 來源:網(wǎng)絡(luò) 收藏

1 前言

  系統(tǒng)已成為現(xiàn)代汽車發(fā)展的必然趨勢。只有精確實時的采集到車輛轉(zhuǎn)角數(shù)據(jù),助力轉(zhuǎn)向系統(tǒng)才能根據(jù)這些數(shù)據(jù)采用各種先進(jìn)的算法來控制助力電機(jī)的轉(zhuǎn)動。所以說,車輛轉(zhuǎn)角數(shù)據(jù)的采集是系統(tǒng)的重要組成部分。此文章詳細(xì)的講述了系統(tǒng)。

2

  系統(tǒng)主要由計算機(jī),A/D轉(zhuǎn)換板,數(shù)字量信號輸入/輸出板,傳感器以及信號處理裝置等組成,基本的結(jié)構(gòu)如圖1所示。試驗臺傳感器所輸出的信號一共有兩種,一種是模擬信號,另外一種是數(shù)字信號。而計算機(jī)只能對數(shù)字量進(jìn)行處理,為了能使計算機(jī)處理或存儲模擬信號,就必須將其轉(zhuǎn)換為數(shù)字量,因此模擬信號的采集主要通過A/D板進(jìn)行轉(zhuǎn)換,然后輸入計算機(jī)中進(jìn)行處理;數(shù)字信號(光電編碼器輸出的脈沖信號)的采集是南數(shù)字信號輸入輸出處理板來完成。

圖1數(shù)據(jù)采集硬件系統(tǒng)

2.1 數(shù)據(jù)采集卡(A/D)-HY-1232A/D板

  HY-1232板是一種IBM-PC XT/AT總線兼容A/D,D/A板,具有32路單端模擬輸入通道,12Bit分辨率,模擬輸入電壓范圍,雙極性為-5V,+5V,單極性為0,+5V。數(shù)據(jù)傳輸方式采用查詢方式和中斷方式,而且可以直接插入到計算機(jī)的任一總線擴(kuò)展槽中,構(gòu)成計算機(jī)數(shù)據(jù)采集的控制系統(tǒng)。HY一1232的A/D轉(zhuǎn)換采用觸發(fā)方式,在程序中首先向該板寫入模擬通道,A/D板將自動對該通道進(jìn)行A/D轉(zhuǎn)換。在程序中讀入A/D完成標(biāo)志位即可判斷轉(zhuǎn)換是否完成。當(dāng)A/D完成位為‘1’時,則A/D轉(zhuǎn)換已完成。

2.2 HY-6160數(shù)字量信號輸入輸出板

  HY-6160板有32個數(shù)字量輸入通道,32個數(shù)字量輸出通道和一個外部事件中斷通道。每個輸入或輸出通道為一組,占用一個地址。數(shù)字量輸入/輸出信號電平與TTL電平兼容。中斷申請信號為TTL電平。數(shù)字量輸出通道上電清零。光電編碼器將轉(zhuǎn)向盤的轉(zhuǎn)角轉(zhuǎn)換為電脈沖輸入給數(shù)字信號輸入輸出板,通過計算脈沖數(shù)的大小即町獲得轉(zhuǎn)向盤轉(zhuǎn)過的角度。

2.3 傳感器

2.3.1 扭矩傳感器

  扭矩傳感器主要測量轉(zhuǎn)向盤輸出扭矩的大小和方向,然后將其轉(zhuǎn)化為相應(yīng)的電壓值傳送給控制器的ECU。扭矩是作為EPS系統(tǒng)控制策略的重要依據(jù),直接會影響到控制效果的好壞,因此扭矩傳感器也被作為重點對像進(jìn)行研究和開發(fā)。本試驗臺選用的傳感器為電位計式扭矩傳感器。

2.3.2 霍爾電流傳感器

  霍爾元件是一種磁電轉(zhuǎn)換器件,能把磁場信號轉(zhuǎn)換為電信號,當(dāng)霍爾器件H處于磁感應(yīng)強(qiáng)度為B的磁場中時,在H(由半導(dǎo)體材料制成的薄片)縱向通過控制電流I,將引起薄片兩邊載流子數(shù)量的變化,因而產(chǎn)生一個電勢差,即霍爾電壓曲,Un=K/d*k*B

  式中:K為所用材料的霍爾常數(shù);d為薄片厚度;IC為控制電流;B為磁感應(yīng)強(qiáng)度。

  本試驗臺中電流傳感器型號是CS500B(南京茶花港聯(lián)傳感測控技術(shù)有限公司)。

3 數(shù)據(jù)采集軟件總體設(shè)計

  本試驗臺的數(shù)據(jù)采集軟件系統(tǒng)采用VB作為編程語言,使用模塊化結(jié)構(gòu)。軟件的主體功能主要包括數(shù)據(jù)采集,數(shù)據(jù)存儲與處理,數(shù)據(jù)實時顯示,坐標(biāo)設(shè)定,實時曲線顯示等。駕駛員作用在方向盤上的扭矩由扭矩傳感器輸入到計算機(jī)內(nèi)的A/D板,A/D板將此模擬信號再轉(zhuǎn)換為數(shù)字信號,通過采集軟件進(jìn)行存儲等操作;電流傳感器輸出模擬電流信號和扭矩信號一樣都進(jìn)入A/D板進(jìn)行轉(zhuǎn)換;安裝在方向盤上的光電編碼器將脈沖信號輸入到計算機(jī)內(nèi)的計數(shù)板上,由采集軟件通過計算脈沖數(shù)的大小來得到方向盤的轉(zhuǎn)角。軟件中除了基本的數(shù)據(jù)保存等功能外,還有實時數(shù)據(jù)顯示,實時曲線顯示,通過軟件叮以直接看到系統(tǒng)工作過程中扭矩、電流、方身盤轉(zhuǎn)角的大小,還可以觀察它們之間的關(guān)系。圖2為軟件的結(jié)構(gòu)框圖。

圖2數(shù)據(jù)采集軟件結(jié)構(gòu)框圖

3.1 Visual BASIC對底層硬件的訪問

  現(xiàn)實中經(jīng)常會對控制系統(tǒng)進(jìn)行數(shù)據(jù)采集或者發(fā)送控制命令,都要求對底層的硬件進(jìn)行操作,但是Visual BASIC沒有提供直接訪問底層硬件的控件和方法,只能通過調(diào)用動態(tài)鏈接庫DLL或者使用AetiveX控件來讀寫存儲器單元、端口,甚至控制硬件中斷。下面主要介紹使用Visual c++6.0編寫數(shù)據(jù)采集函數(shù)的動態(tài)鏈接庫DLL的過程。

  動態(tài)鏈接庫雖然是一個可執(zhí)行模塊,但它并不能直接運(yùn)行,它只是提供一組函數(shù)供Windows應(yīng)用程序或其他動態(tài)鏈接庫調(diào)用,以完成其特殊任務(wù)。在使用Visual c++6.0創(chuàng)建DLL后會生成三個文件,*.cpp,stdafx.cpp,stdafx.h,只需在stdafx.cpp中將程序入口函數(shù)DLLMain()補(bǔ)全,加入自定義的功能函數(shù),并新建*.DEF模塊定義文件,將自定義的功能函數(shù)在此文件中一一輸出。其中,DllMain函數(shù)是Win32 DLL的入口和出口點。在每次裝入或卸載DLL時,Windows 9x調(diào)用該函數(shù),主要用來完成一些初始化任務(wù),或在DLL卸載之前,Windows調(diào)用該函數(shù)做一些必要的釋放資源等清除工作。值得注意的是,DLL的調(diào)用約定共有4種方式:_fastcall、_pascal、_stdcall、_cdecl,vc++默認(rèn)調(diào)用方式為_cdecl,而VB默認(rèn)調(diào)用方式則為_stdcaU,因此必須限定調(diào)用方式,即將函數(shù)定義為如下格式:

  extern“C" _declspec(dllexport)函數(shù)返回數(shù)據(jù)類型>_std-call函數(shù)名[參數(shù)列表]。

  只有做這樣的限定后,生成的DLL庫才不會出現(xiàn)錯誤。

3.2利用VB調(diào)用動態(tài)鏈接庫

  在VB中調(diào)用動態(tài)鏈接庫之前,VB要求必須在窗體或模塊的聲明中定義所要調(diào)用的函數(shù),否則VB不能識別所調(diào)用的動態(tài)鏈接庫。

  如果調(diào)用的動態(tài)鏈接庫中的函數(shù)無返回值,則將其聲明為過程:

  Declare Sub 過程名 lib“.DLL庫名” (Byval參數(shù)As類型)

  如果調(diào)用的動態(tài)鏈接庫中的函數(shù)有返回值,則將其聲明為函數(shù):

  Declare Function 函數(shù)名 lib“.DLL庫名” (Byval參數(shù)As類型) a8類型

  具體到本數(shù)據(jù)采集系統(tǒng)的端口操作函數(shù)及A/D轉(zhuǎn)換函數(shù),其聲明方式如下:

  


上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉