基于CAN總線(xiàn)的溫度檢測節點(diǎn)設計(圖)
在對電子點(diǎn)火模塊的測試中,為了模擬電子點(diǎn)火系統的真實(shí)工況,電子點(diǎn)火模塊往往被置于高于常溫的環(huán)境下進(jìn)行電子點(diǎn)火實(shí)驗,以獲得最接近真實(shí)汽車(chē)運行工況的點(diǎn)火參數數據。由于電子點(diǎn)火模塊自身的發(fā)熱,其核心元件的溫度成為影響電子模塊性能的重要因素;另外,還要考慮環(huán)境溫度是否達到模擬真實(shí)工況的要求等。
本文介紹了一種應用LM35溫度傳感器和PICMicro的溫度檢測節點(diǎn)的設計方案,用于檢測在模擬汽車(chē)電子點(diǎn)火的過(guò)程中,電子點(diǎn)火模塊的核心模塊溫度和環(huán)境溫度,將闡明模塊結構、工作原理及采樣值量化的方法。
節點(diǎn)原理與結構
該溫度檢測節點(diǎn)由傳感器電路、信號調理電路、單片機應用系統、CAN總線(xiàn)接口等構成。電路基本工作原理是:傳感器電路將感應到的溫度信號以電壓的形式輸出到信號調理電路,信號經(jīng)過(guò)調理后輸入到A/D采樣電路,由ADC將數字量值送給單片機系統。單片機系統將監控實(shí)時(shí)溫度,當溫度超過(guò)警戒值和危險值時(shí),單片機將主動(dòng)發(fā)送警告信息到上位機,提醒操作人員檢查。模塊邏輯結構如圖1所示。
圖1 溫度檢測節點(diǎn)邏輯結構
傳感器電路采用溫度傳感器LM35,供電電壓為15V直流,工作電流為120mA ,功耗極低,在全溫度范圍工作時(shí),電流變化很小,電壓輸出采用差動(dòng)信號方式,由2、3引腳直接輸出。LM35輸出信號經(jīng)過(guò)一個(gè)由RC組成的LP濾波器,濾除高頻的噪聲干擾。
本節點(diǎn)的核心MCU是PIC16F87x,是Microchip公司推出的低功耗8位單片機。PIC16F87x擁有精簡(jiǎn)指令集,執行速度為200ns。CAN 控制器采用Microchip公司的MCP2510,總線(xiàn)驅動(dòng)器采用PCA82C250,總線(xiàn)隔離電路采用光耦6N317,信號調理電路采用LF412。溫度監測模塊的硬件結構如圖2所示。
圖2 溫度監測模塊硬件結構
信號調理電路主要完成對傳感器信號放大和限幅的功能,將傳感器電路輸出的變化范圍為2V左右的直流電壓,調理為符合PICMicro的AD接口的電壓范圍,既不能超過(guò)AD采樣的量程,又要有相當的信號精度。單片機通過(guò)A/D采樣通道采集傳感器的溫度數據,并計算溫度范圍。
外圍設備電路為PIC16F87x最小系統運行所需要的必要外設。PIC16F87x通過(guò)SPI總線(xiàn)與MCP2510進(jìn)行數據交換,完成CAN總線(xiàn)數據包的發(fā)送和接收,其接口電路如圖3所示。
圖3 PIC16F877與MCP2510的接口電路
其中,SCK為SPI總線(xiàn)時(shí)鐘,PIC16F87x模塊的SPI接口接MCP2510的SI、SO、SCK,RA4與RA1分別控制MCP2510的芯片復位和片選。INT接受MCP2510的中斷請求。
系統軟件設計
1系統軟件流程
為了避免因干擾而產(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所示。
圖5 CAN接收中斷流程
2 采樣值的量化方法
采樣值的準確量化是溫控電路正常工作的關(guān)鍵,這里采用以下?lián)Q算辦法來(lái)進(jìn)行量化。設經(jīng)過(guò)信號調理后的電壓為Ui,則-10VUi10V,已知-10V對應的溫度是-55℃,10V對應的溫度為125℃,易求得比例因數Kt = 0.111V/℃。溫度為0℃時(shí),ΔT= 55℃(相當于-55℃時(shí)的變化量)。
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ò)以上方法算出。
3 SPI接口通信
PIC16F87x通過(guò)SPI接口和MCP2510進(jìn)行數據交換。
MCP2510 設計可與許多微控制器的串行外設接口(SPI)直接相連。外部數據和命令通過(guò)SI引腳傳送到器件中,而數據在SCK時(shí)鐘信號的上升沿傳送進(jìn)去。
MCP2510在SCK下降沿通過(guò)SO 引腳發(fā)送表1列出了所有操作的指令字節。
以PIC16F87x向MCP2510發(fā)送讀指令為例,來(lái)說(shuō)明SPI接口通信過(guò)程。
在讀操作開(kāi)始時(shí),CS 引腳將被置為低電平。隨后讀指令和8位地址碼(A7~A0)將被依次送入MCP2510。在接收到讀指令和地址碼之后,MCP2510指定地址寄存器中的數據將被移出通過(guò)SO引腳進(jìn)行發(fā)送。每一數據字節移出后,器件內部的地址指針將自動(dòng)加一以指向下一地址。因此可以對下一個(gè)連續地址寄存器進(jìn)行讀操作。通過(guò)該方法可以順序讀取任意一個(gè)連續地址寄存器中的數據。通過(guò)拉高 CS 引腳電平可以結束讀操作,如圖6所示。
圖6 SPI 接口通信時(shí)序
結束語(yǔ)
基于LM35開(kāi)發(fā)的溫控節點(diǎn)工作穩定性強、可靠性高、且具有體積小、靈敏度高、響應時(shí)間短、抗干擾能力強等特點(diǎn)。該節點(diǎn)成本低廉,器件均為常規元件,有較高的工程價(jià)值。本節點(diǎn)擁有CAN接口,既可以作為一個(gè)獨立的檢測系統,也可以作為分布式測試系統的一個(gè)關(guān)鍵部分。CAN的上層協(xié)議都可以在軟件中實(shí)現,使得本節點(diǎn)接口靈活,不受上層協(xié)議的限制。
DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY
評論