版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ZMD31010RBic 低成本傳感器信號處理器RBiCLiteTM校準流程和 DLL 說明I1 DLL 文件的使用. 11.1輸出函數(shù). 11.1.1計算函數(shù). 11.1.2其它函數(shù). 51.2結構體介紹. 61.2.1 CalPoint. 61.2.2 CCoeffs. 72 校準過程. 82.1概述. 82.2 Setup . 92.2.1 RBicLiteTM的 ID. 92.3采集數(shù)據(jù). 102.4修正參數(shù)計算. 113 校準點的期望位置 . 124 舉例. 134.1校準流程圖. 134.2源程序(2 點校準). 141RBiCLiteTMa準流程和 DLL 說明1 DLL 文件的
2、使用調用 DLL 文件中的功能函數(shù),必須使用 C 語言的調用機制。在調用功能函數(shù) 時,傳遞參數(shù)可采用結構體類型,也可采用數(shù)組類型以便更好兼容不同程序語言。1.1 輸出函數(shù)DLL 中的功能函數(shù),都有兩個版本(結構體類型和數(shù)組類型)。函數(shù)名稱中 不含有“ _Arr ”字樣的是結構體類型。1.1.1計算函數(shù)1.1.1.1結構體格式(名稱中不含“ _Arr ”)int calc2pt(CCoeffs *vals,CalPoint points2)in t calc3ptBr(CCoeffs *vals,CalPoi nt poi nts3)in t calc3ptTco(CCoeffs *vals,C
3、alPoi nt poi nts3)in t calc3ptTcg(CCoeffs *vals,CalPoi nt poi nts3)in t calc4ptTcoTcg(CCoeffs *vals,CalPoi nt poi nts4)int calc4ptSotBrTco (CCoeffs *vals,CalPoint points4)in t calc4ptSotBrTcg(CCoeffs *vals,CalPoi nt poi nts4)int calc5ptSotBr(CCoeffs *vals,CalPoint points5)in t calc5ptSotTco(CCoeffs
4、*vals,CalPoi nt poi nts5)in t calc5ptSotTcg(CCoeffs *vals,CalPoi nt poi nts5)功能描述:函數(shù)的主要功能是計算 RBiCLiteTM的修正參數(shù)。若需要修正溫度,函數(shù)會根 據(jù)數(shù)據(jù)點自動算出溫度的修正參數(shù)。傳遞參數(shù)時數(shù)據(jù)點(points)不需要另外存儲,因為調用的函數(shù)不會改變其數(shù)值。函數(shù)聲明:2Int calcXXX(CCoeffs *vals, CalPoint points)參數(shù) 1:CCoeffs *valsCCoeffs 結構的指針,指向一個 CCoeffs 對象。計算出的修正參數(shù)存儲在此 結構體對象中,無需計算的修
5、正參數(shù)缺省值為0。參數(shù) 2:CalPoi nt poi ntsCalPoi nt 對象的數(shù)組,不需要另外存儲。返回值:0計算成功1gainb、offsetb 等參數(shù)超出范圍2 sot 超出范圍3 tcg 超出范圍4 tco 超出范圍1.1.1.2數(shù)組格式的調用函數(shù)in t calc2pt_Arr(double vals10,double b2,double raw2)int calc3ptBr_Arr(double vals10,double b3,double raw3)in t calc3ptTco_Arr(double vals10,double b3,double t3,double
6、raw3,double tr3)in t calc3ptTcg_Arr(double vals10,double b3, double t3,double raw3 ,double tr3)int calc4ptTcoTcg_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)in t calc4ptSotBrTco_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)in t calc4ptSotBrTcg_Arr(double vals10,d
7、ouble b4, double t4,double raw4 ,double tr4)in t calc5ptSotBr_Arr(double vals10,double b5, double t5,3double raw5 ,double tr5)int calc5ptSotTco_Arr(double vals10,double b5, double t5,double raw5 ,double tr5)in t calc5ptSotTcg_Arr(double vals10,double b5, double t5,double raw5 ,double tr5)功能描述:“_Arr”
8、函數(shù)去除了使用結構體調用時數(shù)據(jù)格式的限制, 增強了程序的兼容性。通常,它和相對應的結構體格式的函數(shù)功能相同,計算出的數(shù)值也是對等的。函數(shù)聲明:1Int calcXXX_Arr( double vals10,double b,double t,1double raw ,double tr )注:上標“ T 表示 t、tr 在 calc2pt 和 calc3ptBr 中沒有使用。參數(shù) 1: double vals10計算出的修正參數(shù)存儲在此數(shù)組中,無需計算的修正參數(shù)缺省值為0。數(shù)組中每一項的含義如下:val0=d_ga inbval1=d_ga intval2=d_offsetbval3=d_of
9、fsettval4=d_sotval5=d_tcgval6=d_tcoval7=d_tsetlval8=tc_cfg在此版本程序中沒有計算val0=sot_cfg計算出的數(shù)據(jù)并不是 RBICLite 格式,因此,將數(shù)據(jù)寫入 EEPROM 前需調用“convertToLite ()” 函數(shù)。參數(shù) 2-5:數(shù)據(jù)點數(shù)組,上文中的一個“ Point 0”對象和 b0、t0、raw0、tr0相當。4這里注意,數(shù)組的下標要保持一致,不能出錯。數(shù)組的大小應大于或等于數(shù)據(jù)點 的個數(shù)。b橋信號的理想值 t溫度的理想值 raw橋信號的原始值 tr溫度的原始值返回值:0 計算成功1 gainb、offsetb 等參
10、數(shù)超出范圍1.1.1.3功能函數(shù)表函數(shù)聲明描述計算的參數(shù)int calc2pt(CCoeffs *vals,CalPoint points2)int calc2pt_Arr(double *vals10,double b2,double raw2)對橋信號增益、偏 移量進行修正。不 考慮溫度影響。gain b,offsetbsot_cfgint calc3ptBr(CCoeffs *vals,CalPoi nt poi nts3)int calc3ptBr_Arr(double vals10,double b3,double raw3)橋信號的二階非 線性修正。不考慮 溫度影響。gain b,
11、offsetbsot(br),sot_cfgint calc3ptTco(CCoeffs *vals,CalPoint points3)int calc3ptTco_Arr(double vals10,double b3,double t3, doubleraw3,double tr3)橋信號偏移量修 正。考慮溫度影 響。gain b,offsetbtco, sot_cfgint calc3ptTcg(CCoeffs *vals,CalPoint points3) intcalc3ptTcg_Arr(double vals10,double b3, double t3, doubleraw3
12、,double tr3)橋信號增益修正。 考慮溫度影響。gain b,offsetbtcg, sot_cfgint calc4ptTcoTcg(CCoeffs *vals,CalPoi nt poi nts4) intcalc4ptTcoTcg_Arr(double vals10,double b4, double t4,doubleraw4 ,double tr4)橋信號偏移量、增 益修正??紤]溫度 影響。gain b,offsetbtco,tcg sot cfgint calc4ptSotBrTco(CCoeffs *vals,CalPoi nt poi nts4) intcalc4ptS
13、otBrTco_Arr(double vals10,double b4, doublet4,double raw4 ,double tr4)二階非線性、偏移 量修正??紤]溫度 影響。gain b,offsetbtco, sot(br) sotcfgint calc4ptSotBrTcg(CCoeffs *vals,CalPoi nt poi nts4) intcalc4ptSotBrTcg_Arr(double vals10,double b4, doublet4,double raw4 ,double tr4)二階非線性、增益 修正??紤]溫度影 響。gain b,offsetbtcg,sot
14、(br),sotcfgint calc5ptSotBr(CCoeffs *vals,CalPoint points5) intcalc5ptSotBr_Arr(double vals10,double b5, double t5,doubleraw5 ,double tr5)二階非線性、增 益、偏移量修正。 考慮溫度影響。gain b,offsetbtco,tcg sot(br),sot cfgint calc5ptSotTco(CCoeffs *vals,CalPoint points5) intcalc5ptSotTco_Arr(double vals10,double b5, doubl
15、e t5,doubleraw5 ,double tr5)二階偏移量、增益 修正??紤]溫度影 響。gain b,offsetbtco,tcg,sot(tco),sot_cfg5int calc5ptSotTcg(CCoeffs *vals,CalPoint points5) intcalc5ptSotTcg_Arr(double vals10,double b5, double t5,doubleraw5 ,double tr5)二階增益、偏移量 修正??紤]溫度影 響。gain b,offsetbtco,tcg,sot(tcg),sot cfg1.1.2其它函數(shù)1.1.2.1 SortPoi n
16、ts功能描述:缺省情況下,此函數(shù)以 CalPoint 的第三個參數(shù)(溫度)對 CalPoint 數(shù)組進行 排序,此函數(shù)并不是每次必須調用的。函數(shù)聲明:void sortPo in ts(CalPo int p, int nu mPo in ts, bool byTemp)參數(shù) 1: CalPoint p需要排列的數(shù)組參數(shù) 2: int numPoints排列點的個數(shù)參數(shù) 3: bool byTemp為“true”時,數(shù)組以溫度值進行排序。若溫度值相同,則以信號原始值大 小排序。為“false”時,數(shù)組以信號原始值大小排序。1.1.2.2 Co nvertToLite功能描述:將“_Arr”函數(shù)
17、的計算值轉換為 RBIClite 格式。使用“ _Arr”函數(shù)時,在將 修正參數(shù)寫入EEPROM之前調用此函數(shù); 若使用非“ _Arr”函數(shù), 不需進行此 操作, 因為 CCoeffs中已含有 RBIClite 格式數(shù)據(jù)。函數(shù)聲明:int convertToLite(int outVals10, double inVals10)參數(shù) 1: int outVals10存放轉換后數(shù)據(jù)的數(shù)組。 寫入 EEPROM 中的數(shù)據(jù)長度為 1 個字節(jié) (如要寫 入 ValsO,6寫入值=outVals0&OxOOFF)。outVals0= gai nboutVals1= gai ntoutVals2=
18、 offsetboutVals3= offsettoutVals4= sotoutVals5 = tcgoutVals6 = tcooutVals7 = tsetloutVals8 = tc_cfgoutVals9= sot_cfg參數(shù) 2: double inVals10需要轉換的數(shù)據(jù)。數(shù)據(jù)的順序和輸出數(shù)據(jù)的順序相同(參見上面函數(shù)的輸出 數(shù)組)。返回值:0 成功2 sot 超出范圍3 tcg 超出范圍4 tco 超出范圍1.2 結構體介紹定義結構體類型的目的是為了簡化程序。在 DLL 中同樣也存在相對應的數(shù)組格式的調用函數(shù)。1.2.1 CalPoi nt功能描述:CalPoint 結構包含
19、4 個 double 型變量,分別代表每個數(shù)據(jù)點的 4 個數(shù)值:橋7信號理想值、橋信號原始值、溫度理想值、溫度原始值。若不進行溫度校準,則相應變量的缺省值為零結構體聲明:struct CalPoi ntdouble bdouble tdouble trdouble raw1.2.2 CCoeffs功能描述:CCoeffs 結構中含有公式計算出的“double”型變量和要寫入 EEPROM 中的“int”型變量,若變量名稱含有“ d_”即為“ double”型變量。寫入 EEPROM 中的“int”型變量并不一定就是寫入 EEPROM 中的實際值,因為實際值受字節(jié) 長度(1 字節(jié))限制:若寫入值
20、超出范圍,則實際寫入值應為“OxOOFF”。結構體聲明:struct CCoeffsint gainbint offsetbint tcoint tcgint sotint sot_cfgint tc_cfgint gaintint offsetint tsetl double d_ga inb double d offsetbdouble d_tco double d sotBR double d_sot_TCO8double d_tc_sotTCGdouble d_ga intdouble d_offset double d_tsetltc_cfg: bit 0 tco 為負bit 1放大
21、因子(x8)bit 2 tcg 為負sot_cfg: =0 sot 為橋信號二階修正參數(shù)=1 sot 為 Tcg 二階修正參數(shù)=2 sot 為 Tco 二階修正參數(shù)2 校準過程2.1 概述RBiCLite可和多種阻抗類橋式傳感器組合,這里假定它和一壓力橋式傳感 器連接,其校準過程敘述如下。校準需采集幾組不同的標定數(shù)據(jù),標定值可通過以下方法獲得:將傳感器放 入已知壓力和溫度的環(huán)境中,讀取傳感器測量的原始值(未經(jīng)修正),重復此步驟,直到獲取足夠的標定點。原始值經(jīng)過校準主設備(如電腦)處理,計算出修 正參數(shù),最后將修正參數(shù)寫入 EEPROM。校準過程有三個主要步驟:1)Setup, Setup 步驟
22、包括 EEPROM 的初始化。另外,對 EEPROM 的已知參數(shù)進行設置,設置完成后,電腦給RBiCLiteTM分配一個 ID,此 ID 將被寫入EEPROM 中。2)收集數(shù)據(jù)。此過程包括獲取原始值的標定過程。所得的標定值(壓力、 溫度的原始值及理想值)存儲在指定的數(shù)據(jù)庫文件中,數(shù)據(jù)庫文件的索引即為 RBiCLiteTM的 ID。3)修正參數(shù)的計算和寫入。一旦獲取足夠的標定值后,就可計算修正參數(shù), 最后將修正參數(shù)寫入 EEPROM。92.2Setup2.2.1 RBicLite的 ID校準過程的第一步就是分配 RBiCLiteTM的 ID 號。ID 號存儲在 EEPROM 中, 并且由寄存器
23、TSETL、Tcg、Tco的數(shù)據(jù)組合而成。當校準過程結束時,TSETL、TcgTco這三個寄存器的數(shù)據(jù)將被重寫,因此, RBiCLiteTM的 ID 號并不是一個一成不 變的數(shù)。在存儲標定值數(shù)據(jù)時,RBiCLiteTM的 ID 是數(shù)據(jù)庫文件的索引,數(shù)據(jù)庫文 件中含有溫度、壓力的原始值及理想值。EEPROM中的位置符號功能2: 0Osc_Trim更多信息可參見“振蕩器調節(jié)”表6: 31V_Trim/JFET_Trim參見“參考電壓源模塊” 一節(jié)。8: 7A2D_Offset偏移設置:11=-1/2,1/2信號輸入模式10= -1/4 ,3/4信號輸入模式01= -1/8 ,7/8信號輸入模式00
24、= -1/16 ,15/16信號輸入模式要改變橋信號極性需設置Tc_cfg3(第 87 位)10: 9Output_Select數(shù)字輸出 w/Temp(0 x00)12: 11Update_Rate用戶選擇00= 1mS(1KHz)0仁=5mS(200Hz)10=25mS(40Hz)11= 125mS(8Hz)14: 13JFET_Cfg用戶選擇00= 沒有三極管控制(低功耗模式)01= 沒有三極管控制(低功耗模式)10= 三極管控制在 5V 左右11= 三極管控制在 5.5V 左右29: 15Gain_B模塊(0 x800)43: 30Offset_B0 x0051: 44Gain_T模塊(
25、0 x80)59: 52Offset_T0 x0067: 60TSETL用戶 ID 區(qū)(臨時)75: 68Tcg用戶 ID 區(qū)(臨時)83: 76Tco用戶 ID 區(qū)(臨時)87: 84Tc_cfg0 x0095: 88SOT0 x001099: 96SOT_cfg,Pamp_Gain99 : 98 = SOT_cfg ( 0 x01)用戶選擇可預放大器增益(97 : 96):00= 增益為 60仁= 增益為 24 (缺省設置)10= 增益為 121 仁=增益為 48注:加粗一一必須設定模塊斜體一一推薦設置2.3 采集數(shù)據(jù)RBicLiteTM在 RM ( Raw Mode)模式下才可獲得傳感器
26、的原始數(shù)據(jù)。要進入RM 模式, 需首先發(fā)送“ Start Comma nd Mode”( 0 x50 0 x00) 指令, 然后再發(fā)送 “StartRaw Mode”(0 x40 0 x10)指令。若 RBiCLiteTM工作在 RM 模式,并且EEPROM 中橋增益和溫度增益的設置為0 x800、0 x80(如上表中所示) 時, 其輸 出口 ( SigTM)輸出的是原始值,而不再是修正后的數(shù)據(jù)。獲取每一個原始值時, 都對被測量進行多次測量(推薦 16 次),最后取平均值。壓力、溫度的原始值和 理想值最后以數(shù)據(jù)庫文件的形式存儲在電腦上。RM 模式下數(shù)據(jù)輸出格式依次是Bridge_High、Br
27、idge_Low、Temp 每個數(shù)據(jù)的長度為 1 個字節(jié),Bridge_High 的前兩位是“ 0”。如果使用開發(fā)板進行通信,則在輸出數(shù)據(jù)前分別加上 0 x01、 0 x02、 0 x03。RM 模式下輸出的溫度數(shù)據(jù)只有 8 位,不能滿足溫度校準時的精度要求。解 決的方法就是在 NOM 模式下獲取溫度數(shù)據(jù)的高 3 位。11 位數(shù)據(jù)將使測量精度達 到 0.098C。當“ NOk 數(shù)據(jù)”和“ RM 數(shù)據(jù)”的第 7 位不一致時,溫度數(shù)據(jù)的高 3 位和低 8 位數(shù)據(jù)就不能進行簡單的疊加, 具體做法是: 在 NOM 模式下獲取溫度數(shù) 據(jù)的10:3位, 通過和“ RM數(shù)據(jù)”比較以確定讀數(shù),如下例所示:例:
28、RM 模式下溫度的讀數(shù) temp=11111111NOM 模式下溫度的讀數(shù) temp= 10100000最終讀數(shù)temp= 10100000 000RM 模式下溫度的讀數(shù) temp=10000000NOM 模式下溫度的讀數(shù) temp= 10101111最終讀數(shù)temp= 10101111 11111當?shù)?7 位數(shù)據(jù)相同時,將 NOM 模式下的高三位與 RM 模式下數(shù)據(jù)串行疊加。例:RM 模式下溫度的讀數(shù) temp=00111111NOM 模式下溫度的讀數(shù) temp= 10101000最終讀數(shù)temp= 10100111 111因為 PTAT 有較高的精度,因此溫度數(shù)據(jù)不需要取平均值。然而,如果
29、為了提高精度而取平均值時,應取 11 位溫度值的平均值。2.4 修正參數(shù)計算校準點的數(shù)量最少為 2,最多為 5。 具體選擇幾個校準點由要求精度和橋式 傳感器的動態(tài)特性而定。1) 若選取 2 個校準點,則只能對橋信號的增益和偏移量進行修正,并且不考慮 溫度因素的影響。2) 選取 3 個校準點,只能對 Teo 或 Teg 中的一個進行一階補償。3)在不考慮溫度補償?shù)那闆r下,3 個校準點同樣也可以對橋式傳感器進行二階 非線性修正。4) 4 個校準點可以對 Tco 和 Tcg 兩個參數(shù)進行一階補償。5)4 個校準點也可以對橋式傳感器進行二階非線性修正,但這時就只能對Tco 或Tcg 中的一個進行一階補
30、償。6)5 個校準點可對 Tco 和 Tcg 兩個參數(shù)進行一階補償,與此同時,可選取 Tco、 Tcg和非線性中的一個參量進行二階修正。12一但校準模式選疋,選取的校準點的個數(shù)也同時確疋。計算修正參數(shù)的功能函數(shù)可從 ZMDCalMathLib.dll 中調用,最后將返回值(修正參數(shù))寫入 EEPROM3 校準點的期望位置下圖說明了不同校準模式下校準點的期望位置。 數(shù)據(jù)點的序號不重要,但每個溫度值下的校準點的個數(shù)需要記錄,否則校準過程失敗。Temp- TempTm口Calc4ptTcoTcgCai4ptSotBrTcoCalc4ptSotBrTcgCalcSptSotBro o245a TempCaicSptSotTcoCalcSptSotTcgTemoCalc3ptSotBre5 0 40 3 0 2 0iCalc2ptCalcSptTcoCaic3ptTcg134 舉例4.1 校準流程圖Received as Lead曰瞋電Dart (hdMD曲曰寶8 002 Data7:O thO3TempErrtar Norm al M ode/ReceivehightempvaluesARecerved as fl_ead! bvlefiData)CM33 Tem pombiv
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋維修合同范本(6篇)
- 某學校外墻裝飾改造施工組織設計
- 石河子大學《網(wǎng)絡安全技術及應用》2023-2024學年期末試卷
- 石河子大學《軟件體系結構》2021-2022學年期末試卷
- 石河子大學《電工學實驗》2021-2022學年期末試卷
- 沈陽理工大學《現(xiàn)代控制理論》2023-2024學年期末試卷
- 沈陽理工大學《汽車制造工藝學》2022-2023學年第一學期期末試卷
- 沈陽理工大學《計算機網(wǎng)絡》2022-2023學年期末試卷
- 肝癌靶向聯(lián)合免疫治療
- 沈陽理工大學《功能高分子》2023-2024學年第一學期期末試卷
- 景區(qū)服務提升培訓課件
- 補鉀原則和注意事項
- 英語期中考試:六年級上冊的質量分析
- 中國傳統(tǒng)手工題庫
- 公司公務車輛管理規(guī)定培訓課件
- 基于機器視覺技術的智能交通違法行為識別系統(tǒng)設計與實現(xiàn)
- 兒科學9循環(huán)系統(tǒng)疾病
- 體質測試成績表(自動統(tǒng)計數(shù)據(jù))(小學、初中)
- 初二八年級下物理期中考試分析
- 風電場安全措施
- 外派董事監(jiān)事管理辦法
評論
0/150
提交評論