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