freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文基于c++的rs232通信協(xié)議模擬終端-全文預(yù)覽

  

【正文】 2.串口和參數(shù)的設(shè)置 登陸成功后跳轉(zhuǎn)到主界面,通信之前要設(shè)置可用的串口號(hào),設(shè)置串口號(hào)時(shí)若沒(méi)有選對(duì)串口號(hào),應(yīng)用程序會(huì)提示不可用的串口,直到設(shè)置了可用的串口號(hào),然后需要打開(kāi)串口,點(diǎn) 擊【打開(kāi)串口】按鈕, 程序會(huì)提示串口打開(kāi)成功,最后設(shè)置 通信參數(shù), 點(diǎn)擊【設(shè)置】按鈕,跳轉(zhuǎn)到設(shè)這界面,根據(jù)需要選擇通信參數(shù),如果保存設(shè)置就點(diǎn)擊【確定按鈕】否則點(diǎn)擊【退出】按鈕,之后又回到了主界面,現(xiàn)在即可進(jìn)行數(shù)據(jù)的發(fā)送了。//發(fā)送數(shù)據(jù) ()。 //設(shè)置波特率等參數(shù) if(!()) //打開(kāi)串口 (TRUE)。break。break。break。break。break。break。 default:conf = 9600,。 case 1:conf = 4800,。 開(kāi)始 確定鍵是否按下 設(shè)置通信參數(shù) 打開(kāi)串口 結(jié)束 Y N 30 if(()==IDOK) // 配置對(duì)話框是 “確定 ”按鈕按下,需要重新配置端口 { (FALSE)。 = m_baund。 //顯示完成后要自動(dòng)換行 m_receive+=temp。k++) //將數(shù)組轉(zhuǎn)換為 CString型變量 { char bt=*(char*)(rxdata+k)。k++) (amp。 //讀緩沖區(qū)消息 safearray_inp=variant_inp。 long len,k。 MSComm 通信控件提供了一系列標(biāo)準(zhǔn)通信命令的接口,它允許建立串口連接,可以連接到其他通信設(shè)備(如 Modem).還可以發(fā)送命令、進(jìn)行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過(guò)程中可能發(fā) 生的各種錯(cuò)誤和事件,從而可以用它創(chuàng)建全雙工 、事件驅(qū)動(dòng)的、高效實(shí)用的通信程序 ]9[ 。 //設(shè)置當(dāng)前緩沖區(qū)長(zhǎng)度 ()。//以二進(jìn)制方式讀寫(xiě)數(shù)據(jù) (1)。 //設(shè)置串口號(hào) (1024)。 CMyDlg md1。 //設(shè)置輸出緩沖區(qū) (9600,n,8,1)。 (4)。具體 程序代碼如下面所示: 24 圖 410 初始化流程圖 BOOL CMyDlg::OnInitDialog() { CDialog::OnInitDialog()。 } } catch(CDBException* e) { eReportError()。 return。,m_username,m_userpwd)。 (username=39。 實(shí)現(xiàn)該功能的程序流程圖如圖 49 所示, 實(shí)現(xiàn)該功能的 程序 代碼如下: 22 圖 49 用戶名密碼登錄模塊流程圖 void CMylogin::OnBnClickedOk() { // TODO: Add your control notification handler code here OnOK()。 相應(yīng)的 通信 參數(shù)設(shè)置完成后,點(diǎn)擊 【 確定 】按鈕 ,應(yīng)用程序 則會(huì)再次跳轉(zhuǎn)到主界面(數(shù)據(jù)收發(fā)界面),若想取消設(shè)置則點(diǎn)擊取消按鈕,參數(shù)設(shè)置界面關(guān)閉,回到主界面。 圖 46 登錄界面 20 主界面是整個(gè)應(yīng)用程序的主體, 大致可劃分為三部分,有接收區(qū)、發(fā)送區(qū)和設(shè)置區(qū)。數(shù)據(jù)庫(kù)中用戶名和密碼如圖 45 所示。其中使用 DNS 連接 Access 數(shù)據(jù)庫(kù)方法中,在定義 DSN 的時(shí)候,就已經(jīng)指定好了數(shù)據(jù)源需要的 ODBC 驅(qū)動(dòng)程序,也指定好了數(shù)據(jù)庫(kù)文件的實(shí)際路徑和名字,我們?cè)诔绦蛑?,只需要引用預(yù)先定義的數(shù)據(jù)源名 DSN 即可。 圖 44 應(yīng)用程序最初界面 界面功能實(shí)現(xiàn) 界面 登錄 界面的設(shè)計(jì)除了應(yīng)用 MFC 中的控件和工具外,要想實(shí)現(xiàn)其用戶名和密碼的驗(yàn)證功能還利用了數(shù)據(jù)庫(kù)的知識(shí)。首先打開(kāi) VC++ 軟件,建立基于對(duì)話框的 MFC 應(yīng)用程序。 能夠接收和顯示多個(gè)數(shù)據(jù)。 主函數(shù) 密碼登錄 參數(shù)設(shè)置 打開(kāi)串口 關(guān)閉串口 接收數(shù)據(jù) 發(fā)送數(shù)據(jù) 16 圖 42 程序流程框圖 開(kāi)始 調(diào)用初始化程序 登錄驗(yàn)證是否正確 主界面 串口號(hào)是否可用 打開(kāi)串口 通信參數(shù)是否符合 輸入數(shù)據(jù)并發(fā)送 登錄界面 N Y 設(shè)置串口 N Y 數(shù)據(jù)發(fā)送完成 關(guān)閉串口 結(jié)束 設(shè)置參數(shù) N Y N Y 17 使用此應(yīng)用程序時(shí),需要有 正確的 用戶名和密碼才能登錄到此軟件的主界面, 登錄到主界面后,要想 實(shí)現(xiàn)兩臺(tái) PC 間的通信則 需要 選擇 可用的串口號(hào)并且傳輸參數(shù)要一致,其中包括 波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)位等,只有設(shè)置對(duì)的參數(shù)才能實(shí)現(xiàn)數(shù)據(jù)交換的功能。所以,本次 實(shí)現(xiàn)兩臺(tái) PC 間的通信使用的就是 MSComm控件。雖然 15 在 Windows 下 Win32API提供了使用文件操作方式的函數(shù)進(jìn)行串口操作的方法,但是在編程實(shí)現(xiàn)上還是比較復(fù)雜 。是微軟把 Windows API 進(jìn)行封裝的類庫(kù),該類庫(kù)以層次結(jié)構(gòu)組織起 來(lái),其中封裝了大部分 Windows API函數(shù)和Windows控件 ]9[ 。使用此應(yīng)用程序框架有很多優(yōu)點(diǎn),如其應(yīng)用程序代碼小,運(yùn)行速度快,并且此應(yīng)用程序提供的工具也降低了編碼的難度等。 14 第 4章 軟件的實(shí)現(xiàn)及其測(cè)試 開(kāi)發(fā)工具概述 Windows 編程與 MFC Windows 編程大致 有兩種方法,一種是 Windows C 方向,即 SDK 方向,調(diào)用 Win 32 API 函數(shù),主要是利用 C 語(yǔ)言來(lái)實(shí)現(xiàn)軟件的功能與編程;另外一種方法是 C++對(duì) SDK 函數(shù)進(jìn)行包裝,如 VC 的 MFC(微軟基礎(chǔ)類庫(kù)), BOB 的 OWL等。這個(gè)是按高位到低位的發(fā)送順序時(shí)使用的校驗(yàn)方法。圖 31 中X5 代表 Bit5, X12 代表 Bit12, 1 是代表 Bit0, 16X 比較特別,是指移位寄存器移入的數(shù)據(jù)。 圖 31 說(shuō)明了 CRC 校 驗(yàn)中 CRC 值是如何計(jì)算出來(lái)的,體現(xiàn)的多項(xiàng)式正是 式( 35) 。 CRC 校驗(yàn)碼的生成借助于多項(xiàng)式除法,其余數(shù)為校驗(yàn)字段。 CRC( Cyclic Redundancy Check)循環(huán)冗余校驗(yàn)碼是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼, 其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。為了避免這一弊端,在進(jìn)行數(shù)據(jù)交換,通信的過(guò)程中,對(duì)通信的可靠性檢查就需要校驗(yàn),校驗(yàn)是從數(shù)據(jù)本身進(jìn)行檢查,它依靠某種數(shù)學(xué)上約定的形式進(jìn)行檢查,校驗(yàn)的結(jié)果是可靠或不可靠,如果可靠就對(duì)數(shù)據(jù)進(jìn)行處理,如果不 可靠,就丟棄重發(fā)或者進(jìn)行修復(fù) ]25[ 。 10 本章小結(jié) 本章從原理上介紹了串行通信 的基本原理,詳細(xì)的闡 述了 RS232 標(biāo)準(zhǔn)協(xié)議接口和與串行通信相關(guān)的一些知識(shí)。這就需要用到串口調(diào)試小助手。圖 23顯示了 9 針通訊的接口管腳, 9 針管腳的串口各引腳名稱、功能和信號(hào)來(lái)源各不相同。所以要想通過(guò) 串行通信實(shí)現(xiàn)與外圍設(shè)備數(shù)據(jù)交換,必須用 USB 轉(zhuǎn) RS232 9 針串口轉(zhuǎn)換線。發(fā)送端和接收端可以由各自的時(shí)鐘 源 來(lái)控制數(shù)據(jù) 的發(fā)送和接收,這兩個(gè)時(shí)鐘源彼此獨(dú)立,互不同步, 接收端檢測(cè)到傳輸線上發(fā)送過(guò)來(lái)的低電平邏輯 0(即字符幀起始位)時(shí),確定發(fā)送端已開(kāi)始發(fā)送數(shù)據(jù),每當(dāng)接收端收到字符幀中的停止位時(shí),就知道一幀字符已經(jīng)發(fā)送完畢 ]2[ 。 它們均由數(shù)據(jù)字符、 CRC 即同步字符和校驗(yàn)字符組成。 同步通信是一種在發(fā)送端發(fā)送一個(gè)抑制載波的雙邊帶信號(hào),而在 接收端恢復(fù)載波,再進(jìn)行檢波的通信方式。例如,如果數(shù)據(jù)是 001,那么對(duì)于奇校驗(yàn),校驗(yàn)位是 0,。停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì),因?yàn)閿?shù)據(jù)是在傳輸線上定時(shí)的,并且每個(gè)設(shè)備都有其自己的時(shí)鐘,很可能在通信中要進(jìn)行數(shù)據(jù)交換的兩臺(tái)設(shè)備間出現(xiàn)小小的不同步,設(shè)置停止位就是為了避免其中的小小的不同步。數(shù)據(jù)位通常為 58 位,它緊跟在起始位之后,是被傳送字符的有效數(shù)據(jù)位。有時(shí)也用 “位周期 ”來(lái)表示傳輸速率,位 周期是波特率的倒數(shù)。國(guó)際上對(duì)波特率規(guī)定了一個(gè)標(biāo)準(zhǔn)系列: 110bps、 300bps、 600bps、 1200bps、 1800bps、2400bps、 4800bps、 9600bps、 、 、 、 56Kbps。當(dāng)數(shù)據(jù)從 CPU 經(jīng)過(guò)串行端口發(fā)送出去時(shí),數(shù)據(jù)格式由字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位( byte)。兩種基本通信方式如圖 22 所示: 嗎 并行通信 串行通信 圖 22 兩種基本的通信方式 計(jì)算機(jī) 1 計(jì)算機(jī)或外設(shè) 2 GND GND 計(jì)算機(jī) 1 計(jì)算機(jī)或外設(shè) 2 GND GND 6 從上面的圖中可以看到,并行通信成本高,并須使用多條通信線,而串行通信只需使用兩條通信線就可以完成兩個(gè)設(shè)備間的數(shù)據(jù)交換,大大降低了通信成本,串行通信又以其串行線間的干擾小得到了廣泛的應(yīng)用。 圖 21 9 針通訊接口 串行通信 串行通信基本原理 兩個(gè)設(shè)備之間交換數(shù)據(jù)的過(guò)程我們稱之為通信 ]4[ 。 現(xiàn)在的 計(jì)算 機(jī)一般至少有兩個(gè)串行口 COM1 和 COM2,新一代的計(jì)算機(jī)主要以 9 引腳的 D 型 口 接出所有的 RS232 通信信號(hào)及控制線(有的計(jì)算機(jī)的串口為 25 引腳)。 RS232接口 RS232 標(biāo)準(zhǔn)是按負(fù)邏輯定義的,它的 “1”電平在- 5~- 15 V之間, “0”電平在+ 5~+ 15 V之間。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問(wèn)題都作了明確規(guī)定。 4 第 2章 串行通信基本原理 RS232通信協(xié)議 RS232標(biāo)準(zhǔn) RS232 標(biāo)準(zhǔn) (協(xié)議) ( ANSI/EIA232 標(biāo)準(zhǔn)) 的全稱是 EIARS232C 標(biāo)準(zhǔn),其中 EIA代表美國(guó)電子工業(yè)協(xié)會(huì), RS代表推薦標(biāo)準(zhǔn), 232是標(biāo)識(shí)號(hào), C代表 RS232的修改次數(shù)。 具體研究?jī)?nèi)容如下: 了解 RS232 協(xié)議,串口和串行通信原理。低供電電壓和高數(shù)據(jù)率等都將成為未來(lái)發(fā)展中新設(shè)計(jì)的普遍要求。 RS232 標(biāo)準(zhǔn)主要適用于通信設(shè)備,它主要 采取 不平衡傳輸方法 ,即所謂的單端通信。所以研究 RS232 串行通信意義 非常 重大。與外圍監(jiān)控設(shè)備通信 實(shí)際上是 計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端機(jī)之間的數(shù)據(jù)傳遞 ,它 可以采用串行通信和并行通信兩種通信方式。其中 Windows 平臺(tái)先進(jìn)的 ActiveX 技術(shù)對(duì)串口編程不再需要處理繁瑣的細(xì)節(jié)。 隨著 通信技術(shù)的不斷創(chuàng)新和發(fā)展以及 計(jì) 算機(jī)網(wǎng)絡(luò)和多微機(jī)系統(tǒng)的廣泛應(yīng)用, USB 通信技術(shù)的 發(fā)展 如此迅速 , 盡管如此, 然而串口通信技術(shù)以其 實(shí)現(xiàn)簡(jiǎn)單、使用靈活方便、數(shù)據(jù)傳輸可靠等優(yōu)點(diǎn)并未面臨被淘汰,反而在通信領(lǐng)域中一直都被 人們廣泛的 應(yīng)用。 Serial Communications。 串行通信以其成本低、結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn)被人們廣泛應(yīng)用。 在軟件實(shí)現(xiàn)方面,本設(shè)計(jì)在比較了多種方法之后,最終選擇了基于 C++的 MFC 應(yīng)用程序。 傳輸過(guò)程中通過(guò) CRC 對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)。 基于 C++的 RS232 通信 協(xié)議模擬終端 Analog Terminal The RS232 Communication Protocol Based On C++ 2020 年 06 月密級(jí):公開(kāi) I 摘 要 隨著科技的迅猛發(fā)展 ,通信技術(shù)已經(jīng)成為社會(huì)經(jīng)濟(jì)、環(huán)境、 生活、工作、學(xué)習(xí)不可缺少的一部分 。 圍繞串行通信技術(shù),本文 主要 介紹了串行通信 接口 ——RS232 標(biāo)準(zhǔn)串口,闡述 了RS232 串行通信基本原理和 CRC 校驗(yàn) ,通過(guò) VC 界面編程實(shí)現(xiàn)串行通信。 按照其工作原理及 RS232 串口的 標(biāo)準(zhǔn)協(xié)議最終采用串行全雙工的方式實(shí)現(xiàn)其通信,本文中的接口使用的是 計(jì)算機(jī)上的 USB 口 。最終實(shí)現(xiàn)了兩臺(tái)PC 間的串行通信。 RS232protocol。 1 第 1章 緒論 課題的研究意義 在發(fā)展如此迅速的信息化時(shí)代,隨著計(jì)算機(jī)的普及和信息技術(shù)的發(fā)展,形成了對(duì)信息的獲取 傳送 處理 利用的完整技術(shù)體系 ,并在此基礎(chǔ)上形成了通信技術(shù) ,它應(yīng)用在生產(chǎn)、醫(yī)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1