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