基于CAN總線的溫度檢測設計
為了避免因干擾而產生誤動作,軟件采取了一些冗余和容錯處理,在A/D模塊處理采樣數據時,采用了軟件濾波措施,以濾除電路中可能會出現的尖峰干擾。
方法為連續采樣五次,通過比較判斷,去掉其中的最大值和最小值,其余三次的值求和后取平均值,把平均值作為CPU用來劃分溫度范圍的有效數據。數據包的解析和封裝都遵循CAN的應用層協議,主程序流程如圖4所示。
圖4主程序流程
當CPU檢測到溫度出現異常,會根據溫度異常范圍向上位機發出溫度異常警報,這是該節點CPU唯一主動向上位機發出的數據幀。該節點的溫度相關數據存放在緩沖區,在沒有收到上位機數據請求的時候,該緩沖區的數據會不斷的被新的數據刷新,以保證該節點數據的實時性,中斷流程如圖5所示。
圖5CAN接收中斷流程
采樣值的量化方法
采樣值的準確量化是溫控電路正常工作的關鍵,這里采用以下換算辦法來進行量化。設經過信號調理后的電壓為Ui,則-10V
Ui=-10V+ΔT?Kt=-10V+55℃×0.111V/℃=-3.895V。
Ui轉換為數字量后,每個數字量對應電壓值為19.531mV,用Ks表示??梢郧蟮脭底至孔兓蜏囟茸兓g的對應關系:Kt/Ks=(0.111V/℃)/(19.531mV/數字量)=5.683數字量/℃。
其他溫度對應的數字量也可以通過以上方法算出。
SPI接口通信
PIC16F87x通過SPI接口和MCP2510進行數據交換。
MCP2510設計可與許多微控制器的串行外設接口(SPI)直接相連。外部數據和命令通過SI引腳傳送到器件中,而數據在SCK時鐘信號的上升沿傳送進去。












評論