ZMD31010校準(zhǔn)流程與DLL說明_第1頁
ZMD31010校準(zhǔn)流程與DLL說明_第2頁
ZMD31010校準(zhǔn)流程與DLL說明_第3頁
ZMD31010校準(zhǔn)流程與DLL說明_第4頁
ZMD31010校準(zhǔn)流程與DLL說明_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、ZMD31010RBic低成本傳感器信號處理器RBicLiteTM校準(zhǔn)流程和DLL說明15目 錄1 DLL文件的使用11.1 輸出函數(shù)11.1.1 計(jì)算函數(shù)11.1.2 其它函數(shù)51.2 結(jié)構(gòu)體介紹61.2.1 CalPoint61.2.2 CCoeffs72 校準(zhǔn)過程82.1 概述82.2 Setup92.2.1 RBicLiteTM的ID92.3 采集數(shù)據(jù)102.4 修正參數(shù)計(jì)算113 校準(zhǔn)點(diǎn)的期望位置124 舉例134.1 校準(zhǔn)流程圖134.2 源程序(2點(diǎn)校準(zhǔn))14RBicLiteTM校準(zhǔn)流程和DLL說明1 DLL文件的使用調(diào)用DLL文件中的功能函數(shù),必須使用C語言的調(diào)用機(jī)制。在調(diào)用功

2、能函數(shù)時(shí),傳遞參數(shù)可采用結(jié)構(gòu)體類型,也可采用數(shù)組類型以便更好兼容不同程序語言。1.1 輸出函數(shù)DLL中的功能函數(shù),都有兩個(gè)版本(結(jié)構(gòu)體類型和數(shù)組類型)。函數(shù)名稱中不含有“_Arr”字樣的是結(jié)構(gòu)體類型。1.1.1 計(jì)算函數(shù)1.1.1.1 結(jié)構(gòu)體格式(名稱中不含“_Arr”)int calc2pt(CCoeffs *vals,CalPoint points2)int calc3ptBr(CCoeffs *vals,CalPoint points3)int calc3ptTco(CCoeffs *vals,CalPoint points3)int calc3ptTcg(CCoeffs *vals,C

3、alPoint points3)int calc4ptTcoTcg(CCoeffs *vals,CalPoint points4)int calc4ptSotBrTco (CCoeffs *vals,CalPoint points4)int calc4ptSotBrTcg(CCoeffs *vals,CalPoint points4)int calc5ptSotBr(CCoeffs *vals,CalPoint points5)int calc5ptSotTco(CCoeffs *vals,CalPoint points5)int calc5ptSotTcg(CCoeffs *vals,Cal

4、Point points5)功能描述:函數(shù)的主要功能是計(jì)算RBicLiteTM的修正參數(shù)。若需要修正溫度,函數(shù)會根據(jù)數(shù)據(jù)點(diǎn)自動算出溫度的修正參數(shù)。傳遞參數(shù)時(shí)數(shù)據(jù)點(diǎn)(points)不需要另外存儲,因?yàn)檎{(diào)用的函數(shù)不會改變其數(shù)值。函數(shù)聲明: Int calcXXX(CCoeffs *vals, CalPoint points)參數(shù)1:CCoeffs *valsCCoeffs結(jié)構(gòu)的指針,指向一個(gè)CCoeffs對象。計(jì)算出的修正參數(shù)存儲在此結(jié)構(gòu)體對象中,無需計(jì)算的修正參數(shù)缺省值為0。參數(shù)2:CalPoint pointsCalPoint對象的數(shù)組,不需要另外存儲。返回值: 0 計(jì)算成功1 gainb、o

5、ffsetb等參數(shù)超出范圍2 sot超出范圍3 tcg超出范圍4 tco超出范圍 1.1.1.2 數(shù)組格式的調(diào)用函數(shù)int calc2pt_Arr(double vals10,double b2,double raw2)int calc3ptBr_Arr(double vals10,double b3,double raw3)int calc3ptTco_Arr(double vals10,double b3,double t3,double raw3,double tr3)int calc3ptTcg_Arr(double vals10,double b3, double t3,double

6、 raw3 ,double tr3)int calc4ptTcoTcg_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)int calc4ptSotBrTco_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)int calc4ptSotBrTcg_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)int calc5ptSotBr_Arr(double vals10,

7、double b5, double t5,double raw5 ,double tr5)int calc5ptSotTco_Arr(double vals10,double b5, double t5,double raw5 ,double tr5)int calc5ptSotTcg_Arr(double vals10,double b5, double t5,double raw5 ,double tr5)功能描述:“_Arr”函數(shù)去除了使用結(jié)構(gòu)體調(diào)用時(shí)數(shù)據(jù)格式的限制,增強(qiáng)了程序的兼容性。通常,它和相對應(yīng)的結(jié)構(gòu)體格式的函數(shù)功能相同,計(jì)算出的數(shù)值也是對等的。函數(shù)聲明:Int calcXXX_

8、Arr(double vals10,double b,double t1,double raw ,double tr1) 注:上標(biāo)“1”表示 t、tr在calc2pt和calc3ptBr中沒有使用。參數(shù)1:double vals10計(jì)算出的修正參數(shù)存儲在此數(shù)組中,無需計(jì)算的修正參數(shù)缺省值為0。數(shù)組中每一項(xiàng)的含義如下:val0=d_gainbval1=d_gaintval2=d_offsetbval3=d_offsettval4=d_sotval5=d_tcgval6=d_tcoval7=d_tsetlval8=tc_cfg/在此版本程序中沒有計(jì)算val0=sot_cfg計(jì)算出的數(shù)據(jù)并不是RBI

9、CLite格式,因此,將數(shù)據(jù)寫入EEPROM前需調(diào)用“convertToLite()”函數(shù)。參數(shù)25:數(shù)據(jù)點(diǎn)數(shù)組,上文中的一個(gè)“Point 0”對象和b0、t0、raw0、tr0相當(dāng)。這里注意,數(shù)組的下標(biāo)要保持一致,不能出錯(cuò)。數(shù)組的大小應(yīng)大于或等于數(shù)據(jù)點(diǎn)的個(gè)數(shù)。b橋信號的理想值t溫度的理想值raw橋信號的原始值tr溫度的原始值返回值: 0 計(jì)算成功1 gainb、offsetb等參數(shù)超出范圍1.1.1.3 功能函數(shù)表函數(shù)聲明 描 述計(jì)算的參數(shù)int calc2pt(CCoeffs *vals,CalPoint points2)int calc2pt_Arr(double *vals10,dou

10、ble b2,double raw2)對橋信號增益、偏移量進(jìn)行修正。不考慮溫度影響。gainb,offsetbsot_cfgint calc3ptBr(CCoeffs *vals,CalPoint points3)int calc3ptBr_Arr(double vals10,double b3,double raw3)橋信號的二階非線性修正。不考慮溫度影響。gainb,offsetbsot(br),sot_cfgint calc3ptTco(CCoeffs *vals,CalPoint points3)int calc3ptTco_Arr(double vals10,double b3,do

11、uble t3,double raw3,double tr3)橋信號偏移量修正??紤]溫度影響。gainb,offsetbtco, sot_cfgint calc3ptTcg(CCoeffs *vals,CalPoint points3)int calc3ptTcg_Arr(double vals10,double b3, double t3,double raw3 ,double tr3)橋信號增益修正??紤]溫度影響。gainb,offsetb tcg, sot_cfgint calc4ptTcoTcg(CCoeffs *vals,CalPoint points4)int calc4ptTco

12、Tcg_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)橋信號偏移量、增益修正??紤]溫度影響。gainb,offsetbtco, tcgsot_cfgint calc4ptSotBrTco(CCoeffs *vals,CalPoint points4)int calc4ptSotBrTco_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)二階非線性、偏移量修正??紤]溫度影響。gainb,offsetbtco, sot(br)sot_cfgi

13、nt calc4ptSotBrTcg(CCoeffs *vals,CalPoint points4)int calc4ptSotBrTcg_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)二階非線性、增益修正。考慮溫度影響。gainb,offsetbtcg,sot(br),sot_cfgint calc5ptSotBr(CCoeffs *vals,CalPoint points5)int calc5ptSotBr_Arr(double vals10,double b5, double t5,double raw5 ,

14、double tr5)二階非線性、增益、偏移量修正??紤]溫度影響。gainb,offsetbtco, tcgsot(br),sot_cfgint calc5ptSotTco(CCoeffs *vals,CalPoint points5)int calc5ptSotTco_Arr(double vals10,double b5, double t5,double raw5 ,double tr5)二階偏移量、增益修正??紤]溫度影響。gainb,offsetbtco, tcg,sot(tco),sot_cfgint calc5ptSotTcg(CCoeffs *vals,CalPoint poin

15、ts5)int calc5ptSotTcg_Arr(double vals10,double b5, double t5,double raw5 ,double tr5)二階增益、偏移量修正??紤]溫度影響。gainb,offsetbtco, tcg,sot(tcg),sot_cfg1.1.2 其它函數(shù)1.1.2.1 SortPoints功能描述:缺省情況下,此函數(shù)以CalPoint的第三個(gè)參數(shù)(溫度)對CalPoint數(shù)組進(jìn)行排序,此函數(shù)并不是每次必須調(diào)用的。函數(shù)聲明:void sortPoints(CalPoint p, int numPoints, bool byTemp)參數(shù)1:CalP

16、oint p需要排列的數(shù)組參數(shù)2:int numPoints排列點(diǎn)的個(gè)數(shù)參數(shù)3:bool byTemp為“true”時(shí),數(shù)組以溫度值進(jìn)行排序。若溫度值相同,則以信號原始值大小排序。為“false”時(shí),數(shù)組以信號原始值大小排序。1.1.2.2 ConvertToLite功能描述:將“_Arr”函數(shù)的計(jì)算值轉(zhuǎn)換為RBIClite格式。使用“_Arr”函數(shù)時(shí),在將修正參數(shù)寫入EEPROM之前調(diào)用此函數(shù);若使用非“_Arr”函數(shù),不需進(jìn)行此操作,因?yàn)?CCoeffs中已含有RBIClite格式數(shù)據(jù)。函數(shù)聲明:int convertToLite(int outVals10, double inVals1

17、0)參數(shù)1:int outVals10存放轉(zhuǎn)換后數(shù)據(jù)的數(shù)組。寫入EEPROM中的數(shù)據(jù)長度為1個(gè)字節(jié)(如要寫入Vals0,寫入值outVals0&0x00FF)。outVals0gainboutVals1gaintoutVals2offsetboutVals3offsettoutVals4sotoutVals5tcgoutVals6tcooutVals7tsetloutVals8tc_cfgoutVals9sot_cfg參數(shù)2:double inVals10需要轉(zhuǎn)換的數(shù)據(jù)。數(shù)據(jù)的順序和輸出數(shù)據(jù)的順序相同(參見上面函數(shù)的輸出數(shù)組)。返回值: 0 成功2 sot超出范圍3 tcg超出范圍4

18、tco超出范圍1.2 結(jié)構(gòu)體介紹定義結(jié)構(gòu)體類型的目的是為了簡化程序。在DLL中同樣也存在相對應(yīng)的數(shù)組格式的調(diào)用函數(shù)。1.2.1 CalPoint功能描述:CalPoint結(jié)構(gòu)包含4個(gè)double型變量,分別代表每個(gè)數(shù)據(jù)點(diǎn)的4個(gè)數(shù)值:橋信號理想值、橋信號原始值、溫度理想值、溫度原始值。若不進(jìn)行溫度校準(zhǔn),則相應(yīng)變量的缺省值為零。結(jié)構(gòu)體聲明:struct CalPoint double b double t double tr double raw1.2.2 CCoeffs功能描述:CCoeffs結(jié)構(gòu)中含有公式計(jì)算出的 “double”型變量和要寫入EEPROM中的“int”型變量,若變量名稱含有“

19、d_”即為 “double”型變量。寫入EEPROM中的“int”型變量并不一定就是寫入EEPROM中的實(shí)際值,因?yàn)閷?shí)際值受字節(jié)長度(1字節(jié))限制:若寫入值超出范圍,則實(shí)際寫入值應(yīng)為“0x00FF”。結(jié)構(gòu)體聲明:struct CCoeffs int gainb int offsetb int tco int tcg int sot int sot_cfg int tc_cfg int gaint int offset int tsetldouble d_gainb double d_offsetb double d_tco double d_tcg double d_sotBR double

20、d_sot_TCO double d_tc_sotTCG double d_gaint double d_offset double d_tsetl注意:tc_cfg: bit 0tco為負(fù) bit 1放大因子(×8) bit 2tcg為負(fù)sot_cfg: =0 sot為橋信號二階修正參數(shù) 1 sot為Tcg二階修正參數(shù) 2 sot為Tco二階修正參數(shù)2 校準(zhǔn)過程2.1 概述RBicLiteTM可和多種阻抗類橋式傳感器組合,這里假定它和一壓力橋式傳感器連接,其校準(zhǔn)過程敘述如下。校準(zhǔn)需采集幾組不同的標(biāo)定數(shù)據(jù),標(biāo)定值可通過以下方法獲得:將傳感器放入已知壓力和溫度的環(huán)境中,讀取傳感器測量的

21、原始值(未經(jīng)修正),重復(fù)此步驟,直到獲取足夠的標(biāo)定點(diǎn)。原始值經(jīng)過校準(zhǔn)主設(shè)備(如電腦)處理,計(jì)算出修正參數(shù),最后將修正參數(shù)寫入EEPROM。校準(zhǔn)過程有三個(gè)主要步驟:1)Setup。Setup步驟包括EEPROM的初始化。另外,對EEPROM的已知參數(shù)進(jìn)行設(shè)置,設(shè)置完成后,電腦給RBicLiteTM分配一個(gè)ID,此ID將被寫入EEPROM中。2)收集數(shù)據(jù)。此過程包括獲取原始值的標(biāo)定過程。所得的標(biāo)定值(壓力、溫度的原始值及理想值)存儲在指定的數(shù)據(jù)庫文件中,數(shù)據(jù)庫文件的索引即為RBicLiteTM的ID。3)修正參數(shù)的計(jì)算和寫入。一旦獲取足夠的標(biāo)定值后,就可計(jì)算修正參數(shù),最后將修正參數(shù)寫入EEPROM

22、。2.2 Setup2.2.1 RBicLiteTM的ID校準(zhǔn)過程的第一步就是分配RBicLiteTM的ID號。ID號存儲在EEPROM中,并且由寄存器TSETL、Tcg、Tco的數(shù)據(jù)組合而成。當(dāng)校準(zhǔn)過程結(jié)束時(shí),TSETL、Tcg、Tco這三個(gè)寄存器的數(shù)據(jù)將被重寫,因此,RBicLiteTM的ID號并不是一個(gè)一成不變的數(shù)。在存儲標(biāo)定值數(shù)據(jù)時(shí),RBicLiteTM的ID是數(shù)據(jù)庫文件的索引,數(shù)據(jù)庫文件中含有溫度、壓力的原始值及理想值。EEPROM中的位置符號功能2:0Osc_Trim更多信息可參見“振蕩器調(diào)節(jié)”表6:31V_Trim/JFET_Trim參見“參考電壓源模塊”一節(jié)。8:7A2D_Of

23、fset偏移設(shè)置:11=-1/2,1/2信號輸入模式10=-1/4,3/4信號輸入模式01=-1/8,7/8信號輸入模式00=-1/16,15/16信號輸入模式要改變橋信號極性需設(shè)置Tc_cfg3(第87位)10:9Output_Select數(shù)字輸出w/Temp(0x00)12:11Update_Rate用戶選擇00=1mS(1KHz)01=5mS(200Hz)10=25mS(40Hz)11=125mS(8Hz)14:13JFET_Cfg用戶選擇00=沒有三極管控制(低功耗模式)01=沒有三極管控制(低功耗模式)10=三極管控制在5V左右11=三極管控制在5.5V左右29:15Gain_B模塊

24、(0x800)43:30Offset_B0x0051:44Gain_T模塊(0x80)59:52Offset_T0x0067:60TSETL用戶ID區(qū)(臨時(shí))75:68Tcg用戶ID區(qū)(臨時(shí))83:76Tco用戶ID區(qū)(臨時(shí))87:84Tc_cfg0x0095:88SOT0x0099:96SOT_cfg,Pamp_Gain 99:98 SOT_cfg(0x01)用戶選擇可預(yù)放大器增益(97:96): 00=增益為6 01=增益為24(缺省設(shè)置) 10=增益為12 11=增益為48注:加粗必須設(shè)定模塊 斜體推薦設(shè)置2.3 采集數(shù)據(jù)RBicLiteTM在RM(Raw Mode)模式下才可獲得傳感器

25、的原始數(shù)據(jù)。要進(jìn)入RM模式,需首先發(fā)送“Start Command Mode”(0x50 0x00)指令,然后再發(fā)送“Start Raw Mode”(0x40 0x10)指令。若RBicLiteTM工作在RM模式,并且 EEPROM中橋增益和溫度增益的設(shè)置為0x800、0x80(如上表中所示)時(shí),其輸出口(SigTM)輸出的是原始值,而不再是修正后的數(shù)據(jù)。獲取每一個(gè)原始值時(shí),都對被測量進(jìn)行多次測量(推薦16次),最后取平均值。壓力、溫度的原始值和理想值最后以數(shù)據(jù)庫文件的形式存儲在電腦上。RM模式下數(shù)據(jù)輸出格式依次是Bridge_High、Bridge_Low、Temp,每個(gè)數(shù)據(jù)的長度為1個(gè)字節(jié)

26、,Bridge_High的前兩位是“0”。如果使用開發(fā)板進(jìn)行通信,則在輸出數(shù)據(jù)前分別加上0x01、0x02、0x03。RM模式下輸出的溫度數(shù)據(jù)只有8位,不能滿足溫度校準(zhǔn)時(shí)的精度要求。解決的方法就是在NOM模式下獲取溫度數(shù)據(jù)的高3位。11位數(shù)據(jù)將使測量精度達(dá)到0.098。當(dāng)“NOM數(shù)據(jù)”和“RM數(shù)據(jù)”的第7位不一致時(shí),溫度數(shù)據(jù)的高3位和低8位數(shù)據(jù)就不能進(jìn)行簡單的疊加,具體做法是:在NOM模式下獲取溫度數(shù)據(jù)的<10:3>位,通過和“RM數(shù)據(jù)”比較以確定讀數(shù),如下例所示:例: RM模式下溫度的讀數(shù) temp<7:0>= 11111111 NOM模式下溫度的讀數(shù) temp<10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論