基于CAN總線的溫度檢測節(jié)點設(shè)計
外圍設(shè)備電路為PIC16F87x最小系統(tǒng)運行所需要的必要外設(shè)。PIC16F87x通過SPI總線與MCP2510進行數(shù)據(jù)交換,完成CAN總線數(shù)據(jù)包的發(fā)送和接收,其接口電路如圖3所示。
圖3 PIC16F877與MCP2510的接口電路
其中,SCK為SPI總線時鐘,PIC16F87x模塊的SPI接口接MCP2510的SI、SO、SCK,RA4與RA1分別控制MCP2510的芯片復(fù)位和片選。INT接受MCP2510的中斷請求。
系統(tǒng)軟件設(shè)計
1系統(tǒng)軟件流程
為了避免因干擾而產(chǎn)生誤動作,軟件采取了一些冗余和容錯處理,在A/D模塊處理采樣數(shù)據(jù)時,采用了軟件濾波措施,以濾除電路中可能會出現(xiàn)的尖峰干擾。
方法為連續(xù)采樣五次,通過比較判斷,去掉其中的最大值和最小值, 其余三次的值求和后取平均值,把平均值作為CPU用來劃分溫度范圍的有效數(shù)據(jù)。數(shù)據(jù)包的解析和封裝都遵循CAN的應(yīng)用層協(xié)議,主程序流程如圖4所示。
圖4 主程序流程
評論