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

時(shí)間:2022-03-17 10:00:45

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

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

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

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

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

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

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

3結(jié)論

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

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