單片機與微機遠(yuǎn)程通信接口分析

時間:2022-03-17 10:00:45

導(dǎo)語:單片機與微機遠(yuǎn)程通信接口分析一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

單片機與微機遠(yuǎn)程通信接口分析

本文借鑒RS-232串口進行MCS-51單片機與計算機間遠(yuǎn)程通信接口的設(shè)計,針對串口通訊的硬件電路設(shè)計方式與實現(xiàn)路徑、MSComm控件所提供的處理通訊的方式進行了詳細(xì)介紹,并基于VB6.0軟件進行了單片機與微機遠(yuǎn)程通信程序的具體設(shè)計。測試結(jié)果表明,該通訊程序具備較強的運行可靠性,能夠為相關(guān)通訊系統(tǒng)的設(shè)計與開發(fā)提供借鑒意義。當(dāng)前單片機控制器主要以計算機作為控制中心,由單片機采集數(shù)據(jù)并經(jīng)由串口將數(shù)據(jù)發(fā)送至計算機端,由計算機向單片機下達控制命令,完成二者間的數(shù)據(jù)傳輸。在此過程中,計算機、單片機分別作為上位機和下位機,為保障在遠(yuǎn)程通信情況下上下位機間數(shù)據(jù)傳輸?shù)募皶r性與可靠性,還需針對其通訊實現(xiàn)方式進行優(yōu)化設(shè)計。

1單片機與微機串口通訊的硬件系統(tǒng)設(shè)計

1.1遠(yuǎn)程通信系統(tǒng)工作流程。以某主從式遠(yuǎn)程通信模型為例,該系統(tǒng)主要由中心站局域網(wǎng)、PSTN、終端機三部分組成,其中的中心站局域網(wǎng)包含數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)管理工作站、數(shù)據(jù)采集工作站與外置Modem,終端機為若干傳感器,系統(tǒng)主要任務(wù)是借助分布在不同地區(qū)的終端機每30min采集一次數(shù)據(jù),將采集到的數(shù)據(jù)發(fā)送回中心站,并存入數(shù)據(jù)庫中留待后續(xù)進行具體統(tǒng)計分析。系統(tǒng)主要圍繞數(shù)據(jù)采集工作站與各終端機間建立數(shù)據(jù)通信,終端機借助單片機每60s讀取一次傳感器數(shù)據(jù),將30min內(nèi)的傳感器數(shù)據(jù)匯總后存儲至RAM中,同時具有數(shù)據(jù)備份功能;利用單片機針對Modem芯片運行狀態(tài)進行實時監(jiān)測,針對通信請求作出快速響應(yīng),并待通信連接成功后依據(jù)中心站傳達的控制命令執(zhí)行具體操作;數(shù)據(jù)采集工作站則每30min連接各終端機,從終端機處讀取數(shù)據(jù),完成整體通信流程。1.2串行通訊接口電路設(shè)計。以異步串行通訊總線接口RS-232C作為MCS-51單片機與微機間的串行通訊接口設(shè)計的參考標(biāo)準(zhǔn),可滿足數(shù)據(jù)傳輸速率在2000bps以內(nèi)的通信需求,通信電纜最長傳輸距離為15m。該標(biāo)準(zhǔn)采用負(fù)邏輯,規(guī)定將+3V~+15V范圍內(nèi)的任意電壓表示為邏輯0,將-3V~-15V范圍內(nèi)的任意電壓表示為邏輯1??紤]到接口電路與可編程接口芯片多為TTL電平和CMOS電平,在單片機與微機串口通訊時需涉及到電平轉(zhuǎn)換,原有RS-232C標(biāo)準(zhǔn)下的通訊接口需采用2片集成電路,并且需額外增設(shè)3組電源,一定程度上增大了系統(tǒng)的功耗與體積,因此本文擬采用MAX232作為串行通訊接口芯片,該芯片僅需設(shè)置1組+5V電源與4個電容,即可在串口通訊時完成電平轉(zhuǎn)換。在單片機與微機的硬件連接上,將MCS-51單片機的數(shù)據(jù)發(fā)送端TXD與MAX232芯片的T1連接,將其數(shù)據(jù)接收端與MAX232芯片的R1連接,完成通信接口電路的設(shè)計。1.3串行通訊控件使用。選取MSComm控件經(jīng)由串行端口實現(xiàn)數(shù)據(jù)的傳輸與接收,承擔(dān)單片機與微機間的串行通訊功能。MSComm控件可提供以下兩種處理通訊的方式:其一是事件驅(qū)動方式,在串口接收緩沖區(qū)中出現(xiàn)字符、CD或RTS線上一個字符到達時,可利用該控件中的OnComm事件實現(xiàn)對通訊事件的捕獲與處理,同時也可以利用OnComm事件有效檢查出通訊錯誤問題并進行處理。所有通訊事件、通訊錯誤的列表,參閱CommEvent屬性。利用OnComm事件還可以在處理函數(shù)環(huán)節(jié)加入自己的處理代碼,為編程創(chuàng)設(shè)了便捷條件,具有程序響應(yīng)速度快、可靠程度高等性能優(yōu)勢。不同MSComm控件均含有與之對應(yīng)的串行端口,倘若應(yīng)用程序存在訪問多個串行端口的需求,還需注重使用與所需訪問的串行端口數(shù)量一致的MSComm控件。其二是查詢方式,該處理通訊的方式本質(zhì)上等同于事件驅(qū)動方式,但在部分使用情況下具備更高的便捷度,為實現(xiàn)應(yīng)用程序的各關(guān)鍵功能,可通過檢查CommEvent屬性的值完成通訊事件、通訊錯誤的查詢。

2單片機與微機遠(yuǎn)程通信程序的設(shè)計與實現(xiàn)

2.1通訊協(xié)議設(shè)計。由于在單片機與微機遠(yuǎn)程通信的過程中存在一定量的外界干擾因素,將影響到數(shù)據(jù)傳輸?shù)目煽啃?,因此為保障上位機與下位機間通訊的可靠性,需在完成一次數(shù)據(jù)傳送的處理后進行校驗,將數(shù)據(jù)傳遞格式約定為以下四種形式:其一是長度為1字節(jié),取值范圍為0x02,內(nèi)容為起始符,即數(shù)據(jù)包的起始字節(jié);其二是長度為1字節(jié),取值范圍為0x00-0xFF,內(nèi)容為數(shù)據(jù)長度,即表示數(shù)據(jù)的長度;其三是長度為0-N字節(jié),取值范圍為XX...,內(nèi)容為數(shù)據(jù),即傳遞的有用數(shù)據(jù);其四是長度為1字節(jié),取值范圍為0x00-0xFF,內(nèi)容為校驗和,即數(shù)據(jù)包內(nèi)除校驗和以外的所有字節(jié)的算數(shù)和。2.2通訊實現(xiàn)路徑。選取VB6.0作為通訊軟件程序設(shè)計環(huán)境,利用MSComm控件進行計算機程序的開發(fā)。MSComm控件利用串行端口可提供完善的數(shù)據(jù)發(fā)送與接收功能,實現(xiàn)與其他設(shè)備間的便捷連接與高效通訊,并且提供事件驅(qū)動方式與查詢方式兩種信息處理方式。針對該通信程序設(shè)計主要采用事件驅(qū)動方式,在應(yīng)用MSComm控件時需從CommPort、Set-tings、PortOpen、Input、Output屬性中單片機與微機遠(yuǎn)程通信接口電路的設(shè)計及編程分析天津科技大學(xué)方雪瑩選取串口連接所需運用的屬性,待完成屬性的建立后,設(shè)置Output屬性并對下位機發(fā)出控制命令,計算機程序即會依據(jù)Rthreshold值觸發(fā)OnComm事件,以此實現(xiàn)數(shù)據(jù)接收功能。假設(shè)將通訊端口設(shè)為端口1,參數(shù)初始化為“9600,N,8,1”,各參數(shù)分別代指波特率、奇偶校驗、數(shù)據(jù)位及停止位,則程序代碼設(shè)計為:MSComm1.CommPort=intPort’設(shè)置COMMSComm1.Settings=strSet’設(shè)置通信口參數(shù)MSComm1.InBufferSize=4’設(shè)置MSComm1接收緩沖區(qū)為4字節(jié)MSComm1.OutBufferSize=4’設(shè)置MSComm1發(fā)送緩沖區(qū)為4字節(jié)MSComm1.InputMode=comInputModeBinary’設(shè)置接收數(shù)據(jù)模式為二進制形式MSComm1.InputLen=1’設(shè)置Input一次從接收緩沖讀取字節(jié)數(shù)為1MSComm1.SThreshold=1’設(shè)置Output一次從發(fā)送緩沖讀取字節(jié)數(shù)為1MSComm1.InBufferCount=0’清除接收緩沖區(qū)MSComm1.OutBufferCount=0’清除發(fā)送緩沖區(qū)MSComm1.RThreshold=1’設(shè)置接收一個字節(jié)產(chǎn)生OnComm事件IfMSComm1.PortOpen=FalseThen’判斷通信口是否打開MSComm1.PortOpen=True’打開通信口MsgBox”設(shè)置完成”IfErrThen'錯誤處理MsgBox”串口通信無效”ExitSubEndIfEndIf參數(shù)初始化設(shè)置:intPort=1strSet=”9600,n,8,1”若想使上位機向下位機發(fā)出控制命令,其表達式應(yīng)為:2.3單片機通訊軟件流程。本文采用的單片機芯片型號為MCS-51,以KEILC51為編程軟件、基于C51編程語言進行單片機端通訊程序的開發(fā),其串行口包含4種工作方式,通過控制串行控制寄存器的SM0、SM1進行工作方式的選取與切換。本文選取方式1作為工作方式,該工作方式為10位發(fā)送或接收,其中包含1位起始位、1位結(jié)束位于8位數(shù)據(jù)位;波特率為可變數(shù)值,主要由定時器/計數(shù)器1的溢出率與PCON中的SMOD位決定。當(dāng)選取定時器/計數(shù)器1作為波特率發(fā)生器時,可使定時器在模式2下工作,定時器1的TH1值計算公式為:在該單片機系統(tǒng)中波特率取值為9600bps,振蕩頻率為11.06MHz,SMOD為0,將上述數(shù)值代入公式中即可計算得出TH1為0xFDH。該單片機通訊軟件的流程如下:開始——初始化存儲單——設(shè)置波特率、選取終端方式、開串口中斷——等待上位機命令——接受命令,關(guān)中斷——判斷是控制字?——是:根據(jù)控制字轉(zhuǎn)入相應(yīng)處理子程序;否,重新等待上位機命令。2.4應(yīng)用實例分析?;趩纹瑱C與計算機遠(yuǎn)程通信接口設(shè)計原理進行POS機系統(tǒng)設(shè)計,首先在通信模型設(shè)計上,選用帶有嵌入TCP/IP協(xié)議棧的KCU,實現(xiàn)無線通信模塊與網(wǎng)絡(luò)硬件接口的連接,保障無線通信連接的成功運行。其次在無線通信系統(tǒng)的技術(shù)應(yīng)用上,基于GPRS技術(shù)有效發(fā)揮移動網(wǎng)絡(luò)在支付過程中的應(yīng)用優(yōu)勢,用戶僅需在網(wǎng)絡(luò)覆蓋環(huán)境下即可使用無線POS機,可在2s內(nèi)建立連接,并且其操作界面較為簡單、人性化,無需安裝額外的使用線路,易于操作。最后是在控制軟件的設(shè)計上,主要應(yīng)用到以下兩種控制軟件:其一是計算機通信程序,通??蛇x用VB、VC等用于開發(fā)界面通訊程序,利用MSComm控件提供串口通訊,實現(xiàn)對數(shù)據(jù)輸出與發(fā)送的有效控制;其二是單片機編程,可選取帶有嵌入式操作系統(tǒng)的MCU,有廠家提供固定的程序構(gòu)架,僅需依據(jù)用戶使用需求進行管腳配置信息的修改,即可滿足實際應(yīng)用功能。

3結(jié)論

本文以單片機與微機遠(yuǎn)程通信接口電路設(shè)計與通信程序設(shè)計作為主要研究對象,選取VB6.0作為軟件程序設(shè)計與開發(fā)平臺,基于MSComm控件建立MCS-51單片機與計算機間的串口通訊,系統(tǒng)經(jīng)由調(diào)試后具有較強的運行可靠性,且整體設(shè)計過程較為簡單、呈現(xiàn)出良好的通用性,具備有效適用價值。

作者:方雪瑩 單位:天津科技大學(xué)