0 引言
現代工業控制領域通常要測量很多信號,并將其轉化為計算機可以識別的二進制信號,并利用計算機監視和記錄各種測量的信號。這個過程就要涉及到信號的采集和處理。CAN總線是一種串行多主總線,它卓越的特性、極高的可靠性和獨特的設計,特別適合工業過程監控設備
的互連,因此,越來越受到工業界的重視,并已公認為最有前途的現場總線之一。本文介紹了基于STM32和CAN總線的溫度監控系統的設計,通過上位機與下位機的通信,實現對溫度數據的監控,并經初步實驗達到了設計的要求。
1 系統總體方案概述
系統總體框圖如圖l所示,本系統采用主站+從站的結構,CAN主站主要實現溫度數據的存儲以及CAN總線協議和串口協議之間的橋接,CAN 從站主要實現溫度的采集。CAN從站采集的溫度,經過CAN總線傳送到CAN主站,主站將各從站的溫度值傳送到系統上位機中。上位機對各點的數據進行實時曲線顯示并進行存儲,上位機可以設定報警值,當節點溫度超過設定值的時候,上位機發出報警聲。在沒有上位機的場合,主站將數據以文本文檔的形式存儲在主站的SD卡中。
2 系統硬件設計
2.1 CAN主站硬件設計
主站電路如圖2所示,主要有電源模塊、STM32模塊、CAN收發器模塊、RS232串口模塊和SD卡模塊。
其中STM32模塊由STM32F103RBT6和周邊時鐘、復位、調試等組成。電源模塊由外部輸入+5V電壓,經線性壓降AMS1117-3.3V后供 STM32使用。CAN收發器模塊采甩NXP的高速收發器TJA1040,TJA1040是PCA82C250的替代品,它完全符合ISO 11898標準,具有高速、低功耗、低電磁輻射的優點。RS232電平轉換芯片采用MAX3232,它具有低功耗、高數據速率以及增強型ESD保護等特性。采用專有的低壓差發送輸出級,+3.0 V至+5.5V供電時利用內部雙電荷泵保證RS-232性能。工作時,電荷泵僅需要四個100 nF的小電容。SD卡模塊采用四線制SPI總線與SD卡相連接。
2.2 CAN從站硬件設計
從站電路如圖3所示,主要有電源模塊、STM32模塊,CAN收發器模塊,PT100模塊和從站地址選擇模塊。
其中電源模塊、STM32模塊和CAN收發器模塊與CAN主站相同。PT100模塊,采用傳感器測量電橋,為了保證電橋輸出電壓信號的穩定性,電橋的輸入電壓通過TL431穩至2.5V。從電橋獲取的差分信號通過兩級運放放大后輸入STM32的AD輸入口。從站地址選擇模塊由8位撥碼開關組成,連接到 STM32 I/O的PC6-PC13。
3 系統軟件設計
本系統軟件由CAN主站軟件、從站軟件以及Delphi上位機軟件構成。其中CAN主站和從站程序用C語言編寫,上位機程序用Obieet Pascal編寫。
3.1 CAN主站軟件設計
CAN主站的功能是發送遠程幀向從站查詢數據、通過AD的轉換結果計算芯片內部溫度傳感器的溫度值、接收從站發送的數據幀、發送溫度數據到上位機或存儲數據到SD卡。CAN主站程序如圖4所示。
寫SD卡部分程序流程圖如圖5所示,SD卡部分主要用到了移植的FATFS文件系統提供的訪問FAT卷的應用接口(Application Interface)。主要用到了以下函數:
·f_mount-注冊/注銷一個工作區域
·f_open-打開/創建一個文件
·f_close-關閉一個文件
·f_lseek-移動/寫指針,擴展文件大小
·f_puts-寫字符串
·f_printf-寫一個格式化字符串
3.2 CAN從站軟件設計
CAN從站的主要功能是通過AD轉換器檢測PT100電橋的差分輸出電壓,然后計算得出此節點的溫度值,最后通過CAN總線傳送給CAN主站。其中只有在 CAN從站收到與自己節點號相同的主站發送的遠程幀的時候,從站CAN控制器才發出一個數據幀。CAN從站程序流程圖如圖6所示。
3.3 Delphi上位機軟件設計
本上位機軟件主要實現了五個功能:實時曲線顯示當前各從節點的溫度;打印實時曲線;將實時曲線保存為圖片;將實時曲線的數據保存為TXT文檔以及實時溫度超過報警值時報警。
本系統上位機串口通訊控件采用SPCOMM,該控件具有豐富的與串口通信密切相關的屬性及事件,支持多線程;提供了對串口的各種操作。圖形控件采用TChart,TCharc是Delphi里面一個標準的圖形顯示控件。它可以靜態設計(At Design Time)也可以動態生成。該系統設計采用的版本為TeeChart 7;實時曲線部分流程圖如圖7所示。上位機程序完成后界面如圖8所示。
4 結束語
本文介紹了基于STM32和CAN總線的溫度監控系統的設計,初步實驗證明,上述的硬件及軟件設計基本達到了設計要求。本系統適用于多節點、遠距離的場合,并具有實時性好、可靠性高的特點,具有一定的應用價值。