【正文】
雜志:促進(jìn)科技, 2020 年,河北省科學(xué)院卷。用 RS232 協(xié)議實現(xiàn)兩臺 PC 機間的串行通信是實現(xiàn)主控機與外圍通信的前提,為以后實現(xiàn)更加復(fù)雜的設(shè)備間通信奠定了基礎(chǔ)。但此方法只能簡單驗證不準(zhǔn)確。應(yīng)用程序?qū)崿F(xiàn)了選擇串口、打開串口、關(guān)閉串口、發(fā)送接收數(shù)據(jù)等功能,同時又 可通過應(yīng) 用程序設(shè)置通信參數(shù) (包括波特率、數(shù)據(jù)位、停止位和奇偶校驗位等)。 ,即 RS232 標(biāo)準(zhǔn)以及接口, 學(xué)習(xí)了串行通 信的基本原理,串行通信的通信參數(shù),例如波特率、數(shù)據(jù)位、停止位和奇偶校驗位等。如圖 419 所示: 圖 419 系統(tǒng)提示框 36 本章小結(jié) 本章介紹了 Windows 編程下的 MFC 和串行通信控件 MSComm,詳細(xì)的描述了利用 MFC 和串行通信控件 MSComm 實現(xiàn)兩臺 PC 機間的數(shù)據(jù)交換的設(shè)計概述、模塊功能、代碼實現(xiàn)等。 如圖 417 所示。 //發(fā)送后清空輸入框 UpdateData(false)。 } } 發(fā)送數(shù)據(jù)模塊中,程序先讀取編輯框的內(nèi)容,同時發(fā)送和清空,最后更新編輯框的內(nèi)容。 default:conf = conf+1。 31 case 1:conf = conf + 。 default:conf = conf+8,。 case 2:conf = conf + 7,。 } switch(m_databit) // 設(shè)置數(shù)據(jù)位 { case 0:conf = conf + 5,。 case 2:conf = conf + e,。 } switch(m_jiaoyan) // 設(shè)置校驗方法 { case 0:conf = conf + n,。break。 CString conf。 = m_databit。 UpdateData(FALSE)。 //字符型 (%c,bt)。k,rxdata+k)。 ///變量轉(zhuǎn)換 len=()。 byte rxdata[512]。加入 MSComm 通信控件, 實現(xiàn)從緩沖區(qū)中讀取數(shù)據(jù),同時將數(shù)據(jù)給接收變量,更新接收區(qū)編輯框的內(nèi)容 。 //預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù) } else AfxMessageBox(打開端口失敗 !,MB_ICONSTOP,0)。//接收緩沖 區(qū)有個及個以上字符時,將引發(fā)接收數(shù)據(jù)的 OnCommMsm事件 if(!()) { (TRUE)。 //接收緩沖區(qū) (1024)。 UpdateData(true)。//波特率,無校驗,個數(shù)據(jù)位,個停止位 return TRUE。 //選擇 COM4端口 開始 顯示登陸界面 串口是否打開 設(shè)置參數(shù) 結(jié)束 關(guān)閉串口 Y N 25 (1)。 …… // TODO: Add extra initialization here CMylogin my。 return。 } else { ()。 (CRecordset::snapshot,NULL,CRecordset::none)。%s39。 } void CMylogin::OnOK() { TODO: Add extra validation here UpdateData(TRUE)。界面的具體情況如圖 48 所示。接收區(qū)由靜態(tài)文本框和編輯框組成;發(fā)送區(qū)同樣也是由靜態(tài)文本框和邊界框組成;設(shè)置區(qū)由組合框、按鈕和靜態(tài)文本框組成。 圖 45 數(shù)據(jù)庫中用戶名和弱密碼 運行應(yīng)用程序時,若輸入了錯誤的用戶名或密碼,則系統(tǒng)會提示輸入錯誤。 19 首先,啟動 Microsoft Office Access,建立 Access 數(shù)據(jù)庫,命名為 demo01,然后在數(shù)據(jù)庫中創(chuàng)建一個表,命名為 puser,在表 puser 中輸入序號( userid)、用戶名( username)和密碼( userpwd),將這個數(shù)據(jù)庫保存。本次登陸界面使用的數(shù)據(jù)庫是微軟的Access 數(shù)據(jù)庫。并將這個應(yīng)用程序命名為通信。程序流程圖如圖 32 所示。在發(fā)送接收數(shù)據(jù)過程中需要打開串口。 程序的主要功能 實現(xiàn)兩臺 PC 機之間的通信的應(yīng)用程序,主要實現(xiàn)了密碼登陸、參設(shè)設(shè)置、參數(shù)顯示、打開串口、關(guān)閉串口、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收等功能。 其余一種是利用 MSComm ActiveX 串行通信控件 。 1989年微軟公司成立 Application Framework技術(shù)團(tuán)隊,名為 AFX小組,用以開發(fā) C++面向?qū)ο蠊ぞ呓o Windows應(yīng)用程序開發(fā)人員使用。 Windows應(yīng)用程序的框架主要有兩種類型,一種是基于對話框的應(yīng)用程序框架,另外一種是基于文檔、視圖結(jié)構(gòu)的應(yīng)用程序框架。其中使用 MFC 直接編寫提供大量預(yù)先編好的類和支持代碼或使用 MFC 和向?qū)В?Wizards)編寫,用 AppWizard 來生成 Windows 應(yīng)用程序框架。 本章介紹了通信中最常使用的校驗方法,即 CRC 校驗。 圖 31 生成 CRCCCITT 的移位寄存器的作用原理 13 CRC校驗的實現(xiàn) 實現(xiàn) CRC 校驗有很多種算法和方式,最基本的算法應(yīng)該是按位計算了 ,這個方法可以適用于所有長度的數(shù)據(jù)校驗,是最為靈活 的,但由于是按位計算,其效率并不是最迅速、最優(yōu)的,只適用于對速度不敏感的場合。從把數(shù)據(jù)移位開始計算,將數(shù)據(jù)位(從最低的數(shù)據(jù)位開始)逐位移入反向耦合移位寄存器。其中發(fā)送方發(fā)出傳輸字段,傳 輸字段由兩部分組成的,分別為信息字段和校驗字段。 CRC循環(huán)冗余校驗碼的基本原理是任意一個由二進(jìn)制位串組成的代碼都可以和一個系數(shù)僅為 ?0?和 ?1?取值的多項式一一對應(yīng)。 如早期一樣目前在通信系統(tǒng)的數(shù)據(jù)傳輸過程中,由于信道中各種復(fù)雜因素的影響,使傳輸?shù)男盘柺艿礁蓴_,造成傳輸過程中誤碼的出現(xiàn)。 介紹了通信參數(shù)與串行通信的分類。首先將一根 USB 轉(zhuǎn) RS232 轉(zhuǎn)換線的 3 引腳短接,然后將帶有 “驅(qū)動程序 ”的光盤放入個人計算機中,安裝并運行與自己計算機相匹配的 驅(qū)動程序,接著將轉(zhuǎn)換線的 USB 端插入個人計算機的 USB 口,即完成了初步的安裝。表 21 說明九針管腳的串口各引腳的名稱,功能說明和信號源等。 9 芯管腳圖如圖 23 所示。異步通信有自己的 的缺點, 其缺點是 它在通信時的傳輸效率較低。因為恢復(fù)的載波與被接收的信號載波同頻同相,故取名為同步通信,也稱抑制載波雙邊帶通信。是按照軟件識別同步字符來實現(xiàn)數(shù)據(jù)的發(fā)送和接收。如果是偶校驗,校驗位是 1。停止位的位數(shù)的設(shè)置可以由設(shè)備的軟件設(shè)置,停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率相應(yīng)地也會越慢。傳送時先傳送字符的低位,后傳送字符的高位。 (2)數(shù)據(jù)位 數(shù)據(jù)位 是衡量通信中實際數(shù)據(jù)位的參數(shù)。例如:9600bps,是指每秒傳送 數(shù)據(jù) 9600 位,其中包含字符的數(shù)位和其它必須的數(shù)位。在接收數(shù)據(jù)時,數(shù)據(jù)格式由串行的位( bit)被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。 串行通信大多數(shù)用于 Windows 開發(fā)的應(yīng)用程序與外圍數(shù)據(jù)源設(shè)備之間的數(shù)據(jù)交換。從同時傳輸?shù)臄?shù)據(jù)位數(shù)來分通信方式可以分為串行通信( Serial)和并行通信( Parrel)。在 RS232 的通訊標(biāo)準(zhǔn)中是以一個 25 針的接口來定義的, 5 25 針的接口 在早期的計算機如 PC 或 XT 機型上廣泛使用,但在 AT 機以后的機型上,實際均采用了 9 針的簡化版接口 應(yīng)用,現(xiàn)在所說的 RS232 通訊均默認(rèn)為9 針的接口。 RS232 接口是標(biāo)準(zhǔn)串行接口,其通訊距離小于 15 m, 它的傳輸速率小于 20 kb/ s。由于通信設(shè)備廠商都生產(chǎn)與RS232C 制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機通信接口中廣泛采用,例如在 IBM PC 機上的 COM COM2 接口,就是 RS232C 接口。 RS232C 標(biāo)準(zhǔn)是美國 EIA(電子工業(yè)聯(lián)合會)與 BELL 等公司一起開發(fā)的 1969 年公布的通信協(xié)議 ]2[ 。 分析 RS232 串行通信的基本原理,并通過串口調(diào)試助手調(diào)通串口以方便接下來的操作。我們堅信 RS232 一定會繼續(xù)隨著各種外圍設(shè)備的不斷發(fā)展而提高,同時也將繼續(xù)保持通信領(lǐng)域中 應(yīng)用最為廣泛這一地位的 。近年來,串行技術(shù)與連接設(shè)備都得到了很大的發(fā)展,串口設(shè)備在設(shè)備電纜、工業(yè)控制和軟件應(yīng)用程序中得到了大量的應(yīng)用,毫無疑問,串行連接技術(shù)仍然是工商業(yè)、醫(yī)療、教育和實驗室等領(lǐng)域中所應(yīng)用的廣泛標(biāo)志。 研究現(xiàn)狀及發(fā)展趨勢 RS232串行通信的研究現(xiàn)狀 目前,串行通信在各類領(lǐng)域中都得到了廣泛的應(yīng)用,同時它還具有較高的性價比和傳輸可靠性等優(yōu)點 ]1[ 。由于串行通信方式具有使用線路少、成本低、特別是在遠(yuǎn)程傳輸時,避免了多條線路特性的不一致而被廣泛采用。利用已有的 ActiveX 控件 技術(shù) ,只需要編寫少量的代碼,就可以輕松高效地完成 通信 任務(wù)。它主要被廣泛應(yīng)用 在 工業(yè)控制生產(chǎn)和實驗室等重要領(lǐng)域。 C++。用 RS232 協(xié)議實現(xiàn)兩臺PC 機間的串行通信為以后實現(xiàn)更加復(fù)雜的設(shè)備間通信奠定了基礎(chǔ)。利用 MSComm ActiveX 串行通信控件來實現(xiàn)串行通信。 在研究 RS232 串行通信原理中,主要介紹了 RS232 標(biāo)準(zhǔn)協(xié)議、串口以及串口通信原理。通信的方式多種多樣,以何種方式實現(xiàn)通信主要取決于通信 設(shè)備。在工業(yè)控制系統(tǒng)和實驗室中, 由于串行通信具有實現(xiàn)簡單、使用靈活方便等優(yōu)點,串行通信是計算機與外部設(shè)備進(jìn)行數(shù)據(jù)通信時經(jīng)常使用的方 式之一。 詳細(xì)的分析了幾種主要的通信參數(shù)。文中詳細(xì)地介紹了 VC下的 Windows 平臺先進(jìn)的 ActiveX 控件技術(shù),即 MSComm 控件等。 關(guān)鍵詞: RS232 標(biāo)準(zhǔn) ;串行通信; C++; CRC 校驗 II Abstract With the rapid development of science and technology, munication technology has bee an indispensable part of social economy,environment,living and learning. There are many kinds of munication selection of munication mode mainly depends on the munication industrial control systems and munication is widely used in puter and external equipment due to the simple and flexible advantage. Around serial munication technology, this paper mainly introduces the serial munication interface RS232 serial port, and expounds the basic principle of RS232 serial munication and CRC , realize serial munication through VC programming. During the process of transmission through the CRC to check the data. In the study of RS232 serial munication principle, this design mainly introduces the principle of serial munication, serial port and RS232 protocol, and analyzes munication parameters in RS232 serial port and working principle,this design adopted to serial fullduplex mode to realize this article ,the interface is the USB port on the PC. In the aspect of software realization,this design select the MFC application program based on C++ after several methods are realize the serial munication by using MSComm ActiveX serial munication article introduces the ActiveX control technologyMSComm ,the design realize serial munication between two puters. Because of the advantages of low cost and simple structure,serial munication is widely used b