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