【正文】
r,hstr=str[i]。 int len=()。 單個字符轉換成十六進制的 流程圖如圖 415 所示,代碼如下。 UpdateData(false)。//發(fā)送 ASCII字符數(shù)據(jù) CByteArray hexdata。 //讀取編輯框內(nèi)容 if(()) { CByteArray hexdata。 } (conf)。 case 2:conf = conf + 2。 } switch(m_stopbit) // 設置停止位 { 31 case 0:conf = conf + 1。 case 3:conf = conf + 8,。 case 1:conf = conf + 6,。 default:conf = conf+n,。 case 1:conf = conf + o,。break。break。 = m_stopbit。參數(shù)設置模塊流程圖如圖 413 所示,實現(xiàn)應用程序具體功能的 代碼如下: 圖 413 通信參數(shù)設置流程圖 void CMyDlg::OnSet() { CSetcs sc。 //加入接收編輯框對應字符串 } } CString temp=(\r\n)。 unsigned char* a= (unsigned char*)(LPCTSTR)strtemp。 //字符型 if(()) (%02X ,bt)。k,rxdata+k)。 ///變量轉換 len=()。 byte rxdata[512]。加入 MSComm 通信控件, 實現(xiàn)從緩沖區(qū)中讀取數(shù)據(jù),同時將數(shù)據(jù)給接收變量,更新接收區(qū)編輯框的內(nèi)容 。 //預讀緩沖區(qū)以清除殘留數(shù)據(jù) } else AfxMessageBox(打開端口失敗 !,MB_ICONSTOP,0)。 if(!()) { (TRUE)。 //接收緩沖區(qū) (1024)。 UpdateData(true)。//波特率,無校驗,數(shù)據(jù)位, 停止位 return TRUE。 //選擇 COM4端口 (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)文本框和邊界框組成;設置區(qū)由組合框、 復選框、 按鈕和靜態(tài)文本框組成。 圖 45 數(shù)據(jù)庫中用戶名和弱密碼 運行應用程序時,若輸入了錯誤的用戶名或密碼,則系統(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ù)庫。并將這個應用程序命名為通信 [17,18]。 程序流程圖如圖 32所示。在發(fā)送接收數(shù)據(jù)過程中需要打開串口。 程序的主要功能 實現(xiàn)兩臺 PC 機之間的通信的應用程序,主要實現(xiàn)了密碼登陸、參設設置、參數(shù)顯示、打開串口、關閉串口、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收 、 CRC 校驗 等功能。 其余一種是利用 MSComm ActiveX 串行通信控件 。 1989年微軟公司成立 Application Framework技術團隊,名為AFX小組,用以開發(fā) C++面向對象工具給 Windows應用程序開發(fā)人員使用。 Windows應用 程序的框架主要有兩種類型,一種是基于對話框的應用程序框架,另外一種是基于文檔、視圖結構的應用程序框架。其中使用 MFC 直接編寫提供大量預先 編好的類和支持代碼或使用 MFC和向導( Wizards)編寫,用 AppWizard 來生成 Windows 應用程序框架。 本章介紹了通信中最常使用的校驗方法,即 CRC 校驗。 圖 31 生成 CRCCCITT 的移位寄存器的作用原理 13 CRC校驗的實 現(xiàn) 實現(xiàn) CRC 校驗有很多種算法和方式,最基本的算法應該是按位計算了 ,這個方法可以適用于所有長度的數(shù)據(jù)校驗,是最為靈活 的,但由于是按位計算,其效率并不是最迅速、最優(yōu)的,只適用于對速度不敏感的場合。從把數(shù)據(jù)移位開始計算,將數(shù)據(jù)位(從最低的數(shù)據(jù)位開始)逐位移入反向耦合移位寄存器。其中發(fā)送方發(fā)出傳輸字段,傳輸字段由兩部分組成的,分別為信息字段和校驗字段 [10,11]。 CRC( Cyclic Redundancy Check)循環(huán)冗余校驗碼是數(shù)據(jù)通信領域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定, CRC循環(huán)冗余校驗碼的基本原理是任意一個由二進制位串組成的代碼都可以和一個系數(shù)僅為 ?0?和 ?1?取 值的多項式一一對應 [9]。為了避免這一弊端,在進行數(shù)據(jù)交換,通信的過程中,對通信的可靠性檢查就需要校驗,校驗是從數(shù)據(jù)本身進行檢查,它依靠某種數(shù)學上約定的形式進行檢查,校驗的結果是可靠或不可靠,如果可靠就對數(shù)據(jù)進行處理,如果不可靠,就丟棄重發(fā)或者進行修復。 為下文編寫 Windows 應用程序實現(xiàn)兩臺 PC 機進行數(shù)據(jù)交換提供了基礎。打開設備管理器,看一 下所插入的轉換線占的是哪個串口,因為在接下來調(diào)試串口要用到。 由表 21 可知要想實現(xiàn)兩臺個人計算機間的數(shù)據(jù)交換,可以將兩個 USB 轉RS232 線的接口頭的 3 引腳交叉對接,兩個 5 腳相接 即可,具體接法如 圖24 所示,然后再講兩個 USB 接頭與兩臺電腦相連。 圖 23 9 芯管腳圖 表 21 9 針管腳各引腳名稱功能圖 九針串口 針號 縮寫 功能說明 信號來源 1 DCD 功能說明 調(diào)制解調(diào)器 2 RXD 接收數(shù)據(jù) 調(diào)制解調(diào)器 3 TXD 發(fā)送數(shù)據(jù) PC 4 DTR 數(shù)據(jù)終端準備 PC 5 GND 信號地 6 DSR 數(shù)據(jù)設備準備好 調(diào)制解調(diào)器 7 RTS 請求發(fā)送 PC 8 CTS 請求發(fā)送 調(diào)制解調(diào)器 9 DELL 振鈴指示 調(diào)制解調(diào)器 9 目前,市場上使用的串口有 9 針管腳的還有 25 針管腳的。 當然它也具有自己獨特的優(yōu)點, 其優(yōu) 點就是它的通信設備簡單、便宜。 異步通信數(shù)據(jù)通常以字符或者字節(jié)為單位組成字符幀傳送,字符幀由發(fā)送端逐幀發(fā)送,通過傳輸線被接收設備逐幀接收 [7]。它是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。這樣使得接收設備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者傳輸和接收數(shù)據(jù)是否發(fā)生了不同步。停止位的位數(shù)的設置可以由設備的軟件設置,停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率相應地也會越慢。傳送時先傳送字符的低位,后傳送字符的高位。 (2)數(shù)據(jù)位 數(shù)據(jù)位 是衡量通信中實際數(shù)據(jù)位的參數(shù)。例如:9600bps,是指每秒傳送 數(shù)據(jù) 9600 位,其中包含字符的數(shù)位和其它必須的數(shù)位。在接收數(shù)據(jù)時,數(shù)據(jù)格式由串行的位( bit)被轉換為字節(jié)數(shù)據(jù)。 串行通信大多數(shù)用于 Windows 開發(fā) 的應用程序與外圍數(shù)據(jù)源設備之間的數(shù)據(jù)交換。從同時傳輸?shù)臄?shù)據(jù)位數(shù)來分通信方式可以分為串行通信( Serial)和并行通信( Parrel)。在 RS232 的通訊標準中是以一個 25 針的接口來定義的, 5 25 針的接口 在早期的計算機如 PC 或 XT 機型上廣泛使用,但在 AT 機以后的機型上,實際均采用了 9 針的簡化版接口 應用,現(xiàn)在所說的 RS232 通訊均默認為9 針的接口 [4]。 RS232 接口是標準串行接口,其通訊距離小于 15 m, 它的傳輸速率小于 20 kb/ s。由于通信設備廠商都生產(chǎn)與 RS232C 制式兼容的通信設備,因此,它作為一種標準,目前已在微機通信接口中廣泛采用,例如在 IBM PC 機上的 COM COM2 接口,就是 RS232C接口 。 RS232C 標準是美國 EIA(電子工業(yè)聯(lián)合會)與 BELL 等公司一起開發(fā)的 1969 年公布的通信協(xié)議。 分析 RS232 串行通信的基本原理,并通過串口調(diào)試助手調(diào)通串口以方便接下來的操作。我們堅信 RS232 一定會繼續(xù)隨著各種外圍設備的不斷發(fā)展而提高,同時也將繼續(xù)保持通信領域中 應用最為廣泛這一地位的 。近年來,串行技術與連接設備都得到了很大的發(fā)展,串口設備在設備電纜、工業(yè)控制和軟件應用程序中得到了大量的應用,毫無疑問,串行連接技術仍然是工商業(yè)、醫(yī)療、教育和實驗室等領域中所應用的廣泛標 志。 研究現(xiàn)狀及發(fā)展趨勢 RS232串行通信的研究現(xiàn)狀 目前,串行通信在各類領域中都得到了廣泛的應用,同時它還具有較高的性價比和傳輸 可靠性等優(yōu)點。與外圍監(jiān)控設備通信 實際上是 計算機與計算機或計算機與終端機之間的數(shù)據(jù)傳遞 ,它 可以采用串行通信和并行通信兩種通信方式。 Windows 圖形界面 編程下的 MFC,全稱是 Microsoft Foundation Classes,它是 Win32 中的應用程序, 目前 Win32 中基于 VC++ 的串口通信程序一般可以用兩種方法實現(xiàn):一是利用 MSComm ActiveX 串行通信控件;二是使用Windows API 通信函數(shù)。 1 第 1章 緒論 課題的研究意義 在發(fā)展如此迅速的信息化時代,隨著計算機的普及和信息技術的發(fā)展,形成了對信息的獲取 傳送 處 理 利用的完整技術體系 ,并在此基礎上形成了通信技術 ,它應用在生產(chǎn)、醫(yī)療、教育、生活等多種領域,成為現(xiàn)今社會 生存和 發(fā)展不可或缺的技術。 關鍵詞: RS232 標準 ;串行通信; 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 modes. The selection of munication mode mainly depends on the munication equipment. In industrial control systems and laboratory, serial 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 check .It is pleted to realize serial munication by VC programming. It can check the data during the process of transmission through the CRC. 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 detail. Considering RS232 serial port and working principle, this design adopts serial fullduplex mode to realize munication. In the article, the interface is the USB port on the PC. In the aspect of software realization, after several me