LINE-HEIGHT: 24px; PADDING-TOP: 0px"> 因為系統(tǒng)對信號傳輸過程中的穩(wěn)定性和抗干擾能力要求很高,所以CAN接口采用高標準接口電路。電路圖如圖2所示。
?
圖2CAN接口硬件電路圖
CAN-bus接口電路采用+3.3V供電,選擇CTM8251A隔離CAN收發(fā)器。該芯片是3.3V工業(yè)級的隔離CAN收發(fā)器。CTD0信號連接主控芯片的CAN控制器的發(fā)送腳,CRD0信號連接CAN控制器的接收腳。C2.2 Flash接口電路設計
集中器需要對與之相連的每個電表表頭采集數(shù)據(jù),所以數(shù)據(jù)量較大,從而對存儲有著較高的要求,故選用ST的M25P64-VMF6TP。該芯片為64M串行接口閃存,增強數(shù)據(jù)傳輸時鐘速率為50MHz;讀的吞吐量為50Mbps;接口為簡單的4線SPI(串行外圍設備接口)接口;深度降功耗模式間斷功耗,電流消耗僅為1uA。
M25P64Flash芯片,通過SPI總線與ARM相連。SPI總線系統(tǒng)是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息,一般使用4條線:串行時鐘線(SCL)、主機輸入/從機輸出數(shù)據(jù)線MISO(SDO)、主機輸出/從機輸入數(shù)據(jù)線MOSI(SDI)和低電平有效的從機選擇線CS。SPI以主從方式工作,通常有一個主設備和一個或多個從設備。
圖3為ARM與Flash的連接電路圖。以下幾點說明:(1)SCL串行時鐘信號,由主設備產(chǎn)生;(2)SDO主設備數(shù)據(jù)輸出,從設備數(shù)據(jù)輸入;(3)SDI主設備數(shù)據(jù)輸入,從設備數(shù)據(jù)輸出;(4)CS為片選,從設備使能信號,由主設備控制。(5)對7、15、16角外接上拉電阻,提高芯片輸入信號的噪聲容限增強抗干擾能力。
?
圖3Flash接口硬件電路圖
3 集中器軟件設計
集中器系統(tǒng)采用數(shù)序程序設計,按功能模塊設計程序,由主程序調(diào)用各個功能模塊程序?qū)崿F(xiàn)各個相應功能,各個功能模塊通過調(diào)用底層函數(shù)完成相應的操作。具體流程見圖4,啟動后,開始初始化系統(tǒng)。系統(tǒng)進入等待命令模式,如果有上位機操作命令或有定時中斷發(fā)生則進入對時程序,對時如果超出一定時間還未成功則向上位機報警。
對時成功后,集中器繼續(xù)等待上位機的讀數(shù)命令或等待中斷讀數(shù)命令。當收到讀數(shù)的命令后,定時讀數(shù)使集中器按設置的時間,自動讀取表頭采集來的數(shù)據(jù);讀數(shù)使集中器讀取當前表頭的數(shù)據(jù)。
?
圖4系統(tǒng)軟件流程圖
集中器通過CAN總線可以掛載最多100個表頭,集中器發(fā)出CAN總線設備的ID。每個分系統(tǒng)表接收到對應的ID號后,根據(jù)系統(tǒng)發(fā)出的讀表頭命令來反饋數(shù)據(jù)。如果CAN通訊有故障,CAN控制器通訊將報故障。如系統(tǒng)回路正常,集中器的發(fā)送命令數(shù)據(jù)包。每幀CAN數(shù)據(jù)包含8字節(jié),因為每次讀數(shù)的數(shù)據(jù)流量不是很大,所以每次通訊只需要使用一幀CAN數(shù)據(jù)即可,表頭ID使用幀ID來識別,每個表頭對應獨立的幀ID。
集中器發(fā)送CAN數(shù)據(jù)命令包到CAN總線,表頭根據(jù)各自的ID選擇接收讀表命令后發(fā)送應答數(shù)據(jù)到CAN總線上。
集中器將接收到的應答數(shù)據(jù)提取出電表讀數(shù)存儲在flash中。CAN數(shù)據(jù)收發(fā)工作流程如圖5所示。
?
圖5數(shù)據(jù)收發(fā)流程圖
4 結(jié)