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

正文內(nèi)容

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

2023-06-11 18:06:25 本頁面
 

【正文】 程軟件的仿真完成了基于C++的RS232通信協(xié)議的模擬終端。未來RS232串口通信仍將在低成本、設(shè)計簡單的產(chǎn)品中繼續(xù)發(fā)揮著重要作用。串行通信中的串口應(yīng)用始于1960年,然而RS232的初始版本于1969年才得到認(rèn)證,認(rèn)證的版本號為RS232C,在這之前有RS232A、RS232B這兩個版本。所以現(xiàn)在大量的智能儀器、工控設(shè)備、實驗研究設(shè)備或數(shù)據(jù)采集模塊都帶有RS232串行通訊接口,通過相應(yīng)的通訊協(xié)議和串口通訊程序,可以將測試、采集的數(shù)據(jù)傳輸?shù)缴衔还た貦C(jī),以滿足各種形式后續(xù)數(shù)據(jù)處理的要求,同時整個監(jiān)控系統(tǒng)會根據(jù)系統(tǒng)運(yùn)行情況通過串口向監(jiān)控設(shè)備發(fā)送指令,調(diào)節(jié)設(shè)備的運(yùn)行參數(shù)等使得生產(chǎn)過程平穩(wěn)進(jìn)行[1]。利用自帶的ActiveX控件技術(shù),只要編寫少量的代碼,就能很快的完成通信任務(wù)。它主要被廣泛應(yīng)用在工業(yè)控制生產(chǎn)和實驗室等重要領(lǐng)域。 Serial Communications。最終實現(xiàn)了兩臺PC間的串行通信。按照其工作原理及RS232串口的標(biāo)準(zhǔn)協(xié)議最終采用串行全雙工的方式實現(xiàn)其通信,本文中的接口使用的是計算機(jī)上的USB口。圍繞串行通信技術(shù),本文主要介紹了串行通信接口——RS232標(biāo)準(zhǔn)串口,闡述了RS232串行通信基本原理和CRC校驗,通過VC界面編程實現(xiàn)串行通信。密級:公開 基于C++的RS232通信協(xié)議模擬終端Analog Terminal For RS232 Communication Protocol Based On C++學(xué) 院: 專 業(yè) 班 級: 學(xué) 號:學(xué) 生 姓 名: 指 導(dǎo) 教 師: 2013 年 06 月I 摘 要隨著科技的迅猛發(fā)展,通信技術(shù)已經(jīng)成為社會經(jīng)濟(jì)、環(huán)境、生活、工作、學(xué)習(xí)不可缺少的一部分。傳輸過程中通過CRC對數(shù)據(jù)進(jìn)行校驗。在軟件實現(xiàn)方面,本設(shè)計在比較了多種方法之后,最終選擇了基于C++的MFC應(yīng)用程序。串行通信以其成本低、結(jié)構(gòu)簡單等優(yōu)點(diǎn)被人們廣泛應(yīng)用。 C++。VC++是新一代面向?qū)ο蟮目梢暬_發(fā)工具,作為一個主流的開發(fā)平臺一直深受編程愛好者的喜愛,提供了良好的界面設(shè)計資源,是當(dāng)下圖形開發(fā)的一個比較重要的技能和手段,Window圖形界面編程就是VC++編程開發(fā)的經(jīng)典展現(xiàn)之一。伴隨著科學(xué)技術(shù)的不斷創(chuàng)新與現(xiàn)代化生產(chǎn)過程中智能化、自動化程度的不斷提高,越來越多的綜生產(chǎn)過程和工業(yè)控制系統(tǒng)需要應(yīng)用自身的控制平臺與數(shù)據(jù)采集處理,利用Windows編程技術(shù)開發(fā)這樣的應(yīng)用程序時,其中要面臨的最關(guān)鍵的問題是與外圍監(jiān)控設(shè)備連接與通信。所以學(xué)習(xí)RS232串行通信意義非常重大。RS232標(biāo)準(zhǔn)主要適用于通信設(shè)備,它主要采取不平衡傳輸方法,即所謂的單端通信。低供電電壓和高數(shù)據(jù)率等都將成為未來發(fā)展中新設(shè)計的普遍要求。具體工作內(nèi)容如下:了解RS232協(xié)議,串口和串行通信原理。 第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代表美國電子工業(yè)協(xié)會,RS代表推薦標(biāo)準(zhǔn),232是標(biāo)識號,C代表RS232的修改次數(shù)。它適合于數(shù)據(jù)傳輸速率在0~20000b/s范圍內(nèi)的通信,即為每秒50、70、100、150、300、600、1200、2400、4800、9600、19200波特,這個標(biāo)準(zhǔn)對串行通信接口的有關(guān)問題都作了明確規(guī)定[2]。 RS232接口RS232標(biāo)準(zhǔn)是按負(fù)邏輯定義的,它的“1”電平在-5~-15 V之間,“0”電平在+5~+15 V之間。現(xiàn)在的計算機(jī)一般至少有兩個串行口COM1和COM2,新一代的計算機(jī)主要以9引腳的D型口接出所有的RS232通信信號及控制線(有的計算機(jī)的串口為25引腳)[3]。 圖21 9針通訊接口 串行通信 串行通信基本原理兩個設(shè)備之間交換數(shù)據(jù)的過程我們稱之為通信。兩種基本通信方式如圖22所示:嗎計算機(jī)或外設(shè)2計算機(jī)計算機(jī)或外設(shè)2計算機(jī)11GNDGNDGNDGND a)并行通信 b)串行通信圖22 兩種基本的通信方式從上面的圖中可以看到,并行通信成本高,并須使用多條通信線,而串行通信只需使用兩條通信線就可以完成兩個設(shè)備間的數(shù)據(jù)交換,大大降低了通信成本,串行通信又以其串行線間的干擾小得到了廣泛的應(yīng)用。當(dāng)數(shù)據(jù)從CPU經(jīng)過串行端口發(fā)送出去時,數(shù)據(jù)格式由字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位(bit)。國際上對波特率規(guī)定了一個標(biāo)準(zhǔn)系列:110bps、300bps、600bps、1200bps、1800bps、2400bps、4800bps、9600bps、56Kbps。有時也用“位周期”來表示傳輸速率,位周期是波特率的倒數(shù)。數(shù)據(jù)一般為58位,它在起始位的后面,是衡量傳送字符的有效數(shù)據(jù)位的個數(shù)。停止位不僅僅是表示傳輸?shù)慕Y(jié)束,還為計算機(jī)提供校正時鐘同步的機(jī)會,由于數(shù)據(jù)是在傳輸線上定時的,并且每個設(shè)備都有其自己的時鐘,很可能在通信中要進(jìn)行數(shù)據(jù)交換的兩臺設(shè)備間出現(xiàn)小小的不同步,停止位的設(shè)置就是為了避免其中小小的不同步[6]。例如,如果數(shù)據(jù)是001,那么對于奇校驗,校驗位是0;如果是偶校驗,校驗位是1。是按照軟件識別同步字符來實現(xiàn)數(shù)據(jù)的發(fā)送和接收。因為恢復(fù)的載波與被接收的信號載波同頻同相,故取名為同步通信,也稱抑制載波雙邊帶通信。異步通信有自己的的缺點(diǎn),其缺點(diǎn)是它在通信時的傳輸效率較低。9芯管腳圖如圖 23 所示。表 21說明九針管腳的串口各引腳的名稱,功能說明和信號源等。首先將一根USB轉(zhuǎn)RS232轉(zhuǎn)換線的3引腳短接,然后將帶有“驅(qū)動程序”的光盤放入個人計算機(jī)中,安裝并運(yùn)行與自己計算機(jī)相匹配的驅(qū)動程序,接著將轉(zhuǎn)換線的USB端插入個人計算機(jī)的USB口,即完成了初步的安裝。介紹了通信參數(shù)與串行通信的分類。這樣不可靠的通信就會帶來“確認(rèn)信息”的麻煩,造成一些事情的延誤等。差錯控制編碼是目前數(shù)據(jù)傳輸過程中普遍采用的一種提高數(shù)據(jù)通信可靠性的方法,而CRC是一種在實際通信中應(yīng)用很廣泛的差錯控制編碼,具有很強(qiáng)的檢錯能力。CRC校驗碼的生成借助于多項式除法,其余數(shù)為校驗字段。圖 31說明了 CRC 校驗中 CRC 值是如何計算出來的,體現(xiàn)的多項式正是式(35)。圖31中X 代表 Bit5,X 代表 Bit12,1 是代表 Bit0,比較特別,是指移位寄存器移入的數(shù)據(jù)。這個是按高位到低位的發(fā)送順序時使用的校驗方法。 第4章 軟件的實現(xiàn)及其測試 開發(fā)工具概述 Windows編程與MFCWindows編程大致有兩種方法,一種是Windows C方向,即SDK方向,調(diào)用Win 32 API函數(shù),主要是利用C語言來實現(xiàn)軟件的功能與編程;另外一種方法是C++對SDK函數(shù)進(jìn)行包裝,如VC的MFC(微軟基礎(chǔ)類庫),BOB的OWL等[12,13]。使用此應(yīng)用程序框架有很多優(yōu)點(diǎn),如其應(yīng)用程序代碼小,運(yùn)行速度快,并且此應(yīng)用程序提供的工具也降低了編碼的難度等。是微軟把Windows API 進(jìn)行封裝的類庫,該類庫以層次結(jié)構(gòu)組織起來,其中封裝了大部分Windows API函數(shù)和Windows控件[14]。雖然在Windows下Win32API提供了使用文件操作方式的函數(shù)進(jìn)行串口操作的方法,但是在編程實現(xiàn)上還是比較復(fù)雜。所以,本次實現(xiàn)兩臺PC間的通信使用的就是MSComm控件。開始調(diào)用初始化程序登錄界面登錄驗證是否正確NY主界面選擇串口并打開設(shè)置參數(shù)Y是否選擇16進(jìn)制選擇16進(jìn)制N是否選擇CRC校驗Y選擇CRCN輸入數(shù)據(jù)并發(fā)送數(shù)據(jù)發(fā)送完成NY關(guān)閉串口結(jié)束圖42 程序流程框圖使用此應(yīng)用程序時,需要有正確的用戶名和密碼才能登錄到此軟件的主界面,登錄到主界面后,要想實現(xiàn)兩臺PC間的通信則需要選擇可用的串口號并且傳輸參數(shù)要一致,其中包括波特率、數(shù)據(jù)位、停止位、奇偶校驗位等,只有設(shè)置對的參數(shù)才能實現(xiàn)數(shù)據(jù)交換的功能。能夠接收和顯示多個數(shù)據(jù),并且能夠通過CRC校驗檢查接收的數(shù)據(jù)是否正確。首先打開VC++,建立基于對話框的MFC應(yīng)用程序。圖44 應(yīng)用程序最初界面 界面功能實現(xiàn)(1)登錄界面登錄界面的設(shè)計除了應(yīng)用MFC中的控件和工具外,要想實現(xiàn)其用戶名和密碼的驗證功能還利用了數(shù)據(jù)庫的知識。其中使用DNS連接Access數(shù)據(jù)庫方法中,在定義DSN的時候,就已經(jīng)指定好了數(shù)據(jù)源需要的ODBC驅(qū)動程序,也指定好了數(shù)據(jù)庫文件的實際路徑和名字,我們在程序中,只需要引用預(yù)先定義的數(shù)據(jù)源名DSN即可[20,21]。數(shù)據(jù)庫中用戶名和密碼如圖45所示。圖46 登錄界面(2)主界面主界面是整個應(yīng)用程序的主體,大致可劃分為三部分,有接收區(qū)、發(fā)送區(qū)和設(shè)置區(qū)。相應(yīng)的通信參數(shù)設(shè)置完成后,點(diǎn)擊【確定】按鈕,應(yīng)用程序則會再次跳轉(zhuǎn)到主界面(數(shù)據(jù)收發(fā)界面),若想取消設(shè)置則點(diǎn)擊取消按鈕,參數(shù)設(shè)置界面關(guān)閉,回到主界面。實現(xiàn)該功能的程序流程圖如圖49所示,實現(xiàn)該功能的程序代碼如下:開始N是否登錄Y輸入獲取信息N點(diǎn)擊退出按鈕密碼用戶名是否一致Y登錄成功,轉(zhuǎn)到主界面結(jié)束圖49 用戶名密碼登錄模塊流程圖void CMylogin::OnBnClickedOk(){ // TODO: Add your control notification handler code here OnOK()。 //若打開則將其關(guān)閉 (username=39。,m_username,m_userpwd)。 return。 } } catch(CDBException* e)//try….catch是捕捉異常,即先執(zhí)行try若成功則結(jié)束 { //若失敗則執(zhí)行catch捕捉異常并輸出 eReportError()。具體程序代碼如下面所示:開始顯示登陸界面N串口是否打開Y關(guān)閉串口設(shè)置參數(shù)結(jié)束圖410 初始化流程圖BOOL CMyDlg::OnInitDialog(){ CDialog::OnInitDialog()。 (4)。 //設(shè)置輸出緩沖區(qū) (9600,n,8,1)。 CMyDlg md1。 //設(shè)置串口號 (1024)。//以二進(jìn)制方式讀寫數(shù)據(jù) (1)。 //設(shè)置當(dāng)前緩沖區(qū)長度()。MSComm通信控件提供了一系列標(biāo)準(zhǔn)通信命令的接口,它可以建立串口連接,可以連接到其他通
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1