基于Modbus協(xié)議的線性霍爾傳感器編程器設(shè)計
引言
線性霍爾傳感器是一種重要的磁場測量元件,它可以將磁場強(qiáng)度信號轉(zhuǎn)化為電壓信號輸出,并可與磁鋼配合進(jìn)行精確的位置測量。隨著汽車電子控制器對位置測量精度要求的不斷提高,這一測量結(jié)構(gòu)被廣泛地應(yīng)用在很多汽車零部件中,如電子油門踏板的行程測量和節(jié)氣門開度測量。但是,為了讓線性霍爾傳感器能夠配合磁鋼的磁場,正確地輸出期望的電壓信號,還需要事先對線性霍爾傳感器進(jìn)行標(biāo)定。
此外,很多此類傳感器中都會預(yù)先設(shè)計一些存儲單元,以用來保存標(biāo)定數(shù)據(jù)。本課題針對英飛凌TLE4997霍爾傳感器,并使用英飛凌XC2000型單片機(jī),設(shè)計了一種集標(biāo)定和存儲數(shù)據(jù)為一體的編程工具。通過操作上位機(jī)界面,這種工具可以讀取傳感器采集的磁場強(qiáng)度信號和輸出電壓,并根據(jù)要求計算標(biāo)定數(shù)據(jù),最后將數(shù)據(jù)永久保存到傳感器內(nèi)的E2PROM內(nèi)。
1 項目主要任務(wù)
本課題以英飛凌單片機(jī)作為開發(fā)平臺來完成霍爾元件編程器的設(shè)計。該編程器能對霍爾元件進(jìn)行標(biāo)定。其主要工作有三個方面:一是用英飛凌16位單片機(jī)作為主芯片實現(xiàn)霍爾元件編程器的硬件電路,并開發(fā)相應(yīng)的軟件系統(tǒng);二是計算霍爾元件偏移量和增益;第三,由于磁場強(qiáng)度會因為溫度變化而變化,本文對此進(jìn)行了溫度補(bǔ)償;并給出了存儲油門踏板位置和輸出電壓等多組數(shù)據(jù)的方法。
2 英飛凌霍爾傳感器TLE4997
TLE4997的應(yīng)用非常廣泛。它在汽車領(lǐng)域的應(yīng)用包括踏板與節(jié)氣門定位、懸架控制、扭矩傳感與變速桿位置檢測等。在工業(yè)領(lǐng)域,這兩款傳感器是機(jī)器人和自動化應(yīng)用、醫(yī)療器械以及高電流傳感應(yīng)用的理想選擇。
采用模擬輸出的TLE4997的額定輸出噪聲較低,而且整個溫度范圍內(nèi)(一40°C-150°C)的偏置漂移穩(wěn)定性高。TLE4997在整個工作溫度范圍內(nèi)具有較低的比率轉(zhuǎn)換誤差。TLE4997具備矽PROM可編程參數(shù),包括偏置、帶寬、極性、輸出位、磁體溫度漂移補(bǔ)償系數(shù)和內(nèi)存鎖,這使它可適用于廣泛的線性與角度位置傳感應(yīng)用。該傳感器具有三個可選測量范圍,包括士50、士100或±200mT,同時具備高達(dá)16位分辨率(取決于輸出方案)的精確輸出。此外,TLE4997還具備先進(jìn)的溫度補(bǔ)償功能。
TLE4997共有VDD、OUT和GND三個引腳。其中VDD和OUT引腳既可作為供電電源輸入和信號輸出,也可分別作為編程模式時的兩個接口。在編程模式的狀態(tài)下,VDD為時鐘信號接口,而OUT則可作為數(shù)據(jù)的I/O口。此時,將允許多個連接的設(shè)備作為一個輸入,每個設(shè)備既可以獨立,也可以并行地存取數(shù)據(jù)。這對于E2PROM的編程尤為重要。圖1所示是TLE4997的外形圖。
2.1 TLE4997的主要功能
TLE4997具有20位數(shù)字信號處理功能以及具有溫度補(bǔ)償功能;工作溫度范圍達(dá)一40°C-150°C;同時具有可編程E2PROM,并能完成位錯誤校正。TLE4997可重復(fù)編程,直至存儲器被鎖住,并帶有輸出短路電流保護(hù)功能,同時可對所有引腳進(jìn)行過壓及防反接保護(hù)。
2.2 TLE4997的編程方法
TLE4997內(nèi)部有一組由寄存器和E2PROM組成的存儲器,其中包含了傳感器工作的所有信息。這些存儲器可以通過連續(xù)地址的方式組織起來,每個存儲單元的大小為16位。表1所列是TLE4997中的E2PROM存儲器。
在編程時,編程器可以通過規(guī)定的讀寫命令對這些存儲器的內(nèi)容進(jìn)行讀出或修改。TLE4997使用一種特殊的同步通訊方式與編程器交換數(shù)據(jù),這是一種半雙工的通訊方式。通訊以幀為單位,長度固定為21bit,它的任何一個有效幀的長度均為21bit,通常在時鐘信號的上升沿發(fā)送新的位,最先發(fā)送數(shù)據(jù)的最低位。而且每一幀都包含一個奇校驗位和偶校驗位。
本設(shè)計在硬件上采用了端口復(fù)用的方式,在編程時,傳感器的5V電源輸入引腳則作為同步通訊的時鐘信號,而其信號輸入引腳作為同步通訊的輸入輸出端口。同步時鐘時鐘信號由編程器提供,電平為8.5V/5V。通訊的波特率由并聯(lián)在電源和地之間的電容決定。其編程器通訊波特率與電容的關(guān)系如表2所列。圖2所示是編程器通訊波特率與電容的關(guān)系曲線。
在進(jìn)行一次通訊之前,必須先向傳感器發(fā)送一組有效的命令,以激活傳感器的通訊端口。這個用于激活端口的幀在波形上與其他幀略有不同。圖3所示是TLE4997激活端口的幀形式。
圖3TLE4997激活端口的幀形式
通??梢允褂靡粋€讀取狀態(tài)寄存器的命令幀去激活傳感器的通訊端口。TLE4997的命令幀波形如圖4所示。在成功激活端口之后,編程器可以通過發(fā)送同步時鐘信號,來在Vout引腳上讀取到一個有效的反饋幀。
而當(dāng)端口打開之后,發(fā)送數(shù)據(jù)時就不必再采用激活幀的波形,而使用正常的通訊波形就可以了。圖5所示是TLE4997的正常通訊波形圖。
通常情況下,用于與傳感器通訊的幀可以分為數(shù)據(jù)幀和命令幀兩種。其中命令幀只由編程器發(fā)出,可用于對制定地址的存儲單元進(jìn)行確定的操作,其幀格式如圖6所示。
通常命令幀可以攜帶表3所列的幾種可能的命令。
數(shù)據(jù)幀主要用于攜帶數(shù)據(jù),其中包括從編程器發(fā)出,需要被寫入傳感器存儲單元的數(shù)據(jù);也包括了由傳感器發(fā)出的、被讀出的數(shù)據(jù)。圖7所示是TLE4997的數(shù)據(jù)幀格式。
不管是數(shù)據(jù)幀還是命令幀,它們都由一個顯性電平開始,也都包含了一個奇校驗位和一個偶校驗位。這兩個校驗位使幀包含的內(nèi)容滿足以下條件:
bit0 XOR bit2 XOR bit4 XOR...XOR bit20=0
bit0 XOR bit3 XOR bit5 XOR...XOR bit19=0
3 編程器軟硬件設(shè)計
本設(shè)計中,下位機(jī)以英飛凌XC2267m單片機(jī)為處理核心,主要完成的任務(wù)是:采集傳感器正常工作輸出,讀取傳感器參數(shù),接受上位機(jī)命令,并對傳感器進(jìn)行編程(校驗數(shù)據(jù)存儲),以及向上位機(jī)反饋數(shù)據(jù)等。
通過編程接口,可以實現(xiàn)傳感器數(shù)據(jù)的讀取和編程;采集傳感器輸出可通過單片機(jī)的模擬數(shù)字轉(zhuǎn)換模塊來實現(xiàn);上下位機(jī)的數(shù)據(jù)交流,則是基于模式總線協(xié)議(Modbus)的總線通訊系統(tǒng)。所以,在軟件上,大致分可以為三個部分:第一是傳感器輸出電壓的AD采樣和處理;第二是傳感器編程接口的訪問、數(shù)據(jù)讀取和對校驗數(shù)據(jù)的存儲;第三是Modbus從節(jié)點接收發(fā)送程序。
本系統(tǒng)的編程工具采用英飛凌專用的圖形界面代碼生成軟件(Digital Application Engineer,DAVE)和Eclipse公司提供的tasking嵌入式系統(tǒng)環(huán)境。前者可以迅速高效地生成單片機(jī)底層驅(qū)動函數(shù),后者則可提供從代碼編輯到編譯調(diào)試下載等的完整開發(fā)工具鏈,這都可大大提高項目的開發(fā)進(jìn)度。
從結(jié)構(gòu)角度分析,編程器分為PC機(jī)、PC機(jī)軟件界面以及以單片機(jī)為核心的下位機(jī)和嵌入式軟件這兩大部分。TLE4997的編程器系統(tǒng)框圖如圖8所示。其中PC機(jī)界面通過VB語言編寫,主要功能包括傳感器輸出電壓的動態(tài)顯示,設(shè)置和計算傳感器標(biāo)定參數(shù)以及控制下位機(jī)操作等。
下位機(jī)以英飛凌XC2267m單片機(jī)為處理核心,主要任務(wù)是采集傳感器正常工作輸出,讀取傳感器參數(shù),接受上位機(jī)命令,對傳感器進(jìn)行編程,以及向上位機(jī)反饋數(shù)據(jù)等。
上位機(jī)和下位機(jī)之間使用Modbus總線進(jìn)行通訊,上位機(jī)作為總線主節(jié)點,下位機(jī)作為從節(jié)點。上位機(jī)通過寫入命令來修改下位機(jī)Modbus寄存器的值,實現(xiàn)對下位機(jī)的控制。同樣,也可通過對下位機(jī)寄存器的讀取來讀取希望的數(shù)據(jù)。
下位機(jī)根據(jù)其功能可以將硬件分為五個部分:即系統(tǒng)電源、單片機(jī)最小系統(tǒng)電路、傳感器信號釆樣電路、傳感器通訊電路、Modbus通訊電路等。圖9所示是編程器下位機(jī)的結(jié)構(gòu)簡圖。
4 結(jié)語
本設(shè)計完成了針對線性霍爾傳感器TLE4997編程器的軟硬件設(shè)計;設(shè)計分為由PC機(jī)及其軟件界面和以單片機(jī)為核心的下位機(jī)及嵌入式軟件這兩大部分。本課題的硬件設(shè)計主要針對下位機(jī)進(jìn)行。基于英飛凌的XC2267m單片機(jī)用于實現(xiàn)編程器功能的硬件設(shè)計。軟件方面,本課題對英飛凌線性霍爾編程器TLE4997進(jìn)行了標(biāo)定,還進(jìn)行了溫度補(bǔ)償。此外,本課題還設(shè)計了Modbus通訊功能和CAN總線通訊功能。在當(dāng)今汽車行業(yè)電子產(chǎn)品的各種通訊方式中,CAN總線以其高可靠性、實時性、傳輸距離遠(yuǎn)等特點已得到廣泛的應(yīng)用,并已經(jīng)成為許多高檔汽車車電系統(tǒng)的總線標(biāo)準(zhǔn)。所以,本設(shè)計在傳感器編程器的硬件設(shè)計中,預(yù)留了CAN總線接口,以便將來的應(yīng)用可以進(jìn)一步實現(xiàn)多編程器的協(xié)同工作,這對于油門踏板的大規(guī)模自動化生產(chǎn)意義巨大。同時也可以通過CAN總線對傳感器編程器進(jìn)行程序的升級下載以及編程器自身的參數(shù)標(biāo)定等功能,以便使編程器的功能更加靈活和強(qiáng)大。