電動助力轉向系統(tǒng)(EPS)數據采集的實現
1 前言
電動助力轉向系統(tǒng)已成為現代汽車發(fā)展的必然趨勢。只有精確實時的采集到車輛轉角數據,助力轉向系統(tǒng)才能根據這些數據采用各種先進的算法來控制助力電機的轉動。所以說,車輛轉角數據的采集是電動助力轉向系統(tǒng)的重要組成部分。此文章詳細的講述了電動助力轉向系統(tǒng)數據采集的硬件和軟件。
數據采集硬件系統(tǒng)主要由計算機,A/D轉換板,數字量信號輸入/輸出板,傳感器以及信號處理裝置等組成,基本的結構如圖1所示。試驗臺傳感器所輸出的信號一共有兩種,一種是模擬信號,另外一種是數字信號。而計算機只能對數字量進行處理,為了能使計算機處理或存儲模擬信號,就必須將其轉換為數字量,因此模擬信號的采集主要通過A/D板進行轉換,然后輸入計算機中進行處理;數字信號(光電編碼器輸出的脈沖信號)的采集是南數字信號輸入輸出處理板來完成。
圖1數據采集硬件系統(tǒng)
2.1 數據采集卡(A/D)-HY-1232A/D板
HY-1232板是一種IBM-PC XT/AT總線兼容A/D,D/A板,具有32路單端模擬輸入通道,12Bit分辨率,模擬輸入電壓范圍,雙極性為-5V,+5V,單極性為0,+5V。數據傳輸方式采用軟件查詢方式和中斷方式,而且可以直接插入到計算機的任一總線擴展槽中,構成計算機數據采集的控制系統(tǒng)。HY一1232的A/D轉換采用軟件觸發(fā)方式,在程序中首先向該板寫入模擬通道,A/D板將自動對該通道進行A/D轉換。在程序中讀入A/D完成標志位即可判斷轉換是否完成。當A/D完成位為‘1’時,則A/D轉換已完成。
2.2 HY-6160數字量信號輸入輸出板
HY-6160板有32個數字量輸入通道,32個數字量輸出通道和一個外部事件中斷通道。每個輸入或輸出通道為一組,占用一個地址。數字量輸入/輸出信號電平與TTL電平兼容。中斷申請信號為TTL電平。數字量輸出通道上電清零。光電編碼器將轉向盤的轉角轉換為電脈沖輸入給數字信號輸入輸出板,通過計算脈沖數的大小即町獲得轉向盤轉過的角度。
2.3 傳感器
2.3.1 扭矩傳感器
扭矩傳感器主要測量轉向盤輸出扭矩的大小和方向,然后將其轉化為相應的電壓值傳送給控制器的ECU。扭矩是作為EPS系統(tǒng)控制策略的重要依據,直接會影響到控制效果的好壞,因此扭矩傳感器也被作為重點對像進行研究和開發(fā)。本試驗臺選用的傳感器為電位計式扭矩傳感器。
2.3.2 霍爾電流傳感器
霍爾元件是一種磁電轉換器件,能把磁場信號轉換為電信號,當霍爾器件H處于磁感應強度為B的磁場中時,在H(由半導體材料制成的薄片)縱向通過控制電流I,將引起薄片兩邊載流子數量的變化,因而產生一個電勢差,即霍爾電壓曲,Un=K/d*k*B
式中:K為所用材料的霍爾常數;d為薄片厚度;IC為控制電流;B為磁感應強度。
本試驗臺中電流傳感器型號是CS500B(南京茶花港聯傳感測控技術有限公司)。
3 數據采集軟件總體設計
本試驗臺的數據采集軟件系統(tǒng)采用VB作為編程語言,使用模塊化結構。軟件的主體功能主要包括數據采集,數據存儲與處理,數據實時顯示,坐標設定,實時曲線顯示等。駕駛員作用在方向盤上的扭矩由扭矩傳感器輸入到計算機內的A/D板,A/D板將此模擬信號再轉換為數字信號,通過采集軟件進行存儲等操作;電流傳感器輸出模擬電流信號和扭矩信號一樣都進入A/D板進行轉換;安裝在方向盤上的光電編碼器將脈沖信號輸入到計算機內的計數板上,由采集軟件通過計算脈沖數的大小來得到方向盤的轉角。軟件中除了基本的數據保存等功能外,還有實時數據顯示,實時曲線顯示,通過軟件叮以直接看到系統(tǒng)工作過程中扭矩、電流、方身盤轉角的大小,還可以觀察它們之間的關系。圖2為軟件的結構框圖。
圖2數據采集軟件結構框圖
3.1 Visual BASIC對底層硬件的訪問
現實中經常會對控制系統(tǒng)進行數據采集或者發(fā)送控制命令,都要求對底層的硬件進行操作,但是Visual BASIC沒有提供直接訪問底層硬件的控件和方法,只能通過調用動態(tài)鏈接庫DLL或者使用AetiveX控件來讀寫存儲器單元、端口,甚至控制硬件中斷。下面主要介紹使用Visual c++6.0編寫數據采集函數的動態(tài)鏈接庫DLL的過程。
動態(tài)鏈接庫雖然是一個可執(zhí)行模塊,但它并不能直接運行,它只是提供一組函數供Windows應用程序或其他動態(tài)鏈接庫調用,以完成其特殊任務。在使用Visual c++6.0創(chuàng)建DLL后會生成三個文件,*.cpp,stdafx.cpp,stdafx.h,只需在stdafx.cpp中將程序入口函數DLLMain()補全,加入自定義的功能函數,并新建*.DEF模塊定義文件,將自定義的功能函數在此文件中一一輸出。其中,DllMain函數是Win32 DLL的入口和出口點。在每次裝入或卸載DLL時,Windows 9x調用該函數,主要用來完成一些初始化任務,或在DLL卸載之前,Windows調用該函數做一些必要的釋放資源等清除工作。值得注意的是,DLL的調用約定共有4種方式:_fastcall、_pascal、_stdcall、_cdecl,vc++默認調用方式為_cdecl,而VB默認調用方式則為_stdcaU,因此必須限定調用方式,即將函數定義為如下格式:
extern“C" _declspec(dllexport)函數返回數據類型>_std-call函數名[參數列表]。
只有做這樣的限定后,生成的DLL庫才不會出現錯誤。
3.2利用VB調用動態(tài)鏈接庫
在VB中調用動態(tài)鏈接庫之前,VB要求必須在窗體或模塊的聲明中定義所要調用的函數,否則VB不能識別所調用的動態(tài)鏈接庫。
如果調用的動態(tài)鏈接庫中的函數無返回值,則將其聲明為過程:
Declare Sub 過程名 lib“.DLL庫名” (Byval參數As類型)
如果調用的動態(tài)鏈接庫中的函數有返回值,則將其聲明為函數:
Declare Function 函數名 lib“.DLL庫名” (Byval參數As類型) a8類型
具體到本數據采集系統(tǒng)的端口操作函數及A/D轉換函數,其聲明方式如下:
評論