單片機與微機遠程通信接口分析
時間:2022-03-17 10:00:45
導語:單片機與微機遠程通信接口分析一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
本文借鑒RS-232串口進行MCS-51單片機與計算機間遠程通信接口的設計,針對串口通訊的硬件電路設計方式與實現路徑、MSComm控件所提供的處理通訊的方式進行了詳細介紹,并基于VB6.0軟件進行了單片機與微機遠程通信程序的具體設計。測試結果表明,該通訊程序具備較強的運行可靠性,能夠為相關通訊系統的設計與開發提供借鑒意義。當前單片機控制器主要以計算機作為控制中心,由單片機采集數據并經由串口將數據發送至計算機端,由計算機向單片機下達控制命令,完成二者間的數據傳輸。在此過程中,計算機、單片機分別作為上位機和下位機,為保障在遠程通信情況下上下位機間數據傳輸的及時性與可靠性,還需針對其通訊實現方式進行優化設計。
1單片機與微機串口通訊的硬件系統設計
1.1遠程通信系統工作流程。以某主從式遠程通信模型為例,該系統主要由中心站局域網、PSTN、終端機三部分組成,其中的中心站局域網包含數據庫服務器、數據管理工作站、數據采集工作站與外置Modem,終端機為若干傳感器,系統主要任務是借助分布在不同地區的終端機每30min采集一次數據,將采集到的數據發送回中心站,并存入數據庫中留待后續進行具體統計分析。系統主要圍繞數據采集工作站與各終端機間建立數據通信,終端機借助單片機每60s讀取一次傳感器數據,將30min內的傳感器數據匯總后存儲至RAM中,同時具有數據備份功能;利用單片機針對Modem芯片運行狀態進行實時監測,針對通信請求作出快速響應,并待通信連接成功后依據中心站傳達的控制命令執行具體操作;數據采集工作站則每30min連接各終端機,從終端機處讀取數據,完成整體通信流程。1.2串行通訊接口電路設計。以異步串行通訊總線接口RS-232C作為MCS-51單片機與微機間的串行通訊接口設計的參考標準,可滿足數據傳輸速率在2000bps以內的通信需求,通信電纜最長傳輸距離為15m。該標準采用負邏輯,規定將+3V~+15V范圍內的任意電壓表示為邏輯0,將-3V~-15V范圍內的任意電壓表示為邏輯1。考慮到接口電路與可編程接口芯片多為TTL電平和CMOS電平,在單片機與微機串口通訊時需涉及到電平轉換,原有RS-232C標準下的通訊接口需采用2片集成電路,并且需額外增設3組電源,一定程度上增大了系統的功耗與體積,因此本文擬采用MAX232作為串行通訊接口芯片,該芯片僅需設置1組+5V電源與4個電容,即可在串口通訊時完成電平轉換。在單片機與微機的硬件連接上,將MCS-51單片機的數據發送端TXD與MAX232芯片的T1連接,將其數據接收端與MAX232芯片的R1連接,完成通信接口電路的設計。1.3串行通訊控件使用。選取MSComm控件經由串行端口實現數據的傳輸與接收,承擔單片機與微機間的串行通訊功能。MSComm控件可提供以下兩種處理通訊的方式:其一是事件驅動方式,在串口接收緩沖區中出現字符、CD或RTS線上一個字符到達時,可利用該控件中的OnComm事件實現對通訊事件的捕獲與處理,同時也可以利用OnComm事件有效檢查出通訊錯誤問題并進行處理。所有通訊事件、通訊錯誤的列表,參閱CommEvent屬性。利用OnComm事件還可以在處理函數環節加入自己的處理代碼,為編程創設了便捷條件,具有程序響應速度快、可靠程度高等性能優勢。不同MSComm控件均含有與之對應的串行端口,倘若應用程序存在訪問多個串行端口的需求,還需注重使用與所需訪問的串行端口數量一致的MSComm控件。其二是查詢方式,該處理通訊的方式本質上等同于事件驅動方式,但在部分使用情況下具備更高的便捷度,為實現應用程序的各關鍵功能,可通過檢查CommEvent屬性的值完成通訊事件、通訊錯誤的查詢。
2單片機與微機遠程通信程序的設計與實現
2.1通訊協議設計。由于在單片機與微機遠程通信的過程中存在一定量的外界干擾因素,將影響到數據傳輸的可靠性,因此為保障上位機與下位機間通訊的可靠性,需在完成一次數據傳送的處理后進行校驗,將數據傳遞格式約定為以下四種形式:其一是長度為1字節,取值范圍為0x02,內容為起始符,即數據包的起始字節;其二是長度為1字節,取值范圍為0x00-0xFF,內容為數據長度,即表示數據的長度;其三是長度為0-N字節,取值范圍為XX...,內容為數據,即傳遞的有用數據;其四是長度為1字節,取值范圍為0x00-0xFF,內容為校驗和,即數據包內除校驗和以外的所有字節的算數和。2.2通訊實現路徑。選取VB6.0作為通訊軟件程序設計環境,利用MSComm控件進行計算機程序的開發。MSComm控件利用串行端口可提供完善的數據發送與接收功能,實現與其他設備間的便捷連接與高效通訊,并且提供事件驅動方式與查詢方式兩種信息處理方式。針對該通信程序設計主要采用事件驅動方式,在應用MSComm控件時需從CommPort、Set-tings、PortOpen、Input、Output屬性中單片機與微機遠程通信接口電路的設計及編程分析天津科技大學方雪瑩選取串口連接所需運用的屬性,待完成屬性的建立后,設置Output屬性并對下位機發出控制命令,計算機程序即會依據Rthreshold值觸發OnComm事件,以此實現數據接收功能。假設將通訊端口設為端口1,參數初始化為“9600,N,8,1”,各參數分別代指波特率、奇偶校驗、數據位及停止位,則程序代碼設計為:MSComm1.CommPort=intPort’設置COMMSComm1.Settings=strSet’設置通信口參數MSComm1.InBufferSize=4’設置MSComm1接收緩沖區為4字節MSComm1.OutBufferSize=4’設置MSComm1發送緩沖區為4字節MSComm1.InputMode=comInputModeBinary’設置接收數據模式為二進制形式MSComm1.InputLen=1’設置Input一次從接收緩沖讀取字節數為1MSComm1.SThreshold=1’設置Output一次從發送緩沖讀取字節數為1MSComm1.InBufferCount=0’清除接收緩沖區MSComm1.OutBufferCount=0’清除發送緩沖區MSComm1.RThreshold=1’設置接收一個字節產生OnComm事件IfMSComm1.PortOpen=FalseThen’判斷通信口是否打開MSComm1.PortOpen=True’打開通信口MsgBox”設置完成”IfErrThen'錯誤處理MsgBox”串口通信無效”ExitSubEndIfEndIf參數初始化設置:intPort=1strSet=”9600,n,8,1”若想使上位機向下位機發出控制命令,其表達式應為:2.3單片機通訊軟件流程。本文采用的單片機芯片型號為MCS-51,以KEILC51為編程軟件、基于C51編程語言進行單片機端通訊程序的開發,其串行口包含4種工作方式,通過控制串行控制寄存器的SM0、SM1進行工作方式的選取與切換。本文選取方式1作為工作方式,該工作方式為10位發送或接收,其中包含1位起始位、1位結束位于8位數據位;波特率為可變數值,主要由定時器/計數器1的溢出率與PCON中的SMOD位決定。當選取定時器/計數器1作為波特率發生器時,可使定時器在模式2下工作,定時器1的TH1值計算公式為:在該單片機系統中波特率取值為9600bps,振蕩頻率為11.06MHz,SMOD為0,將上述數值代入公式中即可計算得出TH1為0xFDH。該單片機通訊軟件的流程如下:開始——初始化存儲單——設置波特率、選取終端方式、開串口中斷——等待上位機命令——接受命令,關中斷——判斷是控制字?——是:根據控制字轉入相應處理子程序;否,重新等待上位機命令。2.4應用實例分析。基于單片機與計算機遠程通信接口設計原理進行POS機系統設計,首先在通信模型設計上,選用帶有嵌入TCP/IP協議棧的KCU,實現無線通信模塊與網絡硬件接口的連接,保障無線通信連接的成功運行。其次在無線通信系統的技術應用上,基于GPRS技術有效發揮移動網絡在支付過程中的應用優勢,用戶僅需在網絡覆蓋環境下即可使用無線POS機,可在2s內建立連接,并且其操作界面較為簡單、人性化,無需安裝額外的使用線路,易于操作。最后是在控制軟件的設計上,主要應用到以下兩種控制軟件:其一是計算機通信程序,通常可選用VB、VC等用于開發界面通訊程序,利用MSComm控件提供串口通訊,實現對數據輸出與發送的有效控制;其二是單片機編程,可選取帶有嵌入式操作系統的MCU,有廠家提供固定的程序構架,僅需依據用戶使用需求進行管腳配置信息的修改,即可滿足實際應用功能。
3結論
本文以單片機與微機遠程通信接口電路設計與通信程序設計作為主要研究對象,選取VB6.0作為軟件程序設計與開發平臺,基于MSComm控件建立MCS-51單片機與計算機間的串口通訊,系統經由調試后具有較強的運行可靠性,且整體設計過程較為簡單、呈現出良好的通用性,具備有效適用價值。
作者:方雪瑩 單位:天津科技大學
- 上一篇:單片機特異靶型計數方法
- 下一篇:無人駕駛系統設計思考