定時器1用于控制SENT輸出引腳P0.4。根據(jù)熱電偶的ADC結果和冷結溫度計算出溫度結果后,SENT數(shù)據(jù)包結構SENT_PACKET將更新,并且定時器1會啟動。該結構的域會在P0.4引腳上逐個輸出,如圖2所示。數(shù)據(jù)包的第一級是同步序列。主機根據(jù)此脈沖確定時鐘周期,并據(jù)此確定后續(xù)半字節(jié)值。
要獲得溫度讀數(shù),應測量熱電偶和RTD的溫度。RTD溫度通過一個查找表轉(zhuǎn)換為其等效熱電偶電壓。將這兩個電壓相加,便可得到熱電偶電壓的絕對值。
首先,測量熱電偶兩條線之間的電壓(V1)。然后,測量RTD電壓并通過查找表將其轉(zhuǎn)換為溫度。接著,將此溫度轉(zhuǎn)換為其等效熱電偶電壓(V2)。然后,將V1和V2相加,以得出整體熱電偶電壓,接著將此值轉(zhuǎn)換為最終的溫度測量結果。
最后,采用分段線性方案來計算最終的溫度值。固定數(shù)量的電壓各自對應的溫度存儲在一個數(shù)組中,其間的值則利用相鄰點的線性插值法計算。圖3給出了使用理想熱電偶電壓時的算法誤差。圖4顯示了使用ADuC7060/ADuC7061上的ADC0引腳測量整個熱電偶工作范圍內(nèi)的52個熱電偶電壓時獲得的誤差。最差情況的總誤差小于1°C。
圖3. 通過分段線性逼近法利用52個校準點和理想測量值計算時的誤差
圖4. 通過分段線性逼近法利用在ADuC7060/ADuC7061的ADC0引腳處測量的52個校準點計算時的誤差
RTD溫度是運用查找表計算出來的,并且對RTD的運用方式與對熱電偶一樣。注意,描述RTD溫度與電阻關系的多項式與描述熱電偶的多項式不同。
設計支持包中的源代碼是利用KEILμVision V3.90生成的。
常見變化
可不使用外部RTD而改用 ADT7311 溫度傳感器來測量冷結溫度。
需要一個額外的外部穩(wěn)壓器來為ADT7311供電。該電路中用到了ADP7102,但也可使用ADP120。
如果微控制器上需要更多GPIO引腳,則可選擇采用48引腳LFCSP或48引腳LQFP封裝的ADuC7060。請注意,ADuC7060/ADuC7061可通過標準JTAG接口進行編程或調(diào)試。
使用外部基準電阻作為RTD測量的基準源時,建議以單位增益模式使用運算放大器來對VREF+引腳的輸入進行緩沖。這是為了確保進入VREF+引腳的輸入泄漏電流不會有損于測量精度。圖9中的OP193就是針對此目的。圖1顯示了額定工作溫度范圍為?40°C至+150°C的AD8628。
對于更寬的溫度范圍,可以使用不同的熱電偶,例如J型熱電偶。為使冷結補償誤差最小,可以讓一個熱敏電阻與實際的冷結接觸,而不是將其放在PCB上。
針對冷結溫度測量,可以用一個外部數(shù)字溫度傳感器來代替RTD和外部基準電阻。例如,ADT7311可以通過I2C接口連接到ADuC7060/ADuC7061。
電路評估與測試
SENT接口測試
評估SENT接口輸出時,利用數(shù)字示波器和邏輯分析儀。測試時間僅為1個SENT時鐘周期(100μs),這是SENT標準允許的最大值。這項實施方案的限制因素包括以下幾點:
定時器FIQ中斷延遲的變化。ARM7的中斷延遲最高可達45個CPU時鐘。CPU時鐘頻率為10.24 MHz時,此延遲最高可達4.4μs。最小值為5個CPU時鐘(0.5μs)。當ARM7內(nèi)核正在執(zhí)行LDMIA或STMIA(從存儲器加載或向其中存儲多個值)時,延遲狀況最差。選擇“Split Load and StoreMultiple(獨立加載和存儲多項)”編譯器選項即可最大限度地避免此問題,具體方法見圖5。
ADuC7060/ ADuC7061 上的10.24 MHz振蕩器在最差情況下的精度為±3%,工作溫度范圍為?40°C至+125°C。
圖5. 選擇“Split Load and Store Multiple(獨立加載和存儲多項_”選項
盡管存在這些限制,但選擇1個SENT時鐘周期(100μs)時,這種實施方案仍完全符合SENT規(guī)范的±20%時序精度要求。
圖1中的SENT輸出上考慮到了EMC濾波器。為此濾波器選擇值(R1、C1、C2),以滿足目標發(fā)射器輸出波形,如圖6所示,從而降低因SENT輸出而造成的EMC輻射。
這里只對此濾波器做了有限測試;因此,忽略了該輸出濾波器的電阻和電容值,如圖1所示(R1、C1和C2)。
圖6. SENT整形波形發(fā)射器輸出示例
為了進一步測試和評估該電路,這里單獨評估了熱電偶測量和RTD測量。
評論
查看更多