摘要:本文提出了一種在小型集散控制系統中應用MSComm控件實現PC機與單片機的串行通信方法。這種通信方法具有投資小、硬件連接簡單、軟件設計簡單和操作方便的特點,能夠滿足通訊的要求,對于工業監控系統和數據采集系統具有一定的參考價值。
關鍵詞:集散系統 MSComm 單片機 串行通信
在工業檢測控制領域中,集散控制系統的結構通常是上位機采用PC機,目的是利用PC的強大數據計算功能,下位機可以是PLC,也可以是單片機,主要進行數據采集和控制操作。上位機與下位機的通訊可以采用工業總線,也可以采用串行通信。工業總線主要用于大型的集散控制系統;對于小型集散控制系統,采用工業總線的投資過大,并且需要對單片機和PC機進行工業總線接口設計。
1 系統硬件設計
系統硬件如圖1所示,由于89C52單片機的電平是TTL電平,與RS-232電平不能直接相連,所以89C52單片機與RS-232的連接通過MAX232來實現電平轉換:MAX的T2in端接到89C52的TXD端,用于89C52單片機發送數據,MAX232的T2out端接到89C52的RXD端,用于89C52單片機接收數據;MAX232的R2out連接到DB-9針連接器的第3腳(SD:發送數據腳),R2in連接到DB-9針連接器的第2腳(RD:接收數據腳)。
2 串行通訊協議說明
計算機采用查詢發送、中斷接收的通訊方式。單片機采用中斷接收、發送的通訊方式。
PC機向單片機發送的數據以數據串的形式給出。為了可靠,地址和命令連續發送兩遍。下位的單片機處于中斷接收狀態,當接收到地址時與自己的地址進行比較,如果與自己的地址相同,就接收控制命令和數據。單片機根據接收到的命令和數據進行操作:或進行控制操作,或進行數據發送。
PC機中可以在工程中添加MSComm控件,然后進行相應的屬性設置(波特率、奇偶校檢、停止位、發送與接收的觸發方式、發送數據的類型等)就可以用它來實現串行通信。為了完成PC機和單片機之間的串行通信,要求PC機串行通信的數據幀格式和波特率應該與單片機串行口的數據幀格式和波特率一致。
MSComm控件和單片機的串行口的設置如下。
MSComm控件的設置為:數據幀的格式為8位數據位,1位停止位,波特率為9600,數據采用ASCII碼。
單片機的串行口設置為:數據幀格式為8位數據位,1位停止位,波特率為9600,無奇偶校檢,串行口設定為方式2工作方式,中斷方式。
3 計算機通訊程序設計
①使用MFC AppWizard(exe)建立一個基于對話框的程序。
②添加ActiveX控件中的MSComm控件。設置控件的屬性:9600,n,8,1,;Rthreshoid=1;其它按缺省值。
③編寫通訊程序:PC機的串行口通信程序可以用VB來編寫,可以用VC來編寫,還可以用其它語言來編寫。
4 單片機通訊設計
單片機處于中斷接收狀態,檢測接受到的地址是否與自己的地址,如果不是自己的地址,則繼續處于等待接收狀態;如果是,則檢測接受的命令是請求發送數據命令還是控制命令,如果是請求發送數據命令,則向PC機發送采集來的數據,發送完數據返回到等待接收狀態;如果是控制命令,則進行相應的控制操作,操作結束返回到等待接收狀態。
5 結論
應用MSComm控件在小型集散控制系統中實現PC機與單片機的串行通信方法。具有投資小、硬件連接簡單、軟件設計簡單和操作方便的特點,經在煤礦井下人員定位系統中應用,效果良好,能夠滿足串行通信的要求。
參考文獻:
[1]趙波,李博.MSComm控件在儀器設備串行通信中的應用[A].江蘇省計量測試學術論文集(2010)[C].2010.
[2]王麗,雷秀,余建國.基于PC機與單片機AT89C52的串行通信協議設計[J].機電工程技術,2006(02).
[3]宋兵躍,吳軍輝,黃斌.單片機的高效串行通信研究[J].單片機與嵌入式系統應用,2010(01).
作者簡介:陳啟友(1958-),男,山東淄博人,工程師,現從事煤礦工程開采與管理工作。